##// END OF EJS Templates
Standardize jars functions: start, stop, write, read, status...
Fiorella Quino -
r209:90fa9a52ca2f
parent child
Show More
@@ -190,34 +190,57 class JARSConfiguration(Configuration):
190
190
191 def status_device(self):
191 def status_device(self):
192
192
193 answer = api.status(self.device.ip_address,self.device.port_address)
193 try:
194 self.device.status = int(answer[0])
194 answer = api.status(self.device.ip_address,self.device.port_address)
195 self.message = answer[2:]
195 self.device.status = int(answer[0])
196 self.device.save()
196 self.device.save()
197 self.message = answer[2:]
198 if self.device.status == 0:
199 return False
197
200
198 return self.device.status
201 except Exception as e:
202 self.device.status = 0
203 self.message = str(e)
204 self.device.save()
205 return False
206
207 return True
199
208
200 def stop_device(self):
209 def stop_device(self):
201
210
202 answer = api.stop(self.device.ip_address,self.device.port_address)
211 try:
203 self.device.status = int(answer[0])
212 answer = api.stop(self.device.ip_address,self.device.port_address)
204 self.message = answer[2:]
213 self.device.status = int(answer[0])
205 self.device.save()
214 self.message = answer[2:]
215 self.device.save()
216 if self.device.status == 0 or self.device.status == 1:
217 return False
206
218
207 return self.device.status
219 except Exception as e:
220 self.device.status = 0
221 self.message = str(e)
222 self.device.save()
223 return False
224
225 return True
208
226
209 def read_device(self):
227 def read_device(self):
210
228
211 answer = api.read(self.device.ip_address,self.device.port_address)
212 self.device.status = int(answer[0])
213 try:
229 try:
230 answer = api.read(self.device.ip_address,self.device.port_address)
231 self.device.status = int(answer[0])
232 self.device.save()
233 self.message = answer[2:]
234 if self.device.status == 1:
235 return False
214 data = json.loads(answer[2:])
236 data = json.loads(answer[2:])
215 parms = data['configurations']['jars']
237 parms = data['configurations']['jars']
238
216 except:
239 except:
217 self.device.status = 0
240 self.device.status = 0
218 self.device.save()
241 self.device.save()
219 self.message = 'Could not read JARS configuration.'
242 self.message = 'Could not read JARS configuration.'
220 return ''
243 return False
221
244
222 #self.dict_to_parms(parms)
245 #self.dict_to_parms(parms)
223 self.message = 'Current JARS configuration was read successfully.'
246 self.message = 'Current JARS configuration was read successfully.'
@@ -227,6 +250,10 class JARSConfiguration(Configuration):
227
250
228 def write_device(self):
251 def write_device(self):
229
252
253 if self.device.status == 3:
254 self.message = 'Could not configure device. Software Acquisition is running'
255 return False
256
230 data = self.experiment.parms_to_dict()
257 data = self.experiment.parms_to_dict()
231 data = json.loads(data)
258 data = json.loads(data)
232 data['configurations']['dds'] =''
259 data['configurations']['dds'] =''
@@ -235,19 +262,42 class JARSConfiguration(Configuration):
235 data['configurations']['rc']['delays']=''
262 data['configurations']['rc']['delays']=''
236 json_data = json.dumps(data)
263 json_data = json.dumps(data)
237
264
238 answer = api.configure(self.device.ip_address,self.device.port_address,json_data)
265 try:
239 #print answer
266 answer = api.configure(self.device.ip_address,self.device.port_address,json_data)
240 self.device.status = int(answer[0])
267 self.device.status = int(answer[0])
241 self.message = answer[2:]
268 self.message = answer[2:]
269 self.device.save()
270 if self.device.status == 1:
271 return False
272 if self.device.status == 3:
273 return False
242
274
243 self.device.save()
275 except Exception as e:
276 self.device.status = 0
277 self.message = str(e)
278 self.device.save()
279 return False
244
280
245 return self.device.status
281 return True
246
282
247
283
248 def start_device(self):
284 def start_device(self):
249
285
250 self.write_device()
286 try:
287 answer = api.start(self.device.ip_address,self.device.port_address)
288 self.device.status = int(answer[0])
289 self.message = answer[2:]
290 self.device.save()
291 if self.device.status == 1:
292 return False
293
294 except Exception as e:
295 self.device.status = 0
296 self.message = str(e)
297 self.device.save()
298 return False
299
300 return True
251
301
252
302
253 def echo(self):
303 def echo(self):
@@ -11,124 +11,124 from .forms import JARSConfigurationForm, JARSfilterForm, JARSImportForm
11 # Create your views here.
11 # Create your views here.
12
12
13 def jars_conf(request, id_conf):
13 def jars_conf(request, id_conf):
14
14
15 conf = get_object_or_404(JARSConfiguration, pk=id_conf)
15 conf = get_object_or_404(JARSConfiguration, pk=id_conf)
16
16
17 ip=conf.device.ip_address
17 ip=conf.device.ip_address
18 port=conf.device.port_address
18 port=conf.device.port_address
19
19
20 kwargs = {}
20 kwargs = {}
21 kwargs['status'] = conf.device.get_status_display()
21 kwargs['status'] = conf.device.get_status_display()
22
22
23
23
24 kwargs['dev_conf'] = conf
24 kwargs['dev_conf'] = conf
25 kwargs['dev_conf_keys'] = ['name',
25 kwargs['dev_conf_keys'] = ['name',
26 'cards_number', 'channels_number', 'channels',
26 'cards_number', 'channels_number', 'channels',
27 'rd_directory', 'pd_directory',
27 'rd_directory', 'pd_directory',
28 'data_type',
28 'data_type',
29 'acq_profiles', 'profiles_block', 'ftp_interval', 'fftpoints',
29 'acq_profiles', 'profiles_block', 'ftp_interval', 'fftpoints',
30 'cohe_integr_str',
30 'cohe_integr_str',
31 'incohe_integr', 'cohe_integr', 'filter', 'spectral_number',
31 'incohe_integr', 'cohe_integr', 'filter', 'spectral_number',
32 'spectral', 'create_directory', 'include_expname',
32 'spectral', 'create_directory', 'include_expname',
33 'save_ch_dc', 'save_data']
33 'save_ch_dc', 'save_data']
34
34
35 kwargs['title'] = 'JARS Configuration'
35 kwargs['title'] = 'JARS Configuration'
36 kwargs['suptitle'] = 'Details'
36 kwargs['suptitle'] = 'Details'
37
37
38 kwargs['button'] = 'Edit Configuration'
38 kwargs['button'] = 'Edit Configuration'
39
39
40 #kwargs['no_play'] = True
40 #kwargs['no_play'] = True
41
41
42 kwargs['only_stop'] = True
42 #kwargs['only_stop'] = True
43
43
44 ###### SIDEBAR ######
44 ###### SIDEBAR ######
45 kwargs.update(sidebar(conf=conf))
45 kwargs.update(sidebar(conf=conf))
46
46
47 return render(request, 'jars_conf.html', kwargs)
47 return render(request, 'jars_conf.html', kwargs)
48
48
49 def jars_conf_edit(request, id_conf):
49 def jars_conf_edit(request, id_conf):
50
50
51 conf = get_object_or_404(JARSConfiguration, pk=id_conf)
51 conf = get_object_or_404(JARSConfiguration, pk=id_conf)
52
52
53 if request.method=='GET':
53 if request.method=='GET':
54 form = JARSConfigurationForm(instance=conf)
54 form = JARSConfigurationForm(instance=conf)
55
55
56 if request.method=='POST':
56 if request.method=='POST':
57 form = JARSConfigurationForm(request.POST, instance=conf)
57 form = JARSConfigurationForm(request.POST, instance=conf)
58
58
59 if form.is_valid():
59 if form.is_valid():
60 conf = form.save(commit=False)
60 conf = form.save(commit=False)
61 conf.save()
61 conf.save()
62 return redirect('url_jars_conf', id_conf=conf.id)
62 return redirect('url_jars_conf', id_conf=conf.id)
63
63
64 ##ERRORS
64 ##ERRORS
65
65
66 kwargs = {}
66 kwargs = {}
67
67
68 kwargs['filter_id'] = conf.filter.id
68 kwargs['filter_id'] = conf.filter.id
69 kwargs['id_dev'] = conf.id
69 kwargs['id_dev'] = conf.id
70 kwargs['form'] = form
70 kwargs['form'] = form
71 kwargs['title'] = 'Device Configuration'
71 kwargs['title'] = 'Device Configuration'
72 kwargs['suptitle'] = 'Edit'
72 kwargs['suptitle'] = 'Edit'
73 kwargs['button'] = 'Save'
73 kwargs['button'] = 'Save'
74
74
75 return render(request, 'jars_conf_edit.html', kwargs)
75 return render(request, 'jars_conf_edit.html', kwargs)
76
76
77 def import_file(request, conf_id):
77 def import_file(request, conf_id):
78
78
79 conf = get_object_or_404(JARSConfiguration, pk=conf_id)
79 conf = get_object_or_404(JARSConfiguration, pk=conf_id)
80 if request.method=='POST':
80 if request.method=='POST':
81 form = JARSImportForm(request.POST, request.FILES)
81 form = JARSImportForm(request.POST, request.FILES)
82 if form.is_valid():
82 if form.is_valid():
83 try:
83 try:
84 parms = conf.import_from_file(request.FILES['file_name'])
84 parms = conf.import_from_file(request.FILES['file_name'])
85
85
86 if parms:
86 if parms:
87 conf.update_from_file(parms)
87 conf.update_from_file(parms)
88 messages.success(request, 'Configuration "%s" loaded succesfully' % request.FILES['file_name'])
88 messages.success(request, 'Configuration "%s" loaded succesfully' % request.FILES['file_name'])
89 return redirect(conf.get_absolute_url_edit())
89 return redirect(conf.get_absolute_url_edit())
90
90
91 except Exception as e:
91 except Exception as e:
92 messages.error(request, 'Error parsing file: "%s" - %s' % (request.FILES['file_name'], e))
92 messages.error(request, 'Error parsing file: "%s" - %s' % (request.FILES['file_name'], e))
93
93
94 else:
94 else:
95 messages.warning(request, 'Your current configuration will be replaced')
95 messages.warning(request, 'Your current configuration will be replaced')
96 form = JARSImportForm()
96 form = JARSImportForm()
97
97
98 kwargs = {}
98 kwargs = {}
99 kwargs['form'] = form
99 kwargs['form'] = form
100 kwargs['title'] = 'JARS Configuration'
100 kwargs['title'] = 'JARS Configuration'
101 kwargs['suptitle'] = 'Import file'
101 kwargs['suptitle'] = 'Import file'
102 kwargs['button'] = 'Upload'
102 kwargs['button'] = 'Upload'
103 kwargs['previous'] = conf.get_absolute_url()
103 kwargs['previous'] = conf.get_absolute_url()
104
104
105 return render(request, 'jars_import.html', kwargs)
105 return render(request, 'jars_import.html', kwargs)
106
106
107 def read_conf(request, conf_id):
107 def read_conf(request, conf_id):
108
108
109 conf = get_object_or_404(JARSConfiguration, pk=conf_id)
109 conf = get_object_or_404(JARSConfiguration, pk=conf_id)
110 #filter = get_object_or_404(JARSfilter, pk=filter_id)
110 #filter = get_object_or_404(JARSfilter, pk=filter_id)
111
111
112 if request.method=='GET':
112 if request.method=='GET':
113
113
114 parms = conf.read_device()
114 parms = conf.read_device()
115 conf.status_device()
115 conf.status_device()
116
116
117 if not parms:
117 if not parms:
118 messages.error(request, conf.message)
118 messages.error(request, conf.message)
119 return redirect(conf.get_absolute_url())
119 return redirect(conf.get_absolute_url())
120
120
121 form = JARSConfigurationForm(initial=parms, instance=conf)
121 form = JARSConfigurationForm(initial=parms, instance=conf)
122
122
123 if request.method=='POST':
123 if request.method=='POST':
124 form = JARSConfigurationForm(request.POST, instance=conf)
124 form = JARSConfigurationForm(request.POST, instance=conf)
125
125
126 if form.is_valid():
126 if form.is_valid():
127 form.save()
127 form.save()
128 return redirect(conf.get_absolute_url())
128 return redirect(conf.get_absolute_url())
129
129
130 messages.error(request, "Parameters could not be saved")
130 messages.error(request, "Parameters could not be saved")
131
131
132 kwargs = {}
132 kwargs = {}
133 kwargs['id_dev'] = conf.id
133 kwargs['id_dev'] = conf.id
134 kwargs['filter_id'] = conf.filter.id
134 kwargs['filter_id'] = conf.filter.id
@@ -136,17 +136,17 def read_conf(request, conf_id):
136 kwargs['title'] = 'Device Configuration'
136 kwargs['title'] = 'Device Configuration'
137 kwargs['suptitle'] = 'Parameters read from device'
137 kwargs['suptitle'] = 'Parameters read from device'
138 kwargs['button'] = 'Save'
138 kwargs['button'] = 'Save'
139
139
140 ###### SIDEBAR ######
140 ###### SIDEBAR ######
141 kwargs.update(sidebar(conf=conf))
141 kwargs.update(sidebar(conf=conf))
142
142
143 return render(request, 'jars_conf_edit.html', kwargs)
143 return render(request, 'jars_conf_edit.html', kwargs)
144
144
145 def view_filter(request, conf_id, filter_id):
145 def view_filter(request, conf_id, filter_id):
146
146
147 conf = get_object_or_404(JARSConfiguration, pk=conf_id)
147 conf = get_object_or_404(JARSConfiguration, pk=conf_id)
148 filter = get_object_or_404(JARSfilter, pk=filter_id)
148 filter = get_object_or_404(JARSfilter, pk=filter_id)
149
149
150 filter_parms = eval(conf.filter_parms)
150 filter_parms = eval(conf.filter_parms)
151 filter.name = filter_parms['name']
151 filter.name = filter_parms['name']
152 filter.clock = filter_parms['clock']
152 filter.clock = filter_parms['clock']
@@ -157,7 +157,7 def view_filter(request, conf_id, filter_id):
157 filter.filter_2 = filter_parms['filter_2']
157 filter.filter_2 = filter_parms['filter_2']
158 filter.filter_5 = filter_parms['filter_5']
158 filter.filter_5 = filter_parms['filter_5']
159 filter.speed = filter_parms['speed']
159 filter.speed = filter_parms['speed']
160
160
161 kwargs = {}
161 kwargs = {}
162 kwargs['conf'] = conf
162 kwargs['conf'] = conf
163 kwargs['filter'] = filter
163 kwargs['filter'] = filter
@@ -166,26 +166,26 def view_filter(request, conf_id, filter_id):
166 'mult', 'fch', 'fch_decimal',
166 'mult', 'fch', 'fch_decimal',
167 'filter_fir', 'filter_2',
167 'filter_fir', 'filter_2',
168 'filter_5', 'speed']
168 'filter_5', 'speed']
169
169
170 kwargs['title'] = 'Filter View'
170 kwargs['title'] = 'Filter View'
171 kwargs['suptitle'] = 'Details'
171 kwargs['suptitle'] = 'Details'
172 kwargs['button'] = 'SI'
172 kwargs['button'] = 'SI'
173 kwargs['edit_button'] = 'Edit Filter'
173 kwargs['edit_button'] = 'Edit Filter'
174 kwargs['add_button'] = 'New Filter'
174 kwargs['add_button'] = 'New Filter'
175
175
176 return render(request, 'jars_filter.html', kwargs)
176 return render(request, 'jars_filter.html', kwargs)
177
177
178 def edit_filter(request, conf_id, filter_id):
178 def edit_filter(request, conf_id, filter_id):
179
179
180 conf = get_object_or_404(JARSConfiguration, pk=conf_id)
180 conf = get_object_or_404(JARSConfiguration, pk=conf_id)
181 filter_parms = eval(conf.filter_parms)
181 filter_parms = eval(conf.filter_parms)
182
182
183 if filter_id:
183 if filter_id:
184 filter = get_object_or_404(JARSfilter, pk=filter_id)
184 filter = get_object_or_404(JARSfilter, pk=filter_id)
185
185
186 if request.method=='GET':
186 if request.method=='GET':
187 form = JARSfilterForm(initial=filter_parms)
187 form = JARSfilterForm(initial=filter_parms)
188
188
189 if request.method=='POST':
189 if request.method=='POST':
190 parms = {}
190 parms = {}
191 parms['name'] = request.POST['name']
191 parms['name'] = request.POST['name']
@@ -197,10 +197,10 def edit_filter(request, conf_id, filter_id):
197 parms['filter_2'] = request.POST['filter_2']
197 parms['filter_2'] = request.POST['filter_2']
198 parms['filter_5'] = request.POST['filter_5']
198 parms['filter_5'] = request.POST['filter_5']
199 parms['speed'] = request.POST['speed']
199 parms['speed'] = request.POST['speed']
200
200
201 conf.filter_parms = parms
201 conf.filter_parms = parms
202 conf.save()
202 conf.save()
203
203
204 #form = JARSfilterForm(request.POST)
204 #form = JARSfilterForm(request.POST)
205 #form = JARSfilterForm(request.POST, instance=filter)
205 #form = JARSfilterForm(request.POST, instance=filter)
206 #if form.is_valid():
206 #if form.is_valid():
@@ -208,7 +208,7 def edit_filter(request, conf_id, filter_id):
208 # messages.success(request, 'JARS Filter successfully updated')
208 # messages.success(request, 'JARS Filter successfully updated')
209 # return redirect('url_jars_filter', conf.id, filter.id)
209 # return redirect('url_jars_filter', conf.id, filter.id)
210 return redirect('url_jars_filter', conf.id, filter.id)
210 return redirect('url_jars_filter', conf.id, filter.id)
211
211
212 kwargs = {}
212 kwargs = {}
213 kwargs['form'] = form
213 kwargs['form'] = form
214 kwargs['title'] = conf.name
214 kwargs['title'] = conf.name
@@ -216,16 +216,16 def edit_filter(request, conf_id, filter_id):
216 kwargs['button'] = 'Save'
216 kwargs['button'] = 'Save'
217 # kwargs['previous'] = conf.get_absolute_url_edit()
217 # kwargs['previous'] = conf.get_absolute_url_edit()
218 kwargs['dev_conf'] = conf
218 kwargs['dev_conf'] = conf
219
219
220 return render(request, 'jars_filter_edit.html', kwargs)
220 return render(request, 'jars_filter_edit.html', kwargs)
221
221
222 def new_filter(request, conf_id):
222 def new_filter(request, conf_id):
223
223
224 conf = get_object_or_404(JARSConfiguration, pk=conf_id)
224 conf = get_object_or_404(JARSConfiguration, pk=conf_id)
225
225
226 if request.method=='GET':
226 if request.method=='GET':
227 form = JARSfilterForm()
227 form = JARSfilterForm()
228
228
229 if request.method=='POST':
229 if request.method=='POST':
230 form = JARSfilterForm(request.POST)
230 form = JARSfilterForm(request.POST)
231 if form.is_valid():
231 if form.is_valid():
@@ -235,7 +235,7 def new_filter(request, conf_id):
235 conf.add_parms_to_filter()
235 conf.add_parms_to_filter()
236 messages.success(request, 'New JARS Filter successfully created')
236 messages.success(request, 'New JARS Filter successfully created')
237 return redirect('url_edit_jars_conf', id_conf=conf.id)
237 return redirect('url_edit_jars_conf', id_conf=conf.id)
238
238
239 kwargs = {}
239 kwargs = {}
240 kwargs['form'] = form
240 kwargs['form'] = form
241 kwargs['title'] = 'New Filter'
241 kwargs['title'] = 'New Filter'
@@ -243,5 +243,5 def new_filter(request, conf_id):
243 kwargs['button'] = 'Create'
243 kwargs['button'] = 'Create'
244 # kwargs['previous'] = conf.get_absolute_url_edit()
244 # kwargs['previous'] = conf.get_absolute_url_edit()
245 kwargs['dev_conf'] = conf
245 kwargs['dev_conf'] = conf
246
246
247 return render(request, 'jars_new_filter.html', kwargs) No newline at end of file
247 return render(request, 'jars_new_filter.html', kwargs)
General Comments 0
You need to be logged in to leave comments. Login now