##// END OF EJS Templates
Task #99: coherent_integrations added to models.py...
Fiorella Quino -
r141:514c235f2328
parent child
Show More
@@ -1,2 +1,2
1 [{"fields": {"name": "49_920MHz_clock60MHz_F0MHz_12_25_2", "clock": "60", "mult": 5, "fch": 49.92, "filter_fir": 6, "filter_2": 10, "filter_5": 1, "speed": 0}, "model": "jars.jarsfilter", "pk": 1},
1 [{"fields": {"name": "49_920MHz_clock60MHz_F0MHz_12_25_2", "clock": "60", "mult": 5, "fch": 49.92, "fch_decimal": 721554505, "filter_fir": 6, "filter_2": 10, "filter_5": 1, "speed": 0}, "model": "jars.jarsfilter", "pk": 1},
2 ] No newline at end of file
2 ]
@@ -1,137 +1,138
1 from django.db import models
1 from django.db import models
2 from apps.main.models import Configuration
2 from apps.main.models import Configuration
3 from django.core.validators import MinValueValidator, MaxValueValidator
3 from django.core.validators import MinValueValidator, MaxValueValidator
4
4
5 from apps.rc.models import RCConfiguration
5 from apps.rc.models import RCConfiguration
6 # Create your models here.
6 # Create your models here.
7
7
8 EXPERIMENT_TYPE = (
8 EXPERIMENT_TYPE = (
9 (0, 'RAW_DATA'),
9 (0, 'RAW_DATA'),
10 (1, 'PDATA'),
10 (1, 'PDATA'),
11 )
11 )
12
12
13 DATA_TYPE = (
13 DATA_TYPE = (
14 (0, 'SHORT'),
14 (0, 'SHORT'),
15 (1, 'FLOAT'),
15 (1, 'FLOAT'),
16 )
16 )
17
17
18 class JARSfilter(models.Model):
18 class JARSfilter(models.Model):
19
19
20 JARS_NBITS = 32
20 JARS_NBITS = 32
21
21
22 name = models.CharField(max_length=60, unique=True, default='')
22 name = models.CharField(max_length=60, unique=True, default='')
23 clock = models.FloatField(verbose_name='Clock Input (MHz)',validators=[MinValueValidator(5), MaxValueValidator(75)], null=True, default=60)
23 clock = models.FloatField(verbose_name='Clock Input (MHz)',validators=[MinValueValidator(5), MaxValueValidator(75)], null=True, default=60)
24 mult = models.PositiveIntegerField(verbose_name='Multiplier',validators=[MinValueValidator(1), MaxValueValidator(20)], default=5)
24 mult = models.PositiveIntegerField(verbose_name='Multiplier',validators=[MinValueValidator(1), MaxValueValidator(20)], default=5)
25 fch = models.DecimalField(verbose_name='Frequency (MHz)', validators=[MinValueValidator(0), MaxValueValidator(150)], max_digits=19, decimal_places=16, null=True, default=49.9200)
25 fch = models.DecimalField(verbose_name='Frequency (MHz)', validators=[MinValueValidator(0), MaxValueValidator(150)], max_digits=19, decimal_places=16, null=True, default=49.9200)
26 fch_decimal = models.BigIntegerField(verbose_name='Frequency (Decimal)',validators=[MinValueValidator(0), MaxValueValidator(2**JARS_NBITS-1)], null=True, default=721554505)
26 fch_decimal = models.BigIntegerField(verbose_name='Frequency (Decimal)',validators=[MinValueValidator(0), MaxValueValidator(2**JARS_NBITS-1)], null=True, default=721554505)
27 filter_fir = models.PositiveIntegerField(verbose_name='FIR Filter',validators=[MinValueValidator(1), MaxValueValidator(20)], default = 6)
27 filter_fir = models.PositiveIntegerField(verbose_name='FIR Filter',validators=[MinValueValidator(1), MaxValueValidator(20)], default = 6)
28 filter_2 = models.PositiveIntegerField(verbose_name='Filter 2',validators=[MinValueValidator(1), MaxValueValidator(20)], default = 10)
28 filter_2 = models.PositiveIntegerField(verbose_name='Filter 2',validators=[MinValueValidator(1), MaxValueValidator(20)], default = 10)
29 filter_5 = models.PositiveIntegerField(verbose_name='Filter 5',validators=[MinValueValidator(1), MaxValueValidator(20)], default = 1)
29 filter_5 = models.PositiveIntegerField(verbose_name='Filter 5',validators=[MinValueValidator(1), MaxValueValidator(20)], default = 1)
30 speed = models.PositiveIntegerField(verbose_name='Speed',validators=[MinValueValidator(0), MaxValueValidator(100000)], default = 0)
30 speed = models.PositiveIntegerField(verbose_name='Speed',validators=[MinValueValidator(0), MaxValueValidator(100000)], default = 0)
31
31
32 class Meta:
32 class Meta:
33 db_table = 'jars_filters'
33 db_table = 'jars_filters'
34
34
35 def __unicode__(self):
35 def __unicode__(self):
36 return u'%s' % (self.name)
36 return u'%s' % (self.name)
37
37
38 def parms_to_dict(self):
38 def parms_to_dict(self):
39
39
40 parameters = {}
40 parameters = {}
41
41
42 parameters['name'] = self.name
42 parameters['name'] = self.name
43 parameters['clock'] = float(self.clock)
43 parameters['clock'] = float(self.clock)
44 parameters['mult'] = int(self.mult)
44 parameters['mult'] = int(self.mult)
45 parameters['fch'] = float(self.fch)
45 parameters['fch'] = float(self.fch)
46 parameters['fch_decimal'] = int(self.fch)
46 parameters['fch_decimal'] = int(self.fch)
47 parameters['filter_fir'] = int(self.filter_fir)
47 parameters['filter_fir'] = int(self.filter_fir)
48 parameters['filter_2'] = int(self.filter_2)
48 parameters['filter_2'] = int(self.filter_2)
49 parameters['filter_5'] = int(self.filter_5)
49 parameters['filter_5'] = int(self.filter_5)
50 parameters['speed'] = int(self.speed)
50 parameters['speed'] = int(self.speed)
51
51
52 return parameters
52 return parameters
53
53
54 def dict_to_parms(self, parameters):
54 def dict_to_parms(self, parameters):
55
55
56 self.name = parameters['name']
56 self.name = parameters['name']
57 self.clock = parameters['clock']
57 self.clock = parameters['clock']
58 self.mult = parameters['mult']
58 self.mult = parameters['mult']
59 self.fch = parameters['fch']
59 self.fch = parameters['fch']
60 self.fch_decimal = parameters['fch_decimal']
60 self.fch_decimal = parameters['fch_decimal']
61 self.filter_fir = parameters['filter_fir']
61 self.filter_fir = parameters['filter_fir']
62 self.filter_2 = parameters['filter_2']
62 self.filter_2 = parameters['filter_2']
63 self.filter_5 = parameters['filter_5']
63 self.filter_5 = parameters['filter_5']
64 self.speed = parameters['speed']
64 self.speed = parameters['speed']
65
65
66
66
67 class JARSConfiguration(Configuration):
67 class JARSConfiguration(Configuration):
68
68
69 ADC_RESOLUTION = 8
69 ADC_RESOLUTION = 8
70 PCI_DIO_BUSWIDTH = 32
70 PCI_DIO_BUSWIDTH = 32
71 HEADER_VERSION = 1103
71 HEADER_VERSION = 1103
72 BEGIN_ON_START = True
72 BEGIN_ON_START = True
73 REFRESH_RATE = 1
73 REFRESH_RATE = 1
74
74
75 #rc = models.ForeignKey(RCConfiguration, on_delete=models.CASCADE, null=True)
75 #rc = models.ForeignKey(RCConfiguration, on_delete=models.CASCADE, null=True)
76 exp_type = models.PositiveIntegerField(verbose_name='Experiment Type', choices=EXPERIMENT_TYPE, default=0)
76 exp_type = models.PositiveIntegerField(verbose_name='Experiment Type', choices=EXPERIMENT_TYPE, default=0)
77 cards_number = models.PositiveIntegerField(verbose_name='Number of Cards', validators=[MinValueValidator(1), MaxValueValidator(4)], default = 1)
77 cards_number = models.PositiveIntegerField(verbose_name='Number of Cards', validators=[MinValueValidator(1), MaxValueValidator(4)], default = 1)
78 channels_number = models.PositiveIntegerField(verbose_name='Number of Channels', validators=[MinValueValidator(1), MaxValueValidator(8)], default = 5)
78 channels_number = models.PositiveIntegerField(verbose_name='Number of Channels', validators=[MinValueValidator(1), MaxValueValidator(8)], default = 5)
79 channels = models.CharField(verbose_name='Channels', max_length=15, default = '1,2,3,4,5')
79 channels = models.CharField(verbose_name='Channels', max_length=15, default = '1,2,3,4,5')
80 rd_directory = models.CharField(verbose_name='Raw Data Directory', max_length=40, default='', blank=True, null=True)
80 rd_directory = models.CharField(verbose_name='Raw Data Directory', max_length=40, default='', blank=True, null=True)
81 raw_data_blocks = models.PositiveIntegerField(verbose_name='Raw Data Blocks', validators=[MaxValueValidator(5000)], default=120)
81 raw_data_blocks = models.PositiveIntegerField(verbose_name='Raw Data Blocks', validators=[MaxValueValidator(5000)], default=120)
82 data_type = models.PositiveIntegerField(verbose_name='Data Type', choices=DATA_TYPE, default=0)
82 data_type = models.PositiveIntegerField(verbose_name='Data Type', choices=DATA_TYPE, default=0)
83 acq_profiles = models.PositiveIntegerField(verbose_name='Acquired Profiles', validators=[MaxValueValidator(5000)], default=400)
83 acq_profiles = models.PositiveIntegerField(verbose_name='Acquired Profiles', validators=[MaxValueValidator(5000)], default=400)
84 profiles_block = models.PositiveIntegerField(verbose_name='Profiles Per Block', validators=[MaxValueValidator(5000)], default=400)
84 profiles_block = models.PositiveIntegerField(verbose_name='Profiles Per Block', validators=[MaxValueValidator(5000)], default=400)
85 fftpoints = models.PositiveIntegerField(verbose_name='FFT Points',default=16)
85 fftpoints = models.PositiveIntegerField(verbose_name='FFT Points',default=16)
86 cohe_integr = models.PositiveIntegerField(verbose_name='Coherent Integrations',validators=[MinValueValidator(1)], default=30)
86 incohe_integr = models.PositiveIntegerField(verbose_name='Incoherent Integrations',validators=[MinValueValidator(1)], default=30)
87 incohe_integr = models.PositiveIntegerField(verbose_name='Incoherent Integrations',validators=[MinValueValidator(1)], default=30)
87 filter = models.ForeignKey(JARSfilter, on_delete=models.CASCADE, null=True)
88 filter = models.ForeignKey(JARSfilter, on_delete=models.CASCADE, null=True)
88 spectral_number = models.PositiveIntegerField(verbose_name='# Spectral Combinations',validators=[MinValueValidator(1)], default=1)
89 spectral_number = models.PositiveIntegerField(verbose_name='# Spectral Combinations',validators=[MinValueValidator(1)], default=1)
89 spectral = models.CharField(verbose_name='Combinations', max_length=5000, default = '[0, 0],')
90 spectral = models.CharField(verbose_name='Combinations', max_length=5000, default = '[0, 0],')
90 create_directory = models.BooleanField(verbose_name='Create Directory Per Day', default=True)
91 create_directory = models.BooleanField(verbose_name='Create Directory Per Day', default=True)
91 include_expname = models.BooleanField(verbose_name='Experiment Name in Directory', default=True)
92 include_expname = models.BooleanField(verbose_name='Experiment Name in Directory', default=True)
92 acq_link = models.BooleanField(verbose_name='Acquisition Link', default=True)
93 acq_link = models.BooleanField(verbose_name='Acquisition Link', default=True)
93 view_raw_data = models.BooleanField(verbose_name='View Raw Data', default=True)
94 view_raw_data = models.BooleanField(verbose_name='View Raw Data', default=True)
94 save_ch_dc = models.BooleanField(verbose_name='Save Channels DC', default=True)
95 save_ch_dc = models.BooleanField(verbose_name='Save Channels DC', default=True)
95 filter_parms = models.CharField(max_length=10000, default='{}')
96 filter_parms = models.CharField(max_length=10000, default='{}')
96
97
97 class Meta:
98 class Meta:
98 db_table = 'jars_configurations'
99 db_table = 'jars_configurations'
99
100
100 def parms_to_dict(self):
101 def parms_to_dict(self):
101
102
102 parameters = {}
103 parameters = {}
103
104
104 parameters['name'] = self.name
105 parameters['name'] = self.name
105 parameters['rc'] = self.rc.name
106 parameters['rc'] = self.rc.name
106 parameters['exp_type'] = self.exp_type
107 parameters['exp_type'] = self.exp_type
107 parameters['cards_number'] = self.cards_number
108 parameters['cards_number'] = self.cards_number
108 parameters['channels_number'] = self.channels_number
109 parameters['channels_number'] = self.channels_number
109 parameters['channels'] = self.channels
110 parameters['channels'] = self.channels
110 parameters['rd_directory'] = self.rd_directory
111 parameters['rd_directory'] = self.rd_directory
111 parameters['raw_data_blocks'] = self.raw_data_blocks
112 parameters['raw_data_blocks'] = self.raw_data_blocks
112 parameters['data_type'] = self.data_type
113 parameters['data_type'] = self.data_type
113 parameters['acq_profiles'] = self.acq_profiles
114 parameters['acq_profiles'] = self.acq_profiles
114 parameters['profiles_block'] = self.profiles_block
115 parameters['profiles_block'] = self.profiles_block
115 parameters['filter'] = self.filter.name
116 parameters['filter'] = self.filter.name
116 parameters['create_directory'] = bool(self.create_directory)
117 parameters['create_directory'] = bool(self.create_directory)
117 parameters['include_expname'] = bool(self.include_expname)
118 parameters['include_expname'] = bool(self.include_expname)
118 parameters['acq_link'] = bool(self.acq_link)
119 parameters['acq_link'] = bool(self.acq_link)
119 parameters['view_raw_data'] = bool(self.view_raw_data)
120 parameters['view_raw_data'] = bool(self.view_raw_data)
120
121
121 return parameters
122 return parameters
122
123
123 def add_parms_to_filter(self):
124 def add_parms_to_filter(self):
124 self.filter_parms = self.filter.parms_to_dict()
125 self.filter_parms = self.filter.parms_to_dict()
125 self.save()
126 self.save()
126
127
127 def dict_to_parms(self, parameters):
128 def dict_to_parms(self, parameters):
128 return
129 return
129
130
130 def status_device(self):
131 def status_device(self):
131 return
132 return
132
133
133 def read_device(self):
134 def read_device(self):
134 return
135 return
135
136
136 def write_device(self):
137 def write_device(self):
137 return No newline at end of file
138 return
@@ -1,94 +1,94
1 $(document).ready(function() {
1 $(document).ready(function() {
2 RawDataOrPData()
2 RawDataOrPData()
3 });
3 });
4
4
5 $("#id_exp_type").change(function() {
5 $("#id_exp_type").change(function() {
6 RawDataOrPData()
6 RawDataOrPData()
7 });
7 });
8
8
9 function RawDataOrPData(){
9 function RawDataOrPData(){
10 var type = $("#id_exp_type").val();
10 var type = $("#id_exp_type").val();
11 //spectral_number = $("#id_spectral_number")
11 incohe_integr = $("#id_incohe_integr")
12 spectral = $("#id_spectral")
12 spectral = $("#id_spectral")
13 fftpoints = $("#id_fftpoints")
13 fftpoints = $("#id_fftpoints")
14 save_ch_dc = $("#id_save_ch_dc")
14 save_ch_dc = $("#id_save_ch_dc")
15 add_spec_button = $("#add_spectral_button")
15 add_spec_button = $("#add_spectral_button")
16 del_spec_button = $("#delete_spectral_button")
16 del_spec_button = $("#delete_spectral_button")
17 sel_spec_button = $("#self_spectral_button")
17 sel_spec_button = $("#self_spectral_button")
18 cro_spec_button = $("#cross_spectral_button")
18 cro_spec_button = $("#cross_spectral_button")
19 all_spec_button = $("#all_spectral_button")
19 all_spec_button = $("#all_spectral_button")
20
20
21 if (type == 0) {
21 if (type == 0) {
22 //$(spectral_number).attr('readonly', true);
22 $(incohe_integr).attr('readonly', true);
23 $(spectral).attr('readonly', true);
23 $(spectral).attr('readonly', true);
24 $(fftpoints).attr('readonly', true);
24 $(fftpoints).attr('readonly', true);
25 $(save_ch_dc).attr('disabled', true);
25 $(save_ch_dc).attr('disabled', true);
26 $(save_ch_dc).attr('readonly', true);
26 $(save_ch_dc).attr('readonly', true);
27 $(add_spec_button).attr('disabled', true);
27 $(add_spec_button).attr('disabled', true);
28 $(del_spec_button).attr('disabled', true);
28 $(del_spec_button).attr('disabled', true);
29 $(sel_spec_button).attr('disabled', true);
29 $(sel_spec_button).attr('disabled', true);
30 $(cro_spec_button).attr('disabled', true);
30 $(cro_spec_button).attr('disabled', true);
31 $(all_spec_button).attr('disabled', true);
31 $(all_spec_button).attr('disabled', true);
32 }
32 }
33 else {
33 else {
34 //$(spectral_number).attr('readonly', true);
34 $(incohe_integr).attr('readonly', false);
35 $(spectral).attr('readonly', false);
35 $(spectral).attr('readonly', false);
36 $(fftpoints).attr('readonly', false);
36 $(fftpoints).attr('readonly', false);
37 $(save_ch_dc).attr('disabled', false);
37 $(save_ch_dc).attr('disabled', false);
38 $(save_ch_dc).attr('readonly', false);
38 $(save_ch_dc).attr('readonly', false);
39 $(add_spec_button).attr('disabled', false);
39 $(add_spec_button).attr('disabled', false);
40 $(del_spec_button).attr('disabled', false);
40 $(del_spec_button).attr('disabled', false);
41 $(sel_spec_button).attr('disabled', false);
41 $(sel_spec_button).attr('disabled', false);
42 $(cro_spec_button).attr('disabled', false);
42 $(cro_spec_button).attr('disabled', false);
43 $(all_spec_button).attr('disabled', false);
43 $(all_spec_button).attr('disabled', false);
44 }
44 }
45 }
45 }
46
46
47
47
48 $("#id_cards_number").on('change', function() {
48 $("#id_cards_number").on('change', function() {
49 var cards_number = $("#id_cards_number").val();
49 var cards_number = $("#id_cards_number").val();
50 channels_number = $("#id_channels_number")
50 channels_number = $("#id_channels_number")
51 $(channels_number).val(cards_number*2)
51 $(channels_number).val(cards_number*2)
52 updateChannelsNumber();
52 updateChannelsNumber();
53 });
53 });
54
54
55
55
56 $("#id_channels_number").on('change', function() {
56 $("#id_channels_number").on('change', function() {
57 updateChannelsNumber();
57 updateChannelsNumber();
58 });
58 });
59
59
60
60
61 $("#id_spectral").on('change', function() {
61 $("#id_spectral").on('change', function() {
62 updateSpectralNumber();
62 updateSpectralNumber();
63 });
63 });
64
64
65
65
66 function updateSpectralNumber(){
66 function updateSpectralNumber(){
67 var spectral_comb = $("#id_spectral").val();
67 var spectral_comb = $("#id_spectral").val();
68 var num = spectral_comb.length;
68 var num = spectral_comb.length;
69 var cont = 0
69 var cont = 0
70 for (i = 0; i < num; i++) {
70 for (i = 0; i < num; i++) {
71 if (spectral_comb[i] == "]"){
71 if (spectral_comb[i] == "]"){
72 cont = cont + 1
72 cont = cont + 1
73 }
73 }
74 }
74 }
75 $("#id_spectral_number").val(cont)
75 $("#id_spectral_number").val(cont)
76 }
76 }
77
77
78
78
79 function updateChannelsNumber() {
79 function updateChannelsNumber() {
80
80
81 var channels_number = $("#id_channels_number").val();
81 var channels_number = $("#id_channels_number").val();
82 channels = $("#id_channels")
82 channels = $("#id_channels")
83 sequence = ""
83 sequence = ""
84
84
85 for (i = 1; i <= channels_number; i++) {
85 for (i = 1; i <= channels_number; i++) {
86 if (i==1){
86 if (i==1){
87 sequence = i.toString()
87 sequence = i.toString()
88 }
88 }
89 else{
89 else{
90 sequence = sequence + "," + i.toString()
90 sequence = sequence + "," + i.toString()
91 }
91 }
92 }
92 }
93 $(channels).val(sequence)
93 $(channels).val(sequence)
94 } No newline at end of file
94 }
General Comments 0
You need to be logged in to leave comments. Login now