##// END OF EJS Templates
Version: 2.1.3.2...
Miguel Valdez -
r672:a1a5642b5594
parent child
Show More
@@ -1,19 +1,23
1 VERSIONS:
1 VERSIONS:
2
2
3 2.1.2:
3 2.1.2:
4 -jroutils_ftp.py: Bug fixed, Any error sending file stopped the Server Thread
4 -jroutils_ftp.py: Bug fixed, Any error sending file stopped the Server Thread
5 Server thread opens and closes remote server each time file list is sent
5 Server thread opens and closes remote server each time file list is sent
6 -jroplot_spectra.py: Noise path was not being created saving noise data.
6 -jroplot_spectra.py: Noise path was not being created saving noise data.
7 -jroIO_base.py: startTime can be greater than endTime
7 -jroIO_base.py: startTime can be greater than endTime
8
8
9 2.1.3:
9 2.1.3:
10 -jroplot_heispectra.py: SpectraHeisScope was not showing the right channels
10 -jroplot_heispectra.py: SpectraHeisScope was not showing the right channels
11 -jroproc_voltage.py: Bug fixed selecting profiles (self.nProfiles took a wrong value),
11 -jroproc_voltage.py: Bug fixed selecting profiles (self.nProfiles took a wrong value),
12 Bug fixed selecting heights by block (selecting profiles instead heights)
12 Bug fixed selecting heights by block (selecting profiles instead heights)
13 -jroproc_voltage.py: New feature added: decoding data by block using FFT.
13 -jroproc_voltage.py: New feature added: decoding data by block using FFT.
14 -jroIO_heispectra.py: Bug fixed in FitsReader. Using local Fits object instead schainpy.mode.data.jrodata.Fits object.
14 -jroIO_heispectra.py: Bug fixed in FitsReader. Using local Fits object instead schainpy.mode.data.jrodata.Fits object.
15 -jroIO_heispectra.py: Channel index list does not exist.
15 -jroIO_heispectra.py: Channel index list does not exist.
16
16
17 2.1.3.1:
17 2.1.3.1:
18 -GUI: every icon were resized
18 -GUI: every icon were resized
19 -jroproc_voltage.py: Print a message when "Read from code" option is selected and the code is not defined inside data file
19 -jroproc_voltage.py: Print a message when "Read from code" option is selected and the code is not defined inside data file
20
21 2.1.3.2:
22 -GUI: user interaction enhanced
23 -controller_api.py: Safe access to ControllerThead No newline at end of file
@@ -1,7 +1,7
1 '''
1 '''
2 Created on Feb 7, 2012
2 Created on Feb 7, 2012
3
3
4 @author $Author$
4 @author $Author$
5 @version $Id$
5 @version $Id$
6 '''
6 '''
7 __version__ = "2.1.3.1" No newline at end of file
7 __version__ = "2.1.3.2" No newline at end of file
@@ -1,1096 +1,1142
1 '''
1 '''
2 Created on September , 2012
2 Created on September , 2012
3 @author:
3 @author:
4 '''
4 '''
5 from xml.etree.ElementTree import ElementTree, Element, SubElement, tostring
5 from xml.etree.ElementTree import ElementTree, Element, SubElement, tostring
6 from xml.dom import minidom
6 from xml.dom import minidom
7
7
8 from model import *
8 from model import *
9
10 try:
11 from gevent import sleep
12 except:
13 from time import sleep
9 from time import sleep
14
10
11 import sys
15 import ast
12 import ast
13 import traceback
14
15 SCHAIN_MAIL = "miguel.urco@jro.igp.gob.pe"
16 EMAIL_SERVER = "jro.igp.gob.pe"
16
17
17 def prettify(elem):
18 def prettify(elem):
18 """Return a pretty-printed XML string for the Element.
19 """Return a pretty-printed XML string for the Element.
19 """
20 """
20 rough_string = tostring(elem, 'utf-8')
21 rough_string = tostring(elem, 'utf-8')
21 reparsed = minidom.parseString(rough_string)
22 reparsed = minidom.parseString(rough_string)
22 return reparsed.toprettyxml(indent=" ")
23 return reparsed.toprettyxml(indent=" ")
23
24
24 class ParameterConf():
25 class ParameterConf():
25
26
26 id = None
27 id = None
27 name = None
28 name = None
28 value = None
29 value = None
29 format = None
30 format = None
30
31
31 __formated_value = None
32 __formated_value = None
32
33
33 ELEMENTNAME = 'Parameter'
34 ELEMENTNAME = 'Parameter'
34
35
35 def __init__(self):
36 def __init__(self):
36
37
37 self.format = 'str'
38 self.format = 'str'
38
39
39 def getElementName(self):
40 def getElementName(self):
40
41
41 return self.ELEMENTNAME
42 return self.ELEMENTNAME
42
43
43 def getValue(self):
44 def getValue(self):
44
45
45 value = self.value
46 value = self.value
46 format = self.format
47 format = self.format
47
48
48 if self.__formated_value != None:
49 if self.__formated_value != None:
49
50
50 return self.__formated_value
51 return self.__formated_value
51
52
52 if format == 'str':
53 if format == 'str':
53 self.__formated_value = str(value)
54 self.__formated_value = str(value)
54 return self.__formated_value
55 return self.__formated_value
55
56
56 if value == '':
57 if value == '':
57 raise ValueError, "%s: This parameter value is empty" %self.name
58 raise ValueError, "%s: This parameter value is empty" %self.name
58
59
59 if format == 'bool':
60 if format == 'bool':
60 value = int(value)
61 value = int(value)
61
62
62 if format == 'list':
63 if format == 'list':
63 strList = value.split(',')
64 strList = value.split(',')
64
65
65 self.__formated_value = strList
66 self.__formated_value = strList
66
67
67 return self.__formated_value
68 return self.__formated_value
68
69
69 if format == 'intlist':
70 if format == 'intlist':
70 """
71 """
71 Example:
72 Example:
72 value = (0,1,2)
73 value = (0,1,2)
73 """
74 """
74 value = value.replace('(', '')
75 value = value.replace('(', '')
75 value = value.replace(')', '')
76 value = value.replace(')', '')
76
77
77 value = value.replace('[', '')
78 value = value.replace('[', '')
78 value = value.replace(']', '')
79 value = value.replace(']', '')
79
80
80 strList = value.split(',')
81 strList = value.split(',')
81 intList = [int(float(x)) for x in strList]
82 intList = [int(float(x)) for x in strList]
82
83
83 self.__formated_value = intList
84 self.__formated_value = intList
84
85
85 return self.__formated_value
86 return self.__formated_value
86
87
87 if format == 'floatlist':
88 if format == 'floatlist':
88 """
89 """
89 Example:
90 Example:
90 value = (0.5, 1.4, 2.7)
91 value = (0.5, 1.4, 2.7)
91 """
92 """
92
93
93 value = value.replace('(', '')
94 value = value.replace('(', '')
94 value = value.replace(')', '')
95 value = value.replace(')', '')
95
96
96 value = value.replace('[', '')
97 value = value.replace('[', '')
97 value = value.replace(']', '')
98 value = value.replace(']', '')
98
99
99 strList = value.split(',')
100 strList = value.split(',')
100 floatList = [float(x) for x in strList]
101 floatList = [float(x) for x in strList]
101
102
102 self.__formated_value = floatList
103 self.__formated_value = floatList
103
104
104 return self.__formated_value
105 return self.__formated_value
105
106
106 if format == 'date':
107 if format == 'date':
107 strList = value.split('/')
108 strList = value.split('/')
108 intList = [int(x) for x in strList]
109 intList = [int(x) for x in strList]
109 date = datetime.date(intList[0], intList[1], intList[2])
110 date = datetime.date(intList[0], intList[1], intList[2])
110
111
111 self.__formated_value = date
112 self.__formated_value = date
112
113
113 return self.__formated_value
114 return self.__formated_value
114
115
115 if format == 'time':
116 if format == 'time':
116 strList = value.split(':')
117 strList = value.split(':')
117 intList = [int(x) for x in strList]
118 intList = [int(x) for x in strList]
118 time = datetime.time(intList[0], intList[1], intList[2])
119 time = datetime.time(intList[0], intList[1], intList[2])
119
120
120 self.__formated_value = time
121 self.__formated_value = time
121
122
122 return self.__formated_value
123 return self.__formated_value
123
124
124 if format == 'pairslist':
125 if format == 'pairslist':
125 """
126 """
126 Example:
127 Example:
127 value = (0,1),(1,2)
128 value = (0,1),(1,2)
128 """
129 """
129
130
130 value = value.replace('(', '')
131 value = value.replace('(', '')
131 value = value.replace(')', '')
132 value = value.replace(')', '')
132
133
133 value = value.replace('[', '')
134 value = value.replace('[', '')
134 value = value.replace(']', '')
135 value = value.replace(']', '')
135
136
136 strList = value.split(',')
137 strList = value.split(',')
137 intList = [int(item) for item in strList]
138 intList = [int(item) for item in strList]
138 pairList = []
139 pairList = []
139 for i in range(len(intList)/2):
140 for i in range(len(intList)/2):
140 pairList.append((intList[i*2], intList[i*2 + 1]))
141 pairList.append((intList[i*2], intList[i*2 + 1]))
141
142
142 self.__formated_value = pairList
143 self.__formated_value = pairList
143
144
144 return self.__formated_value
145 return self.__formated_value
145
146
146 if format == 'multilist':
147 if format == 'multilist':
147 """
148 """
148 Example:
149 Example:
149 value = (0,1,2),(3,4,5)
150 value = (0,1,2),(3,4,5)
150 """
151 """
151 multiList = ast.literal_eval(value)
152 multiList = ast.literal_eval(value)
152
153
153 if type(multiList[0]) == int:
154 if type(multiList[0]) == int:
154 multiList = ast.literal_eval("(" + value + ")")
155 multiList = ast.literal_eval("(" + value + ")")
155
156
156 self.__formated_value = multiList
157 self.__formated_value = multiList
157
158
158 return self.__formated_value
159 return self.__formated_value
159
160
160 format_func = eval(format)
161 format_func = eval(format)
161
162
162 self.__formated_value = format_func(value)
163 self.__formated_value = format_func(value)
163
164
164 return self.__formated_value
165 return self.__formated_value
165
166
166 def updateId(self, new_id):
167 def updateId(self, new_id):
167
168
168 self.id = str(new_id)
169 self.id = str(new_id)
169
170
170 def setup(self, id, name, value, format='str'):
171 def setup(self, id, name, value, format='str'):
171
172
172 self.id = str(id)
173 self.id = str(id)
173 self.name = name
174 self.name = name
174 self.value = str(value)
175 self.value = str(value)
175 self.format = str.lower(format)
176 self.format = str.lower(format)
176
177
177 try:
178 try:
178 self.getValue()
179 self.getValue()
179 except:
180 except:
180 return 0
181 return 0
181
182
182 return 1
183 return 1
183
184
184 def update(self, name, value, format='str'):
185 def update(self, name, value, format='str'):
185
186
186 self.name = name
187 self.name = name
187 self.value = str(value)
188 self.value = str(value)
188 self.format = format
189 self.format = format
189
190
190 def makeXml(self, opElement):
191 def makeXml(self, opElement):
191
192
192 parmElement = SubElement(opElement, self.ELEMENTNAME)
193 parmElement = SubElement(opElement, self.ELEMENTNAME)
193 parmElement.set('id', str(self.id))
194 parmElement.set('id', str(self.id))
194 parmElement.set('name', self.name)
195 parmElement.set('name', self.name)
195 parmElement.set('value', self.value)
196 parmElement.set('value', self.value)
196 parmElement.set('format', self.format)
197 parmElement.set('format', self.format)
197
198
198 def readXml(self, parmElement):
199 def readXml(self, parmElement):
199
200
200 self.id = parmElement.get('id')
201 self.id = parmElement.get('id')
201 self.name = parmElement.get('name')
202 self.name = parmElement.get('name')
202 self.value = parmElement.get('value')
203 self.value = parmElement.get('value')
203 self.format = str.lower(parmElement.get('format'))
204 self.format = str.lower(parmElement.get('format'))
204
205
205 #Compatible with old signal chain version
206 #Compatible with old signal chain version
206 if self.format == 'int' and self.name == 'idfigure':
207 if self.format == 'int' and self.name == 'idfigure':
207 self.name = 'id'
208 self.name = 'id'
208
209
209 def printattr(self):
210 def printattr(self):
210
211
211 print "Parameter[%s]: name = %s, value = %s, format = %s" %(self.id, self.name, self.value, self.format)
212 print "Parameter[%s]: name = %s, value = %s, format = %s" %(self.id, self.name, self.value, self.format)
212
213
213 class OperationConf():
214 class OperationConf():
214
215
215 id = None
216 id = None
216 name = None
217 name = None
217 priority = None
218 priority = None
218 type = None
219 type = None
219
220
220 parmConfObjList = []
221 parmConfObjList = []
221
222
222 ELEMENTNAME = 'Operation'
223 ELEMENTNAME = 'Operation'
223
224
224 def __init__(self):
225 def __init__(self):
225
226
226 self.id = '0'
227 self.id = '0'
227 self.name = None
228 self.name = None
228 self.priority = None
229 self.priority = None
229 self.type = 'self'
230 self.type = 'self'
230
231
231
232
232 def __getNewId(self):
233 def __getNewId(self):
233
234
234 return int(self.id)*10 + len(self.parmConfObjList) + 1
235 return int(self.id)*10 + len(self.parmConfObjList) + 1
235
236
236 def updateId(self, new_id):
237 def updateId(self, new_id):
237
238
238 self.id = str(new_id)
239 self.id = str(new_id)
239
240
240 n = 1
241 n = 1
241 for parmObj in self.parmConfObjList:
242 for parmObj in self.parmConfObjList:
242
243
243 idParm = str(int(new_id)*10 + n)
244 idParm = str(int(new_id)*10 + n)
244 parmObj.updateId(idParm)
245 parmObj.updateId(idParm)
245
246
246 n += 1
247 n += 1
247
248
248 def getElementName(self):
249 def getElementName(self):
249
250
250 return self.ELEMENTNAME
251 return self.ELEMENTNAME
251
252
252 def getParameterObjList(self):
253 def getParameterObjList(self):
253
254
254 return self.parmConfObjList
255 return self.parmConfObjList
255
256
256 def getParameterObj(self, parameterName):
257 def getParameterObj(self, parameterName):
257
258
258 for parmConfObj in self.parmConfObjList:
259 for parmConfObj in self.parmConfObjList:
259
260
260 if parmConfObj.name != parameterName:
261 if parmConfObj.name != parameterName:
261 continue
262 continue
262
263
263 return parmConfObj
264 return parmConfObj
264
265
265 return None
266 return None
266
267
267 def getParameterObjfromValue(self, parameterValue):
268 def getParameterObjfromValue(self, parameterValue):
268
269
269 for parmConfObj in self.parmConfObjList:
270 for parmConfObj in self.parmConfObjList:
270
271
271 if parmConfObj.getValue() != parameterValue:
272 if parmConfObj.getValue() != parameterValue:
272 continue
273 continue
273
274
274 return parmConfObj.getValue()
275 return parmConfObj.getValue()
275
276
276 return None
277 return None
277
278
278 def getParameterValue(self, parameterName):
279 def getParameterValue(self, parameterName):
279
280
280 parameterObj = self.getParameterObj(parameterName)
281 parameterObj = self.getParameterObj(parameterName)
281
282
282 # if not parameterObj:
283 # if not parameterObj:
283 # return None
284 # return None
284
285
285 value = parameterObj.getValue()
286 value = parameterObj.getValue()
286
287
287 return value
288 return value
288
289
289 def setup(self, id, name, priority, type):
290 def setup(self, id, name, priority, type):
290
291
291 self.id = str(id)
292 self.id = str(id)
292 self.name = name
293 self.name = name
293 self.type = type
294 self.type = type
294 self.priority = priority
295 self.priority = priority
295
296
296 self.parmConfObjList = []
297 self.parmConfObjList = []
297
298
298 def removeParameters(self):
299 def removeParameters(self):
299
300
300 for obj in self.parmConfObjList:
301 for obj in self.parmConfObjList:
301 del obj
302 del obj
302
303
303 self.parmConfObjList = []
304 self.parmConfObjList = []
304
305
305 def addParameter(self, name, value, format='str'):
306 def addParameter(self, name, value, format='str'):
306
307
307 id = self.__getNewId()
308 id = self.__getNewId()
308
309
309 parmConfObj = ParameterConf()
310 parmConfObj = ParameterConf()
310 if not parmConfObj.setup(id, name, value, format):
311 if not parmConfObj.setup(id, name, value, format):
311 return None
312 return None
312
313
313 self.parmConfObjList.append(parmConfObj)
314 self.parmConfObjList.append(parmConfObj)
314
315
315 return parmConfObj
316 return parmConfObj
316
317
317 def changeParameter(self, name, value, format='str'):
318 def changeParameter(self, name, value, format='str'):
318
319
319 parmConfObj = self.getParameterObj(name)
320 parmConfObj = self.getParameterObj(name)
320 parmConfObj.update(name, value, format)
321 parmConfObj.update(name, value, format)
321
322
322 return parmConfObj
323 return parmConfObj
323
324
324 def makeXml(self, upElement):
325 def makeXml(self, upElement):
325
326
326 opElement = SubElement(upElement, self.ELEMENTNAME)
327 opElement = SubElement(upElement, self.ELEMENTNAME)
327 opElement.set('id', str(self.id))
328 opElement.set('id', str(self.id))
328 opElement.set('name', self.name)
329 opElement.set('name', self.name)
329 opElement.set('type', self.type)
330 opElement.set('type', self.type)
330 opElement.set('priority', str(self.priority))
331 opElement.set('priority', str(self.priority))
331
332
332 for parmConfObj in self.parmConfObjList:
333 for parmConfObj in self.parmConfObjList:
333 parmConfObj.makeXml(opElement)
334 parmConfObj.makeXml(opElement)
334
335
335 def readXml(self, opElement):
336 def readXml(self, opElement):
336
337
337 self.id = opElement.get('id')
338 self.id = opElement.get('id')
338 self.name = opElement.get('name')
339 self.name = opElement.get('name')
339 self.type = opElement.get('type')
340 self.type = opElement.get('type')
340 self.priority = opElement.get('priority')
341 self.priority = opElement.get('priority')
341
342
342 #Compatible with old signal chain version
343 #Compatible with old signal chain version
343 #Use of 'run' method instead 'init'
344 #Use of 'run' method instead 'init'
344 if self.type == 'self' and self.name == 'init':
345 if self.type == 'self' and self.name == 'init':
345 self.name = 'run'
346 self.name = 'run'
346
347
347 self.parmConfObjList = []
348 self.parmConfObjList = []
348
349
349 parmElementList = opElement.getiterator(ParameterConf().getElementName())
350 parmElementList = opElement.getiterator(ParameterConf().getElementName())
350
351
351 for parmElement in parmElementList:
352 for parmElement in parmElementList:
352 parmConfObj = ParameterConf()
353 parmConfObj = ParameterConf()
353 parmConfObj.readXml(parmElement)
354 parmConfObj.readXml(parmElement)
354
355
355 #Compatible with old signal chain version
356 #Compatible with old signal chain version
356 #If an 'plot' OPERATION is found, changes name operation by the value of its type PARAMETER
357 #If an 'plot' OPERATION is found, changes name operation by the value of its type PARAMETER
357 if self.type != 'self' and self.name == 'Plot':
358 if self.type != 'self' and self.name == 'Plot':
358 if parmConfObj.format == 'str' and parmConfObj.name == 'type':
359 if parmConfObj.format == 'str' and parmConfObj.name == 'type':
359 self.name = parmConfObj.value
360 self.name = parmConfObj.value
360 continue
361 continue
361
362
362 self.parmConfObjList.append(parmConfObj)
363 self.parmConfObjList.append(parmConfObj)
363
364
364 def printattr(self):
365 def printattr(self):
365
366
366 print "%s[%s]: name = %s, type = %s, priority = %s" %(self.ELEMENTNAME,
367 print "%s[%s]: name = %s, type = %s, priority = %s" %(self.ELEMENTNAME,
367 self.id,
368 self.id,
368 self.name,
369 self.name,
369 self.type,
370 self.type,
370 self.priority)
371 self.priority)
371
372
372 for parmConfObj in self.parmConfObjList:
373 for parmConfObj in self.parmConfObjList:
373 parmConfObj.printattr()
374 parmConfObj.printattr()
374
375
375 def createObject(self):
376 def createObject(self):
376
377
377 if self.type == 'self':
378 if self.type == 'self':
378 raise ValueError, "This operation type cannot be created"
379 raise ValueError, "This operation type cannot be created"
379
380
380 if self.type == 'external' or self.type == 'other':
381 if self.type == 'external' or self.type == 'other':
381 className = eval(self.name)
382 className = eval(self.name)
382 opObj = className()
383 opObj = className()
383
384
384 return opObj
385 return opObj
385
386
386 class ProcUnitConf():
387 class ProcUnitConf():
387
388
388 id = None
389 id = None
389 name = None
390 name = None
390 datatype = None
391 datatype = None
391 inputId = None
392 inputId = None
392 parentId = None
393 parentId = None
393
394
394 opConfObjList = []
395 opConfObjList = []
395
396
396 procUnitObj = None
397 procUnitObj = None
397 opObjList = []
398 opObjList = []
398
399
399 ELEMENTNAME = 'ProcUnit'
400 ELEMENTNAME = 'ProcUnit'
400
401
401 def __init__(self):
402 def __init__(self):
402
403
403 self.id = None
404 self.id = None
404 self.datatype = None
405 self.datatype = None
405 self.name = None
406 self.name = None
406 self.inputId = None
407 self.inputId = None
407
408
408 self.opConfObjList = []
409 self.opConfObjList = []
409
410
410 self.procUnitObj = None
411 self.procUnitObj = None
411 self.opObjDict = {}
412 self.opObjDict = {}
412
413
413 def __getPriority(self):
414 def __getPriority(self):
414
415
415 return len(self.opConfObjList)+1
416 return len(self.opConfObjList)+1
416
417
417 def __getNewId(self):
418 def __getNewId(self):
418
419
419 return int(self.id)*10 + len(self.opConfObjList) + 1
420 return int(self.id)*10 + len(self.opConfObjList) + 1
420
421
421 def getElementName(self):
422 def getElementName(self):
422
423
423 return self.ELEMENTNAME
424 return self.ELEMENTNAME
424
425
425 def getId(self):
426 def getId(self):
426
427
427 return self.id
428 return self.id
428
429
429 def updateId(self, new_id, parentId=parentId):
430 def updateId(self, new_id, parentId=parentId):
430
431
431
432
432 new_id = int(parentId)*10 + (int(self.id) % 10)
433 new_id = int(parentId)*10 + (int(self.id) % 10)
433 new_inputId = int(parentId)*10 + (int(self.inputId) % 10)
434 new_inputId = int(parentId)*10 + (int(self.inputId) % 10)
434
435
435 #If this proc unit has not inputs
436 #If this proc unit has not inputs
436 if self.inputId == '0':
437 if self.inputId == '0':
437 new_inputId = 0
438 new_inputId = 0
438
439
439 n = 1
440 n = 1
440 for opConfObj in self.opConfObjList:
441 for opConfObj in self.opConfObjList:
441
442
442 idOp = str(int(new_id)*10 + n)
443 idOp = str(int(new_id)*10 + n)
443 opConfObj.updateId(idOp)
444 opConfObj.updateId(idOp)
444
445
445 n += 1
446 n += 1
446
447
447 self.parentId = str(parentId)
448 self.parentId = str(parentId)
448 self.id = str(new_id)
449 self.id = str(new_id)
449 self.inputId = str(new_inputId)
450 self.inputId = str(new_inputId)
450
451
451
452
452 def getInputId(self):
453 def getInputId(self):
453
454
454 return self.inputId
455 return self.inputId
455
456
456 def getOperationObjList(self):
457 def getOperationObjList(self):
457
458
458 return self.opConfObjList
459 return self.opConfObjList
459
460
460 def getOperationObj(self, name=None):
461 def getOperationObj(self, name=None):
461
462
462 for opConfObj in self.opConfObjList:
463 for opConfObj in self.opConfObjList:
463
464
464 if opConfObj.name != name:
465 if opConfObj.name != name:
465 continue
466 continue
466
467
467 return opConfObj
468 return opConfObj
468
469
469 return None
470 return None
470
471
471 def getOpObjfromParamValue(self, value=None):
472 def getOpObjfromParamValue(self, value=None):
472
473
473 for opConfObj in self.opConfObjList:
474 for opConfObj in self.opConfObjList:
474 if opConfObj.getParameterObjfromValue(parameterValue=value) != value:
475 if opConfObj.getParameterObjfromValue(parameterValue=value) != value:
475 continue
476 continue
476 return opConfObj
477 return opConfObj
477 return None
478 return None
478
479
479 def getProcUnitObj(self):
480 def getProcUnitObj(self):
480
481
481 return self.procUnitObj
482 return self.procUnitObj
482
483
483 def setup(self, id, name, datatype, inputId, parentId=None):
484 def setup(self, id, name, datatype, inputId, parentId=None):
484
485
485 #Compatible with old signal chain version
486 #Compatible with old signal chain version
486 if datatype==None and name==None:
487 if datatype==None and name==None:
487 raise ValueError, "datatype or name should be defined"
488 raise ValueError, "datatype or name should be defined"
488
489
489 if name==None:
490 if name==None:
490 if 'Proc' in datatype:
491 if 'Proc' in datatype:
491 name = datatype
492 name = datatype
492 else:
493 else:
493 name = '%sProc' %(datatype)
494 name = '%sProc' %(datatype)
494
495
495 if datatype==None:
496 if datatype==None:
496 datatype = name.replace('Proc','')
497 datatype = name.replace('Proc','')
497
498
498 self.id = str(id)
499 self.id = str(id)
499 self.name = name
500 self.name = name
500 self.datatype = datatype
501 self.datatype = datatype
501 self.inputId = inputId
502 self.inputId = inputId
502 self.parentId = parentId
503 self.parentId = parentId
503
504
504 self.opConfObjList = []
505 self.opConfObjList = []
505
506
506 self.addOperation(name='run', optype='self')
507 self.addOperation(name='run', optype='self')
507
508
508 def removeOperations(self):
509 def removeOperations(self):
509
510
510 for obj in self.opConfObjList:
511 for obj in self.opConfObjList:
511 del obj
512 del obj
512
513
513 self.opConfObjList = []
514 self.opConfObjList = []
514 self.addOperation(name='run')
515 self.addOperation(name='run')
515
516
516 def addParameter(self, **kwargs):
517 def addParameter(self, **kwargs):
517 '''
518 '''
518 Add parameters to "run" operation
519 Add parameters to "run" operation
519 '''
520 '''
520 opObj = self.opConfObjList[0]
521 opObj = self.opConfObjList[0]
521
522
522 opObj.addParameter(**kwargs)
523 opObj.addParameter(**kwargs)
523
524
524 return opObj
525 return opObj
525
526
526 def addOperation(self, name, optype='self'):
527 def addOperation(self, name, optype='self'):
527
528
528 id = self.__getNewId()
529 id = self.__getNewId()
529 priority = self.__getPriority()
530 priority = self.__getPriority()
530
531
531 opConfObj = OperationConf()
532 opConfObj = OperationConf()
532 opConfObj.setup(id, name=name, priority=priority, type=optype)
533 opConfObj.setup(id, name=name, priority=priority, type=optype)
533
534
534 self.opConfObjList.append(opConfObj)
535 self.opConfObjList.append(opConfObj)
535
536
536 return opConfObj
537 return opConfObj
537
538
538 def makeXml(self, procUnitElement):
539 def makeXml(self, procUnitElement):
539
540
540 upElement = SubElement(procUnitElement, self.ELEMENTNAME)
541 upElement = SubElement(procUnitElement, self.ELEMENTNAME)
541 upElement.set('id', str(self.id))
542 upElement.set('id', str(self.id))
542 upElement.set('name', self.name)
543 upElement.set('name', self.name)
543 upElement.set('datatype', self.datatype)
544 upElement.set('datatype', self.datatype)
544 upElement.set('inputId', str(self.inputId))
545 upElement.set('inputId', str(self.inputId))
545
546
546 for opConfObj in self.opConfObjList:
547 for opConfObj in self.opConfObjList:
547 opConfObj.makeXml(upElement)
548 opConfObj.makeXml(upElement)
548
549
549 def readXml(self, upElement):
550 def readXml(self, upElement):
550
551
551 self.id = upElement.get('id')
552 self.id = upElement.get('id')
552 self.name = upElement.get('name')
553 self.name = upElement.get('name')
553 self.datatype = upElement.get('datatype')
554 self.datatype = upElement.get('datatype')
554 self.inputId = upElement.get('inputId')
555 self.inputId = upElement.get('inputId')
555
556
556 if self.ELEMENTNAME == "ReadUnit":
557 if self.ELEMENTNAME == "ReadUnit":
557 self.datatype = self.datatype.replace("Reader", "")
558 self.datatype = self.datatype.replace("Reader", "")
558
559
559 if self.ELEMENTNAME == "ProcUnit":
560 if self.ELEMENTNAME == "ProcUnit":
560 self.datatype = self.datatype.replace("Proc", "")
561 self.datatype = self.datatype.replace("Proc", "")
561
562
562 if self.inputId == 'None':
563 if self.inputId == 'None':
563 self.inputId = '0'
564 self.inputId = '0'
564
565
565 self.opConfObjList = []
566 self.opConfObjList = []
566
567
567 opElementList = upElement.getiterator(OperationConf().getElementName())
568 opElementList = upElement.getiterator(OperationConf().getElementName())
568
569
569 for opElement in opElementList:
570 for opElement in opElementList:
570 opConfObj = OperationConf()
571 opConfObj = OperationConf()
571 opConfObj.readXml(opElement)
572 opConfObj.readXml(opElement)
572 self.opConfObjList.append(opConfObj)
573 self.opConfObjList.append(opConfObj)
573
574
574 def printattr(self):
575 def printattr(self):
575
576
576 print "%s[%s]: name = %s, datatype = %s, inputId = %s" %(self.ELEMENTNAME,
577 print "%s[%s]: name = %s, datatype = %s, inputId = %s" %(self.ELEMENTNAME,
577 self.id,
578 self.id,
578 self.name,
579 self.name,
579 self.datatype,
580 self.datatype,
580 self.inputId)
581 self.inputId)
581
582
582 for opConfObj in self.opConfObjList:
583 for opConfObj in self.opConfObjList:
583 opConfObj.printattr()
584 opConfObj.printattr()
584
585
585 def createObjects(self):
586 def createObjects(self):
586
587
587 className = eval(self.name)
588 className = eval(self.name)
588 procUnitObj = className()
589 procUnitObj = className()
589
590
590 for opConfObj in self.opConfObjList:
591 for opConfObj in self.opConfObjList:
591
592
592 if opConfObj.type == 'self':
593 if opConfObj.type == 'self':
593 continue
594 continue
594
595
595 opObj = opConfObj.createObject()
596 opObj = opConfObj.createObject()
596
597
597 self.opObjDict[opConfObj.id] = opObj
598 self.opObjDict[opConfObj.id] = opObj
598 procUnitObj.addOperation(opObj, opConfObj.id)
599 procUnitObj.addOperation(opObj, opConfObj.id)
599
600
600 self.procUnitObj = procUnitObj
601 self.procUnitObj = procUnitObj
601
602
602 return procUnitObj
603 return procUnitObj
603
604
604 def run(self):
605 def run(self):
605
606
606 finalSts = False
607 is_ok = False
607
608
608 for opConfObj in self.opConfObjList:
609 for opConfObj in self.opConfObjList:
609
610
610 kwargs = {}
611 kwargs = {}
611 for parmConfObj in opConfObj.getParameterObjList():
612 for parmConfObj in opConfObj.getParameterObjList():
612 if opConfObj.name == 'run' and parmConfObj.name == 'datatype':
613 if opConfObj.name == 'run' and parmConfObj.name == 'datatype':
613 continue
614 continue
614
615
615 kwargs[parmConfObj.name] = parmConfObj.getValue()
616 kwargs[parmConfObj.name] = parmConfObj.getValue()
616
617
617 #print "\tRunning the '%s' operation with %s" %(opConfObj.name, opConfObj.id)
618 #print "\tRunning the '%s' operation with %s" %(opConfObj.name, opConfObj.id)
618 sts = self.procUnitObj.call(opType = opConfObj.type,
619 sts = self.procUnitObj.call(opType = opConfObj.type,
619 opName = opConfObj.name,
620 opName = opConfObj.name,
620 opId = opConfObj.id,
621 opId = opConfObj.id,
621 **kwargs)
622 **kwargs)
622 finalSts = finalSts or sts
623 is_ok = is_ok or sts
623
624
624 return finalSts
625 return is_ok
625
626
626 def close(self):
627 def close(self):
627
628
628 for opConfObj in self.opConfObjList:
629 for opConfObj in self.opConfObjList:
629 if opConfObj.type == 'self':
630 if opConfObj.type == 'self':
630 continue
631 continue
631
632
632 opObj = self.procUnitObj.getOperationObj(opConfObj.id)
633 opObj = self.procUnitObj.getOperationObj(opConfObj.id)
633 opObj.close()
634 opObj.close()
634
635
635 self.procUnitObj.close()
636 self.procUnitObj.close()
636
637
637 return
638 return
638
639
639 class ReadUnitConf(ProcUnitConf):
640 class ReadUnitConf(ProcUnitConf):
640
641
641 path = None
642 path = None
642 startDate = None
643 startDate = None
643 endDate = None
644 endDate = None
644 startTime = None
645 startTime = None
645 endTime = None
646 endTime = None
646
647
647 ELEMENTNAME = 'ReadUnit'
648 ELEMENTNAME = 'ReadUnit'
648
649
649 def __init__(self):
650 def __init__(self):
650
651
651 self.id = None
652 self.id = None
652 self.datatype = None
653 self.datatype = None
653 self.name = None
654 self.name = None
654 self.inputId = None
655 self.inputId = None
655
656
656 self.parentId = None
657 self.parentId = None
657
658
658 self.opConfObjList = []
659 self.opConfObjList = []
659 self.opObjList = []
660 self.opObjList = []
660
661
661 def getElementName(self):
662 def getElementName(self):
662
663
663 return self.ELEMENTNAME
664 return self.ELEMENTNAME
664
665
665 def setup(self, id, name, datatype, path, startDate="", endDate="", startTime="", endTime="", parentId=None, **kwargs):
666 def setup(self, id, name, datatype, path, startDate="", endDate="", startTime="", endTime="", parentId=None, **kwargs):
666
667
667 #Compatible with old signal chain version
668 #Compatible with old signal chain version
668 if datatype==None and name==None:
669 if datatype==None and name==None:
669 raise ValueError, "datatype or name should be defined"
670 raise ValueError, "datatype or name should be defined"
670
671
671 if name==None:
672 if name==None:
672 if 'Reader' in datatype:
673 if 'Reader' in datatype:
673 name = datatype
674 name = datatype
674 else:
675 else:
675 name = '%sReader' %(datatype)
676 name = '%sReader' %(datatype)
676
677
677 if datatype==None:
678 if datatype==None:
678 datatype = name.replace('Reader','')
679 datatype = name.replace('Reader','')
679
680
680 self.id = id
681 self.id = id
681 self.name = name
682 self.name = name
682 self.datatype = datatype
683 self.datatype = datatype
683
684
684 self.path = path
685 self.path = path
685 self.startDate = startDate
686 self.startDate = startDate
686 self.endDate = endDate
687 self.endDate = endDate
687 self.startTime = startTime
688 self.startTime = startTime
688 self.endTime = endTime
689 self.endTime = endTime
689
690
690 self.inputId = '0'
691 self.inputId = '0'
691 self.parentId = parentId
692 self.parentId = parentId
692
693
693 self.addRunOperation(**kwargs)
694 self.addRunOperation(**kwargs)
694
695
695 def update(self, datatype, path, startDate, endDate, startTime, endTime, parentId=None, name=None, **kwargs):
696 def update(self, datatype, path, startDate, endDate, startTime, endTime, parentId=None, name=None, **kwargs):
696
697
697 #Compatible with old signal chain version
698 #Compatible with old signal chain version
698 if datatype==None and name==None:
699 if datatype==None and name==None:
699 raise ValueError, "datatype or name should be defined"
700 raise ValueError, "datatype or name should be defined"
700
701
701 if name==None:
702 if name==None:
702 if 'Reader' in datatype:
703 if 'Reader' in datatype:
703 name = datatype
704 name = datatype
704 else:
705 else:
705 name = '%sReader' %(datatype)
706 name = '%sReader' %(datatype)
706
707
707 if datatype==None:
708 if datatype==None:
708 datatype = name.replace('Reader','')
709 datatype = name.replace('Reader','')
709
710
710 self.datatype = datatype
711 self.datatype = datatype
711 self.name = name
712 self.name = name
712 self.path = path
713 self.path = path
713 self.startDate = startDate
714 self.startDate = startDate
714 self.endDate = endDate
715 self.endDate = endDate
715 self.startTime = startTime
716 self.startTime = startTime
716 self.endTime = endTime
717 self.endTime = endTime
717
718
718 self.inputId = '0'
719 self.inputId = '0'
719 self.parentId = parentId
720 self.parentId = parentId
720
721
721 self.updateRunOperation(**kwargs)
722 self.updateRunOperation(**kwargs)
722
723
723 def addRunOperation(self, **kwargs):
724 def addRunOperation(self, **kwargs):
724
725
725 opObj = self.addOperation(name = 'run', optype = 'self')
726 opObj = self.addOperation(name = 'run', optype = 'self')
726
727
727 opObj.addParameter(name='datatype' , value=self.datatype, format='str')
728 opObj.addParameter(name='datatype' , value=self.datatype, format='str')
728 opObj.addParameter(name='path' , value=self.path, format='str')
729 opObj.addParameter(name='path' , value=self.path, format='str')
729 opObj.addParameter(name='startDate' , value=self.startDate, format='date')
730 opObj.addParameter(name='startDate' , value=self.startDate, format='date')
730 opObj.addParameter(name='endDate' , value=self.endDate, format='date')
731 opObj.addParameter(name='endDate' , value=self.endDate, format='date')
731 opObj.addParameter(name='startTime' , value=self.startTime, format='time')
732 opObj.addParameter(name='startTime' , value=self.startTime, format='time')
732 opObj.addParameter(name='endTime' , value=self.endTime, format='time')
733 opObj.addParameter(name='endTime' , value=self.endTime, format='time')
733
734
734 for key, value in kwargs.items():
735 for key, value in kwargs.items():
735 opObj.addParameter(name=key, value=value, format=type(value).__name__)
736 opObj.addParameter(name=key, value=value, format=type(value).__name__)
736
737
737 return opObj
738 return opObj
738
739
739 def updateRunOperation(self, **kwargs):
740 def updateRunOperation(self, **kwargs):
740
741
741 opObj = self.getOperationObj(name = 'run')
742 opObj = self.getOperationObj(name = 'run')
742 opObj.removeParameters()
743 opObj.removeParameters()
743
744
744 opObj.addParameter(name='datatype' , value=self.datatype, format='str')
745 opObj.addParameter(name='datatype' , value=self.datatype, format='str')
745 opObj.addParameter(name='path' , value=self.path, format='str')
746 opObj.addParameter(name='path' , value=self.path, format='str')
746 opObj.addParameter(name='startDate' , value=self.startDate, format='date')
747 opObj.addParameter(name='startDate' , value=self.startDate, format='date')
747 opObj.addParameter(name='endDate' , value=self.endDate, format='date')
748 opObj.addParameter(name='endDate' , value=self.endDate, format='date')
748 opObj.addParameter(name='startTime' , value=self.startTime, format='time')
749 opObj.addParameter(name='startTime' , value=self.startTime, format='time')
749 opObj.addParameter(name='endTime' , value=self.endTime, format='time')
750 opObj.addParameter(name='endTime' , value=self.endTime, format='time')
750
751
751 for key, value in kwargs.items():
752 for key, value in kwargs.items():
752 opObj.addParameter(name=key, value=value, format=type(value).__name__)
753 opObj.addParameter(name=key, value=value, format=type(value).__name__)
753
754
754 return opObj
755 return opObj
755
756
756 class Project():
757 class Project():
757
758
758 id = None
759 id = None
759 name = None
760 name = None
760 description = None
761 description = None
761 # readUnitConfObjList = None
762 # readUnitConfObjList = None
762 procUnitConfObjDict = None
763 procUnitConfObjDict = None
763
764
764 ELEMENTNAME = 'Project'
765 ELEMENTNAME = 'Project'
765
766
766 def __init__(self, control=None, dataq=None):
767 def __init__(self):
767
768
768 self.id = None
769 self.id = None
769 self.name = None
770 self.name = None
770 self.description = None
771 self.description = None
771
772
772 self.procUnitConfObjDict = {}
773 self.procUnitConfObjDict = {}
773
774
774 #global data_q
775 #data_q = dataq
776
777 if control==None:
778 control = {'stop':False,'pause':False}
779
780 self.control = control
781
782 def __getNewId(self):
775 def __getNewId(self):
783
776
784 id = int(self.id)*10 + len(self.procUnitConfObjDict) + 1
777 id = int(self.id)*10 + len(self.procUnitConfObjDict) + 1
785
778
786 return str(id)
779 return str(id)
787
780
788 def getElementName(self):
781 def getElementName(self):
789
782
790 return self.ELEMENTNAME
783 return self.ELEMENTNAME
791
784
792 def getId(self):
785 def getId(self):
793
786
794 return self.id
787 return self.id
795
788
796 def updateId(self, new_id):
789 def updateId(self, new_id):
797
790
798 self.id = str(new_id)
791 self.id = str(new_id)
799
792
800 keyList = self.procUnitConfObjDict.keys()
793 keyList = self.procUnitConfObjDict.keys()
801 keyList.sort()
794 keyList.sort()
802
795
803 n = 1
796 n = 1
804 newProcUnitConfObjDict = {}
797 newProcUnitConfObjDict = {}
805
798
806 for procKey in keyList:
799 for procKey in keyList:
807
800
808 procUnitConfObj = self.procUnitConfObjDict[procKey]
801 procUnitConfObj = self.procUnitConfObjDict[procKey]
809 idProcUnit = str(int(self.id)*10 + n)
802 idProcUnit = str(int(self.id)*10 + n)
810 procUnitConfObj.updateId(idProcUnit, parentId = self.id)
803 procUnitConfObj.updateId(idProcUnit, parentId = self.id)
811
804
812 newProcUnitConfObjDict[idProcUnit] = procUnitConfObj
805 newProcUnitConfObjDict[idProcUnit] = procUnitConfObj
813 n += 1
806 n += 1
814
807
815 self.procUnitConfObjDict = newProcUnitConfObjDict
808 self.procUnitConfObjDict = newProcUnitConfObjDict
816
809
817 def setup(self, id, name, description):
810 def setup(self, id, name, description):
818
811
819 self.id = str(id)
812 self.id = str(id)
820 self.name = name
813 self.name = name
821 self.description = description
814 self.description = description
822
815
823 def update(self, name, description):
816 def update(self, name, description):
824
817
825 self.name = name
818 self.name = name
826 self.description = description
819 self.description = description
827
820
828 def addReadUnit(self, datatype=None, name=None, **kwargs):
821 def addReadUnit(self, datatype=None, name=None, **kwargs):
829
822
830 idReadUnit = self.__getNewId()
823 idReadUnit = self.__getNewId()
831
824
832 readUnitConfObj = ReadUnitConf()
825 readUnitConfObj = ReadUnitConf()
833 readUnitConfObj.setup(idReadUnit, name, datatype, parentId=self.id, **kwargs)
826 readUnitConfObj.setup(idReadUnit, name, datatype, parentId=self.id, **kwargs)
834
827
835 self.procUnitConfObjDict[readUnitConfObj.getId()] = readUnitConfObj
828 self.procUnitConfObjDict[readUnitConfObj.getId()] = readUnitConfObj
836
829
837 return readUnitConfObj
830 return readUnitConfObj
838
831
839 def addProcUnit(self, inputId='0', datatype=None, name=None):
832 def addProcUnit(self, inputId='0', datatype=None, name=None):
840
833
841 idProcUnit = self.__getNewId()
834 idProcUnit = self.__getNewId()
842
835
843 procUnitConfObj = ProcUnitConf()
836 procUnitConfObj = ProcUnitConf()
844 procUnitConfObj.setup(idProcUnit, name, datatype, inputId, parentId=self.id)
837 procUnitConfObj.setup(idProcUnit, name, datatype, inputId, parentId=self.id)
845
838
846 self.procUnitConfObjDict[procUnitConfObj.getId()] = procUnitConfObj
839 self.procUnitConfObjDict[procUnitConfObj.getId()] = procUnitConfObj
847
840
848 return procUnitConfObj
841 return procUnitConfObj
849
842
850 def removeProcUnit(self, id):
843 def removeProcUnit(self, id):
851
844
852 if id in self.procUnitConfObjDict.keys():
845 if id in self.procUnitConfObjDict.keys():
853 self.procUnitConfObjDict.pop(id)
846 self.procUnitConfObjDict.pop(id)
854
847
855 def getReadUnitId(self):
848 def getReadUnitId(self):
856
849
857 readUnitConfObj = self.getReadUnitObj()
850 readUnitConfObj = self.getReadUnitObj()
858
851
859 return readUnitConfObj.id
852 return readUnitConfObj.id
860
853
861 def getReadUnitObj(self):
854 def getReadUnitObj(self):
862
855
863 for obj in self.procUnitConfObjDict.values():
856 for obj in self.procUnitConfObjDict.values():
864 if obj.getElementName() == "ReadUnit":
857 if obj.getElementName() == "ReadUnit":
865 return obj
858 return obj
866
859
867 return None
860 return None
868
861
869 def getProcUnitObj(self, id=None, name=None):
862 def getProcUnitObj(self, id=None, name=None):
870
863
871 if id != None:
864 if id != None:
872 return self.procUnitConfObjDict[id]
865 return self.procUnitConfObjDict[id]
873
866
874 if name != None:
867 if name != None:
875 return self.getProcUnitObjByName(name)
868 return self.getProcUnitObjByName(name)
876
869
877 return None
870 return None
878
871
879 def getProcUnitObjByName(self, name):
872 def getProcUnitObjByName(self, name):
880
873
881 for obj in self.procUnitConfObjDict.values():
874 for obj in self.procUnitConfObjDict.values():
882 if obj.name == name:
875 if obj.name == name:
883 return obj
876 return obj
884
877
885 return None
878 return None
886
879
887 def procUnitItems(self):
880 def procUnitItems(self):
888
881
889 return self.procUnitConfObjDict.items()
882 return self.procUnitConfObjDict.items()
890
883
891 def makeXml(self):
884 def makeXml(self):
892
885
893 projectElement = Element('Project')
886 projectElement = Element('Project')
894 projectElement.set('id', str(self.id))
887 projectElement.set('id', str(self.id))
895 projectElement.set('name', self.name)
888 projectElement.set('name', self.name)
896 projectElement.set('description', self.description)
889 projectElement.set('description', self.description)
897
890
898 for procUnitConfObj in self.procUnitConfObjDict.values():
891 for procUnitConfObj in self.procUnitConfObjDict.values():
899 procUnitConfObj.makeXml(projectElement)
892 procUnitConfObj.makeXml(projectElement)
900
893
901 self.projectElement = projectElement
894 self.projectElement = projectElement
902
895
903 def writeXml(self, filename):
896 def writeXml(self, filename):
904
897
905 self.makeXml()
898 self.makeXml()
906
899
907 #print prettify(self.projectElement)
900 #print prettify(self.projectElement)
908
901
909 ElementTree(self.projectElement).write(filename, method='xml')
902 ElementTree(self.projectElement).write(filename, method='xml')
910
903
911 def readXml(self, filename):
904 def readXml(self, filename):
912
905
913 self.projectElement = None
906 self.projectElement = None
914 self.procUnitConfObjDict = {}
907 self.procUnitConfObjDict = {}
915
908
916 self.projectElement = ElementTree().parse(filename)
909 self.projectElement = ElementTree().parse(filename)
917
910
918 self.project = self.projectElement.tag
911 self.project = self.projectElement.tag
919
912
920 self.id = self.projectElement.get('id')
913 self.id = self.projectElement.get('id')
921 self.name = self.projectElement.get('name')
914 self.name = self.projectElement.get('name')
922 self.description = self.projectElement.get('description')
915 self.description = self.projectElement.get('description')
923
916
924 readUnitElementList = self.projectElement.getiterator(ReadUnitConf().getElementName())
917 readUnitElementList = self.projectElement.getiterator(ReadUnitConf().getElementName())
925
918
926 for readUnitElement in readUnitElementList:
919 for readUnitElement in readUnitElementList:
927 readUnitConfObj = ReadUnitConf()
920 readUnitConfObj = ReadUnitConf()
928 readUnitConfObj.readXml(readUnitElement)
921 readUnitConfObj.readXml(readUnitElement)
929
922
930 if readUnitConfObj.parentId == None:
923 if readUnitConfObj.parentId == None:
931 readUnitConfObj.parentId = self.id
924 readUnitConfObj.parentId = self.id
932
925
933 self.procUnitConfObjDict[readUnitConfObj.getId()] = readUnitConfObj
926 self.procUnitConfObjDict[readUnitConfObj.getId()] = readUnitConfObj
934
927
935 procUnitElementList = self.projectElement.getiterator(ProcUnitConf().getElementName())
928 procUnitElementList = self.projectElement.getiterator(ProcUnitConf().getElementName())
936
929
937 for procUnitElement in procUnitElementList:
930 for procUnitElement in procUnitElementList:
938 procUnitConfObj = ProcUnitConf()
931 procUnitConfObj = ProcUnitConf()
939 procUnitConfObj.readXml(procUnitElement)
932 procUnitConfObj.readXml(procUnitElement)
940
933
941 if procUnitConfObj.parentId == None:
934 if procUnitConfObj.parentId == None:
942 procUnitConfObj.parentId = self.id
935 procUnitConfObj.parentId = self.id
943
936
944 self.procUnitConfObjDict[procUnitConfObj.getId()] = procUnitConfObj
937 self.procUnitConfObjDict[procUnitConfObj.getId()] = procUnitConfObj
945
938
946 def printattr(self):
939 def printattr(self):
947
940
948 print "Project[%s]: name = %s, description = %s" %(self.id,
941 print "Project[%s]: name = %s, description = %s" %(self.id,
949 self.name,
942 self.name,
950 self.description)
943 self.description)
951
944
952 for procUnitConfObj in self.procUnitConfObjDict.values():
945 for procUnitConfObj in self.procUnitConfObjDict.values():
953 procUnitConfObj.printattr()
946 procUnitConfObj.printattr()
954
947
955 def createObjects(self):
948 def createObjects(self):
956
949
957 for procUnitConfObj in self.procUnitConfObjDict.values():
950 for procUnitConfObj in self.procUnitConfObjDict.values():
958 procUnitConfObj.createObjects()
951 procUnitConfObj.createObjects()
959
952
960 def __connect(self, objIN, thisObj):
953 def __connect(self, objIN, thisObj):
961
954
962 thisObj.setInput(objIN.getOutputObj())
955 thisObj.setInput(objIN.getOutputObj())
963
956
964 def connectObjects(self):
957 def connectObjects(self):
965
958
966 for thisPUConfObj in self.procUnitConfObjDict.values():
959 for thisPUConfObj in self.procUnitConfObjDict.values():
967
960
968 inputId = thisPUConfObj.getInputId()
961 inputId = thisPUConfObj.getInputId()
969
962
970 if int(inputId) == 0:
963 if int(inputId) == 0:
971 continue
964 continue
972
965
973 #Get input object
966 #Get input object
974 puConfINObj = self.procUnitConfObjDict[inputId]
967 puConfINObj = self.procUnitConfObjDict[inputId]
975 puObjIN = puConfINObj.getProcUnitObj()
968 puObjIN = puConfINObj.getProcUnitObj()
976
969
977 #Get current object
970 #Get current object
978 thisPUObj = thisPUConfObj.getProcUnitObj()
971 thisPUObj = thisPUConfObj.getProcUnitObj()
979
972
980 self.__connect(puObjIN, thisPUObj)
973 self.__connect(puObjIN, thisPUObj)
981
974
975 def isPaused(self):
976 return 0
977
978 def isStopped(self):
979 return 0
980
981 def runController(self):
982 """
983 returns 0 when this process has been stopped, 1 otherwise
984 """
985
986 if self.isPaused():
987 print "Process suspended"
988
989 while True:
990 sleep(0.1)
991
992 if not self.isPaused():
993 break
994
995 if self.isStopped():
996 break
997
998 print "Process reinitialized"
999
1000 if self.isStopped():
1001 print "Process stopped"
1002 return 0
1003
1004 return 1
1005
982 def run(self):
1006 def run(self):
983
1007
984 print
1008 print
985 print "*"*50
1009 print "*"*60
986 print " Starting SIGNAL CHAIN PROCESSING "
1010 print " Starting SIGNAL CHAIN PROCESSING "
987 print "*"*50
1011 print "*"*60
988 print
1012 print
989
1013
990 keyList = self.procUnitConfObjDict.keys()
1014 keyList = self.procUnitConfObjDict.keys()
991 keyList.sort()
1015 keyList.sort()
992
1016
993 while(True):
1017 while(True):
994
1018
995 finalSts = False
1019 is_ok = False
996
1020
997 for procKey in keyList:
1021 for procKey in keyList:
998 # print "Running the '%s' process with %s" %(procUnitConfObj.name, procUnitConfObj.id)
1022 # print "Running the '%s' process with %s" %(procUnitConfObj.name, procUnitConfObj.id)
999
1023
1000 procUnitConfObj = self.procUnitConfObjDict[procKey]
1024 procUnitConfObj = self.procUnitConfObjDict[procKey]
1001 sts = procUnitConfObj.run()
1002 finalSts = finalSts or sts
1003
1025
1004 #If every process unit finished so end process
1026 message = ""
1005 if not(finalSts):
1027 try:
1006 print "Every process unit have finished"
1028 sts = procUnitConfObj.run()
1007 break
1029 is_ok = is_ok or sts
1030 except:
1031 sleep(1)
1032 err = traceback.format_exception(sys.exc_info()[0],
1033 sys.exc_info()[1],
1034 sys.exc_info()[2])
1008
1035
1009 if self.control['pause']:
1036 for thisLine in err:
1010 print "Process suspended"
1037 message += thisLine
1011
1038
1012 while True:
1039 print message
1040 # self.sendReport(message)
1013 sleep(0.1)
1041 sleep(0.1)
1042 is_ok = False
1014
1043
1015 if not self.control['pause']:
1016 break
1044 break
1017
1045
1018 if self.control['stop']:
1046 #If every process unit finished so end process
1047 if not(is_ok):
1048 print message
1049 print "Every process unit have finished"
1019 break
1050 break
1020 print "Process reinitialized"
1021
1051
1022 if self.control['stop']:
1052 if not self.runController():
1023 # print "Process stopped"
1024 break
1053 break
1025
1054
1026 #Closing every process
1055 #Closing every process
1027 for procKey in keyList:
1056 for procKey in keyList:
1028 procUnitConfObj = self.procUnitConfObjDict[procKey]
1057 procUnitConfObj = self.procUnitConfObjDict[procKey]
1029 procUnitConfObj.close()
1058 procUnitConfObj.close()
1030
1059
1031 print "Process finished"
1060 print "Process finished"
1032
1061
1033 def start(self, filename):
1062 def start(self, filename):
1034
1063
1035 self.writeXml(filename)
1064 self.writeXml(filename)
1036 self.readXml(filename)
1065 self.readXml(filename)
1037
1066
1038 self.createObjects()
1067 self.createObjects()
1039 self.connectObjects()
1068 self.connectObjects()
1040 self.run()
1069 self.run()
1041
1070
1071 def sendReport(self, message, subject="Error occurred in Signal Chain", email=SCHAIN_MAIL):
1072
1073 import smtplib
1074
1075 print subject
1076 print "Sending report to %s ..." %email
1077
1078 message = 'From: (Python Signal Chain API) ' + email + '\n' + \
1079 'To: ' + email + '\n' + \
1080 'Subject: ' + str(subject) + '\n' + \
1081 'Content-type: text/html\n\n' + message
1082
1083 server = smtplib.SMTP(EMAIL_SERVER)
1084 server.sendmail(email.split(',')[0],
1085 email.split(','), message)
1086 server.quit()
1087
1042 if __name__ == '__main__':
1088 if __name__ == '__main__':
1043
1089
1044 desc = "Segundo Test"
1090 desc = "Segundo Test"
1045 filename = "schain.xml"
1091 filename = "schain.xml"
1046
1092
1047 controllerObj = Project()
1093 controllerObj = Project()
1048
1094
1049 controllerObj.setup(id = '191', name='test01', description=desc)
1095 controllerObj.setup(id = '191', name='test01', description=desc)
1050
1096
1051 readUnitConfObj = controllerObj.addReadUnit(datatype='Voltage',
1097 readUnitConfObj = controllerObj.addReadUnit(datatype='Voltage',
1052 path='data/rawdata/',
1098 path='data/rawdata/',
1053 startDate='2011/01/01',
1099 startDate='2011/01/01',
1054 endDate='2012/12/31',
1100 endDate='2012/12/31',
1055 startTime='00:00:00',
1101 startTime='00:00:00',
1056 endTime='23:59:59',
1102 endTime='23:59:59',
1057 online=1,
1103 online=1,
1058 walk=1)
1104 walk=1)
1059
1105
1060 procUnitConfObj0 = controllerObj.addProcUnit(datatype='Voltage', inputId=readUnitConfObj.getId())
1106 procUnitConfObj0 = controllerObj.addProcUnit(datatype='Voltage', inputId=readUnitConfObj.getId())
1061
1107
1062 opObj10 = procUnitConfObj0.addOperation(name='selectChannels')
1108 opObj10 = procUnitConfObj0.addOperation(name='selectChannels')
1063 opObj10.addParameter(name='channelList', value='3,4,5', format='intlist')
1109 opObj10.addParameter(name='channelList', value='3,4,5', format='intlist')
1064
1110
1065 opObj10 = procUnitConfObj0.addOperation(name='selectHeights')
1111 opObj10 = procUnitConfObj0.addOperation(name='selectHeights')
1066 opObj10.addParameter(name='minHei', value='90', format='float')
1112 opObj10.addParameter(name='minHei', value='90', format='float')
1067 opObj10.addParameter(name='maxHei', value='180', format='float')
1113 opObj10.addParameter(name='maxHei', value='180', format='float')
1068
1114
1069 opObj12 = procUnitConfObj0.addOperation(name='CohInt', optype='external')
1115 opObj12 = procUnitConfObj0.addOperation(name='CohInt', optype='external')
1070 opObj12.addParameter(name='n', value='10', format='int')
1116 opObj12.addParameter(name='n', value='10', format='int')
1071
1117
1072 procUnitConfObj1 = controllerObj.addProcUnit(datatype='Spectra', inputId=procUnitConfObj0.getId())
1118 procUnitConfObj1 = controllerObj.addProcUnit(datatype='Spectra', inputId=procUnitConfObj0.getId())
1073 procUnitConfObj1.addParameter(name='nFFTPoints', value='32', format='int')
1119 procUnitConfObj1.addParameter(name='nFFTPoints', value='32', format='int')
1074 # procUnitConfObj1.addParameter(name='pairList', value='(0,1),(0,2),(1,2)', format='')
1120 # procUnitConfObj1.addParameter(name='pairList', value='(0,1),(0,2),(1,2)', format='')
1075
1121
1076
1122
1077 opObj11 = procUnitConfObj1.addOperation(name='SpectraPlot', optype='external')
1123 opObj11 = procUnitConfObj1.addOperation(name='SpectraPlot', optype='external')
1078 opObj11.addParameter(name='idfigure', value='1', format='int')
1124 opObj11.addParameter(name='idfigure', value='1', format='int')
1079 opObj11.addParameter(name='wintitle', value='SpectraPlot0', format='str')
1125 opObj11.addParameter(name='wintitle', value='SpectraPlot0', format='str')
1080 opObj11.addParameter(name='zmin', value='40', format='int')
1126 opObj11.addParameter(name='zmin', value='40', format='int')
1081 opObj11.addParameter(name='zmax', value='90', format='int')
1127 opObj11.addParameter(name='zmax', value='90', format='int')
1082 opObj11.addParameter(name='showprofile', value='1', format='int')
1128 opObj11.addParameter(name='showprofile', value='1', format='int')
1083
1129
1084 print "Escribiendo el archivo XML"
1130 print "Escribiendo el archivo XML"
1085
1131
1086 controllerObj.writeXml(filename)
1132 controllerObj.writeXml(filename)
1087
1133
1088 print "Leyendo el archivo XML"
1134 print "Leyendo el archivo XML"
1089 controllerObj.readXml(filename)
1135 controllerObj.readXml(filename)
1090 #controllerObj.printattr()
1136 #controllerObj.printattr()
1091
1137
1092 controllerObj.createObjects()
1138 controllerObj.createObjects()
1093 controllerObj.connectObjects()
1139 controllerObj.connectObjects()
1094 controllerObj.run()
1140 controllerObj.run()
1095
1141
1096 No newline at end of file
1142
@@ -1,139 +1,141
1 import threading
1 import threading
2
2
3 from PyQt4 import QtCore
3 from PyQt4 import QtCore
4 from PyQt4.QtCore import SIGNAL
4 from PyQt4.QtCore import SIGNAL
5
5
6 from schainpy.controller import Project
6 from schainpy.controller import Project
7
7
8 class ControllerThread(threading.Thread, Project):
8 class ControllerThread(threading.Thread, Project):
9
9
10 def __init__(self, filename):
10 def __init__(self, filename):
11
11
12 threading.Thread.__init__(self)
12 threading.Thread.__init__(self)
13 Project.__init__(self)
13 Project.__init__(self)
14
14
15 self.setDaemon(True)
15 self.setDaemon(True)
16
16
17 self.filename = filename
17 self.filename = filename
18
19 self.lock = threading.Lock()
18 self.control = {'stop':False, 'pause':False}
20 self.control = {'stop':False, 'pause':False}
19
21
20 def __del__(self):
22 def __del__(self):
21
23
22 self.control['stop'] = True
24 self.control['stop'] = True
23 # self.pause(1)
24 # self.wait()
25
25
26 def stop(self):
26 def stop(self):
27 self.control['stop'] = True
28
29 def pause(self):
30 self.control['pause'] = not(self.control['pause'])
31
32 return self.control['pause']
33
34 def __run(self):
35
36 print
37 print "*"*40
38 print " Starting SIGNAL CHAIN PROCESSING "
39 print "*"*40
40 print
41
27
42 keyList = self.procUnitConfObjDict.keys()
28 self.lock.acquire()
43 keyList.sort()
44
29
45 while(True):
30 self.control['stop'] = True
46
47 finalSts = False
48 #executed proc units
49 procUnitExecutedList = []
50
51 for procKey in keyList:
52 # print "Running the '%s' process with %s" %(procUnitConfObj.name, procUnitConfObj.id)
53
31
54 procUnitConfObj = self.procUnitConfObjDict[procKey]
32 self.lock.release()
55
33
56 inputId = procUnitConfObj.getInputId()
34 def pause(self):
57
35
58 sts = procUnitConfObj.run()
36 self.lock.acquire()
59 finalSts = finalSts or sts
60
37
61 procUnitExecutedList.append(procUnitConfObj.id)
38 self.control['pause'] = not(self.control['pause'])
39 paused = self.control['pause']
62
40
63 #If every process unit finished so end process
41 self.lock.release()
64 if not(finalSts):
65 print "Every process unit have finished"
66 break
67
42
68 if self.control['pause']:
43 return paused
69 print "Process suspended"
70
44
71 while True:
45 def isPaused(self):
72 sleep(0.1)
73
46
74 if not self.control['pause']:
47 self.lock.acquire()
75 break
48 paused = self.control['pause']
49 self.lock.release()
76
50
77 if self.control['stop']:
51 return paused
78 break
79 print "Process reinitialized"
80
52
81 if self.control['stop']:
53 def isStopped(self):
82 # print "Process stopped"
83 break
84
54
85 #Closing every process
55 self.lock.acquire()
86 for procKey in keyList:
56 stopped = self.control['stop']
87 procUnitConfObj = self.procUnitConfObjDict[procKey]
57 self.lock.release()
88 procUnitConfObj.close()
89
58
90 print "Process finished"
59 return stopped
91
60
92 def run(self):
61 def run(self):
93 self.control['stop'] = False
62 self.control['stop'] = False
94 self.control['pause'] = False
63 self.control['pause'] = False
95
64
96 self.readXml(self.filename)
65 self.readXml(self.filename)
97 self.createObjects()
66 self.createObjects()
98 self.connectObjects()
67 self.connectObjects()
99 Project.run(self)
68 Project.run(self)
100
69
101 def isRunning(self):
70 def isRunning(self):
102
71
103 return self.is_alive()
72 return self.is_alive()
104
73
105 def isFinished(self):
74 def isFinished(self):
106
75
107 return not self.is_alive()
76 return not self.is_alive()
108
77
109 class ControllerQThread(QtCore.QThread, Project):
78 class ControllerQThread(QtCore.QThread, Project):
110
79
111 def __init__(self, filename):
80 def __init__(self, filename):
112
81
113 QtCore.QThread.__init__(self)
82 QtCore.QThread.__init__(self)
114 Project.__init__(self)
83 Project.__init__(self)
115
84
116 self.filename = filename
85 self.filename = filename
86
87 self.lock = threading.Lock()
117 self.control = {'stop':False, 'pause':False}
88 self.control = {'stop':False, 'pause':False}
118
89
119 def __del__(self):
90 def __del__(self):
120
91
121 self.control['stop'] = True
92 self.control['stop'] = True
122 self.wait()
93 self.wait()
123
94
124 def stop(self):
95 def stop(self):
96
97 self.lock.acquire()
98
125 self.control['stop'] = True
99 self.control['stop'] = True
126
100
101 self.lock.release()
102
127 def pause(self):
103 def pause(self):
104
105 self.lock.acquire()
106
128 self.control['pause'] = not(self.control['pause'])
107 self.control['pause'] = not(self.control['pause'])
108 paused = self.control['pause']
109
110 self.lock.release()
111
112 return paused
113
114 def isPaused(self):
115
116 self.lock.acquire()
117 paused = self.control['pause']
118 self.lock.release()
119
120 return paused
121
122 def isStopped(self):
123
124 self.lock.acquire()
125 stopped = self.control['stop']
126 self.lock.release()
127
128 return stopped
129
129
130 def run(self):
130 def run(self):
131
131 self.control['stop'] = False
132 self.control['stop'] = False
132 self.control['pause'] = False
133 self.control['pause'] = False
133
134
134 self.readXml(self.filename)
135 self.readXml(self.filename)
135 self.createObjects()
136 self.createObjects()
136 self.connectObjects()
137 self.connectObjects()
137 self.emit( SIGNAL( "jobStarted( PyQt_PyObject )" ), 1)
138 self.emit( SIGNAL( "jobStarted( PyQt_PyObject )" ), 1)
138 Project.run(self)
139 Project.run(self)
139 self.emit( SIGNAL( "jobFinished( PyQt_PyObject )" ), 1)
140 self.emit( SIGNAL( "jobFinished( PyQt_PyObject )" ), 1)
141 No newline at end of file
@@ -1,5898 +1,5902
1 # -*- coding: utf-8 -*-
1 # -*- coding: utf-8 -*-
2 """
2 """
3 Module implementing MainWindow.
3 Module implementing MainWindow.
4 #+++++++++++++GUI V1++++++++++++++#
4 #+++++++++++++GUI V1++++++++++++++#
5 @author: AlexanderValdezPortocarrero Γ±_Γ±
5 @author: AlexanderValdezPortocarrero Γ±_Γ±
6 """
6 """
7 import os, sys, time
7 import os, sys, time
8 import datetime
8 import datetime
9 import numpy
9 import numpy
10 import Queue
10 import Queue
11
11
12 from collections import OrderedDict
12 from collections import OrderedDict
13 from os.path import expanduser
13 from os.path import expanduser
14 from time import sleep
14 from time import sleep
15 # from gevent import sleep
15 # from gevent import sleep
16
16
17 import ast
17 import ast
18
18
19 from PyQt4.QtGui import QMainWindow
19 from PyQt4.QtGui import QMainWindow
20 from PyQt4.QtCore import pyqtSignature
20 from PyQt4.QtCore import pyqtSignature
21 from PyQt4.QtCore import pyqtSignal
21 from PyQt4.QtCore import pyqtSignal
22 from PyQt4 import QtCore
22 from PyQt4 import QtCore
23 from PyQt4 import QtGui
23 from PyQt4 import QtGui
24 # from PyQt4.QtCore import QThread
24 # from PyQt4.QtCore import QThread
25 # from PyQt4.QtCore import QObject, SIGNAL
25 # from PyQt4.QtCore import QObject, SIGNAL
26
26
27 from schainpy.gui.viewer.ui_unitprocess import Ui_UnitProcess
27 from schainpy.gui.viewer.ui_unitprocess import Ui_UnitProcess
28 from schainpy.gui.viewer.ui_ftp import Ui_Ftp
28 from schainpy.gui.viewer.ui_ftp import Ui_Ftp
29 from schainpy.gui.viewer.ui_mainwindow import Ui_BasicWindow
29 from schainpy.gui.viewer.ui_mainwindow import Ui_BasicWindow
30 from schainpy.controller_api import ControllerThread
30 from schainpy.controller_api import ControllerThread
31 from schainpy.controller import Project
31 from schainpy.controller import Project
32
32
33 from propertiesViewModel import TreeModel, PropertyBuffer
33 from propertiesViewModel import TreeModel, PropertyBuffer
34 from parametersModel import ProjectParms
34 from parametersModel import ProjectParms
35
35
36 from schainpy.gui.figures import tools
36 from schainpy.gui.figures import tools
37
37
38 FIGURES_PATH = tools.get_path()
38 FIGURES_PATH = tools.get_path()
39 TEMPORAL_FILE = ".temp.xml"
39 TEMPORAL_FILE = ".temp.xml"
40
40
41 def isRadarFile(file):
41 def isRadarFile(file):
42 try:
42 try:
43 year = int(file[1:5])
43 year = int(file[1:5])
44 doy = int(file[5:8])
44 doy = int(file[5:8])
45 set = int(file[8:11])
45 set = int(file[8:11])
46 except:
46 except:
47 return 0
47 return 0
48
48
49 return 1
49 return 1
50
50
51 def isRadarPath(path):
51 def isRadarPath(path):
52 try:
52 try:
53 year = int(path[1:5])
53 year = int(path[1:5])
54 doy = int(path[5:8])
54 doy = int(path[5:8])
55 except:
55 except:
56 return 0
56 return 0
57
57
58 return 1
58 return 1
59
59
60 def isInt(value):
60 def isInt(value):
61
61
62 try:
62 try:
63 int(value)
63 int(value)
64 except:
64 except:
65 return 0
65 return 0
66
66
67 return 1
67 return 1
68
68
69 def isFloat(value):
69 def isFloat(value):
70
70
71 try:
71 try:
72 float(value)
72 float(value)
73 except:
73 except:
74 return 0
74 return 0
75
75
76 return 1
76 return 1
77
77
78 def isList(value):
78 def isList(value):
79
79
80 x = ast.literal_eval(value)
80 x = ast.literal_eval(value)
81
81
82 if type(x) in (tuple, list):
82 if type(x) in (tuple, list):
83 return 1
83 return 1
84
84
85 return 0
85 return 0
86
86
87 class BasicWindow(QMainWindow, Ui_BasicWindow):
87 class BasicWindow(QMainWindow, Ui_BasicWindow):
88 """
88 """
89 """
89 """
90 def __init__(self, parent=None):
90 def __init__(self, parent=None):
91 """
91 """
92
92
93 """
93 """
94 QMainWindow.__init__(self, parent)
94 QMainWindow.__init__(self, parent)
95 self.setupUi(self)
95 self.setupUi(self)
96 self.__puObjDict = {}
96 self.__puObjDict = {}
97 self.__itemTreeDict = {}
97 self.__itemTreeDict = {}
98 self.readUnitConfObjList = []
98 self.readUnitConfObjList = []
99 self.operObjList = []
99 self.operObjList = []
100 self.projecObjView = None
100 self.projecObjView = None
101 self.idProject = 0
101 self.idProject = 0
102 # self.idImag = 0
102 # self.idImag = 0
103
103
104 self.idImagscope = 0
104 self.idImagscope = 0
105 self.idImagspectra = 0
105 self.idImagspectra = 0
106 self.idImagcross = 0
106 self.idImagcross = 0
107 self.idImagrti = 0
107 self.idImagrti = 0
108 self.idImagcoherence = 0
108 self.idImagcoherence = 0
109 self.idImagpower = 0
109 self.idImagpower = 0
110 self.idImagrtinoise = 0
110 self.idImagrtinoise = 0
111 self.idImagspectraHeis = 0
111 self.idImagspectraHeis = 0
112 self.idImagrtiHeis = 0
112 self.idImagrtiHeis = 0
113
113
114 self.dataPath = None
114 self.dataPath = None
115 self.online = 0
115 self.online = 0
116 self.walk = 0
116 self.walk = 0
117 self.create = False
117 self.create = False
118 self.selectedItemTree = None
118 self.selectedItemTree = None
119 self.controllerThread = None
119 self.controllerThread = None
120 # self.commCtrlPThread = None
120 # self.commCtrlPThread = None
121 # self.create_figure()
121 # self.create_figure()
122 self.temporalFTP = ftpBuffer()
122 self.temporalFTP = ftpBuffer()
123 self.projectProperCaracteristica = []
123 self.projectProperCaracteristica = []
124 self.projectProperPrincipal = []
124 self.projectProperPrincipal = []
125 self.projectProperDescripcion = []
125 self.projectProperDescripcion = []
126 self.volProperCaracteristica = []
126 self.volProperCaracteristica = []
127 self.volProperPrincipal = []
127 self.volProperPrincipal = []
128 self.volProperDescripcion = []
128 self.volProperDescripcion = []
129 self.specProperCaracteristica = []
129 self.specProperCaracteristica = []
130 self.specProperPrincipal = []
130 self.specProperPrincipal = []
131 self.specProperDescripcion = []
131 self.specProperDescripcion = []
132
132
133 self.specHeisProperCaracteristica = []
133 self.specHeisProperCaracteristica = []
134 self.specHeisProperPrincipal = []
134 self.specHeisProperPrincipal = []
135 self.specHeisProperDescripcion = []
135 self.specHeisProperDescripcion = []
136
136
137 # self.pathWorkSpace = './'
137 # self.pathWorkSpace = './'
138
138
139 self.__projectObjDict = {}
139 self.__projectObjDict = {}
140 self.__operationObjDict = {}
140 self.__operationObjDict = {}
141
141
142 self.__puLocalFolder2FTP = {}
142 self.__puLocalFolder2FTP = {}
143 self.threadStarted = False
143 self.threadStarted = False
144
144
145 # self.create_comm()
145 # self.create_comm()
146 self.create_updating_timer()
146 self.create_updating_timer()
147 self.setGUIStatus()
147 self.setGUIStatus()
148
148
149 @pyqtSignature("")
149 @pyqtSignature("")
150 def on_actionOpen_triggered(self):
150 def on_actionOpen_triggered(self):
151 """
151 """
152 Slot documentation goes here.
152 Slot documentation goes here.
153 """
153 """
154 self.openProject()
154 self.openProject()
155
155
156 @pyqtSignature("")
156 @pyqtSignature("")
157 def on_actionCreate_triggered(self):
157 def on_actionCreate_triggered(self):
158 """
158 """
159 Slot documentation goes here.
159 Slot documentation goes here.
160 """
160 """
161 self.setInputsProject_View()
161 self.setInputsProject_View()
162 self.create = True
162 self.create = True
163
163
164 @pyqtSignature("")
164 @pyqtSignature("")
165 def on_actionSave_triggered(self):
165 def on_actionSave_triggered(self):
166 """
166 """
167 Slot documentation goes here.
167 Slot documentation goes here.
168 """
168 """
169 self.saveProject()
169 self.saveProject()
170
170
171 @pyqtSignature("")
171 @pyqtSignature("")
172 def on_actionClose_triggered(self):
172 def on_actionClose_triggered(self):
173 """
173 """
174 Slot documentation goes here.
174 Slot documentation goes here.
175 """
175 """
176 self.close()
176 self.close()
177
177
178 @pyqtSignature("")
178 @pyqtSignature("")
179 def on_actionStart_triggered(self):
179 def on_actionStart_triggered(self):
180 """
180 """
181 """
181 """
182 self.playProject()
182 self.playProject()
183
183
184 @pyqtSignature("")
184 @pyqtSignature("")
185 def on_actionPause_triggered(self):
185 def on_actionPause_triggered(self):
186 """
186 """
187 """
187 """
188 self.pauseProject()
188 self.pauseProject()
189
189
190 @pyqtSignature("")
190 @pyqtSignature("")
191 def on_actionStop_triggered(self):
191 def on_actionStop_triggered(self):
192 """
192 """
193 """
193 """
194 self.stopProject()
194 self.stopProject()
195
195
196 @pyqtSignature("")
196 @pyqtSignature("")
197 def on_actionAbout_triggered(self):
197 def on_actionAbout_triggered(self):
198 """
198 """
199 """
199 """
200 self.aboutEvent()
200 self.aboutEvent()
201
201
202 @pyqtSignature("")
202 @pyqtSignature("")
203 def on_actionFTP_triggered(self):
203 def on_actionFTP_triggered(self):
204 """
204 """
205 """
205 """
206 self.configFTPWindowObj = Ftp(self)
206 self.configFTPWindowObj = Ftp(self)
207
207
208 if not self.temporalFTP.create:
208 if not self.temporalFTP.create:
209 self.temporalFTP.setwithoutconfiguration()
209 self.temporalFTP.setwithoutconfiguration()
210
210
211 self.configFTPWindowObj.setParmsfromTemporal(self.temporalFTP.server,
211 self.configFTPWindowObj.setParmsfromTemporal(self.temporalFTP.server,
212 self.temporalFTP.remotefolder,
212 self.temporalFTP.remotefolder,
213 self.temporalFTP.username,
213 self.temporalFTP.username,
214 self.temporalFTP.password,
214 self.temporalFTP.password,
215 self.temporalFTP.ftp_wei,
215 self.temporalFTP.ftp_wei,
216 self.temporalFTP.exp_code,
216 self.temporalFTP.exp_code,
217 self.temporalFTP.sub_exp_code,
217 self.temporalFTP.sub_exp_code,
218 self.temporalFTP.plot_pos)
218 self.temporalFTP.plot_pos)
219
219
220 self.configFTPWindowObj.show()
220 self.configFTPWindowObj.show()
221 self.configFTPWindowObj.closed.connect(self.createFTPConfig)
221 self.configFTPWindowObj.closed.connect(self.createFTPConfig)
222
222
223 def createFTPConfig(self):
223 def createFTPConfig(self):
224
224
225 if not self.configFTPWindowObj.create:
225 if not self.configFTPWindowObj.create:
226 self.console.clear()
226 self.console.clear()
227 self.console.append("There is no FTP configuration")
227 self.console.append("There is no FTP configuration")
228 return
228 return
229
229
230 self.console.append("Push Ok in Spectra view to Add FTP Configuration")
230 self.console.append("Push Ok in Spectra view to Add FTP Configuration")
231
231
232 server, remotefolder, username, password, ftp_wei, exp_code, sub_exp_code, plot_pos = self.configFTPWindowObj.getParmsFromFtpWindow()
232 server, remotefolder, username, password, ftp_wei, exp_code, sub_exp_code, plot_pos = self.configFTPWindowObj.getParmsFromFtpWindow()
233 self.temporalFTP.save(server=server,
233 self.temporalFTP.save(server=server,
234 remotefolder=remotefolder,
234 remotefolder=remotefolder,
235 username=username,
235 username=username,
236 password=password,
236 password=password,
237 ftp_wei=ftp_wei,
237 ftp_wei=ftp_wei,
238 exp_code=exp_code,
238 exp_code=exp_code,
239 sub_exp_code=sub_exp_code,
239 sub_exp_code=sub_exp_code,
240 plot_pos=plot_pos)
240 plot_pos=plot_pos)
241
241
242 @pyqtSignature("")
242 @pyqtSignature("")
243 def on_actionOpenToolbar_triggered(self):
243 def on_actionOpenToolbar_triggered(self):
244 """
244 """
245 Slot documentation goes here.
245 Slot documentation goes here.
246 """
246 """
247 self.openProject()
247 self.openProject()
248
248
249 @pyqtSignature("")
249 @pyqtSignature("")
250 def on_actionCreateToolbar_triggered(self):
250 def on_actionCreateToolbar_triggered(self):
251 """
251 """
252 Slot documentation goes here.
252 Slot documentation goes here.
253 """
253 """
254 self.setInputsProject_View()
254 self.setInputsProject_View()
255 self.create = True
255 self.create = True
256
256
257 @pyqtSignature("")
257 @pyqtSignature("")
258 def on_actionAddPU_triggered(self):
258 def on_actionAddPU_triggered(self):
259 if len(self.__projectObjDict) == 0:
259 if len(self.__projectObjDict) == 0:
260 outputstr = "First Create a Project then add Processing Unit"
260 outputstr = "First Create a Project then add Processing Unit"
261 self.console.clear()
261 self.console.clear()
262 self.console.append(outputstr)
262 self.console.append(outputstr)
263 return 0
263 return 0
264 else:
264 else:
265 self.addPUWindow()
265 self.addPUWindow()
266 self.console.clear()
266 self.console.clear()
267 self.console.append("Please, Choose the type of Processing Unit")
267 self.console.append("Please, Choose the type of Processing Unit")
268 self.console.append("If your Datatype is rawdata, you will start with processing unit Type Voltage")
268 self.console.append("If your Datatype is rawdata, you will start with processing unit Type Voltage")
269 self.console.append("If your Datatype is pdata, you will choose between processing unit Type Spectra or Correlation")
269 self.console.append("If your Datatype is pdata, you will choose between processing unit Type Spectra or Correlation")
270 self.console.append("If your Datatype is fits, you will start with processing unit Type SpectraHeis")
270 self.console.append("If your Datatype is fits, you will start with processing unit Type SpectraHeis")
271
271
272
272
273 @pyqtSignature("")
273 @pyqtSignature("")
274 def on_actionSaveToolbar_triggered(self):
274 def on_actionSaveToolbar_triggered(self):
275 """
275 """
276 Slot documentation goes here.
276 Slot documentation goes here.
277 """
277 """
278 self.saveProject()
278 self.saveProject()
279
279
280 @pyqtSignature("")
280 @pyqtSignature("")
281 def on_actionStarToolbar_triggered(self):
281 def on_actionStarToolbar_triggered(self):
282 """
282 """
283 Slot documentation goes here.
283 Slot documentation goes here.
284 """
284 """
285 self.playProject()
285 self.playProject()
286
286
287 @pyqtSignature("")
287 @pyqtSignature("")
288 def on_actionPauseToolbar_triggered(self):
288 def on_actionPauseToolbar_triggered(self):
289
289
290 self.pauseProject()
290 self.pauseProject()
291
291
292 @pyqtSignature("")
292 @pyqtSignature("")
293 def on_actionStopToolbar_triggered(self):
293 def on_actionStopToolbar_triggered(self):
294 """
294 """
295 Slot documentation goes here.
295 Slot documentation goes here.
296 """
296 """
297 self.stopProject()
297 self.stopProject()
298
298
299 @pyqtSignature("int")
299 @pyqtSignature("int")
300 def on_proComReadMode_activated(self, index):
300 def on_proComReadMode_activated(self, index):
301 """
301 """
302 SELECCION DEL MODO DE LECTURA ON=1, OFF=0
302 SELECCION DEL MODO DE LECTURA ON=1, OFF=0
303 """
303 """
304 if index == 0:
304 if index == 0:
305 self.online = 0
305 self.online = 0
306 self.proDelay.setText("0")
306 self.proDelay.setText("0")
307 self.proSet.setText("")
307 self.proSet.setText("")
308 self.proSet.setEnabled(False)
308 self.proSet.setEnabled(False)
309 self.proDelay.setEnabled(False)
309 self.proDelay.setEnabled(False)
310 elif index == 1:
310 elif index == 1:
311 self.online = 1
311 self.online = 1
312 self.proSet.setText("")
312 self.proSet.setText("")
313 self.proDelay.setText("5")
313 self.proDelay.setText("5")
314 self.proSet.setEnabled(True)
314 self.proSet.setEnabled(True)
315 self.proDelay.setEnabled(True)
315 self.proDelay.setEnabled(True)
316
316
317 @pyqtSignature("int")
317 @pyqtSignature("int")
318 def on_proComDataType_activated(self, index):
318 def on_proComDataType_activated(self, index):
319 """
319 """
320 Voltage or Spectra
320 Voltage or Spectra
321 """
321 """
322 self.labelSet.show()
322 self.labelSet.show()
323 self.proSet.show()
323 self.proSet.show()
324
324
325 self.labExpLabel.show()
325 self.labExpLabel.show()
326 self.proExpLabel.show()
326 self.proExpLabel.show()
327
327
328 self.labelIPPKm.hide()
328 self.labelIPPKm.hide()
329 self.proIPPKm.hide()
329 self.proIPPKm.hide()
330
330
331 if index == 0:
331 if index == 0:
332 extension = '.r'
332 extension = '.r'
333 elif index == 1:
333 elif index == 1:
334 extension = '.pdata'
334 extension = '.pdata'
335 elif index == 2:
335 elif index == 2:
336 extension = '.fits'
336 extension = '.fits'
337 elif index == 3:
337 elif index == 3:
338 extension = '.hdf5'
338 extension = '.hdf5'
339
339
340 self.labelIPPKm.show()
340 self.labelIPPKm.show()
341 self.proIPPKm.show()
341 self.proIPPKm.show()
342
342
343 self.labelSet.hide()
343 self.labelSet.hide()
344 self.proSet.hide()
344 self.proSet.hide()
345
345
346 self.labExpLabel.hide()
346 self.labExpLabel.hide()
347 self.proExpLabel.hide()
347 self.proExpLabel.hide()
348
348
349 self.proDataType.setText(extension)
349 self.proDataType.setText(extension)
350
350
351 @pyqtSignature("int")
351 @pyqtSignature("int")
352 def on_proComWalk_activated(self, index):
352 def on_proComWalk_activated(self, index):
353 """
353 """
354
354
355 """
355 """
356 if index == 0:
356 if index == 0:
357 self.walk = 0
357 self.walk = 0
358 elif index == 1:
358 elif index == 1:
359 self.walk = 1
359 self.walk = 1
360
360
361 @pyqtSignature("")
361 @pyqtSignature("")
362 def on_proToolPath_clicked(self):
362 def on_proToolPath_clicked(self):
363 """
363 """
364 Choose your path
364 Choose your path
365 """
365 """
366
366
367 current_dpath = './'
367 current_dpath = './'
368 if self.dataPath:
368 if self.dataPath:
369 current_dpath = self.dataPath
369 current_dpath = self.dataPath
370
370
371 datapath = str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', current_dpath, QtGui.QFileDialog.ShowDirsOnly))
371 datapath = str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', current_dpath, QtGui.QFileDialog.ShowDirsOnly))
372
372
373 #If it was canceled
373 #If it was canceled
374 if not datapath:
374 if not datapath:
375 return
375 return
376
376
377 #If any change was done
377 #If any change was done
378 if datapath == self.dataPath:
378 if datapath == self.dataPath:
379 return
379 return
380
380
381 self.proDataPath.setText(datapath)
381 self.proDataPath.setText(datapath)
382
382
383 self.actionStart.setEnabled(False)
383 self.actionStart.setEnabled(False)
384 self.actionStarToolbar.setEnabled(False)
384 self.actionStarToolbar.setEnabled(False)
385 self.proOk.setEnabled(False)
385 self.proOk.setEnabled(False)
386
386
387 self.proComStartDate.clear()
387 self.proComStartDate.clear()
388 self.proComEndDate.clear()
388 self.proComEndDate.clear()
389
389
390 if not os.path.exists(datapath):
390 if not os.path.exists(datapath):
391
391
392 self.console.clear()
392 self.console.clear()
393 self.console.append("Write a valid path")
393 self.console.append("Write a valid path")
394 return
394 return
395
395
396 self.dataPath = datapath
396 self.dataPath = datapath
397
397
398 self.console.clear()
398 self.console.clear()
399 self.console.append("Select the read mode and press 'load button'")
399 self.console.append("Select the read mode and press 'load button'")
400
400
401
401
402 @pyqtSignature("")
402 @pyqtSignature("")
403 def on_proLoadButton_clicked(self):
403 def on_proLoadButton_clicked(self):
404
404
405 self.console.clear()
405 self.console.clear()
406
406
407 # if not self.getSelectedProjectObj():
407 # if not self.getSelectedProjectObj():
408 # self.console.append("Please select a project before load files")
408 # self.console.append("Please select a project before load files")
409 # return
409 # return
410
410
411 parameter_list = self.checkInputsProject()
411 parameter_list = self.checkInputsProject()
412
412
413 # if not parameter_list[0]:
413 # if not parameter_list[0]:
414 # return
414 # return
415
415
416 parms_ok, project_name, datatype, ext, data_path, read_mode, delay, walk, set, expLabel = parameter_list
416 parms_ok, project_name, datatype, ext, data_path, read_mode, delay, walk, set, expLabel = parameter_list
417
417
418 if read_mode == "Offline":
418 if read_mode == "Offline":
419 self.proComStartDate.clear()
419 self.proComStartDate.clear()
420 self.proComEndDate.clear()
420 self.proComEndDate.clear()
421 self.proComStartDate.setEnabled(True)
421 self.proComStartDate.setEnabled(True)
422 self.proComEndDate.setEnabled(True)
422 self.proComEndDate.setEnabled(True)
423 self.proStartTime.setEnabled(True)
423 self.proStartTime.setEnabled(True)
424 self.proEndTime.setEnabled(True)
424 self.proEndTime.setEnabled(True)
425 self.frame_2.setEnabled(True)
425 self.frame_2.setEnabled(True)
426
426
427 if read_mode == "Online":
427 if read_mode == "Online":
428 self.proComStartDate.addItem("1960/01/30")
428 self.proComStartDate.addItem("1960/01/30")
429 self.proComEndDate.addItem("2018/12/31")
429 self.proComEndDate.addItem("2018/12/31")
430 self.proComStartDate.setEnabled(False)
430 self.proComStartDate.setEnabled(False)
431 self.proComEndDate.setEnabled(False)
431 self.proComEndDate.setEnabled(False)
432 self.proStartTime.setEnabled(False)
432 self.proStartTime.setEnabled(False)
433 self.proEndTime.setEnabled(False)
433 self.proEndTime.setEnabled(False)
434 self.frame_2.setEnabled(True)
434 self.frame_2.setEnabled(True)
435
435
436 self.loadDays(data_path, ext, walk, expLabel)
436 self.loadDays(data_path, ext, walk, expLabel)
437
437
438 @pyqtSignature("int")
438 @pyqtSignature("int")
439 def on_proComStartDate_activated(self, index):
439 def on_proComStartDate_activated(self, index):
440 """
440 """
441 SELECCION DEL RANGO DE FECHAS -START DATE
441 SELECCION DEL RANGO DE FECHAS -START DATE
442 """
442 """
443 stopIndex = self.proComEndDate.count() - self.proComEndDate.currentIndex() - 1
443 stopIndex = self.proComEndDate.count() - self.proComEndDate.currentIndex() - 1
444
444
445 self.proComEndDate.clear()
445 self.proComEndDate.clear()
446 for i in self.dateList[index:]:
446 for i in self.dateList[index:]:
447 self.proComEndDate.addItem(i)
447 self.proComEndDate.addItem(i)
448
448
449 if self.proComEndDate.count() - stopIndex - 1 >= 0:
449 if self.proComEndDate.count() - stopIndex - 1 >= 0:
450 self.proComEndDate.setCurrentIndex(self.proComEndDate.count() - stopIndex - 1)
450 self.proComEndDate.setCurrentIndex(self.proComEndDate.count() - stopIndex - 1)
451 else:
451 else:
452 self.proComEndDate.setCurrentIndex(self.proComEndDate.count() - 1)
452 self.proComEndDate.setCurrentIndex(self.proComEndDate.count() - 1)
453
453
454 @pyqtSignature("int")
454 @pyqtSignature("int")
455 def on_proComEndDate_activated(self, index):
455 def on_proComEndDate_activated(self, index):
456 """
456 """
457 SELECCION DEL RANGO DE FECHAS-END DATE
457 SELECCION DEL RANGO DE FECHAS-END DATE
458 """
458 """
459 pass
459 pass
460
460
461 @pyqtSignature("")
461 @pyqtSignature("")
462 def on_proOk_clicked(self):
462 def on_proOk_clicked(self):
463 """
463 """
464 AΓ±ade al Obj XML de Projecto, name,datatype,date,time,readmode,wait,etc, crea el readUnitProcess del archivo xml.
464 AΓ±ade al Obj XML de Projecto, name,datatype,date,time,readmode,wait,etc, crea el readUnitProcess del archivo xml.
465 Prepara la configuraciΓ³n del diΓ‘grama del Arbol del treeView numero 2
465 Prepara la configuraciΓ³n del diΓ‘grama del Arbol del treeView numero 2
466 """
466 """
467
467
468 self.actionSaveToolbar.setEnabled(False)
468 self.actionSaveToolbar.setEnabled(False)
469 self.actionStarToolbar.setEnabled(False)
469 self.actionStarToolbar.setEnabled(False)
470
470
471 self.actionSave.setEnabled(False)
471 self.actionSave.setEnabled(False)
472 self.actionStart.setEnabled(False)
472 self.actionStart.setEnabled(False)
473
473
474 self.console.clear()
474 self.console.clear()
475
475
476 if self.create:
476 if self.create:
477
477
478 projectId = self.__getNewProjectId()
478 projectId = self.__getNewProjectId()
479
479
480 if not projectId:
480 if not projectId:
481 return 0
481 return 0
482
482
483 projectObjView = self.createProjectView(projectId)
483 projectObjView = self.createProjectView(projectId)
484
484
485 if not projectObjView:
485 if not projectObjView:
486 return 0
486 return 0
487
487
488 self.create = False
488 self.create = False
489
489
490 readUnitObj = self.createReadUnitView(projectObjView)
490 readUnitObj = self.createReadUnitView(projectObjView)
491
491
492 if not readUnitObj:
492 if not readUnitObj:
493 return 0
493 return 0
494
494
495 else:
495 else:
496 projectObjView = self.updateProjectView()
496 projectObjView = self.updateProjectView()
497
497
498 if not projectObjView:
498 if not projectObjView:
499 return 0
499 return 0
500
500
501 projectId = projectObjView.getId()
501 projectId = projectObjView.getId()
502 idReadUnit = projectObjView.getReadUnitId()
502 idReadUnit = projectObjView.getReadUnitId()
503 readUnitObj = self.updateReadUnitView(projectObjView, idReadUnit)
503 readUnitObj = self.updateReadUnitView(projectObjView, idReadUnit)
504
504
505 if not readUnitObj:
505 if not readUnitObj:
506 return 0
506 return 0
507
507
508 self.__itemTreeDict[projectId].setText(projectObjView.name)
508 self.__itemTreeDict[projectId].setText(projectObjView.name)
509 # Project Properties
509 # Project Properties
510 self.refreshProjectProperties(projectObjView)
510 self.refreshProjectProperties(projectObjView)
511 # Disable tabProject after finish the creation
511 # Disable tabProject after finish the creation
512
512
513 self.actionSaveToolbar.setEnabled(True)
513 self.actionSaveToolbar.setEnabled(True)
514 self.actionStarToolbar.setEnabled(True)
514 self.actionStarToolbar.setEnabled(True)
515
515
516 self.actionSave.setEnabled(True)
516 self.actionSave.setEnabled(True)
517 self.actionStart.setEnabled(True)
517 self.actionStart.setEnabled(True)
518
518
519 self.console.clear()
519 self.console.clear()
520 self.console.append("The project parameters were validated")
520 self.console.append("The project parameters were validated")
521
521
522 return 1
522 return 1
523
523
524 @pyqtSignature("")
524 @pyqtSignature("")
525 def on_proClear_clicked(self):
525 def on_proClear_clicked(self):
526
526
527 self.console.clear()
527 self.console.clear()
528
528
529 @pyqtSignature("int")
529 @pyqtSignature("int")
530 def on_volOpCebChannels_stateChanged(self, p0):
530 def on_volOpCebChannels_stateChanged(self, p0):
531 """
531 """
532 Check Box habilita operaciones de SelecciοΏ½n de Canales
532 Check Box habilita operaciones de SelecciοΏ½n de Canales
533 """
533 """
534 if p0 == 2:
534 if p0 == 2:
535 self.volOpComChannels.setEnabled(True)
535 self.volOpComChannels.setEnabled(True)
536 self.volOpChannel.setEnabled(True)
536 self.volOpChannel.setEnabled(True)
537
537
538 if p0 == 0:
538 if p0 == 0:
539 self.volOpComChannels.setEnabled(False)
539 self.volOpComChannels.setEnabled(False)
540 self.volOpChannel.setEnabled(False)
540 self.volOpChannel.setEnabled(False)
541 self.volOpChannel.clear()
541 self.volOpChannel.clear()
542
542
543 @pyqtSignature("int")
543 @pyqtSignature("int")
544 def on_volOpCebHeights_stateChanged(self, p0):
544 def on_volOpCebHeights_stateChanged(self, p0):
545 """
545 """
546 Check Box habilita operaciones de SelecciοΏ½n de Alturas
546 Check Box habilita operaciones de SelecciοΏ½n de Alturas
547 """
547 """
548 if p0 == 2:
548 if p0 == 2:
549 self.volOpHeights.setEnabled(True)
549 self.volOpHeights.setEnabled(True)
550 self.volOpComHeights.setEnabled(True)
550 self.volOpComHeights.setEnabled(True)
551
551
552 if p0 == 0:
552 if p0 == 0:
553 self.volOpHeights.setEnabled(False)
553 self.volOpHeights.setEnabled(False)
554 self.volOpHeights.clear()
554 self.volOpHeights.clear()
555 self.volOpComHeights.setEnabled(False)
555 self.volOpComHeights.setEnabled(False)
556
556
557 @pyqtSignature("int")
557 @pyqtSignature("int")
558 def on_volOpCebFilter_stateChanged(self, p0):
558 def on_volOpCebFilter_stateChanged(self, p0):
559 """
559 """
560 Name='Decoder', optype='other'
560 Name='Decoder', optype='other'
561 """
561 """
562 if p0 == 2:
562 if p0 == 2:
563 self.volOpFilter.setEnabled(True)
563 self.volOpFilter.setEnabled(True)
564
564
565 if p0 == 0:
565 if p0 == 0:
566 self.volOpFilter.setEnabled(False)
566 self.volOpFilter.setEnabled(False)
567 self.volOpFilter.clear()
567 self.volOpFilter.clear()
568
568
569 @pyqtSignature("int")
569 @pyqtSignature("int")
570 def on_volOpCebProfile_stateChanged(self, p0):
570 def on_volOpCebProfile_stateChanged(self, p0):
571 """
571 """
572 Check Box habilita ingreso del rango de Perfiles
572 Check Box habilita ingreso del rango de Perfiles
573 """
573 """
574 if p0 == 2:
574 if p0 == 2:
575 self.volOpComProfile.setEnabled(True)
575 self.volOpComProfile.setEnabled(True)
576 self.volOpProfile.setEnabled(True)
576 self.volOpProfile.setEnabled(True)
577
577
578 if p0 == 0:
578 if p0 == 0:
579 self.volOpComProfile.setEnabled(False)
579 self.volOpComProfile.setEnabled(False)
580 self.volOpProfile.setEnabled(False)
580 self.volOpProfile.setEnabled(False)
581 self.volOpProfile.clear()
581 self.volOpProfile.clear()
582
582
583 @pyqtSignature("int")
583 @pyqtSignature("int")
584 def on_volOpComProfile_activated(self, index):
584 def on_volOpComProfile_activated(self, index):
585 """
585 """
586 Check Box habilita ingreso del rango de Perfiles
586 Check Box habilita ingreso del rango de Perfiles
587 """
587 """
588 #Profile List
588 #Profile List
589 if index == 0:
589 if index == 0:
590 self.volOpProfile.setToolTip('List of selected profiles. Example: 0, 1, 2, 3, 4, 5, 6, 7')
590 self.volOpProfile.setToolTip('List of selected profiles. Example: 0, 1, 2, 3, 4, 5, 6, 7')
591
591
592 #Profile Range
592 #Profile Range
593 if index == 1:
593 if index == 1:
594 self.volOpProfile.setToolTip('Minimum and maximum profile index. Example: 0, 7')
594 self.volOpProfile.setToolTip('Minimum and maximum profile index. Example: 0, 7')
595
595
596 #Profile Range List
596 #Profile Range List
597 if index == 2:
597 if index == 2:
598 self.volOpProfile.setToolTip('List of profile ranges. Example: (0, 7), (12, 19), (100, 200)')
598 self.volOpProfile.setToolTip('List of profile ranges. Example: (0, 7), (12, 19), (100, 200)')
599
599
600 @pyqtSignature("int")
600 @pyqtSignature("int")
601 def on_volOpCebDecodification_stateChanged(self, p0):
601 def on_volOpCebDecodification_stateChanged(self, p0):
602 """
602 """
603 Check Box habilita
603 Check Box habilita
604 """
604 """
605 if p0 == 2:
605 if p0 == 2:
606 self.volOpComCode.setEnabled(True)
606 self.volOpComCode.setEnabled(True)
607 self.volOpComMode.setEnabled(True)
607 self.volOpComMode.setEnabled(True)
608 if p0 == 0:
608 if p0 == 0:
609 self.volOpComCode.setEnabled(False)
609 self.volOpComCode.setEnabled(False)
610 self.volOpComMode.setEnabled(False)
610 self.volOpComMode.setEnabled(False)
611
611
612 @pyqtSignature("int")
612 @pyqtSignature("int")
613 def on_volOpComCode_activated(self, index):
613 def on_volOpComCode_activated(self, index):
614 """
614 """
615 Check Box habilita ingreso
615 Check Box habilita ingreso
616 """
616 """
617 if index == 13:
617 if index == 13:
618 self.volOpCode.setEnabled(True)
618 self.volOpCode.setEnabled(True)
619 else:
619 else:
620 self.volOpCode.setEnabled(False)
620 self.volOpCode.setEnabled(False)
621
621
622 if index == 0:
622 if index == 0:
623 code = ''
623 code = ''
624 self.volOpCode.setText(str(code))
624 self.volOpCode.setText(str(code))
625 return
625 return
626
626
627 if index == 1:
627 if index == 1:
628 code = '(1,1,-1)'
628 code = '(1,1,-1)'
629 nCode = '1'
629 nCode = '1'
630 nBaud = '3'
630 nBaud = '3'
631 if index == 2:
631 if index == 2:
632 code = '(1,1,-1,1)'
632 code = '(1,1,-1,1)'
633 nCode = '1'
633 nCode = '1'
634 nBaud = '4'
634 nBaud = '4'
635 if index == 3:
635 if index == 3:
636 code = '(1,1,1,-1,1)'
636 code = '(1,1,1,-1,1)'
637 nCode = '1'
637 nCode = '1'
638 nBaud = '5'
638 nBaud = '5'
639 if index == 4:
639 if index == 4:
640 code = '(1,1,1,-1,-1,1,-1)'
640 code = '(1,1,1,-1,-1,1,-1)'
641 nCode = '1'
641 nCode = '1'
642 nBaud = '7'
642 nBaud = '7'
643 if index == 5:
643 if index == 5:
644 code = '(1,1,1,-1,-1,-1,1,-1,-1,1,-1)'
644 code = '(1,1,1,-1,-1,-1,1,-1,-1,1,-1)'
645 nCode = '1'
645 nCode = '1'
646 nBaud = '11'
646 nBaud = '11'
647 if index == 6:
647 if index == 6:
648 code = '(1,1,1,1,1,-1,-1,1,1,-1,1,-1,1)'
648 code = '(1,1,1,1,1,-1,-1,1,1,-1,1,-1,1)'
649 nCode = '1'
649 nCode = '1'
650 nBaud = '13'
650 nBaud = '13'
651 if index == 7:
651 if index == 7:
652 code = '(1,1,-1,-1,-1,1)'
652 code = '(1,1,-1,-1,-1,1)'
653 nCode = '2'
653 nCode = '2'
654 nBaud = '3'
654 nBaud = '3'
655 if index == 8:
655 if index == 8:
656 code = '(1,1,-1,1,-1,-1,1,-1)'
656 code = '(1,1,-1,1,-1,-1,1,-1)'
657 nCode = '2'
657 nCode = '2'
658 nBaud = '4'
658 nBaud = '4'
659 if index == 9:
659 if index == 9:
660 code = '(1,1,1,-1,1,-1,-1,-1,1,-1)'
660 code = '(1,1,1,-1,1,-1,-1,-1,1,-1)'
661 nCode = '2'
661 nCode = '2'
662 nBaud = '5'
662 nBaud = '5'
663 if index == 10:
663 if index == 10:
664 code = '(1,1,1,-1,-1,1,-1,-1,-1,-1,1,1,-1,1)'
664 code = '(1,1,1,-1,-1,1,-1,-1,-1,-1,1,1,-1,1)'
665 nCode = '2'
665 nCode = '2'
666 nBaud = '7'
666 nBaud = '7'
667 if index == 11:
667 if index == 11:
668 code = '(1,1,1,-1,-1,-1,1,-1,-1,1,-1,-1 ,-1 ,-1 ,1 ,1,1,-1 ,1 ,1 ,-1 ,1)'
668 code = '(1,1,1,-1,-1,-1,1,-1,-1,1,-1,-1 ,-1 ,-1 ,1 ,1,1,-1 ,1 ,1 ,-1 ,1)'
669 nCode = '2'
669 nCode = '2'
670 nBaud = '11'
670 nBaud = '11'
671 if index == 12:
671 if index == 12:
672 code = '(1,1,1,1,1,-1,-1,1,1,-1,1,-1,1,-1,-1,-1,-1,-1,1,1,-1,-1,1,-1,1,-1)'
672 code = '(1,1,1,1,1,-1,-1,1,1,-1,1,-1,1,-1,-1,-1,-1,-1,1,1,-1,-1,1,-1,1,-1)'
673 nCode = '2'
673 nCode = '2'
674 nBaud = '13'
674 nBaud = '13'
675
675
676 code = ast.literal_eval(code)
676 code = ast.literal_eval(code)
677 nCode = int(nCode)
677 nCode = int(nCode)
678 nBaud = int(nBaud)
678 nBaud = int(nBaud)
679
679
680 code = numpy.asarray(code).reshape((nCode, nBaud)).tolist()
680 code = numpy.asarray(code).reshape((nCode, nBaud)).tolist()
681
681
682 self.volOpCode.setText(str(code))
682 self.volOpCode.setText(str(code))
683
683
684 @pyqtSignature("int")
684 @pyqtSignature("int")
685 def on_volOpCebFlip_stateChanged(self, p0):
685 def on_volOpCebFlip_stateChanged(self, p0):
686 """
686 """
687 Check Box habilita ingresode del numero de Integraciones a realizar
687 Check Box habilita ingresode del numero de Integraciones a realizar
688 """
688 """
689 if p0 == 2:
689 if p0 == 2:
690 self.volOpFlip.setEnabled(True)
690 self.volOpFlip.setEnabled(True)
691 if p0 == 0:
691 if p0 == 0:
692 self.volOpFlip.setEnabled(False)
692 self.volOpFlip.setEnabled(False)
693 self.volOpFlip.clear()
693 self.volOpFlip.clear()
694
694
695 @pyqtSignature("int")
695 @pyqtSignature("int")
696 def on_volOpCebCohInt_stateChanged(self, p0):
696 def on_volOpCebCohInt_stateChanged(self, p0):
697 """
697 """
698 Check Box habilita ingresode del numero de Integraciones a realizar
698 Check Box habilita ingresode del numero de Integraciones a realizar
699 """
699 """
700 if p0 == 2:
700 if p0 == 2:
701 self.volOpCohInt.setEnabled(True)
701 self.volOpCohInt.setEnabled(True)
702 if p0 == 0:
702 if p0 == 0:
703 self.volOpCohInt.setEnabled(False)
703 self.volOpCohInt.setEnabled(False)
704 self.volOpCohInt.clear()
704 self.volOpCohInt.clear()
705
705
706 @pyqtSignature("int")
706 @pyqtSignature("int")
707 def on_volOpCebRadarfrequency_stateChanged(self, p0):
707 def on_volOpCebRadarfrequency_stateChanged(self, p0):
708 """
708 """
709 Check Box habilita ingresode del numero de Integraciones a realizar
709 Check Box habilita ingresode del numero de Integraciones a realizar
710 """
710 """
711 if p0 == 2:
711 if p0 == 2:
712 self.volOpRadarfrequency.setEnabled(True)
712 self.volOpRadarfrequency.setEnabled(True)
713 if p0 == 0:
713 if p0 == 0:
714 self.volOpRadarfrequency.clear()
714 self.volOpRadarfrequency.clear()
715 self.volOpRadarfrequency.setEnabled(False)
715 self.volOpRadarfrequency.setEnabled(False)
716
716
717 @pyqtSignature("")
717 @pyqtSignature("")
718 def on_volOutputToolPath_clicked(self):
718 def on_volOutputToolPath_clicked(self):
719 dirOutPath = str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly))
719 dirOutPath = str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly))
720 self.volOutputPath.setText(dirOutPath)
720 self.volOutputPath.setText(dirOutPath)
721
721
722 @pyqtSignature("")
722 @pyqtSignature("")
723 def on_specOutputToolPath_clicked(self):
723 def on_specOutputToolPath_clicked(self):
724 dirOutPath = str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly))
724 dirOutPath = str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly))
725 self.specOutputPath.setText(dirOutPath)
725 self.specOutputPath.setText(dirOutPath)
726
726
727 @pyqtSignature("")
727 @pyqtSignature("")
728 def on_specHeisOutputToolPath_clicked(self):
728 def on_specHeisOutputToolPath_clicked(self):
729 dirOutPath = str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly))
729 dirOutPath = str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly))
730 self.specHeisOutputPath.setText(dirOutPath)
730 self.specHeisOutputPath.setText(dirOutPath)
731
731
732 @pyqtSignature("")
732 @pyqtSignature("")
733 def on_specHeisOutputMetadaToolPath_clicked(self):
733 def on_specHeisOutputMetadaToolPath_clicked(self):
734
734
735 filename = str(QtGui.QFileDialog.getOpenFileName(self, "Open text file", self.pathWorkSpace, self.tr("Text Files (*.xml)")))
735 filename = str(QtGui.QFileDialog.getOpenFileName(self, "Open text file", self.pathWorkSpace, self.tr("Text Files (*.xml)")))
736 self.specHeisOutputMetada.setText(filename)
736 self.specHeisOutputMetada.setText(filename)
737
737
738 @pyqtSignature("")
738 @pyqtSignature("")
739 def on_volOpOk_clicked(self):
739 def on_volOpOk_clicked(self):
740 """
740 """
741 BUSCA EN LA LISTA DE OPERACIONES DEL TIPO VOLTAJE Y LES AοΏ½ADE EL PARAMETRO ADECUADO ESPERANDO LA ACEPTACION DEL USUARIO
741 BUSCA EN LA LISTA DE OPERACIONES DEL TIPO VOLTAJE Y LES AοΏ½ADE EL PARAMETRO ADECUADO ESPERANDO LA ACEPTACION DEL USUARIO
742 PARA AGREGARLO AL ARCHIVO DE CONFIGURACION XML
742 PARA AGREGARLO AL ARCHIVO DE CONFIGURACION XML
743 """
743 """
744
744
745 checkPath = False
745 checkPath = False
746
746
747 self.actionSaveToolbar.setEnabled(False)
747 self.actionSaveToolbar.setEnabled(False)
748 self.actionStarToolbar.setEnabled(False)
748 self.actionStarToolbar.setEnabled(False)
749
749
750 self.actionSave.setEnabled(False)
750 self.actionSave.setEnabled(False)
751 self.actionStart.setEnabled(False)
751 self.actionStart.setEnabled(False)
752
752
753 self.console.clear()
753 self.console.clear()
754 self.console.append("Checking input parameters ...")
754 self.console.append("Checking input parameters ...")
755
755
756 puObj = self.getSelectedItemObj()
756 puObj = self.getSelectedItemObj()
757 puObj.removeOperations()
757 puObj.removeOperations()
758
758
759 if self.volOpCebRadarfrequency.isChecked():
759 if self.volOpCebRadarfrequency.isChecked():
760 value = str(self.volOpRadarfrequency.text())
760 value = str(self.volOpRadarfrequency.text())
761 format = 'float'
761 format = 'float'
762 name_operation = 'setRadarFrequency'
762 name_operation = 'setRadarFrequency'
763 name_parameter = 'frequency'
763 name_parameter = 'frequency'
764 if not value == "":
764 if not value == "":
765 try:
765 try:
766 radarfreq = float(self.volOpRadarfrequency.text())*1e6
766 radarfreq = float(self.volOpRadarfrequency.text())*1e6
767 except:
767 except:
768 self.console.clear()
768 self.console.clear()
769 self.console.append("Invalid value '%s' for Radar Frequency" %value)
769 self.console.append("Invalid value '%s' for Radar Frequency" %value)
770 return 0
770 return 0
771
771
772 opObj = puObj.addOperation(name=name_operation)
772 opObj = puObj.addOperation(name=name_operation)
773 if not opObj.addParameter(name=name_parameter, value=radarfreq, format=format):
773 if not opObj.addParameter(name=name_parameter, value=radarfreq, format=format):
774 self.console.append("Invalid value '%s' for %s" %(value,name_parameter))
774 self.console.append("Invalid value '%s' for %s" %(value,name_parameter))
775 return 0
775 return 0
776
776
777 if self.volOpCebChannels.isChecked():
777 if self.volOpCebChannels.isChecked():
778 value = str(self.volOpChannel.text())
778 value = str(self.volOpChannel.text())
779
779
780 if value == "":
780 if value == "":
781 print "Please fill channel list"
781 print "Please fill channel list"
782 return 0
782 return 0
783
783
784 format = 'intlist'
784 format = 'intlist'
785 if self.volOpComChannels.currentIndex() == 0:
785 if self.volOpComChannels.currentIndex() == 0:
786 name_operation = "selectChannels"
786 name_operation = "selectChannels"
787 name_parameter = 'channelList'
787 name_parameter = 'channelList'
788 else:
788 else:
789 name_operation = "selectChannelsByIndex"
789 name_operation = "selectChannelsByIndex"
790 name_parameter = 'channelIndexList'
790 name_parameter = 'channelIndexList'
791
791
792 opObj = puObj.addOperation(name=name_operation)
792 opObj = puObj.addOperation(name=name_operation)
793 if not opObj.addParameter(name=name_parameter, value=value, format=format):
793 if not opObj.addParameter(name=name_parameter, value=value, format=format):
794 self.console.append("Invalid value '%s' for %s" %(value,name_parameter))
794 self.console.append("Invalid value '%s' for %s" %(value,name_parameter))
795 return 0
795 return 0
796
796
797 if self.volOpCebHeights.isChecked():
797 if self.volOpCebHeights.isChecked():
798 value = str(self.volOpHeights.text())
798 value = str(self.volOpHeights.text())
799
799
800 if value == "":
800 if value == "":
801 print "Please fill height range"
801 print "Please fill height range"
802 return 0
802 return 0
803
803
804 valueList = value.split(',')
804 valueList = value.split(',')
805
805
806 if self.volOpComHeights.currentIndex() == 0:
806 if self.volOpComHeights.currentIndex() == 0:
807 format = 'float'
807 format = 'float'
808 name_operation = 'selectHeights'
808 name_operation = 'selectHeights'
809 name_parameter1 = 'minHei'
809 name_parameter1 = 'minHei'
810 name_parameter2 = 'maxHei'
810 name_parameter2 = 'maxHei'
811 else:
811 else:
812 format = 'int'
812 format = 'int'
813 name_operation = 'selectHeightsByIndex'
813 name_operation = 'selectHeightsByIndex'
814 name_parameter1 = 'minIndex'
814 name_parameter1 = 'minIndex'
815 name_parameter2 = 'maxIndex'
815 name_parameter2 = 'maxIndex'
816
816
817 opObj = puObj.addOperation(name=name_operation)
817 opObj = puObj.addOperation(name=name_operation)
818 opObj.addParameter(name=name_parameter1, value=valueList[0], format=format)
818 opObj.addParameter(name=name_parameter1, value=valueList[0], format=format)
819 opObj.addParameter(name=name_parameter2, value=valueList[1], format=format)
819 opObj.addParameter(name=name_parameter2, value=valueList[1], format=format)
820
820
821 if self.volOpCebFilter.isChecked():
821 if self.volOpCebFilter.isChecked():
822 value = str(self.volOpFilter.text())
822 value = str(self.volOpFilter.text())
823 if value == "":
823 if value == "":
824 print "Please fill filter value"
824 print "Please fill filter value"
825 return 0
825 return 0
826
826
827 format = 'int'
827 format = 'int'
828 name_operation = 'filterByHeights'
828 name_operation = 'filterByHeights'
829 name_parameter = 'window'
829 name_parameter = 'window'
830 opObj = puObj.addOperation(name=name_operation)
830 opObj = puObj.addOperation(name=name_operation)
831 if not opObj.addParameter(name=name_parameter, value=value, format=format):
831 if not opObj.addParameter(name=name_parameter, value=value, format=format):
832 self.console.append("Invalid value '%s' for %s" %(value,name_parameter))
832 self.console.append("Invalid value '%s' for %s" %(value,name_parameter))
833 return 0
833 return 0
834
834
835 if self.volOpCebProfile.isChecked():
835 if self.volOpCebProfile.isChecked():
836 value = str(self.volOpProfile.text())
836 value = str(self.volOpProfile.text())
837
837
838 if value == "":
838 if value == "":
839 print "Please fill profile value"
839 print "Please fill profile value"
840 return 0
840 return 0
841
841
842 format = 'intlist'
842 format = 'intlist'
843 optype = 'other'
843 optype = 'other'
844 name_operation = 'ProfileSelector'
844 name_operation = 'ProfileSelector'
845 if self.volOpComProfile.currentIndex() == 0:
845 if self.volOpComProfile.currentIndex() == 0:
846 name_parameter = 'profileList'
846 name_parameter = 'profileList'
847 if self.volOpComProfile.currentIndex() == 1:
847 if self.volOpComProfile.currentIndex() == 1:
848 name_parameter = 'profileRangeList'
848 name_parameter = 'profileRangeList'
849 if self.volOpComProfile.currentIndex() == 2:
849 if self.volOpComProfile.currentIndex() == 2:
850 name_parameter = 'rangeList'
850 name_parameter = 'rangeList'
851
851
852 opObj = puObj.addOperation(name='ProfileSelector', optype='other')
852 opObj = puObj.addOperation(name='ProfileSelector', optype='other')
853 if not opObj.addParameter(name=name_parameter, value=value, format=format):
853 if not opObj.addParameter(name=name_parameter, value=value, format=format):
854 self.console.append("Invalid value '%s' for %s" %(value,name_parameter))
854 self.console.append("Invalid value '%s' for %s" %(value,name_parameter))
855 return 0
855 return 0
856
856
857 if self.volOpCebDecodification.isChecked():
857 if self.volOpCebDecodification.isChecked():
858 name_operation = 'Decoder'
858 name_operation = 'Decoder'
859 opObj = puObj.addOperation(name=name_operation, optype='other')
859 opObj = puObj.addOperation(name=name_operation, optype='other')
860
860
861 #User defined
861 #User defined
862 nBaud = None
862 nBaud = None
863 nCode = None
863 nCode = None
864
864
865 code = str(self.volOpCode.text())
865 code = str(self.volOpCode.text())
866 try:
866 try:
867 code_tmp = ast.literal_eval(code)
867 code_tmp = ast.literal_eval(code)
868 except:
868 except:
869 code_tmp = []
869 code_tmp = []
870
870
871 if len(code_tmp) > 0:
871 if len(code_tmp) > 0:
872
872
873 if type(code_tmp) not in (tuple, list):
873 if type(code_tmp) not in (tuple, list):
874 self.console.append("Please write a right value for Code (Exmaple: [1,1,-1], [1,-1,1])")
874 self.console.append("Please write a right value for Code (Exmaple: [1,1,-1], [1,-1,1])")
875 return 0
875 return 0
876
876
877 if len(code_tmp) > 1 and type(code_tmp[0]) in (tuple, list): #[ [1,-1,1], [1,1,-1] ]
877 if len(code_tmp) > 1 and type(code_tmp[0]) in (tuple, list): #[ [1,-1,1], [1,1,-1] ]
878 nBaud = len(code_tmp[0])
878 nBaud = len(code_tmp[0])
879 nCode = len(code_tmp)
879 nCode = len(code_tmp)
880 elif len(code_tmp) == 1 and type(code_tmp[0]) in (tuple, list): #[ [1,-1,1] ]
880 elif len(code_tmp) == 1 and type(code_tmp[0]) in (tuple, list): #[ [1,-1,1] ]
881 nBaud = len(code_tmp[0])
881 nBaud = len(code_tmp[0])
882 nCode = 1
882 nCode = 1
883 elif type(code_tmp[0]) in (int, float): #[1,-1,1] or (1,-1,1)
883 elif type(code_tmp[0]) in (int, float): #[1,-1,1] or (1,-1,1)
884 nBaud = len(code_tmp)
884 nBaud = len(code_tmp)
885 nCode = 1
885 nCode = 1
886 else:
886 else:
887 self.console.append("Please write a right value for Code (Exmaple: [1,1,-1], [1,-1,1])")
887 self.console.append("Please write a right value for Code (Exmaple: [1,1,-1], [1,-1,1])")
888 return 0
888 return 0
889
889
890 if not nBaud or not nCode:
890 if not nBaud or not nCode:
891 self.console.append("Please write a right value for Code")
891 self.console.append("Please write a right value for Code")
892 return 0
892 return 0
893
893
894 code = code.replace("(", "")
894 code = code.replace("(", "")
895 code = code.replace(")", "")
895 code = code.replace(")", "")
896 code = code.replace("[", "")
896 code = code.replace("[", "")
897 code = code.replace("]", "")
897 code = code.replace("]", "")
898
898
899 if not opObj.addParameter(name='code', value=code, format='intlist'):
899 if not opObj.addParameter(name='code', value=code, format='intlist'):
900 self.console.append("Please write a right value for Code")
900 self.console.append("Please write a right value for Code")
901 return 0
901 return 0
902 if not opObj.addParameter(name='nCode', value=nCode, format='int'):
902 if not opObj.addParameter(name='nCode', value=nCode, format='int'):
903 self.console.append("Please write a right value for Code")
903 self.console.append("Please write a right value for Code")
904 return 0
904 return 0
905 if not opObj.addParameter(name='nBaud', value=nBaud, format='int'):
905 if not opObj.addParameter(name='nBaud', value=nBaud, format='int'):
906 self.console.append("Please write a right value for Code")
906 self.console.append("Please write a right value for Code")
907 return 0
907 return 0
908
908
909 name_parameter = 'mode'
909 name_parameter = 'mode'
910 format = 'int'
910 format = 'int'
911
911
912 value = str(self.volOpComMode.currentIndex())
912 value = str(self.volOpComMode.currentIndex())
913
913
914 if not opObj.addParameter(name=name_parameter, value=value, format=format):
914 if not opObj.addParameter(name=name_parameter, value=value, format=format):
915 self.console.append("Invalid value '%s' for '%s'" %(value,name_parameter))
915 self.console.append("Invalid value '%s' for '%s'" %(value,name_parameter))
916 return 0
916 return 0
917
917
918
918
919 if self.volOpCebFlip.isChecked():
919 if self.volOpCebFlip.isChecked():
920 name_operation = 'deFlip'
920 name_operation = 'deFlip'
921 optype = 'self'
921 optype = 'self'
922
922
923 opObj = puObj.addOperation(name=name_operation, optype=optype)
923 opObj = puObj.addOperation(name=name_operation, optype=optype)
924
924
925 name_parameter = 'channelList'
925 name_parameter = 'channelList'
926 format = 'intlist'
926 format = 'intlist'
927 value = str(self.volOpFlip.text())
927 value = str(self.volOpFlip.text())
928
928
929 if value != "":
929 if value != "":
930 if not opObj.addParameter(name=name_parameter, value=value, format=format):
930 if not opObj.addParameter(name=name_parameter, value=value, format=format):
931 self.console.append("Invalid value '%s' for '%s'" %(value,name_parameter))
931 self.console.append("Invalid value '%s' for '%s'" %(value,name_parameter))
932 return 0
932 return 0
933
933
934 if self.volOpCebCohInt.isChecked():
934 if self.volOpCebCohInt.isChecked():
935 name_operation = 'CohInt'
935 name_operation = 'CohInt'
936 optype = 'other'
936 optype = 'other'
937 value = str(self.volOpCohInt.text())
937 value = str(self.volOpCohInt.text())
938
938
939 if value == "":
939 if value == "":
940 print "Please fill number of coherent integrations"
940 print "Please fill number of coherent integrations"
941 return 0
941 return 0
942
942
943 name_parameter = 'n'
943 name_parameter = 'n'
944 format = 'int'
944 format = 'int'
945
945
946 opObj = puObj.addOperation(name=name_operation, optype=optype)
946 opObj = puObj.addOperation(name=name_operation, optype=optype)
947
947
948 if not opObj.addParameter(name=name_parameter, value=value, format=format):
948 if not opObj.addParameter(name=name_parameter, value=value, format=format):
949 self.console.append("Invalid value '%s' for '%s'" %(value,name_parameter))
949 self.console.append("Invalid value '%s' for '%s'" %(value,name_parameter))
950 return 0
950 return 0
951
951
952 if self.volGraphCebshow.isChecked():
952 if self.volGraphCebshow.isChecked():
953 name_operation = 'Scope'
953 name_operation = 'Scope'
954 optype = 'other'
954 optype = 'other'
955 name_parameter = 'type'
955 name_parameter = 'type'
956 value = 'Scope'
956 value = 'Scope'
957 if self.idImagscope == 0:
957 if self.idImagscope == 0:
958 self.idImagscope = 100
958 self.idImagscope = 100
959 else:
959 else:
960 self.idImagscope = self.idImagscope + 1
960 self.idImagscope = self.idImagscope + 1
961
961
962 name_parameter1 = 'id'
962 name_parameter1 = 'id'
963 value1 = int(self.idImagscope)
963 value1 = int(self.idImagscope)
964 format1 = 'int'
964 format1 = 'int'
965 format = 'str'
965 format = 'str'
966
966
967 opObj = puObj.addOperation(name=name_operation, optype=optype)
967 opObj = puObj.addOperation(name=name_operation, optype=optype)
968 # opObj.addParameter(name=name_parameter, value=value, format=format)
968 # opObj.addParameter(name=name_parameter, value=value, format=format)
969 opObj.addParameter(name=name_parameter1, value=opObj.id, format=format1)
969 opObj.addParameter(name=name_parameter1, value=opObj.id, format=format1)
970
970
971 channelList = str(self.volGraphChannelList.text()).replace(" ","")
971 channelList = str(self.volGraphChannelList.text()).replace(" ","")
972 xvalue = str(self.volGraphfreqrange.text()).replace(" ","")
972 xvalue = str(self.volGraphfreqrange.text()).replace(" ","")
973 yvalue = str(self.volGraphHeightrange.text()).replace(" ","")
973 yvalue = str(self.volGraphHeightrange.text()).replace(" ","")
974
974
975 if channelList:
975 if channelList:
976 opObj.addParameter(name='channelList', value=channelList, format='intlist')
976 opObj.addParameter(name='channelList', value=channelList, format='intlist')
977
977
978 if xvalue:
978 if xvalue:
979 xvalueList = xvalue.split(',')
979 xvalueList = xvalue.split(',')
980 try:
980 try:
981 value0 = float(xvalueList[0])
981 value0 = float(xvalueList[0])
982 value1 = float(xvalueList[1])
982 value1 = float(xvalueList[1])
983 except:
983 except:
984 return 0
984 return 0
985 opObj.addParameter(name='xmin', value=value0, format='float')
985 opObj.addParameter(name='xmin', value=value0, format='float')
986 opObj.addParameter(name='xmax', value=value1, format='float')
986 opObj.addParameter(name='xmax', value=value1, format='float')
987
987
988
988
989 if not yvalue == "":
989 if not yvalue == "":
990 yvalueList = yvalue.split(",")
990 yvalueList = yvalue.split(",")
991 try:
991 try:
992 value0 = int(yvalueList[0])
992 value0 = int(yvalueList[0])
993 value1 = int(yvalueList[1])
993 value1 = int(yvalueList[1])
994 except:
994 except:
995 return 0
995 return 0
996
996
997 opObj.addParameter(name='ymin', value=value0, format='int')
997 opObj.addParameter(name='ymin', value=value0, format='int')
998 opObj.addParameter(name='ymax', value=value1, format='int')
998 opObj.addParameter(name='ymax', value=value1, format='int')
999
999
1000 if self.volGraphCebSave.isChecked():
1000 if self.volGraphCebSave.isChecked():
1001 checkPath = True
1001 checkPath = True
1002 opObj.addParameter(name='save', value='1', format='int')
1002 opObj.addParameter(name='save', value='1', format='int')
1003 opObj.addParameter(name='figpath', value=str(self.volGraphPath.text()), format='str')
1003 opObj.addParameter(name='figpath', value=str(self.volGraphPath.text()), format='str')
1004 value = str(self.volGraphPrefix.text()).replace(" ","")
1004 value = str(self.volGraphPrefix.text()).replace(" ","")
1005 if value:
1005 if value:
1006 opObj.addParameter(name='figfile', value=value, format='str')
1006 opObj.addParameter(name='figfile', value=value, format='str')
1007
1007
1008 localfolder = None
1008 localfolder = None
1009 if checkPath:
1009 if checkPath:
1010 localfolder = str(self.volGraphPath.text())
1010 localfolder = str(self.volGraphPath.text())
1011 if localfolder == '':
1011 if localfolder == '':
1012 self.console.clear()
1012 self.console.clear()
1013 self.console.append("Graphic path should be defined")
1013 self.console.append("Graphic path should be defined")
1014 return 0
1014 return 0
1015
1015
1016 # if something happend
1016 # if something happend
1017 parms_ok, output_path, blocksperfile, profilesperblock = self.checkInputsPUSave(datatype='Voltage')
1017 parms_ok, output_path, blocksperfile, profilesperblock = self.checkInputsPUSave(datatype='Voltage')
1018 if parms_ok:
1018 if parms_ok:
1019 name_operation = 'VoltageWriter'
1019 name_operation = 'VoltageWriter'
1020 optype = 'other'
1020 optype = 'other'
1021 name_parameter1 = 'path'
1021 name_parameter1 = 'path'
1022 name_parameter2 = 'blocksPerFile'
1022 name_parameter2 = 'blocksPerFile'
1023 name_parameter3 = 'profilesPerBlock'
1023 name_parameter3 = 'profilesPerBlock'
1024 value1 = output_path
1024 value1 = output_path
1025 value2 = blocksperfile
1025 value2 = blocksperfile
1026 value3 = profilesperblock
1026 value3 = profilesperblock
1027 format = "int"
1027 format = "int"
1028 opObj = puObj.addOperation(name=name_operation, optype=optype)
1028 opObj = puObj.addOperation(name=name_operation, optype=optype)
1029 opObj.addParameter(name=name_parameter1, value=value1)
1029 opObj.addParameter(name=name_parameter1, value=value1)
1030 opObj.addParameter(name=name_parameter2, value=value2, format=format)
1030 opObj.addParameter(name=name_parameter2, value=value2, format=format)
1031 opObj.addParameter(name=name_parameter3, value=value3, format=format)
1031 opObj.addParameter(name=name_parameter3, value=value3, format=format)
1032
1032
1033 self.console.clear()
1033 self.console.clear()
1034 try:
1034 try:
1035 self.refreshPUProperties(puObj)
1035 self.refreshPUProperties(puObj)
1036 except:
1036 except:
1037 self.console.append("An error reading input parameters was found ...Check them!")
1037 self.console.append("An error reading input parameters was found ...Check them!")
1038 return 0
1038 return 0
1039
1039
1040 self.console.append("Save your project and press Play button to start signal processing")
1040 self.console.append("Save your project and press Play button to start signal processing")
1041
1041
1042 self.actionSaveToolbar.setEnabled(True)
1042 self.actionSaveToolbar.setEnabled(True)
1043 self.actionStarToolbar.setEnabled(True)
1043 self.actionStarToolbar.setEnabled(True)
1044
1044
1045 self.actionSave.setEnabled(True)
1045 self.actionSave.setEnabled(True)
1046 self.actionStart.setEnabled(True)
1046 self.actionStart.setEnabled(True)
1047
1047
1048 return 1
1048 return 1
1049
1049
1050 """
1050 """
1051 Voltage Graph
1051 Voltage Graph
1052 """
1052 """
1053 @pyqtSignature("int")
1053 @pyqtSignature("int")
1054 def on_volGraphCebSave_stateChanged(self, p0):
1054 def on_volGraphCebSave_stateChanged(self, p0):
1055 """
1055 """
1056 Check Box habilita ingresode del numero de Integraciones a realizar
1056 Check Box habilita ingresode del numero de Integraciones a realizar
1057 """
1057 """
1058 if p0 == 2:
1058 if p0 == 2:
1059 self.volGraphPath.setEnabled(True)
1059 self.volGraphPath.setEnabled(True)
1060 self.volGraphPrefix.setEnabled(True)
1060 self.volGraphPrefix.setEnabled(True)
1061 self.volGraphToolPath.setEnabled(True)
1061 self.volGraphToolPath.setEnabled(True)
1062
1062
1063 if p0 == 0:
1063 if p0 == 0:
1064 self.volGraphPath.setEnabled(False)
1064 self.volGraphPath.setEnabled(False)
1065 self.volGraphPrefix.setEnabled(False)
1065 self.volGraphPrefix.setEnabled(False)
1066 self.volGraphToolPath.setEnabled(False)
1066 self.volGraphToolPath.setEnabled(False)
1067
1067
1068 @pyqtSignature("")
1068 @pyqtSignature("")
1069 def on_volGraphToolPath_clicked(self):
1069 def on_volGraphToolPath_clicked(self):
1070 """
1070 """
1071 Donde se guardan los DATOS
1071 Donde se guardan los DATOS
1072 """
1072 """
1073 save_path = str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly))
1073 save_path = str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly))
1074 self.volGraphPath.setText(save_path)
1074 self.volGraphPath.setText(save_path)
1075
1075
1076 if not os.path.exists(save_path):
1076 if not os.path.exists(save_path):
1077 self.console.clear()
1077 self.console.clear()
1078 self.console.append("Set a valid path")
1078 self.console.append("Set a valid path")
1079 self.volGraphOk.setEnabled(False)
1079 self.volGraphOk.setEnabled(False)
1080 return
1080 return
1081
1081
1082 @pyqtSignature("int")
1082 @pyqtSignature("int")
1083 def on_volGraphCebshow_stateChanged(self, p0):
1083 def on_volGraphCebshow_stateChanged(self, p0):
1084 """
1084 """
1085 Check Box habilita ingresode del numero de Integraciones a realizar
1085 Check Box habilita ingresode del numero de Integraciones a realizar
1086 """
1086 """
1087 if p0 == 0:
1087 if p0 == 0:
1088
1088
1089 self.volGraphChannelList.setEnabled(False)
1089 self.volGraphChannelList.setEnabled(False)
1090 self.volGraphfreqrange.setEnabled(False)
1090 self.volGraphfreqrange.setEnabled(False)
1091 self.volGraphHeightrange.setEnabled(False)
1091 self.volGraphHeightrange.setEnabled(False)
1092 if p0 == 2:
1092 if p0 == 2:
1093
1093
1094 self.volGraphChannelList.setEnabled(True)
1094 self.volGraphChannelList.setEnabled(True)
1095 self.volGraphfreqrange.setEnabled(True)
1095 self.volGraphfreqrange.setEnabled(True)
1096 self.volGraphHeightrange.setEnabled(True)
1096 self.volGraphHeightrange.setEnabled(True)
1097
1097
1098 """
1098 """
1099 Spectra operation
1099 Spectra operation
1100 """
1100 """
1101 @pyqtSignature("int")
1101 @pyqtSignature("int")
1102 def on_specOpCebRadarfrequency_stateChanged(self, p0):
1102 def on_specOpCebRadarfrequency_stateChanged(self, p0):
1103 """
1103 """
1104 Check Box habilita ingresode del numero de Integraciones a realizar
1104 Check Box habilita ingresode del numero de Integraciones a realizar
1105 """
1105 """
1106 if p0 == 2:
1106 if p0 == 2:
1107 self.specOpRadarfrequency.setEnabled(True)
1107 self.specOpRadarfrequency.setEnabled(True)
1108 if p0 == 0:
1108 if p0 == 0:
1109 self.specOpRadarfrequency.clear()
1109 self.specOpRadarfrequency.clear()
1110 self.specOpRadarfrequency.setEnabled(False)
1110 self.specOpRadarfrequency.setEnabled(False)
1111
1111
1112
1112
1113 @pyqtSignature("int")
1113 @pyqtSignature("int")
1114 def on_specOpCebCrossSpectra_stateChanged(self, p0):
1114 def on_specOpCebCrossSpectra_stateChanged(self, p0):
1115 """
1115 """
1116 Habilita la opcion de aοΏ½adir el parοΏ½metro CrossSpectra a la Unidad de Procesamiento .
1116 Habilita la opcion de aοΏ½adir el parοΏ½metro CrossSpectra a la Unidad de Procesamiento .
1117 """
1117 """
1118 if p0 == 2:
1118 if p0 == 2:
1119 # self.specOpnFFTpoints.setEnabled(True)
1119 # self.specOpnFFTpoints.setEnabled(True)
1120 self.specOppairsList.setEnabled(True)
1120 self.specOppairsList.setEnabled(True)
1121 if p0 == 0:
1121 if p0 == 0:
1122 # self.specOpnFFTpoints.setEnabled(False)
1122 # self.specOpnFFTpoints.setEnabled(False)
1123 self.specOppairsList.setEnabled(False)
1123 self.specOppairsList.setEnabled(False)
1124
1124
1125 @pyqtSignature("int")
1125 @pyqtSignature("int")
1126 def on_specOpCebChannel_stateChanged(self, p0):
1126 def on_specOpCebChannel_stateChanged(self, p0):
1127 """
1127 """
1128 Habilita la opcion de aοΏ½adir el parοΏ½metro numero de Canales a la Unidad de Procesamiento .
1128 Habilita la opcion de aοΏ½adir el parοΏ½metro numero de Canales a la Unidad de Procesamiento .
1129 """
1129 """
1130 if p0 == 2:
1130 if p0 == 2:
1131 self.specOpChannel.setEnabled(True)
1131 self.specOpChannel.setEnabled(True)
1132 self.specOpComChannel.setEnabled(True)
1132 self.specOpComChannel.setEnabled(True)
1133 if p0 == 0:
1133 if p0 == 0:
1134 self.specOpChannel.setEnabled(False)
1134 self.specOpChannel.setEnabled(False)
1135 self.specOpComChannel.setEnabled(False)
1135 self.specOpComChannel.setEnabled(False)
1136
1136
1137 @pyqtSignature("int")
1137 @pyqtSignature("int")
1138 def on_specOpCebHeights_stateChanged(self, p0):
1138 def on_specOpCebHeights_stateChanged(self, p0):
1139 """
1139 """
1140 Habilita la opcion de aοΏ½adir el parοΏ½metro de alturas a la Unidad de Procesamiento .
1140 Habilita la opcion de aοΏ½adir el parοΏ½metro de alturas a la Unidad de Procesamiento .
1141 """
1141 """
1142 if p0 == 2:
1142 if p0 == 2:
1143 self.specOpComHeights.setEnabled(True)
1143 self.specOpComHeights.setEnabled(True)
1144 self.specOpHeights.setEnabled(True)
1144 self.specOpHeights.setEnabled(True)
1145 if p0 == 0:
1145 if p0 == 0:
1146 self.specOpComHeights.setEnabled(False)
1146 self.specOpComHeights.setEnabled(False)
1147 self.specOpHeights.setEnabled(False)
1147 self.specOpHeights.setEnabled(False)
1148
1148
1149
1149
1150 @pyqtSignature("int")
1150 @pyqtSignature("int")
1151 def on_specOpCebIncoherent_stateChanged(self, p0):
1151 def on_specOpCebIncoherent_stateChanged(self, p0):
1152 """
1152 """
1153 Habilita la opcion de aοΏ½adir el parοΏ½metro integraciones incoherentes a la Unidad de Procesamiento .
1153 Habilita la opcion de aοΏ½adir el parοΏ½metro integraciones incoherentes a la Unidad de Procesamiento .
1154 """
1154 """
1155 if p0 == 2:
1155 if p0 == 2:
1156 self.specOpIncoherent.setEnabled(True)
1156 self.specOpIncoherent.setEnabled(True)
1157 if p0 == 0:
1157 if p0 == 0:
1158 self.specOpIncoherent.setEnabled(False)
1158 self.specOpIncoherent.setEnabled(False)
1159
1159
1160 @pyqtSignature("int")
1160 @pyqtSignature("int")
1161 def on_specOpCebRemoveDC_stateChanged(self, p0):
1161 def on_specOpCebRemoveDC_stateChanged(self, p0):
1162 """
1162 """
1163 Habilita la opcion de aοΏ½adir el parοΏ½metro remover DC a la Unidad de Procesamiento .
1163 Habilita la opcion de aοΏ½adir el parοΏ½metro remover DC a la Unidad de Procesamiento .
1164 """
1164 """
1165 if p0 == 2:
1165 if p0 == 2:
1166 self.specOpComRemoveDC.setEnabled(True)
1166 self.specOpComRemoveDC.setEnabled(True)
1167 if p0 == 0:
1167 if p0 == 0:
1168 self.specOpComRemoveDC.setEnabled(False)
1168 self.specOpComRemoveDC.setEnabled(False)
1169
1169
1170 @pyqtSignature("int")
1170 @pyqtSignature("int")
1171 def on_specOpCebgetNoise_stateChanged(self, p0):
1171 def on_specOpCebgetNoise_stateChanged(self, p0):
1172 """
1172 """
1173 Habilita la opcion de aοΏ½adir la estimacion de ruido a la Unidad de Procesamiento .
1173 Habilita la opcion de aοΏ½adir la estimacion de ruido a la Unidad de Procesamiento .
1174 """
1174 """
1175 if p0 == 2:
1175 if p0 == 2:
1176 self.specOpgetNoise.setEnabled(True)
1176 self.specOpgetNoise.setEnabled(True)
1177
1177
1178 if p0 == 0:
1178 if p0 == 0:
1179 self.specOpgetNoise.setEnabled(False)
1179 self.specOpgetNoise.setEnabled(False)
1180
1180
1181 @pyqtSignature("")
1181 @pyqtSignature("")
1182 def on_specOpOk_clicked(self):
1182 def on_specOpOk_clicked(self):
1183 """
1183 """
1184 AΓ‘ADE OPERACION SPECTRA
1184 AΓ‘ADE OPERACION SPECTRA
1185 """
1185 """
1186
1186
1187 addFTP = False
1187 addFTP = False
1188 checkPath = False
1188 checkPath = False
1189
1189
1190 self.actionSaveToolbar.setEnabled(False)
1190 self.actionSaveToolbar.setEnabled(False)
1191 self.actionStarToolbar.setEnabled(False)
1191 self.actionStarToolbar.setEnabled(False)
1192
1192
1193 self.actionSave.setEnabled(False)
1193 self.actionSave.setEnabled(False)
1194 self.actionStart.setEnabled(False)
1194 self.actionStart.setEnabled(False)
1195
1195
1196 self.console.clear()
1196 self.console.clear()
1197 self.console.append("Checking input parameters ...")
1197 self.console.append("Checking input parameters ...")
1198
1198
1199 projectObj = self.getSelectedProjectObj()
1199 projectObj = self.getSelectedProjectObj()
1200
1200
1201 if not projectObj:
1201 if not projectObj:
1202 self.console.append("Please select a project before update it")
1202 self.console.append("Please select a project before update it")
1203 return
1203 return
1204
1204
1205 puObj = self.getSelectedItemObj()
1205 puObj = self.getSelectedItemObj()
1206
1206
1207 puObj.removeOperations()
1207 puObj.removeOperations()
1208
1208
1209 if self.specOpCebRadarfrequency.isChecked():
1209 if self.specOpCebRadarfrequency.isChecked():
1210 value = str(self.specOpRadarfrequency.text())
1210 value = str(self.specOpRadarfrequency.text())
1211 format = 'float'
1211 format = 'float'
1212 name_operation = 'setRadarFrequency'
1212 name_operation = 'setRadarFrequency'
1213 name_parameter = 'frequency'
1213 name_parameter = 'frequency'
1214
1214
1215 if not isFloat(value):
1215 if not isFloat(value):
1216 self.console.clear()
1216 self.console.clear()
1217 self.console.append("Invalid value '%s' for '%s'" %(value, name_parameter))
1217 self.console.append("Invalid value '%s' for '%s'" %(value, name_parameter))
1218 return 0
1218 return 0
1219
1219
1220 radarfreq = float(value)*1e6
1220 radarfreq = float(value)*1e6
1221 opObj = puObj.addOperation(name=name_operation)
1221 opObj = puObj.addOperation(name=name_operation)
1222 opObj.addParameter(name=name_parameter, value=radarfreq, format=format)
1222 opObj.addParameter(name=name_parameter, value=radarfreq, format=format)
1223
1223
1224 inputId = puObj.getInputId()
1224 inputId = puObj.getInputId()
1225 inputPuObj = projectObj.getProcUnitObj(inputId)
1225 inputPuObj = projectObj.getProcUnitObj(inputId)
1226
1226
1227 if inputPuObj.datatype == 'Voltage' or inputPuObj.datatype == 'USRP':
1227 if inputPuObj.datatype == 'Voltage' or inputPuObj.datatype == 'USRP':
1228
1228
1229 value = str(self.specOpnFFTpoints.text())
1229 value = str(self.specOpnFFTpoints.text())
1230
1230
1231 if not isInt(value):
1231 if not isInt(value):
1232 self.console.append("Invalid value '%s' for '%s'" %(value, 'nFFTPoints'))
1232 self.console.append("Invalid value '%s' for '%s'" %(value, 'nFFTPoints'))
1233 return 0
1233 return 0
1234
1234
1235 puObj.addParameter(name='nFFTPoints', value=value, format='int')
1235 puObj.addParameter(name='nFFTPoints', value=value, format='int')
1236
1236
1237 value = str(self.specOpProfiles.text())
1237 value = str(self.specOpProfiles.text())
1238 if not isInt(value):
1238 if not isInt(value):
1239 self.console.append("Please write a value on Profiles field")
1239 self.console.append("Please write a value on Profiles field")
1240 else:
1240 else:
1241 puObj.addParameter(name='nProfiles', value=value, format='int')
1241 puObj.addParameter(name='nProfiles', value=value, format='int')
1242
1242
1243 value = str(self.specOpippFactor.text())
1243 value = str(self.specOpippFactor.text())
1244 if not isInt(value):
1244 if not isInt(value):
1245 self.console.append("Please write a value on IppFactor field")
1245 self.console.append("Please write a value on IppFactor field")
1246 else:
1246 else:
1247 puObj.addParameter(name='ippFactor' , value=value , format='int')
1247 puObj.addParameter(name='ippFactor' , value=value , format='int')
1248
1248
1249 if self.specOpCebCrossSpectra.isChecked():
1249 if self.specOpCebCrossSpectra.isChecked():
1250 name_parameter = 'pairsList'
1250 name_parameter = 'pairsList'
1251 format = 'pairslist'
1251 format = 'pairslist'
1252 value = str(self.specOppairsList.text())
1252 value = str(self.specOppairsList.text())
1253
1253
1254 if value == "":
1254 if value == "":
1255 print "Please fill the pairs list field"
1255 print "Please fill the pairs list field"
1256 return 0
1256 return 0
1257
1257
1258 if not opObj.addParameter(name=name_parameter, value=value, format=format):
1258 if not opObj.addParameter(name=name_parameter, value=value, format=format):
1259 self.console.append("Invalid value '%s' for '%s'" %(value,name_parameter))
1259 self.console.append("Invalid value '%s' for '%s'" %(value,name_parameter))
1260 return 0
1260 return 0
1261
1261
1262 if self.specOpCebHeights.isChecked():
1262 if self.specOpCebHeights.isChecked():
1263 value = str(self.specOpHeights.text())
1263 value = str(self.specOpHeights.text())
1264
1264
1265 if value == "":
1265 if value == "":
1266 self.console.append("Empty value for '%s'" %(value, "Height range"))
1266 self.console.append("Empty value for '%s'" %(value, "Height range"))
1267 return 0
1267 return 0
1268
1268
1269 valueList = value.split(',')
1269 valueList = value.split(',')
1270 format = 'float'
1270 format = 'float'
1271 value0 = valueList[0]
1271 value0 = valueList[0]
1272 value1 = valueList[1]
1272 value1 = valueList[1]
1273
1273
1274 if not isFloat(value0) or not isFloat(value1):
1274 if not isFloat(value0) or not isFloat(value1):
1275 self.console.append("Invalid value '%s' for '%s'" %(value, "Height range"))
1275 self.console.append("Invalid value '%s' for '%s'" %(value, "Height range"))
1276 return 0
1276 return 0
1277
1277
1278 if self.specOpComHeights.currentIndex() == 0:
1278 if self.specOpComHeights.currentIndex() == 0:
1279 name_operation = 'selectHeights'
1279 name_operation = 'selectHeights'
1280 name_parameter1 = 'minHei'
1280 name_parameter1 = 'minHei'
1281 name_parameter2 = 'maxHei'
1281 name_parameter2 = 'maxHei'
1282 else:
1282 else:
1283 name_operation = 'selectHeightsByIndex'
1283 name_operation = 'selectHeightsByIndex'
1284 name_parameter1 = 'minIndex'
1284 name_parameter1 = 'minIndex'
1285 name_parameter2 = 'maxIndex'
1285 name_parameter2 = 'maxIndex'
1286
1286
1287 opObj = puObj.addOperation(name=name_operation)
1287 opObj = puObj.addOperation(name=name_operation)
1288 opObj.addParameter(name=name_parameter1, value=value0, format=format)
1288 opObj.addParameter(name=name_parameter1, value=value0, format=format)
1289 opObj.addParameter(name=name_parameter2, value=value1, format=format)
1289 opObj.addParameter(name=name_parameter2, value=value1, format=format)
1290
1290
1291 if self.specOpCebChannel.isChecked():
1291 if self.specOpCebChannel.isChecked():
1292
1292
1293 if self.specOpComChannel.currentIndex() == 0:
1293 if self.specOpComChannel.currentIndex() == 0:
1294 name_operation = "selectChannels"
1294 name_operation = "selectChannels"
1295 name_parameter = 'channelList'
1295 name_parameter = 'channelList'
1296 else:
1296 else:
1297 name_operation = "selectChannelsByIndex"
1297 name_operation = "selectChannelsByIndex"
1298 name_parameter = 'channelIndexList'
1298 name_parameter = 'channelIndexList'
1299
1299
1300 format = 'intlist'
1300 format = 'intlist'
1301 value = str(self.specOpChannel.text())
1301 value = str(self.specOpChannel.text())
1302
1302
1303 if value == "":
1303 if value == "":
1304 print "Please fill channel list"
1304 print "Please fill channel list"
1305 return 0
1305 return 0
1306
1306
1307 if not isList(value):
1307 if not isList(value):
1308 self.console.append("Invalid value '%s' for '%s'" %(value, name_parameter))
1308 self.console.append("Invalid value '%s' for '%s'" %(value, name_parameter))
1309 return 0
1309 return 0
1310
1310
1311 opObj = puObj.addOperation(name=name_operation)
1311 opObj = puObj.addOperation(name=name_operation)
1312 opObj.addParameter(name=name_parameter, value=value, format=format)
1312 opObj.addParameter(name=name_parameter, value=value, format=format)
1313
1313
1314 if self.specOpCebIncoherent.isChecked():
1314 if self.specOpCebIncoherent.isChecked():
1315
1315
1316 name_operation = 'IncohInt'
1316 name_operation = 'IncohInt'
1317 optype = 'other'
1317 optype = 'other'
1318
1318
1319 if self.specOpCobIncInt.currentIndex() == 0:
1319 if self.specOpCobIncInt.currentIndex() == 0:
1320 name_parameter = 'timeInterval'
1320 name_parameter = 'timeInterval'
1321 format = 'float'
1321 format = 'float'
1322 else:
1322 else:
1323 name_parameter = 'n'
1323 name_parameter = 'n'
1324 format = 'int'
1324 format = 'int'
1325
1325
1326 value = str(self.specOpIncoherent.text())
1326 value = str(self.specOpIncoherent.text())
1327
1327
1328 if value == "":
1328 if value == "":
1329 print "Please fill Incoherent integration value"
1329 print "Please fill Incoherent integration value"
1330 return 0
1330 return 0
1331
1331
1332 if not isFloat(value):
1332 if not isFloat(value):
1333 self.console.append("Invalid value '%s' for '%s'" %(value, name_parameter))
1333 self.console.append("Invalid value '%s' for '%s'" %(value, name_parameter))
1334 return 0
1334 return 0
1335
1335
1336 opObj = puObj.addOperation(name=name_operation, optype=optype)
1336 opObj = puObj.addOperation(name=name_operation, optype=optype)
1337 opObj.addParameter(name=name_parameter, value=value, format=format)
1337 opObj.addParameter(name=name_parameter, value=value, format=format)
1338
1338
1339 if self.specOpCebRemoveDC.isChecked():
1339 if self.specOpCebRemoveDC.isChecked():
1340 name_operation = 'removeDC'
1340 name_operation = 'removeDC'
1341 name_parameter = 'mode'
1341 name_parameter = 'mode'
1342 format = 'int'
1342 format = 'int'
1343 if self.specOpComRemoveDC.currentIndex() == 0:
1343 if self.specOpComRemoveDC.currentIndex() == 0:
1344 value = 1
1344 value = 1
1345 else:
1345 else:
1346 value = 2
1346 value = 2
1347 opObj = puObj.addOperation(name=name_operation)
1347 opObj = puObj.addOperation(name=name_operation)
1348 opObj.addParameter(name=name_parameter, value=value, format=format)
1348 opObj.addParameter(name=name_parameter, value=value, format=format)
1349
1349
1350 if self.specOpCebRemoveInt.isChecked():
1350 if self.specOpCebRemoveInt.isChecked():
1351 name_operation = 'removeInterference'
1351 name_operation = 'removeInterference'
1352 opObj = puObj.addOperation(name=name_operation)
1352 opObj = puObj.addOperation(name=name_operation)
1353
1353
1354
1354
1355 if self.specOpCebgetNoise.isChecked():
1355 if self.specOpCebgetNoise.isChecked():
1356 value = str(self.specOpgetNoise.text())
1356 value = str(self.specOpgetNoise.text())
1357 valueList = value.split(',')
1357 valueList = value.split(',')
1358 format = 'float'
1358 format = 'float'
1359 name_operation = "getNoise"
1359 name_operation = "getNoise"
1360 opObj = puObj.addOperation(name=name_operation)
1360 opObj = puObj.addOperation(name=name_operation)
1361
1361
1362 if not value == '':
1362 if not value == '':
1363 valueList = value.split(',')
1363 valueList = value.split(',')
1364 length = len(valueList)
1364 length = len(valueList)
1365 if length == 1:
1365 if length == 1:
1366 try:
1366 try:
1367 value1 = float(valueList[0])
1367 value1 = float(valueList[0])
1368 except:
1368 except:
1369 self.console.clear()
1369 self.console.clear()
1370 self.console.append("Please Write correct parameter Get Noise")
1370 self.console.append("Please Write correct parameter Get Noise")
1371 return 0
1371 return 0
1372 name1 = 'minHei'
1372 name1 = 'minHei'
1373 opObj.addParameter(name=name1, value=value1, format=format)
1373 opObj.addParameter(name=name1, value=value1, format=format)
1374 elif length == 2:
1374 elif length == 2:
1375 try:
1375 try:
1376 value1 = float(valueList[0])
1376 value1 = float(valueList[0])
1377 value2 = float(valueList[1])
1377 value2 = float(valueList[1])
1378 except:
1378 except:
1379 self.console.clear()
1379 self.console.clear()
1380 self.console.append("Please Write corrects parameter Get Noise")
1380 self.console.append("Please Write corrects parameter Get Noise")
1381 return 0
1381 return 0
1382 name1 = 'minHei'
1382 name1 = 'minHei'
1383 name2 = 'maxHei'
1383 name2 = 'maxHei'
1384 opObj.addParameter(name=name1, value=value1, format=format)
1384 opObj.addParameter(name=name1, value=value1, format=format)
1385 opObj.addParameter(name=name2, value=value2, format=format)
1385 opObj.addParameter(name=name2, value=value2, format=format)
1386
1386
1387 elif length == 3:
1387 elif length == 3:
1388 try:
1388 try:
1389 value1 = float(valueList[0])
1389 value1 = float(valueList[0])
1390 value2 = float(valueList[1])
1390 value2 = float(valueList[1])
1391 value3 = float(valueList[2])
1391 value3 = float(valueList[2])
1392 except:
1392 except:
1393 self.console.clear()
1393 self.console.clear()
1394 self.console.append("Please Write corrects parameter Get Noise")
1394 self.console.append("Please Write corrects parameter Get Noise")
1395 return 0
1395 return 0
1396 name1 = 'minHei'
1396 name1 = 'minHei'
1397 name2 = 'maxHei'
1397 name2 = 'maxHei'
1398 name3 = 'minVel'
1398 name3 = 'minVel'
1399 opObj.addParameter(name=name1, value=value1, format=format)
1399 opObj.addParameter(name=name1, value=value1, format=format)
1400 opObj.addParameter(name=name2, value=value2, format=format)
1400 opObj.addParameter(name=name2, value=value2, format=format)
1401 opObj.addParameter(name=name3, value=value3, format=format)
1401 opObj.addParameter(name=name3, value=value3, format=format)
1402
1402
1403 elif length == 4:
1403 elif length == 4:
1404 try:
1404 try:
1405 value1 = float(valueList[0])
1405 value1 = float(valueList[0])
1406 value2 = float(valueList[1])
1406 value2 = float(valueList[1])
1407 value3 = float(valueList[2])
1407 value3 = float(valueList[2])
1408 value4 = float(valueList[3])
1408 value4 = float(valueList[3])
1409 except:
1409 except:
1410 self.console.clear()
1410 self.console.clear()
1411 self.console.append("Please Write corrects parameter Get Noise")
1411 self.console.append("Please Write corrects parameter Get Noise")
1412 return 0
1412 return 0
1413 name1 = 'minHei'
1413 name1 = 'minHei'
1414 name2 = 'maxHei'
1414 name2 = 'maxHei'
1415 name3 = 'minVel'
1415 name3 = 'minVel'
1416 name4 = 'maxVel'
1416 name4 = 'maxVel'
1417 opObj.addParameter(name=name1, value=value1, format=format)
1417 opObj.addParameter(name=name1, value=value1, format=format)
1418 opObj.addParameter(name=name2, value=value2, format=format)
1418 opObj.addParameter(name=name2, value=value2, format=format)
1419 opObj.addParameter(name=name3, value=value3, format=format)
1419 opObj.addParameter(name=name3, value=value3, format=format)
1420 opObj.addParameter(name=name4, value=value4, format=format)
1420 opObj.addParameter(name=name4, value=value4, format=format)
1421
1421
1422 elif length > 4:
1422 elif length > 4:
1423 self.console.clear()
1423 self.console.clear()
1424 self.console.append("Get Noise Operation only accepts 4 parameters")
1424 self.console.append("Get Noise Operation only accepts 4 parameters")
1425 return 0
1425 return 0
1426
1426
1427 channelList = str(self.specGgraphChannelList.text()).replace(" ","")
1427 channelList = str(self.specGgraphChannelList.text()).replace(" ","")
1428 vel_range = str(self.specGgraphFreq.text()).replace(" ","")
1428 vel_range = str(self.specGgraphFreq.text()).replace(" ","")
1429 hei_range = str(self.specGgraphHeight.text()).replace(" ","")
1429 hei_range = str(self.specGgraphHeight.text()).replace(" ","")
1430 db_range = str(self.specGgraphDbsrange.text()).replace(" ","")
1430 db_range = str(self.specGgraphDbsrange.text()).replace(" ","")
1431
1431
1432 trange = str(self.specGgraphTminTmax.text()).replace(" ","")
1432 trange = str(self.specGgraphTminTmax.text()).replace(" ","")
1433 magrange = str(self.specGgraphmagnitud.text()).replace(" ","")
1433 magrange = str(self.specGgraphmagnitud.text()).replace(" ","")
1434 phaserange = str(self.specGgraphPhase.text()).replace(" ","")
1434 phaserange = str(self.specGgraphPhase.text()).replace(" ","")
1435 # timerange = str(self.specGgraphTimeRange.text()).replace(" ","")
1435 # timerange = str(self.specGgraphTimeRange.text()).replace(" ","")
1436
1436
1437 figpath = str(self.specGraphPath.text())
1437 figpath = str(self.specGraphPath.text())
1438 figfile = str(self.specGraphPrefix.text()).replace(" ","")
1438 figfile = str(self.specGraphPrefix.text()).replace(" ","")
1439 try:
1439 try:
1440 wrperiod = int(str(self.specGgraphftpratio.text()).replace(" ",""))
1440 wrperiod = int(str(self.specGgraphftpratio.text()).replace(" ",""))
1441 except:
1441 except:
1442 wrperiod = None
1442 wrperiod = None
1443
1443
1444 #-----Spectra Plot-----
1444 #-----Spectra Plot-----
1445 if self.specGraphCebSpectraplot.isChecked():
1445 if self.specGraphCebSpectraplot.isChecked():
1446
1446
1447 opObj = puObj.addOperation(name='SpectraPlot', optype='other')
1447 opObj = puObj.addOperation(name='SpectraPlot', optype='other')
1448 opObj.addParameter(name='id', value=opObj.id, format='int')
1448 opObj.addParameter(name='id', value=opObj.id, format='int')
1449
1449
1450 if not channelList == '':
1450 if not channelList == '':
1451
1451
1452 if not isList(channelList):
1452 if not isList(channelList):
1453 self.console.append("Invalid channelList")
1453 self.console.append("Invalid channelList")
1454 return 0
1454 return 0
1455
1455
1456 opObj.addParameter(name='channelList', value=channelList, format='intlist')
1456 opObj.addParameter(name='channelList', value=channelList, format='intlist')
1457
1457
1458 if not vel_range == '':
1458 if not vel_range == '':
1459 xvalueList = vel_range.split(',')
1459 xvalueList = vel_range.split(',')
1460 try:
1460 try:
1461 value1 = float(xvalueList[0])
1461 value1 = float(xvalueList[0])
1462 value2 = float(xvalueList[1])
1462 value2 = float(xvalueList[1])
1463 except:
1463 except:
1464 self.console.clear()
1464 self.console.clear()
1465 self.console.append("Invalid velocity/frequency range")
1465 self.console.append("Invalid velocity/frequency range")
1466 return 0
1466 return 0
1467
1467
1468 opObj.addParameter(name='xmin', value=value1, format='float')
1468 opObj.addParameter(name='xmin', value=value1, format='float')
1469 opObj.addParameter(name='xmax', value=value2, format='float')
1469 opObj.addParameter(name='xmax', value=value2, format='float')
1470
1470
1471 if not hei_range == '':
1471 if not hei_range == '':
1472 yvalueList = hei_range.split(",")
1472 yvalueList = hei_range.split(",")
1473 try:
1473 try:
1474 value1 = float(yvalueList[0])
1474 value1 = float(yvalueList[0])
1475 value2 = float(yvalueList[1])
1475 value2 = float(yvalueList[1])
1476 except:
1476 except:
1477 self.console.clear()
1477 self.console.clear()
1478 self.console.append("Invalid height range")
1478 self.console.append("Invalid height range")
1479 return 0
1479 return 0
1480
1480
1481 opObj.addParameter(name='ymin', value=value1, format='float')
1481 opObj.addParameter(name='ymin', value=value1, format='float')
1482 opObj.addParameter(name='ymax', value=value2, format='float')
1482 opObj.addParameter(name='ymax', value=value2, format='float')
1483
1483
1484 if not db_range == '':
1484 if not db_range == '':
1485 zvalueList = db_range.split(",")
1485 zvalueList = db_range.split(",")
1486 try:
1486 try:
1487 value1 = float(zvalueList[0])
1487 value1 = float(zvalueList[0])
1488 value2 = float(zvalueList[1])
1488 value2 = float(zvalueList[1])
1489 except:
1489 except:
1490 self.console.clear()
1490 self.console.clear()
1491 self.console.append("Invalid db range")
1491 self.console.append("Invalid db range")
1492 return 0
1492 return 0
1493
1493
1494 opObj.addParameter(name='zmin', value=value1, format='float')
1494 opObj.addParameter(name='zmin', value=value1, format='float')
1495 opObj.addParameter(name='zmax', value=value2, format='float')
1495 opObj.addParameter(name='zmax', value=value2, format='float')
1496
1496
1497 if self.specGraphSaveSpectra.isChecked():
1497 if self.specGraphSaveSpectra.isChecked():
1498 checkPath = True
1498 checkPath = True
1499 opObj.addParameter(name='save', value=1 , format='bool')
1499 opObj.addParameter(name='save', value=1 , format='bool')
1500 opObj.addParameter(name='figpath', value=figpath, format='str')
1500 opObj.addParameter(name='figpath', value=figpath, format='str')
1501 if figfile:
1501 if figfile:
1502 opObj.addParameter(name='figfile', value=figfile, format='str')
1502 opObj.addParameter(name='figfile', value=figfile, format='str')
1503 if wrperiod:
1503 if wrperiod:
1504 opObj.addParameter(name='wr_period', value=wrperiod,format='int')
1504 opObj.addParameter(name='wr_period', value=wrperiod,format='int')
1505
1505
1506 if self.specGraphftpSpectra.isChecked():
1506 if self.specGraphftpSpectra.isChecked():
1507 opObj.addParameter(name='ftp', value='1', format='int')
1507 opObj.addParameter(name='ftp', value='1', format='int')
1508 self.addFTPConf2Operation(puObj, opObj)
1508 self.addFTPConf2Operation(puObj, opObj)
1509 addFTP = True
1509 addFTP = True
1510
1510
1511 if self.specGraphCebCrossSpectraplot.isChecked():
1511 if self.specGraphCebCrossSpectraplot.isChecked():
1512
1512
1513 opObj = puObj.addOperation(name='CrossSpectraPlot', optype='other')
1513 opObj = puObj.addOperation(name='CrossSpectraPlot', optype='other')
1514 # opObj.addParameter(name='power_cmap', value='jet', format='str')
1514 # opObj.addParameter(name='power_cmap', value='jet', format='str')
1515 # opObj.addParameter(name='coherence_cmap', value='jet', format='str')
1515 # opObj.addParameter(name='coherence_cmap', value='jet', format='str')
1516 # opObj.addParameter(name='phase_cmap', value='RdBu_r', format='str')
1516 # opObj.addParameter(name='phase_cmap', value='RdBu_r', format='str')
1517 opObj.addParameter(name='id', value=opObj.id, format='int')
1517 opObj.addParameter(name='id', value=opObj.id, format='int')
1518
1518
1519 if not vel_range == '':
1519 if not vel_range == '':
1520 xvalueList = vel_range.split(',')
1520 xvalueList = vel_range.split(',')
1521 try:
1521 try:
1522 value1 = float(xvalueList[0])
1522 value1 = float(xvalueList[0])
1523 value2 = float(xvalueList[1])
1523 value2 = float(xvalueList[1])
1524 except:
1524 except:
1525 self.console.clear()
1525 self.console.clear()
1526 self.console.append("Invalid velocity/frequency range")
1526 self.console.append("Invalid velocity/frequency range")
1527 return 0
1527 return 0
1528
1528
1529 opObj.addParameter(name='xmin', value=value1, format='float')
1529 opObj.addParameter(name='xmin', value=value1, format='float')
1530 opObj.addParameter(name='xmax', value=value2, format='float')
1530 opObj.addParameter(name='xmax', value=value2, format='float')
1531
1531
1532 if not hei_range == '':
1532 if not hei_range == '':
1533 yvalueList = hei_range.split(",")
1533 yvalueList = hei_range.split(",")
1534 try:
1534 try:
1535 value1 = float(yvalueList[0])
1535 value1 = float(yvalueList[0])
1536 value2 = float(yvalueList[1])
1536 value2 = float(yvalueList[1])
1537 except:
1537 except:
1538 self.console.clear()
1538 self.console.clear()
1539 self.console.append("Invalid height range")
1539 self.console.append("Invalid height range")
1540 return 0
1540 return 0
1541
1541
1542 opObj.addParameter(name='ymin', value=value1, format='float')
1542 opObj.addParameter(name='ymin', value=value1, format='float')
1543 opObj.addParameter(name='ymax', value=value2, format='float')
1543 opObj.addParameter(name='ymax', value=value2, format='float')
1544
1544
1545 if not db_range == '':
1545 if not db_range == '':
1546 zvalueList = db_range.split(",")
1546 zvalueList = db_range.split(",")
1547 try:
1547 try:
1548 value1 = float(zvalueList[0])
1548 value1 = float(zvalueList[0])
1549 value2 = float(zvalueList[1])
1549 value2 = float(zvalueList[1])
1550 except:
1550 except:
1551 self.console.clear()
1551 self.console.clear()
1552 self.console.append("Invalid db range")
1552 self.console.append("Invalid db range")
1553 return 0
1553 return 0
1554
1554
1555 opObj.addParameter(name='zmin', value=value1, format='float')
1555 opObj.addParameter(name='zmin', value=value1, format='float')
1556 opObj.addParameter(name='zmax', value=value2, format='float')
1556 opObj.addParameter(name='zmax', value=value2, format='float')
1557
1557
1558 if not magrange == '':
1558 if not magrange == '':
1559 zvalueList = magrange.split(",")
1559 zvalueList = magrange.split(",")
1560 try:
1560 try:
1561 value1 = float(zvalueList[0])
1561 value1 = float(zvalueList[0])
1562 value2 = float(zvalueList[1])
1562 value2 = float(zvalueList[1])
1563 except:
1563 except:
1564 self.console.clear()
1564 self.console.clear()
1565 self.console.append("Invalid magnitude range")
1565 self.console.append("Invalid magnitude range")
1566 return 0
1566 return 0
1567
1567
1568 opObj.addParameter(name='coh_min', value=value1, format='float')
1568 opObj.addParameter(name='coh_min', value=value1, format='float')
1569 opObj.addParameter(name='coh_max', value=value2, format='float')
1569 opObj.addParameter(name='coh_max', value=value2, format='float')
1570
1570
1571 if not phaserange == '':
1571 if not phaserange == '':
1572 zvalueList = phaserange.split(",")
1572 zvalueList = phaserange.split(",")
1573 try:
1573 try:
1574 value1 = float(zvalueList[0])
1574 value1 = float(zvalueList[0])
1575 value2 = float(zvalueList[1])
1575 value2 = float(zvalueList[1])
1576 except:
1576 except:
1577 self.console.clear()
1577 self.console.clear()
1578 self.console.append("Invalid phase range")
1578 self.console.append("Invalid phase range")
1579 return 0
1579 return 0
1580
1580
1581 opObj.addParameter(name='phase_min', value=value1, format='float')
1581 opObj.addParameter(name='phase_min', value=value1, format='float')
1582 opObj.addParameter(name='phase_max', value=value2, format='float')
1582 opObj.addParameter(name='phase_max', value=value2, format='float')
1583
1583
1584 if self.specGraphSaveCross.isChecked():
1584 if self.specGraphSaveCross.isChecked():
1585 checkPath = True
1585 checkPath = True
1586 opObj.addParameter(name='save', value='1', format='bool')
1586 opObj.addParameter(name='save', value='1', format='bool')
1587 opObj.addParameter(name='figpath', value=figpath, format='str')
1587 opObj.addParameter(name='figpath', value=figpath, format='str')
1588 if figfile:
1588 if figfile:
1589 opObj.addParameter(name='figfile', value=figfile, format='str')
1589 opObj.addParameter(name='figfile', value=figfile, format='str')
1590 if wrperiod:
1590 if wrperiod:
1591 opObj.addParameter(name='wr_period', value=wrperiod,format='int')
1591 opObj.addParameter(name='wr_period', value=wrperiod,format='int')
1592
1592
1593 if self.specGraphftpCross.isChecked():
1593 if self.specGraphftpCross.isChecked():
1594 opObj.addParameter(name='ftp', value='1', format='int')
1594 opObj.addParameter(name='ftp', value='1', format='int')
1595 self.addFTPConf2Operation(puObj, opObj)
1595 self.addFTPConf2Operation(puObj, opObj)
1596 addFTP = True
1596 addFTP = True
1597
1597
1598 if self.specGraphCebRTIplot.isChecked():
1598 if self.specGraphCebRTIplot.isChecked():
1599
1599
1600 opObj = puObj.addOperation(name='RTIPlot', optype='other')
1600 opObj = puObj.addOperation(name='RTIPlot', optype='other')
1601 opObj.addParameter(name='id', value=opObj.id, format='int')
1601 opObj.addParameter(name='id', value=opObj.id, format='int')
1602
1602
1603 if not channelList == '':
1603 if not channelList == '':
1604 if not isList(channelList):
1604 if not isList(channelList):
1605 self.console.append("Invalid channelList")
1605 self.console.append("Invalid channelList")
1606 return 0
1606 return 0
1607 opObj.addParameter(name='channelList', value=channelList, format='intlist')
1607 opObj.addParameter(name='channelList', value=channelList, format='intlist')
1608
1608
1609 if not trange == '':
1609 if not trange == '':
1610 xvalueList = trange.split(',')
1610 xvalueList = trange.split(',')
1611 try:
1611 try:
1612 value1 = float(xvalueList[0])
1612 value1 = float(xvalueList[0])
1613 value2 = float(xvalueList[1])
1613 value2 = float(xvalueList[1])
1614 except:
1614 except:
1615 self.console.clear()
1615 self.console.clear()
1616 self.console.append("Invalid time range")
1616 self.console.append("Invalid time range")
1617 return 0
1617 return 0
1618
1618
1619 opObj.addParameter(name='xmin', value=value1, format='float')
1619 opObj.addParameter(name='xmin', value=value1, format='float')
1620 opObj.addParameter(name='xmax', value=value2, format='float')
1620 opObj.addParameter(name='xmax', value=value2, format='float')
1621
1621
1622 # if not timerange == '':
1622 # if not timerange == '':
1623 # try:
1623 # try:
1624 # timerange = float(timerange)
1624 # timerange = float(timerange)
1625 # except:
1625 # except:
1626 # self.console.clear()
1626 # self.console.clear()
1627 # self.console.append("Invalid time range")
1627 # self.console.append("Invalid time range")
1628 # return 0
1628 # return 0
1629 #
1629 #
1630 # opObj.addParameter(name='timerange', value=timerange, format='float')
1630 # opObj.addParameter(name='timerange', value=timerange, format='float')
1631
1631
1632 if not hei_range == '':
1632 if not hei_range == '':
1633 yvalueList = hei_range.split(",")
1633 yvalueList = hei_range.split(",")
1634 try:
1634 try:
1635 value1 = float(yvalueList[0])
1635 value1 = float(yvalueList[0])
1636 value2 = float(yvalueList[1])
1636 value2 = float(yvalueList[1])
1637 except:
1637 except:
1638 self.console.clear()
1638 self.console.clear()
1639 self.console.append("Invalid height range")
1639 self.console.append("Invalid height range")
1640 return 0
1640 return 0
1641
1641
1642 opObj.addParameter(name='ymin', value=value1, format='float')
1642 opObj.addParameter(name='ymin', value=value1, format='float')
1643 opObj.addParameter(name='ymax', value=value2, format='float')
1643 opObj.addParameter(name='ymax', value=value2, format='float')
1644
1644
1645 if not db_range == '':
1645 if not db_range == '':
1646 zvalueList = db_range.split(",")
1646 zvalueList = db_range.split(",")
1647 try:
1647 try:
1648 value1 = float(zvalueList[0])
1648 value1 = float(zvalueList[0])
1649 value2 = float(zvalueList[1])
1649 value2 = float(zvalueList[1])
1650 except:
1650 except:
1651 self.console.clear()
1651 self.console.clear()
1652 self.console.append("Invalid db range")
1652 self.console.append("Invalid db range")
1653 return 0
1653 return 0
1654
1654
1655 opObj.addParameter(name='zmin', value=value1, format='float')
1655 opObj.addParameter(name='zmin', value=value1, format='float')
1656 opObj.addParameter(name='zmax', value=value2, format='float')
1656 opObj.addParameter(name='zmax', value=value2, format='float')
1657
1657
1658 if self.specGraphSaveRTIplot.isChecked():
1658 if self.specGraphSaveRTIplot.isChecked():
1659 checkPath = True
1659 checkPath = True
1660 opObj.addParameter(name='save', value='1', format='bool')
1660 opObj.addParameter(name='save', value='1', format='bool')
1661 opObj.addParameter(name='figpath', value=figpath, format='str')
1661 opObj.addParameter(name='figpath', value=figpath, format='str')
1662 if figfile:
1662 if figfile:
1663 opObj.addParameter(name='figfile', value=value, format='str')
1663 opObj.addParameter(name='figfile', value=value, format='str')
1664 if wrperiod:
1664 if wrperiod:
1665 opObj.addParameter(name='wr_period', value=wrperiod,format='int')
1665 opObj.addParameter(name='wr_period', value=wrperiod,format='int')
1666
1666
1667 if self.specGraphftpRTIplot.isChecked():
1667 if self.specGraphftpRTIplot.isChecked():
1668 opObj.addParameter(name='ftp', value='1', format='int')
1668 opObj.addParameter(name='ftp', value='1', format='int')
1669 self.addFTPConf2Operation(puObj, opObj)
1669 self.addFTPConf2Operation(puObj, opObj)
1670 addFTP = True
1670 addFTP = True
1671
1671
1672 if self.specGraphCebCoherencmap.isChecked():
1672 if self.specGraphCebCoherencmap.isChecked():
1673
1673
1674 opObj = puObj.addOperation(name='CoherenceMap', optype='other')
1674 opObj = puObj.addOperation(name='CoherenceMap', optype='other')
1675 # opObj.addParameter(name=name_parameter, value=value, format=format)
1675 # opObj.addParameter(name=name_parameter, value=value, format=format)
1676 # opObj.addParameter(name='coherence_cmap', value='jet', format='str')
1676 # opObj.addParameter(name='coherence_cmap', value='jet', format='str')
1677 # opObj.addParameter(name='phase_cmap', value='RdBu_r', format='str')
1677 # opObj.addParameter(name='phase_cmap', value='RdBu_r', format='str')
1678 opObj.addParameter(name='id', value=opObj.id, format='int')
1678 opObj.addParameter(name='id', value=opObj.id, format='int')
1679
1679
1680 # if not timerange == '':
1680 # if not timerange == '':
1681 # try:
1681 # try:
1682 # timerange = int(timerange)
1682 # timerange = int(timerange)
1683 # except:
1683 # except:
1684 # self.console.clear()
1684 # self.console.clear()
1685 # self.console.append("Invalid time range")
1685 # self.console.append("Invalid time range")
1686 # return 0
1686 # return 0
1687 #
1687 #
1688 # opObj.addParameter(name='timerange', value=timerange, format='int')
1688 # opObj.addParameter(name='timerange', value=timerange, format='int')
1689
1689
1690 if not trange == '':
1690 if not trange == '':
1691 xvalueList = trange.split(',')
1691 xvalueList = trange.split(',')
1692 try:
1692 try:
1693 value1 = float(xvalueList[0])
1693 value1 = float(xvalueList[0])
1694 value2 = float(xvalueList[1])
1694 value2 = float(xvalueList[1])
1695 except:
1695 except:
1696 self.console.clear()
1696 self.console.clear()
1697 self.console.append("Invalid time range")
1697 self.console.append("Invalid time range")
1698 return 0
1698 return 0
1699
1699
1700 opObj.addParameter(name='xmin', value=value1, format='float')
1700 opObj.addParameter(name='xmin', value=value1, format='float')
1701 opObj.addParameter(name='xmax', value=value2, format='float')
1701 opObj.addParameter(name='xmax', value=value2, format='float')
1702
1702
1703 if not hei_range == '':
1703 if not hei_range == '':
1704 yvalueList = hei_range.split(",")
1704 yvalueList = hei_range.split(",")
1705 try:
1705 try:
1706 value1 = float(yvalueList[0])
1706 value1 = float(yvalueList[0])
1707 value2 = float(yvalueList[1])
1707 value2 = float(yvalueList[1])
1708 except:
1708 except:
1709 self.console.clear()
1709 self.console.clear()
1710 self.console.append("Invalid height range")
1710 self.console.append("Invalid height range")
1711 return 0
1711 return 0
1712
1712
1713 opObj.addParameter(name='ymin', value=value1, format='float')
1713 opObj.addParameter(name='ymin', value=value1, format='float')
1714 opObj.addParameter(name='ymax', value=value2, format='float')
1714 opObj.addParameter(name='ymax', value=value2, format='float')
1715
1715
1716 if not magrange == '':
1716 if not magrange == '':
1717 zvalueList = magrange.split(",")
1717 zvalueList = magrange.split(",")
1718 try:
1718 try:
1719 value1 = float(zvalueList[0])
1719 value1 = float(zvalueList[0])
1720 value2 = float(zvalueList[1])
1720 value2 = float(zvalueList[1])
1721 except:
1721 except:
1722 self.console.clear()
1722 self.console.clear()
1723 self.console.append("Invalid magnitude range")
1723 self.console.append("Invalid magnitude range")
1724 return 0
1724 return 0
1725
1725
1726 opObj.addParameter(name='zmin', value=value1, format='float')
1726 opObj.addParameter(name='zmin', value=value1, format='float')
1727 opObj.addParameter(name='zmax', value=value2, format='float')
1727 opObj.addParameter(name='zmax', value=value2, format='float')
1728
1728
1729 if not phaserange == '':
1729 if not phaserange == '':
1730 zvalueList = phaserange.split(",")
1730 zvalueList = phaserange.split(",")
1731 try:
1731 try:
1732 value1 = float(zvalueList[0])
1732 value1 = float(zvalueList[0])
1733 value2 = float(zvalueList[1])
1733 value2 = float(zvalueList[1])
1734 except:
1734 except:
1735 self.console.clear()
1735 self.console.clear()
1736 self.console.append("Invalid phase range")
1736 self.console.append("Invalid phase range")
1737 return 0
1737 return 0
1738
1738
1739 opObj.addParameter(name='phase_min', value=value1, format='float')
1739 opObj.addParameter(name='phase_min', value=value1, format='float')
1740 opObj.addParameter(name='phase_max', value=value2, format='float')
1740 opObj.addParameter(name='phase_max', value=value2, format='float')
1741
1741
1742 if self.specGraphSaveCoherencemap.isChecked():
1742 if self.specGraphSaveCoherencemap.isChecked():
1743 checkPath = True
1743 checkPath = True
1744 opObj.addParameter(name='save', value='1', format='bool')
1744 opObj.addParameter(name='save', value='1', format='bool')
1745 opObj.addParameter(name='figpath', value=figpath, format='str')
1745 opObj.addParameter(name='figpath', value=figpath, format='str')
1746 if figfile:
1746 if figfile:
1747 opObj.addParameter(name='figfile', value=value, format='str')
1747 opObj.addParameter(name='figfile', value=value, format='str')
1748 if wrperiod:
1748 if wrperiod:
1749 opObj.addParameter(name='wr_period', value=wrperiod,format='int')
1749 opObj.addParameter(name='wr_period', value=wrperiod,format='int')
1750
1750
1751 if self.specGraphftpCoherencemap.isChecked():
1751 if self.specGraphftpCoherencemap.isChecked():
1752 opObj.addParameter(name='ftp', value='1', format='int')
1752 opObj.addParameter(name='ftp', value='1', format='int')
1753 self.addFTPConf2Operation(puObj, opObj)
1753 self.addFTPConf2Operation(puObj, opObj)
1754 addFTP = True
1754 addFTP = True
1755
1755
1756 if self.specGraphPowerprofile.isChecked():
1756 if self.specGraphPowerprofile.isChecked():
1757
1757
1758 opObj = puObj.addOperation(name='PowerProfilePlot', optype='other')
1758 opObj = puObj.addOperation(name='PowerProfilePlot', optype='other')
1759 opObj.addParameter(name='id', value=opObj.id, format='int')
1759 opObj.addParameter(name='id', value=opObj.id, format='int')
1760
1760
1761 if not channelList == '':
1761 if not channelList == '':
1762 if not isList(channelList):
1762 if not isList(channelList):
1763 self.console.append("Invalid channelList")
1763 self.console.append("Invalid channelList")
1764 return 0
1764 return 0
1765
1765
1766 opObj.addParameter(name='channelList', value=channelList, format='intlist')
1766 opObj.addParameter(name='channelList', value=channelList, format='intlist')
1767
1767
1768 if not db_range == '':
1768 if not db_range == '':
1769 xvalueList = db_range.split(',')
1769 xvalueList = db_range.split(',')
1770 try:
1770 try:
1771 value1 = float(xvalueList[0])
1771 value1 = float(xvalueList[0])
1772 value2 = float(xvalueList[1])
1772 value2 = float(xvalueList[1])
1773 except:
1773 except:
1774 self.console.clear()
1774 self.console.clear()
1775 self.console.append("Invalid db range")
1775 self.console.append("Invalid db range")
1776 return 0
1776 return 0
1777
1777
1778 opObj.addParameter(name='xmin', value=value1, format='float')
1778 opObj.addParameter(name='xmin', value=value1, format='float')
1779 opObj.addParameter(name='xmax', value=value2, format='float')
1779 opObj.addParameter(name='xmax', value=value2, format='float')
1780
1780
1781 if not hei_range == '':
1781 if not hei_range == '':
1782 yvalueList = hei_range.split(",")
1782 yvalueList = hei_range.split(",")
1783 try:
1783 try:
1784 value1 = float(yvalueList[0])
1784 value1 = float(yvalueList[0])
1785 value2 = float(yvalueList[1])
1785 value2 = float(yvalueList[1])
1786 except:
1786 except:
1787 self.console.clear()
1787 self.console.clear()
1788 self.console.append("Invalid height range")
1788 self.console.append("Invalid height range")
1789 return 0
1789 return 0
1790
1790
1791 opObj.addParameter(name='ymin', value=value1, format='float')
1791 opObj.addParameter(name='ymin', value=value1, format='float')
1792 opObj.addParameter(name='ymax', value=value2, format='float')
1792 opObj.addParameter(name='ymax', value=value2, format='float')
1793
1793
1794 if self.specGraphSavePowerprofile.isChecked():
1794 if self.specGraphSavePowerprofile.isChecked():
1795 checkPath = True
1795 checkPath = True
1796 opObj.addParameter(name='save', value='1', format='bool')
1796 opObj.addParameter(name='save', value='1', format='bool')
1797 opObj.addParameter(name='figpath', value=figpath, format='str')
1797 opObj.addParameter(name='figpath', value=figpath, format='str')
1798 if figfile:
1798 if figfile:
1799 opObj.addParameter(name='figfile', value=value, format='str')
1799 opObj.addParameter(name='figfile', value=value, format='str')
1800 if wrperiod:
1800 if wrperiod:
1801 opObj.addParameter(name='wr_period', value=wrperiod,format='int')
1801 opObj.addParameter(name='wr_period', value=wrperiod,format='int')
1802
1802
1803 if self.specGraphftpPowerprofile.isChecked():
1803 if self.specGraphftpPowerprofile.isChecked():
1804 opObj.addParameter(name='ftp', value='1', format='int')
1804 opObj.addParameter(name='ftp', value='1', format='int')
1805 self.addFTPConf2Operation(puObj, opObj)
1805 self.addFTPConf2Operation(puObj, opObj)
1806 addFTP = True
1806 addFTP = True
1807 # rti noise
1807 # rti noise
1808
1808
1809 if self.specGraphCebRTInoise.isChecked():
1809 if self.specGraphCebRTInoise.isChecked():
1810
1810
1811 opObj = puObj.addOperation(name='Noise', optype='other')
1811 opObj = puObj.addOperation(name='Noise', optype='other')
1812 opObj.addParameter(name='id', value=opObj.id, format='int')
1812 opObj.addParameter(name='id', value=opObj.id, format='int')
1813
1813
1814 if not channelList == '':
1814 if not channelList == '':
1815 if not isList(channelList):
1815 if not isList(channelList):
1816 self.console.append("Invalid channelList")
1816 self.console.append("Invalid channelList")
1817 return 0
1817 return 0
1818 opObj.addParameter(name='channelList', value=channelList, format='intlist')
1818 opObj.addParameter(name='channelList', value=channelList, format='intlist')
1819
1819
1820 # if not timerange == '':
1820 # if not timerange == '':
1821 # try:
1821 # try:
1822 # timerange = float(timerange)
1822 # timerange = float(timerange)
1823 # except:
1823 # except:
1824 # self.console.clear()
1824 # self.console.clear()
1825 # self.console.append("Invalid time range")
1825 # self.console.append("Invalid time range")
1826 # return 0
1826 # return 0
1827 #
1827 #
1828 # opObj.addParameter(name='timerange', value=timerange, format='float')
1828 # opObj.addParameter(name='timerange', value=timerange, format='float')
1829
1829
1830 if not trange == '':
1830 if not trange == '':
1831 xvalueList = trange.split(',')
1831 xvalueList = trange.split(',')
1832 try:
1832 try:
1833 value1 = float(xvalueList[0])
1833 value1 = float(xvalueList[0])
1834 value2 = float(xvalueList[1])
1834 value2 = float(xvalueList[1])
1835 except:
1835 except:
1836 self.console.clear()
1836 self.console.clear()
1837 self.console.append("Invalid time range")
1837 self.console.append("Invalid time range")
1838 return 0
1838 return 0
1839
1839
1840 opObj.addParameter(name='xmin', value=value1, format='float')
1840 opObj.addParameter(name='xmin', value=value1, format='float')
1841 opObj.addParameter(name='xmax', value=value2, format='float')
1841 opObj.addParameter(name='xmax', value=value2, format='float')
1842
1842
1843 if not db_range == '':
1843 if not db_range == '':
1844 yvalueList = db_range.split(",")
1844 yvalueList = db_range.split(",")
1845 try:
1845 try:
1846 value1 = float(yvalueList[0])
1846 value1 = float(yvalueList[0])
1847 value2 = float(yvalueList[1])
1847 value2 = float(yvalueList[1])
1848 except:
1848 except:
1849 self.console.clear()
1849 self.console.clear()
1850 self.console.append("Invalid db range")
1850 self.console.append("Invalid db range")
1851 return 0
1851 return 0
1852
1852
1853 opObj.addParameter(name='ymin', value=value1, format='float')
1853 opObj.addParameter(name='ymin', value=value1, format='float')
1854 opObj.addParameter(name='ymax', value=value2, format='float')
1854 opObj.addParameter(name='ymax', value=value2, format='float')
1855
1855
1856 if self.specGraphSaveRTInoise.isChecked():
1856 if self.specGraphSaveRTInoise.isChecked():
1857 checkPath = True
1857 checkPath = True
1858 opObj.addParameter(name='save', value='1', format='bool')
1858 opObj.addParameter(name='save', value='1', format='bool')
1859 opObj.addParameter(name='figpath', value=figpath, format='str')
1859 opObj.addParameter(name='figpath', value=figpath, format='str')
1860 if figfile:
1860 if figfile:
1861 opObj.addParameter(name='figfile', value=value, format='str')
1861 opObj.addParameter(name='figfile', value=value, format='str')
1862 if wrperiod:
1862 if wrperiod:
1863 opObj.addParameter(name='wr_period', value=wrperiod,format='int')
1863 opObj.addParameter(name='wr_period', value=wrperiod,format='int')
1864
1864
1865 # test_ftp
1865 # test_ftp
1866 if self.specGraphftpRTInoise.isChecked():
1866 if self.specGraphftpRTInoise.isChecked():
1867 opObj.addParameter(name='ftp', value='1', format='int')
1867 opObj.addParameter(name='ftp', value='1', format='int')
1868 self.addFTPConf2Operation(puObj, opObj)
1868 self.addFTPConf2Operation(puObj, opObj)
1869 addFTP = True
1869 addFTP = True
1870
1870
1871 if checkPath:
1871 if checkPath:
1872 if not figpath:
1872 if not figpath:
1873 self.console.clear()
1873 self.console.clear()
1874 self.console.append("Graphic path should be defined")
1874 self.console.append("Graphic path should be defined")
1875 return 0
1875 return 0
1876
1876
1877 if addFTP and not figpath:
1877 if addFTP and not figpath:
1878 self.console.clear()
1878 self.console.clear()
1879 self.console.append("You have to save the plots before sending them to FTP Server")
1879 self.console.append("You have to save the plots before sending them to FTP Server")
1880 return 0
1880 return 0
1881
1881
1882 # if something happend
1882 # if something happend
1883 parms_ok, output_path, blocksperfile, profilesperblock = self.checkInputsPUSave(datatype='Spectra')
1883 parms_ok, output_path, blocksperfile, profilesperblock = self.checkInputsPUSave(datatype='Spectra')
1884 if parms_ok:
1884 if parms_ok:
1885 opObj = puObj.addOperation(name='SpectraWriter', optype='other')
1885 opObj = puObj.addOperation(name='SpectraWriter', optype='other')
1886 opObj.addParameter(name='path', value=output_path)
1886 opObj.addParameter(name='path', value=output_path)
1887 opObj.addParameter(name='blocksPerFile', value=blocksperfile, format='int')
1887 opObj.addParameter(name='blocksPerFile', value=blocksperfile, format='int')
1888
1888
1889 self.console.clear()
1889 self.console.clear()
1890 try:
1890 try:
1891 self.refreshPUProperties(puObj)
1891 self.refreshPUProperties(puObj)
1892 except:
1892 except:
1893 self.console.append("An error reading input parameters was found ... Check them!")
1893 self.console.append("An error reading input parameters was found ... Check them!")
1894 return 0
1894 return 0
1895
1895
1896 self.console.append("Save your project and press Play button to start signal processing")
1896 self.console.append("Save your project and press Play button to start signal processing")
1897
1897
1898 self.actionSaveToolbar.setEnabled(True)
1898 self.actionSaveToolbar.setEnabled(True)
1899 self.actionStarToolbar.setEnabled(True)
1899 self.actionStarToolbar.setEnabled(True)
1900
1900
1901 self.actionSave.setEnabled(True)
1901 self.actionSave.setEnabled(True)
1902 self.actionStart.setEnabled(True)
1902 self.actionStart.setEnabled(True)
1903
1903
1904 return 1
1904 return 1
1905
1905
1906 """
1906 """
1907 Spectra Graph
1907 Spectra Graph
1908 """
1908 """
1909 @pyqtSignature("int")
1909 @pyqtSignature("int")
1910 def on_specGraphCebSpectraplot_stateChanged(self, p0):
1910 def on_specGraphCebSpectraplot_stateChanged(self, p0):
1911
1911
1912 self.__checkSpecGraphFilters()
1912 self.__checkSpecGraphFilters()
1913
1913
1914
1914
1915 @pyqtSignature("int")
1915 @pyqtSignature("int")
1916 def on_specGraphCebCrossSpectraplot_stateChanged(self, p0):
1916 def on_specGraphCebCrossSpectraplot_stateChanged(self, p0):
1917
1917
1918 self.__checkSpecGraphFilters()
1918 self.__checkSpecGraphFilters()
1919
1919
1920 @pyqtSignature("int")
1920 @pyqtSignature("int")
1921 def on_specGraphCebRTIplot_stateChanged(self, p0):
1921 def on_specGraphCebRTIplot_stateChanged(self, p0):
1922
1922
1923 self.__checkSpecGraphFilters()
1923 self.__checkSpecGraphFilters()
1924
1924
1925
1925
1926 @pyqtSignature("int")
1926 @pyqtSignature("int")
1927 def on_specGraphCebRTInoise_stateChanged(self, p0):
1927 def on_specGraphCebRTInoise_stateChanged(self, p0):
1928
1928
1929 self.__checkSpecGraphFilters()
1929 self.__checkSpecGraphFilters()
1930
1930
1931
1931
1932 @pyqtSignature("int")
1932 @pyqtSignature("int")
1933 def on_specGraphCebCoherencmap_stateChanged(self, p0):
1933 def on_specGraphCebCoherencmap_stateChanged(self, p0):
1934
1934
1935 self.__checkSpecGraphFilters()
1935 self.__checkSpecGraphFilters()
1936
1936
1937 @pyqtSignature("int")
1937 @pyqtSignature("int")
1938 def on_specGraphPowerprofile_stateChanged(self, p0):
1938 def on_specGraphPowerprofile_stateChanged(self, p0):
1939
1939
1940 self.__checkSpecGraphFilters()
1940 self.__checkSpecGraphFilters()
1941
1941
1942 @pyqtSignature("int")
1942 @pyqtSignature("int")
1943 def on_specGraphPhase_stateChanged(self, p0):
1943 def on_specGraphPhase_stateChanged(self, p0):
1944
1944
1945 self.__checkSpecGraphFilters()
1945 self.__checkSpecGraphFilters()
1946
1946
1947 @pyqtSignature("int")
1947 @pyqtSignature("int")
1948 def on_specGraphSaveSpectra_stateChanged(self, p0):
1948 def on_specGraphSaveSpectra_stateChanged(self, p0):
1949 """
1949 """
1950 """
1950 """
1951 self.__checkSpecGraphSaving()
1951 self.__checkSpecGraphSaving()
1952
1952
1953 @pyqtSignature("int")
1953 @pyqtSignature("int")
1954 def on_specGraphSaveCross_stateChanged(self, p0):
1954 def on_specGraphSaveCross_stateChanged(self, p0):
1955
1955
1956 self.__checkSpecGraphSaving()
1956 self.__checkSpecGraphSaving()
1957
1957
1958 @pyqtSignature("int")
1958 @pyqtSignature("int")
1959 def on_specGraphSaveRTIplot_stateChanged(self, p0):
1959 def on_specGraphSaveRTIplot_stateChanged(self, p0):
1960
1960
1961 self.__checkSpecGraphSaving()
1961 self.__checkSpecGraphSaving()
1962
1962
1963 @pyqtSignature("int")
1963 @pyqtSignature("int")
1964 def on_specGraphSaveRTInoise_stateChanged(self, p0):
1964 def on_specGraphSaveRTInoise_stateChanged(self, p0):
1965
1965
1966 self.__checkSpecGraphSaving()
1966 self.__checkSpecGraphSaving()
1967
1967
1968 @pyqtSignature("int")
1968 @pyqtSignature("int")
1969 def on_specGraphSaveCoherencemap_stateChanged(self, p0):
1969 def on_specGraphSaveCoherencemap_stateChanged(self, p0):
1970
1970
1971 self.__checkSpecGraphSaving()
1971 self.__checkSpecGraphSaving()
1972
1972
1973 @pyqtSignature("int")
1973 @pyqtSignature("int")
1974 def on_specGraphSavePowerprofile_stateChanged(self, p0):
1974 def on_specGraphSavePowerprofile_stateChanged(self, p0):
1975
1975
1976 self.__checkSpecGraphSaving()
1976 self.__checkSpecGraphSaving()
1977
1977
1978 @pyqtSignature("int")
1978 @pyqtSignature("int")
1979 def on_specGraphftpSpectra_stateChanged(self, p0):
1979 def on_specGraphftpSpectra_stateChanged(self, p0):
1980 """
1980 """
1981 """
1981 """
1982 self.__checkSpecGraphFTP()
1982 self.__checkSpecGraphFTP()
1983
1983
1984
1984
1985 @pyqtSignature("int")
1985 @pyqtSignature("int")
1986 def on_specGraphftpCross_stateChanged(self, p0):
1986 def on_specGraphftpCross_stateChanged(self, p0):
1987
1987
1988 self.__checkSpecGraphFTP()
1988 self.__checkSpecGraphFTP()
1989
1989
1990 @pyqtSignature("int")
1990 @pyqtSignature("int")
1991 def on_specGraphftpRTIplot_stateChanged(self, p0):
1991 def on_specGraphftpRTIplot_stateChanged(self, p0):
1992
1992
1993 self.__checkSpecGraphFTP()
1993 self.__checkSpecGraphFTP()
1994
1994
1995 @pyqtSignature("int")
1995 @pyqtSignature("int")
1996 def on_specGraphftpRTInoise_stateChanged(self, p0):
1996 def on_specGraphftpRTInoise_stateChanged(self, p0):
1997
1997
1998 self.__checkSpecGraphFTP()
1998 self.__checkSpecGraphFTP()
1999
1999
2000 @pyqtSignature("int")
2000 @pyqtSignature("int")
2001 def on_specGraphftpCoherencemap_stateChanged(self, p0):
2001 def on_specGraphftpCoherencemap_stateChanged(self, p0):
2002
2002
2003 self.__checkSpecGraphFTP()
2003 self.__checkSpecGraphFTP()
2004
2004
2005 @pyqtSignature("int")
2005 @pyqtSignature("int")
2006 def on_specGraphftpPowerprofile_stateChanged(self, p0):
2006 def on_specGraphftpPowerprofile_stateChanged(self, p0):
2007
2007
2008 self.__checkSpecGraphFTP()
2008 self.__checkSpecGraphFTP()
2009
2009
2010 @pyqtSignature("")
2010 @pyqtSignature("")
2011 def on_specGraphToolPath_clicked(self):
2011 def on_specGraphToolPath_clicked(self):
2012 """
2012 """
2013 """
2013 """
2014 save_path = str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly))
2014 save_path = str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly))
2015 self.specGraphPath.setText(save_path)
2015 self.specGraphPath.setText(save_path)
2016 if not os.path.exists(save_path):
2016 if not os.path.exists(save_path):
2017 self.console.clear()
2017 self.console.clear()
2018 self.console.append("Write a valid path")
2018 self.console.append("Write a valid path")
2019 return
2019 return
2020
2020
2021 @pyqtSignature("")
2021 @pyqtSignature("")
2022 def on_specGraphClear_clicked(self):
2022 def on_specGraphClear_clicked(self):
2023 return
2023 return
2024
2024
2025 @pyqtSignature("")
2025 @pyqtSignature("")
2026 def on_specHeisGraphToolPath_clicked(self):
2026 def on_specHeisGraphToolPath_clicked(self):
2027 """
2027 """
2028 """
2028 """
2029 save_path = str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly))
2029 save_path = str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly))
2030 self.specHeisGraphPath.setText(save_path)
2030 self.specHeisGraphPath.setText(save_path)
2031 if not os.path.exists(save_path):
2031 if not os.path.exists(save_path):
2032 self.console.clear()
2032 self.console.clear()
2033 self.console.append("Write a valid path")
2033 self.console.append("Write a valid path")
2034 return
2034 return
2035
2035
2036 @pyqtSignature("int")
2036 @pyqtSignature("int")
2037 def on_specHeisOpCebIncoherent_stateChanged(self, p0):
2037 def on_specHeisOpCebIncoherent_stateChanged(self, p0):
2038 """
2038 """
2039 Habilita la opcion de aοΏ½adir el parοΏ½metro integraciones incoherentes a la Unidad de Procesamiento .
2039 Habilita la opcion de aοΏ½adir el parοΏ½metro integraciones incoherentes a la Unidad de Procesamiento .
2040 """
2040 """
2041 if p0 == 2:
2041 if p0 == 2:
2042 self.specHeisOpIncoherent.setEnabled(True)
2042 self.specHeisOpIncoherent.setEnabled(True)
2043 self.specHeisOpCobIncInt.setEnabled(True)
2043 self.specHeisOpCobIncInt.setEnabled(True)
2044 if p0 == 0:
2044 if p0 == 0:
2045 self.specHeisOpIncoherent.setEnabled(False)
2045 self.specHeisOpIncoherent.setEnabled(False)
2046 self.specHeisOpCobIncInt.setEnabled(False)
2046 self.specHeisOpCobIncInt.setEnabled(False)
2047
2047
2048 @pyqtSignature("")
2048 @pyqtSignature("")
2049 def on_specHeisOpOk_clicked(self):
2049 def on_specHeisOpOk_clicked(self):
2050 """
2050 """
2051 AΓ‘ADE OPERACION SPECTRAHEIS
2051 AΓ‘ADE OPERACION SPECTRAHEIS
2052 """
2052 """
2053 addFTP = False
2053 addFTP = False
2054 checkPath = False
2054 checkPath = False
2055
2055
2056 self.actionSaveToolbar.setEnabled(False)
2056 self.actionSaveToolbar.setEnabled(False)
2057 self.actionStarToolbar.setEnabled(False)
2057 self.actionStarToolbar.setEnabled(False)
2058
2058
2059 self.actionSave.setEnabled(False)
2059 self.actionSave.setEnabled(False)
2060 self.actionStart.setEnabled(False)
2060 self.actionStart.setEnabled(False)
2061
2061
2062 self.console.clear()
2062 self.console.clear()
2063 self.console.append("Checking input parameters ...")
2063 self.console.append("Checking input parameters ...")
2064
2064
2065 puObj = self.getSelectedItemObj()
2065 puObj = self.getSelectedItemObj()
2066 puObj.removeOperations()
2066 puObj.removeOperations()
2067
2067
2068 if self.specHeisOpCebIncoherent.isChecked():
2068 if self.specHeisOpCebIncoherent.isChecked():
2069 value = str(self.specHeisOpIncoherent.text())
2069 value = str(self.specHeisOpIncoherent.text())
2070 name_operation = 'IncohInt4SpectraHeis'
2070 name_operation = 'IncohInt4SpectraHeis'
2071 optype = 'other'
2071 optype = 'other'
2072
2072
2073 name_parameter = 'timeInterval'
2073 name_parameter = 'timeInterval'
2074 format = 'float'
2074 format = 'float'
2075
2075
2076 if self.specOpCobIncInt.currentIndex() == 0:
2076 if self.specOpCobIncInt.currentIndex() == 0:
2077 name_parameter = 'timeInterval'
2077 name_parameter = 'timeInterval'
2078 format = 'float'
2078 format = 'float'
2079
2079
2080 if not isFloat(value):
2080 if not isFloat(value):
2081 self.console.append("Invalid value '%s' for '%s'" %(value, name_parameter))
2081 self.console.append("Invalid value '%s' for '%s'" %(value, name_parameter))
2082 return 0
2082 return 0
2083
2083
2084 opObj = puObj.addOperation(name=name_operation, optype=optype)
2084 opObj = puObj.addOperation(name=name_operation, optype=optype)
2085
2085
2086 if not opObj.addParameter(name=name_parameter, value=value, format=format):
2086 if not opObj.addParameter(name=name_parameter, value=value, format=format):
2087 self.console.append("Invalid value '%s' for '%s'" %(value, name_parameter))
2087 self.console.append("Invalid value '%s' for '%s'" %(value, name_parameter))
2088 return 0
2088 return 0
2089
2089
2090 channelList = str(self.specHeisGgraphChannelList.text())
2090 channelList = str(self.specHeisGgraphChannelList.text())
2091 freq_range = str(self.specHeisGgraphXminXmax.text())
2091 freq_range = str(self.specHeisGgraphXminXmax.text())
2092 power_range = str(self.specHeisGgraphYminYmax.text())
2092 power_range = str(self.specHeisGgraphYminYmax.text())
2093 time_range = str(self.specHeisGgraphTminTmax.text())
2093 time_range = str(self.specHeisGgraphTminTmax.text())
2094 timerange = str(self.specHeisGgraphTimeRange.text())
2094 timerange = str(self.specHeisGgraphTimeRange.text())
2095
2095
2096 # ---- Spectra Plot-----
2096 # ---- Spectra Plot-----
2097 if self.specHeisGraphCebSpectraplot.isChecked():
2097 if self.specHeisGraphCebSpectraplot.isChecked():
2098
2098
2099 name_operation = 'SpectraHeisScope'
2099 name_operation = 'SpectraHeisScope'
2100 optype = 'other'
2100 optype = 'other'
2101 opObj = puObj.addOperation(name=name_operation, optype=optype)
2101 opObj = puObj.addOperation(name=name_operation, optype=optype)
2102
2102
2103 name_parameter = 'id'
2103 name_parameter = 'id'
2104 format = 'int'
2104 format = 'int'
2105 value = opObj.id
2105 value = opObj.id
2106
2106
2107 if not opObj.addParameter(name=name_parameter, value=value, format=format):
2107 if not opObj.addParameter(name=name_parameter, value=value, format=format):
2108 self.console.append("Invalid value '%s' for '%s'" %(value, name_parameter))
2108 self.console.append("Invalid value '%s' for '%s'" %(value, name_parameter))
2109 return 0
2109 return 0
2110
2110
2111 if not (channelList == ''):
2111 if not (channelList == ''):
2112 name_parameter = 'channelList'
2112 name_parameter = 'channelList'
2113 format = 'intlist'
2113 format = 'intlist'
2114
2114
2115 if not isList(channelList):
2115 if not isList(channelList):
2116 self.console.append("Invalid value '%s' for '%s'" %(channelList, name_parameter))
2116 self.console.append("Invalid value '%s' for '%s'" %(channelList, name_parameter))
2117 return 0
2117 return 0
2118
2118
2119 opObj.addParameter(name=name_parameter, value=channelList, format=format)
2119 opObj.addParameter(name=name_parameter, value=channelList, format=format)
2120
2120
2121 if not freq_range == '':
2121 if not freq_range == '':
2122 xvalueList = freq_range.split(',')
2122 xvalueList = freq_range.split(',')
2123
2123
2124 if len(xvalueList) != 2:
2124 if len(xvalueList) != 2:
2125 self.console.append("Invalid value '%s' for '%s'" %(freq_range, "xrange"))
2125 self.console.append("Invalid value '%s' for '%s'" %(freq_range, "xrange"))
2126 return 0
2126 return 0
2127
2127
2128 value1 = xvalueList[0]
2128 value1 = xvalueList[0]
2129 value2 = xvalueList[1]
2129 value2 = xvalueList[1]
2130
2130
2131 if not isFloat(value1) or not isFloat(value2):
2131 if not isFloat(value1) or not isFloat(value2):
2132 self.console.append("Invalid value '%s' for '%s'" %(freq_range, "xrange"))
2132 self.console.append("Invalid value '%s' for '%s'" %(freq_range, "xrange"))
2133 return 0
2133 return 0
2134
2134
2135 name1 = 'xmin'
2135 name1 = 'xmin'
2136 name2 = 'xmax'
2136 name2 = 'xmax'
2137 format = 'float'
2137 format = 'float'
2138
2138
2139 opObj.addParameter(name=name1, value=value1, format=format)
2139 opObj.addParameter(name=name1, value=value1, format=format)
2140 opObj.addParameter(name=name2, value=value2, format=format)
2140 opObj.addParameter(name=name2, value=value2, format=format)
2141
2141
2142 #------specHeisGgraphYmin-Ymax---
2142 #------specHeisGgraphYmin-Ymax---
2143 if not power_range == '':
2143 if not power_range == '':
2144 yvalueList = power_range.split(",")
2144 yvalueList = power_range.split(",")
2145
2145
2146 if len(yvalueList) != 2:
2146 if len(yvalueList) != 2:
2147 self.console.append("Invalid value '%s' for '%s'" %(power_range, "xrange"))
2147 self.console.append("Invalid value '%s' for '%s'" %(power_range, "xrange"))
2148 return 0
2148 return 0
2149
2149
2150 value1 = yvalueList[0]
2150 value1 = yvalueList[0]
2151 value2 = yvalueList[1]
2151 value2 = yvalueList[1]
2152
2152
2153 if not isFloat(value1) or not isFloat(value2):
2153 if not isFloat(value1) or not isFloat(value2):
2154 self.console.append("Invalid value '%s' for '%s'" %(power_range, "yrange"))
2154 self.console.append("Invalid value '%s' for '%s'" %(power_range, "yrange"))
2155 return 0
2155 return 0
2156
2156
2157 name1 = 'ymin'
2157 name1 = 'ymin'
2158 name2 = 'ymax'
2158 name2 = 'ymax'
2159 format = 'float'
2159 format = 'float'
2160 opObj.addParameter(name=name1, value=value1, format=format)
2160 opObj.addParameter(name=name1, value=value1, format=format)
2161 opObj.addParameter(name=name2, value=value2, format=format)
2161 opObj.addParameter(name=name2, value=value2, format=format)
2162
2162
2163 if self.specHeisGraphSaveSpectra.isChecked():
2163 if self.specHeisGraphSaveSpectra.isChecked():
2164 checkPath = True
2164 checkPath = True
2165 name_parameter1 = 'save'
2165 name_parameter1 = 'save'
2166 name_parameter2 = 'figpath'
2166 name_parameter2 = 'figpath'
2167 name_parameter3 = 'figfile'
2167 name_parameter3 = 'figfile'
2168 value1 = '1'
2168 value1 = '1'
2169 value2 = str(self.specHeisGraphPath.text())
2169 value2 = str(self.specHeisGraphPath.text())
2170 value3 = str(self.specHeisGraphPrefix.text())
2170 value3 = str(self.specHeisGraphPrefix.text())
2171 format1 = 'bool'
2171 format1 = 'bool'
2172 format2 = 'str'
2172 format2 = 'str'
2173 opObj.addParameter(name=name_parameter1, value=value1 , format=format1)
2173 opObj.addParameter(name=name_parameter1, value=value1 , format=format1)
2174 opObj.addParameter(name=name_parameter2, value=value2, format=format2)
2174 opObj.addParameter(name=name_parameter2, value=value2, format=format2)
2175 if not value3 == "":
2175 if not value3 == "":
2176 try:
2176 try:
2177 value3 = str(self.specHeisGraphPrefix.text())
2177 value3 = str(self.specHeisGraphPrefix.text())
2178 except:
2178 except:
2179 self.console.clear()
2179 self.console.clear()
2180 self.console.append("Please Write prefix")
2180 self.console.append("Please Write prefix")
2181 return 0
2181 return 0
2182 opObj.addParameter(name='figfile', value=str(self.specHeisGraphPrefix.text()), format='str')
2182 opObj.addParameter(name='figfile', value=str(self.specHeisGraphPrefix.text()), format='str')
2183
2183
2184 # opObj.addParameter(name=name_parameter3, value=value3, format=format2)
2184 # opObj.addParameter(name=name_parameter3, value=value3, format=format2)
2185 # opObj.addParameter(name='wr_period', value='5',format='int')
2185 # opObj.addParameter(name='wr_period', value='5',format='int')
2186
2186
2187 if self.specHeisGraphftpSpectra.isChecked():
2187 if self.specHeisGraphftpSpectra.isChecked():
2188 opObj.addParameter(name='ftp', value='1', format='int')
2188 opObj.addParameter(name='ftp', value='1', format='int')
2189 self.addFTPConf2Operation(puObj, opObj)
2189 self.addFTPConf2Operation(puObj, opObj)
2190 addFTP = True
2190 addFTP = True
2191
2191
2192 if self.specHeisGraphCebRTIplot.isChecked():
2192 if self.specHeisGraphCebRTIplot.isChecked():
2193 name_operation = 'RTIfromSpectraHeis'
2193 name_operation = 'RTIfromSpectraHeis'
2194 optype = 'other'
2194 optype = 'other'
2195
2195
2196 name_parameter = 'id'
2196 name_parameter = 'id'
2197 format = 'int'
2197 format = 'int'
2198
2198
2199 opObj = puObj.addOperation(name=name_operation, optype=optype)
2199 opObj = puObj.addOperation(name=name_operation, optype=optype)
2200 value = opObj.id
2200 value = opObj.id
2201 opObj.addParameter(name=name_parameter, value=value, format=format)
2201 opObj.addParameter(name=name_parameter, value=value, format=format)
2202
2202
2203 if not channelList == '':
2203 if not channelList == '':
2204 opObj.addParameter(name='channelList', value=channelList, format='intlist')
2204 opObj.addParameter(name='channelList', value=channelList, format='intlist')
2205
2205
2206 if not time_range == '':
2206 if not time_range == '':
2207 xvalueList = time_range.split(',')
2207 xvalueList = time_range.split(',')
2208 try:
2208 try:
2209 value = float(xvalueList[0])
2209 value = float(xvalueList[0])
2210 value = float(xvalueList[1])
2210 value = float(xvalueList[1])
2211 except:
2211 except:
2212 return 0
2212 return 0
2213 format = 'float'
2213 format = 'float'
2214 opObj.addParameter(name='xmin', value=xvalueList[0], format=format)
2214 opObj.addParameter(name='xmin', value=xvalueList[0], format=format)
2215 opObj.addParameter(name='xmax', value=xvalueList[1], format=format)
2215 opObj.addParameter(name='xmax', value=xvalueList[1], format=format)
2216
2216
2217 if not timerange == '':
2217 if not timerange == '':
2218 format = 'int'
2218 format = 'int'
2219 try:
2219 try:
2220 timerange = int(timerange)
2220 timerange = int(timerange)
2221 except:
2221 except:
2222 return 0
2222 return 0
2223 opObj.addParameter(name='timerange', value=timerange, format=format)
2223 opObj.addParameter(name='timerange', value=timerange, format=format)
2224
2224
2225
2225
2226 if not power_range == '':
2226 if not power_range == '':
2227 yvalueList = power_range.split(",")
2227 yvalueList = power_range.split(",")
2228 try:
2228 try:
2229 value = float(yvalueList[0])
2229 value = float(yvalueList[0])
2230 value = float(yvalueList[1])
2230 value = float(yvalueList[1])
2231 except:
2231 except:
2232 return 0
2232 return 0
2233
2233
2234 format = 'float'
2234 format = 'float'
2235 opObj.addParameter(name='ymin', value=yvalueList[0], format=format)
2235 opObj.addParameter(name='ymin', value=yvalueList[0], format=format)
2236 opObj.addParameter(name='ymax', value=yvalueList[1], format=format)
2236 opObj.addParameter(name='ymax', value=yvalueList[1], format=format)
2237
2237
2238 if self.specHeisGraphSaveRTIplot.isChecked():
2238 if self.specHeisGraphSaveRTIplot.isChecked():
2239 checkPath = True
2239 checkPath = True
2240 opObj.addParameter(name='save', value='1', format='bool')
2240 opObj.addParameter(name='save', value='1', format='bool')
2241 opObj.addParameter(name='figpath', value=str(self.specHeisGraphPath.text()), format='str')
2241 opObj.addParameter(name='figpath', value=str(self.specHeisGraphPath.text()), format='str')
2242 value = str(self.specHeisGraphPrefix.text())
2242 value = str(self.specHeisGraphPrefix.text())
2243 if not value == "":
2243 if not value == "":
2244 try:
2244 try:
2245 value = str(self.specHeisGraphPrefix.text())
2245 value = str(self.specHeisGraphPrefix.text())
2246 except:
2246 except:
2247 self.console.clear()
2247 self.console.clear()
2248 self.console.append("Please Write prefix")
2248 self.console.append("Please Write prefix")
2249 return 0
2249 return 0
2250 opObj.addParameter(name='figfile', value=value, format='str')
2250 opObj.addParameter(name='figfile', value=value, format='str')
2251
2251
2252 # test_ftp
2252 # test_ftp
2253 if self.specHeisGraphftpRTIplot.isChecked():
2253 if self.specHeisGraphftpRTIplot.isChecked():
2254 opObj.addParameter(name='ftp', value='1', format='int')
2254 opObj.addParameter(name='ftp', value='1', format='int')
2255 self.addFTPConf2Operation(puObj, opObj)
2255 self.addFTPConf2Operation(puObj, opObj)
2256 addFTP = True
2256 addFTP = True
2257
2257
2258 localfolder = None
2258 localfolder = None
2259 if checkPath:
2259 if checkPath:
2260 localfolder = str(self.specHeisGraphPath.text())
2260 localfolder = str(self.specHeisGraphPath.text())
2261 if localfolder == '':
2261 if localfolder == '':
2262 self.console.clear()
2262 self.console.clear()
2263 self.console.append("Graphic path should be defined")
2263 self.console.append("Graphic path should be defined")
2264 return 0
2264 return 0
2265
2265
2266 if addFTP and not localfolder:
2266 if addFTP and not localfolder:
2267 self.console.clear()
2267 self.console.clear()
2268 self.console.append("You should save plots before send them to FTP Server")
2268 self.console.append("You should save plots before send them to FTP Server")
2269 return 0
2269 return 0
2270
2270
2271 # if something happened
2271 # if something happened
2272 parms_ok, output_path, blocksperfile, metadata_file = self.checkInputsPUSave(datatype='SpectraHeis')
2272 parms_ok, output_path, blocksperfile, metadata_file = self.checkInputsPUSave(datatype='SpectraHeis')
2273 if parms_ok:
2273 if parms_ok:
2274 name_operation = 'FitsWriter'
2274 name_operation = 'FitsWriter'
2275 optype = 'other'
2275 optype = 'other'
2276 name_parameter1 = 'path'
2276 name_parameter1 = 'path'
2277 name_parameter2 = 'dataBlocksPerFile'
2277 name_parameter2 = 'dataBlocksPerFile'
2278 name_parameter3 = 'metadatafile'
2278 name_parameter3 = 'metadatafile'
2279 value1 = output_path
2279 value1 = output_path
2280 value2 = blocksperfile
2280 value2 = blocksperfile
2281 value3 = metadata_file
2281 value3 = metadata_file
2282 format2 = "int"
2282 format2 = "int"
2283 format3 = "str"
2283 format3 = "str"
2284 opObj = puObj.addOperation(name=name_operation, optype=optype)
2284 opObj = puObj.addOperation(name=name_operation, optype=optype)
2285
2285
2286 opObj.addParameter(name=name_parameter1, value=value1)
2286 opObj.addParameter(name=name_parameter1, value=value1)
2287
2287
2288 if blocksperfile:
2288 if blocksperfile:
2289 opObj.addParameter(name=name_parameter2, value=value2, format=format2)
2289 opObj.addParameter(name=name_parameter2, value=value2, format=format2)
2290
2290
2291 if metadata_file:
2291 if metadata_file:
2292 opObj.addParameter(name=name_parameter3, value=value3, format=format3)
2292 opObj.addParameter(name=name_parameter3, value=value3, format=format3)
2293
2293
2294 self.console.clear()
2294 self.console.clear()
2295 try:
2295 try:
2296 self.refreshPUProperties(puObj)
2296 self.refreshPUProperties(puObj)
2297 except:
2297 except:
2298 self.console.append("An error reading input parameters was found ... Check them!")
2298 self.console.append("An error reading input parameters was found ... Check them!")
2299 return 0
2299 return 0
2300
2300
2301 self.console.append("Save your project and press Play button to start signal processing")
2301 self.console.append("Save your project and press Play button to start signal processing")
2302
2302
2303 self.actionSaveToolbar.setEnabled(True)
2303 self.actionSaveToolbar.setEnabled(True)
2304 self.actionStarToolbar.setEnabled(True)
2304 self.actionStarToolbar.setEnabled(True)
2305
2305
2306 self.actionSave.setEnabled(True)
2306 self.actionSave.setEnabled(True)
2307 self.actionStart.setEnabled(True)
2307 self.actionStart.setEnabled(True)
2308
2308
2309 return 1
2309 return 1
2310 @pyqtSignature("int")
2310 @pyqtSignature("int")
2311 def on_specHeisGraphCebSpectraplot_stateChanged(self, p0):
2311 def on_specHeisGraphCebSpectraplot_stateChanged(self, p0):
2312
2312
2313 if p0 == 2:
2313 if p0 == 2:
2314 self.specHeisGgraphChannelList.setEnabled(True)
2314 self.specHeisGgraphChannelList.setEnabled(True)
2315 self.specHeisGgraphXminXmax.setEnabled(True)
2315 self.specHeisGgraphXminXmax.setEnabled(True)
2316 self.specHeisGgraphYminYmax.setEnabled(True)
2316 self.specHeisGgraphYminYmax.setEnabled(True)
2317 if p0 == 0:
2317 if p0 == 0:
2318 self.specHeisGgraphXminXmax.setEnabled(False)
2318 self.specHeisGgraphXminXmax.setEnabled(False)
2319 self.specHeisGgraphYminYmax.setEnabled(False)
2319 self.specHeisGgraphYminYmax.setEnabled(False)
2320
2320
2321 @pyqtSignature("int")
2321 @pyqtSignature("int")
2322 def on_specHeisGraphCebRTIplot_stateChanged(self, p0):
2322 def on_specHeisGraphCebRTIplot_stateChanged(self, p0):
2323
2323
2324 if p0 == 2:
2324 if p0 == 2:
2325 self.specHeisGgraphChannelList.setEnabled(True)
2325 self.specHeisGgraphChannelList.setEnabled(True)
2326 self.specHeisGgraphTminTmax.setEnabled(True)
2326 self.specHeisGgraphTminTmax.setEnabled(True)
2327 self.specHeisGgraphYminYmax.setEnabled(True)
2327 self.specHeisGgraphYminYmax.setEnabled(True)
2328 self.specHeisGgraphTimeRange.setEnabled(True)
2328 self.specHeisGgraphTimeRange.setEnabled(True)
2329
2329
2330 if p0 == 0:
2330 if p0 == 0:
2331 self.specHeisGgraphTminTmax.setEnabled(False)
2331 self.specHeisGgraphTminTmax.setEnabled(False)
2332 self.specHeisGgraphYminYmax.setEnabled(False)
2332 self.specHeisGgraphYminYmax.setEnabled(False)
2333 self.specHeisGgraphTimeRange.setEnabled(False)
2333 self.specHeisGgraphTimeRange.setEnabled(False)
2334
2334
2335 @pyqtSignature("int")
2335 @pyqtSignature("int")
2336 def on_specHeisGraphSaveSpectra_stateChanged(self, p0):
2336 def on_specHeisGraphSaveSpectra_stateChanged(self, p0):
2337 """
2337 """
2338 """
2338 """
2339 if p0 == 2:
2339 if p0 == 2:
2340 self.specHeisGraphPath.setEnabled(True)
2340 self.specHeisGraphPath.setEnabled(True)
2341 self.specHeisGraphPrefix.setEnabled(True)
2341 self.specHeisGraphPrefix.setEnabled(True)
2342 self.specHeisGraphToolPath.setEnabled(True)
2342 self.specHeisGraphToolPath.setEnabled(True)
2343 if p0 == 0:
2343 if p0 == 0:
2344 self.specHeisGraphPath.setEnabled(False)
2344 self.specHeisGraphPath.setEnabled(False)
2345 self.specHeisGraphPrefix.setEnabled(False)
2345 self.specHeisGraphPrefix.setEnabled(False)
2346 self.specHeisGraphToolPath.setEnabled(False)
2346 self.specHeisGraphToolPath.setEnabled(False)
2347
2347
2348 @pyqtSignature("int")
2348 @pyqtSignature("int")
2349 def on_specHeisGraphSaveRTIplot_stateChanged(self, p0):
2349 def on_specHeisGraphSaveRTIplot_stateChanged(self, p0):
2350 if p0 == 2:
2350 if p0 == 2:
2351 self.specHeisGraphPath.setEnabled(True)
2351 self.specHeisGraphPath.setEnabled(True)
2352 self.specHeisGraphPrefix.setEnabled(True)
2352 self.specHeisGraphPrefix.setEnabled(True)
2353 self.specHeisGraphToolPath.setEnabled(True)
2353 self.specHeisGraphToolPath.setEnabled(True)
2354
2354
2355 @pyqtSignature("int")
2355 @pyqtSignature("int")
2356 def on_specHeisGraphftpSpectra_stateChanged(self, p0):
2356 def on_specHeisGraphftpSpectra_stateChanged(self, p0):
2357 """
2357 """
2358 """
2358 """
2359 if p0 == 2:
2359 if p0 == 2:
2360 self.specHeisGgraphftpratio.setEnabled(True)
2360 self.specHeisGgraphftpratio.setEnabled(True)
2361
2361
2362 if p0 == 0:
2362 if p0 == 0:
2363 self.specHeisGgraphftpratio.setEnabled(False)
2363 self.specHeisGgraphftpratio.setEnabled(False)
2364
2364
2365 @pyqtSignature("int")
2365 @pyqtSignature("int")
2366 def on_specHeisGraphftpRTIplot_stateChanged(self, p0):
2366 def on_specHeisGraphftpRTIplot_stateChanged(self, p0):
2367 if p0 == 2:
2367 if p0 == 2:
2368 self.specHeisGgraphftpratio.setEnabled(True)
2368 self.specHeisGgraphftpratio.setEnabled(True)
2369
2369
2370 @pyqtSignature("")
2370 @pyqtSignature("")
2371 def on_specHeisGraphClear_clicked(self):
2371 def on_specHeisGraphClear_clicked(self):
2372 pass
2372 pass
2373
2373
2374 def __checkSpecGraphSaving(self):
2374 def __checkSpecGraphSaving(self):
2375
2375
2376 enable = False
2376 enable = False
2377
2377
2378 if self.specGraphSaveSpectra.checkState():
2378 if self.specGraphSaveSpectra.checkState():
2379 enable = True
2379 enable = True
2380
2380
2381 if self.specGraphSaveCross.checkState():
2381 if self.specGraphSaveCross.checkState():
2382 enable = True
2382 enable = True
2383
2383
2384 if self.specGraphSaveRTIplot.checkState():
2384 if self.specGraphSaveRTIplot.checkState():
2385 enable = True
2385 enable = True
2386
2386
2387 if self.specGraphSaveCoherencemap.checkState():
2387 if self.specGraphSaveCoherencemap.checkState():
2388 enable = True
2388 enable = True
2389
2389
2390 if self.specGraphSavePowerprofile.checkState():
2390 if self.specGraphSavePowerprofile.checkState():
2391 enable = True
2391 enable = True
2392
2392
2393 if self.specGraphSaveRTInoise.checkState():
2393 if self.specGraphSaveRTInoise.checkState():
2394 enable = True
2394 enable = True
2395
2395
2396 self.specGraphPath.setEnabled(enable)
2396 self.specGraphPath.setEnabled(enable)
2397 self.specGraphPrefix.setEnabled(enable)
2397 self.specGraphPrefix.setEnabled(enable)
2398 self.specGraphToolPath.setEnabled(enable)
2398 self.specGraphToolPath.setEnabled(enable)
2399
2399
2400 self.specGgraphftpratio.setEnabled(enable)
2400 self.specGgraphftpratio.setEnabled(enable)
2401
2401
2402 def __checkSpecGraphFTP(self):
2402 def __checkSpecGraphFTP(self):
2403
2403
2404 enable = False
2404 enable = False
2405
2405
2406 if self.specGraphftpSpectra.checkState():
2406 if self.specGraphftpSpectra.checkState():
2407 enable = True
2407 enable = True
2408
2408
2409 if self.specGraphftpCross.checkState():
2409 if self.specGraphftpCross.checkState():
2410 enable = True
2410 enable = True
2411
2411
2412 if self.specGraphftpRTIplot.checkState():
2412 if self.specGraphftpRTIplot.checkState():
2413 enable = True
2413 enable = True
2414
2414
2415 if self.specGraphftpCoherencemap.checkState():
2415 if self.specGraphftpCoherencemap.checkState():
2416 enable = True
2416 enable = True
2417
2417
2418 if self.specGraphftpPowerprofile.checkState():
2418 if self.specGraphftpPowerprofile.checkState():
2419 enable = True
2419 enable = True
2420
2420
2421 if self.specGraphftpRTInoise.checkState():
2421 if self.specGraphftpRTInoise.checkState():
2422 enable = True
2422 enable = True
2423
2423
2424 # self.specGgraphftpratio.setEnabled(enable)
2424 # self.specGgraphftpratio.setEnabled(enable)
2425
2425
2426 def __checkSpecGraphFilters(self):
2426 def __checkSpecGraphFilters(self):
2427
2427
2428 freq = False
2428 freq = False
2429 height = False
2429 height = False
2430 db = False
2430 db = False
2431 time = False
2431 time = False
2432 magnitud = False
2432 magnitud = False
2433 phase = False
2433 phase = False
2434 channelList = False
2434 channelList = False
2435
2435
2436 if self.specGraphCebSpectraplot.checkState():
2436 if self.specGraphCebSpectraplot.checkState():
2437 freq = True
2437 freq = True
2438 height = True
2438 height = True
2439 db = True
2439 db = True
2440 channelList = True
2440 channelList = True
2441
2441
2442 if self.specGraphCebCrossSpectraplot.checkState():
2442 if self.specGraphCebCrossSpectraplot.checkState():
2443 freq = True
2443 freq = True
2444 height = True
2444 height = True
2445 db = True
2445 db = True
2446 magnitud = True
2446 magnitud = True
2447 phase = True
2447 phase = True
2448
2448
2449 if self.specGraphCebRTIplot.checkState():
2449 if self.specGraphCebRTIplot.checkState():
2450 height = True
2450 height = True
2451 db = True
2451 db = True
2452 time = True
2452 time = True
2453 channelList = True
2453 channelList = True
2454
2454
2455 if self.specGraphCebCoherencmap.checkState():
2455 if self.specGraphCebCoherencmap.checkState():
2456 height = True
2456 height = True
2457 time = True
2457 time = True
2458 magnitud = True
2458 magnitud = True
2459 phase = True
2459 phase = True
2460
2460
2461 if self.specGraphPowerprofile.checkState():
2461 if self.specGraphPowerprofile.checkState():
2462 height = True
2462 height = True
2463 db = True
2463 db = True
2464 channelList = True
2464 channelList = True
2465
2465
2466 if self.specGraphCebRTInoise.checkState():
2466 if self.specGraphCebRTInoise.checkState():
2467 db = True
2467 db = True
2468 time = True
2468 time = True
2469 channelList = True
2469 channelList = True
2470
2470
2471
2471
2472 self.specGgraphFreq.setEnabled(freq)
2472 self.specGgraphFreq.setEnabled(freq)
2473 self.specGgraphHeight.setEnabled(height)
2473 self.specGgraphHeight.setEnabled(height)
2474 self.specGgraphDbsrange.setEnabled(db)
2474 self.specGgraphDbsrange.setEnabled(db)
2475 self.specGgraphTminTmax.setEnabled(time)
2475 self.specGgraphTminTmax.setEnabled(time)
2476
2476
2477 self.specGgraphmagnitud.setEnabled(magnitud)
2477 self.specGgraphmagnitud.setEnabled(magnitud)
2478 self.specGgraphPhase.setEnabled(phase)
2478 self.specGgraphPhase.setEnabled(phase)
2479 self.specGgraphChannelList.setEnabled(channelList)
2479 self.specGgraphChannelList.setEnabled(channelList)
2480
2480
2481 def __getParmsFromProjectWindow(self):
2481 def __getParmsFromProjectWindow(self):
2482 """
2482 """
2483 Check Inputs Project:
2483 Check Inputs Project:
2484 - project_name
2484 - project_name
2485 - datatype
2485 - datatype
2486 - ext
2486 - ext
2487 - data_path
2487 - data_path
2488 - readmode
2488 - readmode
2489 - delay
2489 - delay
2490 - set
2490 - set
2491 - walk
2491 - walk
2492 """
2492 """
2493 parms_ok = True
2493 parms_ok = True
2494
2494
2495 project_name = str(self.proName.text())
2495 project_name = str(self.proName.text())
2496
2496
2497 if project_name == '' or project_name == None:
2497 if project_name == '' or project_name == None:
2498 outputstr = "Enter a project Name"
2498 outputstr = "Enter a project Name"
2499 self.console.append(outputstr)
2499 self.console.append(outputstr)
2500 parms_ok = False
2500 parms_ok = False
2501 project_name = None
2501 project_name = None
2502
2502
2503 description = str(self.proDescription.toPlainText())
2503 description = str(self.proDescription.toPlainText())
2504
2504
2505 datatype = str(self.proComDataType.currentText())
2505 datatype = str(self.proComDataType.currentText())
2506
2506
2507 ext = str(self.proDataType.text())
2507 ext = str(self.proDataType.text())
2508
2508
2509 dpath = str(self.proDataPath.text())
2509 dpath = str(self.proDataPath.text())
2510
2510
2511 if dpath == '':
2511 if dpath == '':
2512 outputstr = 'Datapath is empty'
2512 outputstr = 'Datapath is empty'
2513 self.console.append(outputstr)
2513 self.console.append(outputstr)
2514 parms_ok = False
2514 parms_ok = False
2515 dpath = None
2515 dpath = None
2516
2516
2517 if dpath != None:
2517 if dpath != None:
2518 if not os.path.isdir(dpath):
2518 if not os.path.isdir(dpath):
2519 outputstr = 'Datapath (%s) does not exist' % dpath
2519 outputstr = 'Datapath (%s) does not exist' % dpath
2520 self.console.append(outputstr)
2520 self.console.append(outputstr)
2521 parms_ok = False
2521 parms_ok = False
2522 dpath = None
2522 dpath = None
2523
2523
2524 online = int(self.proComReadMode.currentIndex())
2524 online = int(self.proComReadMode.currentIndex())
2525
2525
2526 delay = None
2526 delay = None
2527 if online==1:
2527 if online==1:
2528 try:
2528 try:
2529 delay = int(str(self.proDelay.text()))
2529 delay = int(str(self.proDelay.text()))
2530 except:
2530 except:
2531 outputstr = 'Delay value (%s) must be a integer number' %str(self.proDelay.text())
2531 outputstr = 'Delay value (%s) must be a integer number' %str(self.proDelay.text())
2532 self.console.append(outputstr)
2532 self.console.append(outputstr)
2533 parms_ok = False
2533 parms_ok = False
2534
2534
2535
2535
2536 set = None
2536 set = None
2537 value = str(self.proSet.text())
2537 value = str(self.proSet.text())
2538 try:
2538 try:
2539 set = int(value)
2539 set = int(value)
2540 except:
2540 except:
2541 pass
2541 pass
2542
2542
2543 ippKm = None
2543 ippKm = None
2544
2544
2545 value = str(self.proIPPKm.text())
2545 value = str(self.proIPPKm.text())
2546
2546
2547 try:
2547 try:
2548 ippKm = float(value)
2548 ippKm = float(value)
2549 except:
2549 except:
2550 if datatype=="USRP":
2550 if datatype=="USRP":
2551 outputstr = 'IPP value "%s" must be a float number' % str(self.proIPPKm.text())
2551 outputstr = 'IPP value "%s" must be a float number' % str(self.proIPPKm.text())
2552 self.console.append(outputstr)
2552 self.console.append(outputstr)
2553 parms_ok = False
2553 parms_ok = False
2554
2554
2555 walk = int(self.proComWalk.currentIndex())
2555 walk = int(self.proComWalk.currentIndex())
2556 expLabel = str(self.proExpLabel.text())
2556 expLabel = str(self.proExpLabel.text())
2557
2557
2558 startDate = str(self.proComStartDate.currentText())
2558 startDate = str(self.proComStartDate.currentText())
2559 endDate = str(self.proComEndDate.currentText())
2559 endDate = str(self.proComEndDate.currentText())
2560
2560
2561 # startDateList = startDate.split("/")
2561 # startDateList = startDate.split("/")
2562 # endDateList = endDate.split("/")
2562 # endDateList = endDate.split("/")
2563 #
2563 #
2564 # startDate = datetime.date(int(startDateList[0]), int(startDateList[1]), int(startDateList[2]))
2564 # startDate = datetime.date(int(startDateList[0]), int(startDateList[1]), int(startDateList[2]))
2565 # endDate = datetime.date(int(endDateList[0]), int(endDateList[1]), int(endDateList[2]))
2565 # endDate = datetime.date(int(endDateList[0]), int(endDateList[1]), int(endDateList[2]))
2566
2566
2567 startTime = self.proStartTime.time()
2567 startTime = self.proStartTime.time()
2568 endTime = self.proEndTime.time()
2568 endTime = self.proEndTime.time()
2569
2569
2570 startTime = str(startTime.toString("H:m:s"))
2570 startTime = str(startTime.toString("H:m:s"))
2571 endTime = str(endTime.toString("H:m:s"))
2571 endTime = str(endTime.toString("H:m:s"))
2572
2572
2573 projectParms = ProjectParms()
2573 projectParms = ProjectParms()
2574
2574
2575 projectParms.name = project_name
2575 projectParms.name = project_name
2576 projectParms.description = description
2576 projectParms.description = description
2577 projectParms.datatype = datatype
2577 projectParms.datatype = datatype
2578 projectParms.ext = ext
2578 projectParms.ext = ext
2579 projectParms.dpath = dpath
2579 projectParms.dpath = dpath
2580 projectParms.online = online
2580 projectParms.online = online
2581 projectParms.startDate = startDate
2581 projectParms.startDate = startDate
2582 projectParms.endDate = endDate
2582 projectParms.endDate = endDate
2583 projectParms.startTime = startTime
2583 projectParms.startTime = startTime
2584 projectParms.endTime = endTime
2584 projectParms.endTime = endTime
2585 projectParms.delay = delay
2585 projectParms.delay = delay
2586 projectParms.walk = walk
2586 projectParms.walk = walk
2587 projectParms.expLabel = expLabel
2587 projectParms.expLabel = expLabel
2588 projectParms.set = set
2588 projectParms.set = set
2589 projectParms.ippKm = ippKm
2589 projectParms.ippKm = ippKm
2590 projectParms.parmsOk = parms_ok
2590 projectParms.parmsOk = parms_ok
2591
2591
2592 return projectParms
2592 return projectParms
2593
2593
2594
2594
2595 def __getParmsFromProjectObj(self, projectObjView):
2595 def __getParmsFromProjectObj(self, projectObjView):
2596
2596
2597 parms_ok = True
2597 parms_ok = True
2598
2598
2599 project_name, description = projectObjView.name, projectObjView.description
2599 project_name, description = projectObjView.name, projectObjView.description
2600
2600
2601 readUnitObj = projectObjView.getReadUnitObj()
2601 readUnitObj = projectObjView.getReadUnitObj()
2602 datatype = readUnitObj.datatype
2602 datatype = readUnitObj.datatype
2603
2603
2604 operationObj = readUnitObj.getOperationObj(name='run')
2604 operationObj = readUnitObj.getOperationObj(name='run')
2605
2605
2606 dpath = operationObj.getParameterValue(parameterName='path')
2606 dpath = operationObj.getParameterValue(parameterName='path')
2607 startDate = operationObj.getParameterValue(parameterName='startDate')
2607 startDate = operationObj.getParameterValue(parameterName='startDate')
2608 endDate = operationObj.getParameterValue(parameterName='endDate')
2608 endDate = operationObj.getParameterValue(parameterName='endDate')
2609
2609
2610 startDate = startDate.strftime("%Y/%m/%d")
2610 startDate = startDate.strftime("%Y/%m/%d")
2611 endDate = endDate.strftime("%Y/%m/%d")
2611 endDate = endDate.strftime("%Y/%m/%d")
2612
2612
2613 startTime = operationObj.getParameterValue(parameterName='startTime')
2613 startTime = operationObj.getParameterValue(parameterName='startTime')
2614 endTime = operationObj.getParameterValue(parameterName='endTime')
2614 endTime = operationObj.getParameterValue(parameterName='endTime')
2615
2615
2616 startTime = startTime.strftime("%H:%M:%S")
2616 startTime = startTime.strftime("%H:%M:%S")
2617 endTime = endTime.strftime("%H:%M:%S")
2617 endTime = endTime.strftime("%H:%M:%S")
2618
2618
2619 online = 0
2619 online = 0
2620 try:
2620 try:
2621 online = operationObj.getParameterValue(parameterName='online')
2621 online = operationObj.getParameterValue(parameterName='online')
2622 except:
2622 except:
2623 pass
2623 pass
2624
2624
2625 delay = ''
2625 delay = ''
2626 try:
2626 try:
2627 delay = operationObj.getParameterValue(parameterName='delay')
2627 delay = operationObj.getParameterValue(parameterName='delay')
2628 except:
2628 except:
2629 pass
2629 pass
2630
2630
2631 walk = 0
2631 walk = 0
2632 try:
2632 try:
2633 walk = operationObj.getParameterValue(parameterName='walk')
2633 walk = operationObj.getParameterValue(parameterName='walk')
2634 except:
2634 except:
2635 pass
2635 pass
2636
2636
2637 set = ''
2637 set = ''
2638 try:
2638 try:
2639 set = operationObj.getParameterValue(parameterName='set')
2639 set = operationObj.getParameterValue(parameterName='set')
2640 except:
2640 except:
2641 pass
2641 pass
2642
2642
2643 expLabel = ''
2643 expLabel = ''
2644 try:
2644 try:
2645 expLabel = operationObj.getParameterValue(parameterName='expLabel')
2645 expLabel = operationObj.getParameterValue(parameterName='expLabel')
2646 except:
2646 except:
2647 pass
2647 pass
2648
2648
2649 ippKm = ''
2649 ippKm = ''
2650 if datatype.lower() == 'usrp':
2650 if datatype.lower() == 'usrp':
2651 try:
2651 try:
2652 ippKm = operationObj.getParameterValue(parameterName='ippKm')
2652 ippKm = operationObj.getParameterValue(parameterName='ippKm')
2653 except:
2653 except:
2654 pass
2654 pass
2655
2655
2656 projectParms = ProjectParms()
2656 projectParms = ProjectParms()
2657
2657
2658 projectParms.name = project_name
2658 projectParms.name = project_name
2659 projectParms.description = description
2659 projectParms.description = description
2660 projectParms.datatype = datatype
2660 projectParms.datatype = datatype
2661 projectParms.ext = None
2661 projectParms.ext = None
2662 projectParms.dpath = dpath
2662 projectParms.dpath = dpath
2663 projectParms.online = online
2663 projectParms.online = online
2664 projectParms.startDate = startDate
2664 projectParms.startDate = startDate
2665 projectParms.endDate = endDate
2665 projectParms.endDate = endDate
2666 projectParms.startTime = startTime
2666 projectParms.startTime = startTime
2667 projectParms.endTime = endTime
2667 projectParms.endTime = endTime
2668 projectParms.delay=delay
2668 projectParms.delay=delay
2669 projectParms.walk=walk
2669 projectParms.walk=walk
2670 projectParms.set=set
2670 projectParms.set=set
2671 projectParms.ippKm=ippKm
2671 projectParms.ippKm=ippKm
2672 projectParms.expLabel = expLabel
2672 projectParms.expLabel = expLabel
2673 projectParms.parmsOk=parms_ok
2673 projectParms.parmsOk=parms_ok
2674
2674
2675 return projectParms
2675 return projectParms
2676
2676
2677 def refreshProjectWindow(self, projectObjView):
2677 def refreshProjectWindow(self, projectObjView):
2678
2678
2679 projectParms = self.__getParmsFromProjectObj(projectObjView)
2679 projectParms = self.__getParmsFromProjectObj(projectObjView)
2680
2680
2681 index = projectParms.getDatatypeIndex()
2681 index = projectParms.getDatatypeIndex()
2682
2682
2683 self.proName.setText(projectParms.name)
2683 self.proName.setText(projectParms.name)
2684 self.proDescription.clear()
2684 self.proDescription.clear()
2685 self.proDescription.append(projectParms.description)
2685 self.proDescription.append(projectParms.description)
2686
2686
2687 self.on_proComDataType_activated(index=index)
2687 self.on_proComDataType_activated(index=index)
2688 self.proDataPath.setText(projectParms.dpath)
2688 self.proDataPath.setText(projectParms.dpath)
2689 self.proComDataType.setCurrentIndex(index)
2689 self.proComDataType.setCurrentIndex(index)
2690 self.proComReadMode.setCurrentIndex(projectParms.online)
2690 self.proComReadMode.setCurrentIndex(projectParms.online)
2691 self.proDelay.setText(str(projectParms.delay))
2691 self.proDelay.setText(str(projectParms.delay))
2692 self.proSet.setText(str(projectParms.set))
2692 self.proSet.setText(str(projectParms.set))
2693 self.proIPPKm.setText(str(projectParms.ippKm))
2693 self.proIPPKm.setText(str(projectParms.ippKm))
2694 self.proComWalk.setCurrentIndex(projectParms.walk)
2694 self.proComWalk.setCurrentIndex(projectParms.walk)
2695 self.proExpLabel.setText(str(projectParms.expLabel).strip())
2695 self.proExpLabel.setText(str(projectParms.expLabel).strip())
2696
2696
2697 dateList = self.loadDays(data_path = projectParms.dpath,
2697 dateList = self.loadDays(data_path = projectParms.dpath,
2698 ext = projectParms.getExt(),
2698 ext = projectParms.getExt(),
2699 walk = projectParms.walk,
2699 walk = projectParms.walk,
2700 expLabel = projectParms.expLabel)
2700 expLabel = projectParms.expLabel)
2701
2701
2702 try:
2702 try:
2703 startDateIndex = dateList.index(projectParms.startDate)
2703 startDateIndex = dateList.index(projectParms.startDate)
2704 except:
2704 except:
2705 startDateIndex = 0
2705 startDateIndex = 0
2706
2706
2707 try:
2707 try:
2708 endDateIndex = dateList.index(projectParms.endDate)
2708 endDateIndex = dateList.index(projectParms.endDate)
2709 except:
2709 except:
2710 endDateIndex = int(self.proComEndDate.count()-1)
2710 endDateIndex = int(self.proComEndDate.count()-1)
2711
2711
2712 self.proComStartDate.setCurrentIndex(startDateIndex)
2712 self.proComStartDate.setCurrentIndex(startDateIndex)
2713 self.proComEndDate.setCurrentIndex(endDateIndex)
2713 self.proComEndDate.setCurrentIndex(endDateIndex)
2714
2714
2715 startlist = projectParms.startTime.split(":")
2715 startlist = projectParms.startTime.split(":")
2716 endlist = projectParms.endTime.split(":")
2716 endlist = projectParms.endTime.split(":")
2717
2717
2718 self.time.setHMS(int(startlist[0]), int(startlist[1]), int(startlist[2]))
2718 self.time.setHMS(int(startlist[0]), int(startlist[1]), int(startlist[2]))
2719 self.proStartTime.setTime(self.time)
2719 self.proStartTime.setTime(self.time)
2720
2720
2721 self.time.setHMS(int(endlist[0]), int(endlist[1]), int(endlist[2]))
2721 self.time.setHMS(int(endlist[0]), int(endlist[1]), int(endlist[2]))
2722 self.proEndTime.setTime(self.time)
2722 self.proEndTime.setTime(self.time)
2723
2723
2724
2724
2725 def __refreshVoltageWindow(self, puObj):
2725 def __refreshVoltageWindow(self, puObj):
2726
2726
2727 opObj = puObj.getOperationObj(name='setRadarFrequency')
2727 opObj = puObj.getOperationObj(name='setRadarFrequency')
2728 if opObj == None:
2728 if opObj == None:
2729 self.volOpRadarfrequency.clear()
2729 self.volOpRadarfrequency.clear()
2730 self.volOpCebRadarfrequency.setCheckState(0)
2730 self.volOpCebRadarfrequency.setCheckState(0)
2731 else:
2731 else:
2732 value = opObj.getParameterValue(parameterName='frequency')
2732 value = opObj.getParameterValue(parameterName='frequency')
2733 value = str(float(value)/1e6)
2733 value = str(float(value)/1e6)
2734 self.volOpRadarfrequency.setText(value)
2734 self.volOpRadarfrequency.setText(value)
2735 self.volOpRadarfrequency.setEnabled(True)
2735 self.volOpRadarfrequency.setEnabled(True)
2736 self.volOpCebRadarfrequency.setCheckState(QtCore.Qt.Checked)
2736 self.volOpCebRadarfrequency.setCheckState(QtCore.Qt.Checked)
2737
2737
2738 opObj = puObj.getOperationObj(name="selectChannels")
2738 opObj = puObj.getOperationObj(name="selectChannels")
2739
2739
2740 if opObj == None:
2740 if opObj == None:
2741 opObj = puObj.getOperationObj(name="selectChannelsByIndex")
2741 opObj = puObj.getOperationObj(name="selectChannelsByIndex")
2742
2742
2743 if opObj == None:
2743 if opObj == None:
2744 self.volOpChannel.clear()
2744 self.volOpChannel.clear()
2745 self.volOpCebChannels.setCheckState(0)
2745 self.volOpCebChannels.setCheckState(0)
2746 else:
2746 else:
2747 channelEnabled = False
2747 channelEnabled = False
2748 try:
2748 try:
2749 value = opObj.getParameterValue(parameterName='channelList')
2749 value = opObj.getParameterValue(parameterName='channelList')
2750 value = str(value)[1:-1]
2750 value = str(value)[1:-1]
2751 channelEnabled = True
2751 channelEnabled = True
2752 channelMode = 0
2752 channelMode = 0
2753 except:
2753 except:
2754 pass
2754 pass
2755 try:
2755 try:
2756 value = opObj.getParameterValue(parameterName='channelIndexList')
2756 value = opObj.getParameterValue(parameterName='channelIndexList')
2757 value = str(value)[1:-1]
2757 value = str(value)[1:-1]
2758 channelEnabled = True
2758 channelEnabled = True
2759 channelMode = 1
2759 channelMode = 1
2760 except:
2760 except:
2761 pass
2761 pass
2762
2762
2763 if channelEnabled:
2763 if channelEnabled:
2764 self.volOpChannel.setText(value)
2764 self.volOpChannel.setText(value)
2765 self.volOpChannel.setEnabled(True)
2765 self.volOpChannel.setEnabled(True)
2766 self.volOpCebChannels.setCheckState(QtCore.Qt.Checked)
2766 self.volOpCebChannels.setCheckState(QtCore.Qt.Checked)
2767 self.volOpComChannels.setCurrentIndex(channelMode)
2767 self.volOpComChannels.setCurrentIndex(channelMode)
2768
2768
2769 opObj = puObj.getOperationObj(name="selectHeights")
2769 opObj = puObj.getOperationObj(name="selectHeights")
2770 if opObj == None:
2770 if opObj == None:
2771 self.volOpHeights.clear()
2771 self.volOpHeights.clear()
2772 self.volOpCebHeights.setCheckState(0)
2772 self.volOpCebHeights.setCheckState(0)
2773 else:
2773 else:
2774 value1 = str(opObj.getParameterValue(parameterName='minHei'))
2774 value1 = str(opObj.getParameterValue(parameterName='minHei'))
2775 value2 = str(opObj.getParameterValue(parameterName='maxHei'))
2775 value2 = str(opObj.getParameterValue(parameterName='maxHei'))
2776 value = value1 + "," + value2
2776 value = value1 + "," + value2
2777 self.volOpHeights.setText(value)
2777 self.volOpHeights.setText(value)
2778 self.volOpHeights.setEnabled(True)
2778 self.volOpHeights.setEnabled(True)
2779 self.volOpCebHeights.setCheckState(QtCore.Qt.Checked)
2779 self.volOpCebHeights.setCheckState(QtCore.Qt.Checked)
2780
2780
2781 opObj = puObj.getOperationObj(name="filterByHeights")
2781 opObj = puObj.getOperationObj(name="filterByHeights")
2782 if opObj == None:
2782 if opObj == None:
2783 self.volOpFilter.clear()
2783 self.volOpFilter.clear()
2784 self.volOpCebFilter.setCheckState(0)
2784 self.volOpCebFilter.setCheckState(0)
2785 else:
2785 else:
2786 value = opObj.getParameterValue(parameterName='window')
2786 value = opObj.getParameterValue(parameterName='window')
2787 value = str(value)
2787 value = str(value)
2788 self.volOpFilter.setText(value)
2788 self.volOpFilter.setText(value)
2789 self.volOpFilter.setEnabled(True)
2789 self.volOpFilter.setEnabled(True)
2790 self.volOpCebFilter.setCheckState(QtCore.Qt.Checked)
2790 self.volOpCebFilter.setCheckState(QtCore.Qt.Checked)
2791
2791
2792 opObj = puObj.getOperationObj(name="ProfileSelector")
2792 opObj = puObj.getOperationObj(name="ProfileSelector")
2793 if opObj == None:
2793 if opObj == None:
2794 self.volOpProfile.clear()
2794 self.volOpProfile.clear()
2795 self.volOpCebProfile.setCheckState(0)
2795 self.volOpCebProfile.setCheckState(0)
2796 else:
2796 else:
2797 for parmObj in opObj.getParameterObjList():
2797 for parmObj in opObj.getParameterObjList():
2798
2798
2799 if parmObj.name == "profileList":
2799 if parmObj.name == "profileList":
2800 value = parmObj.getValue()
2800 value = parmObj.getValue()
2801 value = str(value)[1:-1]
2801 value = str(value)[1:-1]
2802 self.volOpProfile.setText(value)
2802 self.volOpProfile.setText(value)
2803 self.volOpProfile.setEnabled(True)
2803 self.volOpProfile.setEnabled(True)
2804 self.volOpCebProfile.setCheckState(QtCore.Qt.Checked)
2804 self.volOpCebProfile.setCheckState(QtCore.Qt.Checked)
2805 self.volOpComProfile.setCurrentIndex(0)
2805 self.volOpComProfile.setCurrentIndex(0)
2806
2806
2807 if parmObj.name == "profileRangeList":
2807 if parmObj.name == "profileRangeList":
2808 value = parmObj.getValue()
2808 value = parmObj.getValue()
2809 value = str(value)[1:-1]
2809 value = str(value)[1:-1]
2810 self.volOpProfile.setText(value)
2810 self.volOpProfile.setText(value)
2811 self.volOpProfile.setEnabled(True)
2811 self.volOpProfile.setEnabled(True)
2812 self.volOpCebProfile.setCheckState(QtCore.Qt.Checked)
2812 self.volOpCebProfile.setCheckState(QtCore.Qt.Checked)
2813 self.volOpComProfile.setCurrentIndex(1)
2813 self.volOpComProfile.setCurrentIndex(1)
2814
2814
2815 if parmObj.name == "rangeList":
2815 if parmObj.name == "rangeList":
2816 value = parmObj.getValue()
2816 value = parmObj.getValue()
2817 value = str(value)[1:-1]
2817 value = str(value)[1:-1]
2818 self.volOpProfile.setText(value)
2818 self.volOpProfile.setText(value)
2819 self.volOpProfile.setEnabled(True)
2819 self.volOpProfile.setEnabled(True)
2820 self.volOpCebProfile.setCheckState(QtCore.Qt.Checked)
2820 self.volOpCebProfile.setCheckState(QtCore.Qt.Checked)
2821 self.volOpComProfile.setCurrentIndex(2)
2821 self.volOpComProfile.setCurrentIndex(2)
2822
2822
2823 opObj = puObj.getOperationObj(name="Decoder")
2823 opObj = puObj.getOperationObj(name="Decoder")
2824 self.volOpCode.setText("")
2824 self.volOpCode.setText("")
2825 if opObj == None:
2825 if opObj == None:
2826 self.volOpCebDecodification.setCheckState(0)
2826 self.volOpCebDecodification.setCheckState(0)
2827 else:
2827 else:
2828 self.volOpCebDecodification.setCheckState(QtCore.Qt.Checked)
2828 self.volOpCebDecodification.setCheckState(QtCore.Qt.Checked)
2829
2829
2830 parmObj = opObj.getParameterObj('code')
2830 parmObj = opObj.getParameterObj('code')
2831
2831
2832 if parmObj == None:
2832 if parmObj == None:
2833 self.volOpComCode.setCurrentIndex(0)
2833 self.volOpComCode.setCurrentIndex(0)
2834 else:
2834 else:
2835
2835
2836 parmObj1 = opObj.getParameterObj('nCode')
2836 parmObj1 = opObj.getParameterObj('nCode')
2837 parmObj2 = opObj.getParameterObj('nBaud')
2837 parmObj2 = opObj.getParameterObj('nBaud')
2838
2838
2839 if parmObj1 == None or parmObj2 == None:
2839 if parmObj1 == None or parmObj2 == None:
2840 self.volOpComCode.setCurrentIndex(0)
2840 self.volOpComCode.setCurrentIndex(0)
2841 else:
2841 else:
2842 code = ast.literal_eval(str(parmObj.getValue()))
2842 code = ast.literal_eval(str(parmObj.getValue()))
2843 nCode = parmObj1.getValue()
2843 nCode = parmObj1.getValue()
2844 nBaud = parmObj2.getValue()
2844 nBaud = parmObj2.getValue()
2845
2845
2846 code = numpy.asarray(code).reshape((nCode, nBaud)).tolist()
2846 code = numpy.asarray(code).reshape((nCode, nBaud)).tolist()
2847
2847
2848 #User defined by default
2848 #User defined by default
2849 self.volOpComCode.setCurrentIndex(13)
2849 self.volOpComCode.setCurrentIndex(13)
2850 self.volOpCode.setText(str(code))
2850 self.volOpCode.setText(str(code))
2851
2851
2852 if nCode == 1:
2852 if nCode == 1:
2853 if nBaud == 3:
2853 if nBaud == 3:
2854 self.volOpComCode.setCurrentIndex(1)
2854 self.volOpComCode.setCurrentIndex(1)
2855 if nBaud == 4:
2855 if nBaud == 4:
2856 self.volOpComCode.setCurrentIndex(2)
2856 self.volOpComCode.setCurrentIndex(2)
2857 if nBaud == 5:
2857 if nBaud == 5:
2858 self.volOpComCode.setCurrentIndex(3)
2858 self.volOpComCode.setCurrentIndex(3)
2859 if nBaud == 7:
2859 if nBaud == 7:
2860 self.volOpComCode.setCurrentIndex(4)
2860 self.volOpComCode.setCurrentIndex(4)
2861 if nBaud == 11:
2861 if nBaud == 11:
2862 self.volOpComCode.setCurrentIndex(5)
2862 self.volOpComCode.setCurrentIndex(5)
2863 if nBaud == 13:
2863 if nBaud == 13:
2864 self.volOpComCode.setCurrentIndex(6)
2864 self.volOpComCode.setCurrentIndex(6)
2865
2865
2866 if nCode == 2:
2866 if nCode == 2:
2867 if nBaud == 3:
2867 if nBaud == 3:
2868 self.volOpComCode.setCurrentIndex(7)
2868 self.volOpComCode.setCurrentIndex(7)
2869 if nBaud == 4:
2869 if nBaud == 4:
2870 self.volOpComCode.setCurrentIndex(8)
2870 self.volOpComCode.setCurrentIndex(8)
2871 if nBaud == 5:
2871 if nBaud == 5:
2872 self.volOpComCode.setCurrentIndex(9)
2872 self.volOpComCode.setCurrentIndex(9)
2873 if nBaud == 7:
2873 if nBaud == 7:
2874 self.volOpComCode.setCurrentIndex(10)
2874 self.volOpComCode.setCurrentIndex(10)
2875 if nBaud == 11:
2875 if nBaud == 11:
2876 self.volOpComCode.setCurrentIndex(11)
2876 self.volOpComCode.setCurrentIndex(11)
2877 if nBaud == 13:
2877 if nBaud == 13:
2878 self.volOpComCode.setCurrentIndex(12)
2878 self.volOpComCode.setCurrentIndex(12)
2879
2879
2880
2880
2881 opObj = puObj.getOperationObj(name="deFlip")
2881 opObj = puObj.getOperationObj(name="deFlip")
2882 if opObj == None:
2882 if opObj == None:
2883 self.volOpFlip.clear()
2883 self.volOpFlip.clear()
2884 self.volOpFlip.setEnabled(False)
2884 self.volOpFlip.setEnabled(False)
2885 self.volOpCebFlip.setCheckState(0)
2885 self.volOpCebFlip.setCheckState(0)
2886 else:
2886 else:
2887 try:
2887 try:
2888 value = opObj.getParameterValue(parameterName='channelList')
2888 value = opObj.getParameterValue(parameterName='channelList')
2889 value = str(value)[1:-1]
2889 value = str(value)[1:-1]
2890 except:
2890 except:
2891 value = ""
2891 value = ""
2892
2892
2893 self.volOpFlip.setText(value)
2893 self.volOpFlip.setText(value)
2894 self.volOpFlip.setEnabled(True)
2894 self.volOpFlip.setEnabled(True)
2895 self.volOpCebFlip.setCheckState(QtCore.Qt.Checked)
2895 self.volOpCebFlip.setCheckState(QtCore.Qt.Checked)
2896
2896
2897 opObj = puObj.getOperationObj(name="CohInt")
2897 opObj = puObj.getOperationObj(name="CohInt")
2898 if opObj == None:
2898 if opObj == None:
2899 self.volOpCohInt.clear()
2899 self.volOpCohInt.clear()
2900 self.volOpCebCohInt.setCheckState(0)
2900 self.volOpCebCohInt.setCheckState(0)
2901 else:
2901 else:
2902 value = opObj.getParameterValue(parameterName='n')
2902 value = opObj.getParameterValue(parameterName='n')
2903 self.volOpCohInt.setText(str(value))
2903 self.volOpCohInt.setText(str(value))
2904 self.volOpCohInt.setEnabled(True)
2904 self.volOpCohInt.setEnabled(True)
2905 self.volOpCebCohInt.setCheckState(QtCore.Qt.Checked)
2905 self.volOpCebCohInt.setCheckState(QtCore.Qt.Checked)
2906
2906
2907 opObj = puObj.getOperationObj(name='Scope')
2907 opObj = puObj.getOperationObj(name='Scope')
2908 if opObj == None:
2908 if opObj == None:
2909 self.volGraphCebshow.setCheckState(0)
2909 self.volGraphCebshow.setCheckState(0)
2910 else:
2910 else:
2911 self.volGraphCebshow.setCheckState(QtCore.Qt.Checked)
2911 self.volGraphCebshow.setCheckState(QtCore.Qt.Checked)
2912
2912
2913 parmObj = opObj.getParameterObj(parameterName='channelList')
2913 parmObj = opObj.getParameterObj(parameterName='channelList')
2914
2914
2915 if parmObj == None:
2915 if parmObj == None:
2916 self.volGraphChannelList.clear()
2916 self.volGraphChannelList.clear()
2917 else:
2917 else:
2918 value = parmObj.getValue()
2918 value = parmObj.getValue()
2919 value = str(value)
2919 value = str(value)
2920 self.volGraphChannelList.setText(value)
2920 self.volGraphChannelList.setText(value)
2921 self.volOpProfile.setEnabled(True)
2921 self.volOpProfile.setEnabled(True)
2922
2922
2923 parmObj1 = opObj.getParameterObj(parameterName='xmin')
2923 parmObj1 = opObj.getParameterObj(parameterName='xmin')
2924 parmObj2 = opObj.getParameterObj(parameterName='xmax')
2924 parmObj2 = opObj.getParameterObj(parameterName='xmax')
2925
2925
2926 if parmObj1 == None or parmObj2 ==None:
2926 if parmObj1 == None or parmObj2 ==None:
2927 self.volGraphfreqrange.clear()
2927 self.volGraphfreqrange.clear()
2928 else:
2928 else:
2929 value1 = parmObj1.getValue()
2929 value1 = parmObj1.getValue()
2930 value1 = str(value1)
2930 value1 = str(value1)
2931 value2 = parmObj2.getValue()
2931 value2 = parmObj2.getValue()
2932 value2 = str(value2)
2932 value2 = str(value2)
2933 value = value1 + "," + value2
2933 value = value1 + "," + value2
2934 self.volGraphfreqrange.setText(value)
2934 self.volGraphfreqrange.setText(value)
2935
2935
2936 parmObj1 = opObj.getParameterObj(parameterName='ymin')
2936 parmObj1 = opObj.getParameterObj(parameterName='ymin')
2937 parmObj2 = opObj.getParameterObj(parameterName='ymax')
2937 parmObj2 = opObj.getParameterObj(parameterName='ymax')
2938
2938
2939 if parmObj1 == None or parmObj2 ==None:
2939 if parmObj1 == None or parmObj2 ==None:
2940 self.volGraphHeightrange.clear()
2940 self.volGraphHeightrange.clear()
2941 else:
2941 else:
2942 value1 = parmObj1.getValue()
2942 value1 = parmObj1.getValue()
2943 value1 = str(value1)
2943 value1 = str(value1)
2944 value2 = parmObj2.getValue()
2944 value2 = parmObj2.getValue()
2945 value2 = str(value2)
2945 value2 = str(value2)
2946 value = value1 + "," + value2
2946 value = value1 + "," + value2
2947 value2 = str(value2)
2947 value2 = str(value2)
2948 self.volGraphHeightrange.setText(value)
2948 self.volGraphHeightrange.setText(value)
2949
2949
2950 parmObj = opObj.getParameterObj(parameterName='save')
2950 parmObj = opObj.getParameterObj(parameterName='save')
2951
2951
2952 if parmObj == None:
2952 if parmObj == None:
2953 self.volGraphCebSave.setCheckState(QtCore.Qt.Unchecked)
2953 self.volGraphCebSave.setCheckState(QtCore.Qt.Unchecked)
2954 else:
2954 else:
2955 value = parmObj.getValue()
2955 value = parmObj.getValue()
2956 if int(value):
2956 if int(value):
2957 self.volGraphCebSave.setCheckState(QtCore.Qt.Checked)
2957 self.volGraphCebSave.setCheckState(QtCore.Qt.Checked)
2958 else:
2958 else:
2959 self.volGraphCebSave.setCheckState(QtCore.Qt.Unchecked)
2959 self.volGraphCebSave.setCheckState(QtCore.Qt.Unchecked)
2960
2960
2961 parmObj = opObj.getParameterObj(parameterName='figpath')
2961 parmObj = opObj.getParameterObj(parameterName='figpath')
2962 if parmObj == None:
2962 if parmObj == None:
2963 self.volGraphPath.clear()
2963 self.volGraphPath.clear()
2964 else:
2964 else:
2965 value = parmObj.getValue()
2965 value = parmObj.getValue()
2966 path = str(value)
2966 path = str(value)
2967 self.volGraphPath.setText(path)
2967 self.volGraphPath.setText(path)
2968
2968
2969 parmObj = opObj.getParameterObj(parameterName='figfile')
2969 parmObj = opObj.getParameterObj(parameterName='figfile')
2970 if parmObj == None:
2970 if parmObj == None:
2971 self.volGraphPrefix.clear()
2971 self.volGraphPrefix.clear()
2972 else:
2972 else:
2973 value = parmObj.getValue()
2973 value = parmObj.getValue()
2974 figfile = str(value)
2974 figfile = str(value)
2975 self.volGraphPrefix.setText(figfile)
2975 self.volGraphPrefix.setText(figfile)
2976
2976
2977 # outputVoltageWrite
2977 # outputVoltageWrite
2978 opObj = puObj.getOperationObj(name='VoltageWriter')
2978 opObj = puObj.getOperationObj(name='VoltageWriter')
2979
2979
2980 if opObj == None:
2980 if opObj == None:
2981 self.volOutputPath.clear()
2981 self.volOutputPath.clear()
2982 self.volOutputblocksperfile.clear()
2982 self.volOutputblocksperfile.clear()
2983 self.volOutputprofilesperblock.clear()
2983 self.volOutputprofilesperblock.clear()
2984 else:
2984 else:
2985 parmObj = opObj.getParameterObj(parameterName='path')
2985 parmObj = opObj.getParameterObj(parameterName='path')
2986 if parmObj == None:
2986 if parmObj == None:
2987 self.volOutputPath.clear()
2987 self.volOutputPath.clear()
2988 else:
2988 else:
2989 value = parmObj.getValue()
2989 value = parmObj.getValue()
2990 path = str(value)
2990 path = str(value)
2991 self.volOutputPath.setText(path)
2991 self.volOutputPath.setText(path)
2992
2992
2993 parmObj = opObj.getParameterObj(parameterName='blocksPerFile')
2993 parmObj = opObj.getParameterObj(parameterName='blocksPerFile')
2994 if parmObj == None:
2994 if parmObj == None:
2995 self.volOutputblocksperfile.clear()
2995 self.volOutputblocksperfile.clear()
2996 else:
2996 else:
2997 value = parmObj.getValue()
2997 value = parmObj.getValue()
2998 blocksperfile = str(value)
2998 blocksperfile = str(value)
2999 self.volOutputblocksperfile.setText(blocksperfile)
2999 self.volOutputblocksperfile.setText(blocksperfile)
3000
3000
3001 parmObj = opObj.getParameterObj(parameterName='profilesPerBlock')
3001 parmObj = opObj.getParameterObj(parameterName='profilesPerBlock')
3002 if parmObj == None:
3002 if parmObj == None:
3003 self.volOutputprofilesperblock.clear()
3003 self.volOutputprofilesperblock.clear()
3004 else:
3004 else:
3005 value = parmObj.getValue()
3005 value = parmObj.getValue()
3006 profilesPerBlock = str(value)
3006 profilesPerBlock = str(value)
3007 self.volOutputprofilesperblock.setText(profilesPerBlock)
3007 self.volOutputprofilesperblock.setText(profilesPerBlock)
3008
3008
3009 return
3009 return
3010
3010
3011 def __refreshSpectraWindow(self, puObj):
3011 def __refreshSpectraWindow(self, puObj):
3012
3012
3013 inputId = puObj.getInputId()
3013 inputId = puObj.getInputId()
3014 inputPUObj = self.__puObjDict[inputId]
3014 inputPUObj = self.__puObjDict[inputId]
3015
3015
3016 if inputPUObj.datatype == 'Voltage':
3016 if inputPUObj.datatype == 'Voltage':
3017 self.specOpnFFTpoints.setEnabled(True)
3017 self.specOpnFFTpoints.setEnabled(True)
3018 self.specOpProfiles.setEnabled(True)
3018 self.specOpProfiles.setEnabled(True)
3019 self.specOpippFactor.setEnabled(True)
3019 self.specOpippFactor.setEnabled(True)
3020 else:
3020 else:
3021 self.specOpnFFTpoints.setEnabled(False)
3021 self.specOpnFFTpoints.setEnabled(False)
3022 self.specOpProfiles.setEnabled(False)
3022 self.specOpProfiles.setEnabled(False)
3023 self.specOpippFactor.setEnabled(False)
3023 self.specOpippFactor.setEnabled(False)
3024
3024
3025 opObj = puObj.getOperationObj(name='setRadarFrequency')
3025 opObj = puObj.getOperationObj(name='setRadarFrequency')
3026 if opObj == None:
3026 if opObj == None:
3027 self.specOpRadarfrequency.clear()
3027 self.specOpRadarfrequency.clear()
3028 self.specOpCebRadarfrequency.setCheckState(0)
3028 self.specOpCebRadarfrequency.setCheckState(0)
3029 else:
3029 else:
3030 value = opObj.getParameterValue(parameterName='frequency')
3030 value = opObj.getParameterValue(parameterName='frequency')
3031 value = str(float(value)/1e6)
3031 value = str(float(value)/1e6)
3032 self.specOpRadarfrequency.setText(value)
3032 self.specOpRadarfrequency.setText(value)
3033 self.specOpRadarfrequency.setEnabled(True)
3033 self.specOpRadarfrequency.setEnabled(True)
3034 self.specOpCebRadarfrequency.setCheckState(QtCore.Qt.Checked)
3034 self.specOpCebRadarfrequency.setCheckState(QtCore.Qt.Checked)
3035
3035
3036 opObj = puObj.getOperationObj(name="run")
3036 opObj = puObj.getOperationObj(name="run")
3037 if opObj == None:
3037 if opObj == None:
3038 self.specOpnFFTpoints.clear()
3038 self.specOpnFFTpoints.clear()
3039 self.specOpProfiles.clear()
3039 self.specOpProfiles.clear()
3040 self.specOpippFactor.clear()
3040 self.specOpippFactor.clear()
3041 else:
3041 else:
3042 parmObj = opObj.getParameterObj(parameterName='nFFTPoints')
3042 parmObj = opObj.getParameterObj(parameterName='nFFTPoints')
3043 if parmObj == None:
3043 if parmObj == None:
3044 self.specOpnFFTpoints.clear()
3044 self.specOpnFFTpoints.clear()
3045 else:
3045 else:
3046 self.specOpnFFTpoints.setEnabled(True)
3046 self.specOpnFFTpoints.setEnabled(True)
3047 value = opObj.getParameterValue(parameterName='nFFTPoints')
3047 value = opObj.getParameterValue(parameterName='nFFTPoints')
3048 self.specOpnFFTpoints.setText(str(value))
3048 self.specOpnFFTpoints.setText(str(value))
3049
3049
3050 parmObj = opObj.getParameterObj(parameterName='nProfiles')
3050 parmObj = opObj.getParameterObj(parameterName='nProfiles')
3051 if parmObj == None:
3051 if parmObj == None:
3052 self.specOpProfiles.clear()
3052 self.specOpProfiles.clear()
3053 else:
3053 else:
3054 self.specOpProfiles.setEnabled(True)
3054 self.specOpProfiles.setEnabled(True)
3055 value = opObj.getParameterValue(parameterName='nProfiles')
3055 value = opObj.getParameterValue(parameterName='nProfiles')
3056 self.specOpProfiles.setText(str(value))
3056 self.specOpProfiles.setText(str(value))
3057
3057
3058 parmObj = opObj.getParameterObj(parameterName='ippFactor')
3058 parmObj = opObj.getParameterObj(parameterName='ippFactor')
3059 if parmObj == None:
3059 if parmObj == None:
3060 self.specOpippFactor.clear()
3060 self.specOpippFactor.clear()
3061 else:
3061 else:
3062 self.specOpippFactor.setEnabled(True)
3062 self.specOpippFactor.setEnabled(True)
3063 value = opObj.getParameterValue(parameterName='ippFactor')
3063 value = opObj.getParameterValue(parameterName='ippFactor')
3064 self.specOpippFactor.setText(str(value))
3064 self.specOpippFactor.setText(str(value))
3065
3065
3066 opObj = puObj.getOperationObj(name="run")
3066 opObj = puObj.getOperationObj(name="run")
3067 if opObj == None:
3067 if opObj == None:
3068 self.specOppairsList.clear()
3068 self.specOppairsList.clear()
3069 self.specOpCebCrossSpectra.setCheckState(0)
3069 self.specOpCebCrossSpectra.setCheckState(0)
3070 else:
3070 else:
3071 parmObj = opObj.getParameterObj(parameterName='pairsList')
3071 parmObj = opObj.getParameterObj(parameterName='pairsList')
3072 if parmObj == None:
3072 if parmObj == None:
3073 self.specOppairsList.clear()
3073 self.specOppairsList.clear()
3074 self.specOpCebCrossSpectra.setCheckState(0)
3074 self.specOpCebCrossSpectra.setCheckState(0)
3075 else:
3075 else:
3076 value = opObj.getParameterValue(parameterName='pairsList')
3076 value = opObj.getParameterValue(parameterName='pairsList')
3077 value = str(value)[1:-1]
3077 value = str(value)[1:-1]
3078 self.specOppairsList.setText(str(value))
3078 self.specOppairsList.setText(str(value))
3079 self.specOppairsList.setEnabled(True)
3079 self.specOppairsList.setEnabled(True)
3080 self.specOpCebCrossSpectra.setCheckState(QtCore.Qt.Checked)
3080 self.specOpCebCrossSpectra.setCheckState(QtCore.Qt.Checked)
3081
3081
3082 opObj = puObj.getOperationObj(name="selectChannels")
3082 opObj = puObj.getOperationObj(name="selectChannels")
3083
3083
3084 if opObj == None:
3084 if opObj == None:
3085 opObj = puObj.getOperationObj(name="selectChannelsByIndex")
3085 opObj = puObj.getOperationObj(name="selectChannelsByIndex")
3086
3086
3087 if opObj == None:
3087 if opObj == None:
3088 self.specOpChannel.clear()
3088 self.specOpChannel.clear()
3089 self.specOpCebChannel.setCheckState(0)
3089 self.specOpCebChannel.setCheckState(0)
3090 else:
3090 else:
3091 channelEnabled = False
3091 channelEnabled = False
3092 try:
3092 try:
3093 value = opObj.getParameterValue(parameterName='channelList')
3093 value = opObj.getParameterValue(parameterName='channelList')
3094 value = str(value)[1:-1]
3094 value = str(value)[1:-1]
3095 channelEnabled = True
3095 channelEnabled = True
3096 channelMode = 0
3096 channelMode = 0
3097 except:
3097 except:
3098 pass
3098 pass
3099 try:
3099 try:
3100 value = opObj.getParameterValue(parameterName='channelIndexList')
3100 value = opObj.getParameterValue(parameterName='channelIndexList')
3101 value = str(value)[1:-1]
3101 value = str(value)[1:-1]
3102 channelEnabled = True
3102 channelEnabled = True
3103 channelMode = 1
3103 channelMode = 1
3104 except:
3104 except:
3105 pass
3105 pass
3106
3106
3107 if channelEnabled:
3107 if channelEnabled:
3108 self.specOpChannel.setText(value)
3108 self.specOpChannel.setText(value)
3109 self.specOpChannel.setEnabled(True)
3109 self.specOpChannel.setEnabled(True)
3110 self.specOpCebChannel.setCheckState(QtCore.Qt.Checked)
3110 self.specOpCebChannel.setCheckState(QtCore.Qt.Checked)
3111 self.specOpComChannel.setCurrentIndex(channelMode)
3111 self.specOpComChannel.setCurrentIndex(channelMode)
3112
3112
3113 opObj = puObj.getOperationObj(name="selectHeights")
3113 opObj = puObj.getOperationObj(name="selectHeights")
3114 if opObj == None:
3114 if opObj == None:
3115 self.specOpHeights.clear()
3115 self.specOpHeights.clear()
3116 self.specOpCebHeights.setCheckState(0)
3116 self.specOpCebHeights.setCheckState(0)
3117 else:
3117 else:
3118 value1 = int(opObj.getParameterValue(parameterName='minHei'))
3118 value1 = int(opObj.getParameterValue(parameterName='minHei'))
3119 value1 = str(value1)
3119 value1 = str(value1)
3120 value2 = int(opObj.getParameterValue(parameterName='maxHei'))
3120 value2 = int(opObj.getParameterValue(parameterName='maxHei'))
3121 value2 = str(value2)
3121 value2 = str(value2)
3122 value = value1 + "," + value2
3122 value = value1 + "," + value2
3123 self.specOpHeights.setText(value)
3123 self.specOpHeights.setText(value)
3124 self.specOpHeights.setEnabled(True)
3124 self.specOpHeights.setEnabled(True)
3125 self.specOpCebHeights.setCheckState(QtCore.Qt.Checked)
3125 self.specOpCebHeights.setCheckState(QtCore.Qt.Checked)
3126
3126
3127 opObj = puObj.getOperationObj(name="IncohInt")
3127 opObj = puObj.getOperationObj(name="IncohInt")
3128 if opObj == None:
3128 if opObj == None:
3129 self.specOpIncoherent.clear()
3129 self.specOpIncoherent.clear()
3130 self.specOpCebIncoherent.setCheckState(0)
3130 self.specOpCebIncoherent.setCheckState(0)
3131 else:
3131 else:
3132 for parmObj in opObj.getParameterObjList():
3132 for parmObj in opObj.getParameterObjList():
3133 if parmObj.name == 'timeInterval':
3133 if parmObj.name == 'timeInterval':
3134 value = opObj.getParameterValue(parameterName='timeInterval')
3134 value = opObj.getParameterValue(parameterName='timeInterval')
3135 value = float(value)
3135 value = float(value)
3136 self.specOpIncoherent.setText(str(value))
3136 self.specOpIncoherent.setText(str(value))
3137 self.specOpIncoherent.setEnabled(True)
3137 self.specOpIncoherent.setEnabled(True)
3138 self.specOpCebIncoherent.setCheckState(QtCore.Qt.Checked)
3138 self.specOpCebIncoherent.setCheckState(QtCore.Qt.Checked)
3139 self.specOpCobIncInt.setCurrentIndex(0)
3139 self.specOpCobIncInt.setCurrentIndex(0)
3140
3140
3141 if parmObj.name == 'n':
3141 if parmObj.name == 'n':
3142 value = opObj.getParameterValue(parameterName='n')
3142 value = opObj.getParameterValue(parameterName='n')
3143 value = float(value)
3143 value = float(value)
3144 self.specOpIncoherent.setText(str(value))
3144 self.specOpIncoherent.setText(str(value))
3145 self.specOpIncoherent.setEnabled(True)
3145 self.specOpIncoherent.setEnabled(True)
3146 self.specOpCebIncoherent.setCheckState(QtCore.Qt.Checked)
3146 self.specOpCebIncoherent.setCheckState(QtCore.Qt.Checked)
3147 self.specOpCobIncInt.setCurrentIndex(1)
3147 self.specOpCobIncInt.setCurrentIndex(1)
3148
3148
3149 opObj = puObj.getOperationObj(name="removeDC")
3149 opObj = puObj.getOperationObj(name="removeDC")
3150 if opObj == None:
3150 if opObj == None:
3151 self.specOpCebRemoveDC.setCheckState(0)
3151 self.specOpCebRemoveDC.setCheckState(0)
3152 else:
3152 else:
3153 self.specOpCebRemoveDC.setCheckState(QtCore.Qt.Checked)
3153 self.specOpCebRemoveDC.setCheckState(QtCore.Qt.Checked)
3154 value = opObj.getParameterValue(parameterName='mode')
3154 value = opObj.getParameterValue(parameterName='mode')
3155 if value == 1:
3155 if value == 1:
3156 self.specOpComRemoveDC.setCurrentIndex(0)
3156 self.specOpComRemoveDC.setCurrentIndex(0)
3157 elif value == 2:
3157 elif value == 2:
3158 self.specOpComRemoveDC.setCurrentIndex(1)
3158 self.specOpComRemoveDC.setCurrentIndex(1)
3159
3159
3160 opObj = puObj.getOperationObj(name="removeInterference")
3160 opObj = puObj.getOperationObj(name="removeInterference")
3161 if opObj == None:
3161 if opObj == None:
3162 self.specOpCebRemoveInt.setCheckState(0)
3162 self.specOpCebRemoveInt.setCheckState(0)
3163 else:
3163 else:
3164 self.specOpCebRemoveInt.setCheckState(QtCore.Qt.Checked)
3164 self.specOpCebRemoveInt.setCheckState(QtCore.Qt.Checked)
3165
3165
3166 opObj = puObj.getOperationObj(name='getNoise')
3166 opObj = puObj.getOperationObj(name='getNoise')
3167 if opObj == None:
3167 if opObj == None:
3168 self.specOpCebgetNoise.setCheckState(0)
3168 self.specOpCebgetNoise.setCheckState(0)
3169 self.specOpgetNoise.clear()
3169 self.specOpgetNoise.clear()
3170 else:
3170 else:
3171 self.specOpCebgetNoise.setCheckState(QtCore.Qt.Checked)
3171 self.specOpCebgetNoise.setCheckState(QtCore.Qt.Checked)
3172 parmObj = opObj.getParameterObj(parameterName='minHei')
3172 parmObj = opObj.getParameterObj(parameterName='minHei')
3173 if parmObj == None:
3173 if parmObj == None:
3174 self.specOpgetNoise.clear()
3174 self.specOpgetNoise.clear()
3175 value1 = None
3175 value1 = None
3176 else:
3176 else:
3177 value1 = opObj.getParameterValue(parameterName='minHei')
3177 value1 = opObj.getParameterValue(parameterName='minHei')
3178 value1 = str(value1)
3178 value1 = str(value1)
3179 parmObj = opObj.getParameterObj(parameterName='maxHei')
3179 parmObj = opObj.getParameterObj(parameterName='maxHei')
3180 if parmObj == None:
3180 if parmObj == None:
3181 value2 = None
3181 value2 = None
3182 value = value1
3182 value = value1
3183 self.specOpgetNoise.setText(value)
3183 self.specOpgetNoise.setText(value)
3184 self.specOpgetNoise.setEnabled(True)
3184 self.specOpgetNoise.setEnabled(True)
3185 else:
3185 else:
3186 value2 = opObj.getParameterValue(parameterName='maxHei')
3186 value2 = opObj.getParameterValue(parameterName='maxHei')
3187 value2 = str(value2)
3187 value2 = str(value2)
3188 parmObj = opObj.getParameterObj(parameterName='minVel')
3188 parmObj = opObj.getParameterObj(parameterName='minVel')
3189 if parmObj == None:
3189 if parmObj == None:
3190 value3 = None
3190 value3 = None
3191 value = value1 + "," + value2
3191 value = value1 + "," + value2
3192 self.specOpgetNoise.setText(value)
3192 self.specOpgetNoise.setText(value)
3193 self.specOpgetNoise.setEnabled(True)
3193 self.specOpgetNoise.setEnabled(True)
3194 else:
3194 else:
3195 value3 = opObj.getParameterValue(parameterName='minVel')
3195 value3 = opObj.getParameterValue(parameterName='minVel')
3196 value3 = str(value3)
3196 value3 = str(value3)
3197 parmObj = opObj.getParameterObj(parameterName='maxVel')
3197 parmObj = opObj.getParameterObj(parameterName='maxVel')
3198 if parmObj == None:
3198 if parmObj == None:
3199 value4 = None
3199 value4 = None
3200 value = value1 + "," + value2 + "," + value3
3200 value = value1 + "," + value2 + "," + value3
3201 self.specOpgetNoise.setText(value)
3201 self.specOpgetNoise.setText(value)
3202 self.specOpgetNoise.setEnabled(True)
3202 self.specOpgetNoise.setEnabled(True)
3203 else:
3203 else:
3204 value4 = opObj.getParameterValue(parameterName='maxVel')
3204 value4 = opObj.getParameterValue(parameterName='maxVel')
3205 value4 = str(value4)
3205 value4 = str(value4)
3206 value = value1 + "," + value2 + "," + value3 + ',' + value4
3206 value = value1 + "," + value2 + "," + value3 + ',' + value4
3207 self.specOpgetNoise.setText(value)
3207 self.specOpgetNoise.setText(value)
3208 self.specOpgetNoise.setEnabled(True)
3208 self.specOpgetNoise.setEnabled(True)
3209
3209
3210 self.specGraphPath.clear()
3210 self.specGraphPath.clear()
3211 self.specGraphPrefix.clear()
3211 self.specGraphPrefix.clear()
3212 self.specGgraphFreq.clear()
3212 self.specGgraphFreq.clear()
3213 self.specGgraphHeight.clear()
3213 self.specGgraphHeight.clear()
3214 self.specGgraphDbsrange.clear()
3214 self.specGgraphDbsrange.clear()
3215 self.specGgraphmagnitud.clear()
3215 self.specGgraphmagnitud.clear()
3216 self.specGgraphPhase.clear()
3216 self.specGgraphPhase.clear()
3217 self.specGgraphChannelList.clear()
3217 self.specGgraphChannelList.clear()
3218 self.specGgraphTminTmax.clear()
3218 self.specGgraphTminTmax.clear()
3219 self.specGgraphTimeRange.clear()
3219 self.specGgraphTimeRange.clear()
3220 self.specGgraphftpratio.clear()
3220 self.specGgraphftpratio.clear()
3221
3221
3222 opObj = puObj.getOperationObj(name='SpectraPlot')
3222 opObj = puObj.getOperationObj(name='SpectraPlot')
3223
3223
3224 if opObj == None:
3224 if opObj == None:
3225 self.specGraphCebSpectraplot.setCheckState(0)
3225 self.specGraphCebSpectraplot.setCheckState(0)
3226 self.specGraphSaveSpectra.setCheckState(0)
3226 self.specGraphSaveSpectra.setCheckState(0)
3227 self.specGraphftpSpectra.setCheckState(0)
3227 self.specGraphftpSpectra.setCheckState(0)
3228 else:
3228 else:
3229 operationSpectraPlot = "Enable"
3229 operationSpectraPlot = "Enable"
3230 self.specGraphCebSpectraplot.setCheckState(QtCore.Qt.Checked)
3230 self.specGraphCebSpectraplot.setCheckState(QtCore.Qt.Checked)
3231 parmObj = opObj.getParameterObj(parameterName='channelList')
3231 parmObj = opObj.getParameterObj(parameterName='channelList')
3232 if parmObj == None:
3232 if parmObj == None:
3233 self.specGgraphChannelList.clear()
3233 self.specGgraphChannelList.clear()
3234 else:
3234 else:
3235 value = opObj.getParameterValue(parameterName='channelList')
3235 value = opObj.getParameterValue(parameterName='channelList')
3236 channelListSpectraPlot = str(value)[1:-1]
3236 channelListSpectraPlot = str(value)[1:-1]
3237 self.specGgraphChannelList.setText(channelListSpectraPlot)
3237 self.specGgraphChannelList.setText(channelListSpectraPlot)
3238 self.specGgraphChannelList.setEnabled(True)
3238 self.specGgraphChannelList.setEnabled(True)
3239
3239
3240 parmObj = opObj.getParameterObj(parameterName='xmin')
3240 parmObj = opObj.getParameterObj(parameterName='xmin')
3241 if parmObj == None:
3241 if parmObj == None:
3242 self.specGgraphFreq.clear()
3242 self.specGgraphFreq.clear()
3243 else:
3243 else:
3244 value1 = opObj.getParameterValue(parameterName='xmin')
3244 value1 = opObj.getParameterValue(parameterName='xmin')
3245 value1 = str(value1)
3245 value1 = str(value1)
3246 value2 = opObj.getParameterValue(parameterName='xmax')
3246 value2 = opObj.getParameterValue(parameterName='xmax')
3247 value2 = str(value2)
3247 value2 = str(value2)
3248 value = value1 + "," + value2
3248 value = value1 + "," + value2
3249 self.specGgraphFreq.setText(value)
3249 self.specGgraphFreq.setText(value)
3250 self.specGgraphFreq.setEnabled(True)
3250 self.specGgraphFreq.setEnabled(True)
3251
3251
3252 parmObj = opObj.getParameterObj(parameterName='ymin')
3252 parmObj = opObj.getParameterObj(parameterName='ymin')
3253 if parmObj == None:
3253 if parmObj == None:
3254 self.specGgraphHeight.clear()
3254 self.specGgraphHeight.clear()
3255 else:
3255 else:
3256 value1 = opObj.getParameterValue(parameterName='ymin')
3256 value1 = opObj.getParameterValue(parameterName='ymin')
3257 value1 = str(value1)
3257 value1 = str(value1)
3258 value2 = opObj.getParameterValue(parameterName='ymax')
3258 value2 = opObj.getParameterValue(parameterName='ymax')
3259 value2 = str(value2)
3259 value2 = str(value2)
3260 value = value1 + "," + value2
3260 value = value1 + "," + value2
3261 self.specGgraphHeight.setText(value)
3261 self.specGgraphHeight.setText(value)
3262 self.specGgraphHeight.setEnabled(True)
3262 self.specGgraphHeight.setEnabled(True)
3263
3263
3264 parmObj = opObj.getParameterObj(parameterName='zmin')
3264 parmObj = opObj.getParameterObj(parameterName='zmin')
3265 if parmObj == None:
3265 if parmObj == None:
3266 self.specGgraphDbsrange.clear()
3266 self.specGgraphDbsrange.clear()
3267 else:
3267 else:
3268 value1 = opObj.getParameterValue(parameterName='zmin')
3268 value1 = opObj.getParameterValue(parameterName='zmin')
3269 value1 = str(value1)
3269 value1 = str(value1)
3270 value2 = opObj.getParameterValue(parameterName='zmax')
3270 value2 = opObj.getParameterValue(parameterName='zmax')
3271 value2 = str(value2)
3271 value2 = str(value2)
3272 value = value1 + "," + value2
3272 value = value1 + "," + value2
3273 self.specGgraphDbsrange.setText(value)
3273 self.specGgraphDbsrange.setText(value)
3274 self.specGgraphDbsrange.setEnabled(True)
3274 self.specGgraphDbsrange.setEnabled(True)
3275
3275
3276 parmObj = opObj.getParameterObj(parameterName="save")
3276 parmObj = opObj.getParameterObj(parameterName="save")
3277 if parmObj == None:
3277 if parmObj == None:
3278 self.specGraphSaveSpectra.setCheckState(0)
3278 self.specGraphSaveSpectra.setCheckState(0)
3279 else:
3279 else:
3280 self.specGraphSaveSpectra.setCheckState(QtCore.Qt.Checked)
3280 self.specGraphSaveSpectra.setCheckState(QtCore.Qt.Checked)
3281
3281
3282 parmObj = opObj.getParameterObj(parameterName="ftp")
3282 parmObj = opObj.getParameterObj(parameterName="ftp")
3283 if parmObj == None:
3283 if parmObj == None:
3284 self.specGraphftpSpectra.setCheckState(0)
3284 self.specGraphftpSpectra.setCheckState(0)
3285 else:
3285 else:
3286 self.specGraphftpSpectra.setCheckState(QtCore.Qt.Checked)
3286 self.specGraphftpSpectra.setCheckState(QtCore.Qt.Checked)
3287
3287
3288 parmObj = opObj.getParameterObj(parameterName="figpath")
3288 parmObj = opObj.getParameterObj(parameterName="figpath")
3289 if parmObj:
3289 if parmObj:
3290 value = parmObj.getValue()
3290 value = parmObj.getValue()
3291 self.specGraphPath.setText(value)
3291 self.specGraphPath.setText(value)
3292
3292
3293 parmObj = opObj.getParameterObj(parameterName="wr_period")
3293 parmObj = opObj.getParameterObj(parameterName="wr_period")
3294 if parmObj:
3294 if parmObj:
3295 value = parmObj.getValue()
3295 value = parmObj.getValue()
3296 self.specGgraphftpratio.setText(str(value))
3296 self.specGgraphftpratio.setText(str(value))
3297
3297
3298 opObj = puObj.getOperationObj(name='CrossSpectraPlot')
3298 opObj = puObj.getOperationObj(name='CrossSpectraPlot')
3299
3299
3300 if opObj == None:
3300 if opObj == None:
3301 self.specGraphCebCrossSpectraplot.setCheckState(0)
3301 self.specGraphCebCrossSpectraplot.setCheckState(0)
3302 self.specGraphSaveCross.setCheckState(0)
3302 self.specGraphSaveCross.setCheckState(0)
3303 self.specGraphftpCross.setCheckState(0)
3303 self.specGraphftpCross.setCheckState(0)
3304 else:
3304 else:
3305 operationCrossSpectraPlot = "Enable"
3305 operationCrossSpectraPlot = "Enable"
3306 self.specGraphCebCrossSpectraplot.setCheckState(QtCore.Qt.Checked)
3306 self.specGraphCebCrossSpectraplot.setCheckState(QtCore.Qt.Checked)
3307 parmObj = opObj.getParameterObj(parameterName='xmin')
3307 parmObj = opObj.getParameterObj(parameterName='xmin')
3308 if parmObj == None:
3308 if parmObj == None:
3309 self.specGgraphFreq.clear()
3309 self.specGgraphFreq.clear()
3310 else:
3310 else:
3311 value1 = opObj.getParameterValue(parameterName='xmin')
3311 value1 = opObj.getParameterValue(parameterName='xmin')
3312 value1 = str(value1)
3312 value1 = str(value1)
3313 value2 = opObj.getParameterValue(parameterName='xmax')
3313 value2 = opObj.getParameterValue(parameterName='xmax')
3314 value2 = str(value2)
3314 value2 = str(value2)
3315 value = value1 + "," + value2
3315 value = value1 + "," + value2
3316 self.specGgraphFreq.setText(value)
3316 self.specGgraphFreq.setText(value)
3317 self.specGgraphFreq.setEnabled(True)
3317 self.specGgraphFreq.setEnabled(True)
3318
3318
3319 parmObj = opObj.getParameterObj(parameterName='ymin')
3319 parmObj = opObj.getParameterObj(parameterName='ymin')
3320 if parmObj == None:
3320 if parmObj == None:
3321 self.specGgraphHeight.clear()
3321 self.specGgraphHeight.clear()
3322 else:
3322 else:
3323 value1 = opObj.getParameterValue(parameterName='ymin')
3323 value1 = opObj.getParameterValue(parameterName='ymin')
3324 value1 = str(value1)
3324 value1 = str(value1)
3325 value2 = opObj.getParameterValue(parameterName='ymax')
3325 value2 = opObj.getParameterValue(parameterName='ymax')
3326 value2 = str(value2)
3326 value2 = str(value2)
3327 value = value1 + "," + value2
3327 value = value1 + "," + value2
3328 self.specGgraphHeight.setText(value)
3328 self.specGgraphHeight.setText(value)
3329 self.specGgraphHeight.setEnabled(True)
3329 self.specGgraphHeight.setEnabled(True)
3330
3330
3331 parmObj = opObj.getParameterObj(parameterName='zmin')
3331 parmObj = opObj.getParameterObj(parameterName='zmin')
3332 if parmObj == None:
3332 if parmObj == None:
3333 self.specGgraphDbsrange.clear()
3333 self.specGgraphDbsrange.clear()
3334 else:
3334 else:
3335 value1 = opObj.getParameterValue(parameterName='zmin')
3335 value1 = opObj.getParameterValue(parameterName='zmin')
3336 value1 = str(value1)
3336 value1 = str(value1)
3337 value2 = opObj.getParameterValue(parameterName='zmax')
3337 value2 = opObj.getParameterValue(parameterName='zmax')
3338 value2 = str(value2)
3338 value2 = str(value2)
3339 value = value1 + "," + value2
3339 value = value1 + "," + value2
3340 self.specGgraphDbsrange.setText(value)
3340 self.specGgraphDbsrange.setText(value)
3341 self.specGgraphDbsrange.setEnabled(True)
3341 self.specGgraphDbsrange.setEnabled(True)
3342
3342
3343 parmObj = opObj.getParameterObj(parameterName='coh_min')
3343 parmObj = opObj.getParameterObj(parameterName='coh_min')
3344 if parmObj == None:
3344 if parmObj == None:
3345 self.specGgraphmagnitud.clear()
3345 self.specGgraphmagnitud.clear()
3346 else:
3346 else:
3347 value1 = opObj.getParameterValue(parameterName='coh_min')
3347 value1 = opObj.getParameterValue(parameterName='coh_min')
3348 value1 = str(value1)
3348 value1 = str(value1)
3349 value2 = opObj.getParameterValue(parameterName='coh_max')
3349 value2 = opObj.getParameterValue(parameterName='coh_max')
3350 value2 = str(value2)
3350 value2 = str(value2)
3351 value = value1 + "," + value2
3351 value = value1 + "," + value2
3352 self.specGgraphmagnitud.setText(value)
3352 self.specGgraphmagnitud.setText(value)
3353 self.specGgraphmagnitud.setEnabled(True)
3353 self.specGgraphmagnitud.setEnabled(True)
3354
3354
3355 parmObj = opObj.getParameterObj(parameterName='phase_min')
3355 parmObj = opObj.getParameterObj(parameterName='phase_min')
3356 if parmObj == None:
3356 if parmObj == None:
3357 self.specGgraphPhase.clear()
3357 self.specGgraphPhase.clear()
3358 else:
3358 else:
3359 value1 = opObj.getParameterValue(parameterName='phase_min')
3359 value1 = opObj.getParameterValue(parameterName='phase_min')
3360 value1 = str(value1)
3360 value1 = str(value1)
3361 value2 = opObj.getParameterValue(parameterName='phase_max')
3361 value2 = opObj.getParameterValue(parameterName='phase_max')
3362 value2 = str(value2)
3362 value2 = str(value2)
3363 value = value1 + "," + value2
3363 value = value1 + "," + value2
3364 self.specGgraphPhase.setText(value)
3364 self.specGgraphPhase.setText(value)
3365 self.specGgraphPhase.setEnabled(True)
3365 self.specGgraphPhase.setEnabled(True)
3366
3366
3367 parmObj = opObj.getParameterObj(parameterName="save")
3367 parmObj = opObj.getParameterObj(parameterName="save")
3368 if parmObj == None:
3368 if parmObj == None:
3369 self.specGraphSaveCross.setCheckState(0)
3369 self.specGraphSaveCross.setCheckState(0)
3370 else:
3370 else:
3371 self.specGraphSaveCross.setCheckState(QtCore.Qt.Checked)
3371 self.specGraphSaveCross.setCheckState(QtCore.Qt.Checked)
3372
3372
3373 parmObj = opObj.getParameterObj(parameterName="ftp")
3373 parmObj = opObj.getParameterObj(parameterName="ftp")
3374 if parmObj == None:
3374 if parmObj == None:
3375 self.specGraphftpCross.setCheckState(0)
3375 self.specGraphftpCross.setCheckState(0)
3376 else:
3376 else:
3377 self.specGraphftpCross.setCheckState(QtCore.Qt.Checked)
3377 self.specGraphftpCross.setCheckState(QtCore.Qt.Checked)
3378
3378
3379 parmObj = opObj.getParameterObj(parameterName="figpath")
3379 parmObj = opObj.getParameterObj(parameterName="figpath")
3380 if parmObj:
3380 if parmObj:
3381 value = parmObj.getValue()
3381 value = parmObj.getValue()
3382 self.specGraphPath.setText(value)
3382 self.specGraphPath.setText(value)
3383
3383
3384 parmObj = opObj.getParameterObj(parameterName="wr_period")
3384 parmObj = opObj.getParameterObj(parameterName="wr_period")
3385 if parmObj:
3385 if parmObj:
3386 value = parmObj.getValue()
3386 value = parmObj.getValue()
3387 self.specGgraphftpratio.setText(str(value))
3387 self.specGgraphftpratio.setText(str(value))
3388
3388
3389 opObj = puObj.getOperationObj(name='RTIPlot')
3389 opObj = puObj.getOperationObj(name='RTIPlot')
3390
3390
3391 if opObj == None:
3391 if opObj == None:
3392 self.specGraphCebRTIplot.setCheckState(0)
3392 self.specGraphCebRTIplot.setCheckState(0)
3393 self.specGraphSaveRTIplot.setCheckState(0)
3393 self.specGraphSaveRTIplot.setCheckState(0)
3394 self.specGraphftpRTIplot.setCheckState(0)
3394 self.specGraphftpRTIplot.setCheckState(0)
3395 else:
3395 else:
3396 self.specGraphCebRTIplot.setCheckState(QtCore.Qt.Checked)
3396 self.specGraphCebRTIplot.setCheckState(QtCore.Qt.Checked)
3397 parmObj = opObj.getParameterObj(parameterName='channelList')
3397 parmObj = opObj.getParameterObj(parameterName='channelList')
3398 if parmObj == None:
3398 if parmObj == None:
3399 self.specGgraphChannelList.clear()
3399 self.specGgraphChannelList.clear()
3400 else:
3400 else:
3401 value = opObj.getParameterValue(parameterName='channelList')
3401 value = opObj.getParameterValue(parameterName='channelList')
3402 channelListRTIPlot = str(value)[1:-1]
3402 channelListRTIPlot = str(value)[1:-1]
3403 self.specGgraphChannelList.setText(channelListRTIPlot)
3403 self.specGgraphChannelList.setText(channelListRTIPlot)
3404 self.specGgraphChannelList.setEnabled(True)
3404 self.specGgraphChannelList.setEnabled(True)
3405
3405
3406 parmObj = opObj.getParameterObj(parameterName='xmin')
3406 parmObj = opObj.getParameterObj(parameterName='xmin')
3407 if parmObj == None:
3407 if parmObj == None:
3408 self.specGgraphTminTmax.clear()
3408 self.specGgraphTminTmax.clear()
3409 else:
3409 else:
3410 value1 = opObj.getParameterValue(parameterName='xmin')
3410 value1 = opObj.getParameterValue(parameterName='xmin')
3411 value1 = str(value1)
3411 value1 = str(value1)
3412 value2 = opObj.getParameterValue(parameterName='xmax')
3412 value2 = opObj.getParameterValue(parameterName='xmax')
3413 value2 = str(value2)
3413 value2 = str(value2)
3414 value = value1 + "," + value2
3414 value = value1 + "," + value2
3415 self.specGgraphTminTmax.setText(value)
3415 self.specGgraphTminTmax.setText(value)
3416 self.specGgraphTminTmax.setEnabled(True)
3416 self.specGgraphTminTmax.setEnabled(True)
3417
3417
3418 parmObj = opObj.getParameterObj(parameterName='timerange')
3418 parmObj = opObj.getParameterObj(parameterName='timerange')
3419 if parmObj == None:
3419 if parmObj == None:
3420 self.specGgraphTimeRange.clear()
3420 self.specGgraphTimeRange.clear()
3421 else:
3421 else:
3422 value1 = opObj.getParameterValue(parameterName='timerange')
3422 value1 = opObj.getParameterValue(parameterName='timerange')
3423 value1 = str(value1)
3423 value1 = str(value1)
3424 self.specGgraphTimeRange.setText(value1)
3424 self.specGgraphTimeRange.setText(value1)
3425 self.specGgraphTimeRange.setEnabled(True)
3425 self.specGgraphTimeRange.setEnabled(True)
3426
3426
3427 parmObj = opObj.getParameterObj(parameterName='ymin')
3427 parmObj = opObj.getParameterObj(parameterName='ymin')
3428 if parmObj == None:
3428 if parmObj == None:
3429 self.specGgraphHeight.clear()
3429 self.specGgraphHeight.clear()
3430 else:
3430 else:
3431 value1 = opObj.getParameterValue(parameterName='ymin')
3431 value1 = opObj.getParameterValue(parameterName='ymin')
3432 value1 = str(value1)
3432 value1 = str(value1)
3433 value2 = opObj.getParameterValue(parameterName='ymax')
3433 value2 = opObj.getParameterValue(parameterName='ymax')
3434 value2 = str(value2)
3434 value2 = str(value2)
3435 value = value1 + "," + value2
3435 value = value1 + "," + value2
3436 self.specGgraphHeight.setText(value)
3436 self.specGgraphHeight.setText(value)
3437 self.specGgraphHeight.setEnabled(True)
3437 self.specGgraphHeight.setEnabled(True)
3438
3438
3439 parmObj = opObj.getParameterObj(parameterName='zmin')
3439 parmObj = opObj.getParameterObj(parameterName='zmin')
3440 if parmObj == None:
3440 if parmObj == None:
3441 self.specGgraphDbsrange.clear()
3441 self.specGgraphDbsrange.clear()
3442 else:
3442 else:
3443 value1 = opObj.getParameterValue(parameterName='zmin')
3443 value1 = opObj.getParameterValue(parameterName='zmin')
3444 value1 = str(value1)
3444 value1 = str(value1)
3445 value2 = opObj.getParameterValue(parameterName='zmax')
3445 value2 = opObj.getParameterValue(parameterName='zmax')
3446 value2 = str(value2)
3446 value2 = str(value2)
3447 value = value1 + "," + value2
3447 value = value1 + "," + value2
3448 self.specGgraphDbsrange.setText(value)
3448 self.specGgraphDbsrange.setText(value)
3449 self.specGgraphDbsrange.setEnabled(True)
3449 self.specGgraphDbsrange.setEnabled(True)
3450
3450
3451 parmObj = opObj.getParameterObj(parameterName="save")
3451 parmObj = opObj.getParameterObj(parameterName="save")
3452 if parmObj == None:
3452 if parmObj == None:
3453 self.specGraphSaveRTIplot.setCheckState(0)
3453 self.specGraphSaveRTIplot.setCheckState(0)
3454 else:
3454 else:
3455 self.specGraphSaveRTIplot.setCheckState(QtCore.Qt.Checked)
3455 self.specGraphSaveRTIplot.setCheckState(QtCore.Qt.Checked)
3456
3456
3457 parmObj = opObj.getParameterObj(parameterName="ftp")
3457 parmObj = opObj.getParameterObj(parameterName="ftp")
3458 if parmObj == None:
3458 if parmObj == None:
3459 self.specGraphftpRTIplot.setCheckState(0)
3459 self.specGraphftpRTIplot.setCheckState(0)
3460 else:
3460 else:
3461 self.specGraphftpRTIplot.setCheckState(QtCore.Qt.Checked)
3461 self.specGraphftpRTIplot.setCheckState(QtCore.Qt.Checked)
3462
3462
3463 parmObj = opObj.getParameterObj(parameterName="figpath")
3463 parmObj = opObj.getParameterObj(parameterName="figpath")
3464 if parmObj:
3464 if parmObj:
3465 value = parmObj.getValue()
3465 value = parmObj.getValue()
3466 self.specGraphPath.setText(value)
3466 self.specGraphPath.setText(value)
3467
3467
3468 parmObj = opObj.getParameterObj(parameterName="wr_period")
3468 parmObj = opObj.getParameterObj(parameterName="wr_period")
3469 if parmObj:
3469 if parmObj:
3470 value = parmObj.getValue()
3470 value = parmObj.getValue()
3471 self.specGgraphftpratio.setText(str(value))
3471 self.specGgraphftpratio.setText(str(value))
3472
3472
3473 opObj = puObj.getOperationObj(name='CoherenceMap')
3473 opObj = puObj.getOperationObj(name='CoherenceMap')
3474
3474
3475 if opObj == None:
3475 if opObj == None:
3476 self.specGraphCebCoherencmap.setCheckState(0)
3476 self.specGraphCebCoherencmap.setCheckState(0)
3477 self.specGraphSaveCoherencemap.setCheckState(0)
3477 self.specGraphSaveCoherencemap.setCheckState(0)
3478 self.specGraphftpCoherencemap.setCheckState(0)
3478 self.specGraphftpCoherencemap.setCheckState(0)
3479 else:
3479 else:
3480 operationCoherenceMap = "Enable"
3480 operationCoherenceMap = "Enable"
3481 self.specGraphCebCoherencmap.setCheckState(QtCore.Qt.Checked)
3481 self.specGraphCebCoherencmap.setCheckState(QtCore.Qt.Checked)
3482 parmObj = opObj.getParameterObj(parameterName='xmin')
3482 parmObj = opObj.getParameterObj(parameterName='xmin')
3483 if parmObj == None:
3483 if parmObj == None:
3484 self.specGgraphTminTmax.clear()
3484 self.specGgraphTminTmax.clear()
3485 else:
3485 else:
3486 value1 = opObj.getParameterValue(parameterName='xmin')
3486 value1 = opObj.getParameterValue(parameterName='xmin')
3487 value1 = str(value1)
3487 value1 = str(value1)
3488 value2 = opObj.getParameterValue(parameterName='xmax')
3488 value2 = opObj.getParameterValue(parameterName='xmax')
3489 value2 = str(value2)
3489 value2 = str(value2)
3490 value = value1 + "," + value2
3490 value = value1 + "," + value2
3491 self.specGgraphTminTmax.setText(value)
3491 self.specGgraphTminTmax.setText(value)
3492 self.specGgraphTminTmax.setEnabled(True)
3492 self.specGgraphTminTmax.setEnabled(True)
3493
3493
3494 parmObj = opObj.getParameterObj(parameterName='timerange')
3494 parmObj = opObj.getParameterObj(parameterName='timerange')
3495 if parmObj == None:
3495 if parmObj == None:
3496 self.specGgraphTimeRange.clear()
3496 self.specGgraphTimeRange.clear()
3497 else:
3497 else:
3498 value1 = opObj.getParameterValue(parameterName='timerange')
3498 value1 = opObj.getParameterValue(parameterName='timerange')
3499 value1 = str(value1)
3499 value1 = str(value1)
3500 self.specGgraphTimeRange.setText(value1)
3500 self.specGgraphTimeRange.setText(value1)
3501 self.specGgraphTimeRange.setEnabled(True)
3501 self.specGgraphTimeRange.setEnabled(True)
3502
3502
3503 parmObj = opObj.getParameterObj(parameterName='ymin')
3503 parmObj = opObj.getParameterObj(parameterName='ymin')
3504 if parmObj == None:
3504 if parmObj == None:
3505 self.specGgraphHeight.clear()
3505 self.specGgraphHeight.clear()
3506 else:
3506 else:
3507 value1 = opObj.getParameterValue(parameterName='ymin')
3507 value1 = opObj.getParameterValue(parameterName='ymin')
3508 value1 = str(value1)
3508 value1 = str(value1)
3509 value2 = opObj.getParameterValue(parameterName='ymax')
3509 value2 = opObj.getParameterValue(parameterName='ymax')
3510 value2 = str(value2)
3510 value2 = str(value2)
3511 value = value1 + "," + value2
3511 value = value1 + "," + value2
3512 self.specGgraphHeight.setText(value)
3512 self.specGgraphHeight.setText(value)
3513 self.specGgraphHeight.setEnabled(True)
3513 self.specGgraphHeight.setEnabled(True)
3514
3514
3515 parmObj = opObj.getParameterObj(parameterName='zmin')
3515 parmObj = opObj.getParameterObj(parameterName='zmin')
3516 if parmObj == None:
3516 if parmObj == None:
3517 self.specGgraphmagnitud.clear()
3517 self.specGgraphmagnitud.clear()
3518 else:
3518 else:
3519 value1 = opObj.getParameterValue(parameterName='zmin')
3519 value1 = opObj.getParameterValue(parameterName='zmin')
3520 value1 = str(value1)
3520 value1 = str(value1)
3521 value2 = opObj.getParameterValue(parameterName='zmax')
3521 value2 = opObj.getParameterValue(parameterName='zmax')
3522 value2 = str(value2)
3522 value2 = str(value2)
3523 value = value1 + "," + value2
3523 value = value1 + "," + value2
3524 self.specGgraphmagnitud.setText(value)
3524 self.specGgraphmagnitud.setText(value)
3525 self.specGgraphmagnitud.setEnabled(True)
3525 self.specGgraphmagnitud.setEnabled(True)
3526
3526
3527 parmObj = opObj.getParameterObj(parameterName='coh_min')
3527 parmObj = opObj.getParameterObj(parameterName='coh_min')
3528 if parmObj == None:
3528 if parmObj == None:
3529 self.specGgraphmagnitud.clear()
3529 self.specGgraphmagnitud.clear()
3530 else:
3530 else:
3531 value1 = opObj.getParameterValue(parameterName='coh_min')
3531 value1 = opObj.getParameterValue(parameterName='coh_min')
3532 value1 = str(value1)
3532 value1 = str(value1)
3533 value2 = opObj.getParameterValue(parameterName='coh_max')
3533 value2 = opObj.getParameterValue(parameterName='coh_max')
3534 value2 = str(value2)
3534 value2 = str(value2)
3535 value = value1 + "," + value2
3535 value = value1 + "," + value2
3536 self.specGgraphmagnitud.setText(value)
3536 self.specGgraphmagnitud.setText(value)
3537 self.specGgraphmagnitud.setEnabled(True)
3537 self.specGgraphmagnitud.setEnabled(True)
3538
3538
3539 parmObj = opObj.getParameterObj(parameterName='phase_min')
3539 parmObj = opObj.getParameterObj(parameterName='phase_min')
3540 if parmObj == None:
3540 if parmObj == None:
3541 self.specGgraphPhase.clear()
3541 self.specGgraphPhase.clear()
3542 else:
3542 else:
3543 value1 = opObj.getParameterValue(parameterName='phase_min')
3543 value1 = opObj.getParameterValue(parameterName='phase_min')
3544 value1 = str(value1)
3544 value1 = str(value1)
3545 value2 = opObj.getParameterValue(parameterName='phase_max')
3545 value2 = opObj.getParameterValue(parameterName='phase_max')
3546 value2 = str(value2)
3546 value2 = str(value2)
3547 value = value1 + "," + value2
3547 value = value1 + "," + value2
3548 self.specGgraphPhase.setText(value)
3548 self.specGgraphPhase.setText(value)
3549 self.specGgraphPhase.setEnabled(True)
3549 self.specGgraphPhase.setEnabled(True)
3550
3550
3551 parmObj = opObj.getParameterObj(parameterName="save")
3551 parmObj = opObj.getParameterObj(parameterName="save")
3552 if parmObj == None:
3552 if parmObj == None:
3553 self.specGraphSaveCoherencemap.setCheckState(0)
3553 self.specGraphSaveCoherencemap.setCheckState(0)
3554 else:
3554 else:
3555 self.specGraphSaveCoherencemap.setCheckState(QtCore.Qt.Checked)
3555 self.specGraphSaveCoherencemap.setCheckState(QtCore.Qt.Checked)
3556
3556
3557 parmObj = opObj.getParameterObj(parameterName="ftp")
3557 parmObj = opObj.getParameterObj(parameterName="ftp")
3558 if parmObj == None:
3558 if parmObj == None:
3559 self.specGraphftpCoherencemap.setCheckState(0)
3559 self.specGraphftpCoherencemap.setCheckState(0)
3560 else:
3560 else:
3561 self.specGraphftpCoherencemap.setCheckState(QtCore.Qt.Checked)
3561 self.specGraphftpCoherencemap.setCheckState(QtCore.Qt.Checked)
3562
3562
3563 parmObj = opObj.getParameterObj(parameterName="figpath")
3563 parmObj = opObj.getParameterObj(parameterName="figpath")
3564 if parmObj:
3564 if parmObj:
3565 value = parmObj.getValue()
3565 value = parmObj.getValue()
3566 self.specGraphPath.setText(value)
3566 self.specGraphPath.setText(value)
3567
3567
3568 parmObj = opObj.getParameterObj(parameterName="wr_period")
3568 parmObj = opObj.getParameterObj(parameterName="wr_period")
3569 if parmObj:
3569 if parmObj:
3570 value = parmObj.getValue()
3570 value = parmObj.getValue()
3571 self.specGgraphftpratio.setText(str(value))
3571 self.specGgraphftpratio.setText(str(value))
3572
3572
3573 opObj = puObj.getOperationObj(name='PowerProfilePlot')
3573 opObj = puObj.getOperationObj(name='PowerProfilePlot')
3574
3574
3575 if opObj == None:
3575 if opObj == None:
3576 self.specGraphPowerprofile.setCheckState(0)
3576 self.specGraphPowerprofile.setCheckState(0)
3577 self.specGraphSavePowerprofile.setCheckState(0)
3577 self.specGraphSavePowerprofile.setCheckState(0)
3578 self.specGraphftpPowerprofile.setCheckState(0)
3578 self.specGraphftpPowerprofile.setCheckState(0)
3579 operationPowerProfilePlot = "Disabled"
3579 operationPowerProfilePlot = "Disabled"
3580 channelList = None
3580 channelList = None
3581 freq_vel = None
3581 freq_vel = None
3582 heightsrange = None
3582 heightsrange = None
3583 else:
3583 else:
3584 operationPowerProfilePlot = "Enable"
3584 operationPowerProfilePlot = "Enable"
3585 self.specGraphPowerprofile.setCheckState(QtCore.Qt.Checked)
3585 self.specGraphPowerprofile.setCheckState(QtCore.Qt.Checked)
3586 parmObj = opObj.getParameterObj(parameterName='xmin')
3586 parmObj = opObj.getParameterObj(parameterName='xmin')
3587 if parmObj == None:
3587 if parmObj == None:
3588 self.specGgraphDbsrange.clear()
3588 self.specGgraphDbsrange.clear()
3589 else:
3589 else:
3590 value1 = opObj.getParameterValue(parameterName='xmin')
3590 value1 = opObj.getParameterValue(parameterName='xmin')
3591 value1 = str(value1)
3591 value1 = str(value1)
3592 value2 = opObj.getParameterValue(parameterName='xmax')
3592 value2 = opObj.getParameterValue(parameterName='xmax')
3593 value2 = str(value2)
3593 value2 = str(value2)
3594 value = value1 + "," + value2
3594 value = value1 + "," + value2
3595 self.specGgraphDbsrange.setText(value)
3595 self.specGgraphDbsrange.setText(value)
3596 self.specGgraphDbsrange.setEnabled(True)
3596 self.specGgraphDbsrange.setEnabled(True)
3597
3597
3598 parmObj = opObj.getParameterObj(parameterName='ymin')
3598 parmObj = opObj.getParameterObj(parameterName='ymin')
3599 if parmObj == None:
3599 if parmObj == None:
3600 self.specGgraphHeight.clear()
3600 self.specGgraphHeight.clear()
3601 else:
3601 else:
3602 value1 = opObj.getParameterValue(parameterName='ymin')
3602 value1 = opObj.getParameterValue(parameterName='ymin')
3603 value1 = str(value1)
3603 value1 = str(value1)
3604 value2 = opObj.getParameterValue(parameterName='ymax')
3604 value2 = opObj.getParameterValue(parameterName='ymax')
3605 value2 = str(value2)
3605 value2 = str(value2)
3606 value = value1 + "," + value2
3606 value = value1 + "," + value2
3607 self.specGgraphHeight.setText(value)
3607 self.specGgraphHeight.setText(value)
3608 self.specGgraphHeight.setEnabled(True)
3608 self.specGgraphHeight.setEnabled(True)
3609
3609
3610 parmObj = opObj.getParameterObj(parameterName="save")
3610 parmObj = opObj.getParameterObj(parameterName="save")
3611 if parmObj == None:
3611 if parmObj == None:
3612 self.specGraphSavePowerprofile.setCheckState(0)
3612 self.specGraphSavePowerprofile.setCheckState(0)
3613 else:
3613 else:
3614 self.specGraphSavePowerprofile.setCheckState(QtCore.Qt.Checked)
3614 self.specGraphSavePowerprofile.setCheckState(QtCore.Qt.Checked)
3615
3615
3616 parmObj = opObj.getParameterObj(parameterName="ftp")
3616 parmObj = opObj.getParameterObj(parameterName="ftp")
3617 if parmObj == None:
3617 if parmObj == None:
3618 self.specGraphftpPowerprofile.setCheckState(0)
3618 self.specGraphftpPowerprofile.setCheckState(0)
3619 else:
3619 else:
3620 self.specGraphftpPowerprofile.setCheckState(QtCore.Qt.Checked)
3620 self.specGraphftpPowerprofile.setCheckState(QtCore.Qt.Checked)
3621
3621
3622 parmObj = opObj.getParameterObj(parameterName="figpath")
3622 parmObj = opObj.getParameterObj(parameterName="figpath")
3623 if parmObj:
3623 if parmObj:
3624 value = parmObj.getValue()
3624 value = parmObj.getValue()
3625 self.specGraphPath.setText(value)
3625 self.specGraphPath.setText(value)
3626
3626
3627 parmObj = opObj.getParameterObj(parameterName="wr_period")
3627 parmObj = opObj.getParameterObj(parameterName="wr_period")
3628 if parmObj:
3628 if parmObj:
3629 value = parmObj.getValue()
3629 value = parmObj.getValue()
3630 self.specGgraphftpratio.setText(str(value))
3630 self.specGgraphftpratio.setText(str(value))
3631
3631
3632 opObj = puObj.getOperationObj(name='Noise')
3632 opObj = puObj.getOperationObj(name='Noise')
3633
3633
3634 if opObj == None:
3634 if opObj == None:
3635 self.specGraphCebRTInoise.setCheckState(0)
3635 self.specGraphCebRTInoise.setCheckState(0)
3636 self.specGraphSaveRTInoise.setCheckState(0)
3636 self.specGraphSaveRTInoise.setCheckState(0)
3637 self.specGraphftpRTInoise.setCheckState(0)
3637 self.specGraphftpRTInoise.setCheckState(0)
3638 else:
3638 else:
3639 self.specGraphCebRTInoise.setCheckState(QtCore.Qt.Checked)
3639 self.specGraphCebRTInoise.setCheckState(QtCore.Qt.Checked)
3640 parmObj = opObj.getParameterObj(parameterName='channelList')
3640 parmObj = opObj.getParameterObj(parameterName='channelList')
3641 if parmObj == None:
3641 if parmObj == None:
3642 self.specGgraphChannelList.clear()
3642 self.specGgraphChannelList.clear()
3643 else:
3643 else:
3644 value = opObj.getParameterValue(parameterName='channelList')
3644 value = opObj.getParameterValue(parameterName='channelList')
3645 channelListRTINoise = str(value)[1:-1]
3645 channelListRTINoise = str(value)[1:-1]
3646 self.specGgraphChannelList.setText(channelListRTINoise)
3646 self.specGgraphChannelList.setText(channelListRTINoise)
3647 self.specGgraphChannelList.setEnabled(True)
3647 self.specGgraphChannelList.setEnabled(True)
3648
3648
3649 parmObj = opObj.getParameterObj(parameterName='xmin')
3649 parmObj = opObj.getParameterObj(parameterName='xmin')
3650 if parmObj == None:
3650 if parmObj == None:
3651 self.specGgraphTminTmax.clear()
3651 self.specGgraphTminTmax.clear()
3652 else:
3652 else:
3653 value1 = opObj.getParameterValue(parameterName='xmin')
3653 value1 = opObj.getParameterValue(parameterName='xmin')
3654 value1 = str(value1)
3654 value1 = str(value1)
3655 value2 = opObj.getParameterValue(parameterName='xmax')
3655 value2 = opObj.getParameterValue(parameterName='xmax')
3656 value2 = str(value2)
3656 value2 = str(value2)
3657 value = value1 + "," + value2
3657 value = value1 + "," + value2
3658 self.specGgraphTminTmax.setText(value)
3658 self.specGgraphTminTmax.setText(value)
3659 self.specGgraphTminTmax.setEnabled(True)
3659 self.specGgraphTminTmax.setEnabled(True)
3660
3660
3661 parmObj = opObj.getParameterObj(parameterName='timerange')
3661 parmObj = opObj.getParameterObj(parameterName='timerange')
3662 if parmObj == None:
3662 if parmObj == None:
3663 self.specGgraphTimeRange.clear()
3663 self.specGgraphTimeRange.clear()
3664 else:
3664 else:
3665 value1 = opObj.getParameterValue(parameterName='timerange')
3665 value1 = opObj.getParameterValue(parameterName='timerange')
3666 value1 = str(value1)
3666 value1 = str(value1)
3667 self.specGgraphTimeRange.setText(value1)
3667 self.specGgraphTimeRange.setText(value1)
3668 self.specGgraphTimeRange.setEnabled(True)
3668 self.specGgraphTimeRange.setEnabled(True)
3669
3669
3670
3670
3671 parmObj = opObj.getParameterObj(parameterName='ymin')
3671 parmObj = opObj.getParameterObj(parameterName='ymin')
3672 if parmObj == None:
3672 if parmObj == None:
3673 self.specGgraphDbsrange.clear()
3673 self.specGgraphDbsrange.clear()
3674 else:
3674 else:
3675 value1 = opObj.getParameterValue(parameterName='ymin')
3675 value1 = opObj.getParameterValue(parameterName='ymin')
3676 value1 = str(value1)
3676 value1 = str(value1)
3677 value2 = opObj.getParameterValue(parameterName='ymax')
3677 value2 = opObj.getParameterValue(parameterName='ymax')
3678 value2 = str(value2)
3678 value2 = str(value2)
3679 value = value1 + "," + value2
3679 value = value1 + "," + value2
3680 self.specGgraphDbsrange.setText(value)
3680 self.specGgraphDbsrange.setText(value)
3681 self.specGgraphDbsrange.setEnabled(True)
3681 self.specGgraphDbsrange.setEnabled(True)
3682
3682
3683 parmObj = opObj.getParameterObj(parameterName="save")
3683 parmObj = opObj.getParameterObj(parameterName="save")
3684 if parmObj == None:
3684 if parmObj == None:
3685 self.specGraphSaveRTInoise.setCheckState(0)
3685 self.specGraphSaveRTInoise.setCheckState(0)
3686 else:
3686 else:
3687 self.specGraphSaveRTInoise.setCheckState(QtCore.Qt.Checked)
3687 self.specGraphSaveRTInoise.setCheckState(QtCore.Qt.Checked)
3688
3688
3689 parmObj = opObj.getParameterObj(parameterName="ftp")
3689 parmObj = opObj.getParameterObj(parameterName="ftp")
3690 if parmObj == None:
3690 if parmObj == None:
3691 self.specGraphftpRTInoise.setCheckState(0)
3691 self.specGraphftpRTInoise.setCheckState(0)
3692 else:
3692 else:
3693 self.specGraphftpRTInoise.setCheckState(QtCore.Qt.Checked)
3693 self.specGraphftpRTInoise.setCheckState(QtCore.Qt.Checked)
3694
3694
3695 parmObj = opObj.getParameterObj(parameterName="figpath")
3695 parmObj = opObj.getParameterObj(parameterName="figpath")
3696 if parmObj:
3696 if parmObj:
3697 value = parmObj.getValue()
3697 value = parmObj.getValue()
3698 self.specGraphPath.setText(value)
3698 self.specGraphPath.setText(value)
3699
3699
3700 parmObj = opObj.getParameterObj(parameterName="wr_period")
3700 parmObj = opObj.getParameterObj(parameterName="wr_period")
3701 if parmObj:
3701 if parmObj:
3702 value = parmObj.getValue()
3702 value = parmObj.getValue()
3703 self.specGgraphftpratio.setText(str(value))
3703 self.specGgraphftpratio.setText(str(value))
3704
3704
3705 opObj = puObj.getOperationObj(name='SpectraWriter')
3705 opObj = puObj.getOperationObj(name='SpectraWriter')
3706 if opObj == None:
3706 if opObj == None:
3707 self.specOutputPath.clear()
3707 self.specOutputPath.clear()
3708 self.specOutputblocksperfile.clear()
3708 self.specOutputblocksperfile.clear()
3709 else:
3709 else:
3710 value = opObj.getParameterObj(parameterName='path')
3710 value = opObj.getParameterObj(parameterName='path')
3711 if value == None:
3711 if value == None:
3712 self.specOutputPath.clear()
3712 self.specOutputPath.clear()
3713 else:
3713 else:
3714 value = opObj.getParameterValue(parameterName='path')
3714 value = opObj.getParameterValue(parameterName='path')
3715 path = str(value)
3715 path = str(value)
3716 self.specOutputPath.setText(path)
3716 self.specOutputPath.setText(path)
3717 value = opObj.getParameterObj(parameterName='blocksPerFile')
3717 value = opObj.getParameterObj(parameterName='blocksPerFile')
3718 if value == None:
3718 if value == None:
3719 self.specOutputblocksperfile.clear()
3719 self.specOutputblocksperfile.clear()
3720 else:
3720 else:
3721 value = opObj.getParameterValue(parameterName='blocksPerFile')
3721 value = opObj.getParameterValue(parameterName='blocksPerFile')
3722 blocksperfile = str(value)
3722 blocksperfile = str(value)
3723 self.specOutputblocksperfile.setText(blocksperfile)
3723 self.specOutputblocksperfile.setText(blocksperfile)
3724
3724
3725 return
3725 return
3726
3726
3727 def __refreshSpectraHeisWindow(self, puObj):
3727 def __refreshSpectraHeisWindow(self, puObj):
3728
3728
3729 opObj = puObj.getOperationObj(name="IncohInt4SpectraHeis")
3729 opObj = puObj.getOperationObj(name="IncohInt4SpectraHeis")
3730 if opObj == None:
3730 if opObj == None:
3731 self.specHeisOpIncoherent.clear()
3731 self.specHeisOpIncoherent.clear()
3732 self.specHeisOpCebIncoherent.setCheckState(0)
3732 self.specHeisOpCebIncoherent.setCheckState(0)
3733 else:
3733 else:
3734 for parmObj in opObj.getParameterObjList():
3734 for parmObj in opObj.getParameterObjList():
3735 if parmObj.name == 'timeInterval':
3735 if parmObj.name == 'timeInterval':
3736 value = opObj.getParameterValue(parameterName='timeInterval')
3736 value = opObj.getParameterValue(parameterName='timeInterval')
3737 value = float(value)
3737 value = float(value)
3738 self.specHeisOpIncoherent.setText(str(value))
3738 self.specHeisOpIncoherent.setText(str(value))
3739 self.specHeisOpIncoherent.setEnabled(True)
3739 self.specHeisOpIncoherent.setEnabled(True)
3740 self.specHeisOpCebIncoherent.setCheckState(QtCore.Qt.Checked)
3740 self.specHeisOpCebIncoherent.setCheckState(QtCore.Qt.Checked)
3741 self.specHeisOpCobIncInt.setCurrentIndex(0)
3741 self.specHeisOpCobIncInt.setCurrentIndex(0)
3742
3742
3743 # SpectraHeis Graph
3743 # SpectraHeis Graph
3744
3744
3745 self.specHeisGgraphXminXmax.clear()
3745 self.specHeisGgraphXminXmax.clear()
3746 self.specHeisGgraphYminYmax.clear()
3746 self.specHeisGgraphYminYmax.clear()
3747
3747
3748 self.specHeisGgraphChannelList.clear()
3748 self.specHeisGgraphChannelList.clear()
3749 self.specHeisGgraphTminTmax.clear()
3749 self.specHeisGgraphTminTmax.clear()
3750 self.specHeisGgraphTimeRange.clear()
3750 self.specHeisGgraphTimeRange.clear()
3751 self.specHeisGgraphftpratio.clear()
3751 self.specHeisGgraphftpratio.clear()
3752
3752
3753 opObj = puObj.getOperationObj(name='SpectraHeisScope')
3753 opObj = puObj.getOperationObj(name='SpectraHeisScope')
3754 if opObj == None:
3754 if opObj == None:
3755 self.specHeisGraphCebSpectraplot.setCheckState(0)
3755 self.specHeisGraphCebSpectraplot.setCheckState(0)
3756 self.specHeisGraphSaveSpectra.setCheckState(0)
3756 self.specHeisGraphSaveSpectra.setCheckState(0)
3757 self.specHeisGraphftpSpectra.setCheckState(0)
3757 self.specHeisGraphftpSpectra.setCheckState(0)
3758 else:
3758 else:
3759 operationSpectraHeisScope = "Enable"
3759 operationSpectraHeisScope = "Enable"
3760 self.specHeisGraphCebSpectraplot.setCheckState(QtCore.Qt.Checked)
3760 self.specHeisGraphCebSpectraplot.setCheckState(QtCore.Qt.Checked)
3761
3761
3762 parmObj = opObj.getParameterObj(parameterName='channelList')
3762 parmObj = opObj.getParameterObj(parameterName='channelList')
3763 if parmObj == None:
3763 if parmObj == None:
3764 self.specHeisGgraphChannelList.clear()
3764 self.specHeisGgraphChannelList.clear()
3765 else:
3765 else:
3766 value = opObj.getParameterValue(parameterName='channelList')
3766 value = opObj.getParameterValue(parameterName='channelList')
3767 channelListSpectraHeisScope = str(value)[1:-1]
3767 channelListSpectraHeisScope = str(value)[1:-1]
3768 self.specHeisGgraphChannelList.setText(channelListSpectraHeisScope)
3768 self.specHeisGgraphChannelList.setText(channelListSpectraHeisScope)
3769 self.specHeisGgraphChannelList.setEnabled(True)
3769 self.specHeisGgraphChannelList.setEnabled(True)
3770
3770
3771 parmObj = opObj.getParameterObj(parameterName='xmin')
3771 parmObj = opObj.getParameterObj(parameterName='xmin')
3772 if parmObj == None:
3772 if parmObj == None:
3773 self.specHeisGgraphXminXmax.clear()
3773 self.specHeisGgraphXminXmax.clear()
3774 else:
3774 else:
3775 value1 = opObj.getParameterValue(parameterName='xmin')
3775 value1 = opObj.getParameterValue(parameterName='xmin')
3776 value1 = str(value1)
3776 value1 = str(value1)
3777 value2 = opObj.getParameterValue(parameterName='xmax')
3777 value2 = opObj.getParameterValue(parameterName='xmax')
3778 value2 = str(value2)
3778 value2 = str(value2)
3779 value = value1 + "," + value2
3779 value = value1 + "," + value2
3780 self.specHeisGgraphXminXmax.setText(value)
3780 self.specHeisGgraphXminXmax.setText(value)
3781 self.specHeisGgraphXminXmax.setEnabled(True)
3781 self.specHeisGgraphXminXmax.setEnabled(True)
3782
3782
3783 parmObj = opObj.getParameterObj(parameterName='ymin')
3783 parmObj = opObj.getParameterObj(parameterName='ymin')
3784 if parmObj == None:
3784 if parmObj == None:
3785 self.specHeisGgraphYminYmax.clear()
3785 self.specHeisGgraphYminYmax.clear()
3786 else:
3786 else:
3787 value1 = opObj.getParameterValue(parameterName='ymin')
3787 value1 = opObj.getParameterValue(parameterName='ymin')
3788 value1 = str(value1)
3788 value1 = str(value1)
3789 value2 = opObj.getParameterValue(parameterName='ymax')
3789 value2 = opObj.getParameterValue(parameterName='ymax')
3790 value2 = str(value2)
3790 value2 = str(value2)
3791 value = value1 + "," + value2
3791 value = value1 + "," + value2
3792 self.specHeisGgraphYminYmax.setText(value)
3792 self.specHeisGgraphYminYmax.setText(value)
3793 self.specHeisGgraphYminYmax.setEnabled(True)
3793 self.specHeisGgraphYminYmax.setEnabled(True)
3794
3794
3795 parmObj = opObj.getParameterObj(parameterName="save")
3795 parmObj = opObj.getParameterObj(parameterName="save")
3796 if parmObj == None:
3796 if parmObj == None:
3797 self.specHeisGraphSaveSpectra.setCheckState(0)
3797 self.specHeisGraphSaveSpectra.setCheckState(0)
3798 else:
3798 else:
3799 self.specHeisGraphSaveSpectra.setCheckState(QtCore.Qt.Checked)
3799 self.specHeisGraphSaveSpectra.setCheckState(QtCore.Qt.Checked)
3800
3800
3801 parmObj = opObj.getParameterObj(parameterName="ftp")
3801 parmObj = opObj.getParameterObj(parameterName="ftp")
3802 if parmObj == None:
3802 if parmObj == None:
3803 self.specHeisGraphftpSpectra.setCheckState(0)
3803 self.specHeisGraphftpSpectra.setCheckState(0)
3804 else:
3804 else:
3805 self.specHeisGraphftpSpectra.setCheckState(QtCore.Qt.Checked)
3805 self.specHeisGraphftpSpectra.setCheckState(QtCore.Qt.Checked)
3806
3806
3807 parmObj = opObj.getParameterObj(parameterName="figpath")
3807 parmObj = opObj.getParameterObj(parameterName="figpath")
3808 if parmObj:
3808 if parmObj:
3809 value = parmObj.getValue()
3809 value = parmObj.getValue()
3810 self.specHeisGraphPath.setText(value)
3810 self.specHeisGraphPath.setText(value)
3811
3811
3812 parmObj = opObj.getParameterObj(parameterName="wr_period")
3812 parmObj = opObj.getParameterObj(parameterName="wr_period")
3813 if parmObj:
3813 if parmObj:
3814 value = parmObj.getValue()
3814 value = parmObj.getValue()
3815 self.specHeisGgraphftpratio.setText(str(value))
3815 self.specHeisGgraphftpratio.setText(str(value))
3816
3816
3817 opObj = puObj.getOperationObj(name='RTIfromSpectraHeis')
3817 opObj = puObj.getOperationObj(name='RTIfromSpectraHeis')
3818
3818
3819 if opObj == None:
3819 if opObj == None:
3820 self.specHeisGraphCebRTIplot.setCheckState(0)
3820 self.specHeisGraphCebRTIplot.setCheckState(0)
3821 self.specHeisGraphSaveRTIplot.setCheckState(0)
3821 self.specHeisGraphSaveRTIplot.setCheckState(0)
3822 self.specHeisGraphftpRTIplot.setCheckState(0)
3822 self.specHeisGraphftpRTIplot.setCheckState(0)
3823 else:
3823 else:
3824 self.specHeisGraphCebRTIplot.setCheckState(QtCore.Qt.Checked)
3824 self.specHeisGraphCebRTIplot.setCheckState(QtCore.Qt.Checked)
3825 parmObj = opObj.getParameterObj(parameterName='channelList')
3825 parmObj = opObj.getParameterObj(parameterName='channelList')
3826 if parmObj == None:
3826 if parmObj == None:
3827 self.specHeisGgraphChannelList.clear()
3827 self.specHeisGgraphChannelList.clear()
3828 else:
3828 else:
3829 value = opObj.getParameterValue(parameterName='channelList')
3829 value = opObj.getParameterValue(parameterName='channelList')
3830 channelListRTIPlot = str(value)[1:-1]
3830 channelListRTIPlot = str(value)[1:-1]
3831 self.specGgraphChannelList.setText(channelListRTIPlot)
3831 self.specGgraphChannelList.setText(channelListRTIPlot)
3832 self.specGgraphChannelList.setEnabled(True)
3832 self.specGgraphChannelList.setEnabled(True)
3833
3833
3834 parmObj = opObj.getParameterObj(parameterName='xmin')
3834 parmObj = opObj.getParameterObj(parameterName='xmin')
3835 if parmObj == None:
3835 if parmObj == None:
3836 self.specHeisGgraphTminTmax.clear()
3836 self.specHeisGgraphTminTmax.clear()
3837 else:
3837 else:
3838 value1 = opObj.getParameterValue(parameterName='xmin')
3838 value1 = opObj.getParameterValue(parameterName='xmin')
3839 value1 = str(value1)
3839 value1 = str(value1)
3840 value2 = opObj.getParameterValue(parameterName='xmax')
3840 value2 = opObj.getParameterValue(parameterName='xmax')
3841 value2 = str(value2)
3841 value2 = str(value2)
3842 value = value1 + "," + value2
3842 value = value1 + "," + value2
3843 self.specHeisGgraphTminTmax.setText(value)
3843 self.specHeisGgraphTminTmax.setText(value)
3844 self.specHeisGgraphTminTmax.setEnabled(True)
3844 self.specHeisGgraphTminTmax.setEnabled(True)
3845
3845
3846 parmObj = opObj.getParameterObj(parameterName='timerange')
3846 parmObj = opObj.getParameterObj(parameterName='timerange')
3847 if parmObj == None:
3847 if parmObj == None:
3848 self.specGgraphTimeRange.clear()
3848 self.specGgraphTimeRange.clear()
3849 else:
3849 else:
3850 value1 = opObj.getParameterValue(parameterName='timerange')
3850 value1 = opObj.getParameterValue(parameterName='timerange')
3851 value1 = str(value1)
3851 value1 = str(value1)
3852 self.specHeisGgraphTimeRange.setText(value1)
3852 self.specHeisGgraphTimeRange.setText(value1)
3853 self.specHeisGgraphTimeRange.setEnabled(True)
3853 self.specHeisGgraphTimeRange.setEnabled(True)
3854
3854
3855 parmObj = opObj.getParameterObj(parameterName='ymin')
3855 parmObj = opObj.getParameterObj(parameterName='ymin')
3856 if parmObj == None:
3856 if parmObj == None:
3857 self.specHeisGgraphYminYmax.clear()
3857 self.specHeisGgraphYminYmax.clear()
3858 else:
3858 else:
3859 value1 = opObj.getParameterValue(parameterName='ymin')
3859 value1 = opObj.getParameterValue(parameterName='ymin')
3860 value1 = str(value1)
3860 value1 = str(value1)
3861 value2 = opObj.getParameterValue(parameterName='ymax')
3861 value2 = opObj.getParameterValue(parameterName='ymax')
3862 value2 = str(value2)
3862 value2 = str(value2)
3863 value = value1 + "," + value2
3863 value = value1 + "," + value2
3864 self.specHeisGgraphYminYmax.setText(value)
3864 self.specHeisGgraphYminYmax.setText(value)
3865 self.specHeisGgraphYminYmax.setEnabled(True)
3865 self.specHeisGgraphYminYmax.setEnabled(True)
3866
3866
3867 parmObj = opObj.getParameterObj(parameterName="save")
3867 parmObj = opObj.getParameterObj(parameterName="save")
3868 if parmObj == None:
3868 if parmObj == None:
3869 self.specHeisGraphSaveRTIplot.setCheckState(0)
3869 self.specHeisGraphSaveRTIplot.setCheckState(0)
3870 else:
3870 else:
3871 self.specHeisGraphSaveRTIplot.setCheckState(QtCore.Qt.Checked)
3871 self.specHeisGraphSaveRTIplot.setCheckState(QtCore.Qt.Checked)
3872
3872
3873 parmObj = opObj.getParameterObj(parameterName="ftp")
3873 parmObj = opObj.getParameterObj(parameterName="ftp")
3874 if parmObj == None:
3874 if parmObj == None:
3875 self.specHeisGraphftpRTIplot.setCheckState(0)
3875 self.specHeisGraphftpRTIplot.setCheckState(0)
3876 else:
3876 else:
3877 self.specHeisGraphftpRTIplot.setCheckState(QtCore.Qt.Checked)
3877 self.specHeisGraphftpRTIplot.setCheckState(QtCore.Qt.Checked)
3878
3878
3879 parmObj = opObj.getParameterObj(parameterName="figpath")
3879 parmObj = opObj.getParameterObj(parameterName="figpath")
3880 if parmObj:
3880 if parmObj:
3881 value = parmObj.getValue()
3881 value = parmObj.getValue()
3882 self.specHeisGraphPath.setText(value)
3882 self.specHeisGraphPath.setText(value)
3883
3883
3884 parmObj = opObj.getParameterObj(parameterName="wr_period")
3884 parmObj = opObj.getParameterObj(parameterName="wr_period")
3885 if parmObj:
3885 if parmObj:
3886 value = parmObj.getValue()
3886 value = parmObj.getValue()
3887 self.specHeisGgraphftpratio.setText(str(value))
3887 self.specHeisGgraphftpratio.setText(str(value))
3888
3888
3889 # outputSpectraHeisWrite
3889 # outputSpectraHeisWrite
3890 opObj = puObj.getOperationObj(name='FitsWriter')
3890 opObj = puObj.getOperationObj(name='FitsWriter')
3891 if opObj == None:
3891 if opObj == None:
3892 self.specHeisOutputPath.clear()
3892 self.specHeisOutputPath.clear()
3893 self.specHeisOutputblocksperfile.clear()
3893 self.specHeisOutputblocksperfile.clear()
3894 self.specHeisOutputMetada.clear()
3894 self.specHeisOutputMetada.clear()
3895 else:
3895 else:
3896 value = opObj.getParameterObj(parameterName='path')
3896 value = opObj.getParameterObj(parameterName='path')
3897 if value == None:
3897 if value == None:
3898 self.specHeisOutputPath.clear()
3898 self.specHeisOutputPath.clear()
3899 else:
3899 else:
3900 value = opObj.getParameterValue(parameterName='path')
3900 value = opObj.getParameterValue(parameterName='path')
3901 path = str(value)
3901 path = str(value)
3902 self.specHeisOutputPath.setText(path)
3902 self.specHeisOutputPath.setText(path)
3903 value = opObj.getParameterObj(parameterName='dataBlocksPerFile')
3903 value = opObj.getParameterObj(parameterName='dataBlocksPerFile')
3904 if value == None:
3904 if value == None:
3905 self.specHeisOutputblocksperfile.clear()
3905 self.specHeisOutputblocksperfile.clear()
3906 else:
3906 else:
3907 value = opObj.getParameterValue(parameterName='dataBlocksPerFile')
3907 value = opObj.getParameterValue(parameterName='dataBlocksPerFile')
3908 blocksperfile = str(value)
3908 blocksperfile = str(value)
3909 self.specHeisOutputblocksperfile.setText(blocksperfile)
3909 self.specHeisOutputblocksperfile.setText(blocksperfile)
3910 value = opObj.getParameterObj(parameterName='metadatafile')
3910 value = opObj.getParameterObj(parameterName='metadatafile')
3911 if value == None:
3911 if value == None:
3912 self.specHeisOutputMetada.clear()
3912 self.specHeisOutputMetada.clear()
3913 else:
3913 else:
3914 value = opObj.getParameterValue(parameterName='metadatafile')
3914 value = opObj.getParameterValue(parameterName='metadatafile')
3915 metadata_file = str(value)
3915 metadata_file = str(value)
3916 self.specHeisOutputMetada.setText(metadata_file)
3916 self.specHeisOutputMetada.setText(metadata_file)
3917
3917
3918 return
3918 return
3919
3919
3920 def __refreshCorrelationWindow(self, puObj):
3920 def __refreshCorrelationWindow(self, puObj):
3921 pass
3921 pass
3922
3922
3923 def refreshPUWindow(self, puObj):
3923 def refreshPUWindow(self, puObj):
3924
3924
3925 if puObj.datatype == 'Voltage':
3925 if puObj.datatype == 'Voltage':
3926 self.__refreshVoltageWindow(puObj)
3926 self.__refreshVoltageWindow(puObj)
3927
3927
3928 if puObj.datatype == 'Spectra':
3928 if puObj.datatype == 'Spectra':
3929 self.__refreshSpectraWindow(puObj)
3929 self.__refreshSpectraWindow(puObj)
3930
3930
3931 if puObj.datatype == 'SpectraHeis':
3931 if puObj.datatype == 'SpectraHeis':
3932 self.__refreshSpectraHeisWindow(puObj)
3932 self.__refreshSpectraHeisWindow(puObj)
3933
3933
3934 def refreshProjectProperties(self, projectObjView):
3934 def refreshProjectProperties(self, projectObjView):
3935
3935
3936 propertyBuffObj = PropertyBuffer()
3936 propertyBuffObj = PropertyBuffer()
3937 name = projectObjView.name
3937 name = projectObjView.name
3938
3938
3939 propertyBuffObj.append("Properties", "Name", projectObjView.name),
3939 propertyBuffObj.append("Properties", "Name", projectObjView.name),
3940 propertyBuffObj.append("Properties", "Description", projectObjView.description)
3940 propertyBuffObj.append("Properties", "Description", projectObjView.description)
3941 propertyBuffObj.append("Properties", "Workspace", self.pathWorkSpace)
3941 propertyBuffObj.append("Properties", "Workspace", self.pathWorkSpace)
3942
3942
3943 readUnitObj = projectObjView.getReadUnitObj()
3943 readUnitObj = projectObjView.getReadUnitObj()
3944 runOperationObj = readUnitObj.getOperationObj(name='run')
3944 runOperationObj = readUnitObj.getOperationObj(name='run')
3945
3945
3946 for thisParmObj in runOperationObj.getParameterObjList():
3946 for thisParmObj in runOperationObj.getParameterObjList():
3947 propertyBuffObj.append("Reading parms", thisParmObj.name, str(thisParmObj.getValue()))
3947 propertyBuffObj.append("Reading parms", thisParmObj.name, str(thisParmObj.getValue()))
3948
3948
3949 propertiesModel = propertyBuffObj.getPropertyModel()
3949 propertiesModel = propertyBuffObj.getPropertyModel()
3950
3950
3951 self.treeProjectProperties.setModel(propertiesModel)
3951 self.treeProjectProperties.setModel(propertiesModel)
3952 self.treeProjectProperties.expandAll()
3952 self.treeProjectProperties.expandAll()
3953 self.treeProjectProperties.resizeColumnToContents(0)
3953 self.treeProjectProperties.resizeColumnToContents(0)
3954 self.treeProjectProperties.resizeColumnToContents(1)
3954 self.treeProjectProperties.resizeColumnToContents(1)
3955
3955
3956 def refreshPUProperties(self, puObjView):
3956 def refreshPUProperties(self, puObjView):
3957
3957
3958 ############ FTP CONFIG ################################
3958 ############ FTP CONFIG ################################
3959 #Deleting FTP Conf. This processing unit have not got any
3959 #Deleting FTP Conf. This processing unit have not got any
3960 #FTP configuration by default
3960 #FTP configuration by default
3961 if puObjView.id in self.__puLocalFolder2FTP.keys():
3961 if puObjView.id in self.__puLocalFolder2FTP.keys():
3962 self.__puLocalFolder2FTP.pop(puObjView.id)
3962 self.__puLocalFolder2FTP.pop(puObjView.id)
3963 ########################################################
3963 ########################################################
3964
3964
3965 propertyBuffObj = PropertyBuffer()
3965 propertyBuffObj = PropertyBuffer()
3966
3966
3967 for thisOp in puObjView.getOperationObjList():
3967 for thisOp in puObjView.getOperationObjList():
3968
3968
3969 operationName = thisOp.name
3969 operationName = thisOp.name
3970
3970
3971 if operationName == 'run':
3971 if operationName == 'run':
3972 operationName = 'Properties'
3972 operationName = 'Properties'
3973
3973
3974 else:
3974 else:
3975 if not thisOp.getParameterObjList():
3975 if not thisOp.getParameterObjList():
3976 propertyBuffObj.append(operationName, '--', '--')
3976 propertyBuffObj.append(operationName, '--', '--')
3977 continue
3977 continue
3978
3978
3979 for thisParmObj in thisOp.getParameterObjList():
3979 for thisParmObj in thisOp.getParameterObjList():
3980 propertyBuffObj.append(operationName, thisParmObj.name, str(thisParmObj.getValue()))
3980 propertyBuffObj.append(operationName, thisParmObj.name, str(thisParmObj.getValue()))
3981
3981
3982 ############ FTP CONFIG ################################
3982 ############ FTP CONFIG ################################
3983 if thisParmObj.name == "ftp_wei" and thisParmObj.getValue():
3983 if thisParmObj.name == "ftp_wei" and thisParmObj.getValue():
3984 value = thisParmObj.getValue()
3984 value = thisParmObj.getValue()
3985 self.temporalFTP.ftp_wei = value
3985 self.temporalFTP.ftp_wei = value
3986
3986
3987 if thisParmObj.name == "exp_code" and thisParmObj.getValue():
3987 if thisParmObj.name == "exp_code" and thisParmObj.getValue():
3988 value = thisParmObj.getValue()
3988 value = thisParmObj.getValue()
3989 self.temporalFTP.exp_code = value
3989 self.temporalFTP.exp_code = value
3990
3990
3991 if thisParmObj.name == "sub_exp_code" and thisParmObj.getValue():
3991 if thisParmObj.name == "sub_exp_code" and thisParmObj.getValue():
3992 value = thisParmObj.getValue()
3992 value = thisParmObj.getValue()
3993 self.temporalFTP.sub_exp_code = value
3993 self.temporalFTP.sub_exp_code = value
3994
3994
3995 if thisParmObj.name == "plot_pos" and thisParmObj.getValue():
3995 if thisParmObj.name == "plot_pos" and thisParmObj.getValue():
3996 value = thisParmObj.getValue()
3996 value = thisParmObj.getValue()
3997 self.temporalFTP.plot_pos = value
3997 self.temporalFTP.plot_pos = value
3998
3998
3999 if thisParmObj.name == 'ftp' and thisParmObj.getValue():
3999 if thisParmObj.name == 'ftp' and thisParmObj.getValue():
4000 figpathObj = thisOp.getParameterObj('figpath')
4000 figpathObj = thisOp.getParameterObj('figpath')
4001 if figpathObj:
4001 if figpathObj:
4002 self.__puLocalFolder2FTP[puObjView.id] = figpathObj.getValue()
4002 self.__puLocalFolder2FTP[puObjView.id] = figpathObj.getValue()
4003
4003
4004 ########################################################
4004 ########################################################
4005
4005
4006 propertiesModel = propertyBuffObj.getPropertyModel()
4006 propertiesModel = propertyBuffObj.getPropertyModel()
4007
4007
4008 self.treeProjectProperties.setModel(propertiesModel)
4008 self.treeProjectProperties.setModel(propertiesModel)
4009 self.treeProjectProperties.expandAll()
4009 self.treeProjectProperties.expandAll()
4010 self.treeProjectProperties.resizeColumnToContents(0)
4010 self.treeProjectProperties.resizeColumnToContents(0)
4011 self.treeProjectProperties.resizeColumnToContents(1)
4011 self.treeProjectProperties.resizeColumnToContents(1)
4012
4012
4013 def refreshGraphicsId(self):
4013 def refreshGraphicsId(self):
4014
4014
4015 projectObj = self.getSelectedProjectObj()
4015 projectObj = self.getSelectedProjectObj()
4016
4016
4017 if not projectObj:
4017 if not projectObj:
4018 return
4018 return
4019
4019
4020 for idPU, puObj in projectObj.procUnitConfObjDict.items():
4020 for idPU, puObj in projectObj.procUnitConfObjDict.items():
4021
4021
4022 for opObj in puObj.getOperationObjList():
4022 for opObj in puObj.getOperationObjList():
4023
4023
4024 if opObj.name not in ('Scope', 'SpectraPlot', 'CrossSpectraPlot', 'RTIPlot', 'CoherenceMap', 'PowerProfilePlot', 'Noise', 'SpectraHeisScope', 'RTIfromSpectraHeis'):
4024 if opObj.name not in ('Scope', 'SpectraPlot', 'CrossSpectraPlot', 'RTIPlot', 'CoherenceMap', 'PowerProfilePlot', 'Noise', 'SpectraHeisScope', 'RTIfromSpectraHeis'):
4025 continue
4025 continue
4026
4026
4027 opObj.changeParameter(name='id', value=opObj.id, format='int')
4027 opObj.changeParameter(name='id', value=opObj.id, format='int')
4028
4028
4029 def on_click(self, index):
4029 def on_click(self, index):
4030
4030
4031 self.selectedItemTree = self.projectExplorerModel.itemFromIndex(index)
4031 self.selectedItemTree = self.projectExplorerModel.itemFromIndex(index)
4032
4032
4033 projectObjView = self.getSelectedProjectObj()
4033 projectObjView = self.getSelectedProjectObj()
4034
4034
4035 if not projectObjView:
4035 if not projectObjView:
4036 return
4036 return
4037
4037
4038 self.create = False
4038 self.create = False
4039 selectedObjView = self.getSelectedItemObj()
4039 selectedObjView = self.getSelectedItemObj()
4040
4040
4041 #A project has been selected
4041 #A project has been selected
4042 if projectObjView == selectedObjView:
4042 if projectObjView == selectedObjView:
4043
4043
4044 self.refreshProjectWindow(projectObjView)
4044 self.refreshProjectWindow(projectObjView)
4045 self.refreshProjectProperties(projectObjView)
4045 self.refreshProjectProperties(projectObjView)
4046
4046
4047 self.tabProject.setEnabled(True)
4047 self.tabProject.setEnabled(True)
4048 self.tabVoltage.setEnabled(False)
4048 self.tabVoltage.setEnabled(False)
4049 self.tabSpectra.setEnabled(False)
4049 self.tabSpectra.setEnabled(False)
4050 self.tabCorrelation.setEnabled(False)
4050 self.tabCorrelation.setEnabled(False)
4051 self.tabSpectraHeis.setEnabled(False)
4051 self.tabSpectraHeis.setEnabled(False)
4052 self.tabWidgetProject.setCurrentWidget(self.tabProject)
4052 self.tabWidgetProject.setCurrentWidget(self.tabProject)
4053
4053
4054 return
4054 return
4055
4055
4056 #A processing unit has been selected
4056 #A processing unit has been selected
4057 voltEnable = False
4057 voltEnable = False
4058 specEnable = False
4058 specEnable = False
4059 corrEnable = False
4059 corrEnable = False
4060 specHeisEnable = False
4060 specHeisEnable = False
4061 tabSelected = self.tabProject
4061 tabSelected = self.tabProject
4062
4062
4063 puObj = selectedObjView
4063 puObj = selectedObjView
4064
4064
4065 self.refreshPUWindow(puObj)
4065 self.refreshPUWindow(puObj)
4066 self.refreshPUProperties(puObj)
4066 self.refreshPUProperties(puObj)
4067 self.showtabPUCreated(puObj.datatype)
4067 self.showtabPUCreated(puObj.datatype)
4068
4068
4069 def on_right_click(self, pos):
4069 def on_right_click(self, pos):
4070
4070
4071 self.menu = QtGui.QMenu()
4071 self.menu = QtGui.QMenu()
4072 quitAction0 = self.menu.addAction("Create a New Project")
4072 quitAction0 = self.menu.addAction("Create a New Project")
4073 quitAction1 = self.menu.addAction("Create a New Processing Unit")
4073 quitAction1 = self.menu.addAction("Create a New Processing Unit")
4074 quitAction2 = self.menu.addAction("Delete Item")
4074 quitAction2 = self.menu.addAction("Delete Item")
4075 quitAction3 = self.menu.addAction("Quit")
4075 quitAction3 = self.menu.addAction("Quit")
4076
4076
4077 if len(self.__itemTreeDict) == 0:
4077 if len(self.__itemTreeDict) == 0:
4078 quitAction2.setEnabled(False)
4078 quitAction2.setEnabled(False)
4079 else:
4079 else:
4080 quitAction2.setEnabled(True)
4080 quitAction2.setEnabled(True)
4081
4081
4082 action = self.menu.exec_(self.mapToGlobal(pos))
4082 action = self.menu.exec_(self.mapToGlobal(pos))
4083
4083
4084 if action == quitAction0:
4084 if action == quitAction0:
4085 self. setInputsProject_View()
4085 self. setInputsProject_View()
4086 self.create = True
4086 self.create = True
4087
4087
4088 if action == quitAction1:
4088 if action == quitAction1:
4089 if len(self.__projectObjDict) == 0:
4089 if len(self.__projectObjDict) == 0:
4090 outputstr = "You need to create a Project before adding a Processing Unit"
4090 outputstr = "You need to create a Project before adding a Processing Unit"
4091 self.console.clear()
4091 self.console.clear()
4092 self.console.append(outputstr)
4092 self.console.append(outputstr)
4093 return 0
4093 return 0
4094 else:
4094 else:
4095 self.addPUWindow()
4095 self.addPUWindow()
4096 self.console.clear()
4096 self.console.clear()
4097 self.console.append("Please, Choose the type of Processing Unit")
4097 self.console.append("Please, Choose the type of Processing Unit")
4098 # self.console.append("If your Datatype is rawdata, you will start with processing unit Type Voltage")
4098 # self.console.append("If your Datatype is rawdata, you will start with processing unit Type Voltage")
4099 # self.console.append("If your Datatype is pdata, you will choose between processing unit Type Spectra or Correlation")
4099 # self.console.append("If your Datatype is pdata, you will choose between processing unit Type Spectra or Correlation")
4100 # self.console.append("If your Datatype is fits, you will start with processing unit Type SpectraHeis")
4100 # self.console.append("If your Datatype is fits, you will start with processing unit Type SpectraHeis")
4101
4101
4102 if action == quitAction2:
4102 if action == quitAction2:
4103 index = self.selectedItemTree
4103 index = self.selectedItemTree
4104 try:
4104 try:
4105 index.parent()
4105 index.parent()
4106 except:
4106 except:
4107 self.console.append('Please first select a Project or Processing Unit')
4107 self.console.append('Please first select a Project or Processing Unit')
4108 return 0
4108 return 0
4109 # print index.parent(),index
4109 # print index.parent(),index
4110 if index.parent() == None:
4110 if index.parent() == None:
4111 self.projectExplorerModel.removeRow(index.row())
4111 self.projectExplorerModel.removeRow(index.row())
4112 else:
4112 else:
4113 index.parent().removeRow(index.row())
4113 index.parent().removeRow(index.row())
4114 self.removeItemTreeFromProject()
4114 self.removeItemTreeFromProject()
4115 self.console.clear()
4115 self.console.clear()
4116 # for i in self.projectExplorerTree.selectionModel().selection().indexes():
4116 # for i in self.projectExplorerTree.selectionModel().selection().indexes():
4117 # print i.row()
4117 # print i.row()
4118
4118
4119 if action == quitAction3:
4119 if action == quitAction3:
4120 self.close()
4120 self.close()
4121 return 0
4121 return 0
4122
4122
4123 def createProjectView(self, id):
4123 def createProjectView(self, id):
4124
4124
4125 # project_name, description, datatype, data_path, starDate, endDate, startTime, endTime, online, delay, walk, set = self.getParmsFromProjectWindow()
4125 # project_name, description, datatype, data_path, starDate, endDate, startTime, endTime, online, delay, walk, set = self.getParmsFromProjectWindow()
4126 id = str(id)
4126 id = str(id)
4127 projectParms = self.__getParmsFromProjectWindow()
4127 projectParms = self.__getParmsFromProjectWindow()
4128
4128
4129 if not projectParms.isValid():
4129 if not projectParms.isValid():
4130 return None
4130 return None
4131
4131
4132 projectObjView = Project()
4132 projectObjView = Project()
4133 projectObjView.setup(id=id, name=projectParms.name, description=projectParms.description)
4133 projectObjView.setup(id=id, name=projectParms.name, description=projectParms.description)
4134
4134
4135 self.__projectObjDict[id] = projectObjView
4135 self.__projectObjDict[id] = projectObjView
4136 self.addProject2ProjectExplorer(id=id, name=projectObjView.name)
4136 self.addProject2ProjectExplorer(id=id, name=projectObjView.name)
4137
4137
4138 return projectObjView
4138 return projectObjView
4139
4139
4140 def updateProjectView(self):
4140 def updateProjectView(self):
4141
4141
4142 # project_name, description, datatype, data_path, starDate, endDate, startTime, endTime, online, delay, walk, set = self.getParmsFromProjectWindow()
4142 # project_name, description, datatype, data_path, starDate, endDate, startTime, endTime, online, delay, walk, set = self.getParmsFromProjectWindow()
4143
4143
4144 projectParms = self.__getParmsFromProjectWindow()
4144 projectParms = self.__getParmsFromProjectWindow()
4145
4145
4146 if not projectParms.isValid():
4146 if not projectParms.isValid():
4147 return None
4147 return None
4148
4148
4149 projectObjView = self.getSelectedProjectObj()
4149 projectObjView = self.getSelectedProjectObj()
4150
4150
4151 if not projectObjView:
4151 if not projectObjView:
4152 self.console.append("Please select a project before update it")
4152 self.console.append("Please select a project before update it")
4153 return None
4153 return None
4154
4154
4155 projectObjView.update(name=projectParms.name, description=projectParms.description)
4155 projectObjView.update(name=projectParms.name, description=projectParms.description)
4156
4156
4157 return projectObjView
4157 return projectObjView
4158
4158
4159 def createReadUnitView(self, projectObjView):
4159 def createReadUnitView(self, projectObjView):
4160
4160
4161 # project_name, description, datatype, data_path, startDate, endDate, startTime, endTime, online, delay, walk, set = self.getParmsFromProjectWindow()
4161 # project_name, description, datatype, data_path, startDate, endDate, startTime, endTime, online, delay, walk, set = self.getParmsFromProjectWindow()
4162
4162
4163 projectParms = self.__getParmsFromProjectWindow()
4163 projectParms = self.__getParmsFromProjectWindow()
4164
4164
4165 if not projectParms.isValid():
4165 if not projectParms.isValid():
4166 return None
4166 return None
4167
4167
4168 if projectParms.datatype in ("Voltage", "Spectra", "Fits"):
4168 if projectParms.datatype in ("Voltage", "Spectra", "Fits"):
4169 readUnitConfObj = projectObjView.addReadUnit(datatype=projectParms.datatype,
4169 readUnitConfObj = projectObjView.addReadUnit(datatype=projectParms.datatype,
4170 path=projectParms.dpath,
4170 path=projectParms.dpath,
4171 startDate=projectParms.startDate,
4171 startDate=projectParms.startDate,
4172 endDate=projectParms.endDate,
4172 endDate=projectParms.endDate,
4173 startTime=projectParms.startTime,
4173 startTime=projectParms.startTime,
4174 endTime=projectParms.endTime,
4174 endTime=projectParms.endTime,
4175 online=projectParms.online,
4175 online=projectParms.online,
4176 walk=projectParms.walk
4176 walk=projectParms.walk
4177 )
4177 )
4178
4178
4179 if projectParms.set:
4179 if projectParms.set:
4180 readUnitConfObj.addParameter(name="set", value=projectParms.set, format="int")
4180 readUnitConfObj.addParameter(name="set", value=projectParms.set, format="int")
4181
4181
4182 if projectParms.delay:
4182 if projectParms.delay:
4183 readUnitConfObj.addParameter(name="delay", value=projectParms.delay, format="int")
4183 readUnitConfObj.addParameter(name="delay", value=projectParms.delay, format="int")
4184
4184
4185 if projectParms.expLabel:
4185 if projectParms.expLabel:
4186 readUnitConfObj.addParameter(name="expLabel", value=projectParms.expLabel)
4186 readUnitConfObj.addParameter(name="expLabel", value=projectParms.expLabel)
4187
4187
4188 readUnitConfObj.addOperation(name="printInfo")
4188 readUnitConfObj.addOperation(name="printInfo")
4189
4189
4190 if projectParms.datatype == "USRP":
4190 if projectParms.datatype == "USRP":
4191 readUnitConfObj = projectObjView.addReadUnit(datatype=projectParms.datatype,
4191 readUnitConfObj = projectObjView.addReadUnit(datatype=projectParms.datatype,
4192 path=projectParms.dpath,
4192 path=projectParms.dpath,
4193 startDate=projectParms.startDate,
4193 startDate=projectParms.startDate,
4194 endDate=projectParms.endDate,
4194 endDate=projectParms.endDate,
4195 startTime=projectParms.startTime,
4195 startTime=projectParms.startTime,
4196 endTime=projectParms.endTime,
4196 endTime=projectParms.endTime,
4197 online=projectParms.online,
4197 online=projectParms.online,
4198 ippKm=projectParms.ippKm
4198 ippKm=projectParms.ippKm
4199 )
4199 )
4200
4200
4201 if projectParms.delay:
4201 if projectParms.delay:
4202 readUnitConfObj.addParameter(name="delay", value=projectParms.delay, format="int")
4202 readUnitConfObj.addParameter(name="delay", value=projectParms.delay, format="int")
4203
4203
4204 return readUnitConfObj
4204 return readUnitConfObj
4205
4205
4206 def updateReadUnitView(self, projectObjView, idReadUnit):
4206 def updateReadUnitView(self, projectObjView, idReadUnit):
4207
4207
4208 # project_name, description, datatype, data_path, startDate, endDate, startTime, endTime, online, delay, walk , set = self.getParmsFromProjectWindow()
4208 # project_name, description, datatype, data_path, startDate, endDate, startTime, endTime, online, delay, walk , set = self.getParmsFromProjectWindow()
4209
4209
4210 readUnitConfObj = projectObjView.getProcUnitObj(idReadUnit)
4210 readUnitConfObj = projectObjView.getProcUnitObj(idReadUnit)
4211
4211
4212 projectParms = self.__getParmsFromProjectWindow()
4212 projectParms = self.__getParmsFromProjectWindow()
4213
4213
4214 if not projectParms.isValid():
4214 if not projectParms.isValid():
4215 return None
4215 return None
4216
4216
4217 if projectParms.datatype in ["Voltage", "Spectra", "Fits"]:
4217 if projectParms.datatype in ["Voltage", "Spectra", "Fits"]:
4218 readUnitConfObj.update(datatype=projectParms.datatype,
4218 readUnitConfObj.update(datatype=projectParms.datatype,
4219 path=projectParms.dpath,
4219 path=projectParms.dpath,
4220 startDate=projectParms.startDate,
4220 startDate=projectParms.startDate,
4221 endDate=projectParms.endDate,
4221 endDate=projectParms.endDate,
4222 startTime=projectParms.startTime,
4222 startTime=projectParms.startTime,
4223 endTime=projectParms.endTime,
4223 endTime=projectParms.endTime,
4224 online=projectParms.online,
4224 online=projectParms.online,
4225 walk=projectParms.walk
4225 walk=projectParms.walk
4226 )
4226 )
4227 if projectParms.set:
4227 if projectParms.set:
4228 readUnitConfObj.addParameter(name="set", value=projectParms.set, format="int")
4228 readUnitConfObj.addParameter(name="set", value=projectParms.set, format="int")
4229
4229
4230 if projectParms.delay:
4230 if projectParms.delay:
4231 readUnitConfObj.addParameter(name="delay", value=projectParms.delay, format="int")
4231 readUnitConfObj.addParameter(name="delay", value=projectParms.delay, format="int")
4232
4232
4233 if projectParms.expLabel:
4233 if projectParms.expLabel:
4234 readUnitConfObj.addParameter(name="expLabel", value=projectParms.expLabel)
4234 readUnitConfObj.addParameter(name="expLabel", value=projectParms.expLabel)
4235
4235
4236 readUnitConfObj.addOperation(name="printInfo")
4236 readUnitConfObj.addOperation(name="printInfo")
4237
4237
4238 if projectParms.datatype == "USRP":
4238 if projectParms.datatype == "USRP":
4239 readUnitConfObj.update(datatype=projectParms.datatype,
4239 readUnitConfObj.update(datatype=projectParms.datatype,
4240 path=projectParms.dpath,
4240 path=projectParms.dpath,
4241 startDate=projectParms.startDate,
4241 startDate=projectParms.startDate,
4242 endDate=projectParms.endDate,
4242 endDate=projectParms.endDate,
4243 startTime=projectParms.startTime,
4243 startTime=projectParms.startTime,
4244 endTime=projectParms.endTime,
4244 endTime=projectParms.endTime,
4245 online=projectParms.online,
4245 online=projectParms.online,
4246 ippKm=projectParms.ippKm
4246 ippKm=projectParms.ippKm
4247 )
4247 )
4248
4248
4249 if projectParms.delay:
4249 if projectParms.delay:
4250 readUnitConfObj.addParameter(name="delay", value=projectParms.delay, format="int")
4250 readUnitConfObj.addParameter(name="delay", value=projectParms.delay, format="int")
4251
4251
4252 return readUnitConfObj
4252 return readUnitConfObj
4253
4253
4254 def createProcUnitView(self, projectObjView, datatype, inputId):
4254 def createProcUnitView(self, projectObjView, datatype, inputId):
4255
4255
4256 procUnitConfObj = projectObjView.addProcUnit(datatype=datatype, inputId=inputId)
4256 procUnitConfObj = projectObjView.addProcUnit(datatype=datatype, inputId=inputId)
4257
4257
4258 self.__puObjDict[procUnitConfObj.getId()] = procUnitConfObj
4258 self.__puObjDict[procUnitConfObj.getId()] = procUnitConfObj
4259
4259
4260 return procUnitConfObj
4260 return procUnitConfObj
4261
4261
4262 def updateProcUnitView(self, id):
4262 def updateProcUnitView(self, id):
4263
4263
4264 pass
4264 pass
4265
4265
4266 def addPUWindow(self):
4266 def addPUWindow(self):
4267
4267
4268 self.configUPWindowObj = UnitProcessWindow(self)
4268 self.configUPWindowObj = UnitProcessWindow(self)
4269 fatherObj = self.getSelectedItemObj()
4269 fatherObj = self.getSelectedItemObj()
4270 try:
4270 try:
4271 fatherObj.getElementName()
4271 fatherObj.getElementName()
4272 except:
4272 except:
4273 self.console.append("First left click on Project or Processing Unit")
4273 self.console.append("First left click on Project or Processing Unit")
4274 return 0
4274 return 0
4275
4275
4276 if fatherObj.getElementName() == 'Project':
4276 if fatherObj.getElementName() == 'Project':
4277 readUnitConfObj = fatherObj.getReadUnitObj()
4277 readUnitConfObj = fatherObj.getReadUnitObj()
4278 self.configUPWindowObj.dataTypeProject = str(readUnitConfObj.datatype)
4278 self.configUPWindowObj.dataTypeProject = str(readUnitConfObj.datatype)
4279
4279
4280 self.configUPWindowObj.getfromWindowList.append(fatherObj)
4280 self.configUPWindowObj.getfromWindowList.append(fatherObj)
4281 self.configUPWindowObj.loadTotalList()
4281 self.configUPWindowObj.loadTotalList()
4282 self.configUPWindowObj.show()
4282 self.configUPWindowObj.show()
4283 self.configUPWindowObj.closed.connect(self.createPUWindow)
4283 self.configUPWindowObj.closed.connect(self.createPUWindow)
4284
4284
4285 def createPUWindow(self):
4285 def createPUWindow(self):
4286
4286
4287 if not self.configUPWindowObj.create:
4287 if not self.configUPWindowObj.create:
4288 return
4288 return
4289
4289
4290 fatherObj = self.configUPWindowObj.getFromWindow
4290 fatherObj = self.configUPWindowObj.getFromWindow
4291 datatype = self.configUPWindowObj.typeofUP
4291 datatype = self.configUPWindowObj.typeofUP
4292
4292
4293 if fatherObj.getElementName() == 'Project':
4293 if fatherObj.getElementName() == 'Project':
4294 inputId = fatherObj.getReadUnitId()
4294 inputId = fatherObj.getReadUnitId()
4295 projectObjView = fatherObj
4295 projectObjView = fatherObj
4296 else:
4296 else:
4297 inputId = fatherObj.getId()
4297 inputId = fatherObj.getId()
4298 projectObjView = self.getSelectedProjectObj()
4298 projectObjView = self.getSelectedProjectObj()
4299
4299
4300 if not projectObjView:
4300 if not projectObjView:
4301 return
4301 return
4302
4302
4303 puObj = self.createProcUnitView(projectObjView, datatype, inputId)
4303 puObj = self.createProcUnitView(projectObjView, datatype, inputId)
4304
4304
4305 self.addPU2ProjectExplorer(puObj)
4305 self.addPU2ProjectExplorer(puObj)
4306
4306
4307 self.showtabPUCreated(datatype)
4307 self.showtabPUCreated(datatype)
4308
4308
4309 self.clearPUWindow(datatype)
4309 self.clearPUWindow(datatype)
4310
4310
4311 self.showPUinitView()
4311 self.showPUinitView()
4312
4312
4313 def addFTPConf2Operation(self, puObj, opObj):
4313 def addFTPConf2Operation(self, puObj, opObj):
4314
4314
4315 if not self.temporalFTP.create:
4315 if not self.temporalFTP.create:
4316 self.temporalFTP.setwithoutconfiguration()
4316 self.temporalFTP.setwithoutconfiguration()
4317
4317
4318 # opObj.addParameter(name='server', value=self.temporalFTP.server, format='str')
4318 # opObj.addParameter(name='server', value=self.temporalFTP.server, format='str')
4319 # opObj.addParameter(name='remotefolder', value=self.temporalFTP.remotefolder, format='str')
4319 # opObj.addParameter(name='remotefolder', value=self.temporalFTP.remotefolder, format='str')
4320 # opObj.addParameter(name='username', value=self.temporalFTP.username, format='str')
4320 # opObj.addParameter(name='username', value=self.temporalFTP.username, format='str')
4321 # opObj.addParameter(name='password', value=self.temporalFTP.password, format='str')
4321 # opObj.addParameter(name='password', value=self.temporalFTP.password, format='str')
4322
4322
4323 if self.temporalFTP.ftp_wei:
4323 if self.temporalFTP.ftp_wei:
4324 opObj.addParameter(name='ftp_wei', value=int(self.temporalFTP.ftp_wei), format='int')
4324 opObj.addParameter(name='ftp_wei', value=int(self.temporalFTP.ftp_wei), format='int')
4325 if self.temporalFTP.exp_code:
4325 if self.temporalFTP.exp_code:
4326 opObj.addParameter(name='exp_code', value=int(self.temporalFTP.exp_code), format='int')
4326 opObj.addParameter(name='exp_code', value=int(self.temporalFTP.exp_code), format='int')
4327 if self.temporalFTP.sub_exp_code:
4327 if self.temporalFTP.sub_exp_code:
4328 opObj.addParameter(name='sub_exp_code', value=int(self.temporalFTP.sub_exp_code), format='int')
4328 opObj.addParameter(name='sub_exp_code', value=int(self.temporalFTP.sub_exp_code), format='int')
4329 if self.temporalFTP.plot_pos:
4329 if self.temporalFTP.plot_pos:
4330 opObj.addParameter(name='plot_pos', value=int(self.temporalFTP.plot_pos), format='int')
4330 opObj.addParameter(name='plot_pos', value=int(self.temporalFTP.plot_pos), format='int')
4331
4331
4332 # def __checkFTPProcUnit(self, projectObj, localfolder):
4332 # def __checkFTPProcUnit(self, projectObj, localfolder):
4333 #
4333 #
4334 # puId = None
4334 # puId = None
4335 # puObj = None
4335 # puObj = None
4336 #
4336 #
4337 # for thisPuId, thisPuObj in projectObj.procUnitItems():
4337 # for thisPuId, thisPuObj in projectObj.procUnitItems():
4338 #
4338 #
4339 # if not thisPuObj.name == "SendToServer":
4339 # if not thisPuObj.name == "SendToServer":
4340 # continue
4340 # continue
4341 #
4341 #
4342 # opObj = thisPuObj.getOperationObj(name='run')
4342 # opObj = thisPuObj.getOperationObj(name='run')
4343 #
4343 #
4344 # parmObj = opObj.getParameterObj('localfolder')
4344 # parmObj = opObj.getParameterObj('localfolder')
4345 #
4345 #
4346 # #localfolder parameter should always be set, if it is not set then ProcUnit should be removed
4346 # #localfolder parameter should always be set, if it is not set then ProcUnit should be removed
4347 # if not parmObj:
4347 # if not parmObj:
4348 # projectObj.removeProcUnit(thisPuId)
4348 # projectObj.removeProcUnit(thisPuId)
4349 # continue
4349 # continue
4350 #
4350 #
4351 # thisLocalfolder = parmObj.getValue()
4351 # thisLocalfolder = parmObj.getValue()
4352 #
4352 #
4353 # if localfolder != thisLocalfolder:
4353 # if localfolder != thisLocalfolder:
4354 # continue
4354 # continue
4355 #
4355 #
4356 # puId = thisPuId
4356 # puId = thisPuId
4357 # puObj = thisPuObj
4357 # puObj = thisPuObj
4358 # break
4358 # break
4359 #
4359 #
4360 # return puObj
4360 # return puObj
4361
4361
4362 def createFTPProcUnitView(self):
4362 def createFTPProcUnitView(self):
4363
4363
4364 if not self.temporalFTP.create:
4364 if not self.temporalFTP.create:
4365 self.temporalFTP.setwithoutconfiguration()
4365 self.temporalFTP.setwithoutconfiguration()
4366
4366
4367 projectObj = self.getSelectedProjectObj()
4367 projectObj = self.getSelectedProjectObj()
4368
4368
4369 if not projectObj:
4369 if not projectObj:
4370 return
4370 return
4371
4371
4372 self.removeAllFTPProcUnitView(projectObj)
4372 self.removeAllFTPProcUnitView(projectObj)
4373
4373
4374 if not self.__puLocalFolder2FTP:
4374 if not self.__puLocalFolder2FTP:
4375 return
4375 return
4376
4376
4377 folderList = ",".join(self.__puLocalFolder2FTP.values())
4377 folderList = ",".join(self.__puLocalFolder2FTP.values())
4378
4378
4379 procUnitConfObj = projectObj.addProcUnit(name="SendToServer")
4379 procUnitConfObj = projectObj.addProcUnit(name="SendToServer")
4380
4380
4381 procUnitConfObj.addParameter(name='server', value=self.temporalFTP.server, format='str')
4381 procUnitConfObj.addParameter(name='server', value=self.temporalFTP.server, format='str')
4382 procUnitConfObj.addParameter(name='username', value=self.temporalFTP.username, format='str')
4382 procUnitConfObj.addParameter(name='username', value=self.temporalFTP.username, format='str')
4383 procUnitConfObj.addParameter(name='password', value=self.temporalFTP.password, format='str')
4383 procUnitConfObj.addParameter(name='password', value=self.temporalFTP.password, format='str')
4384 procUnitConfObj.addParameter(name='localfolder', value=folderList, format='list')
4384 procUnitConfObj.addParameter(name='localfolder', value=folderList, format='list')
4385 procUnitConfObj.addParameter(name='remotefolder', value=self.temporalFTP.remotefolder, format='str')
4385 procUnitConfObj.addParameter(name='remotefolder', value=self.temporalFTP.remotefolder, format='str')
4386 procUnitConfObj.addParameter(name='ext', value=self.temporalFTP.extension, format='str')
4386 procUnitConfObj.addParameter(name='ext', value=self.temporalFTP.extension, format='str')
4387 procUnitConfObj.addParameter(name='period', value=self.temporalFTP.period, format='int')
4387 procUnitConfObj.addParameter(name='period', value=self.temporalFTP.period, format='int')
4388 procUnitConfObj.addParameter(name='protocol', value=self.temporalFTP.protocol, format='str')
4388 procUnitConfObj.addParameter(name='protocol', value=self.temporalFTP.protocol, format='str')
4389
4389
4390 procUnitConfObj.addParameter(name='ftp_wei', value=self.temporalFTP.ftp_wei, format='int')
4390 procUnitConfObj.addParameter(name='ftp_wei', value=self.temporalFTP.ftp_wei, format='int')
4391 procUnitConfObj.addParameter(name='exp_code', value=self.temporalFTP.exp_code, format='int')
4391 procUnitConfObj.addParameter(name='exp_code', value=self.temporalFTP.exp_code, format='int')
4392 procUnitConfObj.addParameter(name='sub_exp_code', value=self.temporalFTP.sub_exp_code, format='int')
4392 procUnitConfObj.addParameter(name='sub_exp_code', value=self.temporalFTP.sub_exp_code, format='int')
4393 procUnitConfObj.addParameter(name='plot_pos', value=self.temporalFTP.plot_pos, format='int')
4393 procUnitConfObj.addParameter(name='plot_pos', value=self.temporalFTP.plot_pos, format='int')
4394
4394
4395 self.__puObjDict[procUnitConfObj.getId()] = procUnitConfObj
4395 self.__puObjDict[procUnitConfObj.getId()] = procUnitConfObj
4396
4396
4397 def removeAllFTPProcUnitView(self, projectObj):
4397 def removeAllFTPProcUnitView(self, projectObj):
4398
4398
4399 for thisPuId, thisPuObj in projectObj.procUnitItems():
4399 for thisPuId, thisPuObj in projectObj.procUnitItems():
4400
4400
4401 if not thisPuObj.name == "SendToServer":
4401 if not thisPuObj.name == "SendToServer":
4402 continue
4402 continue
4403
4403
4404 projectObj.removeProcUnit(thisPuId)
4404 projectObj.removeProcUnit(thisPuId)
4405
4405
4406 if thisPuId not in self.__puObjDict.keys():
4406 if thisPuId not in self.__puObjDict.keys():
4407 continue
4407 continue
4408
4408
4409 self.__puObjDict.pop(thisPuId)
4409 self.__puObjDict.pop(thisPuId)
4410
4410
4411 def showPUinitView(self):
4411 def showPUinitView(self):
4412
4412
4413 self.propertiesModel = TreeModel()
4413 self.propertiesModel = TreeModel()
4414 self.propertiesModel.initPUVoltageView()
4414 self.propertiesModel.initPUVoltageView()
4415 self.treeProjectProperties.setModel(self.propertiesModel)
4415 self.treeProjectProperties.setModel(self.propertiesModel)
4416 self.treeProjectProperties.expandAll()
4416 self.treeProjectProperties.expandAll()
4417 self.treeProjectProperties.allColumnsShowFocus()
4417 self.treeProjectProperties.allColumnsShowFocus()
4418 self.treeProjectProperties.resizeColumnToContents(1)
4418 self.treeProjectProperties.resizeColumnToContents(1)
4419
4419
4420 def saveFTPFromOpObj(self, operationObj):
4420 def saveFTPFromOpObj(self, operationObj):
4421
4421
4422 if operationObj.name != "SendByFTP":
4422 if operationObj.name != "SendByFTP":
4423 return
4423 return
4424
4424
4425 server = operationObj.getParameterValue("server")
4425 server = operationObj.getParameterValue("server")
4426 username = operationObj.getParameterValue("username")
4426 username = operationObj.getParameterValue("username")
4427 password = operationObj.getParameterValue("password")
4427 password = operationObj.getParameterValue("password")
4428 localfolder = operationObj.getParameterValue("localfolder")
4428 localfolder = operationObj.getParameterValue("localfolder")
4429 remotefolder = operationObj.getParameterValue("remotefolder")
4429 remotefolder = operationObj.getParameterValue("remotefolder")
4430 ext = operationObj.getParameterValue("ext")
4430 ext = operationObj.getParameterValue("ext")
4431 period = operationObj.getParameterValue("period")
4431 period = operationObj.getParameterValue("period")
4432
4432
4433 self.temporalFTP.save(server=server,
4433 self.temporalFTP.save(server=server,
4434 remotefolder=remotefolder,
4434 remotefolder=remotefolder,
4435 username=username,
4435 username=username,
4436 password=password,
4436 password=password,
4437 localfolder=localfolder,
4437 localfolder=localfolder,
4438 extension=ext)
4438 extension=ext)
4439
4439
4440 return
4440 return
4441
4441
4442 def saveFTPFromProcUnitObj(self, puObj):
4442 def saveFTPFromProcUnitObj(self, puObj):
4443
4443
4444 opObj = puObj.getOperationObj(name="run")
4444 opObj = puObj.getOperationObj(name="run")
4445
4445
4446 parmObj = opObj.getParameterObj(parameterName="server")
4446 parmObj = opObj.getParameterObj(parameterName="server")
4447 if parmObj == None:
4447 if parmObj == None:
4448 server = 'jro-app.igp.gob.pe'
4448 server = 'jro-app.igp.gob.pe'
4449 else:
4449 else:
4450 server = parmObj.getValue()
4450 server = parmObj.getValue()
4451
4451
4452 parmObj = opObj.getParameterObj(parameterName="remotefolder")
4452 parmObj = opObj.getParameterObj(parameterName="remotefolder")
4453 if parmObj == None:
4453 if parmObj == None:
4454 remotefolder = '/home/wmaster/graficos'
4454 remotefolder = '/home/wmaster/graficos'
4455 else:
4455 else:
4456 remotefolder = parmObj.getValue()
4456 remotefolder = parmObj.getValue()
4457
4457
4458 parmObj = opObj.getParameterObj(parameterName="username")
4458 parmObj = opObj.getParameterObj(parameterName="username")
4459 if parmObj == None:
4459 if parmObj == None:
4460 username = 'wmaster'
4460 username = 'wmaster'
4461 else:
4461 else:
4462 username = parmObj.getValue()
4462 username = parmObj.getValue()
4463
4463
4464 parmObj = opObj.getParameterObj(parameterName="password")
4464 parmObj = opObj.getParameterObj(parameterName="password")
4465 if parmObj == None:
4465 if parmObj == None:
4466 password = 'mst2010vhf'
4466 password = 'mst2010vhf'
4467 else:
4467 else:
4468 password = parmObj.getValue()
4468 password = parmObj.getValue()
4469
4469
4470 parmObj = opObj.getParameterObj(parameterName="ftp_wei")
4470 parmObj = opObj.getParameterObj(parameterName="ftp_wei")
4471 if parmObj == None:
4471 if parmObj == None:
4472 ftp_wei = 0
4472 ftp_wei = 0
4473 else:
4473 else:
4474 ftp_wei = parmObj.getValue()
4474 ftp_wei = parmObj.getValue()
4475
4475
4476 parmObj = opObj.getParameterObj(parameterName="exp_code")
4476 parmObj = opObj.getParameterObj(parameterName="exp_code")
4477 if parmObj == None:
4477 if parmObj == None:
4478 exp_code = 0
4478 exp_code = 0
4479 else:
4479 else:
4480 exp_code = parmObj.getValue()
4480 exp_code = parmObj.getValue()
4481
4481
4482 parmObj = opObj.getParameterObj(parameterName="sub_exp_code")
4482 parmObj = opObj.getParameterObj(parameterName="sub_exp_code")
4483 if parmObj == None:
4483 if parmObj == None:
4484 sub_exp_code = 0
4484 sub_exp_code = 0
4485 else:
4485 else:
4486 sub_exp_code = parmObj.getValue()
4486 sub_exp_code = parmObj.getValue()
4487
4487
4488 parmObj = opObj.getParameterObj(parameterName="plot_pos")
4488 parmObj = opObj.getParameterObj(parameterName="plot_pos")
4489 if parmObj == None:
4489 if parmObj == None:
4490 plot_pos = 0
4490 plot_pos = 0
4491 else:
4491 else:
4492 plot_pos = parmObj.getValue()
4492 plot_pos = parmObj.getValue()
4493
4493
4494 parmObj = opObj.getParameterObj(parameterName="localfolder")
4494 parmObj = opObj.getParameterObj(parameterName="localfolder")
4495 if parmObj == None:
4495 if parmObj == None:
4496 localfolder = None
4496 localfolder = None
4497 else:
4497 else:
4498 localfolder = parmObj.getValue()
4498 localfolder = parmObj.getValue()
4499
4499
4500 parmObj = opObj.getParameterObj(parameterName="ext")
4500 parmObj = opObj.getParameterObj(parameterName="ext")
4501 if parmObj == None:
4501 if parmObj == None:
4502 extension = '.png'
4502 extension = '.png'
4503 else:
4503 else:
4504 extension = parmObj.getValue()
4504 extension = parmObj.getValue()
4505
4505
4506 self.temporalFTP.save(server=server,
4506 self.temporalFTP.save(server=server,
4507 remotefolder=remotefolder,
4507 remotefolder=remotefolder,
4508 username=username,
4508 username=username,
4509 password=password,
4509 password=password,
4510 ftp_wei=ftp_wei,
4510 ftp_wei=ftp_wei,
4511 exp_code=exp_code,
4511 exp_code=exp_code,
4512 sub_exp_code=sub_exp_code,
4512 sub_exp_code=sub_exp_code,
4513 plot_pos=plot_pos,
4513 plot_pos=plot_pos,
4514 localfolder=localfolder,
4514 localfolder=localfolder,
4515 extension=extension)
4515 extension=extension)
4516
4516
4517 def addProject2ProjectExplorer(self, id, name):
4517 def addProject2ProjectExplorer(self, id, name):
4518
4518
4519 itemTree = QtGui.QStandardItem(QtCore.QString(str(name)))
4519 itemTree = QtGui.QStandardItem(QtCore.QString(str(name)))
4520
4520
4521 parentItem = self.projectExplorerModel.invisibleRootItem()
4521 parentItem = self.projectExplorerModel.invisibleRootItem()
4522 parentItem.appendRow(itemTree)
4522 parentItem.appendRow(itemTree)
4523
4523
4524 self.projectExplorerTree.setCurrentIndex(itemTree.index())
4524 self.projectExplorerTree.setCurrentIndex(itemTree.index())
4525
4525
4526 self.selectedItemTree = itemTree
4526 self.selectedItemTree = itemTree
4527
4527
4528 self.__itemTreeDict[id] = itemTree
4528 self.__itemTreeDict[id] = itemTree
4529
4529
4530 def addPU2ProjectExplorer(self, puObj):
4530 def addPU2ProjectExplorer(self, puObj):
4531
4531
4532 id, name = puObj.id, puObj.datatype
4532 id, name = puObj.id, puObj.datatype
4533
4533
4534 itemTree = QtGui.QStandardItem(QtCore.QString(str(name)))
4534 itemTree = QtGui.QStandardItem(QtCore.QString(str(name)))
4535
4535
4536 parentItem = self.selectedItemTree
4536 parentItem = self.selectedItemTree
4537 parentItem.appendRow(itemTree)
4537 parentItem.appendRow(itemTree)
4538 self.projectExplorerTree.expandAll()
4538 self.projectExplorerTree.expandAll()
4539
4539
4540 self.projectExplorerTree.setCurrentIndex(itemTree.index())
4540 self.projectExplorerTree.setCurrentIndex(itemTree.index())
4541
4541
4542 self.selectedItemTree = itemTree
4542 self.selectedItemTree = itemTree
4543
4543
4544 self.__itemTreeDict[id] = itemTree
4544 self.__itemTreeDict[id] = itemTree
4545
4545
4546 def addPU2PELoadXML(self, puObj):
4546 def addPU2PELoadXML(self, puObj):
4547
4547
4548 id, name, inputId = puObj.id, puObj.datatype, puObj.inputId
4548 id, name, inputId = puObj.id, puObj.datatype, puObj.inputId
4549
4549
4550 itemTree = QtGui.QStandardItem(QtCore.QString(str(name)))
4550 itemTree = QtGui.QStandardItem(QtCore.QString(str(name)))
4551
4551
4552 if self.__itemTreeDict.has_key(inputId):
4552 if self.__itemTreeDict.has_key(inputId):
4553 parentItem = self.__itemTreeDict[inputId]
4553 parentItem = self.__itemTreeDict[inputId]
4554 else:
4554 else:
4555 #If parent is a Reader object
4555 #If parent is a Reader object
4556 parentItem = self.__itemTreeDict[id[:-1]]
4556 parentItem = self.__itemTreeDict[id[:-1]]
4557
4557
4558 parentItem.appendRow(itemTree)
4558 parentItem.appendRow(itemTree)
4559 self.projectExplorerTree.expandAll()
4559 self.projectExplorerTree.expandAll()
4560 parentItem = itemTree
4560 parentItem = itemTree
4561 self.projectExplorerTree.setCurrentIndex(parentItem.index())
4561 self.projectExplorerTree.setCurrentIndex(parentItem.index())
4562
4562
4563 self.__itemTreeDict[id] = itemTree
4563 self.__itemTreeDict[id] = itemTree
4564 self.selectedItemTree = itemTree
4564 self.selectedItemTree = itemTree
4565
4565
4566 def getSelectedProjectObj(self):
4566 def getSelectedProjectObj(self):
4567 """
4567 """
4568 Return the current project object selected. If a processing unit is
4568 Return the current project object selected. If a processing unit is
4569 actually selected this function returns associated project.
4569 actually selected this function returns associated project.
4570
4570
4571 None if any project or processing unit is selected
4571 None if any project or processing unit is selected
4572 """
4572 """
4573 for key in self.__itemTreeDict.keys():
4573 for key in self.__itemTreeDict.keys():
4574 if self.__itemTreeDict[key] != self.selectedItemTree:
4574 if self.__itemTreeDict[key] != self.selectedItemTree:
4575 continue
4575 continue
4576
4576
4577 if self.__projectObjDict.has_key(key):
4577 if self.__projectObjDict.has_key(key):
4578 projectObj = self.__projectObjDict[key]
4578 projectObj = self.__projectObjDict[key]
4579 return projectObj
4579 return projectObj
4580
4580
4581 puObj = self.__puObjDict[key]
4581 puObj = self.__puObjDict[key]
4582
4582
4583 if puObj.parentId == None:
4583 if puObj.parentId == None:
4584 projectId = puObj.getId()[0]
4584 projectId = puObj.getId()[0]
4585 else:
4585 else:
4586 projectId = puObj.parentId
4586 projectId = puObj.parentId
4587
4587
4588 projectObj = self.__projectObjDict[projectId]
4588 projectObj = self.__projectObjDict[projectId]
4589 return projectObj
4589 return projectObj
4590
4590
4591 return None
4591 return None
4592
4592
4593 def getSelectedItemObj(self):
4593 def getSelectedItemObj(self):
4594 """
4594 """
4595 Return the current project or processing unit object selected
4595 Return the current project or processing unit object selected
4596
4596
4597 None if any project or processing unit is selected
4597 None if any project or processing unit is selected
4598 """
4598 """
4599 for key in self.__itemTreeDict.keys():
4599 for key in self.__itemTreeDict.keys():
4600 if self.__itemTreeDict[key] != self.selectedItemTree:
4600 if self.__itemTreeDict[key] != self.selectedItemTree:
4601 continue
4601 continue
4602
4602
4603 if self.__projectObjDict.has_key(key) == True:
4603 if self.__projectObjDict.has_key(key) == True:
4604 fatherObj = self.__projectObjDict[key]
4604 fatherObj = self.__projectObjDict[key]
4605 else:
4605 else:
4606 fatherObj = self.__puObjDict[key]
4606 fatherObj = self.__puObjDict[key]
4607
4607
4608 return fatherObj
4608 return fatherObj
4609
4609
4610 return None
4610 return None
4611
4611
4612 def _WarningWindow(self, text, information):
4612 def _WarningWindow(self, text, information):
4613
4613
4614 msgBox = QtGui.QMessageBox()
4614 msgBox = QtGui.QMessageBox()
4615 msgBox.setText(text)
4615 msgBox.setText(text)
4616 msgBox.setInformativeText(information)
4616 msgBox.setInformativeText(information)
4617 msgBox.setStandardButtons(QtGui.QMessageBox.Ok | QtGui.QMessageBox.Cancel)
4617 msgBox.setStandardButtons(QtGui.QMessageBox.Ok | QtGui.QMessageBox.Cancel)
4618 msgBox.setDefaultButton(QtGui.QMessageBox.Ok)
4618 msgBox.setDefaultButton(QtGui.QMessageBox.Ok)
4619 ret = msgBox.exec_()
4619 ret = msgBox.exec_()
4620
4620
4621 answer = False
4621 answer = False
4622
4622
4623 if ret == QtGui.QMessageBox.Ok:
4623 if ret == QtGui.QMessageBox.Ok:
4624 answer = True
4624 answer = True
4625
4625
4626 return answer
4626 return answer
4627
4627
4628 def __getNewProjectId(self):
4628 def __getNewProjectId(self):
4629
4629
4630 loadProject = False
4630 loadProject = False
4631
4631
4632 for thisId in range(1,10):
4632 for thisId in range(1,10):
4633 newId = str(thisId)
4633 newId = str(thisId)
4634 if newId in self.__projectObjDict.keys():
4634 if newId in self.__projectObjDict.keys():
4635 continue
4635 continue
4636
4636
4637 loadProject = True
4637 loadProject = True
4638 projectId = newId
4638 projectId = newId
4639 break
4639 break
4640
4640
4641 if not loadProject:
4641 if not loadProject:
4642 self.console.clear()
4642 self.console.clear()
4643 self.console.append("The maximum number of projects has been loaded, a new project can not be loaded")
4643 self.console.append("The maximum number of projects has been loaded, a new project can not be loaded")
4644 return None
4644 return None
4645
4645
4646 return projectId
4646 return projectId
4647
4647
4648 def openProject(self):
4648 def openProject(self):
4649
4649
4650 self.actionStart.setEnabled(False)
4650 self.actionStart.setEnabled(False)
4651 self.actionStarToolbar.setEnabled(False)
4651 self.actionStarToolbar.setEnabled(False)
4652
4652
4653 self.frame_2.setEnabled(True)
4653 self.frame_2.setEnabled(True)
4654
4654
4655 # print self.dir
4655 # print self.dir
4656 filename = str(QtGui.QFileDialog.getOpenFileName(self, "Open text file", self.pathWorkSpace, self.tr("Text Files (*.xml)")))
4656 filename = str(QtGui.QFileDialog.getOpenFileName(self, "Open text file", self.pathWorkSpace, self.tr("Text Files (*.xml)")))
4657
4657
4658 projectObjLoad = Project()
4658 projectObjLoad = Project()
4659
4659
4660 try:
4660 try:
4661 projectObjLoad.readXml(filename)
4661 projectObjLoad.readXml(filename)
4662 except:
4662 except:
4663 self.console.clear()
4663 self.console.clear()
4664 self.console.append("The selected xml file could not be loaded ...")
4664 self.console.append("The selected xml file could not be loaded ...")
4665 return 0
4665 return 0
4666
4666
4667 self.create = False
4667 self.create = False
4668 self.refreshProjectWindow(projectObjLoad)
4668 self.refreshProjectWindow(projectObjLoad)
4669 self.refreshProjectProperties(projectObjLoad)
4669 self.refreshProjectProperties(projectObjLoad)
4670
4670
4671 projectId = projectObjLoad.id
4671 projectId = projectObjLoad.id
4672
4672
4673 if projectId in self.__projectObjDict.keys():
4673 if projectId in self.__projectObjDict.keys():
4674
4674
4675 # answer = self._WarningWindow("You already have a project loaded with the same Id",
4675 # answer = self._WarningWindow("You already have a project loaded with the same Id",
4676 # "Do you want to load the file anyway?")
4676 # "Do you want to load the file anyway?")
4677 # if not answer:
4677 # if not answer:
4678 # return
4678 # return
4679
4679
4680 projectId = self.__getNewProjectId()
4680 projectId = self.__getNewProjectId()
4681
4681
4682 if not projectId:
4682 if not projectId:
4683 return
4683 return
4684
4684
4685 projectObjLoad.updateId(projectId)
4685 projectObjLoad.updateId(projectId)
4686
4686
4687 self.__projectObjDict[projectId] = projectObjLoad
4687 self.__projectObjDict[projectId] = projectObjLoad
4688
4688
4689 self.addProject2ProjectExplorer(id=projectId, name=projectObjLoad.name)
4689 self.addProject2ProjectExplorer(id=projectId, name=projectObjLoad.name)
4690
4690
4691 self.tabWidgetProject.setEnabled(True)
4691 self.tabWidgetProject.setEnabled(True)
4692 self.tabWidgetProject.setCurrentWidget(self.tabProject)
4692 self.tabWidgetProject.setCurrentWidget(self.tabProject)
4693 # Disable tabProject after finish the creation
4693 # Disable tabProject after finish the creation
4694 self.tabProject.setEnabled(True)
4694 self.tabProject.setEnabled(True)
4695 puObjorderList = OrderedDict(sorted(projectObjLoad.procUnitConfObjDict.items(), key=lambda x: x[0]))
4695 puObjorderList = OrderedDict(sorted(projectObjLoad.procUnitConfObjDict.items(), key=lambda x: x[0]))
4696
4696
4697 for puId, puObj in puObjorderList.items():
4697 for puId, puObj in puObjorderList.items():
4698
4698
4699 self.__puObjDict[puId] = puObj
4699 self.__puObjDict[puId] = puObj
4700
4700
4701 if puObj.name == "SendToServer":
4701 if puObj.name == "SendToServer":
4702 self.saveFTPFromProcUnitObj(puObj)
4702 self.saveFTPFromProcUnitObj(puObj)
4703
4703
4704 ############## COMPATIBLE WITH OLD VERSIONS ################
4704 ############## COMPATIBLE WITH OLD VERSIONS ################
4705 operationObj = puObj.getOperationObj("SendByFTP")
4705 operationObj = puObj.getOperationObj("SendByFTP")
4706
4706
4707 if operationObj:
4707 if operationObj:
4708 self.saveFTPFromOpObj(operationObj)
4708 self.saveFTPFromOpObj(operationObj)
4709 ############################################################
4709 ############################################################
4710
4710
4711 if puObj.inputId == '0':
4711 if puObj.inputId == '0':
4712 continue
4712 continue
4713
4713
4714 self.addPU2PELoadXML(puObj)
4714 self.addPU2PELoadXML(puObj)
4715
4715
4716 self.refreshPUWindow(puObj)
4716 self.refreshPUWindow(puObj)
4717 self.refreshPUProperties(puObj)
4717 self.refreshPUProperties(puObj)
4718 self.showtabPUCreated(datatype=puObj.datatype)
4718 self.showtabPUCreated(datatype=puObj.datatype)
4719
4719
4720 self.console.clear()
4720 self.console.clear()
4721 self.console.append("The selected xml file has been loaded successfully")
4721 self.console.append("The selected xml file has been loaded successfully")
4722
4722
4723 self.actionStart.setEnabled(True)
4723 self.actionStart.setEnabled(True)
4724 self.actionStarToolbar.setEnabled(True)
4724 self.actionStarToolbar.setEnabled(True)
4725
4725
4726 def create_updating_timer(self):
4726 def create_updating_timer(self):
4727 self.comm_data_timer = QtCore.QTimer(self)
4727 self.comm_data_timer = QtCore.QTimer(self)
4728 self.comm_data_timer.timeout.connect(self.on_comm_updating_timer)
4728 self.comm_data_timer.timeout.connect(self.on_comm_updating_timer)
4729 self.comm_data_timer.start(1000)
4729 self.comm_data_timer.start(1000)
4730
4730
4731 def on_comm_updating_timer(self):
4731 def on_comm_updating_timer(self):
4732 # Verifica si algun proceso ha sido inicializado y sigue ejecutandose
4732 # Verifica si algun proceso ha sido inicializado y sigue ejecutandose
4733 # Si el proceso se ha parado actualizar el GUI (stopProject)
4733 # Si el proceso se ha parado actualizar el GUI (stopProject)
4734 if not self.threadStarted:
4734 if not self.threadStarted:
4735 return
4735 return
4736
4736
4737 if self.controllerThread.isFinished():
4737 if self.controllerThread.isFinished():
4738 self.stopProject()
4738 self.stopProject()
4739
4739
4740 def playProject(self, ext=".xml", save=1):
4740 def playProject(self, ext=".xml", save=1):
4741
4741
4742 projectObj = self.getSelectedProjectObj()
4742 projectObj = self.getSelectedProjectObj()
4743
4743
4744 if not projectObj:
4744 if not projectObj:
4745 self.console.append("Please select a project before pressing PLAY button")
4745 self.console.append("Please select a project before pressing PLAY button")
4746 return
4746 return
4747
4747
4748 if save:
4748 if save:
4749 filename = self.saveProject()
4749 filename = self.saveProject()
4750 if filename == None:
4750 if filename == None:
4751 self.console.append("Process did not initialize.")
4751 self.console.append("Process did not initialize.")
4752 return
4752 return
4753 else:
4753 else:
4754 filename = TEMPORAL_FILE
4754 filename = TEMPORAL_FILE
4755 projectObj.writeXml( os.path.join(self.pathWorkSpace,filename) )
4755 projectObj.writeXml( os.path.join(self.pathWorkSpace,filename) )
4756
4756
4757 self.actionStart.setEnabled(False)
4757 self.actionStart.setEnabled(False)
4758 self.actionPause.setEnabled(True)
4758 self.actionPause.setEnabled(True)
4759 self.actionStop.setEnabled(True)
4759 self.actionStop.setEnabled(True)
4760
4760
4761 self.actionStarToolbar.setEnabled(False)
4761 self.actionStarToolbar.setEnabled(False)
4762 self.actionPauseToolbar.setEnabled(True)
4762 self.actionPauseToolbar.setEnabled(True)
4763 self.actionStopToolbar.setEnabled(True)
4763 self.actionStopToolbar.setEnabled(True)
4764
4764
4765 self.console.append("Please Wait...")
4765 self.console.append("Please Wait...")
4766
4766
4767 self.controllerThread = ControllerThread(filename)
4767 self.controllerThread = ControllerThread(filename)
4768
4768
4769 # QObject.connect( self.controllerThread, SIGNAL( "jobFinished( PyQt_PyObject )" ), self.jobFinishedFromThread )
4769 # QObject.connect( self.controllerThread, SIGNAL( "jobFinished( PyQt_PyObject )" ), self.jobFinishedFromThread )
4770 # QObject.connect( self.controllerThread, SIGNAL( "jobStarted( PyQt_PyObject )" ), self.jobStartedFromThread )
4770 # QObject.connect( self.controllerThread, SIGNAL( "jobStarted( PyQt_PyObject )" ), self.jobStartedFromThread )
4771 self.console.clear()
4771 self.console.clear()
4772 self.controllerThread.start()
4772 self.controllerThread.start()
4773 sleep(0.5)
4773 sleep(0.5)
4774 self.threadStarted = True
4774 self.threadStarted = True
4775
4775
4776 self.changeStartIcon(started=True)
4776 self.changeStartIcon(started=True)
4777
4777
4778 def stopProject(self):
4778 def stopProject(self):
4779
4779
4780 # self.commCtrlPThread.cmd_q.put(ProcessCommand(ProcessCommand.STOP, True))
4780 # self.commCtrlPThread.cmd_q.put(ProcessCommand(ProcessCommand.STOP, True))
4781 self.controllerThread.stop()
4781 self.controllerThread.stop()
4782 self.threadStarted = False
4782 self.threadStarted = False
4783
4783
4784 while self.controllerThread.isRunning():
4784 while self.controllerThread.isRunning():
4785 sleep(0.5)
4785 sleep(0.5)
4786
4786
4787 self.actionStart.setEnabled(True)
4787 self.actionStart.setEnabled(True)
4788 self.actionPause.setEnabled(False)
4788 self.actionPause.setEnabled(False)
4789 self.actionStop.setEnabled(False)
4789 self.actionStop.setEnabled(False)
4790
4790
4791 self.actionStarToolbar.setEnabled(True)
4791 self.actionStarToolbar.setEnabled(True)
4792 self.actionPauseToolbar.setEnabled(False)
4792 self.actionPauseToolbar.setEnabled(False)
4793 self.actionStopToolbar.setEnabled(False)
4793 self.actionStopToolbar.setEnabled(False)
4794
4794
4795 self.restorePauseIcon()
4795 self.restorePauseIcon()
4796 self.restoreStartIcon()
4796 self.restoreStartIcon()
4797
4797
4798 def pauseProject(self):
4798 def pauseProject(self):
4799
4799
4800 # self.commCtrlPThread.cmd_q.put(ProcessCommand(ProcessCommand.PAUSE, data=True))
4800 # self.commCtrlPThread.cmd_q.put(ProcessCommand(ProcessCommand.PAUSE, data=True))
4801 paused = self.controllerThread.pause()
4801 paused = self.controllerThread.pause()
4802
4802
4803 self.actionStart.setEnabled(False)
4803 self.actionStart.setEnabled(False)
4804 self.actionPause.setEnabled(True)
4804 self.actionPause.setEnabled(True)
4805 self.actionStop.setEnabled(True)
4805 self.actionStop.setEnabled(True)
4806
4806
4807 self.actionStarToolbar.setEnabled(False)
4807 self.actionStarToolbar.setEnabled(False)
4808 self.actionPauseToolbar.setEnabled(True)
4808 self.actionPauseToolbar.setEnabled(True)
4809 self.actionStopToolbar.setEnabled(True)
4809 self.actionStopToolbar.setEnabled(True)
4810
4810
4811 self.changePauseIcon(paused)
4811 self.changePauseIcon(paused)
4812
4812
4813 def saveProject(self, filename=None):
4813 def saveProject(self, filename=None):
4814
4814
4815 self.actionStart.setEnabled(False)
4815 self.actionStart.setEnabled(False)
4816 self.actionStarToolbar.setEnabled(False)
4816 self.actionStarToolbar.setEnabled(False)
4817
4817
4818 projectObj = self.getSelectedProjectObj()
4818 projectObj = self.getSelectedProjectObj()
4819
4819
4820 if not projectObj:
4820 if not projectObj:
4821
4821
4822 if self.create:
4822 if self.create:
4823 self.console.append("Please press Ok before save it")
4823 self.console.append("Please press Ok before save it")
4824 else:
4824 else:
4825 self.console.append("Please select a project before save it")
4825 self.console.append("Please select a project before save it")
4826 return
4826 return
4827
4827
4828 self.refreshGraphicsId()
4828 self.refreshGraphicsId()
4829
4829
4830 sts = True
4830 sts = True
4831 selectedItemObj = self.getSelectedItemObj()
4831 selectedItemObj = self.getSelectedItemObj()
4832
4832
4833 #A Processing Unit has been selected
4833 #A Processing Unit has been selected
4834 if projectObj == selectedItemObj:
4834 if projectObj == selectedItemObj:
4835 if not self.on_proOk_clicked():
4835 if not self.on_proOk_clicked():
4836 return None
4836 return None
4837
4837
4838 #A Processing Unit has been selected
4838 #A Processing Unit has been selected
4839 if projectObj != selectedItemObj:
4839 if projectObj != selectedItemObj:
4840 puObj = selectedItemObj
4840 puObj = selectedItemObj
4841
4841
4842 if puObj.name == 'VoltageProc':
4842 if puObj.name == 'VoltageProc':
4843 sts = self.on_volOpOk_clicked()
4843 sts = self.on_volOpOk_clicked()
4844 if puObj.name == 'SpectraProc':
4844 if puObj.name == 'SpectraProc':
4845 sts = self.on_specOpOk_clicked()
4845 sts = self.on_specOpOk_clicked()
4846 if puObj.name == 'SpectraHeisProc':
4846 if puObj.name == 'SpectraHeisProc':
4847 sts = self.on_specHeisOpOk_clicked()
4847 sts = self.on_specHeisOpOk_clicked()
4848
4848
4849 if not sts:
4849 if not sts:
4850 return None
4850 return None
4851
4851
4852 self.createFTPProcUnitView()
4852 self.createFTPProcUnitView()
4853
4853
4854 if not filename:
4854 if not filename:
4855 filename = os.path.join( str(self.pathWorkSpace), "%s%s" %(str(projectObj.name), '.xml') )
4855 filename = os.path.join( str(self.pathWorkSpace), "%s%s" %(str(projectObj.name), '.xml') )
4856
4856
4857 projectObj.writeXml(filename)
4857 projectObj.writeXml(filename)
4858 self.console.clear()
4858 self.console.clear()
4859 self.console.append("Project saved")
4859 self.console.append("Project saved")
4860 self.console.append("Press Play button to start data processing ...")
4860 self.console.append("Press Play button to start data processing ...")
4861
4861
4862 self.actionSaveToolbar.setEnabled(False)
4862 self.actionSaveToolbar.setEnabled(False)
4863 self.actionStarToolbar.setEnabled(True)
4863 self.actionStarToolbar.setEnabled(True)
4864
4864
4865 self.actionSave.setEnabled(False)
4865 self.actionSave.setEnabled(False)
4866 self.actionStart.setEnabled(True)
4866 self.actionStart.setEnabled(True)
4867
4867
4868 return filename
4868 return filename
4869
4869
4870 def removeItemTreeFromProject(self):
4870 def removeItemTreeFromProject(self):
4871 """
4871 """
4872 Metodo para eliminar el proyecto en el dictionario de proyectos y en el dictionario de vista de arbol
4872 Metodo para eliminar el proyecto en el dictionario de proyectos y en el dictionario de vista de arbol
4873 """
4873 """
4874 for key in self.__itemTreeDict.keys():
4874 for key in self.__itemTreeDict.keys():
4875
4875
4876 #Check again because an item can delete multiple items (childs)
4876 #Check again because an item can delete multiple items (childs)
4877 if key not in self.__itemTreeDict.keys():
4877 if key not in self.__itemTreeDict.keys():
4878 continue
4878 continue
4879
4879
4880 if self.__itemTreeDict[key] != self.selectedItemTree:
4880 if self.__itemTreeDict[key] != self.selectedItemTree:
4881 continue
4881 continue
4882
4882
4883 if self.__projectObjDict.has_key(key) == True:
4883 if self.__projectObjDict.has_key(key) == True:
4884
4884
4885 del self.__projectObjDict[key]
4885 del self.__projectObjDict[key]
4886 del self.__itemTreeDict[key]
4886 del self.__itemTreeDict[key]
4887
4887
4888 else:
4888 else:
4889 puObj = self.__puObjDict[key]
4889 puObj = self.__puObjDict[key]
4890 idProjectParent = puObj.parentId
4890 idProjectParent = puObj.parentId
4891 projectObj = self.__projectObjDict[idProjectParent]
4891 projectObj = self.__projectObjDict[idProjectParent]
4892
4892
4893 del self.__puObjDict[key]
4893 del self.__puObjDict[key]
4894 del self.__itemTreeDict[key]
4894 del self.__itemTreeDict[key]
4895 del projectObj.procUnitConfObjDict[key]
4895 del projectObj.procUnitConfObjDict[key]
4896
4896
4897 for key in projectObj.procUnitConfObjDict.keys():
4897 for key in projectObj.procUnitConfObjDict.keys():
4898 if projectObj.procUnitConfObjDict[key].inputId != puObj.getId():
4898 if projectObj.procUnitConfObjDict[key].inputId != puObj.getId():
4899 continue
4899 continue
4900 del self.__puObjDict[projectObj.procUnitConfObjDict[key].getId()]
4900 del self.__puObjDict[projectObj.procUnitConfObjDict[key].getId()]
4901 del self.__itemTreeDict[projectObj.procUnitConfObjDict[key].getId()]
4901 del self.__itemTreeDict[projectObj.procUnitConfObjDict[key].getId()]
4902 del projectObj.procUnitConfObjDict[key]
4902 del projectObj.procUnitConfObjDict[key]
4903 # print projectObj.procUnitConfObjDict
4903 # print projectObj.procUnitConfObjDict
4904 # print self.__itemTreeDict,self.__projectObjDict,self.__puObjDict
4904 # print self.__itemTreeDict,self.__projectObjDict,self.__puObjDict
4905
4905
4906 def setInputsProject_View(self):
4906 def setInputsProject_View(self):
4907
4907
4908 self.tabWidgetProject.setEnabled(True)
4908 self.tabWidgetProject.setEnabled(True)
4909 self.tabWidgetProject.setCurrentWidget(self.tabProject)
4909 self.tabWidgetProject.setCurrentWidget(self.tabProject)
4910 self.tabProject.setEnabled(True)
4910 self.tabProject.setEnabled(True)
4911 self.frame_2.setEnabled(False)
4911 self.frame_2.setEnabled(False)
4912 self.proName.clear()
4912 self.proName.clear()
4913 self.proName.setFocus()
4913 self.proName.setFocus()
4914 self.proName.setSelection(0, 0)
4914 self.proName.setSelection(0, 0)
4915 self.proName.setCursorPosition(0)
4915 self.proName.setCursorPosition(0)
4916 self.proDataType.setText('.r')
4916 self.proDataType.setText('.r')
4917 self.proDataPath.clear()
4917 self.proDataPath.clear()
4918 self.proComDataType.clear()
4918 self.proComDataType.clear()
4919 self.proComDataType.addItem("Voltage")
4919 self.proComDataType.addItem("Voltage")
4920 self.proComDataType.addItem("Spectra")
4920 self.proComDataType.addItem("Spectra")
4921 self.proComDataType.addItem("Fits")
4921 self.proComDataType.addItem("Fits")
4922 self.proComDataType.addItem("USRP")
4922 self.proComDataType.addItem("USRP")
4923
4923
4924 self.proComStartDate.clear()
4924 self.proComStartDate.clear()
4925 self.proComEndDate.clear()
4925 self.proComEndDate.clear()
4926
4926
4927 startTime = "00:00:00"
4927 startTime = "00:00:00"
4928 endTime = "23:59:59"
4928 endTime = "23:59:59"
4929 starlist = startTime.split(":")
4929 starlist = startTime.split(":")
4930 endlist = endTime.split(":")
4930 endlist = endTime.split(":")
4931 self.proDelay.setText("60")
4931 self.proDelay.setText("60")
4932 self.proSet.setText("")
4932 self.proSet.setText("")
4933
4933
4934 self.labelSet.show()
4934 self.labelSet.show()
4935 self.proSet.show()
4935 self.proSet.show()
4936
4936
4937 self.labelIPPKm.hide()
4937 self.labelIPPKm.hide()
4938 self.proIPPKm.hide()
4938 self.proIPPKm.hide()
4939
4939
4940 self.time.setHMS(int(starlist[0]), int(starlist[1]), int(starlist[2]))
4940 self.time.setHMS(int(starlist[0]), int(starlist[1]), int(starlist[2]))
4941 self.proStartTime.setTime(self.time)
4941 self.proStartTime.setTime(self.time)
4942 self.time.setHMS(int(endlist[0]), int(endlist[1]), int(endlist[2]))
4942 self.time.setHMS(int(endlist[0]), int(endlist[1]), int(endlist[2]))
4943 self.proEndTime.setTime(self.time)
4943 self.proEndTime.setTime(self.time)
4944 self.proDescription.clear()
4944 self.proDescription.clear()
4945 self.proOk.setEnabled(False)
4945 self.proOk.setEnabled(False)
4946 # self.console.append("Please, Write a name Project")
4946 # self.console.append("Please, Write a name Project")
4947 # self.console.append("Introduce Project Parameters")DC
4947 # self.console.append("Introduce Project Parameters")DC
4948 # self.console.append("Select data type Voltage( .rawdata) or Spectra(.pdata)")
4948 # self.console.append("Select data type Voltage( .rawdata) or Spectra(.pdata)")
4949
4949
4950 def clearPUWindow(self, datatype):
4950 def clearPUWindow(self, datatype):
4951
4951
4952 projectObjView = self.getSelectedProjectObj()
4952 projectObjView = self.getSelectedProjectObj()
4953
4953
4954 if not projectObjView:
4954 if not projectObjView:
4955 return
4955 return
4956
4956
4957 puObj = self.getSelectedItemObj()
4957 puObj = self.getSelectedItemObj()
4958 inputId = puObj.getInputId()
4958 inputId = puObj.getInputId()
4959 inputPUObj = projectObjView.getProcUnitObj(inputId)
4959 inputPUObj = projectObjView.getProcUnitObj(inputId)
4960
4960
4961 if datatype == 'Voltage':
4961 if datatype == 'Voltage':
4962 self.volOpComChannels.setEnabled(False)
4962 self.volOpComChannels.setEnabled(False)
4963 self.volOpComHeights.setEnabled(False)
4963 self.volOpComHeights.setEnabled(False)
4964 self.volOpFilter.setEnabled(False)
4964 self.volOpFilter.setEnabled(False)
4965 self.volOpComProfile.setEnabled(False)
4965 self.volOpComProfile.setEnabled(False)
4966 self.volOpComCode.setEnabled(False)
4966 self.volOpComCode.setEnabled(False)
4967 self.volOpCohInt.setEnabled(False)
4967 self.volOpCohInt.setEnabled(False)
4968 self.volOpChannel.setEnabled(False)
4968 self.volOpChannel.setEnabled(False)
4969 self.volOpHeights.setEnabled(False)
4969 self.volOpHeights.setEnabled(False)
4970 self.volOpProfile.setEnabled(False)
4970 self.volOpProfile.setEnabled(False)
4971 self.volOpRadarfrequency.setEnabled(False)
4971 self.volOpRadarfrequency.setEnabled(False)
4972 self.volOpCebChannels.setCheckState(0)
4972 self.volOpCebChannels.setCheckState(0)
4973 self.volOpCebRadarfrequency.setCheckState(0)
4973 self.volOpCebRadarfrequency.setCheckState(0)
4974 self.volOpCebHeights.setCheckState(0)
4974 self.volOpCebHeights.setCheckState(0)
4975 self.volOpCebFilter.setCheckState(0)
4975 self.volOpCebFilter.setCheckState(0)
4976 self.volOpCebProfile.setCheckState(0)
4976 self.volOpCebProfile.setCheckState(0)
4977 self.volOpCebDecodification.setCheckState(0)
4977 self.volOpCebDecodification.setCheckState(0)
4978 self.volOpCebCohInt.setCheckState(0)
4978 self.volOpCebCohInt.setCheckState(0)
4979
4979
4980 self.volOpChannel.clear()
4980 self.volOpChannel.clear()
4981 self.volOpHeights.clear()
4981 self.volOpHeights.clear()
4982 self.volOpProfile.clear()
4982 self.volOpProfile.clear()
4983 self.volOpFilter.clear()
4983 self.volOpFilter.clear()
4984 self.volOpCohInt.clear()
4984 self.volOpCohInt.clear()
4985 self.volOpRadarfrequency.clear()
4985 self.volOpRadarfrequency.clear()
4986
4986
4987 if datatype == 'Spectra':
4987 if datatype == 'Spectra':
4988
4988
4989 if inputPUObj.datatype == 'Spectra':
4989 if inputPUObj.datatype == 'Spectra':
4990 self.specOpnFFTpoints.setEnabled(False)
4990 self.specOpnFFTpoints.setEnabled(False)
4991 self.specOpProfiles.setEnabled(False)
4991 self.specOpProfiles.setEnabled(False)
4992 self.specOpippFactor.setEnabled(False)
4992 self.specOpippFactor.setEnabled(False)
4993 else:
4993 else:
4994 self.specOpnFFTpoints.setEnabled(True)
4994 self.specOpnFFTpoints.setEnabled(True)
4995 self.specOpProfiles.setEnabled(True)
4995 self.specOpProfiles.setEnabled(True)
4996 self.specOpippFactor.setEnabled(True)
4996 self.specOpippFactor.setEnabled(True)
4997
4997
4998 self.specOpCebCrossSpectra.setCheckState(0)
4998 self.specOpCebCrossSpectra.setCheckState(0)
4999 self.specOpCebChannel.setCheckState(0)
4999 self.specOpCebChannel.setCheckState(0)
5000 self.specOpCebHeights.setCheckState(0)
5000 self.specOpCebHeights.setCheckState(0)
5001 self.specOpCebIncoherent.setCheckState(0)
5001 self.specOpCebIncoherent.setCheckState(0)
5002 self.specOpCebRemoveDC.setCheckState(0)
5002 self.specOpCebRemoveDC.setCheckState(0)
5003 self.specOpCebRemoveInt.setCheckState(0)
5003 self.specOpCebRemoveInt.setCheckState(0)
5004 self.specOpCebgetNoise.setCheckState(0)
5004 self.specOpCebgetNoise.setCheckState(0)
5005 self.specOpCebRadarfrequency.setCheckState(0)
5005 self.specOpCebRadarfrequency.setCheckState(0)
5006
5006
5007 self.specOpRadarfrequency.setEnabled(False)
5007 self.specOpRadarfrequency.setEnabled(False)
5008 self.specOppairsList.setEnabled(False)
5008 self.specOppairsList.setEnabled(False)
5009 self.specOpChannel.setEnabled(False)
5009 self.specOpChannel.setEnabled(False)
5010 self.specOpHeights.setEnabled(False)
5010 self.specOpHeights.setEnabled(False)
5011 self.specOpIncoherent.setEnabled(False)
5011 self.specOpIncoherent.setEnabled(False)
5012 self.specOpgetNoise.setEnabled(False)
5012 self.specOpgetNoise.setEnabled(False)
5013
5013
5014 self.specOpRadarfrequency.clear()
5014 self.specOpRadarfrequency.clear()
5015 self.specOpnFFTpoints.clear()
5015 self.specOpnFFTpoints.clear()
5016 self.specOpProfiles.clear()
5016 self.specOpProfiles.clear()
5017 self.specOpippFactor.clear
5017 self.specOpippFactor.clear
5018 self.specOppairsList.clear()
5018 self.specOppairsList.clear()
5019 self.specOpChannel.clear()
5019 self.specOpChannel.clear()
5020 self.specOpHeights.clear()
5020 self.specOpHeights.clear()
5021 self.specOpIncoherent.clear()
5021 self.specOpIncoherent.clear()
5022 self.specOpgetNoise.clear()
5022 self.specOpgetNoise.clear()
5023
5023
5024 self.specGraphCebSpectraplot.setCheckState(0)
5024 self.specGraphCebSpectraplot.setCheckState(0)
5025 self.specGraphCebCrossSpectraplot.setCheckState(0)
5025 self.specGraphCebCrossSpectraplot.setCheckState(0)
5026 self.specGraphCebRTIplot.setCheckState(0)
5026 self.specGraphCebRTIplot.setCheckState(0)
5027 self.specGraphCebRTInoise.setCheckState(0)
5027 self.specGraphCebRTInoise.setCheckState(0)
5028 self.specGraphCebCoherencmap.setCheckState(0)
5028 self.specGraphCebCoherencmap.setCheckState(0)
5029 self.specGraphPowerprofile.setCheckState(0)
5029 self.specGraphPowerprofile.setCheckState(0)
5030
5030
5031 self.specGraphSaveSpectra.setCheckState(0)
5031 self.specGraphSaveSpectra.setCheckState(0)
5032 self.specGraphSaveCross.setCheckState(0)
5032 self.specGraphSaveCross.setCheckState(0)
5033 self.specGraphSaveRTIplot.setCheckState(0)
5033 self.specGraphSaveRTIplot.setCheckState(0)
5034 self.specGraphSaveRTInoise.setCheckState(0)
5034 self.specGraphSaveRTInoise.setCheckState(0)
5035 self.specGraphSaveCoherencemap.setCheckState(0)
5035 self.specGraphSaveCoherencemap.setCheckState(0)
5036 self.specGraphSavePowerprofile.setCheckState(0)
5036 self.specGraphSavePowerprofile.setCheckState(0)
5037
5037
5038 self.specGraphftpRTIplot.setCheckState(0)
5038 self.specGraphftpRTIplot.setCheckState(0)
5039 self.specGraphftpRTInoise.setCheckState(0)
5039 self.specGraphftpRTInoise.setCheckState(0)
5040 self.specGraphftpCoherencemap.setCheckState(0)
5040 self.specGraphftpCoherencemap.setCheckState(0)
5041
5041
5042 self.specGraphPath.clear()
5042 self.specGraphPath.clear()
5043 self.specGraphPrefix.clear()
5043 self.specGraphPrefix.clear()
5044
5044
5045 self.specGgraphftpratio.clear()
5045 self.specGgraphftpratio.clear()
5046
5046
5047 self.specGgraphChannelList.clear()
5047 self.specGgraphChannelList.clear()
5048 self.specGgraphFreq.clear()
5048 self.specGgraphFreq.clear()
5049 self.specGgraphHeight.clear()
5049 self.specGgraphHeight.clear()
5050 self.specGgraphDbsrange.clear()
5050 self.specGgraphDbsrange.clear()
5051 self.specGgraphmagnitud.clear()
5051 self.specGgraphmagnitud.clear()
5052 self.specGgraphTminTmax.clear()
5052 self.specGgraphTminTmax.clear()
5053 self.specGgraphTimeRange.clear()
5053 self.specGgraphTimeRange.clear()
5054
5054
5055 if datatype == 'SpectraHeis':
5055 if datatype == 'SpectraHeis':
5056 self.specHeisOpCebIncoherent.setCheckState(0)
5056 self.specHeisOpCebIncoherent.setCheckState(0)
5057 self.specHeisOpIncoherent.setEnabled(False)
5057 self.specHeisOpIncoherent.setEnabled(False)
5058 self.specHeisOpIncoherent.clear()
5058 self.specHeisOpIncoherent.clear()
5059
5059
5060 self.specHeisGraphCebSpectraplot.setCheckState(0)
5060 self.specHeisGraphCebSpectraplot.setCheckState(0)
5061 self.specHeisGraphCebRTIplot.setCheckState(0)
5061 self.specHeisGraphCebRTIplot.setCheckState(0)
5062
5062
5063 self.specHeisGraphSaveSpectra.setCheckState(0)
5063 self.specHeisGraphSaveSpectra.setCheckState(0)
5064 self.specHeisGraphSaveRTIplot.setCheckState(0)
5064 self.specHeisGraphSaveRTIplot.setCheckState(0)
5065
5065
5066 self.specHeisGraphftpSpectra.setCheckState(0)
5066 self.specHeisGraphftpSpectra.setCheckState(0)
5067 self.specHeisGraphftpRTIplot.setCheckState(0)
5067 self.specHeisGraphftpRTIplot.setCheckState(0)
5068
5068
5069 self.specHeisGraphPath.clear()
5069 self.specHeisGraphPath.clear()
5070 self.specHeisGraphPrefix.clear()
5070 self.specHeisGraphPrefix.clear()
5071 self.specHeisGgraphChannelList.clear()
5071 self.specHeisGgraphChannelList.clear()
5072 self.specHeisGgraphXminXmax.clear()
5072 self.specHeisGgraphXminXmax.clear()
5073 self.specHeisGgraphYminYmax.clear()
5073 self.specHeisGgraphYminYmax.clear()
5074 self.specHeisGgraphTminTmax.clear()
5074 self.specHeisGgraphTminTmax.clear()
5075 self.specHeisGgraphTimeRange.clear()
5075 self.specHeisGgraphTimeRange.clear()
5076 self.specHeisGgraphftpratio.clear()
5076 self.specHeisGgraphftpratio.clear()
5077
5077
5078 def showtabPUCreated(self, datatype):
5078 def showtabPUCreated(self, datatype):
5079
5079
5080 if datatype == "Voltage":
5080 if datatype == "Voltage":
5081 self.tabVoltage.setEnabled(True)
5081 self.tabVoltage.setEnabled(True)
5082 self.tabProject.setEnabled(False)
5082 self.tabProject.setEnabled(False)
5083 self.tabSpectra.setEnabled(False)
5083 self.tabSpectra.setEnabled(False)
5084 self.tabCorrelation.setEnabled(False)
5084 self.tabCorrelation.setEnabled(False)
5085 self.tabSpectraHeis.setEnabled(False)
5085 self.tabSpectraHeis.setEnabled(False)
5086 self.tabWidgetProject.setCurrentWidget(self.tabVoltage)
5086 self.tabWidgetProject.setCurrentWidget(self.tabVoltage)
5087
5087
5088 if datatype == "Spectra":
5088 if datatype == "Spectra":
5089 self.tabVoltage.setEnabled(False)
5089 self.tabVoltage.setEnabled(False)
5090 self.tabProject.setEnabled(False)
5090 self.tabProject.setEnabled(False)
5091 self.tabSpectra.setEnabled(True)
5091 self.tabSpectra.setEnabled(True)
5092 self.tabCorrelation.setEnabled(False)
5092 self.tabCorrelation.setEnabled(False)
5093 self.tabSpectraHeis.setEnabled(False)
5093 self.tabSpectraHeis.setEnabled(False)
5094 self.tabWidgetProject.setCurrentWidget(self.tabSpectra)
5094 self.tabWidgetProject.setCurrentWidget(self.tabSpectra)
5095
5095
5096 if datatype == "SpectraHeis":
5096 if datatype == "SpectraHeis":
5097 self.tabVoltage.setEnabled(False)
5097 self.tabVoltage.setEnabled(False)
5098 self.tabProject.setEnabled(False)
5098 self.tabProject.setEnabled(False)
5099 self.tabSpectra.setEnabled(False)
5099 self.tabSpectra.setEnabled(False)
5100 self.tabCorrelation.setEnabled(False)
5100 self.tabCorrelation.setEnabled(False)
5101 self.tabSpectraHeis.setEnabled(True)
5101 self.tabSpectraHeis.setEnabled(True)
5102 self.tabWidgetProject.setCurrentWidget(self.tabSpectraHeis)
5102 self.tabWidgetProject.setCurrentWidget(self.tabSpectraHeis)
5103
5103
5104 def checkInputsProject(self):
5104 def checkInputsProject(self):
5105 """
5105 """
5106 Check Inputs Project:
5106 Check Inputs Project:
5107 - project_name
5107 - project_name
5108 - datatype
5108 - datatype
5109 - ext
5109 - ext
5110 - data_path
5110 - data_path
5111 - readmode
5111 - readmode
5112 - delay
5112 - delay
5113 - set
5113 - set
5114 - walk
5114 - walk
5115 """
5115 """
5116 parms_ok = True
5116 parms_ok = True
5117 project_name = str(self.proName.text())
5117 project_name = str(self.proName.text())
5118 if project_name == '' or project_name == None:
5118 if project_name == '' or project_name == None:
5119 outputstr = "Enter the Project Name"
5119 outputstr = "Enter the Project Name"
5120 self.console.append(outputstr)
5120 self.console.append(outputstr)
5121 parms_ok = False
5121 parms_ok = False
5122 project_name = None
5122 project_name = None
5123
5123
5124 datatype = str(self.proComDataType.currentText())
5124 datatype = str(self.proComDataType.currentText())
5125 if not(datatype in ['Voltage', 'Spectra', 'Fits', 'USRP']):
5125 if not(datatype in ['Voltage', 'Spectra', 'Fits', 'USRP']):
5126 outputstr = 'datatype = %s, this must be either Voltage, Spectra, SpectraHeis or USRP' % datatype
5126 outputstr = 'datatype = %s, this must be either Voltage, Spectra, SpectraHeis or USRP' % datatype
5127 self.console.append(outputstr)
5127 self.console.append(outputstr)
5128 parms_ok = False
5128 parms_ok = False
5129 datatype = None
5129 datatype = None
5130
5130
5131 ext = str(self.proDataType.text())
5131 ext = str(self.proDataType.text())
5132 if not(ext in ['.r', '.pdata', '.fits', '.hdf5']):
5132 if not(ext in ['.r', '.pdata', '.fits', '.hdf5']):
5133 outputstr = "extension files must be .r , .pdata, .fits or .hdf5"
5133 outputstr = "extension files must be .r , .pdata, .fits or .hdf5"
5134 self.console.append(outputstr)
5134 self.console.append(outputstr)
5135 parms_ok = False
5135 parms_ok = False
5136 ext = None
5136 ext = None
5137
5137
5138 data_path = str(self.proDataPath.text())
5138 data_path = str(self.proDataPath.text())
5139
5139
5140 if data_path == '':
5140 if data_path == '':
5141 outputstr = 'Datapath is empty'
5141 outputstr = 'Datapath is empty'
5142 self.console.append(outputstr)
5142 self.console.append(outputstr)
5143 parms_ok = False
5143 parms_ok = False
5144 data_path = None
5144 data_path = None
5145
5145
5146 if data_path != None:
5146 if data_path != None:
5147 if not os.path.isdir(data_path):
5147 if not os.path.isdir(data_path):
5148 outputstr = 'Datapath:%s does not exists' % data_path
5148 outputstr = 'Datapath:%s does not exists' % data_path
5149 self.console.append(outputstr)
5149 self.console.append(outputstr)
5150 parms_ok = False
5150 parms_ok = False
5151 data_path = None
5151 data_path = None
5152
5152
5153 read_mode = str(self.proComReadMode.currentText())
5153 read_mode = str(self.proComReadMode.currentText())
5154 if not(read_mode in ['Online', 'Offline']):
5154 if not(read_mode in ['Online', 'Offline']):
5155 outputstr = 'Read Mode: %s, this must be either Online or Offline' % read_mode
5155 outputstr = 'Read Mode: %s, this must be either Online or Offline' % read_mode
5156 self.console.append(outputstr)
5156 self.console.append(outputstr)
5157 parms_ok = False
5157 parms_ok = False
5158 read_mode = None
5158 read_mode = None
5159
5159
5160 delay = None
5160 delay = None
5161 if read_mode == "Online":
5161 if read_mode == "Online":
5162 parms_ok = False
5162 parms_ok = False
5163 try:
5163 try:
5164 delay = int(str(self.proDelay.text()))
5164 delay = int(str(self.proDelay.text()))
5165 parms_ok = True
5165 parms_ok = True
5166 except:
5166 except:
5167 outputstr = 'Delay: %s, this must be a integer number' % str(self.proDelay.text())
5167 outputstr = 'Delay: %s, this must be a integer number' % str(self.proDelay.text())
5168 self.console.append(outputstr)
5168 self.console.append(outputstr)
5169
5169
5170 try:
5170 try:
5171 set = int(str(self.proSet.text()))
5171 set = int(str(self.proSet.text()))
5172 except:
5172 except:
5173 # outputstr = 'Set: %s, this must be a integer number' % str(self.proName.text())
5173 # outputstr = 'Set: %s, this must be a integer number' % str(self.proName.text())
5174 # self.console.append(outputstr)
5174 # self.console.append(outputstr)
5175 # parms_ok = False
5175 # parms_ok = False
5176 set = None
5176 set = None
5177
5177
5178 walk = int(self.proComWalk.currentIndex())
5178 walk = int(self.proComWalk.currentIndex())
5179 expLabel = str(self.proExpLabel.text())
5179 expLabel = str(self.proExpLabel.text())
5180
5180
5181 return parms_ok, project_name, datatype, ext, data_path, read_mode, delay, walk, set, expLabel
5181 return parms_ok, project_name, datatype, ext, data_path, read_mode, delay, walk, set, expLabel
5182
5182
5183 def checkInputsPUSave(self, datatype):
5183 def checkInputsPUSave(self, datatype):
5184 """
5184 """
5185 Check Inputs Spectra Save:
5185 Check Inputs Spectra Save:
5186 - path
5186 - path
5187 - blocks Per File
5187 - blocks Per File
5188 - sufix
5188 - sufix
5189 - dataformat
5189 - dataformat
5190 """
5190 """
5191 parms_ok = True
5191 parms_ok = True
5192
5192
5193 if datatype == "Voltage":
5193 if datatype == "Voltage":
5194 output_path = str(self.volOutputPath.text())
5194 output_path = str(self.volOutputPath.text())
5195 blocksperfile = str(self.volOutputblocksperfile.text())
5195 blocksperfile = str(self.volOutputblocksperfile.text())
5196 profilesperblock = str(self.volOutputprofilesperblock.text())
5196 profilesperblock = str(self.volOutputprofilesperblock.text())
5197
5197
5198 if datatype == "Spectra":
5198 if datatype == "Spectra":
5199 output_path = str(self.specOutputPath.text())
5199 output_path = str(self.specOutputPath.text())
5200 blocksperfile = str(self.specOutputblocksperfile.text())
5200 blocksperfile = str(self.specOutputblocksperfile.text())
5201 profilesperblock = 0
5201 profilesperblock = 0
5202
5202
5203 if datatype == "SpectraHeis":
5203 if datatype == "SpectraHeis":
5204 output_path = str(self.specHeisOutputPath.text())
5204 output_path = str(self.specHeisOutputPath.text())
5205 blocksperfile = str(self.specHeisOutputblocksperfile.text())
5205 blocksperfile = str(self.specHeisOutputblocksperfile.text())
5206 metadata_file = str(self.specHeisOutputMetada.text())
5206 metadata_file = str(self.specHeisOutputMetada.text())
5207
5207
5208 if output_path == '':
5208 if output_path == '':
5209 outputstr = 'Outputpath is empty'
5209 outputstr = 'Outputpath is empty'
5210 self.console.append(outputstr)
5210 self.console.append(outputstr)
5211 parms_ok = False
5211 parms_ok = False
5212
5212
5213 if not os.path.isdir(output_path):
5213 if not os.path.isdir(output_path):
5214 outputstr = 'OutputPath:%s does not exists' % output_path
5214 outputstr = 'OutputPath:%s does not exists' % output_path
5215 self.console.append(outputstr)
5215 self.console.append(outputstr)
5216 parms_ok = False
5216 parms_ok = False
5217
5217
5218 try:
5218 try:
5219 profilesperblock = int(profilesperblock)
5219 profilesperblock = int(profilesperblock)
5220 except:
5220 except:
5221 if datatype == "Voltage":
5221 if datatype == "Voltage":
5222 outputstr = 'Profilesperblock: %s, this must be a integer number' % str(self.volOutputprofilesperblock.text())
5222 outputstr = 'Profilesperblock: %s, this must be a integer number' % str(self.volOutputprofilesperblock.text())
5223 self.console.append(outputstr)
5223 self.console.append(outputstr)
5224 parms_ok = False
5224 parms_ok = False
5225 profilesperblock = None
5225 profilesperblock = None
5226
5226
5227 try:
5227 try:
5228 blocksperfile = int(blocksperfile)
5228 blocksperfile = int(blocksperfile)
5229 except:
5229 except:
5230 if datatype == "Voltage":
5230 if datatype == "Voltage":
5231 outputstr = 'Blocksperfile: %s, this must be a integer number' % str(self.volOutputblocksperfile.text())
5231 outputstr = 'Blocksperfile: %s, this must be a integer number' % str(self.volOutputblocksperfile.text())
5232 elif datatype == "Spectra":
5232 elif datatype == "Spectra":
5233 outputstr = 'Blocksperfile: %s, this must be a integer number' % str(self.specOutputblocksperfile.text())
5233 outputstr = 'Blocksperfile: %s, this must be a integer number' % str(self.specOutputblocksperfile.text())
5234 elif datatype == "SpectraHeis":
5234 elif datatype == "SpectraHeis":
5235 outputstr = 'Blocksperfile: %s, this must be a integer number' % str(self.specHeisOutputblocksperfile.text())
5235 outputstr = 'Blocksperfile: %s, this must be a integer number' % str(self.specHeisOutputblocksperfile.text())
5236
5236
5237 self.console.append(outputstr)
5237 self.console.append(outputstr)
5238 parms_ok = False
5238 parms_ok = False
5239 blocksperfile = None
5239 blocksperfile = None
5240
5240
5241 if datatype == "SpectraHeis":
5241 if datatype == "SpectraHeis":
5242 if metadata_file != '':
5242 if metadata_file != '':
5243 if not os.path.isfile(metadata_file):
5243 if not os.path.isfile(metadata_file):
5244 outputstr = 'Metadata file %s does not exist' % metadata_file
5244 outputstr = 'Metadata file %s does not exist' % metadata_file
5245 self.console.append(outputstr)
5245 self.console.append(outputstr)
5246 parms_ok = False
5246 parms_ok = False
5247
5247
5248 if datatype == "Voltage":
5248 if datatype == "Voltage":
5249 return parms_ok, output_path, blocksperfile, profilesperblock
5249 return parms_ok, output_path, blocksperfile, profilesperblock
5250
5250
5251
5251
5252 if datatype == "Spectra":
5252 if datatype == "Spectra":
5253 return parms_ok, output_path, blocksperfile, profilesperblock
5253 return parms_ok, output_path, blocksperfile, profilesperblock
5254
5254
5255
5255
5256 if datatype == "SpectraHeis":
5256 if datatype == "SpectraHeis":
5257 return parms_ok, output_path, blocksperfile, metadata_file
5257 return parms_ok, output_path, blocksperfile, metadata_file
5258
5258
5259 def findDatafiles(self, data_path, ext, walk, expLabel=''):
5259 def findDatafiles(self, data_path, ext, walk, expLabel=''):
5260
5260
5261 dateList = []
5261 dateList = []
5262 fileList = []
5262 fileList = []
5263
5263
5264 if ext == ".r":
5264 if ext == ".r":
5265 from schainpy.model.io.jroIO_base import JRODataReader
5265 from schainpy.model.io.jroIO_base import JRODataReader
5266
5266
5267 readerObj = JRODataReader()
5267 readerObj = JRODataReader()
5268 dateList = readerObj.findDatafiles(path=data_path,
5268 dateList = readerObj.findDatafiles(path=data_path,
5269 expLabel=expLabel,
5269 expLabel=expLabel,
5270 ext=ext,
5270 ext=ext,
5271 walk=walk)
5271 walk=walk)
5272
5272
5273 if ext == ".pdata":
5273 if ext == ".pdata":
5274 from schainpy.model.io.jroIO_base import JRODataReader
5274 from schainpy.model.io.jroIO_base import JRODataReader
5275
5275
5276 readerObj = JRODataReader()
5276 readerObj = JRODataReader()
5277 dateList = readerObj.findDatafiles(path=data_path,
5277 dateList = readerObj.findDatafiles(path=data_path,
5278 expLabel=expLabel,
5278 expLabel=expLabel,
5279 ext=ext,
5279 ext=ext,
5280 walk=walk)
5280 walk=walk)
5281
5281
5282 if ext == ".fits":
5282 if ext == ".fits":
5283 from schainpy.model.io.jroIO_base import JRODataReader
5283 from schainpy.model.io.jroIO_base import JRODataReader
5284
5284
5285 readerObj = JRODataReader()
5285 readerObj = JRODataReader()
5286 dateList = readerObj.findDatafiles(path=data_path,
5286 dateList = readerObj.findDatafiles(path=data_path,
5287 expLabel=expLabel,
5287 expLabel=expLabel,
5288 ext=ext,
5288 ext=ext,
5289 walk=walk)
5289 walk=walk)
5290
5290
5291 if ext == ".hdf5":
5291 if ext == ".hdf5":
5292 from schainpy.model.io.jroIO_usrp import USRPReader
5292 from schainpy.model.io.jroIO_usrp import USRPReader
5293
5293
5294 readerObj = USRPReader()
5294 readerObj = USRPReader()
5295 dateList = readerObj.findDatafiles(path=data_path)
5295 dateList = readerObj.findDatafiles(path=data_path)
5296
5296
5297 return dateList
5297 return dateList
5298
5298
5299 def loadDays(self, data_path, ext, walk, expLabel=''):
5299 def loadDays(self, data_path, ext, walk, expLabel=''):
5300 """
5300 """
5301 Method to loads day
5301 Method to loads day
5302 """
5302 """
5303 self.actionSaveToolbar.setEnabled(False)
5303 self.actionSaveToolbar.setEnabled(False)
5304 self.actionStarToolbar.setEnabled(False)
5304 self.actionStarToolbar.setEnabled(False)
5305
5305
5306 self.actionSave.setEnabled(False)
5306 self.actionSave.setEnabled(False)
5307 self.actionStart.setEnabled(False)
5307 self.actionStart.setEnabled(False)
5308
5308
5309 self.proOk.setEnabled(False)
5309 self.proOk.setEnabled(False)
5310 self.proComStartDate.clear()
5310 self.proComStartDate.clear()
5311 self.proComEndDate.clear()
5311 self.proComEndDate.clear()
5312
5312
5313 self.dateList = []
5313 self.dateList = []
5314
5314
5315 if not data_path:
5315 if not data_path:
5316 return []
5316 return []
5317
5317
5318 if not os.path.isdir(data_path):
5318 if not os.path.isdir(data_path):
5319 return []
5319 return []
5320
5320
5321 self.dataPath = data_path
5321 self.dataPath = data_path
5322
5322
5323 dateList = self.findDatafiles(data_path, ext=ext, walk=walk, expLabel=expLabel)
5323 dateList = self.findDatafiles(data_path, ext=ext, walk=walk, expLabel=expLabel)
5324
5324
5325 if not dateList:
5325 if not dateList:
5326 # self.console.clear()
5326 # self.console.clear()
5327 if walk:
5327 if walk:
5328 if expLabel:
5328 if expLabel:
5329 outputstr = "No files (*%s) were found on %s/DOYPATH/%s" % (ext, data_path, expLabel)
5329 outputstr = "No files (*%s) were found on %s/DOYPATH/%s" % (ext, data_path, expLabel)
5330 else:
5330 else:
5331 outputstr = "No files (*%s) were found on %s" % (ext, data_path)
5331 outputstr = "No files (*%s) were found on %s" % (ext, data_path)
5332 else:
5332 else:
5333 outputstr = "No files (*%s) were found on %s" % (ext, data_path)
5333 outputstr = "No files (*%s) were found on %s" % (ext, data_path)
5334
5334
5335 self.console.append(outputstr)
5335 self.console.append(outputstr)
5336 return []
5336 return []
5337
5337
5338 dateStrList = []
5338 dateStrList = []
5339 for thisDate in dateList:
5339 for thisDate in dateList:
5340 dateStr = thisDate.strftime("%Y/%m/%d")
5340 dateStr = thisDate.strftime("%Y/%m/%d")
5341
5341
5342 self.proComStartDate.addItem(dateStr)
5342 self.proComStartDate.addItem(dateStr)
5343 self.proComEndDate.addItem(dateStr)
5343 self.proComEndDate.addItem(dateStr)
5344 dateStrList.append(dateStr)
5344 dateStrList.append(dateStr)
5345
5345
5346 self.proComStartDate.setCurrentIndex(0)
5346 self.proComStartDate.setCurrentIndex(0)
5347 self.proComEndDate.setCurrentIndex(self.proComEndDate.count() - 1)
5347 self.proComEndDate.setCurrentIndex(self.proComEndDate.count() - 1)
5348
5348
5349 self.dateList = dateStrList
5349 self.dateList = dateStrList
5350
5350
5351 self.proOk.setEnabled(True)
5351 self.proOk.setEnabled(True)
5352
5352
5353 self.actionSaveToolbar.setEnabled(True)
5353 self.actionSaveToolbar.setEnabled(True)
5354 self.actionStarToolbar.setEnabled(True)
5354 self.actionStarToolbar.setEnabled(True)
5355
5355
5356 self.actionSave.setEnabled(True)
5356 self.actionSave.setEnabled(True)
5357 self.actionStart.setEnabled(True)
5357 self.actionStart.setEnabled(True)
5358
5358
5359 self.console.clear()
5359 self.console.clear()
5360 self.console.append("Successful load")
5360 self.console.append("Successful load")
5361
5361
5362 return self.dateList
5362 return self.dateList
5363
5363
5364 def setWorkSpaceGUI(self, pathWorkSpace=None):
5364 def setWorkSpaceGUI(self, pathWorkSpace=None):
5365
5365
5366 if pathWorkSpace == None:
5366 if pathWorkSpace == None:
5367 home = os.path.expanduser("~")
5367 home = os.path.expanduser("~")
5368 pathWorkSpace = os.path.join(home,'schain_workspace')
5368 pathWorkSpace = os.path.join(home,'schain_workspace')
5369
5369
5370 self.pathWorkSpace = pathWorkSpace
5370 self.pathWorkSpace = pathWorkSpace
5371
5371
5372 """
5372 """
5373 Comandos Usados en Console
5373 Comandos Usados en Console
5374 """
5374 """
5375 def __del__(self):
5375 def __del__(self):
5376 sys.stdout = sys.__stdout__
5376 sys.stdout = sys.__stdout__
5377 sys.stderr = sys.__stderr__
5377 sys.stderr = sys.__stderr__
5378
5378
5379 def normalOutputWritten(self, text):
5379 def normalOutputWritten(self, text):
5380 color_black = QtGui.QColor(0,0,0)
5380 color_black = QtGui.QColor(0,0,0)
5381 self.console.setTextColor(color_black)
5381 self.console.setTextColor(color_black)
5382 self.console.append(text)
5382 self.console.append(text)
5383
5383
5384 def errorOutputWritten(self, text):
5384 def errorOutputWritten(self, text):
5385 color_red = QtGui.QColor(255,0,0)
5385 color_red = QtGui.QColor(255,0,0)
5386 color_black = QtGui.QColor(0,0,0)
5386 color_black = QtGui.QColor(0,0,0)
5387
5387
5388 self.console.setTextColor(color_red)
5388 self.console.setTextColor(color_red)
5389 self.console.append(text)
5389 self.console.append(text)
5390 self.console.setTextColor(color_black)
5390 self.console.setTextColor(color_black)
5391
5391
5392 def setGUIStatus(self):
5392 def setGUIStatus(self):
5393
5393
5394 self.setWindowTitle("ROJ-Signal Chain")
5394 self.setWindowTitle("ROJ-Signal Chain")
5395 self.setWindowIcon(QtGui.QIcon( os.path.join(FIGURES_PATH,"logo.png") ))
5395 self.setWindowIcon(QtGui.QIcon( os.path.join(FIGURES_PATH,"logo.png") ))
5396
5396
5397 self.tabWidgetProject.setEnabled(False)
5397 self.tabWidgetProject.setEnabled(False)
5398 self.tabVoltage.setEnabled(False)
5398 self.tabVoltage.setEnabled(False)
5399 self.tabSpectra.setEnabled(False)
5399 self.tabSpectra.setEnabled(False)
5400 self.tabCorrelation.setEnabled(False)
5400 self.tabCorrelation.setEnabled(False)
5401 self.frame_2.setEnabled(False)
5401 self.frame_2.setEnabled(False)
5402
5402
5403 self.actionCreate.setShortcut('Ctrl+N')
5403 self.actionCreate.setShortcut('Ctrl+N')
5404 self.actionOpen.setShortcut('Ctrl+O')
5404 self.actionOpen.setShortcut('Ctrl+O')
5405 self.actionSave.setShortcut('Ctrl+S')
5405 self.actionSave.setShortcut('Ctrl+S')
5406 self.actionClose.setShortcut('Ctrl+X')
5406 self.actionClose.setShortcut('Ctrl+X')
5407
5407
5408 self.actionStart.setShortcut('Ctrl+1')
5408 self.actionStart.setShortcut('Ctrl+1')
5409 self.actionPause.setShortcut('Ctrl+2')
5409 self.actionPause.setShortcut('Ctrl+2')
5410 self.actionStop.setShortcut('Ctrl+3')
5410 self.actionStop.setShortcut('Ctrl+3')
5411
5411
5412 self.actionFTP.setShortcut('Ctrl+F')
5412 self.actionFTP.setShortcut('Ctrl+F')
5413
5413
5414 self.actionStart.setEnabled(False)
5414 self.actionStart.setEnabled(False)
5415 self.actionPause.setEnabled(False)
5415 self.actionPause.setEnabled(False)
5416 self.actionStop.setEnabled(False)
5416 self.actionStop.setEnabled(False)
5417
5417
5418 self.actionStarToolbar.setEnabled(False)
5418 self.actionStarToolbar.setEnabled(False)
5419 self.actionPauseToolbar.setEnabled(False)
5419 self.actionPauseToolbar.setEnabled(False)
5420 self.actionStopToolbar.setEnabled(False)
5420 self.actionStopToolbar.setEnabled(False)
5421
5421
5422 self.proName.clear()
5422 self.proName.clear()
5423 self.proDataPath.setText('')
5423 self.proDataPath.setText('')
5424 self.console.setReadOnly(True)
5424 self.console.setReadOnly(True)
5425 self.console.append("Welcome to Signal Chain\nOpen a project or Create a new one")
5425 self.console.append("Welcome to Signal Chain\nOpen a project or Create a new one")
5426 self.proStartTime.setDisplayFormat("hh:mm:ss")
5426 self.proStartTime.setDisplayFormat("hh:mm:ss")
5427 self.proDataType.setEnabled(False)
5427 self.proDataType.setEnabled(False)
5428 self.time = QtCore.QTime()
5428 self.time = QtCore.QTime()
5429 self.hour = 0
5429 self.hour = 0
5430 self.min = 0
5430 self.min = 0
5431 self.sec = 0
5431 self.sec = 0
5432 self.proEndTime.setDisplayFormat("hh:mm:ss")
5432 self.proEndTime.setDisplayFormat("hh:mm:ss")
5433 startTime = "00:00:00"
5433 startTime = "00:00:00"
5434 endTime = "23:59:59"
5434 endTime = "23:59:59"
5435 starlist = startTime.split(":")
5435 starlist = startTime.split(":")
5436 endlist = endTime.split(":")
5436 endlist = endTime.split(":")
5437 self.time.setHMS(int(starlist[0]), int(starlist[1]), int(starlist[2]))
5437 self.time.setHMS(int(starlist[0]), int(starlist[1]), int(starlist[2]))
5438 self.proStartTime.setTime(self.time)
5438 self.proStartTime.setTime(self.time)
5439 self.time.setHMS(int(endlist[0]), int(endlist[1]), int(endlist[2]))
5439 self.time.setHMS(int(endlist[0]), int(endlist[1]), int(endlist[2]))
5440 self.proEndTime.setTime(self.time)
5440 self.proEndTime.setTime(self.time)
5441 self.proOk.setEnabled(False)
5441 self.proOk.setEnabled(False)
5442 # set model Project Explorer
5442 # set model Project Explorer
5443 self.projectExplorerModel = QtGui.QStandardItemModel()
5443 self.projectExplorerModel = QtGui.QStandardItemModel()
5444 self.projectExplorerModel.setHorizontalHeaderLabels(("Project Explorer",))
5444 self.projectExplorerModel.setHorizontalHeaderLabels(("Project Explorer",))
5445 layout = QtGui.QVBoxLayout()
5445 layout = QtGui.QVBoxLayout()
5446 layout.addWidget(self.projectExplorerTree)
5446 layout.addWidget(self.projectExplorerTree)
5447 self.projectExplorerTree.setModel(self.projectExplorerModel)
5447 self.projectExplorerTree.setModel(self.projectExplorerModel)
5448 self.projectExplorerTree.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
5448 self.projectExplorerTree.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
5449 self.projectExplorerTree.customContextMenuRequested.connect(self.on_right_click)
5449 self.projectExplorerTree.customContextMenuRequested.connect(self.on_right_click)
5450 self.projectExplorerTree.clicked.connect(self.on_click)
5450 self.projectExplorerTree.clicked.connect(self.on_click)
5451 self.projectExplorerTree.expandAll()
5451 self.projectExplorerTree.expandAll()
5452 # set model Project Properties
5452 # set model Project Properties
5453
5453
5454 self.propertiesModel = TreeModel()
5454 self.propertiesModel = TreeModel()
5455 self.propertiesModel.initProjectView()
5455 self.propertiesModel.initProjectView()
5456 self.treeProjectProperties.setModel(self.propertiesModel)
5456 self.treeProjectProperties.setModel(self.propertiesModel)
5457 self.treeProjectProperties.expandAll()
5457 self.treeProjectProperties.expandAll()
5458 self.treeProjectProperties.allColumnsShowFocus()
5458 self.treeProjectProperties.allColumnsShowFocus()
5459 self.treeProjectProperties.resizeColumnToContents(1)
5459 self.treeProjectProperties.resizeColumnToContents(1)
5460
5460
5461 # set Project
5461 # set Project
5462 self.proExpLabel.setEnabled(True)
5462 self.proExpLabel.setEnabled(True)
5463 self.proDelay.setEnabled(False)
5463 self.proDelay.setEnabled(False)
5464 self.proSet.setEnabled(True)
5464 self.proSet.setEnabled(True)
5465 self.proDataType.setReadOnly(True)
5465 self.proDataType.setReadOnly(True)
5466
5466
5467 # set Operation Voltage
5467 # set Operation Voltage
5468 self.volOpComChannels.setEnabled(False)
5468 self.volOpComChannels.setEnabled(False)
5469 self.volOpComHeights.setEnabled(False)
5469 self.volOpComHeights.setEnabled(False)
5470 self.volOpFilter.setEnabled(False)
5470 self.volOpFilter.setEnabled(False)
5471 self.volOpComProfile.setEnabled(False)
5471 self.volOpComProfile.setEnabled(False)
5472 self.volOpComCode.setEnabled(False)
5472 self.volOpComCode.setEnabled(False)
5473 self.volOpFlip.setEnabled(False)
5473 self.volOpFlip.setEnabled(False)
5474 self.volOpCohInt.setEnabled(False)
5474 self.volOpCohInt.setEnabled(False)
5475 self.volOpRadarfrequency.setEnabled(False)
5475 self.volOpRadarfrequency.setEnabled(False)
5476
5476
5477 self.volOpChannel.setEnabled(False)
5477 self.volOpChannel.setEnabled(False)
5478 self.volOpHeights.setEnabled(False)
5478 self.volOpHeights.setEnabled(False)
5479 self.volOpProfile.setEnabled(False)
5479 self.volOpProfile.setEnabled(False)
5480 self.volOpComMode.setEnabled(False)
5480 self.volOpComMode.setEnabled(False)
5481
5481
5482 self.volGraphPath.setEnabled(False)
5482 self.volGraphPath.setEnabled(False)
5483 self.volGraphPrefix.setEnabled(False)
5483 self.volGraphPrefix.setEnabled(False)
5484 self.volGraphToolPath.setEnabled(False)
5484 self.volGraphToolPath.setEnabled(False)
5485
5485
5486 # set Graph Voltage
5486 # set Graph Voltage
5487 self.volGraphChannelList.setEnabled(False)
5487 self.volGraphChannelList.setEnabled(False)
5488 self.volGraphfreqrange.setEnabled(False)
5488 self.volGraphfreqrange.setEnabled(False)
5489 self.volGraphHeightrange.setEnabled(False)
5489 self.volGraphHeightrange.setEnabled(False)
5490
5490
5491 # set Operation Spectra
5491 # set Operation Spectra
5492 self.specOpnFFTpoints.setEnabled(False)
5492 self.specOpnFFTpoints.setEnabled(False)
5493 self.specOpProfiles.setEnabled(False)
5493 self.specOpProfiles.setEnabled(False)
5494 self.specOpippFactor.setEnabled(False)
5494 self.specOpippFactor.setEnabled(False)
5495 self.specOppairsList.setEnabled(False)
5495 self.specOppairsList.setEnabled(False)
5496 self.specOpComChannel.setEnabled(False)
5496 self.specOpComChannel.setEnabled(False)
5497 self.specOpComHeights.setEnabled(False)
5497 self.specOpComHeights.setEnabled(False)
5498 self.specOpIncoherent.setEnabled(False)
5498 self.specOpIncoherent.setEnabled(False)
5499 self.specOpgetNoise.setEnabled(False)
5499 self.specOpgetNoise.setEnabled(False)
5500 self.specOpRadarfrequency.setEnabled(False)
5500 self.specOpRadarfrequency.setEnabled(False)
5501
5501
5502
5502
5503 self.specOpChannel.setEnabled(False)
5503 self.specOpChannel.setEnabled(False)
5504 self.specOpHeights.setEnabled(False)
5504 self.specOpHeights.setEnabled(False)
5505 # set Graph Spectra
5505 # set Graph Spectra
5506 self.specGgraphChannelList.setEnabled(False)
5506 self.specGgraphChannelList.setEnabled(False)
5507 self.specGgraphFreq.setEnabled(False)
5507 self.specGgraphFreq.setEnabled(False)
5508 self.specGgraphHeight.setEnabled(False)
5508 self.specGgraphHeight.setEnabled(False)
5509 self.specGgraphDbsrange.setEnabled(False)
5509 self.specGgraphDbsrange.setEnabled(False)
5510 self.specGgraphmagnitud.setEnabled(False)
5510 self.specGgraphmagnitud.setEnabled(False)
5511 self.specGgraphTminTmax.setEnabled(False)
5511 self.specGgraphTminTmax.setEnabled(False)
5512 self.specGgraphTimeRange.setEnabled(False)
5512 self.specGgraphTimeRange.setEnabled(False)
5513 self.specGraphPath.setEnabled(False)
5513 self.specGraphPath.setEnabled(False)
5514 self.specGraphToolPath.setEnabled(False)
5514 self.specGraphToolPath.setEnabled(False)
5515 self.specGraphPrefix.setEnabled(False)
5515 self.specGraphPrefix.setEnabled(False)
5516
5516
5517 self.specGgraphftpratio.setEnabled(False)
5517 self.specGgraphftpratio.setEnabled(False)
5518 # set Operation SpectraHeis
5518 # set Operation SpectraHeis
5519 self.specHeisOpIncoherent.setEnabled(False)
5519 self.specHeisOpIncoherent.setEnabled(False)
5520 self.specHeisOpCobIncInt.setEnabled(False)
5520 self.specHeisOpCobIncInt.setEnabled(False)
5521 # set Graph SpectraHeis
5521 # set Graph SpectraHeis
5522 self.specHeisGgraphChannelList.setEnabled(False)
5522 self.specHeisGgraphChannelList.setEnabled(False)
5523 self.specHeisGgraphXminXmax.setEnabled(False)
5523 self.specHeisGgraphXminXmax.setEnabled(False)
5524 self.specHeisGgraphYminYmax.setEnabled(False)
5524 self.specHeisGgraphYminYmax.setEnabled(False)
5525 self.specHeisGgraphTminTmax.setEnabled(False)
5525 self.specHeisGgraphTminTmax.setEnabled(False)
5526 self.specHeisGgraphTimeRange.setEnabled(False)
5526 self.specHeisGgraphTimeRange.setEnabled(False)
5527 self.specHeisGgraphftpratio.setEnabled(False)
5527 self.specHeisGgraphftpratio.setEnabled(False)
5528 self.specHeisGraphPath.setEnabled(False)
5528 self.specHeisGraphPath.setEnabled(False)
5529 self.specHeisGraphPrefix.setEnabled(False)
5529 self.specHeisGraphPrefix.setEnabled(False)
5530 self.specHeisGraphToolPath.setEnabled(False)
5530 self.specHeisGraphToolPath.setEnabled(False)
5531
5531
5532
5532
5533 # tool tip gui
5533 # tool tip gui
5534 QtGui.QToolTip.setFont(QtGui.QFont('SansSerif', 10))
5534 QtGui.QToolTip.setFont(QtGui.QFont('SansSerif', 10))
5535 self.projectExplorerTree.setToolTip('Right clik to add Project or Unit Process')
5535 self.projectExplorerTree.setToolTip('Right clik to add Project or Unit Process')
5536 # tool tip gui project
5536 # tool tip gui project
5537 self.proComWalk.setToolTip('<b>On Files</b>:<i>Search file in format .r or pdata</i> <b>On Folders</b>:<i>Search file in a directory DYYYYDOY</i>')
5537 self.proComWalk.setToolTip('<b>On Files</b>:<i>Search file in format .r or pdata</i> <b>On Folders</b>:<i>Search file in a directory DYYYYDOY</i>')
5538 self.proComWalk.setCurrentIndex(0)
5538 self.proComWalk.setCurrentIndex(0)
5539 # tool tip gui volOp
5539 # tool tip gui volOp
5540 self.volOpChannel.setToolTip('Example: 1,2,3,4,5')
5540 self.volOpChannel.setToolTip('Example: 1,2,3,4,5')
5541 self.volOpHeights.setToolTip('Example: 90,180')
5541 self.volOpHeights.setToolTip('Example: 90,180')
5542 self.volOpFilter.setToolTip('Example: 2')
5542 self.volOpFilter.setToolTip('Example: 2')
5543 self.volOpProfile.setToolTip('Example:0,127')
5543 self.volOpProfile.setToolTip('Example:0,127')
5544 self.volOpCohInt.setToolTip('Example: 128')
5544 self.volOpCohInt.setToolTip('Example: 128')
5545 self.volOpFlip.setToolTip('ChannelList where flip will be applied. Example: 0,2,3')
5545 self.volOpFlip.setToolTip('ChannelList where flip will be applied. Example: 0,2,3')
5546 self.volOpOk.setToolTip('If you have finished, please Ok ')
5546 self.volOpOk.setToolTip('If you have finished, please Ok ')
5547 # tool tip gui volGraph
5547 # tool tip gui volGraph
5548 self.volGraphfreqrange.setToolTip('Height range. Example: 50,100')
5548 self.volGraphfreqrange.setToolTip('Height range. Example: 50,100')
5549 self.volGraphHeightrange.setToolTip('Amplitude. Example: 0,10000')
5549 self.volGraphHeightrange.setToolTip('Amplitude. Example: 0,10000')
5550 # tool tip gui specOp
5550 # tool tip gui specOp
5551 self.specOpnFFTpoints.setToolTip('Example: 128')
5551 self.specOpnFFTpoints.setToolTip('Example: 128')
5552 self.specOpProfiles.setToolTip('Example: 128')
5552 self.specOpProfiles.setToolTip('Example: 128')
5553 self.specOpippFactor.setToolTip('Example:1.0')
5553 self.specOpippFactor.setToolTip('Example:1.0')
5554 self.specOpIncoherent.setToolTip('Example: 10')
5554 self.specOpIncoherent.setToolTip('Example: 10')
5555 self.specOpgetNoise.setToolTip('Example:20,180,30,120 (minHei,maxHei,minVel,maxVel)')
5555 self.specOpgetNoise.setToolTip('Example:20,180,30,120 (minHei,maxHei,minVel,maxVel)')
5556
5556
5557 self.specOpChannel.setToolTip('Example: 0,1,2,3')
5557 self.specOpChannel.setToolTip('Example: 0,1,2,3')
5558 self.specOpHeights.setToolTip('Example: 90,180')
5558 self.specOpHeights.setToolTip('Example: 90,180')
5559 self.specOppairsList.setToolTip('Example: (0,1),(2,3)')
5559 self.specOppairsList.setToolTip('Example: (0,1),(2,3)')
5560 # tool tip gui specGraph
5560 # tool tip gui specGraph
5561
5561
5562 self.specGgraphChannelList.setToolTip('Example: 0,3,4')
5562 self.specGgraphChannelList.setToolTip('Example: 0,3,4')
5563 self.specGgraphFreq.setToolTip('Example: -20,20')
5563 self.specGgraphFreq.setToolTip('Example: -20,20')
5564 self.specGgraphHeight.setToolTip('Example: 100,400')
5564 self.specGgraphHeight.setToolTip('Example: 100,400')
5565 self.specGgraphDbsrange.setToolTip('Example: 30,170')
5565 self.specGgraphDbsrange.setToolTip('Example: 30,170')
5566
5566
5567 self.specGraphPrefix.setToolTip('Example: EXPERIMENT_NAME')
5567 self.specGraphPrefix.setToolTip('Example: EXPERIMENT_NAME')
5568
5568
5569
5569
5570 self.specHeisOpIncoherent.setToolTip('Example: 10')
5570 self.specHeisOpIncoherent.setToolTip('Example: 10')
5571
5571
5572 self.specHeisGgraphChannelList.setToolTip('Example: 0,2,3')
5572 self.specHeisGgraphChannelList.setToolTip('Example: 0,2,3')
5573 self.specHeisGgraphXminXmax.setToolTip('Example (Hz): -1000, 1000')
5573 self.specHeisGgraphXminXmax.setToolTip('Example (Hz): -1000, 1000')
5574 self.specHeisGgraphYminYmax.setToolTip('Example (dB): 5, 35')
5574 self.specHeisGgraphYminYmax.setToolTip('Example (dB): 5, 35')
5575 self.specHeisGgraphTminTmax.setToolTip('Example (hours): 0, 24')
5575 self.specHeisGgraphTminTmax.setToolTip('Example (hours): 0, 24')
5576 self.specHeisGgraphTimeRange.setToolTip('Example (hours): 8')
5576 self.specHeisGgraphTimeRange.setToolTip('Example (hours): 8')
5577
5577
5578 self.labelSet.show()
5578 self.labelSet.show()
5579 self.proSet.show()
5579 self.proSet.show()
5580
5580
5581 self.labelIPPKm.hide()
5581 self.labelIPPKm.hide()
5582 self.proIPPKm.hide()
5582 self.proIPPKm.hide()
5583
5583
5584 sys.stdout = ShowMeConsole(textWritten=self.normalOutputWritten)
5584 sys.stdout = ShowMeConsole(textWritten=self.normalOutputWritten)
5585 # sys.stderr = ShowMeConsole(textWritten=self.errorOutputWritten)
5585 # sys.stderr = ShowMeConsole(textWritten=self.errorOutputWritten)
5586
5586
5587
5587
5588 class UnitProcessWindow(QMainWindow, Ui_UnitProcess):
5588 class UnitProcessWindow(QMainWindow, Ui_UnitProcess):
5589 """
5589 """
5590 Class documentation goes here.
5590 Class documentation goes here.
5591 """
5591 """
5592 closed = pyqtSignal()
5592 closed = pyqtSignal()
5593 create = False
5593 create = False
5594
5594
5595 def __init__(self, parent=None):
5595 def __init__(self, parent=None):
5596 """
5596 """
5597 Constructor
5597 Constructor
5598 """
5598 """
5599 QMainWindow.__init__(self, parent)
5599 QMainWindow.__init__(self, parent)
5600 self.setupUi(self)
5600 self.setupUi(self)
5601 self.getFromWindow = None
5601 self.getFromWindow = None
5602 self.getfromWindowList = []
5602 self.getfromWindowList = []
5603 self.dataTypeProject = None
5603 self.dataTypeProject = None
5604
5604
5605 self.listUP = None
5605 self.listUP = None
5606
5606
5607 @pyqtSignature("")
5607 @pyqtSignature("")
5608 def on_unitPokbut_clicked(self):
5608 def on_unitPokbut_clicked(self):
5609 """
5609 """
5610 Slot documentation goes here.
5610 Slot documentation goes here.
5611 """
5611 """
5612 self.create = True
5612 self.create = True
5613 self.getFromWindow = self.getfromWindowList[int(self.comboInputBox.currentIndex())]
5613 self.getFromWindow = self.getfromWindowList[int(self.comboInputBox.currentIndex())]
5614 # self.nameofUP= str(self.nameUptxt.text())
5614 # self.nameofUP= str(self.nameUptxt.text())
5615 self.typeofUP = str(self.comboTypeBox.currentText())
5615 self.typeofUP = str(self.comboTypeBox.currentText())
5616 self.close()
5616 self.close()
5617
5617
5618
5618
5619 @pyqtSignature("")
5619 @pyqtSignature("")
5620 def on_unitPcancelbut_clicked(self):
5620 def on_unitPcancelbut_clicked(self):
5621 """
5621 """
5622 Slot documentation goes here.
5622 Slot documentation goes here.
5623 """
5623 """
5624 self.create = False
5624 self.create = False
5625 self.close()
5625 self.close()
5626
5626
5627 def loadTotalList(self):
5627 def loadTotalList(self):
5628 self.comboInputBox.clear()
5628 self.comboInputBox.clear()
5629 for i in self.getfromWindowList:
5629 for i in self.getfromWindowList:
5630
5630
5631 name = i.getElementName()
5631 name = i.getElementName()
5632 if name == 'Project':
5632 if name == 'Project':
5633 id = i.id
5633 id = i.id
5634 name = i.name
5634 name = i.name
5635 if self.dataTypeProject == 'Voltage':
5635 if self.dataTypeProject == 'Voltage':
5636 self.comboTypeBox.clear()
5636 self.comboTypeBox.clear()
5637 self.comboTypeBox.addItem("Voltage")
5637 self.comboTypeBox.addItem("Voltage")
5638
5638
5639 if self.dataTypeProject == 'Spectra':
5639 if self.dataTypeProject == 'Spectra':
5640 self.comboTypeBox.clear()
5640 self.comboTypeBox.clear()
5641 self.comboTypeBox.addItem("Spectra")
5641 self.comboTypeBox.addItem("Spectra")
5642 self.comboTypeBox.addItem("Correlation")
5642 self.comboTypeBox.addItem("Correlation")
5643 if self.dataTypeProject == 'Fits':
5643 if self.dataTypeProject == 'Fits':
5644 self.comboTypeBox.clear()
5644 self.comboTypeBox.clear()
5645 self.comboTypeBox.addItem("SpectraHeis")
5645 self.comboTypeBox.addItem("SpectraHeis")
5646
5646
5647
5647
5648 if name == 'ProcUnit':
5648 if name == 'ProcUnit':
5649 id = int(i.id) - 1
5649 id = int(i.id) - 1
5650 name = i.datatype
5650 name = i.datatype
5651 if name == 'Voltage':
5651 if name == 'Voltage':
5652 self.comboTypeBox.clear()
5652 self.comboTypeBox.clear()
5653 self.comboTypeBox.addItem("Spectra")
5653 self.comboTypeBox.addItem("Spectra")
5654 self.comboTypeBox.addItem("SpectraHeis")
5654 self.comboTypeBox.addItem("SpectraHeis")
5655 self.comboTypeBox.addItem("Correlation")
5655 self.comboTypeBox.addItem("Correlation")
5656 if name == 'Spectra':
5656 if name == 'Spectra':
5657 self.comboTypeBox.clear()
5657 self.comboTypeBox.clear()
5658 self.comboTypeBox.addItem("Spectra")
5658 self.comboTypeBox.addItem("Spectra")
5659 self.comboTypeBox.addItem("SpectraHeis")
5659 self.comboTypeBox.addItem("SpectraHeis")
5660 self.comboTypeBox.addItem("Correlation")
5660 self.comboTypeBox.addItem("Correlation")
5661 if name == 'SpectraHeis':
5661 if name == 'SpectraHeis':
5662 self.comboTypeBox.clear()
5662 self.comboTypeBox.clear()
5663 self.comboTypeBox.addItem("SpectraHeis")
5663 self.comboTypeBox.addItem("SpectraHeis")
5664
5664
5665 self.comboInputBox.addItem(str(name))
5665 self.comboInputBox.addItem(str(name))
5666 # self.comboInputBox.addItem(str(name)+str(id))
5666 # self.comboInputBox.addItem(str(name)+str(id))
5667
5667
5668 def closeEvent(self, event):
5668 def closeEvent(self, event):
5669 self.closed.emit()
5669 self.closed.emit()
5670 event.accept()
5670 event.accept()
5671
5671
5672 class Ftp(QMainWindow, Ui_Ftp):
5672 class Ftp(QMainWindow, Ui_Ftp):
5673 """
5673 """
5674 Class documentation goes here.
5674 Class documentation goes here.
5675 """
5675 """
5676 create = False
5676 create = False
5677 closed = pyqtSignal()
5677 closed = pyqtSignal()
5678 server = None
5678 server = None
5679 remotefolder = None
5679 remotefolder = None
5680 username = None
5680 username = None
5681 password = None
5681 password = None
5682 ftp_wei = None
5682 ftp_wei = None
5683 exp_code = None
5683 exp_code = None
5684 sub_exp_code = None
5684 sub_exp_code = None
5685 plot_pos = None
5685 plot_pos = None
5686
5686
5687 def __init__(self, parent=None):
5687 def __init__(self, parent=None):
5688 """
5688 """
5689 Constructor
5689 Constructor
5690 """
5690 """
5691 QMainWindow.__init__(self, parent)
5691 QMainWindow.__init__(self, parent)
5692 self.setupUi(self)
5692 self.setupUi(self)
5693 self.setGUIStatus()
5693 self.setGUIStatus()
5694
5694
5695 def setGUIStatus(self):
5695 def setGUIStatus(self):
5696 self.setWindowTitle("ROJ-Signal Chain")
5696 self.setWindowTitle("ROJ-Signal Chain")
5697 self.serverFTP.setToolTip('Example: jro-app.igp.gob.pe')
5697 self.serverFTP.setToolTip('Example: jro-app.igp.gob.pe')
5698 self.folderFTP.setToolTip('Example: /home/wmaster/graficos')
5698 self.folderFTP.setToolTip('Example: /home/wmaster/graficos')
5699 self.usernameFTP.setToolTip('Example: myusername')
5699 self.usernameFTP.setToolTip('Example: myusername')
5700 self.passwordFTP.setToolTip('Example: mypass ')
5700 self.passwordFTP.setToolTip('Example: mypass ')
5701 self.weightFTP.setToolTip('Example: 0')
5701 self.weightFTP.setToolTip('Example: 0')
5702 self.expcodeFTP.setToolTip('Example: 0')
5702 self.expcodeFTP.setToolTip('Example: 0')
5703 self.subexpFTP.setToolTip('Example: 0')
5703 self.subexpFTP.setToolTip('Example: 0')
5704 self.plotposFTP.setToolTip('Example: 0')
5704 self.plotposFTP.setToolTip('Example: 0')
5705
5705
5706 def setParmsfromTemporal(self, server, remotefolder, username, password, ftp_wei, exp_code, sub_exp_code, plot_pos):
5706 def setParmsfromTemporal(self, server, remotefolder, username, password, ftp_wei, exp_code, sub_exp_code, plot_pos):
5707 self.serverFTP.setText(str(server))
5707 self.serverFTP.setText(str(server))
5708 self.folderFTP.setText(str(remotefolder))
5708 self.folderFTP.setText(str(remotefolder))
5709 self.usernameFTP.setText(str(username))
5709 self.usernameFTP.setText(str(username))
5710 self.passwordFTP.setText(str(password))
5710 self.passwordFTP.setText(str(password))
5711 self.weightFTP.setText(str(ftp_wei))
5711 self.weightFTP.setText(str(ftp_wei))
5712 self.expcodeFTP.setText(str(exp_code))
5712 self.expcodeFTP.setText(str(exp_code))
5713 self.subexpFTP.setText(str(sub_exp_code))
5713 self.subexpFTP.setText(str(sub_exp_code))
5714 self.plotposFTP.setText(str(plot_pos))
5714 self.plotposFTP.setText(str(plot_pos))
5715
5715
5716 def getParmsFromFtpWindow(self):
5716 def getParmsFromFtpWindow(self):
5717 """
5717 """
5718 Return Inputs Project:
5718 Return Inputs Project:
5719 - server
5719 - server
5720 - remotefolder
5720 - remotefolder
5721 - username
5721 - username
5722 - password
5722 - password
5723 - ftp_wei
5723 - ftp_wei
5724 - exp_code
5724 - exp_code
5725 - sub_exp_code
5725 - sub_exp_code
5726 - plot_pos
5726 - plot_pos
5727 """
5727 """
5728 name_server_ftp = str(self.serverFTP.text())
5728 name_server_ftp = str(self.serverFTP.text())
5729 if not name_server_ftp:
5729 if not name_server_ftp:
5730 self.console.clear()
5730 self.console.clear()
5731 self.console.append("Please Write a FTP Server")
5731 self.console.append("Please Write a FTP Server")
5732 return 0
5732 return 0
5733
5733
5734 folder_server_ftp = str(self.folderFTP.text())
5734 folder_server_ftp = str(self.folderFTP.text())
5735 if not folder_server_ftp:
5735 if not folder_server_ftp:
5736 self.console.clear()
5736 self.console.clear()
5737 self.console.append("Please Write a Folder")
5737 self.console.append("Please Write a Folder")
5738 return 0
5738 return 0
5739
5739
5740 username_ftp = str(self.usernameFTP.text())
5740 username_ftp = str(self.usernameFTP.text())
5741 if not username_ftp:
5741 if not username_ftp:
5742 self.console.clear()
5742 self.console.clear()
5743 self.console.append("Please Write a User Name")
5743 self.console.append("Please Write a User Name")
5744 return 0
5744 return 0
5745
5745
5746 password_ftp = str(self.passwordFTP.text())
5746 password_ftp = str(self.passwordFTP.text())
5747 if not password_ftp:
5747 if not password_ftp:
5748 self.console.clear()
5748 self.console.clear()
5749 self.console.append("Please Write a passwordFTP")
5749 self.console.append("Please Write a passwordFTP")
5750 return 0
5750 return 0
5751
5751
5752 ftp_wei = str(self.weightFTP.text())
5752 ftp_wei = str(self.weightFTP.text())
5753 if not ftp_wei == "":
5753 if not ftp_wei == "":
5754 try:
5754 try:
5755 ftp_wei = int(self.weightFTP.text())
5755 ftp_wei = int(self.weightFTP.text())
5756 except:
5756 except:
5757 self.console.clear()
5757 self.console.clear()
5758 self.console.append("Please Write a ftp_wei number")
5758 self.console.append("Please Write a ftp_wei number")
5759 return 0
5759 return 0
5760
5760
5761 exp_code = str(self.expcodeFTP.text())
5761 exp_code = str(self.expcodeFTP.text())
5762 if not exp_code == "":
5762 if not exp_code == "":
5763 try:
5763 try:
5764 exp_code = int(self.expcodeFTP.text())
5764 exp_code = int(self.expcodeFTP.text())
5765 except:
5765 except:
5766 self.console.clear()
5766 self.console.clear()
5767 self.console.append("Please Write a exp_code number")
5767 self.console.append("Please Write a exp_code number")
5768 return 0
5768 return 0
5769
5769
5770
5770
5771 sub_exp_code = str(self.subexpFTP.text())
5771 sub_exp_code = str(self.subexpFTP.text())
5772 if not sub_exp_code == "":
5772 if not sub_exp_code == "":
5773 try:
5773 try:
5774 sub_exp_code = int(self.subexpFTP.text())
5774 sub_exp_code = int(self.subexpFTP.text())
5775 except:
5775 except:
5776 self.console.clear()
5776 self.console.clear()
5777 self.console.append("Please Write a sub_exp_code number")
5777 self.console.append("Please Write a sub_exp_code number")
5778 return 0
5778 return 0
5779
5779
5780 plot_pos = str(self.plotposFTP.text())
5780 plot_pos = str(self.plotposFTP.text())
5781 if not plot_pos == "":
5781 if not plot_pos == "":
5782 try:
5782 try:
5783 plot_pos = int(self.plotposFTP.text())
5783 plot_pos = int(self.plotposFTP.text())
5784 except:
5784 except:
5785 self.console.clear()
5785 self.console.clear()
5786 self.console.append("Please Write a plot_pos number")
5786 self.console.append("Please Write a plot_pos number")
5787 return 0
5787 return 0
5788
5788
5789 return name_server_ftp, folder_server_ftp, username_ftp, password_ftp, ftp_wei, exp_code, sub_exp_code, plot_pos
5789 return name_server_ftp, folder_server_ftp, username_ftp, password_ftp, ftp_wei, exp_code, sub_exp_code, plot_pos
5790
5790
5791 @pyqtSignature("")
5791 @pyqtSignature("")
5792 def on_ftpOkButton_clicked(self):
5792 def on_ftpOkButton_clicked(self):
5793 server, remotefolder, username, password, ftp_wei, exp_code, sub_exp_code, plot_pos = self.getParmsFromFtpWindow()
5793 server, remotefolder, username, password, ftp_wei, exp_code, sub_exp_code, plot_pos = self.getParmsFromFtpWindow()
5794 self.create = True
5794 self.create = True
5795 self.close()
5795 self.close()
5796
5796
5797 @pyqtSignature("")
5797 @pyqtSignature("")
5798 def on_ftpCancelButton_clicked(self):
5798 def on_ftpCancelButton_clicked(self):
5799 self.create = False
5799 self.create = False
5800 self.close()
5800 self.close()
5801
5801
5802 def closeEvent(self, event):
5802 def closeEvent(self, event):
5803 self.closed.emit()
5803 self.closed.emit()
5804 event.accept()
5804 event.accept()
5805
5805
5806 class ftpBuffer():
5806 class ftpBuffer():
5807
5807
5808 server = None
5808 server = None
5809 remotefolder = None
5809 remotefolder = None
5810 username = None
5810 username = None
5811 password = None
5811 password = None
5812 ftp_wei = None
5812 ftp_wei = None
5813 exp_code = None
5813 exp_code = None
5814 sub_exp_code = None
5814 sub_exp_code = None
5815 plot_pos = None
5815 plot_pos = None
5816 create = False
5816 create = False
5817 withoutconfig = False
5817 withoutconfig = False
5818 createforView = False
5818 createforView = False
5819 localfolder = None
5819 localfolder = None
5820 extension = None
5820 extension = None
5821 period = None
5821 period = None
5822 protocol = None
5822 protocol = None
5823
5823
5824 def __init__(self):
5824 def __init__(self):
5825
5825
5826 self.create = False
5826 self.create = False
5827 self.server = None
5827 self.server = None
5828 self.remotefolder = None
5828 self.remotefolder = None
5829 self.username = None
5829 self.username = None
5830 self.password = None
5830 self.password = None
5831 self.ftp_wei = None
5831 self.ftp_wei = None
5832 self.exp_code = None
5832 self.exp_code = None
5833 self.sub_exp_code = None
5833 self.sub_exp_code = None
5834 self.plot_pos = None
5834 self.plot_pos = None
5835 # self.create = False
5835 # self.create = False
5836 self.localfolder = None
5836 self.localfolder = None
5837 self.extension = None
5837 self.extension = None
5838 self.period = None
5838 self.period = None
5839 self.protocol = None
5839 self.protocol = None
5840
5840
5841 def setwithoutconfiguration(self):
5841 def setwithoutconfiguration(self):
5842
5842
5843 self.create = False
5843 self.create = False
5844 self.server = "jro-app.igp.gob.pe"
5844 self.server = "jro-app.igp.gob.pe"
5845 self.remotefolder = "/home/wmaster/graficos"
5845 self.remotefolder = "/home/wmaster/graficos"
5846 self.username = "wmaster"
5846 self.username = "wmaster"
5847 self.password = "mst2010vhf"
5847 self.password = "mst2010vhf"
5848 self.withoutconfig = True
5848 self.withoutconfig = True
5849 self.localfolder = './'
5849 self.localfolder = './'
5850 self.extension = '.png'
5850 self.extension = '.png'
5851 self.period = 60
5851 self.period = 60
5852 self.protocol = 'ftp'
5852 self.protocol = 'ftp'
5853 self.createforView = True
5853 self.createforView = True
5854
5854
5855 if not self.ftp_wei:
5855 if not self.ftp_wei:
5856 self.ftp_wei = 0
5856 self.ftp_wei = 0
5857
5857
5858 if not self.exp_code:
5858 if not self.exp_code:
5859 self.exp_code = 0
5859 self.exp_code = 0
5860
5860
5861 if not self.sub_exp_code:
5861 if not self.sub_exp_code:
5862 self.sub_exp_code = 0
5862 self.sub_exp_code = 0
5863
5863
5864 if not self.plot_pos:
5864 if not self.plot_pos:
5865 self.plot_pos = 0
5865 self.plot_pos = 0
5866
5866
5867 def save(self, server, remotefolder, username, password, ftp_wei=0, exp_code=0, sub_exp_code=0, plot_pos=0, localfolder='./', extension='.png', period=60, protocol='ftp'):
5867 def save(self, server, remotefolder, username, password, ftp_wei=0, exp_code=0, sub_exp_code=0, plot_pos=0, localfolder='./', extension='.png', period=60, protocol='ftp'):
5868
5868
5869 self.server = server
5869 self.server = server
5870 self.remotefolder = remotefolder
5870 self.remotefolder = remotefolder
5871 self.username = username
5871 self.username = username
5872 self.password = password
5872 self.password = password
5873 self.ftp_wei = ftp_wei
5873 self.ftp_wei = ftp_wei
5874 self.exp_code = exp_code
5874 self.exp_code = exp_code
5875 self.sub_exp_code = sub_exp_code
5875 self.sub_exp_code = sub_exp_code
5876 self.plot_pos = plot_pos
5876 self.plot_pos = plot_pos
5877 self.create = True
5877 self.create = True
5878 self.withoutconfig = False
5878 self.withoutconfig = False
5879 self.createforView = True
5879 self.createforView = True
5880 self.localfolder = localfolder
5880 self.localfolder = localfolder
5881 self.extension = extension
5881 self.extension = extension
5882 self.period = period
5882 self.period = period
5883 self.protocol = protocol
5883 self.protocol = protocol
5884
5884
5885 def recover(self):
5885 def recover(self):
5886
5886
5887 return self.server, self.remotefolder, self.username, self.password, self.ftp_wei, self.exp_code, self.sub_exp_code, self.plot_pos, self.extension, self.period, self.protocol
5887 return self.server, self.remotefolder, self.username, self.password, self.ftp_wei, self.exp_code, self.sub_exp_code, self.plot_pos, self.extension, self.period, self.protocol
5888
5888
5889 class ShowMeConsole(QtCore.QObject):
5889 class ShowMeConsole(QtCore.QObject):
5890
5890
5891 textWritten = QtCore.pyqtSignal(str)
5891 textWritten = QtCore.pyqtSignal(str)
5892
5892
5893 def write(self, text):
5893 def write(self, text):
5894
5894
5895 if len(text) == 0:
5896 self.textWritten.emit("\n")
5897 return
5898
5895 if text[-1] == "\n":
5899 if text[-1] == "\n":
5896 text = text[:-1]
5900 text = text[:-1]
5897
5901
5898 self.textWritten.emit(str(text))
5902 self.textWritten.emit(str(text))
@@ -1,344 +1,343
1 # -*- coding: utf-8 -*-
1 # -*- coding: utf-8 -*-
2
2
3 # Form implementation generated from reading ui file '/home/alex/ui/MainWindow_21_02_13_v49.ui'
3 # Form implementation generated from reading ui file '/home/alex/ui/MainWindow_21_02_13_v49.ui'
4 #
4 #
5 # Created: Mon Mar 24 13:28:36 2014
5 # Created: Mon Mar 24 13:28:36 2014
6 # by: PyQt4 UI code generator 4.10
6 # by: PyQt4 UI code generator 4.10
7 #
7 #
8 # WARNING! All changes made in this file will be lost!
8 # WARNING! All changes made in this file will be lost!
9
9
10 from PyQt4 import QtCore, QtGui
10 from PyQt4 import QtCore, QtGui
11 from windows import *
11 from windows import *
12
12
13 try:
13 try:
14 _fromUtf8 = QtCore.QString.fromUtf8
14 _fromUtf8 = QtCore.QString.fromUtf8
15 except AttributeError:
15 except AttributeError:
16 def _fromUtf8(s):
16 def _fromUtf8(s):
17 return s
17 return s
18
18
19 try:
19 try:
20 _encoding = QtGui.QApplication.UnicodeUTF8
20 _encoding = QtGui.QApplication.UnicodeUTF8
21 def _translate(context, text, disambig):
21 def _translate(context, text, disambig):
22 return QtGui.QApplication.translate(context, text, disambig, _encoding)
22 return QtGui.QApplication.translate(context, text, disambig, _encoding)
23 except AttributeError:
23 except AttributeError:
24 def _translate(context, text, disambig):
24 def _translate(context, text, disambig):
25 return QtGui.QApplication.translate(context, text, disambig)
25 return QtGui.QApplication.translate(context, text, disambig)
26
26
27 import os
27 import os
28 from schainpy.gui.figures import tools
28 from schainpy.gui.figures import tools
29 from schainpy import __version__
29 from schainpy import __version__
30
30
31 FIGURES_PATH = tools.get_path()
31 FIGURES_PATH = tools.get_path()
32
32
33 class Ui_EnvWindow(object):
33 class Ui_EnvWindow(object):
34 paused = False
34 paused = False
35
35
36 def restorePauseIcon(self):
36 def restorePauseIcon(self):
37
37
38 icon_name = "pause.png"
38 icon_name = "pause.png"
39 iconPause = QtGui.QIcon()
39 iconPause = QtGui.QIcon()
40 iconPause.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH, icon_name) )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
40 iconPause.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH, icon_name) )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
41 self.actionPauseToolbar.setIcon(iconPause)
41 self.actionPauseToolbar.setIcon(iconPause)
42
42
43 def restoreStartIcon(self):
43 def restoreStartIcon(self):
44
44
45 icon_name = "start.png"
45 icon_name = "start.png"
46 iconStart = QtGui.QIcon()
46 iconStart = QtGui.QIcon()
47 iconStart.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH, icon_name) )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
47 iconStart.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH, icon_name) )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
48 self.actionStarToolbar.setIcon(iconStart)
48 self.actionStarToolbar.setIcon(iconStart)
49
49
50 def changePauseIcon(self, paused=False):
50 def changePauseIcon(self, paused=False):
51
51
52 if paused == True:
52 if paused == True:
53 icon_name = "pausered.png"
53 icon_name = "pausered.png"
54 else:
54 else:
55 icon_name = "pause.png"
55 icon_name = "pause.png"
56
56
57 iconPause = QtGui.QIcon()
57 iconPause = QtGui.QIcon()
58 iconPause.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH, icon_name) )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
58 iconPause.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH, icon_name) )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
59 self.actionPauseToolbar.setIcon(iconPause)
59 self.actionPauseToolbar.setIcon(iconPause)
60
60
61 return
61 return
62
62
63 def changeStartIcon(self, started=False):
63 def changeStartIcon(self, started=False):
64
64
65 if started == True:
65 if started == True:
66 icon_name = "startred.png"
66 icon_name = "startred.png"
67 else:
67 else:
68 icon_name = "start.png"
68 icon_name = "start.png"
69
69
70 iconStart = QtGui.QIcon()
70 iconStart = QtGui.QIcon()
71 iconStart.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH, icon_name) )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
71 iconStart.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH, icon_name) )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
72 self.actionStarToolbar.setIcon(iconStart)
72 self.actionStarToolbar.setIcon(iconStart)
73
73
74 return
74 return
75
75
76 def setupUi(self, MainWindow):
76 def setupUi(self, MainWindow):
77
77
78 self.paused=False
78 self.paused=False
79
79
80 MainWindow.setObjectName(_fromUtf8("MainWindow"))
80 MainWindow.setObjectName(_fromUtf8("MainWindow"))
81 MainWindow.resize(1200, 800)
81 MainWindow.resize(1200, 800)
82
82
83 self.centralWidget = QtGui.QWidget(MainWindow)
83 self.centralWidget = QtGui.QWidget(MainWindow)
84 self.centralWidget.setObjectName(_fromUtf8("centralWidget"))
84 self.centralWidget.setObjectName(_fromUtf8("centralWidget"))
85 self.gridLayout_16 = QtGui.QGridLayout(self.centralWidget)
85 self.gridLayout_16 = QtGui.QGridLayout(self.centralWidget)
86 self.gridLayout_16.setObjectName(_fromUtf8("gridLayout_16"))
86 self.gridLayout_16.setObjectName(_fromUtf8("gridLayout_16"))
87 self.splitter_2 = QtGui.QSplitter(self.centralWidget)
87 self.splitter_2 = QtGui.QSplitter(self.centralWidget)
88 self.splitter_2.setOrientation(QtCore.Qt.Horizontal)
88 self.splitter_2.setOrientation(QtCore.Qt.Horizontal)
89 self.splitter_2.setObjectName(_fromUtf8("splitter_2"))
89 self.splitter_2.setObjectName(_fromUtf8("splitter_2"))
90 self.projectExplorerTree = QtGui.QTreeView(self.splitter_2)
90 self.projectExplorerTree = QtGui.QTreeView(self.splitter_2)
91 self.projectExplorerTree.setObjectName(_fromUtf8("projectExplorerTree"))
91 self.projectExplorerTree.setObjectName(_fromUtf8("projectExplorerTree"))
92 self.splitter = QtGui.QSplitter(self.splitter_2)
92 self.splitter = QtGui.QSplitter(self.splitter_2)
93 self.splitter.setOrientation(QtCore.Qt.Vertical)
93 self.splitter.setOrientation(QtCore.Qt.Vertical)
94 self.splitter.setObjectName(_fromUtf8("splitter"))
94 self.splitter.setObjectName(_fromUtf8("splitter"))
95 self.tabWidgetProject = QtGui.QTabWidget(self.splitter)
95 self.tabWidgetProject = QtGui.QTabWidget(self.splitter)
96 self.tabWidgetProject.setMinimumSize(QtCore.QSize(0, 278))
96 self.tabWidgetProject.setMinimumSize(QtCore.QSize(0, 278))
97 self.tabWidgetProject.setMaximumSize(QtCore.QSize(16777215, 16777215))
97 self.tabWidgetProject.setMaximumSize(QtCore.QSize(16777215, 16777215))
98 self.tabWidgetProject.setObjectName(_fromUtf8("tabWidgetProject"))
98 self.tabWidgetProject.setObjectName(_fromUtf8("tabWidgetProject"))
99
99
100 self.tabConsole = QtGui.QTabWidget(self.splitter)
100 self.tabConsole = QtGui.QTabWidget(self.splitter)
101 self.tabConsole.setMinimumSize(QtCore.QSize(0, 0))
101 self.tabConsole.setMinimumSize(QtCore.QSize(0, 0))
102 self.tabConsole.setObjectName(_fromUtf8("tabConsole"))
102 self.tabConsole.setObjectName(_fromUtf8("tabConsole"))
103 self.tab_5 = QtGui.QWidget()
103 self.tab_5 = QtGui.QWidget()
104 self.tab_5.setObjectName(_fromUtf8("tab_5"))
104 self.tab_5.setObjectName(_fromUtf8("tab_5"))
105 self.gridLayout_4 = QtGui.QGridLayout(self.tab_5)
105 self.gridLayout_4 = QtGui.QGridLayout(self.tab_5)
106 self.gridLayout_4.setObjectName(_fromUtf8("gridLayout_4"))
106 self.gridLayout_4.setObjectName(_fromUtf8("gridLayout_4"))
107 self.console = QtGui.QTextEdit(self.tab_5)
107 self.console = QtGui.QTextEdit(self.tab_5)
108 self.console.setObjectName(_fromUtf8("console"))
108 self.console.setObjectName(_fromUtf8("console"))
109 self.gridLayout_4.addWidget(self.console, 0, 0, 1, 1)
109 self.gridLayout_4.addWidget(self.console, 0, 0, 1, 1)
110 self.tabConsole.addTab(self.tab_5, _fromUtf8(""))
110 self.tabConsole.addTab(self.tab_5, _fromUtf8(""))
111 self.tabWidget = QtGui.QTabWidget(self.splitter_2)
111 self.tabWidget = QtGui.QTabWidget(self.splitter_2)
112 self.tabWidget.setObjectName(_fromUtf8("tabWidget"))
112 self.tabWidget.setObjectName(_fromUtf8("tabWidget"))
113 self.tabProjectProperty = QtGui.QWidget()
113 self.tabProjectProperty = QtGui.QWidget()
114 self.tabProjectProperty.setObjectName(_fromUtf8("tabProjectProperty"))
114 self.tabProjectProperty.setObjectName(_fromUtf8("tabProjectProperty"))
115 self.gridLayout_8 = QtGui.QGridLayout(self.tabProjectProperty)
115 self.gridLayout_8 = QtGui.QGridLayout(self.tabProjectProperty)
116 self.gridLayout_8.setObjectName(_fromUtf8("gridLayout_8"))
116 self.gridLayout_8.setObjectName(_fromUtf8("gridLayout_8"))
117 self.treeProjectProperties = QtGui.QTreeView(self.tabProjectProperty)
117 self.treeProjectProperties = QtGui.QTreeView(self.tabProjectProperty)
118 self.treeProjectProperties.setObjectName(_fromUtf8("treeProjectProperties"))
118 self.treeProjectProperties.setObjectName(_fromUtf8("treeProjectProperties"))
119 self.gridLayout_8.addWidget(self.treeProjectProperties, 0, 0, 1, 1)
119 self.gridLayout_8.addWidget(self.treeProjectProperties, 0, 0, 1, 1)
120 self.tabWidget.addTab(self.tabProjectProperty, _fromUtf8(""))
120 self.tabWidget.addTab(self.tabProjectProperty, _fromUtf8(""))
121 self.gridLayout_16.addWidget(self.splitter_2, 1, 0, 1, 1)
121 self.gridLayout_16.addWidget(self.splitter_2, 1, 0, 1, 1)
122
122
123 MainWindow.setCentralWidget(self.centralWidget)
123 MainWindow.setCentralWidget(self.centralWidget)
124 self.toolBar = QtGui.QToolBar(MainWindow)
124 self.toolBar = QtGui.QToolBar(MainWindow)
125 self.toolBar.setObjectName(_fromUtf8("toolBar"))
125 self.toolBar.setObjectName(_fromUtf8("toolBar"))
126 MainWindow.addToolBar(QtCore.Qt.TopToolBarArea, self.toolBar)
126 MainWindow.addToolBar(QtCore.Qt.TopToolBarArea, self.toolBar)
127
127
128 self.menuBar = QtGui.QMenuBar(MainWindow)
128 self.menuBar = QtGui.QMenuBar(MainWindow)
129 self.menuBar.setGeometry(QtCore.QRect(0, 0, 1065, 25))
129 self.menuBar.setGeometry(QtCore.QRect(0, 0, 1065, 25))
130 self.menuBar.setObjectName(_fromUtf8("menuBar"))
130 self.menuBar.setObjectName(_fromUtf8("menuBar"))
131 self.menuProject = QtGui.QMenu(self.menuBar)
131 self.menuProject = QtGui.QMenu(self.menuBar)
132 self.menuProject.setObjectName(_fromUtf8("menuProject"))
132 self.menuProject.setObjectName(_fromUtf8("menuProject"))
133 self.menuRun = QtGui.QMenu(self.menuBar)
133 self.menuRun = QtGui.QMenu(self.menuBar)
134 self.menuRun.setObjectName(_fromUtf8("menuRun"))
134 self.menuRun.setObjectName(_fromUtf8("menuRun"))
135 self.menuOptions = QtGui.QMenu(self.menuBar)
135 self.menuOptions = QtGui.QMenu(self.menuBar)
136 self.menuOptions.setObjectName(_fromUtf8("menuOptions"))
136 self.menuOptions.setObjectName(_fromUtf8("menuOptions"))
137 self.menuHelp = QtGui.QMenu(self.menuBar)
137 self.menuHelp = QtGui.QMenu(self.menuBar)
138 self.menuHelp.setObjectName(_fromUtf8("menuHelp"))
138 self.menuHelp.setObjectName(_fromUtf8("menuHelp"))
139 MainWindow.setMenuBar(self.menuBar)
139 MainWindow.setMenuBar(self.menuBar)
140
140
141 iconOpen = QtGui.QIcon()
141 iconOpen = QtGui.QIcon()
142 iconOpen.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH,"open.png") )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
142 iconOpen.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH,"open.png") )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
143 iconCreate = QtGui.QIcon()
143 iconCreate = QtGui.QIcon()
144 iconCreate.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH,"new.png") )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
144 iconCreate.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH,"new.png") )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
145 iconSave = QtGui.QIcon()
145 iconSave = QtGui.QIcon()
146 iconSave.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH,"save.png") )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
146 iconSave.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH,"save.png") )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
147 iconStart = QtGui.QIcon()
147 iconStart = QtGui.QIcon()
148 iconStart.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH,"start.png") )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
148 iconStart.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH,"start.png") )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
149 iconStop = QtGui.QIcon()
149 iconStop = QtGui.QIcon()
150 iconStop.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH,"stop.png") )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
150 iconStop.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH,"stop.png") )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
151 iconPause = QtGui.QIcon()
151 iconPause = QtGui.QIcon()
152 iconPause.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH,"pause.png") )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
152 iconPause.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH,"pause.png") )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
153 iconAddPU = QtGui.QIcon()
153 iconAddPU = QtGui.QIcon()
154 iconAddPU.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH,"branch.png") )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
154 iconAddPU.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH,"branch.png") )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
155 iconClose = QtGui.QIcon()
155 iconClose = QtGui.QIcon()
156 iconClose.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH,"close.png") )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
156 iconClose.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH,"close.png") )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
157
157
158
158
159 self.actionOpen = QtGui.QAction(MainWindow)
159 self.actionOpen = QtGui.QAction(MainWindow)
160 self.actionOpen.setIcon(iconOpen)
160 self.actionOpen.setIcon(iconOpen)
161 self.actionOpen.setObjectName(_fromUtf8("actionOpen"))
161 self.actionOpen.setObjectName(_fromUtf8("actionOpen"))
162 self.actionCreate = QtGui.QAction(MainWindow)
162 self.actionCreate = QtGui.QAction(MainWindow)
163 self.actionCreate.setIcon(iconCreate)
163 self.actionCreate.setIcon(iconCreate)
164 self.actionCreate.setObjectName(_fromUtf8("actionCreate"))
164 self.actionCreate.setObjectName(_fromUtf8("actionCreate"))
165 self.actionSave = QtGui.QAction(MainWindow)
165 self.actionSave = QtGui.QAction(MainWindow)
166 self.actionSave.setIcon(iconSave)
166 self.actionSave.setIcon(iconSave)
167 self.actionSave.setObjectName(_fromUtf8("actionSave"))
167 self.actionSave.setObjectName(_fromUtf8("actionSave"))
168 self.actionClose = QtGui.QAction(MainWindow)
168 self.actionClose = QtGui.QAction(MainWindow)
169 self.actionClose.setIcon(iconClose)
169 self.actionClose.setIcon(iconClose)
170 self.actionClose.setObjectName(_fromUtf8("actionClose"))
170 self.actionClose.setObjectName(_fromUtf8("actionClose"))
171 self.actionStart = QtGui.QAction(MainWindow)
171 self.actionStart = QtGui.QAction(MainWindow)
172 self.actionStart.setIcon(iconStart)
172 self.actionStart.setIcon(iconStart)
173 self.actionStart.setObjectName(_fromUtf8("actionStart"))
173 self.actionStart.setObjectName(_fromUtf8("actionStart"))
174 self.actionPause = QtGui.QAction(MainWindow)
174 self.actionPause = QtGui.QAction(MainWindow)
175 self.actionPause.setIcon(iconPause)
175 self.actionPause.setIcon(iconPause)
176 self.actionPause.setObjectName(_fromUtf8("actionPause"))
176 self.actionPause.setObjectName(_fromUtf8("actionPause"))
177 self.actionStop = QtGui.QAction(MainWindow)
177 self.actionStop = QtGui.QAction(MainWindow)
178 self.actionStop.setIcon(iconStop)
178 self.actionStop.setIcon(iconStop)
179 self.actionStop.setObjectName(_fromUtf8("actionStop"))
179 self.actionStop.setObjectName(_fromUtf8("actionStop"))
180 self.actionAbout = QtGui.QAction(MainWindow)
180 self.actionAbout = QtGui.QAction(MainWindow)
181 self.actionAbout.setObjectName(_fromUtf8("actionAbout"))
181 self.actionAbout.setObjectName(_fromUtf8("actionAbout"))
182
182
183 self.actionOpenToolbar = QtGui.QAction(MainWindow)
183 self.actionOpenToolbar = QtGui.QAction(MainWindow)
184 self.actionOpenToolbar.setIcon(iconOpen)
184 self.actionOpenToolbar.setIcon(iconOpen)
185 self.actionOpenToolbar.setObjectName(_fromUtf8("actionOpenToolbar"))
185 self.actionOpenToolbar.setObjectName(_fromUtf8("actionOpenToolbar"))
186 self.actionCreateToolbar = QtGui.QAction(MainWindow)
186 self.actionCreateToolbar = QtGui.QAction(MainWindow)
187 self.actionCreateToolbar.setIcon(iconCreate)
187 self.actionCreateToolbar.setIcon(iconCreate)
188 self.actionCreateToolbar.setObjectName(_fromUtf8("actionCreateToolbar"))
188 self.actionCreateToolbar.setObjectName(_fromUtf8("actionCreateToolbar"))
189 self.actionSaveToolbar = QtGui.QAction(MainWindow)
189 self.actionSaveToolbar = QtGui.QAction(MainWindow)
190 self.actionSaveToolbar.setIcon(iconSave)
190 self.actionSaveToolbar.setIcon(iconSave)
191 self.actionSaveToolbar.setObjectName(_fromUtf8("actionSaveToolbar"))
191 self.actionSaveToolbar.setObjectName(_fromUtf8("actionSaveToolbar"))
192 self.actionStarToolbar = QtGui.QAction(MainWindow)
192 self.actionStarToolbar = QtGui.QAction(MainWindow)
193 self.actionStarToolbar.setIcon(iconStart)
193 self.actionStarToolbar.setIcon(iconStart)
194 self.actionStarToolbar.setObjectName(_fromUtf8("actionStarToolbar"))
194 self.actionStarToolbar.setObjectName(_fromUtf8("actionStarToolbar"))
195 self.actionStopToolbar = QtGui.QAction(MainWindow)
195 self.actionStopToolbar = QtGui.QAction(MainWindow)
196 self.actionStopToolbar.setIcon(iconStop)
196 self.actionStopToolbar.setIcon(iconStop)
197 self.actionStopToolbar.setObjectName(_fromUtf8("actionStopToolbar"))
197 self.actionStopToolbar.setObjectName(_fromUtf8("actionStopToolbar"))
198 self.actionPauseToolbar = QtGui.QAction(MainWindow)
198 self.actionPauseToolbar = QtGui.QAction(MainWindow)
199 self.actionPause.setIcon(iconPause)
199 self.actionPause.setIcon(iconPause)
200 self.actionPauseToolbar.setIcon(iconPause)
200 self.actionPauseToolbar.setIcon(iconPause)
201 self.actionPauseToolbar.setObjectName(_fromUtf8("actionPauseToolbar"))
201 self.actionPauseToolbar.setObjectName(_fromUtf8("actionPauseToolbar"))
202 self.actionAddPU = QtGui.QAction(MainWindow)
202 self.actionAddPU = QtGui.QAction(MainWindow)
203 self.actionAddPU.setIcon(iconAddPU)
203 self.actionAddPU.setIcon(iconAddPU)
204 self.actionAddPU.setObjectName(_fromUtf8("actionAddPU"))
204 self.actionAddPU.setObjectName(_fromUtf8("actionAddPU"))
205 self.actionFTP = QtGui.QAction(MainWindow)
205 self.actionFTP = QtGui.QAction(MainWindow)
206 self.actionFTP.setObjectName(_fromUtf8("actionFTP"))
206 self.actionFTP.setObjectName(_fromUtf8("actionFTP"))
207 self.toolBar.addAction(self.actionOpenToolbar)
207 self.toolBar.addAction(self.actionOpenToolbar)
208 self.toolBar.addSeparator()
208 self.toolBar.addSeparator()
209 self.toolBar.addAction(self.actionCreateToolbar)
209 self.toolBar.addAction(self.actionCreateToolbar)
210 self.toolBar.addSeparator()
210 self.toolBar.addSeparator()
211 self.toolBar.addAction(self.actionAddPU)
211 self.toolBar.addAction(self.actionAddPU)
212 self.toolBar.addSeparator()
212 self.toolBar.addSeparator()
213 self.toolBar.addAction(self.actionSaveToolbar)
213 self.toolBar.addAction(self.actionSaveToolbar)
214 self.toolBar.addSeparator()
214 self.toolBar.addSeparator()
215 self.toolBar.addAction(self.actionStarToolbar)
215 self.toolBar.addAction(self.actionStarToolbar)
216 self.toolBar.addSeparator()
216 self.toolBar.addSeparator()
217 self.toolBar.addAction(self.actionPauseToolbar)
217 self.toolBar.addAction(self.actionPauseToolbar)
218 self.toolBar.addSeparator()
218 self.toolBar.addSeparator()
219 self.toolBar.addAction(self.actionStopToolbar)
219 self.toolBar.addAction(self.actionStopToolbar)
220 self.toolBar.addSeparator()
220 self.toolBar.addSeparator()
221
221
222 # self.actionPause.triggered.connect(self.changePauseIcon)
222 # self.actionPause.triggered.connect(self.changePauseIcon)
223 # self.actionPauseToolbar.triggered.connect(self.changePauseIcon)
223 # self.actionPauseToolbar.triggered.connect(self.changePauseIcon)
224
224
225 self.menuProject.addAction(self.actionOpen)
225 self.menuProject.addAction(self.actionOpen)
226 self.menuProject.addAction(self.actionCreate)
226 self.menuProject.addAction(self.actionCreate)
227 self.menuProject.addAction(self.actionSave)
227 self.menuProject.addAction(self.actionSave)
228 self.menuProject.addAction(self.actionClose)
228 self.menuProject.addAction(self.actionClose)
229 self.menuRun.addAction(self.actionStart)
229 self.menuRun.addAction(self.actionStart)
230 self.menuRun.addAction(self.actionPause)
230 self.menuRun.addAction(self.actionPause)
231 self.menuRun.addAction(self.actionStop)
231 self.menuRun.addAction(self.actionStop)
232 self.menuOptions.addAction(self.actionFTP)
232 self.menuOptions.addAction(self.actionFTP)
233 self.menuHelp.addAction(self.actionAbout)
233 self.menuHelp.addAction(self.actionAbout)
234 self.menuBar.addAction(self.menuProject.menuAction())
234 self.menuBar.addAction(self.menuProject.menuAction())
235 self.menuBar.addAction(self.menuRun.menuAction())
235 self.menuBar.addAction(self.menuRun.menuAction())
236 self.menuBar.addAction(self.menuOptions.menuAction())
236 self.menuBar.addAction(self.menuOptions.menuAction())
237 self.menuBar.addAction(self.menuHelp.menuAction())
237 self.menuBar.addAction(self.menuHelp.menuAction())
238
238
239 self.tabConsole.setCurrentIndex(0)
239 self.tabConsole.setCurrentIndex(0)
240 self.tabWidget.setCurrentIndex(0)
240 self.tabWidget.setCurrentIndex(0)
241
241
242 def retranslateUi(self, MainWindow):
242 def retranslateUi(self, MainWindow):
243
243
244 MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow", None))
244 MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow", None))
245
245
246 self.tabConsole.setTabText(self.tabConsole.indexOf(self.tab_5), _translate("MainWindow", "Console", None))
246 self.tabConsole.setTabText(self.tabConsole.indexOf(self.tab_5), _translate("MainWindow", "Console", None))
247
247
248 self.tabWidget.setTabText(self.tabWidget.indexOf(self.tabProjectProperty), _translate("MainWindow", "Project Property", None))
248 self.tabWidget.setTabText(self.tabWidget.indexOf(self.tabProjectProperty), _translate("MainWindow", "Project Property", None))
249 self.toolBar.setWindowTitle(_translate("MainWindow", "toolBar", None))
249 self.toolBar.setWindowTitle(_translate("MainWindow", "toolBar", None))
250 self.menuProject.setTitle(_translate("MainWindow", "Project", None))
250 self.menuProject.setTitle(_translate("MainWindow", "Project", None))
251 self.menuRun.setTitle(_translate("MainWindow", "Run", None))
251 self.menuRun.setTitle(_translate("MainWindow", "Run", None))
252 self.menuOptions.setTitle(_translate("MainWindow", "Options", None))
252 self.menuOptions.setTitle(_translate("MainWindow", "Options", None))
253 self.menuHelp.setTitle(_translate("MainWindow", "Help", None))
253 self.menuHelp.setTitle(_translate("MainWindow", "Help", None))
254 self.actionOpen.setText(_translate("MainWindow", "Open", None))
254 self.actionOpen.setText(_translate("MainWindow", "Open", None))
255 self.actionCreate.setText(_translate("MainWindow", "Create", None))
255 self.actionCreate.setText(_translate("MainWindow", "Create", None))
256 self.actionSave.setText(_translate("MainWindow", "Save", None))
256 self.actionSave.setText(_translate("MainWindow", "Save", None))
257 self.actionClose.setText(_translate("MainWindow", "Close", None))
257 self.actionClose.setText(_translate("MainWindow", "Close", None))
258 self.actionStart.setText(_translate("MainWindow", "Start", None))
258 self.actionStart.setText(_translate("MainWindow", "Start", None))
259 self.actionPause.setText(_translate("MainWindow", "Pause", None))
259 self.actionPause.setText(_translate("MainWindow", "Pause", None))
260 self.actionStop.setText(_translate("MainWindow", "Stop", None))
260 self.actionStop.setText(_translate("MainWindow", "Stop", None))
261 self.actionAbout.setText(_translate("MainWindow", "About SChain", None))
261 self.actionAbout.setText(_translate("MainWindow", "About SChain", None))
262 self.actionOpenToolbar.setText(_translate("MainWindow", "openToolbar", None))
262 self.actionOpenToolbar.setText(_translate("MainWindow", "openToolbar", None))
263 self.actionOpenToolbar.setToolTip(_translate("MainWindow", "Open a project", None))
263 self.actionOpenToolbar.setToolTip(_translate("MainWindow", "Open a project", None))
264 self.actionCreateToolbar.setText(_translate("MainWindow", "createToolbar", None))
264 self.actionCreateToolbar.setText(_translate("MainWindow", "createToolbar", None))
265 self.actionCreateToolbar.setToolTip(_translate("MainWindow", "Create a new project", None))
265 self.actionCreateToolbar.setToolTip(_translate("MainWindow", "Create a new project", None))
266 self.actionSaveToolbar.setText(_translate("MainWindow", "saveToolbar", None))
266 self.actionSaveToolbar.setText(_translate("MainWindow", "saveToolbar", None))
267 self.actionSaveToolbar.setToolTip(_translate("MainWindow", "Save a project", None))
267 self.actionSaveToolbar.setToolTip(_translate("MainWindow", "Save a project", None))
268 self.actionStarToolbar.setText(_translate("MainWindow", "starToolbar", None))
268 self.actionStarToolbar.setText(_translate("MainWindow", "starToolbar", None))
269 self.actionStarToolbar.setToolTip(_translate("MainWindow", "Start process", None))
269 self.actionStarToolbar.setToolTip(_translate("MainWindow", "Start process", None))
270 self.actionStopToolbar.setText(_translate("MainWindow", "stopToolbar", None))
270 self.actionStopToolbar.setText(_translate("MainWindow", "stopToolbar", None))
271 self.actionStopToolbar.setToolTip(_translate("MainWindow", "Stop process", None))
271 self.actionStopToolbar.setToolTip(_translate("MainWindow", "Stop process", None))
272 self.actionPauseToolbar.setText(_translate("MainWindow", "pauseToolbar", None))
272 self.actionPauseToolbar.setText(_translate("MainWindow", "pauseToolbar", None))
273 self.actionPauseToolbar.setToolTip(_translate("MainWindow", "Pause process", None))
273 self.actionPauseToolbar.setToolTip(_translate("MainWindow", "Pause process", None))
274 self.actionAddPU.setText(_translate("MainWindow", "Add Processing Unit", None))
274 self.actionAddPU.setText(_translate("MainWindow", "Add Processing Unit", None))
275 self.actionFTP.setText(_translate("MainWindow", "FTP", None))
275 self.actionFTP.setText(_translate("MainWindow", "FTP", None))
276
276
277 def closeEvent(self, event):
277 def closeEvent(self, event):
278
278
279 reply = QtGui.QMessageBox.question(self, 'Message',
279 reply = QtGui.QMessageBox.question(self, 'Message',
280 "Are you sure to quit?", QtGui.QMessageBox.Yes |
280 "Are you sure to quit?", QtGui.QMessageBox.Yes |
281 QtGui.QMessageBox.No, QtGui.QMessageBox.No)
281 QtGui.QMessageBox.No, QtGui.QMessageBox.No)
282 if reply == QtGui.QMessageBox.Yes:
282 if reply == QtGui.QMessageBox.Yes:
283 event.accept()
283 event.accept()
284 else:
284 else:
285 event.ignore()
285 event.ignore()
286
286
287 def aboutEvent(self):
287 def aboutEvent(self):
288 title = "Signal Chain Processing Software v%s" %__version__
288 title = "Signal Chain Processing Software v%s" %__version__
289 message = """
289 message = """
290 Developed by Jicamarca Radio Observatory
290 Developed by Jicamarca Radio Observatory
291 Any comment to miguel.urco@jro.igp.gob.pe
291 Any comment to miguel.urco@jro.igp.gob.pe
292 """
292 """
293
294 QtGui.QMessageBox.about(self, title, message)
293 QtGui.QMessageBox.about(self, title, message)
295
294
296
295
297 class Ui_BasicWindow(Ui_EnvWindow, Ui_ProjectTab, Ui_VoltageTab, Ui_SpectraTab, Ui_SpectraHeisTab, Ui_CorrelationTab):
296 class Ui_BasicWindow(Ui_EnvWindow, Ui_ProjectTab, Ui_VoltageTab, Ui_SpectraTab, Ui_SpectraHeisTab, Ui_CorrelationTab):
298
297
299 def setupUi(self, MainWindow):
298 def setupUi(self, MainWindow):
300
299
301 Ui_EnvWindow.setupUi(self, MainWindow)
300 Ui_EnvWindow.setupUi(self, MainWindow)
302
301
303 Ui_ProjectTab.setupUi(self)
302 Ui_ProjectTab.setupUi(self)
304 Ui_VoltageTab.setupUi(self)
303 Ui_VoltageTab.setupUi(self)
305 Ui_SpectraTab.setupUi(self)
304 Ui_SpectraTab.setupUi(self)
306 Ui_SpectraHeisTab.setupUi(self)
305 Ui_SpectraHeisTab.setupUi(self)
307 Ui_CorrelationTab.setupUi(self)
306 Ui_CorrelationTab.setupUi(self)
308
307
309 self.retranslateUi(MainWindow)
308 self.retranslateUi(MainWindow)
310
309
311 QtCore.QMetaObject.connectSlotsByName(MainWindow)
310 QtCore.QMetaObject.connectSlotsByName(MainWindow)
312
311
313 def retranslateUi(self, MainWindow):
312 def retranslateUi(self, MainWindow):
314
313
315 Ui_EnvWindow.retranslateUi(self, MainWindow)
314 Ui_EnvWindow.retranslateUi(self, MainWindow)
316
315
317 Ui_ProjectTab.retranslateUi(self)
316 Ui_ProjectTab.retranslateUi(self)
318 Ui_VoltageTab.retranslateUi(self)
317 Ui_VoltageTab.retranslateUi(self)
319 Ui_SpectraTab.retranslateUi(self)
318 Ui_SpectraTab.retranslateUi(self)
320 Ui_SpectraHeisTab.retranslateUi(self)
319 Ui_SpectraHeisTab.retranslateUi(self)
321 Ui_CorrelationTab.retranslateUi(self)
320 Ui_CorrelationTab.retranslateUi(self)
322
321
323
322
324 class Ui_AdvancedWindow(Ui_EnvWindow):
323 class Ui_AdvancedWindow(Ui_EnvWindow):
325
324
326 def setupUi(self, AdvancedWindow):
325 def setupUi(self, AdvancedWindow):
327
326
328 Ui_MainWindow.setupUi(self, AdvancedWindow)
327 Ui_MainWindow.setupUi(self, AdvancedWindow)
329
328
330 def retranslateUi(self, AdvancedWindow):
329 def retranslateUi(self, AdvancedWindow):
331
330
332 Ui_MainWindow.retranslateUi(self, AdvancedWindow)
331 Ui_MainWindow.retranslateUi(self, AdvancedWindow)
333
332
334
333
335
334
336 if __name__ == "__main__":
335 if __name__ == "__main__":
337 import sys
336 import sys
338 app = QtGui.QApplication(sys.argv)
337 app = QtGui.QApplication(sys.argv)
339 MainWindow = QtGui.QMainWindow()
338 MainWindow = QtGui.QMainWindow()
340 ui = Ui_BasicWindow()
339 ui = Ui_BasicWindow()
341 ui.setupUi(MainWindow)
340 ui.setupUi(MainWindow)
342 MainWindow.show()
341 MainWindow.show()
343 sys.exit(app.exec_())
342 sys.exit(app.exec_())
344
343
@@ -1,721 +1,724
1 '''
1 '''
2
2
3 $Author: murco $
3 $Author: murco $
4 $Id: JROHeaderIO.py 151 2012-10-31 19:00:51Z murco $
4 $Id: JROHeaderIO.py 151 2012-10-31 19:00:51Z murco $
5 '''
5 '''
6 import numpy
6 import numpy
7 import copy
7 import copy
8 import datetime
8 import datetime
9
9
10 SPEED_OF_LIGHT = 299792458
10 SPEED_OF_LIGHT = 299792458
11 SPEED_OF_LIGHT = 3e8
11 SPEED_OF_LIGHT = 3e8
12
12
13 BASIC_STRUCTURE = numpy.dtype([
13 BASIC_STRUCTURE = numpy.dtype([
14 ('nSize','<u4'),
14 ('nSize','<u4'),
15 ('nVersion','<u2'),
15 ('nVersion','<u2'),
16 ('nDataBlockId','<u4'),
16 ('nDataBlockId','<u4'),
17 ('nUtime','<u4'),
17 ('nUtime','<u4'),
18 ('nMilsec','<u2'),
18 ('nMilsec','<u2'),
19 ('nTimezone','<i2'),
19 ('nTimezone','<i2'),
20 ('nDstflag','<i2'),
20 ('nDstflag','<i2'),
21 ('nErrorCount','<u4')
21 ('nErrorCount','<u4')
22 ])
22 ])
23
23
24 SYSTEM_STRUCTURE = numpy.dtype([
24 SYSTEM_STRUCTURE = numpy.dtype([
25 ('nSize','<u4'),
25 ('nSize','<u4'),
26 ('nNumSamples','<u4'),
26 ('nNumSamples','<u4'),
27 ('nNumProfiles','<u4'),
27 ('nNumProfiles','<u4'),
28 ('nNumChannels','<u4'),
28 ('nNumChannels','<u4'),
29 ('nADCResolution','<u4'),
29 ('nADCResolution','<u4'),
30 ('nPCDIOBusWidth','<u4'),
30 ('nPCDIOBusWidth','<u4'),
31 ])
31 ])
32
32
33 RADAR_STRUCTURE = numpy.dtype([
33 RADAR_STRUCTURE = numpy.dtype([
34 ('nSize','<u4'),
34 ('nSize','<u4'),
35 ('nExpType','<u4'),
35 ('nExpType','<u4'),
36 ('nNTx','<u4'),
36 ('nNTx','<u4'),
37 ('fIpp','<f4'),
37 ('fIpp','<f4'),
38 ('fTxA','<f4'),
38 ('fTxA','<f4'),
39 ('fTxB','<f4'),
39 ('fTxB','<f4'),
40 ('nNumWindows','<u4'),
40 ('nNumWindows','<u4'),
41 ('nNumTaus','<u4'),
41 ('nNumTaus','<u4'),
42 ('nCodeType','<u4'),
42 ('nCodeType','<u4'),
43 ('nLine6Function','<u4'),
43 ('nLine6Function','<u4'),
44 ('nLine5Function','<u4'),
44 ('nLine5Function','<u4'),
45 ('fClock','<f4'),
45 ('fClock','<f4'),
46 ('nPrePulseBefore','<u4'),
46 ('nPrePulseBefore','<u4'),
47 ('nPrePulseAfter','<u4'),
47 ('nPrePulseAfter','<u4'),
48 ('sRangeIPP','<a20'),
48 ('sRangeIPP','<a20'),
49 ('sRangeTxA','<a20'),
49 ('sRangeTxA','<a20'),
50 ('sRangeTxB','<a20'),
50 ('sRangeTxB','<a20'),
51 ])
51 ])
52
52
53 SAMPLING_STRUCTURE = numpy.dtype([('h0','<f4'),('dh','<f4'),('nsa','<u4')])
53 SAMPLING_STRUCTURE = numpy.dtype([('h0','<f4'),('dh','<f4'),('nsa','<u4')])
54
54
55
55
56 PROCESSING_STRUCTURE = numpy.dtype([
56 PROCESSING_STRUCTURE = numpy.dtype([
57 ('nSize','<u4'),
57 ('nSize','<u4'),
58 ('nDataType','<u4'),
58 ('nDataType','<u4'),
59 ('nSizeOfDataBlock','<u4'),
59 ('nSizeOfDataBlock','<u4'),
60 ('nProfilesperBlock','<u4'),
60 ('nProfilesperBlock','<u4'),
61 ('nDataBlocksperFile','<u4'),
61 ('nDataBlocksperFile','<u4'),
62 ('nNumWindows','<u4'),
62 ('nNumWindows','<u4'),
63 ('nProcessFlags','<u4'),
63 ('nProcessFlags','<u4'),
64 ('nCoherentIntegrations','<u4'),
64 ('nCoherentIntegrations','<u4'),
65 ('nIncoherentIntegrations','<u4'),
65 ('nIncoherentIntegrations','<u4'),
66 ('nTotalSpectra','<u4')
66 ('nTotalSpectra','<u4')
67 ])
67 ])
68
68
69 class Header(object):
69 class Header(object):
70
70
71 def __init__(self):
71 def __init__(self):
72 raise
72 raise
73
73
74 def copy(self):
74 def copy(self):
75 return copy.deepcopy(self)
75 return copy.deepcopy(self)
76
76
77 def read(self):
77 def read(self):
78
78
79 raise ValueError
79 raise ValueError
80
80
81 def write(self):
81 def write(self):
82
82
83 raise ValueError
83 raise ValueError
84
84
85 def printInfo(self):
85 def printInfo(self):
86
86
87 print "#"*100
87 message = "#"*50 + "\n"
88 print self.__class__.__name__.upper()
88 message += self.__class__.__name__.upper() + "\n"
89 print "#"*100
89 message += "#"*50 + "\n"
90
90 for key in self.__dict__.keys():
91 for key in self.__dict__.keys():
91 print "%s = %s" %(key, self.__dict__[key])
92 message += "%s = %s" %(key, self.__dict__[key]) + "\n"
93
94 print message
92
95
93 class BasicHeader(Header):
96 class BasicHeader(Header):
94
97
95 size = None
98 size = None
96 version = None
99 version = None
97 dataBlock = None
100 dataBlock = None
98 utc = None
101 utc = None
99 ltc = None
102 ltc = None
100 miliSecond = None
103 miliSecond = None
101 timeZone = None
104 timeZone = None
102 dstFlag = None
105 dstFlag = None
103 errorCount = None
106 errorCount = None
104 datatime = None
107 datatime = None
105
108
106 __LOCALTIME = None
109 __LOCALTIME = None
107
110
108 def __init__(self, useLocalTime=True):
111 def __init__(self, useLocalTime=True):
109
112
110 self.size = 24
113 self.size = 24
111 self.version = 0
114 self.version = 0
112 self.dataBlock = 0
115 self.dataBlock = 0
113 self.utc = 0
116 self.utc = 0
114 self.miliSecond = 0
117 self.miliSecond = 0
115 self.timeZone = 0
118 self.timeZone = 0
116 self.dstFlag = 0
119 self.dstFlag = 0
117 self.errorCount = 0
120 self.errorCount = 0
118
121
119 self.useLocalTime = useLocalTime
122 self.useLocalTime = useLocalTime
120
123
121 def read(self, fp):
124 def read(self, fp):
122 try:
125 try:
123
126
124 header = numpy.fromfile(fp, BASIC_STRUCTURE,1)
127 header = numpy.fromfile(fp, BASIC_STRUCTURE,1)
125
128
126 self.size = int(header['nSize'][0])
129 self.size = int(header['nSize'][0])
127 self.version = int(header['nVersion'][0])
130 self.version = int(header['nVersion'][0])
128 self.dataBlock = int(header['nDataBlockId'][0])
131 self.dataBlock = int(header['nDataBlockId'][0])
129 self.utc = int(header['nUtime'][0])
132 self.utc = int(header['nUtime'][0])
130 self.miliSecond = int(header['nMilsec'][0])
133 self.miliSecond = int(header['nMilsec'][0])
131 self.timeZone = int(header['nTimezone'][0])
134 self.timeZone = int(header['nTimezone'][0])
132 self.dstFlag = int(header['nDstflag'][0])
135 self.dstFlag = int(header['nDstflag'][0])
133 self.errorCount = int(header['nErrorCount'][0])
136 self.errorCount = int(header['nErrorCount'][0])
134
137
135 except Exception, e:
138 except Exception, e:
136 print "BasicHeader: "
139 print "BasicHeader: "
137 print e
140 print e
138 return 0
141 return 0
139
142
140 return 1
143 return 1
141
144
142 def write(self, fp):
145 def write(self, fp):
143
146
144 headerTuple = (self.size,self.version,self.dataBlock,self.utc,self.miliSecond,self.timeZone,self.dstFlag,self.errorCount)
147 headerTuple = (self.size,self.version,self.dataBlock,self.utc,self.miliSecond,self.timeZone,self.dstFlag,self.errorCount)
145 header = numpy.array(headerTuple, BASIC_STRUCTURE)
148 header = numpy.array(headerTuple, BASIC_STRUCTURE)
146 header.tofile(fp)
149 header.tofile(fp)
147
150
148 return 1
151 return 1
149
152
150 def get_ltc(self):
153 def get_ltc(self):
151
154
152 return self.utc - self.timeZone*60
155 return self.utc - self.timeZone*60
153
156
154 def set_ltc(self, value):
157 def set_ltc(self, value):
155
158
156 self.utc = value + self.timeZone*60
159 self.utc = value + self.timeZone*60
157
160
158 def get_datatime(self):
161 def get_datatime(self):
159
162
160 return datetime.datetime.utcfromtimestamp(self.ltc)
163 return datetime.datetime.utcfromtimestamp(self.ltc)
161
164
162 ltc = property(get_ltc, set_ltc)
165 ltc = property(get_ltc, set_ltc)
163 datatime = property(get_datatime)
166 datatime = property(get_datatime)
164
167
165 class SystemHeader(Header):
168 class SystemHeader(Header):
166
169
167 size = None
170 size = None
168 nSamples = None
171 nSamples = None
169 nProfiles = None
172 nProfiles = None
170 nChannels = None
173 nChannels = None
171 adcResolution = None
174 adcResolution = None
172 pciDioBusWidth = None
175 pciDioBusWidth = None
173
176
174 def __init__(self, nSamples=0, nProfiles=0, nChannels=0, adcResolution=14, pciDioBusWith=0):
177 def __init__(self, nSamples=0, nProfiles=0, nChannels=0, adcResolution=14, pciDioBusWith=0):
175
178
176 self.size = 24
179 self.size = 24
177 self.nSamples = nSamples
180 self.nSamples = nSamples
178 self.nProfiles = nProfiles
181 self.nProfiles = nProfiles
179 self.nChannels = nChannels
182 self.nChannels = nChannels
180 self.adcResolution = adcResolution
183 self.adcResolution = adcResolution
181 self.pciDioBusWidth = pciDioBusWith
184 self.pciDioBusWidth = pciDioBusWith
182
185
183 def read(self, fp):
186 def read(self, fp):
184
187
185 startFp = fp.tell()
188 startFp = fp.tell()
186
189
187 try:
190 try:
188 header = numpy.fromfile(fp,SYSTEM_STRUCTURE,1)
191 header = numpy.fromfile(fp,SYSTEM_STRUCTURE,1)
189
192
190 self.size = header['nSize'][0]
193 self.size = header['nSize'][0]
191 self.nSamples = header['nNumSamples'][0]
194 self.nSamples = header['nNumSamples'][0]
192 self.nProfiles = header['nNumProfiles'][0]
195 self.nProfiles = header['nNumProfiles'][0]
193 self.nChannels = header['nNumChannels'][0]
196 self.nChannels = header['nNumChannels'][0]
194 self.adcResolution = header['nADCResolution'][0]
197 self.adcResolution = header['nADCResolution'][0]
195 self.pciDioBusWidth = header['nPCDIOBusWidth'][0]
198 self.pciDioBusWidth = header['nPCDIOBusWidth'][0]
196
199
197 except Exception, e:
200 except Exception, e:
198 print "SystemHeader: " + e
201 print "SystemHeader: " + e
199 return 0
202 return 0
200
203
201 endFp = self.size + startFp
204 endFp = self.size + startFp
202
205
203 if fp.tell() != endFp:
206 if fp.tell() != endFp:
204 raise IOError, "System Header is not consistent"
207 raise IOError, "System Header is not consistent"
205
208
206 return 1
209 return 1
207
210
208 def write(self, fp):
211 def write(self, fp):
209
212
210 headerTuple = (self.size,self.nSamples,self.nProfiles,self.nChannels,self.adcResolution,self.pciDioBusWidth)
213 headerTuple = (self.size,self.nSamples,self.nProfiles,self.nChannels,self.adcResolution,self.pciDioBusWidth)
211 header = numpy.array(headerTuple,SYSTEM_STRUCTURE)
214 header = numpy.array(headerTuple,SYSTEM_STRUCTURE)
212 header.tofile(fp)
215 header.tofile(fp)
213
216
214 return 1
217 return 1
215
218
216 class RadarControllerHeader(Header):
219 class RadarControllerHeader(Header):
217
220
218 size = None
221 size = None
219 expType = None
222 expType = None
220 nTx = None
223 nTx = None
221 ipp = None
224 ipp = None
222 txA = None
225 txA = None
223 txB = None
226 txB = None
224 nWindows = None
227 nWindows = None
225 numTaus = None
228 numTaus = None
226 codeType = None
229 codeType = None
227 line6Function = None
230 line6Function = None
228 line5Function = None
231 line5Function = None
229 fClock = None
232 fClock = None
230 prePulseBefore = None
233 prePulseBefore = None
231 prePulserAfter = None
234 prePulserAfter = None
232 rangeIpp = None
235 rangeIpp = None
233 rangeTxA = None
236 rangeTxA = None
234 rangeTxB = None
237 rangeTxB = None
235
238
236 __size = None
239 __size = None
237
240
238 def __init__(self, expType=2, nTx=1,
241 def __init__(self, expType=2, nTx=1,
239 ippKm=None, txA=0, txB=0,
242 ippKm=None, txA=0, txB=0,
240 nWindows=None, nHeights=None, firstHeight=None, deltaHeight=None,
243 nWindows=None, nHeights=None, firstHeight=None, deltaHeight=None,
241 numTaus=0, line6Function=0, line5Function=0, fClock=None,
244 numTaus=0, line6Function=0, line5Function=0, fClock=None,
242 prePulseBefore=0, prePulseAfter=0,
245 prePulseBefore=0, prePulseAfter=0,
243 codeType=0, nCode=0, nBaud=0, code=None,
246 codeType=0, nCode=0, nBaud=0, code=None,
244 flip1=0, flip2=0):
247 flip1=0, flip2=0):
245
248
246 self.size = 116
249 self.size = 116
247 self.expType = expType
250 self.expType = expType
248 self.nTx = nTx
251 self.nTx = nTx
249 self.ipp = ippKm
252 self.ipp = ippKm
250 self.txA = txA
253 self.txA = txA
251 self.txB = txB
254 self.txB = txB
252 self.rangeIpp = ippKm
255 self.rangeIpp = ippKm
253 self.rangeTxA = txA
256 self.rangeTxA = txA
254 self.rangeTxB = txB
257 self.rangeTxB = txB
255
258
256 self.nWindows = nWindows
259 self.nWindows = nWindows
257 self.numTaus = numTaus
260 self.numTaus = numTaus
258 self.codeType = codeType
261 self.codeType = codeType
259 self.line6Function = line6Function
262 self.line6Function = line6Function
260 self.line5Function = line5Function
263 self.line5Function = line5Function
261 self.fClock = fClock
264 self.fClock = fClock
262 self.prePulseBefore = prePulseBefore
265 self.prePulseBefore = prePulseBefore
263 self.prePulserAfter = prePulseAfter
266 self.prePulserAfter = prePulseAfter
264
267
265 self.nHeights = nHeights
268 self.nHeights = nHeights
266 self.firstHeight = firstHeight
269 self.firstHeight = firstHeight
267 self.deltaHeight = deltaHeight
270 self.deltaHeight = deltaHeight
268 self.samplesWin = nHeights
271 self.samplesWin = nHeights
269
272
270 self.nCode = nCode
273 self.nCode = nCode
271 self.nBaud = nBaud
274 self.nBaud = nBaud
272 self.code = code
275 self.code = code
273 self.flip1 = flip1
276 self.flip1 = flip1
274 self.flip2 = flip2
277 self.flip2 = flip2
275
278
276 self.code_size = int(numpy.ceil(self.nBaud/32.))*self.nCode*4
279 self.code_size = int(numpy.ceil(self.nBaud/32.))*self.nCode*4
277 # self.dynamic = numpy.array([],numpy.dtype('byte'))
280 # self.dynamic = numpy.array([],numpy.dtype('byte'))
278
281
279 if self.fClock is None and self.deltaHeight is not None:
282 if self.fClock is None and self.deltaHeight is not None:
280 self.fClock = 0.15/(deltaHeight*1e-6) #0.15Km / (height * 1u)
283 self.fClock = 0.15/(deltaHeight*1e-6) #0.15Km / (height * 1u)
281
284
282 def read(self, fp):
285 def read(self, fp):
283
286
284
287
285 startFp = fp.tell()
288 startFp = fp.tell()
286 header = numpy.fromfile(fp,RADAR_STRUCTURE,1)
289 header = numpy.fromfile(fp,RADAR_STRUCTURE,1)
287
290
288 size = int(header['nSize'][0])
291 size = int(header['nSize'][0])
289 self.expType = int(header['nExpType'][0])
292 self.expType = int(header['nExpType'][0])
290 self.nTx = int(header['nNTx'][0])
293 self.nTx = int(header['nNTx'][0])
291 self.ipp = float(header['fIpp'][0])
294 self.ipp = float(header['fIpp'][0])
292 self.txA = float(header['fTxA'][0])
295 self.txA = float(header['fTxA'][0])
293 self.txB = float(header['fTxB'][0])
296 self.txB = float(header['fTxB'][0])
294 self.nWindows = int(header['nNumWindows'][0])
297 self.nWindows = int(header['nNumWindows'][0])
295 self.numTaus = int(header['nNumTaus'][0])
298 self.numTaus = int(header['nNumTaus'][0])
296 self.codeType = int(header['nCodeType'][0])
299 self.codeType = int(header['nCodeType'][0])
297 self.line6Function = int(header['nLine6Function'][0])
300 self.line6Function = int(header['nLine6Function'][0])
298 self.line5Function = int(header['nLine5Function'][0])
301 self.line5Function = int(header['nLine5Function'][0])
299 self.fClock = float(header['fClock'][0])
302 self.fClock = float(header['fClock'][0])
300 self.prePulseBefore = int(header['nPrePulseBefore'][0])
303 self.prePulseBefore = int(header['nPrePulseBefore'][0])
301 self.prePulserAfter = int(header['nPrePulseAfter'][0])
304 self.prePulserAfter = int(header['nPrePulseAfter'][0])
302 self.rangeIpp = header['sRangeIPP'][0]
305 self.rangeIpp = header['sRangeIPP'][0]
303 self.rangeTxA = header['sRangeTxA'][0]
306 self.rangeTxA = header['sRangeTxA'][0]
304 self.rangeTxB = header['sRangeTxB'][0]
307 self.rangeTxB = header['sRangeTxB'][0]
305
308
306 samplingWindow = numpy.fromfile(fp,SAMPLING_STRUCTURE,self.nWindows)
309 samplingWindow = numpy.fromfile(fp,SAMPLING_STRUCTURE,self.nWindows)
307
310
308 self.nHeights = int(numpy.sum(samplingWindow['nsa']))
311 self.nHeights = int(numpy.sum(samplingWindow['nsa']))
309 self.firstHeight = samplingWindow['h0']
312 self.firstHeight = samplingWindow['h0']
310 self.deltaHeight = samplingWindow['dh']
313 self.deltaHeight = samplingWindow['dh']
311 self.samplesWin = samplingWindow['nsa']
314 self.samplesWin = samplingWindow['nsa']
312
315
313 self.Taus = numpy.fromfile(fp,'<f4',self.numTaus)
316 self.Taus = numpy.fromfile(fp,'<f4',self.numTaus)
314
317
315 self.code_size = 0
318 self.code_size = 0
316 if self.codeType != 0:
319 if self.codeType != 0:
317 self.nCode = int(numpy.fromfile(fp,'<u4',1))
320 self.nCode = int(numpy.fromfile(fp,'<u4',1))
318 self.nBaud = int(numpy.fromfile(fp,'<u4',1))
321 self.nBaud = int(numpy.fromfile(fp,'<u4',1))
319
322
320 code = numpy.empty([self.nCode,self.nBaud],dtype='i1')
323 code = numpy.empty([self.nCode,self.nBaud],dtype='i1')
321 for ic in range(self.nCode):
324 for ic in range(self.nCode):
322 temp = numpy.fromfile(fp,'u4',int(numpy.ceil(self.nBaud/32.)))
325 temp = numpy.fromfile(fp,'u4',int(numpy.ceil(self.nBaud/32.)))
323 for ib in range(self.nBaud-1,-1,-1):
326 for ib in range(self.nBaud-1,-1,-1):
324 code[ic,ib] = temp[ib/32]%2
327 code[ic,ib] = temp[ib/32]%2
325 temp[ib/32] = temp[ib/32]/2
328 temp[ib/32] = temp[ib/32]/2
326
329
327 self.code = 2.0*code - 1.0
330 self.code = 2.0*code - 1.0
328 self.code_size = int(numpy.ceil(self.nBaud/32.))*self.nCode*4
331 self.code_size = int(numpy.ceil(self.nBaud/32.))*self.nCode*4
329
332
330 # if self.line5Function == RCfunction.FLIP:
333 # if self.line5Function == RCfunction.FLIP:
331 # self.flip1 = numpy.fromfile(fp,'<u4',1)
334 # self.flip1 = numpy.fromfile(fp,'<u4',1)
332 #
335 #
333 # if self.line6Function == RCfunction.FLIP:
336 # if self.line6Function == RCfunction.FLIP:
334 # self.flip2 = numpy.fromfile(fp,'<u4',1)
337 # self.flip2 = numpy.fromfile(fp,'<u4',1)
335
338
336 endFp = size + startFp
339 endFp = size + startFp
337
340
338 if fp.tell() != endFp:
341 if fp.tell() != endFp:
339 raise IOError, "Radar Controller Header is not consistent"
342 raise IOError, "Radar Controller Header is not consistent"
340
343
341 return 1
344 return 1
342
345
343 def write(self, fp):
346 def write(self, fp):
344
347
345 headerTuple = (self.size,
348 headerTuple = (self.size,
346 self.expType,
349 self.expType,
347 self.nTx,
350 self.nTx,
348 self.ipp,
351 self.ipp,
349 self.txA,
352 self.txA,
350 self.txB,
353 self.txB,
351 self.nWindows,
354 self.nWindows,
352 self.numTaus,
355 self.numTaus,
353 self.codeType,
356 self.codeType,
354 self.line6Function,
357 self.line6Function,
355 self.line5Function,
358 self.line5Function,
356 self.fClock,
359 self.fClock,
357 self.prePulseBefore,
360 self.prePulseBefore,
358 self.prePulserAfter,
361 self.prePulserAfter,
359 self.rangeIpp,
362 self.rangeIpp,
360 self.rangeTxA,
363 self.rangeTxA,
361 self.rangeTxB)
364 self.rangeTxB)
362
365
363 header = numpy.array(headerTuple,RADAR_STRUCTURE)
366 header = numpy.array(headerTuple,RADAR_STRUCTURE)
364 header.tofile(fp)
367 header.tofile(fp)
365
368
366 sampleWindowTuple = (self.firstHeight,self.deltaHeight,self.samplesWin)
369 sampleWindowTuple = (self.firstHeight,self.deltaHeight,self.samplesWin)
367 samplingWindow = numpy.array(sampleWindowTuple,SAMPLING_STRUCTURE)
370 samplingWindow = numpy.array(sampleWindowTuple,SAMPLING_STRUCTURE)
368 samplingWindow.tofile(fp)
371 samplingWindow.tofile(fp)
369
372
370 if self.numTaus > 0:
373 if self.numTaus > 0:
371 self.Taus.tofile(fp)
374 self.Taus.tofile(fp)
372
375
373 if self.codeType !=0:
376 if self.codeType !=0:
374 nCode = numpy.array(self.nCode, '<u4')
377 nCode = numpy.array(self.nCode, '<u4')
375 nCode.tofile(fp)
378 nCode.tofile(fp)
376 nBaud = numpy.array(self.nBaud, '<u4')
379 nBaud = numpy.array(self.nBaud, '<u4')
377 nBaud.tofile(fp)
380 nBaud.tofile(fp)
378 code1 = (self.code + 1.0)/2.
381 code1 = (self.code + 1.0)/2.
379
382
380 for ic in range(self.nCode):
383 for ic in range(self.nCode):
381 tempx = numpy.zeros(numpy.ceil(self.nBaud/32.))
384 tempx = numpy.zeros(numpy.ceil(self.nBaud/32.))
382 start = 0
385 start = 0
383 end = 32
386 end = 32
384 for i in range(len(tempx)):
387 for i in range(len(tempx)):
385 code_selected = code1[ic,start:end]
388 code_selected = code1[ic,start:end]
386 for j in range(len(code_selected)-1,-1,-1):
389 for j in range(len(code_selected)-1,-1,-1):
387 if code_selected[j] == 1:
390 if code_selected[j] == 1:
388 tempx[i] = tempx[i] + 2**(len(code_selected)-1-j)
391 tempx[i] = tempx[i] + 2**(len(code_selected)-1-j)
389 start = start + 32
392 start = start + 32
390 end = end + 32
393 end = end + 32
391
394
392 tempx = tempx.astype('u4')
395 tempx = tempx.astype('u4')
393 tempx.tofile(fp)
396 tempx.tofile(fp)
394
397
395 # if self.line5Function == RCfunction.FLIP:
398 # if self.line5Function == RCfunction.FLIP:
396 # self.flip1.tofile(fp)
399 # self.flip1.tofile(fp)
397 #
400 #
398 # if self.line6Function == RCfunction.FLIP:
401 # if self.line6Function == RCfunction.FLIP:
399 # self.flip2.tofile(fp)
402 # self.flip2.tofile(fp)
400
403
401 return 1
404 return 1
402
405
403 def get_ippSeconds(self):
406 def get_ippSeconds(self):
404 '''
407 '''
405 '''
408 '''
406 ippSeconds = 2.0 * 1000 * self.ipp / SPEED_OF_LIGHT
409 ippSeconds = 2.0 * 1000 * self.ipp / SPEED_OF_LIGHT
407
410
408 return ippSeconds
411 return ippSeconds
409
412
410 def set_ippSeconds(self, ippSeconds):
413 def set_ippSeconds(self, ippSeconds):
411 '''
414 '''
412 '''
415 '''
413
416
414 self.ipp = ippSeconds * SPEED_OF_LIGHT / (2.0*1000)
417 self.ipp = ippSeconds * SPEED_OF_LIGHT / (2.0*1000)
415
418
416 return
419 return
417
420
418 def get_size(self):
421 def get_size(self):
419
422
420 self.__size = 116 + 12*self.nWindows + 4*self.numTaus
423 self.__size = 116 + 12*self.nWindows + 4*self.numTaus
421
424
422 if self.codeType != 0:
425 if self.codeType != 0:
423 self.__size += 4 + 4 + 4*self.nCode*numpy.ceil(self.nBaud/32.)
426 self.__size += 4 + 4 + 4*self.nCode*numpy.ceil(self.nBaud/32.)
424
427
425 return self.__size
428 return self.__size
426
429
427 def set_size(self, value):
430 def set_size(self, value):
428
431
429 self.__size = value
432 self.__size = value
430
433
431 return
434 return
432
435
433 ippSeconds = property(get_ippSeconds, set_ippSeconds)
436 ippSeconds = property(get_ippSeconds, set_ippSeconds)
434 size = property(get_size, set_size)
437 size = property(get_size, set_size)
435
438
436 class ProcessingHeader(Header):
439 class ProcessingHeader(Header):
437
440
438 # size = None
441 # size = None
439 dtype = None
442 dtype = None
440 blockSize = None
443 blockSize = None
441 profilesPerBlock = None
444 profilesPerBlock = None
442 dataBlocksPerFile = None
445 dataBlocksPerFile = None
443 nWindows = None
446 nWindows = None
444 processFlags = None
447 processFlags = None
445 nCohInt = None
448 nCohInt = None
446 nIncohInt = None
449 nIncohInt = None
447 totalSpectra = None
450 totalSpectra = None
448
451
449 flag_dc = None
452 flag_dc = None
450 flag_cspc = None
453 flag_cspc = None
451
454
452 def __init__(self):
455 def __init__(self):
453
456
454 # self.size = 0
457 # self.size = 0
455 self.dtype = 0
458 self.dtype = 0
456 self.blockSize = 0
459 self.blockSize = 0
457 self.profilesPerBlock = 0
460 self.profilesPerBlock = 0
458 self.dataBlocksPerFile = 0
461 self.dataBlocksPerFile = 0
459 self.nWindows = 0
462 self.nWindows = 0
460 self.processFlags = 0
463 self.processFlags = 0
461 self.nCohInt = 0
464 self.nCohInt = 0
462 self.nIncohInt = 0
465 self.nIncohInt = 0
463 self.totalSpectra = 0
466 self.totalSpectra = 0
464
467
465 self.nHeights = 0
468 self.nHeights = 0
466 self.firstHeight = 0
469 self.firstHeight = 0
467 self.deltaHeight = 0
470 self.deltaHeight = 0
468 self.samplesWin = 0
471 self.samplesWin = 0
469 self.spectraComb = 0
472 self.spectraComb = 0
470 self.nCode = None
473 self.nCode = None
471 self.code = None
474 self.code = None
472 self.nBaud = None
475 self.nBaud = None
473
476
474 self.shif_fft = False
477 self.shif_fft = False
475 self.flag_dc = False
478 self.flag_dc = False
476 self.flag_cspc = False
479 self.flag_cspc = False
477 self.flag_decode = False
480 self.flag_decode = False
478 self.flag_deflip = False
481 self.flag_deflip = False
479
482
480 def read(self, fp):
483 def read(self, fp):
481
484
482 startFp = fp.tell()
485 startFp = fp.tell()
483
486
484 header = numpy.fromfile(fp,PROCESSING_STRUCTURE,1)
487 header = numpy.fromfile(fp,PROCESSING_STRUCTURE,1)
485
488
486 size = int(header['nSize'][0])
489 size = int(header['nSize'][0])
487 self.dtype = int(header['nDataType'][0])
490 self.dtype = int(header['nDataType'][0])
488 self.blockSize = int(header['nSizeOfDataBlock'][0])
491 self.blockSize = int(header['nSizeOfDataBlock'][0])
489 self.profilesPerBlock = int(header['nProfilesperBlock'][0])
492 self.profilesPerBlock = int(header['nProfilesperBlock'][0])
490 self.dataBlocksPerFile = int(header['nDataBlocksperFile'][0])
493 self.dataBlocksPerFile = int(header['nDataBlocksperFile'][0])
491 self.nWindows = int(header['nNumWindows'][0])
494 self.nWindows = int(header['nNumWindows'][0])
492 self.processFlags = header['nProcessFlags']
495 self.processFlags = header['nProcessFlags']
493 self.nCohInt = int(header['nCoherentIntegrations'][0])
496 self.nCohInt = int(header['nCoherentIntegrations'][0])
494 self.nIncohInt = int(header['nIncoherentIntegrations'][0])
497 self.nIncohInt = int(header['nIncoherentIntegrations'][0])
495 self.totalSpectra = int(header['nTotalSpectra'][0])
498 self.totalSpectra = int(header['nTotalSpectra'][0])
496
499
497 samplingWindow = numpy.fromfile(fp,SAMPLING_STRUCTURE,self.nWindows)
500 samplingWindow = numpy.fromfile(fp,SAMPLING_STRUCTURE,self.nWindows)
498
501
499 self.nHeights = int(numpy.sum(samplingWindow['nsa']))
502 self.nHeights = int(numpy.sum(samplingWindow['nsa']))
500 self.firstHeight = float(samplingWindow['h0'][0])
503 self.firstHeight = float(samplingWindow['h0'][0])
501 self.deltaHeight = float(samplingWindow['dh'][0])
504 self.deltaHeight = float(samplingWindow['dh'][0])
502 self.samplesWin = samplingWindow['nsa'][0]
505 self.samplesWin = samplingWindow['nsa'][0]
503
506
504 self.spectraComb = numpy.fromfile(fp,'u1',2*self.totalSpectra)
507 self.spectraComb = numpy.fromfile(fp,'u1',2*self.totalSpectra)
505
508
506 if ((self.processFlags & PROCFLAG.DEFINE_PROCESS_CODE) == PROCFLAG.DEFINE_PROCESS_CODE):
509 if ((self.processFlags & PROCFLAG.DEFINE_PROCESS_CODE) == PROCFLAG.DEFINE_PROCESS_CODE):
507 self.nCode = int(numpy.fromfile(fp,'<u4',1))
510 self.nCode = int(numpy.fromfile(fp,'<u4',1))
508 self.nBaud = int(numpy.fromfile(fp,'<u4',1))
511 self.nBaud = int(numpy.fromfile(fp,'<u4',1))
509 self.code = numpy.fromfile(fp,'<f4',self.nCode*self.nBaud).reshape(self.nCode,self.nBaud)
512 self.code = numpy.fromfile(fp,'<f4',self.nCode*self.nBaud).reshape(self.nCode,self.nBaud)
510
513
511 if ((self.processFlags & PROCFLAG.EXP_NAME_ESP) == PROCFLAG.EXP_NAME_ESP):
514 if ((self.processFlags & PROCFLAG.EXP_NAME_ESP) == PROCFLAG.EXP_NAME_ESP):
512 exp_name_len = int(numpy.fromfile(fp,'<u4',1))
515 exp_name_len = int(numpy.fromfile(fp,'<u4',1))
513 exp_name = numpy.fromfile(fp,'u1',exp_name_len+1)
516 exp_name = numpy.fromfile(fp,'u1',exp_name_len+1)
514
517
515 if ((self.processFlags & PROCFLAG.SHIFT_FFT_DATA) == PROCFLAG.SHIFT_FFT_DATA):
518 if ((self.processFlags & PROCFLAG.SHIFT_FFT_DATA) == PROCFLAG.SHIFT_FFT_DATA):
516 self.shif_fft = True
519 self.shif_fft = True
517 else:
520 else:
518 self.shif_fft = False
521 self.shif_fft = False
519
522
520 if ((self.processFlags & PROCFLAG.SAVE_CHANNELS_DC) == PROCFLAG.SAVE_CHANNELS_DC):
523 if ((self.processFlags & PROCFLAG.SAVE_CHANNELS_DC) == PROCFLAG.SAVE_CHANNELS_DC):
521 self.flag_dc = True
524 self.flag_dc = True
522 else:
525 else:
523 self.flag_dc = False
526 self.flag_dc = False
524
527
525 if ((self.processFlags & PROCFLAG.DECODE_DATA) == PROCFLAG.DECODE_DATA):
528 if ((self.processFlags & PROCFLAG.DECODE_DATA) == PROCFLAG.DECODE_DATA):
526 self.flag_decode = True
529 self.flag_decode = True
527 else:
530 else:
528 self.flag_decode = False
531 self.flag_decode = False
529
532
530 if ((self.processFlags & PROCFLAG.DEFLIP_DATA) == PROCFLAG.DEFLIP_DATA):
533 if ((self.processFlags & PROCFLAG.DEFLIP_DATA) == PROCFLAG.DEFLIP_DATA):
531 self.flag_deflip = True
534 self.flag_deflip = True
532 else:
535 else:
533 self.flag_deflip = False
536 self.flag_deflip = False
534
537
535 nChannels = 0
538 nChannels = 0
536 nPairs = 0
539 nPairs = 0
537 pairList = []
540 pairList = []
538
541
539 for i in range( 0, self.totalSpectra*2, 2 ):
542 for i in range( 0, self.totalSpectra*2, 2 ):
540 if self.spectraComb[i] == self.spectraComb[i+1]:
543 if self.spectraComb[i] == self.spectraComb[i+1]:
541 nChannels = nChannels + 1 #par de canales iguales
544 nChannels = nChannels + 1 #par de canales iguales
542 else:
545 else:
543 nPairs = nPairs + 1 #par de canales diferentes
546 nPairs = nPairs + 1 #par de canales diferentes
544 pairList.append( (self.spectraComb[i], self.spectraComb[i+1]) )
547 pairList.append( (self.spectraComb[i], self.spectraComb[i+1]) )
545
548
546 self.flag_cspc = False
549 self.flag_cspc = False
547 if nPairs > 0:
550 if nPairs > 0:
548 self.flag_cspc = True
551 self.flag_cspc = True
549
552
550 endFp = size + startFp
553 endFp = size + startFp
551
554
552 if fp.tell() != endFp:
555 if fp.tell() != endFp:
553 raise IOError, "Processing Header is not consistent"
556 raise IOError, "Processing Header is not consistent"
554
557
555 return 1
558 return 1
556
559
557 def write(self, fp):
560 def write(self, fp):
558 #Clear DEFINE_PROCESS_CODE
561 #Clear DEFINE_PROCESS_CODE
559 # self.processFlags = self.processFlags & (~PROCFLAG.DEFINE_PROCESS_CODE)
562 # self.processFlags = self.processFlags & (~PROCFLAG.DEFINE_PROCESS_CODE)
560
563
561 headerTuple = (self.size,
564 headerTuple = (self.size,
562 self.dtype,
565 self.dtype,
563 self.blockSize,
566 self.blockSize,
564 self.profilesPerBlock,
567 self.profilesPerBlock,
565 self.dataBlocksPerFile,
568 self.dataBlocksPerFile,
566 self.nWindows,
569 self.nWindows,
567 self.processFlags,
570 self.processFlags,
568 self.nCohInt,
571 self.nCohInt,
569 self.nIncohInt,
572 self.nIncohInt,
570 self.totalSpectra)
573 self.totalSpectra)
571
574
572 header = numpy.array(headerTuple,PROCESSING_STRUCTURE)
575 header = numpy.array(headerTuple,PROCESSING_STRUCTURE)
573 header.tofile(fp)
576 header.tofile(fp)
574
577
575 if self.nWindows != 0:
578 if self.nWindows != 0:
576 sampleWindowTuple = (self.firstHeight,self.deltaHeight,self.samplesWin)
579 sampleWindowTuple = (self.firstHeight,self.deltaHeight,self.samplesWin)
577 samplingWindow = numpy.array(sampleWindowTuple,SAMPLING_STRUCTURE)
580 samplingWindow = numpy.array(sampleWindowTuple,SAMPLING_STRUCTURE)
578 samplingWindow.tofile(fp)
581 samplingWindow.tofile(fp)
579
582
580 if self.totalSpectra != 0:
583 if self.totalSpectra != 0:
581 # spectraComb = numpy.array([],numpy.dtype('u1'))
584 # spectraComb = numpy.array([],numpy.dtype('u1'))
582 spectraComb = self.spectraComb
585 spectraComb = self.spectraComb
583 spectraComb.tofile(fp)
586 spectraComb.tofile(fp)
584
587
585 if self.processFlags & PROCFLAG.DEFINE_PROCESS_CODE == PROCFLAG.DEFINE_PROCESS_CODE:
588 if self.processFlags & PROCFLAG.DEFINE_PROCESS_CODE == PROCFLAG.DEFINE_PROCESS_CODE:
586 nCode = numpy.array([self.nCode], numpy.dtype('u4')) #Probar con un dato que almacene codigo, hasta el momento no se hizo la prueba
589 nCode = numpy.array([self.nCode], numpy.dtype('u4')) #Probar con un dato que almacene codigo, hasta el momento no se hizo la prueba
587 nCode.tofile(fp)
590 nCode.tofile(fp)
588
591
589 nBaud = numpy.array([self.nBaud], numpy.dtype('u4'))
592 nBaud = numpy.array([self.nBaud], numpy.dtype('u4'))
590 nBaud.tofile(fp)
593 nBaud.tofile(fp)
591
594
592 code = self.code.reshape(self.nCode*self.nBaud)
595 code = self.code.reshape(self.nCode*self.nBaud)
593 code = code.astype(numpy.dtype('<f4'))
596 code = code.astype(numpy.dtype('<f4'))
594 code.tofile(fp)
597 code.tofile(fp)
595
598
596 return 1
599 return 1
597
600
598 def get_size(self):
601 def get_size(self):
599
602
600 self.__size = 40 + 12*self.nWindows + 2*self.totalSpectra
603 self.__size = 40 + 12*self.nWindows + 2*self.totalSpectra
601
604
602 if self.processFlags & PROCFLAG.DEFINE_PROCESS_CODE == PROCFLAG.DEFINE_PROCESS_CODE:
605 if self.processFlags & PROCFLAG.DEFINE_PROCESS_CODE == PROCFLAG.DEFINE_PROCESS_CODE:
603 # self.__size += 4 + 4 + 4*self.nCode*numpy.ceil(self.nBaud/32.)
606 # self.__size += 4 + 4 + 4*self.nCode*numpy.ceil(self.nBaud/32.)
604 self.__size += 4 + 4 + 4 * self.nCode * self.nBaud
607 self.__size += 4 + 4 + 4 * self.nCode * self.nBaud
605
608
606 return self.__size
609 return self.__size
607
610
608 def set_size(self, value):
611 def set_size(self, value):
609
612
610 self.__size = value
613 self.__size = value
611
614
612 return
615 return
613
616
614 size = property(get_size, set_size)
617 size = property(get_size, set_size)
615
618
616 class RCfunction:
619 class RCfunction:
617 NONE=0
620 NONE=0
618 FLIP=1
621 FLIP=1
619 CODE=2
622 CODE=2
620 SAMPLING=3
623 SAMPLING=3
621 LIN6DIV256=4
624 LIN6DIV256=4
622 SYNCHRO=5
625 SYNCHRO=5
623
626
624 class nCodeType:
627 class nCodeType:
625 NONE=0
628 NONE=0
626 USERDEFINE=1
629 USERDEFINE=1
627 BARKER2=2
630 BARKER2=2
628 BARKER3=3
631 BARKER3=3
629 BARKER4=4
632 BARKER4=4
630 BARKER5=5
633 BARKER5=5
631 BARKER7=6
634 BARKER7=6
632 BARKER11=7
635 BARKER11=7
633 BARKER13=8
636 BARKER13=8
634 AC128=9
637 AC128=9
635 COMPLEMENTARYCODE2=10
638 COMPLEMENTARYCODE2=10
636 COMPLEMENTARYCODE4=11
639 COMPLEMENTARYCODE4=11
637 COMPLEMENTARYCODE8=12
640 COMPLEMENTARYCODE8=12
638 COMPLEMENTARYCODE16=13
641 COMPLEMENTARYCODE16=13
639 COMPLEMENTARYCODE32=14
642 COMPLEMENTARYCODE32=14
640 COMPLEMENTARYCODE64=15
643 COMPLEMENTARYCODE64=15
641 COMPLEMENTARYCODE128=16
644 COMPLEMENTARYCODE128=16
642 CODE_BINARY28=17
645 CODE_BINARY28=17
643
646
644 class PROCFLAG:
647 class PROCFLAG:
645
648
646 COHERENT_INTEGRATION = numpy.uint32(0x00000001)
649 COHERENT_INTEGRATION = numpy.uint32(0x00000001)
647 DECODE_DATA = numpy.uint32(0x00000002)
650 DECODE_DATA = numpy.uint32(0x00000002)
648 SPECTRA_CALC = numpy.uint32(0x00000004)
651 SPECTRA_CALC = numpy.uint32(0x00000004)
649 INCOHERENT_INTEGRATION = numpy.uint32(0x00000008)
652 INCOHERENT_INTEGRATION = numpy.uint32(0x00000008)
650 POST_COHERENT_INTEGRATION = numpy.uint32(0x00000010)
653 POST_COHERENT_INTEGRATION = numpy.uint32(0x00000010)
651 SHIFT_FFT_DATA = numpy.uint32(0x00000020)
654 SHIFT_FFT_DATA = numpy.uint32(0x00000020)
652
655
653 DATATYPE_CHAR = numpy.uint32(0x00000040)
656 DATATYPE_CHAR = numpy.uint32(0x00000040)
654 DATATYPE_SHORT = numpy.uint32(0x00000080)
657 DATATYPE_SHORT = numpy.uint32(0x00000080)
655 DATATYPE_LONG = numpy.uint32(0x00000100)
658 DATATYPE_LONG = numpy.uint32(0x00000100)
656 DATATYPE_INT64 = numpy.uint32(0x00000200)
659 DATATYPE_INT64 = numpy.uint32(0x00000200)
657 DATATYPE_FLOAT = numpy.uint32(0x00000400)
660 DATATYPE_FLOAT = numpy.uint32(0x00000400)
658 DATATYPE_DOUBLE = numpy.uint32(0x00000800)
661 DATATYPE_DOUBLE = numpy.uint32(0x00000800)
659
662
660 DATAARRANGE_CONTIGUOUS_CH = numpy.uint32(0x00001000)
663 DATAARRANGE_CONTIGUOUS_CH = numpy.uint32(0x00001000)
661 DATAARRANGE_CONTIGUOUS_H = numpy.uint32(0x00002000)
664 DATAARRANGE_CONTIGUOUS_H = numpy.uint32(0x00002000)
662 DATAARRANGE_CONTIGUOUS_P = numpy.uint32(0x00004000)
665 DATAARRANGE_CONTIGUOUS_P = numpy.uint32(0x00004000)
663
666
664 SAVE_CHANNELS_DC = numpy.uint32(0x00008000)
667 SAVE_CHANNELS_DC = numpy.uint32(0x00008000)
665 DEFLIP_DATA = numpy.uint32(0x00010000)
668 DEFLIP_DATA = numpy.uint32(0x00010000)
666 DEFINE_PROCESS_CODE = numpy.uint32(0x00020000)
669 DEFINE_PROCESS_CODE = numpy.uint32(0x00020000)
667
670
668 ACQ_SYS_NATALIA = numpy.uint32(0x00040000)
671 ACQ_SYS_NATALIA = numpy.uint32(0x00040000)
669 ACQ_SYS_ECHOTEK = numpy.uint32(0x00080000)
672 ACQ_SYS_ECHOTEK = numpy.uint32(0x00080000)
670 ACQ_SYS_ADRXD = numpy.uint32(0x000C0000)
673 ACQ_SYS_ADRXD = numpy.uint32(0x000C0000)
671 ACQ_SYS_JULIA = numpy.uint32(0x00100000)
674 ACQ_SYS_JULIA = numpy.uint32(0x00100000)
672 ACQ_SYS_XXXXXX = numpy.uint32(0x00140000)
675 ACQ_SYS_XXXXXX = numpy.uint32(0x00140000)
673
676
674 EXP_NAME_ESP = numpy.uint32(0x00200000)
677 EXP_NAME_ESP = numpy.uint32(0x00200000)
675 CHANNEL_NAMES_ESP = numpy.uint32(0x00400000)
678 CHANNEL_NAMES_ESP = numpy.uint32(0x00400000)
676
679
677 OPERATION_MASK = numpy.uint32(0x0000003F)
680 OPERATION_MASK = numpy.uint32(0x0000003F)
678 DATATYPE_MASK = numpy.uint32(0x00000FC0)
681 DATATYPE_MASK = numpy.uint32(0x00000FC0)
679 DATAARRANGE_MASK = numpy.uint32(0x00007000)
682 DATAARRANGE_MASK = numpy.uint32(0x00007000)
680 ACQ_SYS_MASK = numpy.uint32(0x001C0000)
683 ACQ_SYS_MASK = numpy.uint32(0x001C0000)
681
684
682 dtype0 = numpy.dtype([('real','<i1'),('imag','<i1')])
685 dtype0 = numpy.dtype([('real','<i1'),('imag','<i1')])
683 dtype1 = numpy.dtype([('real','<i2'),('imag','<i2')])
686 dtype1 = numpy.dtype([('real','<i2'),('imag','<i2')])
684 dtype2 = numpy.dtype([('real','<i4'),('imag','<i4')])
687 dtype2 = numpy.dtype([('real','<i4'),('imag','<i4')])
685 dtype3 = numpy.dtype([('real','<i8'),('imag','<i8')])
688 dtype3 = numpy.dtype([('real','<i8'),('imag','<i8')])
686 dtype4 = numpy.dtype([('real','<f4'),('imag','<f4')])
689 dtype4 = numpy.dtype([('real','<f4'),('imag','<f4')])
687 dtype5 = numpy.dtype([('real','<f8'),('imag','<f8')])
690 dtype5 = numpy.dtype([('real','<f8'),('imag','<f8')])
688
691
689 NUMPY_DTYPE_LIST = [dtype0, dtype1, dtype2, dtype3, dtype4, dtype5]
692 NUMPY_DTYPE_LIST = [dtype0, dtype1, dtype2, dtype3, dtype4, dtype5]
690
693
691 PROCFLAG_DTYPE_LIST = [PROCFLAG.DATATYPE_CHAR,
694 PROCFLAG_DTYPE_LIST = [PROCFLAG.DATATYPE_CHAR,
692 PROCFLAG.DATATYPE_SHORT,
695 PROCFLAG.DATATYPE_SHORT,
693 PROCFLAG.DATATYPE_LONG,
696 PROCFLAG.DATATYPE_LONG,
694 PROCFLAG.DATATYPE_INT64,
697 PROCFLAG.DATATYPE_INT64,
695 PROCFLAG.DATATYPE_FLOAT,
698 PROCFLAG.DATATYPE_FLOAT,
696 PROCFLAG.DATATYPE_DOUBLE]
699 PROCFLAG.DATATYPE_DOUBLE]
697
700
698 DTYPE_WIDTH = [1, 2, 4, 8, 4, 8]
701 DTYPE_WIDTH = [1, 2, 4, 8, 4, 8]
699
702
700 def get_dtype_index(numpy_dtype):
703 def get_dtype_index(numpy_dtype):
701
704
702 index = None
705 index = None
703
706
704 for i in range(len(NUMPY_DTYPE_LIST)):
707 for i in range(len(NUMPY_DTYPE_LIST)):
705 if numpy_dtype == NUMPY_DTYPE_LIST[i]:
708 if numpy_dtype == NUMPY_DTYPE_LIST[i]:
706 index = i
709 index = i
707 break
710 break
708
711
709 return index
712 return index
710
713
711 def get_numpy_dtype(index):
714 def get_numpy_dtype(index):
712
715
713 return NUMPY_DTYPE_LIST[index]
716 return NUMPY_DTYPE_LIST[index]
714
717
715 def get_procflag_dtype(index):
718 def get_procflag_dtype(index):
716
719
717 return PROCFLAG_DTYPE_LIST[index]
720 return PROCFLAG_DTYPE_LIST[index]
718
721
719 def get_dtype_width(index):
722 def get_dtype_width(index):
720
723
721 return DTYPE_WIDTH[index] No newline at end of file
724 return DTYPE_WIDTH[index]
@@ -1,442 +1,442
1 import numpy
1 import numpy
2 import datetime
2 import datetime
3 import sys
3 import sys
4 import matplotlib
4 import matplotlib
5
5
6 if 'linux' in sys.platform:
6 if 'linux' in sys.platform:
7 matplotlib.use("TKAgg")
7 matplotlib.use("TKAgg")
8
8
9 if 'darwin' in sys.platform:
9 if 'darwin' in sys.platform:
10 matplotlib.use('GTKAgg')
10 matplotlib.use('WXAgg')
11 #Qt4Agg', 'GTK', 'GTKAgg', 'ps', 'agg', 'cairo', 'MacOSX', 'GTKCairo', 'WXAgg', 'template', 'TkAgg', 'GTK3Cairo', 'GTK3Agg', 'svg', 'WebAgg', 'CocoaAgg', 'emf', 'gdk', 'WX'
11 #Qt4Agg', 'GTK', 'GTKAgg', 'ps', 'agg', 'cairo', 'MacOSX', 'GTKCairo', 'WXAgg', 'template', 'TkAgg', 'GTK3Cairo', 'GTK3Agg', 'svg', 'WebAgg', 'CocoaAgg', 'emf', 'gdk', 'WX'
12 import matplotlib.pyplot
12 import matplotlib.pyplot
13
13
14 from mpl_toolkits.axes_grid1 import make_axes_locatable
14 from mpl_toolkits.axes_grid1 import make_axes_locatable
15 from matplotlib.ticker import *
15 from matplotlib.ticker import *
16
16
17 ###########################################
17 ###########################################
18 #Actualizacion de las funciones del driver
18 #Actualizacion de las funciones del driver
19 ###########################################
19 ###########################################
20
20
21 def createFigure(id, wintitle, width, height, facecolor="w", show=True):
21 def createFigure(id, wintitle, width, height, facecolor="w", show=True):
22
22
23 matplotlib.pyplot.ioff()
23 matplotlib.pyplot.ioff()
24 fig = matplotlib.pyplot.figure(num=id, facecolor=facecolor)
24 fig = matplotlib.pyplot.figure(num=id, facecolor=facecolor)
25 fig.canvas.manager.set_window_title(wintitle)
25 fig.canvas.manager.set_window_title(wintitle)
26 fig.canvas.manager.resize(width, height)
26 fig.canvas.manager.resize(width, height)
27 matplotlib.pyplot.ion()
27 matplotlib.pyplot.ion()
28 if show:
28 if show:
29 matplotlib.pyplot.show()
29 matplotlib.pyplot.show()
30
30
31 return fig
31 return fig
32
32
33 def closeFigure(show=False, fig=None):
33 def closeFigure(show=False, fig=None):
34
34
35 matplotlib.pyplot.ioff()
35 matplotlib.pyplot.ioff()
36 matplotlib.pyplot.pause(0.1)
36 # matplotlib.pyplot.pause(0.1)
37
37
38 if show:
38 if show:
39 matplotlib.pyplot.show()
39 matplotlib.pyplot.show()
40
40
41 if fig != None:
41 if fig != None:
42 matplotlib.pyplot.close(fig)
42 matplotlib.pyplot.close(fig.number)
43 matplotlib.pyplot.pause(0.1)
43 # matplotlib.pyplot.pause(0.1)
44 matplotlib.pyplot.ion()
44 # matplotlib.pyplot.ion()
45 return
45 return
46
46
47 matplotlib.pyplot.close("all")
47 matplotlib.pyplot.close("all")
48 matplotlib.pyplot.pause(0.1)
48 # matplotlib.pyplot.pause(0.1)
49 matplotlib.pyplot.ion()
49 # matplotlib.pyplot.ion()
50 return
50 return
51
51
52 def saveFigure(fig, filename):
52 def saveFigure(fig, filename):
53
53
54 matplotlib.pyplot.ioff()
54 # matplotlib.pyplot.ioff()
55 fig.savefig(filename)
55 fig.savefig(filename)
56 matplotlib.pyplot.ion()
56 # matplotlib.pyplot.ion()
57
57
58 def setWinTitle(fig, title):
58 def setWinTitle(fig, title):
59
59
60 fig.canvas.manager.set_window_title(title)
60 fig.canvas.manager.set_window_title(title)
61
61
62 def setTitle(fig, title):
62 def setTitle(fig, title):
63
63
64 fig.suptitle(title)
64 fig.suptitle(title)
65
65
66 def createAxes(fig, nrow, ncol, xpos, ypos, colspan, rowspan, polar=False):
66 def createAxes(fig, nrow, ncol, xpos, ypos, colspan, rowspan, polar=False):
67
67
68 matplotlib.pyplot.ioff()
68 matplotlib.pyplot.ioff()
69 matplotlib.pyplot.figure(fig.number)
69 matplotlib.pyplot.figure(fig.number)
70 axes = matplotlib.pyplot.subplot2grid((nrow, ncol),
70 axes = matplotlib.pyplot.subplot2grid((nrow, ncol),
71 (xpos, ypos),
71 (xpos, ypos),
72 colspan=colspan,
72 colspan=colspan,
73 rowspan=rowspan,
73 rowspan=rowspan,
74 polar=polar)
74 polar=polar)
75
75
76 matplotlib.pyplot.ion()
76 matplotlib.pyplot.ion()
77 return axes
77 return axes
78
78
79 def setAxesText(ax, text):
79 def setAxesText(ax, text):
80
80
81 ax.annotate(text,
81 ax.annotate(text,
82 xy = (.1, .99),
82 xy = (.1, .99),
83 xycoords = 'figure fraction',
83 xycoords = 'figure fraction',
84 horizontalalignment = 'left',
84 horizontalalignment = 'left',
85 verticalalignment = 'top',
85 verticalalignment = 'top',
86 fontsize = 10)
86 fontsize = 10)
87
87
88 def printLabels(ax, xlabel, ylabel, title):
88 def printLabels(ax, xlabel, ylabel, title):
89
89
90 ax.set_xlabel(xlabel, size=11)
90 ax.set_xlabel(xlabel, size=11)
91 ax.set_ylabel(ylabel, size=11)
91 ax.set_ylabel(ylabel, size=11)
92 ax.set_title(title, size=8)
92 ax.set_title(title, size=8)
93
93
94 def createPline(ax, x, y, xmin, xmax, ymin, ymax, xlabel='', ylabel='', title='',
94 def createPline(ax, x, y, xmin, xmax, ymin, ymax, xlabel='', ylabel='', title='',
95 ticksize=9, xtick_visible=True, ytick_visible=True,
95 ticksize=9, xtick_visible=True, ytick_visible=True,
96 nxticks=4, nyticks=10,
96 nxticks=4, nyticks=10,
97 grid=None,color='blue'):
97 grid=None,color='blue'):
98
98
99 """
99 """
100
100
101 Input:
101 Input:
102 grid : None, 'both', 'x', 'y'
102 grid : None, 'both', 'x', 'y'
103 """
103 """
104
104
105 matplotlib.pyplot.ioff()
105 matplotlib.pyplot.ioff()
106
106
107 ax.set_xlim([xmin,xmax])
107 ax.set_xlim([xmin,xmax])
108 ax.set_ylim([ymin,ymax])
108 ax.set_ylim([ymin,ymax])
109
109
110 printLabels(ax, xlabel, ylabel, title)
110 printLabels(ax, xlabel, ylabel, title)
111
111
112 ######################################################
112 ######################################################
113 if (xmax-xmin)<=1:
113 if (xmax-xmin)<=1:
114 xtickspos = numpy.linspace(xmin,xmax,nxticks)
114 xtickspos = numpy.linspace(xmin,xmax,nxticks)
115 xtickspos = numpy.array([float("%.1f"%i) for i in xtickspos])
115 xtickspos = numpy.array([float("%.1f"%i) for i in xtickspos])
116 ax.set_xticks(xtickspos)
116 ax.set_xticks(xtickspos)
117 else:
117 else:
118 xtickspos = numpy.arange(nxticks)*int((xmax-xmin)/(nxticks)) + int(xmin)
118 xtickspos = numpy.arange(nxticks)*int((xmax-xmin)/(nxticks)) + int(xmin)
119 # xtickspos = numpy.arange(nxticks)*float(xmax-xmin)/float(nxticks) + int(xmin)
119 # xtickspos = numpy.arange(nxticks)*float(xmax-xmin)/float(nxticks) + int(xmin)
120 ax.set_xticks(xtickspos)
120 ax.set_xticks(xtickspos)
121
121
122 for tick in ax.get_xticklabels():
122 for tick in ax.get_xticklabels():
123 tick.set_visible(xtick_visible)
123 tick.set_visible(xtick_visible)
124
124
125 for tick in ax.xaxis.get_major_ticks():
125 for tick in ax.xaxis.get_major_ticks():
126 tick.label.set_fontsize(ticksize)
126 tick.label.set_fontsize(ticksize)
127
127
128 ######################################################
128 ######################################################
129 for tick in ax.get_yticklabels():
129 for tick in ax.get_yticklabels():
130 tick.set_visible(ytick_visible)
130 tick.set_visible(ytick_visible)
131
131
132 for tick in ax.yaxis.get_major_ticks():
132 for tick in ax.yaxis.get_major_ticks():
133 tick.label.set_fontsize(ticksize)
133 tick.label.set_fontsize(ticksize)
134
134
135 ax.plot(x, y, color=color)
135 ax.plot(x, y, color=color)
136 iplot = ax.lines[-1]
136 iplot = ax.lines[-1]
137
137
138 ######################################################
138 ######################################################
139 if '0.' in matplotlib.__version__[0:2]:
139 if '0.' in matplotlib.__version__[0:2]:
140 print "The matplotlib version has to be updated to 1.1 or newer"
140 print "The matplotlib version has to be updated to 1.1 or newer"
141 return iplot
141 return iplot
142
142
143 if '1.0.' in matplotlib.__version__[0:4]:
143 if '1.0.' in matplotlib.__version__[0:4]:
144 print "The matplotlib version has to be updated to 1.1 or newer"
144 print "The matplotlib version has to be updated to 1.1 or newer"
145 return iplot
145 return iplot
146
146
147 if grid != None:
147 if grid != None:
148 ax.grid(b=True, which='major', axis=grid)
148 ax.grid(b=True, which='major', axis=grid)
149
149
150 matplotlib.pyplot.tight_layout()
150 matplotlib.pyplot.tight_layout()
151
151
152 matplotlib.pyplot.ion()
152 matplotlib.pyplot.ion()
153
153
154 return iplot
154 return iplot
155
155
156 def set_linedata(ax, x, y, idline):
156 def set_linedata(ax, x, y, idline):
157
157
158 ax.lines[idline].set_data(x,y)
158 ax.lines[idline].set_data(x,y)
159
159
160 def pline(iplot, x, y, xlabel='', ylabel='', title=''):
160 def pline(iplot, x, y, xlabel='', ylabel='', title=''):
161
161
162 ax = iplot.get_axes()
162 ax = iplot.get_axes()
163
163
164 printLabels(ax, xlabel, ylabel, title)
164 printLabels(ax, xlabel, ylabel, title)
165
165
166 set_linedata(ax, x, y, idline=0)
166 set_linedata(ax, x, y, idline=0)
167
167
168 def addpline(ax, x, y, color, linestyle, lw):
168 def addpline(ax, x, y, color, linestyle, lw):
169
169
170 ax.plot(x,y,color=color,linestyle=linestyle,lw=lw)
170 ax.plot(x,y,color=color,linestyle=linestyle,lw=lw)
171
171
172
172
173 def createPcolor(ax, x, y, z, xmin, xmax, ymin, ymax, zmin, zmax,
173 def createPcolor(ax, x, y, z, xmin, xmax, ymin, ymax, zmin, zmax,
174 xlabel='', ylabel='', title='', ticksize = 9,
174 xlabel='', ylabel='', title='', ticksize = 9,
175 colormap='jet',cblabel='', cbsize="5%",
175 colormap='jet',cblabel='', cbsize="5%",
176 XAxisAsTime=False):
176 XAxisAsTime=False):
177
177
178 matplotlib.pyplot.ioff()
178 matplotlib.pyplot.ioff()
179
179
180 divider = make_axes_locatable(ax)
180 divider = make_axes_locatable(ax)
181 ax_cb = divider.new_horizontal(size=cbsize, pad=0.05)
181 ax_cb = divider.new_horizontal(size=cbsize, pad=0.05)
182 fig = ax.get_figure()
182 fig = ax.get_figure()
183 fig.add_axes(ax_cb)
183 fig.add_axes(ax_cb)
184
184
185 ax.set_xlim([xmin,xmax])
185 ax.set_xlim([xmin,xmax])
186 ax.set_ylim([ymin,ymax])
186 ax.set_ylim([ymin,ymax])
187
187
188 printLabels(ax, xlabel, ylabel, title)
188 printLabels(ax, xlabel, ylabel, title)
189
189
190 imesh = ax.pcolormesh(x,y,z.T, vmin=zmin, vmax=zmax, cmap=matplotlib.pyplot.get_cmap(colormap))
190 imesh = ax.pcolormesh(x,y,z.T, vmin=zmin, vmax=zmax, cmap=matplotlib.pyplot.get_cmap(colormap))
191 cb = matplotlib.pyplot.colorbar(imesh, cax=ax_cb)
191 cb = matplotlib.pyplot.colorbar(imesh, cax=ax_cb)
192 cb.set_label(cblabel)
192 cb.set_label(cblabel)
193
193
194 # for tl in ax_cb.get_yticklabels():
194 # for tl in ax_cb.get_yticklabels():
195 # tl.set_visible(True)
195 # tl.set_visible(True)
196
196
197 for tick in ax.yaxis.get_major_ticks():
197 for tick in ax.yaxis.get_major_ticks():
198 tick.label.set_fontsize(ticksize)
198 tick.label.set_fontsize(ticksize)
199
199
200 for tick in ax.xaxis.get_major_ticks():
200 for tick in ax.xaxis.get_major_ticks():
201 tick.label.set_fontsize(ticksize)
201 tick.label.set_fontsize(ticksize)
202
202
203 for tick in cb.ax.get_yticklabels():
203 for tick in cb.ax.get_yticklabels():
204 tick.set_fontsize(ticksize)
204 tick.set_fontsize(ticksize)
205
205
206 ax_cb.yaxis.tick_right()
206 ax_cb.yaxis.tick_right()
207
207
208 if '0.' in matplotlib.__version__[0:2]:
208 if '0.' in matplotlib.__version__[0:2]:
209 print "The matplotlib version has to be updated to 1.1 or newer"
209 print "The matplotlib version has to be updated to 1.1 or newer"
210 return imesh
210 return imesh
211
211
212 if '1.0.' in matplotlib.__version__[0:4]:
212 if '1.0.' in matplotlib.__version__[0:4]:
213 print "The matplotlib version has to be updated to 1.1 or newer"
213 print "The matplotlib version has to be updated to 1.1 or newer"
214 return imesh
214 return imesh
215
215
216 matplotlib.pyplot.tight_layout()
216 matplotlib.pyplot.tight_layout()
217
217
218 if XAxisAsTime:
218 if XAxisAsTime:
219
219
220 func = lambda x, pos: ('%s') %(datetime.datetime.utcfromtimestamp(x).strftime("%H:%M:%S"))
220 func = lambda x, pos: ('%s') %(datetime.datetime.utcfromtimestamp(x).strftime("%H:%M:%S"))
221 ax.xaxis.set_major_formatter(FuncFormatter(func))
221 ax.xaxis.set_major_formatter(FuncFormatter(func))
222 ax.xaxis.set_major_locator(LinearLocator(7))
222 ax.xaxis.set_major_locator(LinearLocator(7))
223
223
224 matplotlib.pyplot.ion()
224 matplotlib.pyplot.ion()
225 return imesh
225 return imesh
226
226
227 def pcolor(imesh, z, xlabel='', ylabel='', title=''):
227 def pcolor(imesh, z, xlabel='', ylabel='', title=''):
228
228
229 z = z.T
229 z = z.T
230 ax = imesh.get_axes()
230 ax = imesh.get_axes()
231 printLabels(ax, xlabel, ylabel, title)
231 printLabels(ax, xlabel, ylabel, title)
232 imesh.set_array(z.ravel())
232 imesh.set_array(z.ravel())
233
233
234 def addpcolor(ax, x, y, z, zmin, zmax, xlabel='', ylabel='', title='', colormap='jet'):
234 def addpcolor(ax, x, y, z, zmin, zmax, xlabel='', ylabel='', title='', colormap='jet'):
235
235
236 printLabels(ax, xlabel, ylabel, title)
236 printLabels(ax, xlabel, ylabel, title)
237
237
238 ax.pcolormesh(x,y,z.T,vmin=zmin,vmax=zmax, cmap=matplotlib.pyplot.get_cmap(colormap))
238 ax.pcolormesh(x,y,z.T,vmin=zmin,vmax=zmax, cmap=matplotlib.pyplot.get_cmap(colormap))
239
239
240 def addpcolorbuffer(ax, x, y, z, zmin, zmax, xlabel='', ylabel='', title='', colormap='jet'):
240 def addpcolorbuffer(ax, x, y, z, zmin, zmax, xlabel='', ylabel='', title='', colormap='jet'):
241
241
242 printLabels(ax, xlabel, ylabel, title)
242 printLabels(ax, xlabel, ylabel, title)
243
243
244 ax.collections.remove(ax.collections[0])
244 ax.collections.remove(ax.collections[0])
245
245
246 ax.pcolormesh(x,y,z.T,vmin=zmin,vmax=zmax, cmap=matplotlib.pyplot.get_cmap(colormap))
246 ax.pcolormesh(x,y,z.T,vmin=zmin,vmax=zmax, cmap=matplotlib.pyplot.get_cmap(colormap))
247
247
248 def createPmultiline(ax, x, y, xmin, xmax, ymin, ymax, xlabel='', ylabel='', title='', legendlabels=None,
248 def createPmultiline(ax, x, y, xmin, xmax, ymin, ymax, xlabel='', ylabel='', title='', legendlabels=None,
249 ticksize=9, xtick_visible=True, ytick_visible=True,
249 ticksize=9, xtick_visible=True, ytick_visible=True,
250 nxticks=4, nyticks=10,
250 nxticks=4, nyticks=10,
251 grid=None):
251 grid=None):
252
252
253 """
253 """
254
254
255 Input:
255 Input:
256 grid : None, 'both', 'x', 'y'
256 grid : None, 'both', 'x', 'y'
257 """
257 """
258
258
259 matplotlib.pyplot.ioff()
259 matplotlib.pyplot.ioff()
260
260
261 lines = ax.plot(x.T, y)
261 lines = ax.plot(x.T, y)
262 leg = ax.legend(lines, legendlabels, loc='upper right')
262 leg = ax.legend(lines, legendlabels, loc='upper right')
263 leg.get_frame().set_alpha(0.5)
263 leg.get_frame().set_alpha(0.5)
264 ax.set_xlim([xmin,xmax])
264 ax.set_xlim([xmin,xmax])
265 ax.set_ylim([ymin,ymax])
265 ax.set_ylim([ymin,ymax])
266 printLabels(ax, xlabel, ylabel, title)
266 printLabels(ax, xlabel, ylabel, title)
267
267
268 xtickspos = numpy.arange(nxticks)*int((xmax-xmin)/(nxticks)) + int(xmin)
268 xtickspos = numpy.arange(nxticks)*int((xmax-xmin)/(nxticks)) + int(xmin)
269 ax.set_xticks(xtickspos)
269 ax.set_xticks(xtickspos)
270
270
271 for tick in ax.get_xticklabels():
271 for tick in ax.get_xticklabels():
272 tick.set_visible(xtick_visible)
272 tick.set_visible(xtick_visible)
273
273
274 for tick in ax.xaxis.get_major_ticks():
274 for tick in ax.xaxis.get_major_ticks():
275 tick.label.set_fontsize(ticksize)
275 tick.label.set_fontsize(ticksize)
276
276
277 for tick in ax.get_yticklabels():
277 for tick in ax.get_yticklabels():
278 tick.set_visible(ytick_visible)
278 tick.set_visible(ytick_visible)
279
279
280 for tick in ax.yaxis.get_major_ticks():
280 for tick in ax.yaxis.get_major_ticks():
281 tick.label.set_fontsize(ticksize)
281 tick.label.set_fontsize(ticksize)
282
282
283 iplot = ax.lines[-1]
283 iplot = ax.lines[-1]
284
284
285 if '0.' in matplotlib.__version__[0:2]:
285 if '0.' in matplotlib.__version__[0:2]:
286 print "The matplotlib version has to be updated to 1.1 or newer"
286 print "The matplotlib version has to be updated to 1.1 or newer"
287 return iplot
287 return iplot
288
288
289 if '1.0.' in matplotlib.__version__[0:4]:
289 if '1.0.' in matplotlib.__version__[0:4]:
290 print "The matplotlib version has to be updated to 1.1 or newer"
290 print "The matplotlib version has to be updated to 1.1 or newer"
291 return iplot
291 return iplot
292
292
293 if grid != None:
293 if grid != None:
294 ax.grid(b=True, which='major', axis=grid)
294 ax.grid(b=True, which='major', axis=grid)
295
295
296 matplotlib.pyplot.tight_layout()
296 matplotlib.pyplot.tight_layout()
297
297
298 matplotlib.pyplot.ion()
298 matplotlib.pyplot.ion()
299
299
300 return iplot
300 return iplot
301
301
302
302
303 def pmultiline(iplot, x, y, xlabel='', ylabel='', title=''):
303 def pmultiline(iplot, x, y, xlabel='', ylabel='', title=''):
304
304
305 ax = iplot.get_axes()
305 ax = iplot.get_axes()
306
306
307 printLabels(ax, xlabel, ylabel, title)
307 printLabels(ax, xlabel, ylabel, title)
308
308
309 for i in range(len(ax.lines)):
309 for i in range(len(ax.lines)):
310 line = ax.lines[i]
310 line = ax.lines[i]
311 line.set_data(x[i,:],y)
311 line.set_data(x[i,:],y)
312
312
313 def createPmultilineYAxis(ax, x, y, xmin, xmax, ymin, ymax, xlabel='', ylabel='', title='', legendlabels=None,
313 def createPmultilineYAxis(ax, x, y, xmin, xmax, ymin, ymax, xlabel='', ylabel='', title='', legendlabels=None,
314 ticksize=9, xtick_visible=True, ytick_visible=True,
314 ticksize=9, xtick_visible=True, ytick_visible=True,
315 nxticks=4, nyticks=10, marker='.', markersize=10, linestyle="None",
315 nxticks=4, nyticks=10, marker='.', markersize=10, linestyle="None",
316 grid=None, XAxisAsTime=False):
316 grid=None, XAxisAsTime=False):
317
317
318 """
318 """
319
319
320 Input:
320 Input:
321 grid : None, 'both', 'x', 'y'
321 grid : None, 'both', 'x', 'y'
322 """
322 """
323
323
324 matplotlib.pyplot.ioff()
324 matplotlib.pyplot.ioff()
325
325
326 # lines = ax.plot(x, y.T, marker=marker,markersize=markersize,linestyle=linestyle)
326 # lines = ax.plot(x, y.T, marker=marker,markersize=markersize,linestyle=linestyle)
327 lines = ax.plot(x, y.T, linestyle=linestyle, marker=marker, markersize=markersize)
327 lines = ax.plot(x, y.T, linestyle=linestyle, marker=marker, markersize=markersize)
328 leg = ax.legend(lines, legendlabels, loc='upper left', bbox_to_anchor=(1.01, 1.00), numpoints=1, handlelength=1.5, \
328 leg = ax.legend(lines, legendlabels, loc='upper left', bbox_to_anchor=(1.01, 1.00), numpoints=1, handlelength=1.5, \
329 handletextpad=0.5, borderpad=0.5, labelspacing=0.5, borderaxespad=0.)
329 handletextpad=0.5, borderpad=0.5, labelspacing=0.5, borderaxespad=0.)
330
330
331 for label in leg.get_texts(): label.set_fontsize(9)
331 for label in leg.get_texts(): label.set_fontsize(9)
332
332
333 ax.set_xlim([xmin,xmax])
333 ax.set_xlim([xmin,xmax])
334 ax.set_ylim([ymin,ymax])
334 ax.set_ylim([ymin,ymax])
335 printLabels(ax, xlabel, ylabel, title)
335 printLabels(ax, xlabel, ylabel, title)
336
336
337 # xtickspos = numpy.arange(nxticks)*int((xmax-xmin)/(nxticks)) + int(xmin)
337 # xtickspos = numpy.arange(nxticks)*int((xmax-xmin)/(nxticks)) + int(xmin)
338 # ax.set_xticks(xtickspos)
338 # ax.set_xticks(xtickspos)
339
339
340 for tick in ax.get_xticklabels():
340 for tick in ax.get_xticklabels():
341 tick.set_visible(xtick_visible)
341 tick.set_visible(xtick_visible)
342
342
343 for tick in ax.xaxis.get_major_ticks():
343 for tick in ax.xaxis.get_major_ticks():
344 tick.label.set_fontsize(ticksize)
344 tick.label.set_fontsize(ticksize)
345
345
346 for tick in ax.get_yticklabels():
346 for tick in ax.get_yticklabels():
347 tick.set_visible(ytick_visible)
347 tick.set_visible(ytick_visible)
348
348
349 for tick in ax.yaxis.get_major_ticks():
349 for tick in ax.yaxis.get_major_ticks():
350 tick.label.set_fontsize(ticksize)
350 tick.label.set_fontsize(ticksize)
351
351
352 iplot = ax.lines[-1]
352 iplot = ax.lines[-1]
353
353
354 if '0.' in matplotlib.__version__[0:2]:
354 if '0.' in matplotlib.__version__[0:2]:
355 print "The matplotlib version has to be updated to 1.1 or newer"
355 print "The matplotlib version has to be updated to 1.1 or newer"
356 return iplot
356 return iplot
357
357
358 if '1.0.' in matplotlib.__version__[0:4]:
358 if '1.0.' in matplotlib.__version__[0:4]:
359 print "The matplotlib version has to be updated to 1.1 or newer"
359 print "The matplotlib version has to be updated to 1.1 or newer"
360 return iplot
360 return iplot
361
361
362 if grid != None:
362 if grid != None:
363 ax.grid(b=True, which='major', axis=grid)
363 ax.grid(b=True, which='major', axis=grid)
364
364
365 matplotlib.pyplot.tight_layout()
365 matplotlib.pyplot.tight_layout()
366
366
367 if XAxisAsTime:
367 if XAxisAsTime:
368
368
369 func = lambda x, pos: ('%s') %(datetime.datetime.utcfromtimestamp(x).strftime("%H:%M:%S"))
369 func = lambda x, pos: ('%s') %(datetime.datetime.utcfromtimestamp(x).strftime("%H:%M:%S"))
370 ax.xaxis.set_major_formatter(FuncFormatter(func))
370 ax.xaxis.set_major_formatter(FuncFormatter(func))
371 ax.xaxis.set_major_locator(LinearLocator(7))
371 ax.xaxis.set_major_locator(LinearLocator(7))
372
372
373 matplotlib.pyplot.ion()
373 matplotlib.pyplot.ion()
374
374
375 return iplot
375 return iplot
376
376
377 def pmultilineyaxis(iplot, x, y, xlabel='', ylabel='', title=''):
377 def pmultilineyaxis(iplot, x, y, xlabel='', ylabel='', title=''):
378
378
379 ax = iplot.get_axes()
379 ax = iplot.get_axes()
380
380
381 printLabels(ax, xlabel, ylabel, title)
381 printLabels(ax, xlabel, ylabel, title)
382
382
383 for i in range(len(ax.lines)):
383 for i in range(len(ax.lines)):
384 line = ax.lines[i]
384 line = ax.lines[i]
385 line.set_data(x,y[i,:])
385 line.set_data(x,y[i,:])
386
386
387 def createPolar(ax, x, y,
387 def createPolar(ax, x, y,
388 xlabel='', ylabel='', title='', ticksize = 9,
388 xlabel='', ylabel='', title='', ticksize = 9,
389 colormap='jet',cblabel='', cbsize="5%",
389 colormap='jet',cblabel='', cbsize="5%",
390 XAxisAsTime=False):
390 XAxisAsTime=False):
391
391
392 matplotlib.pyplot.ioff()
392 matplotlib.pyplot.ioff()
393
393
394 ax.plot(x,y,'bo', markersize=5)
394 ax.plot(x,y,'bo', markersize=5)
395 # ax.set_rmax(90)
395 # ax.set_rmax(90)
396 ax.set_ylim(0,90)
396 ax.set_ylim(0,90)
397 ax.set_yticks(numpy.arange(0,90,20))
397 ax.set_yticks(numpy.arange(0,90,20))
398 # ax.text(0, -110, ylabel, rotation='vertical', va ='center', ha = 'center' ,size='11')
398 # ax.text(0, -110, ylabel, rotation='vertical', va ='center', ha = 'center' ,size='11')
399 # ax.text(0, 50, ylabel, rotation='vertical', va ='center', ha = 'left' ,size='11')
399 # ax.text(0, 50, ylabel, rotation='vertical', va ='center', ha = 'left' ,size='11')
400 # ax.text(100, 100, 'example', ha='left', va='center', rotation='vertical')
400 # ax.text(100, 100, 'example', ha='left', va='center', rotation='vertical')
401 ax.yaxis.labelpad = 230
401 ax.yaxis.labelpad = 230
402 printLabels(ax, xlabel, ylabel, title)
402 printLabels(ax, xlabel, ylabel, title)
403 iplot = ax.lines[-1]
403 iplot = ax.lines[-1]
404
404
405 if '0.' in matplotlib.__version__[0:2]:
405 if '0.' in matplotlib.__version__[0:2]:
406 print "The matplotlib version has to be updated to 1.1 or newer"
406 print "The matplotlib version has to be updated to 1.1 or newer"
407 return iplot
407 return iplot
408
408
409 if '1.0.' in matplotlib.__version__[0:4]:
409 if '1.0.' in matplotlib.__version__[0:4]:
410 print "The matplotlib version has to be updated to 1.1 or newer"
410 print "The matplotlib version has to be updated to 1.1 or newer"
411 return iplot
411 return iplot
412
412
413 # if grid != None:
413 # if grid != None:
414 # ax.grid(b=True, which='major', axis=grid)
414 # ax.grid(b=True, which='major', axis=grid)
415
415
416 matplotlib.pyplot.tight_layout()
416 matplotlib.pyplot.tight_layout()
417
417
418 matplotlib.pyplot.ion()
418 matplotlib.pyplot.ion()
419
419
420
420
421 return iplot
421 return iplot
422
422
423 def polar(iplot, x, y, xlabel='', ylabel='', title=''):
423 def polar(iplot, x, y, xlabel='', ylabel='', title=''):
424
424
425 ax = iplot.get_axes()
425 ax = iplot.get_axes()
426
426
427 # ax.text(0, -110, ylabel, rotation='vertical', va ='center', ha = 'center',size='11')
427 # ax.text(0, -110, ylabel, rotation='vertical', va ='center', ha = 'center',size='11')
428 printLabels(ax, xlabel, ylabel, title)
428 printLabels(ax, xlabel, ylabel, title)
429
429
430 set_linedata(ax, x, y, idline=0)
430 set_linedata(ax, x, y, idline=0)
431
431
432 def draw(fig):
432 def draw(fig):
433
433
434 if type(fig) == 'int':
434 if type(fig) == 'int':
435 raise ValueError, "Error drawing: Fig parameter should be a matplotlib figure object figure"
435 raise ValueError, "Error drawing: Fig parameter should be a matplotlib figure object figure"
436
436
437 fig.canvas.draw()
437 fig.canvas.draw()
438
438
439 def pause(interval=0.000001):
439 def pause(interval=0.000001):
440
440
441 matplotlib.pyplot.pause(interval)
441 matplotlib.pyplot.pause(interval)
442 No newline at end of file
442
@@ -1,38 +1,39
1 '''
1 '''
2 Created on Jul 16, 2014
2 Created on Jul 16, 2014
3
3
4 @author: roj-idl71
4 @author: roj-idl71
5 '''
5 '''
6
6
7 from schainpy import __version__
7 from schainpy import __version__
8 from setuptools import setup, Extension
8 from setuptools import setup, Extension
9
9
10 setup(name="schainpy",
10 setup(name="schainpy",
11 version=__version__,
11 version=__version__,
12 description="Python tools to read, write and process Jicamarca data",
12 description="Python tools to read, write and process Jicamarca data",
13 author="Miguel Urco",
13 author="Miguel Urco",
14 author_email="miguel.urco@jro.igp.gob.pe",
14 author_email="miguel.urco@jro.igp.gob.pe",
15 url="http://jro.igp.gob.pe",
15 url="http://jro.igp.gob.pe",
16 packages = {'schainpy',
16 packages = {'schainpy',
17 'schainpy.model',
17 'schainpy.model',
18 'schainpy.model.data',
18 'schainpy.model.data',
19 'schainpy.model.graphics',
19 'schainpy.model.graphics',
20 'schainpy.model.io',
20 'schainpy.model.io',
21 'schainpy.model.proc',
21 'schainpy.model.proc',
22 'schainpy.model.utils',
22 'schainpy.model.utils',
23 'schainpy.gui',
23 'schainpy.gui',
24 'schainpy.gui.figures',
24 'schainpy.gui.figures',
25 'schainpy.gui.viewcontroller',
25 'schainpy.gui.viewcontroller',
26 'schainpy.gui.viewer',
26 'schainpy.gui.viewer',
27 'schainpy.gui.viewer.windows'},
27 'schainpy.gui.viewer.windows'},
28 py_modules=['schainpy.serializer.DataTranslate',
28 py_modules=['schainpy.serializer.DataTranslate',
29 'schainpy.serializer.JROSerializer'],
29 'schainpy.serializer.JROSerializer'],
30 package_data={'schainpy.gui.figures': ['*.png']},
30 package_data={'schainpy.gui.figures': ['*.png']},
31 include_package_data=True,
31 include_package_data=True,
32 scripts =['schainpy/gui/schainGUI'],
32 scripts =['schainpy/gui/schainGUI'],
33 install_requires=["numpy >= 1.6.0",
33 install_requires=["numpy >= 1.6.0",
34 "scipy >= 0.9.0",
34 "scipy >= 0.9.0",
35 "h5py >= 2.0.1",
35 "h5py >= 2.0.1",
36 "wxpython >= 2.8",
36 "matplotlib >= 1.0.0"
37 "matplotlib >= 1.0.0"
37 ],
38 ],
38 ) No newline at end of file
39 )
General Comments 0
You need to be logged in to leave comments. Login now