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