##// END OF EJS Templates
Bugs fixed: Error selecting FTP parameters in Signal Chain GUI
Miguel Valdez -
r606:ed924449cee7
parent child
Show More

The requested changes are too big and content was truncated. Show full diff

@@ -1,1194 +1,1209
1 '''
1 '''
2 Created on September , 2012
2 Created on September , 2012
3 @author:
3 @author:
4 '''
4 '''
5 from xml.etree.ElementTree import Element, SubElement
5 from xml.etree.ElementTree import Element, SubElement
6 from xml.etree import ElementTree as ET
6 from xml.etree import ElementTree as ET
7 from xml.dom import minidom
7 from xml.dom import minidom
8
8
9 #import datetime
9 #import datetime
10 from model import *
10 from model import *
11
11
12 try:
12 try:
13 from gevent import sleep
13 from gevent import sleep
14 except:
14 except:
15 from time import sleep
15 from time import sleep
16
16
17 import ast
17 import ast
18
18
19 def prettify(elem):
19 def prettify(elem):
20 """Return a pretty-printed XML string for the Element.
20 """Return a pretty-printed XML string for the Element.
21 """
21 """
22 rough_string = ET.tostring(elem, 'utf-8')
22 rough_string = ET.tostring(elem, 'utf-8')
23 reparsed = minidom.parseString(rough_string)
23 reparsed = minidom.parseString(rough_string)
24 return reparsed.toprettyxml(indent=" ")
24 return reparsed.toprettyxml(indent=" ")
25
25
26 class ParameterConf():
26 class ParameterConf():
27
27
28 id = None
28 id = None
29 name = None
29 name = None
30 value = None
30 value = None
31 format = None
31 format = None
32
32
33 __formated_value = None
33 __formated_value = None
34
34
35 ELEMENTNAME = 'Parameter'
35 ELEMENTNAME = 'Parameter'
36
36
37 def __init__(self):
37 def __init__(self):
38
38
39 self.format = 'str'
39 self.format = 'str'
40
40
41 def getElementName(self):
41 def getElementName(self):
42
42
43 return self.ELEMENTNAME
43 return self.ELEMENTNAME
44
44
45 def getValue(self):
45 def getValue(self):
46
46
47 value = self.value
47 value = self.value
48 format = self.format
48 format = self.format
49
49
50 if self.__formated_value != None:
50 if self.__formated_value != None:
51
51
52 return self.__formated_value
52 return self.__formated_value
53
53
54 if format == 'str':
54 if format == 'str':
55 self.__formated_value = str(value)
55 self.__formated_value = str(value)
56 return self.__formated_value
56 return self.__formated_value
57
57
58 if value == '':
58 if value == '':
59 raise ValueError, "%s: This parameter value is empty" %self.name
59 raise ValueError, "%s: This parameter value is empty" %self.name
60
60
61 if format == 'bool':
61 if format == 'bool':
62 value = int(value)
62 value = int(value)
63
63
64 if format == 'list':
64 if format == 'list':
65 strList = value.split(',')
65 strList = value.split(',')
66
66
67 self.__formated_value = strList
67 self.__formated_value = strList
68
68
69 return self.__formated_value
69 return self.__formated_value
70
70
71 if format == 'intlist':
71 if format == 'intlist':
72 """
72 """
73 Example:
73 Example:
74 value = (0,1,2)
74 value = (0,1,2)
75 """
75 """
76 value = value.replace('(', '')
76 value = value.replace('(', '')
77 value = value.replace(')', '')
77 value = value.replace(')', '')
78
78
79 value = value.replace('[', '')
79 value = value.replace('[', '')
80 value = value.replace(']', '')
80 value = value.replace(']', '')
81
81
82 strList = value.split(',')
82 strList = value.split(',')
83 intList = [int(x) for x in strList]
83 intList = [int(x) for x in strList]
84
84
85 self.__formated_value = intList
85 self.__formated_value = intList
86
86
87 return self.__formated_value
87 return self.__formated_value
88
88
89 if format == 'floatlist':
89 if format == 'floatlist':
90 """
90 """
91 Example:
91 Example:
92 value = (0.5, 1.4, 2.7)
92 value = (0.5, 1.4, 2.7)
93 """
93 """
94
94
95 value = value.replace('(', '')
95 value = value.replace('(', '')
96 value = value.replace(')', '')
96 value = value.replace(')', '')
97
97
98 value = value.replace('[', '')
98 value = value.replace('[', '')
99 value = value.replace(']', '')
99 value = value.replace(']', '')
100
100
101 strList = value.split(',')
101 strList = value.split(',')
102 floatList = [float(x) for x in strList]
102 floatList = [float(x) for x in strList]
103
103
104 self.__formated_value = floatList
104 self.__formated_value = floatList
105
105
106 return self.__formated_value
106 return self.__formated_value
107
107
108 if format == 'date':
108 if format == 'date':
109 strList = value.split('/')
109 strList = value.split('/')
110 intList = [int(x) for x in strList]
110 intList = [int(x) for x in strList]
111 date = datetime.date(intList[0], intList[1], intList[2])
111 date = datetime.date(intList[0], intList[1], intList[2])
112
112
113 self.__formated_value = date
113 self.__formated_value = date
114
114
115 return self.__formated_value
115 return self.__formated_value
116
116
117 if format == 'time':
117 if format == 'time':
118 strList = value.split(':')
118 strList = value.split(':')
119 intList = [int(x) for x in strList]
119 intList = [int(x) for x in strList]
120 time = datetime.time(intList[0], intList[1], intList[2])
120 time = datetime.time(intList[0], intList[1], intList[2])
121
121
122 self.__formated_value = time
122 self.__formated_value = time
123
123
124 return self.__formated_value
124 return self.__formated_value
125
125
126 if format == 'pairslist':
126 if format == 'pairslist':
127 """
127 """
128 Example:
128 Example:
129 value = (0,1),(1,2)
129 value = (0,1),(1,2)
130 """
130 """
131
131
132 value = value.replace('(', '')
132 value = value.replace('(', '')
133 value = value.replace(')', '')
133 value = value.replace(')', '')
134
134
135 value = value.replace('[', '')
135 value = value.replace('[', '')
136 value = value.replace(']', '')
136 value = value.replace(']', '')
137
137
138 strList = value.split(',')
138 strList = value.split(',')
139 intList = [int(item) for item in strList]
139 intList = [int(item) for item in strList]
140 pairList = []
140 pairList = []
141 for i in range(len(intList)/2):
141 for i in range(len(intList)/2):
142 pairList.append((intList[i*2], intList[i*2 + 1]))
142 pairList.append((intList[i*2], intList[i*2 + 1]))
143
143
144 self.__formated_value = pairList
144 self.__formated_value = pairList
145
145
146 return self.__formated_value
146 return self.__formated_value
147
147
148 if format == 'multilist':
148 if format == 'multilist':
149 """
149 """
150 Example:
150 Example:
151 value = (0,1,2),(3,4,5)
151 value = (0,1,2),(3,4,5)
152 """
152 """
153 multiList = ast.literal_eval(value)
153 multiList = ast.literal_eval(value)
154
154
155 if type(multiList[0]) == int:
155 if type(multiList[0]) == int:
156 multiList = ast.literal_eval("(" + value + ")")
156 multiList = ast.literal_eval("(" + value + ")")
157
157
158 self.__formated_value = multiList
158 self.__formated_value = multiList
159
159
160 return self.__formated_value
160 return self.__formated_value
161
161
162 format_func = eval(format)
162 format_func = eval(format)
163
163
164 self.__formated_value = format_func(value)
164 self.__formated_value = format_func(value)
165
165
166 return self.__formated_value
166 return self.__formated_value
167
167
168 def updateId(self, new_id):
168 def updateId(self, new_id):
169
169
170 self.id = str(new_id)
170 self.id = str(new_id)
171
171
172 def setup(self, id, name, value, format='str'):
172 def setup(self, id, name, value, format='str'):
173
173
174 self.id = str(id)
174 self.id = str(id)
175 self.name = name
175 self.name = name
176 self.value = str(value)
176 self.value = str(value)
177 self.format = str.lower(format)
177 self.format = str.lower(format)
178
178
179 def update(self, name, value, format='str'):
179 def update(self, name, value, format='str'):
180
180
181 self.name = name
181 self.name = name
182 self.value = str(value)
182 self.value = str(value)
183 self.format = format
183 self.format = format
184
184
185 def makeXml(self, opElement):
185 def makeXml(self, opElement):
186
186
187 parmElement = SubElement(opElement, self.ELEMENTNAME)
187 parmElement = SubElement(opElement, self.ELEMENTNAME)
188 parmElement.set('id', str(self.id))
188 parmElement.set('id', str(self.id))
189 parmElement.set('name', self.name)
189 parmElement.set('name', self.name)
190 parmElement.set('value', self.value)
190 parmElement.set('value', self.value)
191 parmElement.set('format', self.format)
191 parmElement.set('format', self.format)
192
192
193 def readXml(self, parmElement):
193 def readXml(self, parmElement):
194
194
195 self.id = parmElement.get('id')
195 self.id = parmElement.get('id')
196 self.name = parmElement.get('name')
196 self.name = parmElement.get('name')
197 self.value = parmElement.get('value')
197 self.value = parmElement.get('value')
198 self.format = str.lower(parmElement.get('format'))
198 self.format = str.lower(parmElement.get('format'))
199
199
200 #Compatible with old signal chain version
200 #Compatible with old signal chain version
201 if self.format == 'int' and self.name == 'idfigure':
201 if self.format == 'int' and self.name == 'idfigure':
202 self.name = 'id'
202 self.name = 'id'
203
203
204 def printattr(self):
204 def printattr(self):
205
205
206 print "Parameter[%s]: name = %s, value = %s, format = %s" %(self.id, self.name, self.value, self.format)
206 print "Parameter[%s]: name = %s, value = %s, format = %s" %(self.id, self.name, self.value, self.format)
207
207
208 class OperationConf():
208 class OperationConf():
209
209
210 id = None
210 id = None
211 name = None
211 name = None
212 priority = None
212 priority = None
213 type = None
213 type = None
214
214
215 parmConfObjList = []
215 parmConfObjList = []
216
216
217 ELEMENTNAME = 'Operation'
217 ELEMENTNAME = 'Operation'
218
218
219 def __init__(self):
219 def __init__(self):
220
220
221 self.id = '0'
221 self.id = '0'
222 self.name = None
222 self.name = None
223 self.priority = None
223 self.priority = None
224 self.type = 'self'
224 self.type = 'self'
225
225
226
226
227 def __getNewId(self):
227 def __getNewId(self):
228
228
229 return int(self.id)*10 + len(self.parmConfObjList) + 1
229 return int(self.id)*10 + len(self.parmConfObjList) + 1
230
230
231 def updateId(self, new_id):
231 def updateId(self, new_id):
232
232
233 self.id = str(new_id)
233 self.id = str(new_id)
234
234
235 n = 1
235 n = 1
236 for parmObj in self.parmConfObjList:
236 for parmObj in self.parmConfObjList:
237
237
238 idParm = str(int(new_id)*10 + n)
238 idParm = str(int(new_id)*10 + n)
239 parmObj.updateId(idParm)
239 parmObj.updateId(idParm)
240
240
241 n += 1
241 n += 1
242
242
243 def getElementName(self):
243 def getElementName(self):
244
244
245 return self.ELEMENTNAME
245 return self.ELEMENTNAME
246
246
247 def getParameterObjList(self):
247 def getParameterObjList(self):
248
248
249 return self.parmConfObjList
249 return self.parmConfObjList
250
250
251 def getParameterObj(self, parameterName):
251 def getParameterObj(self, parameterName):
252
252
253 for parmConfObj in self.parmConfObjList:
253 for parmConfObj in self.parmConfObjList:
254
254
255 if parmConfObj.name != parameterName:
255 if parmConfObj.name != parameterName:
256 continue
256 continue
257
257
258 return parmConfObj
258 return parmConfObj
259
259
260 return None
260 return None
261
261
262 def getParameterObjfromValue(self,parameterValue):
262 def getParameterObjfromValue(self, parameterValue):
263
263 for parmConfObj in self.parmConfObjList:
264 for parmConfObj in self.parmConfObjList:
264
265
265 if parmConfObj.getValue() != parameterValue:
266 if parmConfObj.getValue() != parameterValue:
266 continue
267 continue
267
268
268 return parmConfObj.getValue()
269 return parmConfObj.getValue()
269
270
270 return None
271 return None
271
272
272 def getParameterValue(self, parameterName):
273 def getParameterValue(self, parameterName):
273
274
274 parameterObj = self.getParameterObj(parameterName)
275 parameterObj = self.getParameterObj(parameterName)
276
277 if not parameterObj:
278 return None
279
275 value = parameterObj.getValue()
280 value = parameterObj.getValue()
276
281
277 return value
282 return value
278
283
279 def setup(self, id, name, priority, type):
284 def setup(self, id, name, priority, type):
280
285
281 self.id = str(id)
286 self.id = str(id)
282 self.name = name
287 self.name = name
283 self.type = type
288 self.type = type
284 self.priority = priority
289 self.priority = priority
285
290
286 self.parmConfObjList = []
291 self.parmConfObjList = []
287
292
288 def removeParameters(self):
293 def removeParameters(self):
289
294
290 for obj in self.parmConfObjList:
295 for obj in self.parmConfObjList:
291 del obj
296 del obj
292
297
293 self.parmConfObjList = []
298 self.parmConfObjList = []
294
299
295 def addParameter(self, name, value, format='str'):
300 def addParameter(self, name, value, format='str'):
296
301
297 id = self.__getNewId()
302 id = self.__getNewId()
298
303
299 parmConfObj = ParameterConf()
304 parmConfObj = ParameterConf()
300 parmConfObj.setup(id, name, value, format)
305 parmConfObj.setup(id, name, value, format)
301
306
302 self.parmConfObjList.append(parmConfObj)
307 self.parmConfObjList.append(parmConfObj)
303
308
304 return parmConfObj
309 return parmConfObj
305
310
306 def changeParameter(self, name, value, format='str'):
311 def changeParameter(self, name, value, format='str'):
307
312
308 parmConfObj = self.getParameterObj(name)
313 parmConfObj = self.getParameterObj(name)
309 parmConfObj.update(name, value, format)
314 parmConfObj.update(name, value, format)
310
315
311 return parmConfObj
316 return parmConfObj
312
317
313 def makeXml(self, upElement):
318 def makeXml(self, upElement):
314
319
315 opElement = SubElement(upElement, self.ELEMENTNAME)
320 opElement = SubElement(upElement, self.ELEMENTNAME)
316 opElement.set('id', str(self.id))
321 opElement.set('id', str(self.id))
317 opElement.set('name', self.name)
322 opElement.set('name', self.name)
318 opElement.set('type', self.type)
323 opElement.set('type', self.type)
319 opElement.set('priority', str(self.priority))
324 opElement.set('priority', str(self.priority))
320
325
321 for parmConfObj in self.parmConfObjList:
326 for parmConfObj in self.parmConfObjList:
322 parmConfObj.makeXml(opElement)
327 parmConfObj.makeXml(opElement)
323
328
324 def readXml(self, opElement):
329 def readXml(self, opElement):
325
330
326 self.id = opElement.get('id')
331 self.id = opElement.get('id')
327 self.name = opElement.get('name')
332 self.name = opElement.get('name')
328 self.type = opElement.get('type')
333 self.type = opElement.get('type')
329 self.priority = opElement.get('priority')
334 self.priority = opElement.get('priority')
330
335
331 #Compatible with old signal chain version
336 #Compatible with old signal chain version
332 #Use of 'run' method instead 'init'
337 #Use of 'run' method instead 'init'
333 if self.type == 'self' and self.name == 'init':
338 if self.type == 'self' and self.name == 'init':
334 self.name = 'run'
339 self.name = 'run'
335
340
336 self.parmConfObjList = []
341 self.parmConfObjList = []
337
342
338 parmElementList = opElement.getiterator(ParameterConf().getElementName())
343 parmElementList = opElement.getiterator(ParameterConf().getElementName())
339
344
340 for parmElement in parmElementList:
345 for parmElement in parmElementList:
341 parmConfObj = ParameterConf()
346 parmConfObj = ParameterConf()
342 parmConfObj.readXml(parmElement)
347 parmConfObj.readXml(parmElement)
343
348
344 #Compatible with old signal chain version
349 #Compatible with old signal chain version
345 #If an 'plot' OPERATION is found, changes name operation by the value of its type PARAMETER
350 #If an 'plot' OPERATION is found, changes name operation by the value of its type PARAMETER
346 if self.type != 'self' and self.name == 'Plot':
351 if self.type != 'self' and self.name == 'Plot':
347 if parmConfObj.format == 'str' and parmConfObj.name == 'type':
352 if parmConfObj.format == 'str' and parmConfObj.name == 'type':
348 self.name = parmConfObj.value
353 self.name = parmConfObj.value
349 continue
354 continue
350
355
351 self.parmConfObjList.append(parmConfObj)
356 self.parmConfObjList.append(parmConfObj)
352
357
353 def printattr(self):
358 def printattr(self):
354
359
355 print "%s[%s]: name = %s, type = %s, priority = %s" %(self.ELEMENTNAME,
360 print "%s[%s]: name = %s, type = %s, priority = %s" %(self.ELEMENTNAME,
356 self.id,
361 self.id,
357 self.name,
362 self.name,
358 self.type,
363 self.type,
359 self.priority)
364 self.priority)
360
365
361 for parmConfObj in self.parmConfObjList:
366 for parmConfObj in self.parmConfObjList:
362 parmConfObj.printattr()
367 parmConfObj.printattr()
363
368
364 def createObject(self):
369 def createObject(self):
365
370
366 if self.type == 'self':
371 if self.type == 'self':
367 raise ValueError, "This operation type cannot be created"
372 raise ValueError, "This operation type cannot be created"
368
373
369 if self.type == 'external' or self.type == 'other':
374 if self.type == 'external' or self.type == 'other':
370 className = eval(self.name)
375 className = eval(self.name)
371 opObj = className()
376 opObj = className()
372
377
373 return opObj
378 return opObj
374
379
375 class ProcUnitConf():
380 class ProcUnitConf():
376
381
377 id = None
382 id = None
378 name = None
383 name = None
379 datatype = None
384 datatype = None
380 inputId = None
385 inputId = None
381 parentId = None
386 parentId = None
382
387
383 opConfObjList = []
388 opConfObjList = []
384
389
385 procUnitObj = None
390 procUnitObj = None
386 opObjList = []
391 opObjList = []
387
392
388 ELEMENTNAME = 'ProcUnit'
393 ELEMENTNAME = 'ProcUnit'
389
394
390 def __init__(self):
395 def __init__(self):
391
396
392 self.id = None
397 self.id = None
393 self.datatype = None
398 self.datatype = None
394 self.name = None
399 self.name = None
395 self.inputId = None
400 self.inputId = None
396
401
397 self.opConfObjList = []
402 self.opConfObjList = []
398
403
399 self.procUnitObj = None
404 self.procUnitObj = None
400 self.opObjDict = {}
405 self.opObjDict = {}
401
406
402 def __getPriority(self):
407 def __getPriority(self):
403
408
404 return len(self.opConfObjList)+1
409 return len(self.opConfObjList)+1
405
410
406 def __getNewId(self):
411 def __getNewId(self):
407
412
408 return int(self.id)*10 + len(self.opConfObjList) + 1
413 return int(self.id)*10 + len(self.opConfObjList) + 1
409
414
410 def getElementName(self):
415 def getElementName(self):
411
416
412 return self.ELEMENTNAME
417 return self.ELEMENTNAME
413
418
414 def getId(self):
419 def getId(self):
415
420
416 return self.id
421 return self.id
417
422
418 def updateId(self, new_id, parentId=parentId):
423 def updateId(self, new_id, parentId=parentId):
419
424
420
425
421 new_id = int(parentId)*10 + (int(self.id) % 10)
426 new_id = int(parentId)*10 + (int(self.id) % 10)
422 new_inputId = int(parentId)*10 + (int(self.inputId) % 10)
427 new_inputId = int(parentId)*10 + (int(self.inputId) % 10)
423
428
424 #If this proc unit has not inputs
429 #If this proc unit has not inputs
425 if self.inputId == '0':
430 if self.inputId == '0':
426 new_inputId = 0
431 new_inputId = 0
427
432
428 n = 1
433 n = 1
429 for opConfObj in self.opConfObjList:
434 for opConfObj in self.opConfObjList:
430
435
431 idOp = str(int(new_id)*10 + n)
436 idOp = str(int(new_id)*10 + n)
432 opConfObj.updateId(idOp)
437 opConfObj.updateId(idOp)
433
438
434 n += 1
439 n += 1
435
440
436 self.parentId = str(parentId)
441 self.parentId = str(parentId)
437 self.id = str(new_id)
442 self.id = str(new_id)
438 self.inputId = str(new_inputId)
443 self.inputId = str(new_inputId)
439
444
440
445
441 def getInputId(self):
446 def getInputId(self):
442
447
443 return self.inputId
448 return self.inputId
444
449
445 def getOperationObjList(self):
450 def getOperationObjList(self):
446
451
447 return self.opConfObjList
452 return self.opConfObjList
448
453
449 def getOperationObj(self, name=None):
454 def getOperationObj(self, name=None):
450
455
451 for opConfObj in self.opConfObjList:
456 for opConfObj in self.opConfObjList:
452
457
453 if opConfObj.name != name:
458 if opConfObj.name != name:
454 continue
459 continue
455
460
456 return opConfObj
461 return opConfObj
457
462
458 return None
463 return None
459
464
460 def getOpObjfromParamValue(self,value=None):
465 def getOpObjfromParamValue(self, value=None):
461
466
462 for opConfObj in self.opConfObjList:
467 for opConfObj in self.opConfObjList:
463 if opConfObj.getParameterObjfromValue(parameterValue=value) != value:
468 if opConfObj.getParameterObjfromValue(parameterValue=value) != value:
464 continue
469 continue
465 return opConfObj
470 return opConfObj
466 return None
471 return None
467
472
468 def getProcUnitObj(self):
473 def getProcUnitObj(self):
469
474
470 return self.procUnitObj
475 return self.procUnitObj
471
476
472 def setup(self, id, name, datatype, inputId, parentId=None):
477 def setup(self, id, name, datatype, inputId, parentId=None):
473
478
474 #Compatible with old signal chain version
479 #Compatible with old signal chain version
475 if datatype==None and name==None:
480 if datatype==None and name==None:
476 raise ValueError, "datatype or name should be defined"
481 raise ValueError, "datatype or name should be defined"
477
482
478 if name==None:
483 if name==None:
479 if 'Proc' in datatype:
484 if 'Proc' in datatype:
480 name = datatype
485 name = datatype
481 else:
486 else:
482 name = '%sProc' %(datatype)
487 name = '%sProc' %(datatype)
483
488
484 if datatype==None:
489 if datatype==None:
485 datatype = name.replace('Proc','')
490 datatype = name.replace('Proc','')
486
491
487 self.id = str(id)
492 self.id = str(id)
488 self.name = name
493 self.name = name
489 self.datatype = datatype
494 self.datatype = datatype
490 self.inputId = inputId
495 self.inputId = inputId
491 self.parentId = parentId
496 self.parentId = parentId
492
497
493 self.opConfObjList = []
498 self.opConfObjList = []
494
499
495 self.addOperation(name='run', optype='self')
500 self.addOperation(name='run', optype='self')
496
501
497 def removeOperations(self):
502 def removeOperations(self):
498
503
499 for obj in self.opConfObjList:
504 for obj in self.opConfObjList:
500 del obj
505 del obj
501
506
502 self.opConfObjList = []
507 self.opConfObjList = []
503 self.addOperation(name='run')
508 self.addOperation(name='run')
504
509
505 def addParameter(self, **kwargs):
510 def addParameter(self, **kwargs):
506 '''
511 '''
507 Add parameters to "run" operation
512 Add parameters to "run" operation
508 '''
513 '''
509 opObj = self.opConfObjList[0]
514 opObj = self.opConfObjList[0]
510
515
511 opObj.addParameter(**kwargs)
516 opObj.addParameter(**kwargs)
512
517
513 return opObj
518 return opObj
514
519
515 def addOperation(self, name, optype='self'):
520 def addOperation(self, name, optype='self'):
516
521
517 id = self.__getNewId()
522 id = self.__getNewId()
518 priority = self.__getPriority()
523 priority = self.__getPriority()
519
524
520 opConfObj = OperationConf()
525 opConfObj = OperationConf()
521 opConfObj.setup(id, name=name, priority=priority, type=optype)
526 opConfObj.setup(id, name=name, priority=priority, type=optype)
522
527
523 self.opConfObjList.append(opConfObj)
528 self.opConfObjList.append(opConfObj)
524
529
525 return opConfObj
530 return opConfObj
526
531
527 def makeXml(self, procUnitElement):
532 def makeXml(self, procUnitElement):
528
533
529 upElement = SubElement(procUnitElement, self.ELEMENTNAME)
534 upElement = SubElement(procUnitElement, self.ELEMENTNAME)
530 upElement.set('id', str(self.id))
535 upElement.set('id', str(self.id))
531 upElement.set('name', self.name)
536 upElement.set('name', self.name)
532 upElement.set('datatype', self.datatype)
537 upElement.set('datatype', self.datatype)
533 upElement.set('inputId', str(self.inputId))
538 upElement.set('inputId', str(self.inputId))
534
539
535 for opConfObj in self.opConfObjList:
540 for opConfObj in self.opConfObjList:
536 opConfObj.makeXml(upElement)
541 opConfObj.makeXml(upElement)
537
542
538 def readXml(self, upElement):
543 def readXml(self, upElement):
539
544
540 self.id = upElement.get('id')
545 self.id = upElement.get('id')
541 self.name = upElement.get('name')
546 self.name = upElement.get('name')
542 self.datatype = upElement.get('datatype')
547 self.datatype = upElement.get('datatype')
543 self.inputId = upElement.get('inputId')
548 self.inputId = upElement.get('inputId')
544
549
545 if self.ELEMENTNAME == "ReadUnit":
550 if self.ELEMENTNAME == "ReadUnit":
546 self.datatype = self.datatype.replace("Reader", "")
551 self.datatype = self.datatype.replace("Reader", "")
547
552
548 if self.ELEMENTNAME == "ProcUnit":
553 if self.ELEMENTNAME == "ProcUnit":
549 self.datatype = self.datatype.replace("Proc", "")
554 self.datatype = self.datatype.replace("Proc", "")
550
555
551 if self.inputId == 'None':
556 if self.inputId == 'None':
552 self.inputId = '0'
557 self.inputId = '0'
553
558
554 self.opConfObjList = []
559 self.opConfObjList = []
555
560
556 opElementList = upElement.getiterator(OperationConf().getElementName())
561 opElementList = upElement.getiterator(OperationConf().getElementName())
557
562
558 for opElement in opElementList:
563 for opElement in opElementList:
559 opConfObj = OperationConf()
564 opConfObj = OperationConf()
560 opConfObj.readXml(opElement)
565 opConfObj.readXml(opElement)
561 self.opConfObjList.append(opConfObj)
566 self.opConfObjList.append(opConfObj)
562
567
563 def printattr(self):
568 def printattr(self):
564
569
565 print "%s[%s]: name = %s, datatype = %s, inputId = %s" %(self.ELEMENTNAME,
570 print "%s[%s]: name = %s, datatype = %s, inputId = %s" %(self.ELEMENTNAME,
566 self.id,
571 self.id,
567 self.name,
572 self.name,
568 self.datatype,
573 self.datatype,
569 self.inputId)
574 self.inputId)
570
575
571 for opConfObj in self.opConfObjList:
576 for opConfObj in self.opConfObjList:
572 opConfObj.printattr()
577 opConfObj.printattr()
573
578
574 def createObjects(self):
579 def createObjects(self):
575
580
576 className = eval(self.name)
581 className = eval(self.name)
577 procUnitObj = className()
582 procUnitObj = className()
578
583
579 for opConfObj in self.opConfObjList:
584 for opConfObj in self.opConfObjList:
580
585
581 if opConfObj.type == 'self':
586 if opConfObj.type == 'self':
582 continue
587 continue
583
588
584 opObj = opConfObj.createObject()
589 opObj = opConfObj.createObject()
585
590
586 self.opObjDict[opConfObj.id] = opObj
591 self.opObjDict[opConfObj.id] = opObj
587 procUnitObj.addOperation(opObj, opConfObj.id)
592 procUnitObj.addOperation(opObj, opConfObj.id)
588
593
589 self.procUnitObj = procUnitObj
594 self.procUnitObj = procUnitObj
590
595
591 return procUnitObj
596 return procUnitObj
592
597
593 def run(self):
598 def run(self):
594
599
595 finalSts = False
600 finalSts = False
596
601
597 for opConfObj in self.opConfObjList:
602 for opConfObj in self.opConfObjList:
598
603
599 kwargs = {}
604 kwargs = {}
600 for parmConfObj in opConfObj.getParameterObjList():
605 for parmConfObj in opConfObj.getParameterObjList():
601 if opConfObj.name == 'run' and parmConfObj.name == 'datatype':
606 if opConfObj.name == 'run' and parmConfObj.name == 'datatype':
602 continue
607 continue
603
608
604 kwargs[parmConfObj.name] = parmConfObj.getValue()
609 kwargs[parmConfObj.name] = parmConfObj.getValue()
605
610
606 #print "\tRunning the '%s' operation with %s" %(opConfObj.name, opConfObj.id)
611 #print "\tRunning the '%s' operation with %s" %(opConfObj.name, opConfObj.id)
607 sts = self.procUnitObj.call(opType = opConfObj.type,
612 sts = self.procUnitObj.call(opType = opConfObj.type,
608 opName = opConfObj.name,
613 opName = opConfObj.name,
609 opId = opConfObj.id,
614 opId = opConfObj.id,
610 **kwargs)
615 **kwargs)
611 finalSts = finalSts or sts
616 finalSts = finalSts or sts
612
617
613 return finalSts
618 return finalSts
614
619
615 def close(self):
620 def close(self):
616
621
617 for opConfObj in self.opConfObjList:
622 for opConfObj in self.opConfObjList:
618 if opConfObj.type == 'self':
623 if opConfObj.type == 'self':
619 continue
624 continue
620
625
621 opObj = self.procUnitObj.getOperationObj(opConfObj.id)
626 opObj = self.procUnitObj.getOperationObj(opConfObj.id)
622 opObj.close()
627 opObj.close()
623
628
624 self.procUnitObj.close()
629 self.procUnitObj.close()
625
630
626 return
631 return
627
632
628 class ReadUnitConf(ProcUnitConf):
633 class ReadUnitConf(ProcUnitConf):
629
634
630 path = None
635 path = None
631 startDate = None
636 startDate = None
632 endDate = None
637 endDate = None
633 startTime = None
638 startTime = None
634 endTime = None
639 endTime = None
635
640
636 ELEMENTNAME = 'ReadUnit'
641 ELEMENTNAME = 'ReadUnit'
637
642
638 def __init__(self):
643 def __init__(self):
639
644
640 self.id = None
645 self.id = None
641 self.datatype = None
646 self.datatype = None
642 self.name = None
647 self.name = None
643 self.inputId = None
648 self.inputId = None
644
649
645 self.parentId = None
650 self.parentId = None
646
651
647 self.opConfObjList = []
652 self.opConfObjList = []
648 self.opObjList = []
653 self.opObjList = []
649
654
650 def getElementName(self):
655 def getElementName(self):
651
656
652 return self.ELEMENTNAME
657 return self.ELEMENTNAME
653
658
654 def setup(self, id, name, datatype, path, startDate="", endDate="", startTime="", endTime="", parentId=None, **kwargs):
659 def setup(self, id, name, datatype, path, startDate="", endDate="", startTime="", endTime="", parentId=None, **kwargs):
655
660
656 #Compatible with old signal chain version
661 #Compatible with old signal chain version
657 if datatype==None and name==None:
662 if datatype==None and name==None:
658 raise ValueError, "datatype or name should be defined"
663 raise ValueError, "datatype or name should be defined"
659
664
660 if name==None:
665 if name==None:
661 if 'Reader' in datatype:
666 if 'Reader' in datatype:
662 name = datatype
667 name = datatype
663 else:
668 else:
664 name = '%sReader' %(datatype)
669 name = '%sReader' %(datatype)
665
670
666 if datatype==None:
671 if datatype==None:
667 datatype = name.replace('Reader','')
672 datatype = name.replace('Reader','')
668
673
669 self.id = id
674 self.id = id
670 self.name = name
675 self.name = name
671 self.datatype = datatype
676 self.datatype = datatype
672
677
673 self.path = path
678 self.path = path
674 self.startDate = startDate
679 self.startDate = startDate
675 self.endDate = endDate
680 self.endDate = endDate
676 self.startTime = startTime
681 self.startTime = startTime
677 self.endTime = endTime
682 self.endTime = endTime
678
683
679 self.inputId = '0'
684 self.inputId = '0'
680 self.parentId = parentId
685 self.parentId = parentId
681
686
682 self.addRunOperation(**kwargs)
687 self.addRunOperation(**kwargs)
683
688
684 def update(self, datatype, path, startDate, endDate, startTime, endTime, parentId=None, name=None, **kwargs):
689 def update(self, datatype, path, startDate, endDate, startTime, endTime, parentId=None, name=None, **kwargs):
685
690
686 #Compatible with old signal chain version
691 #Compatible with old signal chain version
687 if datatype==None and name==None:
692 if datatype==None and name==None:
688 raise ValueError, "datatype or name should be defined"
693 raise ValueError, "datatype or name should be defined"
689
694
690 if name==None:
695 if name==None:
691 if 'Reader' in datatype:
696 if 'Reader' in datatype:
692 name = datatype
697 name = datatype
693 else:
698 else:
694 name = '%sReader' %(datatype)
699 name = '%sReader' %(datatype)
695
700
696 if datatype==None:
701 if datatype==None:
697 datatype = name.replace('Reader','')
702 datatype = name.replace('Reader','')
698
703
699 self.datatype = datatype
704 self.datatype = datatype
700 self.name = name
705 self.name = name
701 self.path = path
706 self.path = path
702 self.startDate = startDate
707 self.startDate = startDate
703 self.endDate = endDate
708 self.endDate = endDate
704 self.startTime = startTime
709 self.startTime = startTime
705 self.endTime = endTime
710 self.endTime = endTime
706
711
707 self.inputId = '0'
712 self.inputId = '0'
708 self.parentId = parentId
713 self.parentId = parentId
709
714
710 self.updateRunOperation(**kwargs)
715 self.updateRunOperation(**kwargs)
711
716
712 def addRunOperation(self, **kwargs):
717 def addRunOperation(self, **kwargs):
713
718
714 opObj = self.addOperation(name = 'run', optype = 'self')
719 opObj = self.addOperation(name = 'run', optype = 'self')
715
720
716 opObj.addParameter(name='datatype' , value=self.datatype, format='str')
721 opObj.addParameter(name='datatype' , value=self.datatype, format='str')
717 opObj.addParameter(name='path' , value=self.path, format='str')
722 opObj.addParameter(name='path' , value=self.path, format='str')
718 opObj.addParameter(name='startDate' , value=self.startDate, format='date')
723 opObj.addParameter(name='startDate' , value=self.startDate, format='date')
719 opObj.addParameter(name='endDate' , value=self.endDate, format='date')
724 opObj.addParameter(name='endDate' , value=self.endDate, format='date')
720 opObj.addParameter(name='startTime' , value=self.startTime, format='time')
725 opObj.addParameter(name='startTime' , value=self.startTime, format='time')
721 opObj.addParameter(name='endTime' , value=self.endTime, format='time')
726 opObj.addParameter(name='endTime' , value=self.endTime, format='time')
722
727
723 for key, value in kwargs.items():
728 for key, value in kwargs.items():
724 opObj.addParameter(name=key, value=value, format=type(value).__name__)
729 opObj.addParameter(name=key, value=value, format=type(value).__name__)
725
730
726 return opObj
731 return opObj
727
732
728 def updateRunOperation(self, **kwargs):
733 def updateRunOperation(self, **kwargs):
729
734
730 opObj = self.getOperationObj(name = 'run')
735 opObj = self.getOperationObj(name = 'run')
731 opObj.removeParameters()
736 opObj.removeParameters()
732
737
733 opObj.addParameter(name='datatype' , value=self.datatype, format='str')
738 opObj.addParameter(name='datatype' , value=self.datatype, format='str')
734 opObj.addParameter(name='path' , value=self.path, format='str')
739 opObj.addParameter(name='path' , value=self.path, format='str')
735 opObj.addParameter(name='startDate' , value=self.startDate, format='date')
740 opObj.addParameter(name='startDate' , value=self.startDate, format='date')
736 opObj.addParameter(name='endDate' , value=self.endDate, format='date')
741 opObj.addParameter(name='endDate' , value=self.endDate, format='date')
737 opObj.addParameter(name='startTime' , value=self.startTime, format='time')
742 opObj.addParameter(name='startTime' , value=self.startTime, format='time')
738 opObj.addParameter(name='endTime' , value=self.endTime, format='time')
743 opObj.addParameter(name='endTime' , value=self.endTime, format='time')
739
744
740 for key, value in kwargs.items():
745 for key, value in kwargs.items():
741 opObj.addParameter(name=key, value=value, format=type(value).__name__)
746 opObj.addParameter(name=key, value=value, format=type(value).__name__)
742
747
743 return opObj
748 return opObj
744
749
745 class Project():
750 class Project():
746
751
747 id = None
752 id = None
748 name = None
753 name = None
749 description = None
754 description = None
750 # readUnitConfObjList = None
755 # readUnitConfObjList = None
751 procUnitConfObjDict = None
756 procUnitConfObjDict = None
752
757
753 ELEMENTNAME = 'Project'
758 ELEMENTNAME = 'Project'
754
759
755 def __init__(self, control=None, dataq=None):
760 def __init__(self, control=None, dataq=None):
756
761
757 self.id = None
762 self.id = None
758 self.name = None
763 self.name = None
759 self.description = None
764 self.description = None
760
765
761 self.procUnitConfObjDict = {}
766 self.procUnitConfObjDict = {}
762
767
763 #global data_q
768 #global data_q
764 #data_q = dataq
769 #data_q = dataq
765
770
766 if control==None:
771 if control==None:
767 control = {'stop':False,'pause':False}
772 control = {'stop':False,'pause':False}
768
773
769 self.control = control
774 self.control = control
770
775
771 def __getNewId(self):
776 def __getNewId(self):
772
777
773 id = int(self.id)*10 + len(self.procUnitConfObjDict) + 1
778 id = int(self.id)*10 + len(self.procUnitConfObjDict) + 1
774
779
775 return str(id)
780 return str(id)
776
781
777 def getElementName(self):
782 def getElementName(self):
778
783
779 return self.ELEMENTNAME
784 return self.ELEMENTNAME
780
785
781 def getId(self):
786 def getId(self):
782
787
783 return self.id
788 return self.id
784
789
785 def updateId(self, new_id):
790 def updateId(self, new_id):
786
791
787 self.id = str(new_id)
792 self.id = str(new_id)
788
793
789 keyList = self.procUnitConfObjDict.keys()
794 keyList = self.procUnitConfObjDict.keys()
790 keyList.sort()
795 keyList.sort()
791
796
792 n = 1
797 n = 1
793 newProcUnitConfObjDict = {}
798 newProcUnitConfObjDict = {}
794
799
795 for procKey in keyList:
800 for procKey in keyList:
796
801
797 procUnitConfObj = self.procUnitConfObjDict[procKey]
802 procUnitConfObj = self.procUnitConfObjDict[procKey]
798 idProcUnit = str(int(self.id)*10 + n)
803 idProcUnit = str(int(self.id)*10 + n)
799 procUnitConfObj.updateId(idProcUnit, parentId = self.id)
804 procUnitConfObj.updateId(idProcUnit, parentId = self.id)
800
805
801 newProcUnitConfObjDict[idProcUnit] = procUnitConfObj
806 newProcUnitConfObjDict[idProcUnit] = procUnitConfObj
802 n += 1
807 n += 1
803
808
804 self.procUnitConfObjDict = newProcUnitConfObjDict
809 self.procUnitConfObjDict = newProcUnitConfObjDict
805
810
806 def setup(self, id, name, description):
811 def setup(self, id, name, description):
807
812
808 self.id = str(id)
813 self.id = str(id)
809 self.name = name
814 self.name = name
810 self.description = description
815 self.description = description
811
816
812 def update(self, name, description):
817 def update(self, name, description):
813
818
814 self.name = name
819 self.name = name
815 self.description = description
820 self.description = description
816
821
817 def addReadUnit(self, datatype=None, name=None, **kwargs):
822 def addReadUnit(self, datatype=None, name=None, **kwargs):
818
823
819 idReadUnit = self.__getNewId()
824 idReadUnit = self.__getNewId()
820
825
821 readUnitConfObj = ReadUnitConf()
826 readUnitConfObj = ReadUnitConf()
822 readUnitConfObj.setup(idReadUnit, name, datatype, parentId=self.id, **kwargs)
827 readUnitConfObj.setup(idReadUnit, name, datatype, parentId=self.id, **kwargs)
823
828
824 self.procUnitConfObjDict[readUnitConfObj.getId()] = readUnitConfObj
829 self.procUnitConfObjDict[readUnitConfObj.getId()] = readUnitConfObj
825
830
826 return readUnitConfObj
831 return readUnitConfObj
827
832
828 def addProcUnit(self, inputId='0', datatype=None, name=None):
833 def addProcUnit(self, inputId='0', datatype=None, name=None):
829
834
830 idProcUnit = self.__getNewId()
835 idProcUnit = self.__getNewId()
831
836
832 procUnitConfObj = ProcUnitConf()
837 procUnitConfObj = ProcUnitConf()
833 procUnitConfObj.setup(idProcUnit, name, datatype, inputId, parentId=self.id)
838 procUnitConfObj.setup(idProcUnit, name, datatype, inputId, parentId=self.id)
834
839
835 self.procUnitConfObjDict[procUnitConfObj.getId()] = procUnitConfObj
840 self.procUnitConfObjDict[procUnitConfObj.getId()] = procUnitConfObj
836
841
837 return procUnitConfObj
842 return procUnitConfObj
838
843
839 def removeProcUnit(self, id):
844 def removeProcUnit(self, id):
840
845
841 if id in self.procUnitConfObjDict.keys():
846 if id in self.procUnitConfObjDict.keys():
842 self.procUnitConfObjDict.pop(id)
847 self.procUnitConfObjDict.pop(id)
843
848
844 def getReadUnitId(self):
849 def getReadUnitId(self):
845
850
846 readUnitConfObj = self.getReadUnitObj()
851 readUnitConfObj = self.getReadUnitObj()
847
852
848 return readUnitConfObj.id
853 return readUnitConfObj.id
849
854
850 def getReadUnitObj(self):
855 def getReadUnitObj(self):
851
856
852 for obj in self.procUnitConfObjDict.values():
857 for obj in self.procUnitConfObjDict.values():
853 if obj.getElementName() == "ReadUnit":
858 if obj.getElementName() == "ReadUnit":
854 return obj
859 return obj
855
860
856 return None
861 return None
857
862
858 def getProcUnitObj(self, id):
863 def getProcUnitObj(self, id=None, name=None):
864
865 if id != None:
866 return self.procUnitConfObjDict[id]
867
868 if name != None:
869 return self.getProcUnitObjByName(name)
870
871 return None
859
872
860 return self.procUnitConfObjDict[id]
861
862 def getProcUnitObjByName(self, name):
873 def getProcUnitObjByName(self, name):
863
874
864 for obj in self.procUnitConfObjDict.values():
875 for obj in self.procUnitConfObjDict.values():
865 if obj.name == name:
876 if obj.name == name:
866 return obj
877 return obj
867
878
868 return None
879 return None
869
880
881 def procUnitItems(self):
882
883 return self.procUnitConfObjDict.items()
884
870 def makeXml(self):
885 def makeXml(self):
871
886
872 projectElement = Element('Project')
887 projectElement = Element('Project')
873 projectElement.set('id', str(self.id))
888 projectElement.set('id', str(self.id))
874 projectElement.set('name', self.name)
889 projectElement.set('name', self.name)
875 projectElement.set('description', self.description)
890 projectElement.set('description', self.description)
876
891
877 # for readUnitConfObj in self.readUnitConfObjList:
892 # for readUnitConfObj in self.readUnitConfObjList:
878 # readUnitConfObj.makeXml(projectElement)
893 # readUnitConfObj.makeXml(projectElement)
879
894
880 for procUnitConfObj in self.procUnitConfObjDict.values():
895 for procUnitConfObj in self.procUnitConfObjDict.values():
881 procUnitConfObj.makeXml(projectElement)
896 procUnitConfObj.makeXml(projectElement)
882
897
883 self.projectElement = projectElement
898 self.projectElement = projectElement
884
899
885 def writeXml(self, filename):
900 def writeXml(self, filename):
886
901
887 self.makeXml()
902 self.makeXml()
888
903
889 #print prettify(self.projectElement)
904 #print prettify(self.projectElement)
890
905
891 ElementTree(self.projectElement).write(filename, method='xml')
906 ElementTree(self.projectElement).write(filename, method='xml')
892
907
893 def readXml(self, filename):
908 def readXml(self, filename):
894
909
895 #tree = ET.parse(filename)
910 #tree = ET.parse(filename)
896 self.projectElement = None
911 self.projectElement = None
897 # self.readUnitConfObjList = []
912 # self.readUnitConfObjList = []
898 self.procUnitConfObjDict = {}
913 self.procUnitConfObjDict = {}
899
914
900 self.projectElement = ElementTree().parse(filename)
915 self.projectElement = ElementTree().parse(filename)
901
916
902 self.project = self.projectElement.tag
917 self.project = self.projectElement.tag
903
918
904 self.id = self.projectElement.get('id')
919 self.id = self.projectElement.get('id')
905 self.name = self.projectElement.get('name')
920 self.name = self.projectElement.get('name')
906 self.description = self.projectElement.get('description')
921 self.description = self.projectElement.get('description')
907
922
908 readUnitElementList = self.projectElement.getiterator(ReadUnitConf().getElementName())
923 readUnitElementList = self.projectElement.getiterator(ReadUnitConf().getElementName())
909
924
910 for readUnitElement in readUnitElementList:
925 for readUnitElement in readUnitElementList:
911 readUnitConfObj = ReadUnitConf()
926 readUnitConfObj = ReadUnitConf()
912 readUnitConfObj.readXml(readUnitElement)
927 readUnitConfObj.readXml(readUnitElement)
913
928
914 if readUnitConfObj.parentId == None:
929 if readUnitConfObj.parentId == None:
915 readUnitConfObj.parentId = self.id
930 readUnitConfObj.parentId = self.id
916
931
917 self.procUnitConfObjDict[readUnitConfObj.getId()] = readUnitConfObj
932 self.procUnitConfObjDict[readUnitConfObj.getId()] = readUnitConfObj
918
933
919 procUnitElementList = self.projectElement.getiterator(ProcUnitConf().getElementName())
934 procUnitElementList = self.projectElement.getiterator(ProcUnitConf().getElementName())
920
935
921 for procUnitElement in procUnitElementList:
936 for procUnitElement in procUnitElementList:
922 procUnitConfObj = ProcUnitConf()
937 procUnitConfObj = ProcUnitConf()
923 procUnitConfObj.readXml(procUnitElement)
938 procUnitConfObj.readXml(procUnitElement)
924
939
925 if procUnitConfObj.parentId == None:
940 if procUnitConfObj.parentId == None:
926 procUnitConfObj.parentId = self.id
941 procUnitConfObj.parentId = self.id
927
942
928 self.procUnitConfObjDict[procUnitConfObj.getId()] = procUnitConfObj
943 self.procUnitConfObjDict[procUnitConfObj.getId()] = procUnitConfObj
929
944
930 def printattr(self):
945 def printattr(self):
931
946
932 print "Project[%s]: name = %s, description = %s" %(self.id,
947 print "Project[%s]: name = %s, description = %s" %(self.id,
933 self.name,
948 self.name,
934 self.description)
949 self.description)
935
950
936 # for readUnitConfObj in self.readUnitConfObjList:
951 # for readUnitConfObj in self.readUnitConfObjList:
937 # readUnitConfObj.printattr()
952 # readUnitConfObj.printattr()
938
953
939 for procUnitConfObj in self.procUnitConfObjDict.values():
954 for procUnitConfObj in self.procUnitConfObjDict.values():
940 procUnitConfObj.printattr()
955 procUnitConfObj.printattr()
941
956
942 def createObjects(self):
957 def createObjects(self):
943
958
944 # for readUnitConfObj in self.readUnitConfObjList:
959 # for readUnitConfObj in self.readUnitConfObjList:
945 # readUnitConfObj.createObjects()
960 # readUnitConfObj.createObjects()
946
961
947 for procUnitConfObj in self.procUnitConfObjDict.values():
962 for procUnitConfObj in self.procUnitConfObjDict.values():
948 procUnitConfObj.createObjects()
963 procUnitConfObj.createObjects()
949
964
950 def __connect(self, objIN, thisObj):
965 def __connect(self, objIN, thisObj):
951
966
952 thisObj.setInput(objIN.getOutputObj())
967 thisObj.setInput(objIN.getOutputObj())
953
968
954 def connectObjects(self):
969 def connectObjects(self):
955
970
956 for thisPUConfObj in self.procUnitConfObjDict.values():
971 for thisPUConfObj in self.procUnitConfObjDict.values():
957
972
958 inputId = thisPUConfObj.getInputId()
973 inputId = thisPUConfObj.getInputId()
959
974
960 if int(inputId) == 0:
975 if int(inputId) == 0:
961 continue
976 continue
962
977
963 #Get input object
978 #Get input object
964 puConfINObj = self.procUnitConfObjDict[inputId]
979 puConfINObj = self.procUnitConfObjDict[inputId]
965 puObjIN = puConfINObj.getProcUnitObj()
980 puObjIN = puConfINObj.getProcUnitObj()
966
981
967 #Get current object
982 #Get current object
968 thisPUObj = thisPUConfObj.getProcUnitObj()
983 thisPUObj = thisPUConfObj.getProcUnitObj()
969
984
970 self.__connect(puObjIN, thisPUObj)
985 self.__connect(puObjIN, thisPUObj)
971
986
972 def run(self):
987 def run(self):
973
988
974 # for readUnitConfObj in self.readUnitConfObjList:
989 # for readUnitConfObj in self.readUnitConfObjList:
975 # readUnitConfObj.run()
990 # readUnitConfObj.run()
976 print
991 print
977 print "*"*40
992 print "*"*40
978 print " Starting SIGNAL CHAIN PROCESSING "
993 print " Starting SIGNAL CHAIN PROCESSING "
979 print "*"*40
994 print "*"*40
980 print
995 print
981
996
982 keyList = self.procUnitConfObjDict.keys()
997 keyList = self.procUnitConfObjDict.keys()
983 keyList.sort()
998 keyList.sort()
984
999
985 while(True):
1000 while(True):
986
1001
987 finalSts = False
1002 finalSts = False
988
1003
989 for procKey in keyList:
1004 for procKey in keyList:
990 # print "Running the '%s' process with %s" %(procUnitConfObj.name, procUnitConfObj.id)
1005 # print "Running the '%s' process with %s" %(procUnitConfObj.name, procUnitConfObj.id)
991
1006
992 procUnitConfObj = self.procUnitConfObjDict[procKey]
1007 procUnitConfObj = self.procUnitConfObjDict[procKey]
993 sts = procUnitConfObj.run()
1008 sts = procUnitConfObj.run()
994 finalSts = finalSts or sts
1009 finalSts = finalSts or sts
995
1010
996 #If every process unit finished so end process
1011 #If every process unit finished so end process
997 if not(finalSts):
1012 if not(finalSts):
998 print "Every process unit have finished"
1013 print "Every process unit have finished"
999 break
1014 break
1000
1015
1001 if self.control['pause']:
1016 if self.control['pause']:
1002 print "Process suspended"
1017 print "Process suspended"
1003
1018
1004 while True:
1019 while True:
1005 sleep(0.1)
1020 sleep(0.1)
1006
1021
1007 if not self.control['pause']:
1022 if not self.control['pause']:
1008 break
1023 break
1009
1024
1010 if self.control['stop']:
1025 if self.control['stop']:
1011 break
1026 break
1012 print "Process reinitialized"
1027 print "Process reinitialized"
1013
1028
1014 if self.control['stop']:
1029 if self.control['stop']:
1015 print "Process stopped"
1030 print "Process stopped"
1016 break
1031 break
1017
1032
1018 #Closing every process
1033 #Closing every process
1019 for procKey in keyList:
1034 for procKey in keyList:
1020 procUnitConfObj = self.procUnitConfObjDict[procKey]
1035 procUnitConfObj = self.procUnitConfObjDict[procKey]
1021 procUnitConfObj.close()
1036 procUnitConfObj.close()
1022
1037
1023 print "Process finished"
1038 print "Process finished"
1024
1039
1025 def start(self, filename):
1040 def start(self, filename):
1026
1041
1027 self.writeXml(filename)
1042 self.writeXml(filename)
1028 self.readXml(filename)
1043 self.readXml(filename)
1029
1044
1030 self.createObjects()
1045 self.createObjects()
1031 self.connectObjects()
1046 self.connectObjects()
1032 self.run()
1047 self.run()
1033
1048
1034 class ControllerThread(threading.Thread, Project):
1049 class ControllerThread(threading.Thread, Project):
1035
1050
1036 def __init__(self, filename):
1051 def __init__(self, filename):
1037
1052
1038 threading.Thread.__init__(self)
1053 threading.Thread.__init__(self)
1039 Project.__init__(self)
1054 Project.__init__(self)
1040
1055
1041 self.setDaemon(True)
1056 self.setDaemon(True)
1042
1057
1043 self.filename = filename
1058 self.filename = filename
1044 self.control = {'stop':False, 'pause':False}
1059 self.control = {'stop':False, 'pause':False}
1045
1060
1046 def stop(self):
1061 def stop(self):
1047 self.control['stop'] = True
1062 self.control['stop'] = True
1048
1063
1049 def pause(self):
1064 def pause(self):
1050 self.control['pause'] = not(self.control['pause'])
1065 self.control['pause'] = not(self.control['pause'])
1051
1066
1052 def run(self):
1067 def run(self):
1053 self.control['stop'] = False
1068 self.control['stop'] = False
1054 self.control['pause'] = False
1069 self.control['pause'] = False
1055
1070
1056 self.readXml(self.filename)
1071 self.readXml(self.filename)
1057 self.createObjects()
1072 self.createObjects()
1058 self.connectObjects()
1073 self.connectObjects()
1059 Project.run(self)
1074 Project.run(self)
1060
1075
1061 if __name__ == '__main__':
1076 if __name__ == '__main__':
1062
1077
1063 desc = "Segundo Test"
1078 desc = "Segundo Test"
1064 filename = "schain.xml"
1079 filename = "schain.xml"
1065
1080
1066 controllerObj = Project()
1081 controllerObj = Project()
1067
1082
1068 controllerObj.setup(id = '191', name='test01', description=desc)
1083 controllerObj.setup(id = '191', name='test01', description=desc)
1069
1084
1070 readUnitConfObj = controllerObj.addReadUnit(datatype='Voltage',
1085 readUnitConfObj = controllerObj.addReadUnit(datatype='Voltage',
1071 path='data/rawdata/',
1086 path='data/rawdata/',
1072 startDate='2011/01/01',
1087 startDate='2011/01/01',
1073 endDate='2012/12/31',
1088 endDate='2012/12/31',
1074 startTime='00:00:00',
1089 startTime='00:00:00',
1075 endTime='23:59:59',
1090 endTime='23:59:59',
1076 online=1,
1091 online=1,
1077 walk=1)
1092 walk=1)
1078
1093
1079 # opObj00 = readUnitConfObj.addOperation(name='printInfo')
1094 # opObj00 = readUnitConfObj.addOperation(name='printInfo')
1080
1095
1081 procUnitConfObj0 = controllerObj.addProcUnit(datatype='Voltage', inputId=readUnitConfObj.getId())
1096 procUnitConfObj0 = controllerObj.addProcUnit(datatype='Voltage', inputId=readUnitConfObj.getId())
1082
1097
1083 opObj10 = procUnitConfObj0.addOperation(name='selectChannels')
1098 opObj10 = procUnitConfObj0.addOperation(name='selectChannels')
1084 opObj10.addParameter(name='channelList', value='3,4,5', format='intlist')
1099 opObj10.addParameter(name='channelList', value='3,4,5', format='intlist')
1085
1100
1086 opObj10 = procUnitConfObj0.addOperation(name='selectHeights')
1101 opObj10 = procUnitConfObj0.addOperation(name='selectHeights')
1087 opObj10.addParameter(name='minHei', value='90', format='float')
1102 opObj10.addParameter(name='minHei', value='90', format='float')
1088 opObj10.addParameter(name='maxHei', value='180', format='float')
1103 opObj10.addParameter(name='maxHei', value='180', format='float')
1089
1104
1090 opObj12 = procUnitConfObj0.addOperation(name='CohInt', optype='external')
1105 opObj12 = procUnitConfObj0.addOperation(name='CohInt', optype='external')
1091 opObj12.addParameter(name='n', value='10', format='int')
1106 opObj12.addParameter(name='n', value='10', format='int')
1092
1107
1093 procUnitConfObj1 = controllerObj.addProcUnit(datatype='Spectra', inputId=procUnitConfObj0.getId())
1108 procUnitConfObj1 = controllerObj.addProcUnit(datatype='Spectra', inputId=procUnitConfObj0.getId())
1094 procUnitConfObj1.addParameter(name='nFFTPoints', value='32', format='int')
1109 procUnitConfObj1.addParameter(name='nFFTPoints', value='32', format='int')
1095 # procUnitConfObj1.addParameter(name='pairList', value='(0,1),(0,2),(1,2)', format='')
1110 # procUnitConfObj1.addParameter(name='pairList', value='(0,1),(0,2),(1,2)', format='')
1096
1111
1097
1112
1098 opObj11 = procUnitConfObj1.addOperation(name='SpectraPlot', optype='external')
1113 opObj11 = procUnitConfObj1.addOperation(name='SpectraPlot', optype='external')
1099 opObj11.addParameter(name='idfigure', value='1', format='int')
1114 opObj11.addParameter(name='idfigure', value='1', format='int')
1100 opObj11.addParameter(name='wintitle', value='SpectraPlot0', format='str')
1115 opObj11.addParameter(name='wintitle', value='SpectraPlot0', format='str')
1101 opObj11.addParameter(name='zmin', value='40', format='int')
1116 opObj11.addParameter(name='zmin', value='40', format='int')
1102 opObj11.addParameter(name='zmax', value='90', format='int')
1117 opObj11.addParameter(name='zmax', value='90', format='int')
1103 opObj11.addParameter(name='showprofile', value='1', format='int')
1118 opObj11.addParameter(name='showprofile', value='1', format='int')
1104
1119
1105 # opObj11 = procUnitConfObj1.addOperation(name='CrossSpectraPlot', optype='external')
1120 # opObj11 = procUnitConfObj1.addOperation(name='CrossSpectraPlot', optype='external')
1106 # opObj11.addParameter(name='idfigure', value='2', format='int')
1121 # opObj11.addParameter(name='idfigure', value='2', format='int')
1107 # opObj11.addParameter(name='wintitle', value='CrossSpectraPlot', format='str')
1122 # opObj11.addParameter(name='wintitle', value='CrossSpectraPlot', format='str')
1108 # opObj11.addParameter(name='zmin', value='40', format='int')
1123 # opObj11.addParameter(name='zmin', value='40', format='int')
1109 # opObj11.addParameter(name='zmax', value='90', format='int')
1124 # opObj11.addParameter(name='zmax', value='90', format='int')
1110
1125
1111
1126
1112 # procUnitConfObj2 = controllerObj.addProcUnit(datatype='Voltage', inputId=procUnitConfObj0.getId())
1127 # procUnitConfObj2 = controllerObj.addProcUnit(datatype='Voltage', inputId=procUnitConfObj0.getId())
1113 #
1128 #
1114 # opObj12 = procUnitConfObj2.addOperation(name='CohInt', optype='external')
1129 # opObj12 = procUnitConfObj2.addOperation(name='CohInt', optype='external')
1115 # opObj12.addParameter(name='n', value='2', format='int')
1130 # opObj12.addParameter(name='n', value='2', format='int')
1116 # opObj12.addParameter(name='overlapping', value='1', format='int')
1131 # opObj12.addParameter(name='overlapping', value='1', format='int')
1117 #
1132 #
1118 # procUnitConfObj3 = controllerObj.addProcUnit(datatype='Spectra', inputId=procUnitConfObj2.getId())
1133 # procUnitConfObj3 = controllerObj.addProcUnit(datatype='Spectra', inputId=procUnitConfObj2.getId())
1119 # procUnitConfObj3.addParameter(name='nFFTPoints', value='32', format='int')
1134 # procUnitConfObj3.addParameter(name='nFFTPoints', value='32', format='int')
1120 #
1135 #
1121 # opObj11 = procUnitConfObj3.addOperation(name='SpectraPlot', optype='external')
1136 # opObj11 = procUnitConfObj3.addOperation(name='SpectraPlot', optype='external')
1122 # opObj11.addParameter(name='idfigure', value='2', format='int')
1137 # opObj11.addParameter(name='idfigure', value='2', format='int')
1123 # opObj11.addParameter(name='wintitle', value='SpectraPlot1', format='str')
1138 # opObj11.addParameter(name='wintitle', value='SpectraPlot1', format='str')
1124 # opObj11.addParameter(name='zmin', value='40', format='int')
1139 # opObj11.addParameter(name='zmin', value='40', format='int')
1125 # opObj11.addParameter(name='zmax', value='90', format='int')
1140 # opObj11.addParameter(name='zmax', value='90', format='int')
1126 # opObj11.addParameter(name='showprofile', value='1', format='int')
1141 # opObj11.addParameter(name='showprofile', value='1', format='int')
1127
1142
1128 # opObj11 = procUnitConfObj1.addOperation(name='RTIPlot', optype='external')
1143 # opObj11 = procUnitConfObj1.addOperation(name='RTIPlot', optype='external')
1129 # opObj11.addParameter(name='idfigure', value='10', format='int')
1144 # opObj11.addParameter(name='idfigure', value='10', format='int')
1130 # opObj11.addParameter(name='wintitle', value='RTI', format='str')
1145 # opObj11.addParameter(name='wintitle', value='RTI', format='str')
1131 ## opObj11.addParameter(name='xmin', value='21', format='float')
1146 ## opObj11.addParameter(name='xmin', value='21', format='float')
1132 ## opObj11.addParameter(name='xmax', value='22', format='float')
1147 ## opObj11.addParameter(name='xmax', value='22', format='float')
1133 # opObj11.addParameter(name='zmin', value='40', format='int')
1148 # opObj11.addParameter(name='zmin', value='40', format='int')
1134 # opObj11.addParameter(name='zmax', value='90', format='int')
1149 # opObj11.addParameter(name='zmax', value='90', format='int')
1135 # opObj11.addParameter(name='showprofile', value='1', format='int')
1150 # opObj11.addParameter(name='showprofile', value='1', format='int')
1136 # opObj11.addParameter(name='timerange', value=str(60), format='int')
1151 # opObj11.addParameter(name='timerange', value=str(60), format='int')
1137
1152
1138 # opObj10 = procUnitConfObj1.addOperation(name='selectChannels')
1153 # opObj10 = procUnitConfObj1.addOperation(name='selectChannels')
1139 # opObj10.addParameter(name='channelList', value='0,2,4,6', format='intlist')
1154 # opObj10.addParameter(name='channelList', value='0,2,4,6', format='intlist')
1140 #
1155 #
1141 # opObj12 = procUnitConfObj1.addOperation(name='IncohInt', optype='external')
1156 # opObj12 = procUnitConfObj1.addOperation(name='IncohInt', optype='external')
1142 # opObj12.addParameter(name='n', value='2', format='int')
1157 # opObj12.addParameter(name='n', value='2', format='int')
1143 #
1158 #
1144 # opObj11 = procUnitConfObj1.addOperation(name='SpectraPlot', optype='external')
1159 # opObj11 = procUnitConfObj1.addOperation(name='SpectraPlot', optype='external')
1145 # opObj11.addParameter(name='idfigure', value='2', format='int')
1160 # opObj11.addParameter(name='idfigure', value='2', format='int')
1146 # opObj11.addParameter(name='wintitle', value='SpectraPlot10', format='str')
1161 # opObj11.addParameter(name='wintitle', value='SpectraPlot10', format='str')
1147 # opObj11.addParameter(name='zmin', value='70', format='int')
1162 # opObj11.addParameter(name='zmin', value='70', format='int')
1148 # opObj11.addParameter(name='zmax', value='90', format='int')
1163 # opObj11.addParameter(name='zmax', value='90', format='int')
1149 #
1164 #
1150 # opObj10 = procUnitConfObj1.addOperation(name='selectChannels')
1165 # opObj10 = procUnitConfObj1.addOperation(name='selectChannels')
1151 # opObj10.addParameter(name='channelList', value='2,6', format='intlist')
1166 # opObj10.addParameter(name='channelList', value='2,6', format='intlist')
1152 #
1167 #
1153 # opObj12 = procUnitConfObj1.addOperation(name='IncohInt', optype='external')
1168 # opObj12 = procUnitConfObj1.addOperation(name='IncohInt', optype='external')
1154 # opObj12.addParameter(name='n', value='2', format='int')
1169 # opObj12.addParameter(name='n', value='2', format='int')
1155 #
1170 #
1156 # opObj11 = procUnitConfObj1.addOperation(name='SpectraPlot', optype='external')
1171 # opObj11 = procUnitConfObj1.addOperation(name='SpectraPlot', optype='external')
1157 # opObj11.addParameter(name='idfigure', value='3', format='int')
1172 # opObj11.addParameter(name='idfigure', value='3', format='int')
1158 # opObj11.addParameter(name='wintitle', value='SpectraPlot10', format='str')
1173 # opObj11.addParameter(name='wintitle', value='SpectraPlot10', format='str')
1159 # opObj11.addParameter(name='zmin', value='70', format='int')
1174 # opObj11.addParameter(name='zmin', value='70', format='int')
1160 # opObj11.addParameter(name='zmax', value='90', format='int')
1175 # opObj11.addParameter(name='zmax', value='90', format='int')
1161
1176
1162
1177
1163 # opObj12 = procUnitConfObj1.addOperation(name='decoder')
1178 # opObj12 = procUnitConfObj1.addOperation(name='decoder')
1164 # opObj12.addParameter(name='ncode', value='2', format='int')
1179 # opObj12.addParameter(name='ncode', value='2', format='int')
1165 # opObj12.addParameter(name='nbauds', value='8', format='int')
1180 # opObj12.addParameter(name='nbauds', value='8', format='int')
1166 # opObj12.addParameter(name='code0', value='001110011', format='int')
1181 # opObj12.addParameter(name='code0', value='001110011', format='int')
1167 # opObj12.addParameter(name='code1', value='001110011', format='int')
1182 # opObj12.addParameter(name='code1', value='001110011', format='int')
1168
1183
1169
1184
1170
1185
1171 # procUnitConfObj2 = controllerObj.addProcUnit(datatype='Spectra', inputId=procUnitConfObj1.getId())
1186 # procUnitConfObj2 = controllerObj.addProcUnit(datatype='Spectra', inputId=procUnitConfObj1.getId())
1172 #
1187 #
1173 # opObj21 = procUnitConfObj2.addOperation(name='IncohInt', optype='external')
1188 # opObj21 = procUnitConfObj2.addOperation(name='IncohInt', optype='external')
1174 # opObj21.addParameter(name='n', value='2', format='int')
1189 # opObj21.addParameter(name='n', value='2', format='int')
1175 #
1190 #
1176 # opObj11 = procUnitConfObj2.addOperation(name='SpectraPlot', optype='external')
1191 # opObj11 = procUnitConfObj2.addOperation(name='SpectraPlot', optype='external')
1177 # opObj11.addParameter(name='idfigure', value='4', format='int')
1192 # opObj11.addParameter(name='idfigure', value='4', format='int')
1178 # opObj11.addParameter(name='wintitle', value='SpectraPlot OBJ 2', format='str')
1193 # opObj11.addParameter(name='wintitle', value='SpectraPlot OBJ 2', format='str')
1179 # opObj11.addParameter(name='zmin', value='70', format='int')
1194 # opObj11.addParameter(name='zmin', value='70', format='int')
1180 # opObj11.addParameter(name='zmax', value='90', format='int')
1195 # opObj11.addParameter(name='zmax', value='90', format='int')
1181
1196
1182 print "Escribiendo el archivo XML"
1197 print "Escribiendo el archivo XML"
1183
1198
1184 controllerObj.writeXml(filename)
1199 controllerObj.writeXml(filename)
1185
1200
1186 print "Leyendo el archivo XML"
1201 print "Leyendo el archivo XML"
1187 controllerObj.readXml(filename)
1202 controllerObj.readXml(filename)
1188 #controllerObj.printattr()
1203 #controllerObj.printattr()
1189
1204
1190 controllerObj.createObjects()
1205 controllerObj.createObjects()
1191 controllerObj.connectObjects()
1206 controllerObj.connectObjects()
1192 controllerObj.run()
1207 controllerObj.run()
1193
1208
1194 No newline at end of file
1209
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
@@ -1,93 +1,94
1 # -*- coding: utf-8 -*-
1 # -*- coding: utf-8 -*-
2
2
3 # Form implementation generated from reading ui file '/home/roj-idl71/SignalChain/initwindowv2.ui'
3 # Form implementation generated from reading ui file '/home/roj-idl71/SignalChain/initwindowv2.ui'
4 #
4 #
5 # Created: Wed Mar 6 15:32:39 2013
5 # Created: Wed Mar 6 15:32:39 2013
6 # by: PyQt4 UI code generator 4.8.6
6 # by: PyQt4 UI code generator 4.8.6
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
11
12 try:
12 try:
13 _fromUtf8 = QtCore.QString.fromUtf8
13 _fromUtf8 = QtCore.QString.fromUtf8
14 except AttributeError:
14 except AttributeError:
15 _fromUtf8 = lambda s: s
15 _fromUtf8 = lambda s: s
16
16
17 import os
17 import os
18 from schainpy.gui.figures import tools
18 from schainpy.gui.figures import tools
19
19
20 INITIAL_MSG = "Signal Chain GUI - v2.1"
20 FIGURES_PATH = tools.get_path()
21 FIGURES_PATH = tools.get_path()
21
22
22 class Ui_InitWindow(object):
23 class Ui_InitWindow(object):
23 def setupUi(self, Dialog):
24 def setupUi(self, Dialog):
24 Dialog.setObjectName(_fromUtf8("Dialog"))
25 Dialog.setObjectName(_fromUtf8("Dialog"))
25 Dialog.resize(652, 496)
26 Dialog.resize(652, 496)
26 Dialog.setWindowTitle(QtGui.QApplication.translate("Dialog", "Dialog", None, QtGui.QApplication.UnicodeUTF8))
27 Dialog.setWindowTitle(QtGui.QApplication.translate("Dialog", "Dialog", None, QtGui.QApplication.UnicodeUTF8))
27 self.gridLayout = QtGui.QGridLayout(Dialog)
28 self.gridLayout = QtGui.QGridLayout(Dialog)
28 self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
29 self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
29 self.verticalLayout_3 = QtGui.QVBoxLayout()
30 self.verticalLayout_3 = QtGui.QVBoxLayout()
30 self.verticalLayout_3.setObjectName(_fromUtf8("verticalLayout_3"))
31 self.verticalLayout_3.setObjectName(_fromUtf8("verticalLayout_3"))
31 self.verticalLayout_4 = QtGui.QVBoxLayout()
32 self.verticalLayout_4 = QtGui.QVBoxLayout()
32 self.verticalLayout_4.setObjectName(_fromUtf8("verticalLayout_4"))
33 self.verticalLayout_4.setObjectName(_fromUtf8("verticalLayout_4"))
33 self.label_3 = QtGui.QLabel(Dialog)
34 self.label_3 = QtGui.QLabel(Dialog)
34 font = QtGui.QFont()
35 font = QtGui.QFont()
35 font.setFamily(_fromUtf8("Cambria"))
36 font.setFamily(_fromUtf8("Cambria"))
36 font.setPointSize(22)
37 font.setPointSize(22)
37 font.setBold(False)
38 font.setBold(False)
38 font.setWeight(50)
39 font.setWeight(50)
39 self.label_3.setFont(font)
40 self.label_3.setFont(font)
40 self.label_3.setText(QtGui.QApplication.translate("Dialog", "Signal Chain GUI - Ver. 2.0", None, QtGui.QApplication.UnicodeUTF8))
41 self.label_3.setText(QtGui.QApplication.translate("Dialog", INITIAL_MSG, None, QtGui.QApplication.UnicodeUTF8))
41 self.label_3.setObjectName(_fromUtf8("label_3"))
42 self.label_3.setObjectName(_fromUtf8("label_3"))
42 self.verticalLayout_4.addWidget(self.label_3)
43 self.verticalLayout_4.addWidget(self.label_3)
43 self.line_2 = QtGui.QFrame(Dialog)
44 self.line_2 = QtGui.QFrame(Dialog)
44 self.line_2.setFrameShape(QtGui.QFrame.HLine)
45 self.line_2.setFrameShape(QtGui.QFrame.HLine)
45 self.line_2.setFrameShadow(QtGui.QFrame.Sunken)
46 self.line_2.setFrameShadow(QtGui.QFrame.Sunken)
46 self.line_2.setObjectName(_fromUtf8("line_2"))
47 self.line_2.setObjectName(_fromUtf8("line_2"))
47 self.verticalLayout_4.addWidget(self.line_2)
48 self.verticalLayout_4.addWidget(self.line_2)
48 self.label_4 = QtGui.QLabel(Dialog)
49 self.label_4 = QtGui.QLabel(Dialog)
49 self.label_4.setText(_fromUtf8(""))
50 self.label_4.setText(_fromUtf8(""))
50 self.label_4.setPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH,"w.jpg") )))
51 self.label_4.setPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH,"w.jpg") )))
51 self.label_4.setScaledContents(True)
52 self.label_4.setScaledContents(True)
52 self.label_4.setObjectName(_fromUtf8("label_4"))
53 self.label_4.setObjectName(_fromUtf8("label_4"))
53 self.verticalLayout_4.addWidget(self.label_4)
54 self.verticalLayout_4.addWidget(self.label_4)
54 self.verticalLayout_3.addLayout(self.verticalLayout_4)
55 self.verticalLayout_3.addLayout(self.verticalLayout_4)
55 self.horizontalLayout_3 = QtGui.QHBoxLayout()
56 self.horizontalLayout_3 = QtGui.QHBoxLayout()
56 self.horizontalLayout_3.setObjectName(_fromUtf8("horizontalLayout_3"))
57 self.horizontalLayout_3.setObjectName(_fromUtf8("horizontalLayout_3"))
57 self.horizontalLayout_4 = QtGui.QHBoxLayout()
58 self.horizontalLayout_4 = QtGui.QHBoxLayout()
58 self.horizontalLayout_4.setObjectName(_fromUtf8("horizontalLayout_4"))
59 self.horizontalLayout_4.setObjectName(_fromUtf8("horizontalLayout_4"))
59 spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
60 spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
60 self.horizontalLayout_4.addItem(spacerItem)
61 self.horizontalLayout_4.addItem(spacerItem)
61 self.ExitBtn = QtGui.QPushButton(Dialog)
62 self.ExitBtn = QtGui.QPushButton(Dialog)
62 self.ExitBtn.setText(QtGui.QApplication.translate("Dialog", "Exit", None, QtGui.QApplication.UnicodeUTF8))
63 self.ExitBtn.setText(QtGui.QApplication.translate("Dialog", "Exit", None, QtGui.QApplication.UnicodeUTF8))
63 self.ExitBtn.setObjectName(_fromUtf8("ExitBtn"))
64 self.ExitBtn.setObjectName(_fromUtf8("ExitBtn"))
64 self.horizontalLayout_4.addWidget(self.ExitBtn)
65 self.horizontalLayout_4.addWidget(self.ExitBtn)
65 self.ContinueBtn = QtGui.QPushButton(Dialog)
66 self.ContinueBtn = QtGui.QPushButton(Dialog)
66 self.ContinueBtn.setText(QtGui.QApplication.translate("Dialog", "Continue", None, QtGui.QApplication.UnicodeUTF8))
67 self.ContinueBtn.setText(QtGui.QApplication.translate("Dialog", "Continue", None, QtGui.QApplication.UnicodeUTF8))
67 self.ContinueBtn.setObjectName(_fromUtf8("ContinueBtn"))
68 self.ContinueBtn.setObjectName(_fromUtf8("ContinueBtn"))
68 self.horizontalLayout_4.addWidget(self.ContinueBtn)
69 self.horizontalLayout_4.addWidget(self.ContinueBtn)
69 spacerItem1 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
70 spacerItem1 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
70 self.horizontalLayout_4.addItem(spacerItem1)
71 self.horizontalLayout_4.addItem(spacerItem1)
71 self.horizontalLayout_3.addLayout(self.horizontalLayout_4)
72 self.horizontalLayout_3.addLayout(self.horizontalLayout_4)
72 self.verticalLayout_3.addLayout(self.horizontalLayout_3)
73 self.verticalLayout_3.addLayout(self.horizontalLayout_3)
73 self.gridLayout.addLayout(self.verticalLayout_3, 0, 0, 1, 1)
74 self.gridLayout.addLayout(self.verticalLayout_3, 0, 0, 1, 1)
74
75
75 self.retranslateUi(Dialog)
76 self.retranslateUi(Dialog)
76 QtCore.QMetaObject.connectSlotsByName(Dialog)
77 QtCore.QMetaObject.connectSlotsByName(Dialog)
77
78
78 def retranslateUi(self, Dialog):
79 def retranslateUi(self, Dialog):
79 pass
80 pass
80
81
81
82
82 if __name__ == "__main__":
83 if __name__ == "__main__":
83 import sys
84 import sys
84 app = QtGui.QApplication(sys.argv)
85 app = QtGui.QApplication(sys.argv)
85 Dialog = QtGui.QDialog()
86 Dialog = QtGui.QDialog()
86 ui = Ui_InitWindow()
87 ui = Ui_InitWindow()
87 ui.setupUi(Dialog)
88 ui.setupUi(Dialog)
88 Dialog.show()
89 Dialog.show()
89 sys.exit(app.exec_())
90 sys.exit(app.exec_())
90
91
91
92
92
93
93
94
@@ -1,451 +1,451
1 from PyQt4 import QtCore, QtGui
1 from PyQt4 import QtCore, QtGui
2
2
3 try:
3 try:
4 _fromUtf8 = QtCore.QString.fromUtf8
4 _fromUtf8 = QtCore.QString.fromUtf8
5 except AttributeError:
5 except AttributeError:
6 def _fromUtf8(s):
6 def _fromUtf8(s):
7 return s
7 return s
8
8
9 try:
9 try:
10 _encoding = QtGui.QApplication.UnicodeUTF8
10 _encoding = QtGui.QApplication.UnicodeUTF8
11 def _translate(context, text, disambig):
11 def _translate(context, text, disambig):
12 return QtGui.QApplication.translate(context, text, disambig, _encoding)
12 return QtGui.QApplication.translate(context, text, disambig, _encoding)
13 except AttributeError:
13 except AttributeError:
14 def _translate(context, text, disambig):
14 def _translate(context, text, disambig):
15 return QtGui.QApplication.translate(context, text, disambig)
15 return QtGui.QApplication.translate(context, text, disambig)
16
16
17 class Ui_SpectraTab(object):
17 class Ui_SpectraTab(object):
18
18
19 def setupUi(self):
19 def setupUi(self):
20
20
21 self.tabSpectra = QtGui.QWidget()
21 self.tabSpectra = QtGui.QWidget()
22 self.tabSpectra.setObjectName(_fromUtf8("tabSpectra"))
22 self.tabSpectra.setObjectName(_fromUtf8("tabSpectra"))
23 self.gridLayout_7 = QtGui.QGridLayout(self.tabSpectra)
23 self.gridLayout_7 = QtGui.QGridLayout(self.tabSpectra)
24 self.gridLayout_7.setObjectName(_fromUtf8("gridLayout_7"))
24 self.gridLayout_7.setObjectName(_fromUtf8("gridLayout_7"))
25 self.frame_5 = QtGui.QFrame(self.tabSpectra)
25 self.frame_5 = QtGui.QFrame(self.tabSpectra)
26 self.frame_5.setFrameShape(QtGui.QFrame.StyledPanel)
26 self.frame_5.setFrameShape(QtGui.QFrame.StyledPanel)
27 self.frame_5.setFrameShadow(QtGui.QFrame.Raised)
27 self.frame_5.setFrameShadow(QtGui.QFrame.Raised)
28 self.frame_5.setObjectName(_fromUtf8("frame_5"))
28 self.frame_5.setObjectName(_fromUtf8("frame_5"))
29 self.gridLayout_18 = QtGui.QGridLayout(self.frame_5)
29 self.gridLayout_18 = QtGui.QGridLayout(self.frame_5)
30 self.gridLayout_18.setObjectName(_fromUtf8("gridLayout_18"))
30 self.gridLayout_18.setObjectName(_fromUtf8("gridLayout_18"))
31 self.specOpOk = QtGui.QPushButton(self.frame_5)
31 self.specOpOk = QtGui.QPushButton(self.frame_5)
32 self.specOpOk.setObjectName(_fromUtf8("specOpOk"))
32 self.specOpOk.setObjectName(_fromUtf8("specOpOk"))
33 self.gridLayout_18.addWidget(self.specOpOk, 0, 0, 1, 1)
33 self.gridLayout_18.addWidget(self.specOpOk, 0, 0, 1, 1)
34 self.specGraphClear = QtGui.QPushButton(self.frame_5)
34 self.specGraphClear = QtGui.QPushButton(self.frame_5)
35 self.specGraphClear.setObjectName(_fromUtf8("specGraphClear"))
35 self.specGraphClear.setObjectName(_fromUtf8("specGraphClear"))
36 self.gridLayout_18.addWidget(self.specGraphClear, 0, 1, 1, 1)
36 self.gridLayout_18.addWidget(self.specGraphClear, 0, 1, 1, 1)
37 self.gridLayout_7.addWidget(self.frame_5, 1, 1, 1, 1)
37 self.gridLayout_7.addWidget(self.frame_5, 1, 1, 1, 1)
38 self.tabWidgetSpectra = QtGui.QTabWidget(self.tabSpectra)
38 self.tabWidgetSpectra = QtGui.QTabWidget(self.tabSpectra)
39 self.tabWidgetSpectra.setObjectName(_fromUtf8("tabWidgetSpectra"))
39 self.tabWidgetSpectra.setObjectName(_fromUtf8("tabWidgetSpectra"))
40 self.tabopSpectra = QtGui.QWidget()
40 self.tabopSpectra = QtGui.QWidget()
41 self.tabopSpectra.setObjectName(_fromUtf8("tabopSpectra"))
41 self.tabopSpectra.setObjectName(_fromUtf8("tabopSpectra"))
42 self.gridLayout_5 = QtGui.QGridLayout(self.tabopSpectra)
42 self.gridLayout_5 = QtGui.QGridLayout(self.tabopSpectra)
43 self.gridLayout_5.setObjectName(_fromUtf8("gridLayout_5"))
43 self.gridLayout_5.setObjectName(_fromUtf8("gridLayout_5"))
44 self.specOpCebCrossSpectra = QtGui.QCheckBox(self.tabopSpectra)
44 self.specOpCebCrossSpectra = QtGui.QCheckBox(self.tabopSpectra)
45 self.specOpCebCrossSpectra.setObjectName(_fromUtf8("specOpCebCrossSpectra"))
45 self.specOpCebCrossSpectra.setObjectName(_fromUtf8("specOpCebCrossSpectra"))
46 self.gridLayout_5.addWidget(self.specOpCebCrossSpectra, 4, 0, 1, 2)
46 self.gridLayout_5.addWidget(self.specOpCebCrossSpectra, 4, 0, 1, 2)
47 self.specOpComChannel = QtGui.QComboBox(self.tabopSpectra)
47 self.specOpComChannel = QtGui.QComboBox(self.tabopSpectra)
48 self.specOpComChannel.setObjectName(_fromUtf8("specOpComChannel"))
48 self.specOpComChannel.setObjectName(_fromUtf8("specOpComChannel"))
49 self.specOpComChannel.addItem(_fromUtf8(""))
49 self.specOpComChannel.addItem(_fromUtf8(""))
50 self.specOpComChannel.addItem(_fromUtf8(""))
50 self.specOpComChannel.addItem(_fromUtf8(""))
51 self.gridLayout_5.addWidget(self.specOpComChannel, 8, 0, 1, 2)
51 self.gridLayout_5.addWidget(self.specOpComChannel, 8, 0, 1, 2)
52 self.specOpChannel = QtGui.QLineEdit(self.tabopSpectra)
52 self.specOpChannel = QtGui.QLineEdit(self.tabopSpectra)
53 self.specOpChannel.setObjectName(_fromUtf8("specOpChannel"))
53 self.specOpChannel.setObjectName(_fromUtf8("specOpChannel"))
54 self.gridLayout_5.addWidget(self.specOpChannel, 8, 3, 1, 2)
54 self.gridLayout_5.addWidget(self.specOpChannel, 8, 3, 1, 2)
55 self.specOpComHeights = QtGui.QComboBox(self.tabopSpectra)
55 self.specOpComHeights = QtGui.QComboBox(self.tabopSpectra)
56 self.specOpComHeights.setObjectName(_fromUtf8("specOpComHeights"))
56 self.specOpComHeights.setObjectName(_fromUtf8("specOpComHeights"))
57 self.specOpComHeights.addItem(_fromUtf8(""))
57 self.specOpComHeights.addItem(_fromUtf8(""))
58 self.specOpComHeights.addItem(_fromUtf8(""))
58 self.specOpComHeights.addItem(_fromUtf8(""))
59 self.gridLayout_5.addWidget(self.specOpComHeights, 11, 0, 1, 2)
59 self.gridLayout_5.addWidget(self.specOpComHeights, 11, 0, 1, 2)
60 self.specOpHeights = QtGui.QLineEdit(self.tabopSpectra)
60 self.specOpHeights = QtGui.QLineEdit(self.tabopSpectra)
61 self.specOpHeights.setObjectName(_fromUtf8("specOpHeights"))
61 self.specOpHeights.setObjectName(_fromUtf8("specOpHeights"))
62 self.gridLayout_5.addWidget(self.specOpHeights, 11, 3, 1, 2)
62 self.gridLayout_5.addWidget(self.specOpHeights, 11, 3, 1, 2)
63 self.specOpIncoherent = QtGui.QLineEdit(self.tabopSpectra)
63 self.specOpIncoherent = QtGui.QLineEdit(self.tabopSpectra)
64 self.specOpIncoherent.setObjectName(_fromUtf8("specOpIncoherent"))
64 self.specOpIncoherent.setObjectName(_fromUtf8("specOpIncoherent"))
65 self.gridLayout_5.addWidget(self.specOpIncoherent, 13, 3, 1, 2)
65 self.gridLayout_5.addWidget(self.specOpIncoherent, 13, 3, 1, 2)
66 self.specOpCebRemoveDC = QtGui.QCheckBox(self.tabopSpectra)
66 self.specOpCebRemoveDC = QtGui.QCheckBox(self.tabopSpectra)
67 self.specOpCebRemoveDC.setObjectName(_fromUtf8("specOpCebRemoveDC"))
67 self.specOpCebRemoveDC.setObjectName(_fromUtf8("specOpCebRemoveDC"))
68 self.gridLayout_5.addWidget(self.specOpCebRemoveDC, 14, 0, 1, 2)
68 self.gridLayout_5.addWidget(self.specOpCebRemoveDC, 14, 0, 1, 2)
69 self.specOpCebHeights = QtGui.QCheckBox(self.tabopSpectra)
69 self.specOpCebHeights = QtGui.QCheckBox(self.tabopSpectra)
70 self.specOpCebHeights.setObjectName(_fromUtf8("specOpCebHeights"))
70 self.specOpCebHeights.setObjectName(_fromUtf8("specOpCebHeights"))
71 self.gridLayout_5.addWidget(self.specOpCebHeights, 9, 0, 1, 1)
71 self.gridLayout_5.addWidget(self.specOpCebHeights, 9, 0, 1, 1)
72 self.specOpCebChannel = QtGui.QCheckBox(self.tabopSpectra)
72 self.specOpCebChannel = QtGui.QCheckBox(self.tabopSpectra)
73 self.specOpCebChannel.setObjectName(_fromUtf8("specOpCebChannel"))
73 self.specOpCebChannel.setObjectName(_fromUtf8("specOpCebChannel"))
74 self.gridLayout_5.addWidget(self.specOpCebChannel, 7, 0, 1, 1)
74 self.gridLayout_5.addWidget(self.specOpCebChannel, 7, 0, 1, 1)
75 self.specOppairsList = QtGui.QLineEdit(self.tabopSpectra)
75 self.specOppairsList = QtGui.QLineEdit(self.tabopSpectra)
76 self.specOppairsList.setObjectName(_fromUtf8("specOppairsList"))
76 self.specOppairsList.setObjectName(_fromUtf8("specOppairsList"))
77 self.gridLayout_5.addWidget(self.specOppairsList, 6, 3, 1, 2)
77 self.gridLayout_5.addWidget(self.specOppairsList, 6, 3, 1, 2)
78 self.specOpnFFTpoints = QtGui.QLineEdit(self.tabopSpectra)
78 self.specOpnFFTpoints = QtGui.QLineEdit(self.tabopSpectra)
79 self.specOpnFFTpoints.setObjectName(_fromUtf8("specOpnFFTpoints"))
79 self.specOpnFFTpoints.setObjectName(_fromUtf8("specOpnFFTpoints"))
80 self.gridLayout_5.addWidget(self.specOpnFFTpoints, 2, 3, 1, 2)
80 self.gridLayout_5.addWidget(self.specOpnFFTpoints, 2, 3, 1, 2)
81 self.label_31 = QtGui.QLabel(self.tabopSpectra)
81 self.label_31 = QtGui.QLabel(self.tabopSpectra)
82 self.label_31.setObjectName(_fromUtf8("label_31"))
82 self.label_31.setObjectName(_fromUtf8("label_31"))
83 self.gridLayout_5.addWidget(self.label_31, 6, 0, 1, 2)
83 self.gridLayout_5.addWidget(self.label_31, 6, 0, 1, 2)
84 self.label_26 = QtGui.QLabel(self.tabopSpectra)
84 self.label_26 = QtGui.QLabel(self.tabopSpectra)
85 self.label_26.setObjectName(_fromUtf8("label_26"))
85 self.label_26.setObjectName(_fromUtf8("label_26"))
86 self.gridLayout_5.addWidget(self.label_26, 2, 0, 1, 2)
86 self.gridLayout_5.addWidget(self.label_26, 2, 0, 1, 2)
87 self.specOpCebIncoherent = QtGui.QCheckBox(self.tabopSpectra)
87 self.specOpCebIncoherent = QtGui.QCheckBox(self.tabopSpectra)
88 self.specOpCebIncoherent.setObjectName(_fromUtf8("specOpCebIncoherent"))
88 self.specOpCebIncoherent.setObjectName(_fromUtf8("specOpCebIncoherent"))
89 self.gridLayout_5.addWidget(self.specOpCebIncoherent, 12, 0, 1, 1)
89 self.gridLayout_5.addWidget(self.specOpCebIncoherent, 12, 0, 1, 1)
90 self.specOpCobIncInt = QtGui.QComboBox(self.tabopSpectra)
90 self.specOpCobIncInt = QtGui.QComboBox(self.tabopSpectra)
91 self.specOpCobIncInt.setObjectName(_fromUtf8("specOpCobIncInt"))
91 self.specOpCobIncInt.setObjectName(_fromUtf8("specOpCobIncInt"))
92 self.specOpCobIncInt.addItem(_fromUtf8(""))
92 self.specOpCobIncInt.addItem(_fromUtf8(""))
93 self.specOpCobIncInt.addItem(_fromUtf8(""))
93 self.specOpCobIncInt.addItem(_fromUtf8(""))
94 self.gridLayout_5.addWidget(self.specOpCobIncInt, 13, 0, 1, 2)
94 self.gridLayout_5.addWidget(self.specOpCobIncInt, 13, 0, 1, 2)
95 spacerItem9 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
95 spacerItem9 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
96 self.gridLayout_5.addItem(spacerItem9, 12, 3, 1, 1)
96 self.gridLayout_5.addItem(spacerItem9, 12, 3, 1, 1)
97 self.specOpCebRadarfrequency = QtGui.QCheckBox(self.tabopSpectra)
97 self.specOpCebRadarfrequency = QtGui.QCheckBox(self.tabopSpectra)
98 self.specOpCebRadarfrequency.setObjectName(_fromUtf8("specOpCebRadarfrequency"))
98 self.specOpCebRadarfrequency.setObjectName(_fromUtf8("specOpCebRadarfrequency"))
99 self.gridLayout_5.addWidget(self.specOpCebRadarfrequency, 0, 0, 1, 2)
99 self.gridLayout_5.addWidget(self.specOpCebRadarfrequency, 0, 0, 1, 2)
100 spacerItem10 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
100 spacerItem10 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
101 self.gridLayout_5.addItem(spacerItem10, 9, 3, 1, 1)
101 self.gridLayout_5.addItem(spacerItem10, 9, 3, 1, 1)
102 spacerItem11 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
102 spacerItem11 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
103 self.gridLayout_5.addItem(spacerItem11, 7, 3, 1, 1)
103 self.gridLayout_5.addItem(spacerItem11, 7, 3, 1, 1)
104 self.specOpRadarfrequency = QtGui.QLineEdit(self.tabopSpectra)
104 self.specOpRadarfrequency = QtGui.QLineEdit(self.tabopSpectra)
105 self.specOpRadarfrequency.setObjectName(_fromUtf8("specOpRadarfrequency"))
105 self.specOpRadarfrequency.setObjectName(_fromUtf8("specOpRadarfrequency"))
106 self.gridLayout_5.addWidget(self.specOpRadarfrequency, 0, 3, 1, 2)
106 self.gridLayout_5.addWidget(self.specOpRadarfrequency, 0, 3, 1, 2)
107 spacerItem12 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
107 spacerItem12 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
108 self.gridLayout_5.addItem(spacerItem12, 4, 3, 1, 1)
108 self.gridLayout_5.addItem(spacerItem12, 4, 3, 1, 1)
109 self.label_21 = QtGui.QLabel(self.tabopSpectra)
109 self.label_21 = QtGui.QLabel(self.tabopSpectra)
110 self.label_21.setObjectName(_fromUtf8("label_21"))
110 self.label_21.setObjectName(_fromUtf8("label_21"))
111 self.gridLayout_5.addWidget(self.label_21, 1, 0, 1, 1)
111 self.gridLayout_5.addWidget(self.label_21, 1, 0, 1, 1)
112 self.specOpProfiles = QtGui.QLineEdit(self.tabopSpectra)
112 self.specOpProfiles = QtGui.QLineEdit(self.tabopSpectra)
113 self.specOpProfiles.setObjectName(_fromUtf8("specOpProfiles"))
113 self.specOpProfiles.setObjectName(_fromUtf8("specOpProfiles"))
114 self.gridLayout_5.addWidget(self.specOpProfiles, 1, 3, 1, 2)
114 self.gridLayout_5.addWidget(self.specOpProfiles, 1, 3, 1, 2)
115 self.specOpCebRemoveInt = QtGui.QCheckBox(self.tabopSpectra)
115 self.specOpCebRemoveInt = QtGui.QCheckBox(self.tabopSpectra)
116 self.specOpCebRemoveInt.setObjectName(_fromUtf8("specOpCebRemoveInt"))
116 self.specOpCebRemoveInt.setObjectName(_fromUtf8("specOpCebRemoveInt"))
117 self.gridLayout_5.addWidget(self.specOpCebRemoveInt, 15, 0, 1, 1)
117 self.gridLayout_5.addWidget(self.specOpCebRemoveInt, 15, 0, 1, 1)
118 spacerItem13 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
118 spacerItem13 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
119 self.gridLayout_5.addItem(spacerItem13, 15, 3, 1, 1)
119 self.gridLayout_5.addItem(spacerItem13, 15, 3, 1, 1)
120 self.label_70 = QtGui.QLabel(self.tabopSpectra)
120 self.label_70 = QtGui.QLabel(self.tabopSpectra)
121 self.label_70.setObjectName(_fromUtf8("label_70"))
121 self.label_70.setObjectName(_fromUtf8("label_70"))
122 self.gridLayout_5.addWidget(self.label_70, 3, 0, 1, 1)
122 self.gridLayout_5.addWidget(self.label_70, 3, 0, 1, 1)
123 self.specOpCebgetNoise = QtGui.QCheckBox(self.tabopSpectra)
123 self.specOpCebgetNoise = QtGui.QCheckBox(self.tabopSpectra)
124 self.specOpCebgetNoise.setObjectName(_fromUtf8("specOpCebgetNoise"))
124 self.specOpCebgetNoise.setObjectName(_fromUtf8("specOpCebgetNoise"))
125 self.gridLayout_5.addWidget(self.specOpCebgetNoise, 16, 0, 1, 1)
125 self.gridLayout_5.addWidget(self.specOpCebgetNoise, 16, 0, 1, 1)
126 self.specOpippFactor = QtGui.QLineEdit(self.tabopSpectra)
126 self.specOpippFactor = QtGui.QLineEdit(self.tabopSpectra)
127 self.specOpippFactor.setObjectName(_fromUtf8("specOpippFactor"))
127 self.specOpippFactor.setObjectName(_fromUtf8("specOpippFactor"))
128 self.gridLayout_5.addWidget(self.specOpippFactor, 3, 3, 1, 2)
128 self.gridLayout_5.addWidget(self.specOpippFactor, 3, 3, 1, 2)
129 self.specOpComRemoveDC = QtGui.QComboBox(self.tabopSpectra)
129 self.specOpComRemoveDC = QtGui.QComboBox(self.tabopSpectra)
130 self.specOpComRemoveDC.setObjectName(_fromUtf8("specOpComRemoveDC"))
130 self.specOpComRemoveDC.setObjectName(_fromUtf8("specOpComRemoveDC"))
131 self.specOpComRemoveDC.addItem(_fromUtf8(""))
131 self.specOpComRemoveDC.addItem(_fromUtf8(""))
132 self.specOpComRemoveDC.addItem(_fromUtf8(""))
132 self.specOpComRemoveDC.addItem(_fromUtf8(""))
133 self.gridLayout_5.addWidget(self.specOpComRemoveDC, 14, 3, 1, 2)
133 self.gridLayout_5.addWidget(self.specOpComRemoveDC, 14, 3, 1, 2)
134 self.specOpgetNoise = QtGui.QLineEdit(self.tabopSpectra)
134 self.specOpgetNoise = QtGui.QLineEdit(self.tabopSpectra)
135 self.specOpgetNoise.setObjectName(_fromUtf8("specOpgetNoise"))
135 self.specOpgetNoise.setObjectName(_fromUtf8("specOpgetNoise"))
136 self.gridLayout_5.addWidget(self.specOpgetNoise, 16, 3, 1, 2)
136 self.gridLayout_5.addWidget(self.specOpgetNoise, 16, 3, 1, 2)
137 self.tabWidgetSpectra.addTab(self.tabopSpectra, _fromUtf8(""))
137 self.tabWidgetSpectra.addTab(self.tabopSpectra, _fromUtf8(""))
138
138
139
139
140 self.tabgraphSpectra = QtGui.QWidget()
140 self.tabgraphSpectra = QtGui.QWidget()
141 self.tabgraphSpectra.setObjectName(_fromUtf8("tabgraphSpectra"))
141 self.tabgraphSpectra.setObjectName(_fromUtf8("tabgraphSpectra"))
142 self.gridLayout_9 = QtGui.QGridLayout(self.tabgraphSpectra)
142 self.gridLayout_9 = QtGui.QGridLayout(self.tabgraphSpectra)
143 self.gridLayout_9.setObjectName(_fromUtf8("gridLayout_9"))
143 self.gridLayout_9.setObjectName(_fromUtf8("gridLayout_9"))
144
144
145 spacerItem14 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
145 spacerItem14 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
146 self.gridLayout_9.addItem(spacerItem14, 14, 2, 1, 1)
146 self.gridLayout_9.addItem(spacerItem14, 14, 2, 1, 1)
147
147
148 self.label_24 = QtGui.QLabel(self.tabgraphSpectra)
148 self.label_24 = QtGui.QLabel(self.tabgraphSpectra)
149 self.label_24.setObjectName(_fromUtf8("label_24"))
149 self.label_24.setObjectName(_fromUtf8("label_24"))
150 self.gridLayout_9.addWidget(self.label_24, 0, 0, 1, 1)
150 self.gridLayout_9.addWidget(self.label_24, 0, 0, 1, 1)
151
151
152 self.specGraphPath = QtGui.QLineEdit(self.tabgraphSpectra)
152 self.specGraphPath = QtGui.QLineEdit(self.tabgraphSpectra)
153 self.specGraphPath.setObjectName(_fromUtf8("specGraphPath"))
153 self.specGraphPath.setObjectName(_fromUtf8("specGraphPath"))
154 self.gridLayout_9.addWidget(self.specGraphPath, 0, 1, 1, 6)
154 self.gridLayout_9.addWidget(self.specGraphPath, 0, 1, 1, 6)
155
155
156 self.specGraphToolPath = QtGui.QToolButton(self.tabgraphSpectra)
156 self.specGraphToolPath = QtGui.QToolButton(self.tabgraphSpectra)
157 self.specGraphToolPath.setObjectName(_fromUtf8("specGraphToolPath"))
157 self.specGraphToolPath.setObjectName(_fromUtf8("specGraphToolPath"))
158 self.gridLayout_9.addWidget(self.specGraphToolPath, 0, 7, 1, 1)
158 self.gridLayout_9.addWidget(self.specGraphToolPath, 0, 7, 1, 1)
159
159
160 self.label_25 = QtGui.QLabel(self.tabgraphSpectra)
160 self.label_25 = QtGui.QLabel(self.tabgraphSpectra)
161 self.label_25.setObjectName(_fromUtf8("label_25"))
161 self.label_25.setObjectName(_fromUtf8("label_25"))
162 self.gridLayout_9.addWidget(self.label_25, 2, 0, 1, 1)
162 self.gridLayout_9.addWidget(self.label_25, 2, 0, 1, 1)
163 self.specGraphPrefix = QtGui.QLineEdit(self.tabgraphSpectra)
163 self.specGraphPrefix = QtGui.QLineEdit(self.tabgraphSpectra)
164 self.specGraphPrefix.setObjectName(_fromUtf8("specGraphPrefix"))
164 self.specGraphPrefix.setObjectName(_fromUtf8("specGraphPrefix"))
165 self.gridLayout_9.addWidget(self.specGraphPrefix, 2, 1, 1, 7)
165 self.gridLayout_9.addWidget(self.specGraphPrefix, 2, 1, 1, 7)
166
166
167
167
168 self.label_40 = QtGui.QLabel(self.tabgraphSpectra)
168 self.label_40 = QtGui.QLabel(self.tabgraphSpectra)
169 self.label_40.setObjectName(_fromUtf8("label_40"))
169 self.label_40.setObjectName(_fromUtf8("label_40"))
170 self.gridLayout_9.addWidget(self.label_40, 6, 0, 1, 1)
170 self.gridLayout_9.addWidget(self.label_40, 6, 0, 1, 1)
171 self.label_41 = QtGui.QLabel(self.tabgraphSpectra)
171 self.label_41 = QtGui.QLabel(self.tabgraphSpectra)
172 self.label_41.setObjectName(_fromUtf8("label_41"))
172 self.label_41.setObjectName(_fromUtf8("label_41"))
173 self.gridLayout_9.addWidget(self.label_41, 8, 0, 1, 1)
173 self.gridLayout_9.addWidget(self.label_41, 8, 0, 1, 1)
174 self.label_42 = QtGui.QLabel(self.tabgraphSpectra)
174 self.label_42 = QtGui.QLabel(self.tabgraphSpectra)
175 self.label_42.setObjectName(_fromUtf8("label_42"))
175 self.label_42.setObjectName(_fromUtf8("label_42"))
176 self.gridLayout_9.addWidget(self.label_42, 9, 0, 1, 1)
176 self.gridLayout_9.addWidget(self.label_42, 9, 0, 1, 1)
177 self.label_44 = QtGui.QLabel(self.tabgraphSpectra)
177 self.label_44 = QtGui.QLabel(self.tabgraphSpectra)
178 self.label_44.setObjectName(_fromUtf8("label_44"))
178 self.label_44.setObjectName(_fromUtf8("label_44"))
179 self.gridLayout_9.addWidget(self.label_44, 10, 0, 1, 1)
179 self.gridLayout_9.addWidget(self.label_44, 10, 0, 1, 1)
180 self.label_46 = QtGui.QLabel(self.tabgraphSpectra)
180 self.label_46 = QtGui.QLabel(self.tabgraphSpectra)
181 self.label_46.setObjectName(_fromUtf8("label_46"))
181 self.label_46.setObjectName(_fromUtf8("label_46"))
182 self.gridLayout_9.addWidget(self.label_46, 11, 0, 1, 1)
182 self.gridLayout_9.addWidget(self.label_46, 11, 0, 1, 1)
183 self.label_45 = QtGui.QLabel(self.tabgraphSpectra)
183 self.label_45 = QtGui.QLabel(self.tabgraphSpectra)
184 self.label_45.setObjectName(_fromUtf8("label_45"))
184 self.label_45.setObjectName(_fromUtf8("label_45"))
185 self.gridLayout_9.addWidget(self.label_45, 13, 0, 1, 1)
185 self.gridLayout_9.addWidget(self.label_45, 13, 0, 1, 1)
186
186
187 self.label_43 = QtGui.QLabel(self.tabgraphSpectra)
187 self.label_43 = QtGui.QLabel(self.tabgraphSpectra)
188 self.label_43.setObjectName(_fromUtf8("label_43"))
188 self.label_43.setObjectName(_fromUtf8("label_43"))
189 self.gridLayout_9.addWidget(self.label_43, 3, 3, 2, 1)
189 self.gridLayout_9.addWidget(self.label_43, 3, 3, 2, 1)
190 self.specGraphCebSpectraplot = QtGui.QCheckBox(self.tabgraphSpectra)
190 self.specGraphCebSpectraplot = QtGui.QCheckBox(self.tabgraphSpectra)
191 self.specGraphCebSpectraplot.setText(_fromUtf8(""))
191 self.specGraphCebSpectraplot.setText(_fromUtf8(""))
192 self.specGraphCebSpectraplot.setObjectName(_fromUtf8("specGraphCebSpectraplot"))
192 self.specGraphCebSpectraplot.setObjectName(_fromUtf8("specGraphCebSpectraplot"))
193 self.gridLayout_9.addWidget(self.specGraphCebSpectraplot, 6, 3, 1, 1)
193 self.gridLayout_9.addWidget(self.specGraphCebSpectraplot, 6, 3, 1, 1)
194 self.specGraphCebCrossSpectraplot = QtGui.QCheckBox(self.tabgraphSpectra)
194 self.specGraphCebCrossSpectraplot = QtGui.QCheckBox(self.tabgraphSpectra)
195 self.specGraphCebCrossSpectraplot.setText(_fromUtf8(""))
195 self.specGraphCebCrossSpectraplot.setText(_fromUtf8(""))
196 self.specGraphCebCrossSpectraplot.setObjectName(_fromUtf8("specGraphCebCrossSpectraplot"))
196 self.specGraphCebCrossSpectraplot.setObjectName(_fromUtf8("specGraphCebCrossSpectraplot"))
197 self.gridLayout_9.addWidget(self.specGraphCebCrossSpectraplot, 8, 3, 1, 1)
197 self.gridLayout_9.addWidget(self.specGraphCebCrossSpectraplot, 8, 3, 1, 1)
198 self.specGraphCebRTIplot = QtGui.QCheckBox(self.tabgraphSpectra)
198 self.specGraphCebRTIplot = QtGui.QCheckBox(self.tabgraphSpectra)
199 self.specGraphCebRTIplot.setText(_fromUtf8(""))
199 self.specGraphCebRTIplot.setText(_fromUtf8(""))
200 self.specGraphCebRTIplot.setObjectName(_fromUtf8("specGraphCebRTIplot"))
200 self.specGraphCebRTIplot.setObjectName(_fromUtf8("specGraphCebRTIplot"))
201 self.gridLayout_9.addWidget(self.specGraphCebRTIplot, 9, 3, 1, 1)
201 self.gridLayout_9.addWidget(self.specGraphCebRTIplot, 9, 3, 1, 1)
202 self.specGraphCebCoherencmap = QtGui.QCheckBox(self.tabgraphSpectra)
202 self.specGraphCebCoherencmap = QtGui.QCheckBox(self.tabgraphSpectra)
203 self.specGraphCebCoherencmap.setText(_fromUtf8(""))
203 self.specGraphCebCoherencmap.setText(_fromUtf8(""))
204 self.specGraphCebCoherencmap.setObjectName(_fromUtf8("specGraphCebCoherencmap"))
204 self.specGraphCebCoherencmap.setObjectName(_fromUtf8("specGraphCebCoherencmap"))
205 self.gridLayout_9.addWidget(self.specGraphCebCoherencmap, 10, 3, 1, 1)
205 self.gridLayout_9.addWidget(self.specGraphCebCoherencmap, 10, 3, 1, 1)
206 self.specGraphPowerprofile = QtGui.QCheckBox(self.tabgraphSpectra)
206 self.specGraphPowerprofile = QtGui.QCheckBox(self.tabgraphSpectra)
207 self.specGraphPowerprofile.setText(_fromUtf8(""))
207 self.specGraphPowerprofile.setText(_fromUtf8(""))
208 self.specGraphPowerprofile.setObjectName(_fromUtf8("specGraphPowerprofile"))
208 self.specGraphPowerprofile.setObjectName(_fromUtf8("specGraphPowerprofile"))
209 self.gridLayout_9.addWidget(self.specGraphPowerprofile, 11, 3, 1, 1)
209 self.gridLayout_9.addWidget(self.specGraphPowerprofile, 11, 3, 1, 1)
210 self.specGraphCebRTInoise = QtGui.QCheckBox(self.tabgraphSpectra)
210 self.specGraphCebRTInoise = QtGui.QCheckBox(self.tabgraphSpectra)
211 self.specGraphCebRTInoise.setText(_fromUtf8(""))
211 self.specGraphCebRTInoise.setText(_fromUtf8(""))
212 self.specGraphCebRTInoise.setObjectName(_fromUtf8("specGraphCebRTInoise"))
212 self.specGraphCebRTInoise.setObjectName(_fromUtf8("specGraphCebRTInoise"))
213 self.gridLayout_9.addWidget(self.specGraphCebRTInoise, 13, 3, 1, 1)
213 self.gridLayout_9.addWidget(self.specGraphCebRTInoise, 13, 3, 1, 1)
214
214
215 # spacerItem18 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
215 # spacerItem18 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
216 # self.gridLayout_9.addItem(spacerItem18, 4, 3, 1, 1)
216 # self.gridLayout_9.addItem(spacerItem18, 4, 3, 1, 1)
217
217
218 self.label_47 = QtGui.QLabel(self.tabgraphSpectra)
218 self.label_47 = QtGui.QLabel(self.tabgraphSpectra)
219 self.label_47.setObjectName(_fromUtf8("label_47"))
219 self.label_47.setObjectName(_fromUtf8("label_47"))
220 self.gridLayout_9.addWidget(self.label_47, 3, 5, 2, 1)
220 self.gridLayout_9.addWidget(self.label_47, 3, 5, 2, 1)
221 self.specGraphSaveSpectra = QtGui.QCheckBox(self.tabgraphSpectra)
221 self.specGraphSaveSpectra = QtGui.QCheckBox(self.tabgraphSpectra)
222 self.specGraphSaveSpectra.setText(_fromUtf8(""))
222 self.specGraphSaveSpectra.setText(_fromUtf8(""))
223 self.specGraphSaveSpectra.setObjectName(_fromUtf8("specGraphSaveSpectra"))
223 self.specGraphSaveSpectra.setObjectName(_fromUtf8("specGraphSaveSpectra"))
224 self.gridLayout_9.addWidget(self.specGraphSaveSpectra, 6, 5, 1, 1)
224 self.gridLayout_9.addWidget(self.specGraphSaveSpectra, 6, 5, 1, 1)
225 self.specGraphSaveCross = QtGui.QCheckBox(self.tabgraphSpectra)
225 self.specGraphSaveCross = QtGui.QCheckBox(self.tabgraphSpectra)
226 self.specGraphSaveCross.setText(_fromUtf8(""))
226 self.specGraphSaveCross.setText(_fromUtf8(""))
227 self.specGraphSaveCross.setObjectName(_fromUtf8("specGraphSaveCross"))
227 self.specGraphSaveCross.setObjectName(_fromUtf8("specGraphSaveCross"))
228 self.gridLayout_9.addWidget(self.specGraphSaveCross, 8, 5, 1, 1)
228 self.gridLayout_9.addWidget(self.specGraphSaveCross, 8, 5, 1, 1)
229 self.specGraphSaveRTIplot = QtGui.QCheckBox(self.tabgraphSpectra)
229 self.specGraphSaveRTIplot = QtGui.QCheckBox(self.tabgraphSpectra)
230 self.specGraphSaveRTIplot.setText(_fromUtf8(""))
230 self.specGraphSaveRTIplot.setText(_fromUtf8(""))
231 self.specGraphSaveRTIplot.setObjectName(_fromUtf8("specGraphSaveRTIplot"))
231 self.specGraphSaveRTIplot.setObjectName(_fromUtf8("specGraphSaveRTIplot"))
232 self.gridLayout_9.addWidget(self.specGraphSaveRTIplot, 9, 5, 1, 1)
232 self.gridLayout_9.addWidget(self.specGraphSaveRTIplot, 9, 5, 1, 1)
233 self.specGraphSaveCoherencemap = QtGui.QCheckBox(self.tabgraphSpectra)
233 self.specGraphSaveCoherencemap = QtGui.QCheckBox(self.tabgraphSpectra)
234 self.specGraphSaveCoherencemap.setText(_fromUtf8(""))
234 self.specGraphSaveCoherencemap.setText(_fromUtf8(""))
235 self.specGraphSaveCoherencemap.setObjectName(_fromUtf8("specGraphSaveCoherencemap"))
235 self.specGraphSaveCoherencemap.setObjectName(_fromUtf8("specGraphSaveCoherencemap"))
236 self.gridLayout_9.addWidget(self.specGraphSaveCoherencemap, 10, 5, 1, 1)
236 self.gridLayout_9.addWidget(self.specGraphSaveCoherencemap, 10, 5, 1, 1)
237 self.specGraphSavePowerprofile = QtGui.QCheckBox(self.tabgraphSpectra)
237 self.specGraphSavePowerprofile = QtGui.QCheckBox(self.tabgraphSpectra)
238 self.specGraphSavePowerprofile.setText(_fromUtf8(""))
238 self.specGraphSavePowerprofile.setText(_fromUtf8(""))
239 self.specGraphSavePowerprofile.setObjectName(_fromUtf8("specGraphSavePowerprofile"))
239 self.specGraphSavePowerprofile.setObjectName(_fromUtf8("specGraphSavePowerprofile"))
240 self.gridLayout_9.addWidget(self.specGraphSavePowerprofile, 11, 5, 1, 1)
240 self.gridLayout_9.addWidget(self.specGraphSavePowerprofile, 11, 5, 1, 1)
241 self.specGraphSaveRTInoise = QtGui.QCheckBox(self.tabgraphSpectra)
241 self.specGraphSaveRTInoise = QtGui.QCheckBox(self.tabgraphSpectra)
242 self.specGraphSaveRTInoise.setText(_fromUtf8(""))
242 self.specGraphSaveRTInoise.setText(_fromUtf8(""))
243 self.specGraphSaveRTInoise.setObjectName(_fromUtf8("specGraphSaveRTInoise"))
243 self.specGraphSaveRTInoise.setObjectName(_fromUtf8("specGraphSaveRTInoise"))
244 self.gridLayout_9.addWidget(self.specGraphSaveRTInoise, 13, 5, 1, 1)
244 self.gridLayout_9.addWidget(self.specGraphSaveRTInoise, 13, 5, 1, 1)
245
245
246 self.label_19 = QtGui.QLabel(self.tabgraphSpectra)
246 self.label_19 = QtGui.QLabel(self.tabgraphSpectra)
247 self.label_19.setObjectName(_fromUtf8("label_19"))
247 self.label_19.setObjectName(_fromUtf8("label_19"))
248 self.gridLayout_9.addWidget(self.label_19, 3, 7, 2, 1)
248 self.gridLayout_9.addWidget(self.label_19, 3, 7, 2, 1)
249 self.specGraphftpSpectra = QtGui.QCheckBox(self.tabgraphSpectra)
249 self.specGraphftpSpectra = QtGui.QCheckBox(self.tabgraphSpectra)
250 self.specGraphftpSpectra.setText(_fromUtf8(""))
250 self.specGraphftpSpectra.setText(_fromUtf8(""))
251 self.specGraphftpSpectra.setObjectName(_fromUtf8("specGraphftpSpectra"))
251 self.specGraphftpSpectra.setObjectName(_fromUtf8("specGraphftpSpectra"))
252 self.gridLayout_9.addWidget(self.specGraphftpSpectra, 6, 7, 1, 1)
252 self.gridLayout_9.addWidget(self.specGraphftpSpectra, 6, 7, 1, 1)
253 self.specGraphftpCross = QtGui.QCheckBox(self.tabgraphSpectra)
253 self.specGraphftpCross = QtGui.QCheckBox(self.tabgraphSpectra)
254 self.specGraphftpCross.setText(_fromUtf8(""))
254 self.specGraphftpCross.setText(_fromUtf8(""))
255 self.specGraphftpCross.setObjectName(_fromUtf8("specGraphftpCross"))
255 self.specGraphftpCross.setObjectName(_fromUtf8("specGraphftpCross"))
256 self.gridLayout_9.addWidget(self.specGraphftpCross, 8, 7, 1, 1)
256 self.gridLayout_9.addWidget(self.specGraphftpCross, 8, 7, 1, 1)
257 self.specGraphftpRTIplot = QtGui.QCheckBox(self.tabgraphSpectra)
257 self.specGraphftpRTIplot = QtGui.QCheckBox(self.tabgraphSpectra)
258 self.specGraphftpRTIplot.setText(_fromUtf8(""))
258 self.specGraphftpRTIplot.setText(_fromUtf8(""))
259 self.specGraphftpRTIplot.setObjectName(_fromUtf8("specGraphftpRTIplot"))
259 self.specGraphftpRTIplot.setObjectName(_fromUtf8("specGraphftpRTIplot"))
260 self.gridLayout_9.addWidget(self.specGraphftpRTIplot, 9, 7, 1, 1)
260 self.gridLayout_9.addWidget(self.specGraphftpRTIplot, 9, 7, 1, 1)
261 self.specGraphftpCoherencemap = QtGui.QCheckBox(self.tabgraphSpectra)
261 self.specGraphftpCoherencemap = QtGui.QCheckBox(self.tabgraphSpectra)
262 self.specGraphftpCoherencemap.setText(_fromUtf8(""))
262 self.specGraphftpCoherencemap.setText(_fromUtf8(""))
263 self.specGraphftpCoherencemap.setObjectName(_fromUtf8("specGraphftpCoherencemap"))
263 self.specGraphftpCoherencemap.setObjectName(_fromUtf8("specGraphftpCoherencemap"))
264 self.gridLayout_9.addWidget(self.specGraphftpCoherencemap, 10, 7, 1, 1)
264 self.gridLayout_9.addWidget(self.specGraphftpCoherencemap, 10, 7, 1, 1)
265 self.specGraphftpPowerprofile = QtGui.QCheckBox(self.tabgraphSpectra)
265 self.specGraphftpPowerprofile = QtGui.QCheckBox(self.tabgraphSpectra)
266 self.specGraphftpPowerprofile.setText(_fromUtf8(""))
266 self.specGraphftpPowerprofile.setText(_fromUtf8(""))
267 self.specGraphftpPowerprofile.setObjectName(_fromUtf8("specGraphftpPowerprofile"))
267 self.specGraphftpPowerprofile.setObjectName(_fromUtf8("specGraphftpPowerprofile"))
268 self.gridLayout_9.addWidget(self.specGraphftpPowerprofile, 11, 7, 1, 1)
268 self.gridLayout_9.addWidget(self.specGraphftpPowerprofile, 11, 7, 1, 1)
269 self.specGraphftpRTInoise = QtGui.QCheckBox(self.tabgraphSpectra)
269 self.specGraphftpRTInoise = QtGui.QCheckBox(self.tabgraphSpectra)
270 self.specGraphftpRTInoise.setText(_fromUtf8(""))
270 self.specGraphftpRTInoise.setText(_fromUtf8(""))
271 self.specGraphftpRTInoise.setObjectName(_fromUtf8("specGraphftpRTInoise"))
271 self.specGraphftpRTInoise.setObjectName(_fromUtf8("specGraphftpRTInoise"))
272 self.gridLayout_9.addWidget(self.specGraphftpRTInoise, 13, 7, 1, 1)
272 self.gridLayout_9.addWidget(self.specGraphftpRTInoise, 13, 7, 1, 1)
273
273
274 spacerItem19 = QtGui.QSpacerItem(39, 15, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
274 spacerItem19 = QtGui.QSpacerItem(39, 15, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
275 self.gridLayout_9.addItem(spacerItem19, 27, 4, 1, 1)
275 self.gridLayout_9.addItem(spacerItem19, 27, 4, 1, 1)
276
276
277 self.label_22 = QtGui.QLabel(self.tabgraphSpectra)
277 self.label_22 = QtGui.QLabel(self.tabgraphSpectra)
278 self.label_22.setObjectName(_fromUtf8("label_22"))
278 self.label_22.setObjectName(_fromUtf8("label_22"))
279 self.gridLayout_9.addWidget(self.label_22, 16, 0, 1, 1)
279 self.gridLayout_9.addWidget(self.label_22, 16, 0, 1, 1)
280 self.specGgraphFreq = QtGui.QLineEdit(self.tabgraphSpectra)
280 self.specGgraphFreq = QtGui.QLineEdit(self.tabgraphSpectra)
281 self.specGgraphFreq.setObjectName(_fromUtf8("specGgraphFreq"))
281 self.specGgraphFreq.setObjectName(_fromUtf8("specGgraphFreq"))
282 self.gridLayout_9.addWidget(self.specGgraphFreq, 16, 2, 1, 2)
282 self.gridLayout_9.addWidget(self.specGgraphFreq, 16, 2, 1, 2)
283
283
284 self.label_16 = QtGui.QLabel(self.tabgraphSpectra)
284 self.label_16 = QtGui.QLabel(self.tabgraphSpectra)
285 self.label_16.setObjectName(_fromUtf8("label_16"))
285 self.label_16.setObjectName(_fromUtf8("label_16"))
286 self.gridLayout_9.addWidget(self.label_16, 17, 0, 1, 1)
286 self.gridLayout_9.addWidget(self.label_16, 17, 0, 1, 1)
287 self.specGgraphHeight = QtGui.QLineEdit(self.tabgraphSpectra)
287 self.specGgraphHeight = QtGui.QLineEdit(self.tabgraphSpectra)
288 self.specGgraphHeight.setObjectName(_fromUtf8("specGgraphHeight"))
288 self.specGgraphHeight.setObjectName(_fromUtf8("specGgraphHeight"))
289 self.gridLayout_9.addWidget(self.specGgraphHeight, 17, 2, 1, 2)
289 self.gridLayout_9.addWidget(self.specGgraphHeight, 17, 2, 1, 2)
290
290
291 self.label_17 = QtGui.QLabel(self.tabgraphSpectra)
291 self.label_17 = QtGui.QLabel(self.tabgraphSpectra)
292 self.label_17.setObjectName(_fromUtf8("label_17"))
292 self.label_17.setObjectName(_fromUtf8("label_17"))
293 self.gridLayout_9.addWidget(self.label_17, 18, 0, 1, 1)
293 self.gridLayout_9.addWidget(self.label_17, 18, 0, 1, 1)
294 self.specGgraphDbsrange = QtGui.QLineEdit(self.tabgraphSpectra)
294 self.specGgraphDbsrange = QtGui.QLineEdit(self.tabgraphSpectra)
295 self.specGgraphDbsrange.setObjectName(_fromUtf8("specGgraphDbsrange"))
295 self.specGgraphDbsrange.setObjectName(_fromUtf8("specGgraphDbsrange"))
296 self.gridLayout_9.addWidget(self.specGgraphDbsrange, 18, 2, 1, 2)
296 self.gridLayout_9.addWidget(self.specGgraphDbsrange, 18, 2, 1, 2)
297
297
298 self.specGraphTminTmaxLabel = QtGui.QLabel(self.tabgraphSpectra)
298 self.specGraphTminTmaxLabel = QtGui.QLabel(self.tabgraphSpectra)
299 self.specGraphTminTmaxLabel.setObjectName(_fromUtf8("specGraphTminTmaxLabel"))
299 self.specGraphTminTmaxLabel.setObjectName(_fromUtf8("specGraphTminTmaxLabel"))
300 self.gridLayout_9.addWidget(self.specGraphTminTmaxLabel, 19, 0, 1, 2)
300 self.gridLayout_9.addWidget(self.specGraphTminTmaxLabel, 19, 0, 1, 2)
301 self.specGgraphTminTmax = QtGui.QLineEdit(self.tabgraphSpectra)
301 self.specGgraphTminTmax = QtGui.QLineEdit(self.tabgraphSpectra)
302 self.specGgraphTminTmax.setObjectName(_fromUtf8("specGgraphTminTmax"))
302 self.specGgraphTminTmax.setObjectName(_fromUtf8("specGgraphTminTmax"))
303 self.gridLayout_9.addWidget(self.specGgraphTminTmax, 19, 2, 1, 2)
303 self.gridLayout_9.addWidget(self.specGgraphTminTmax, 19, 2, 1, 2)
304
304
305 self.specGraphMagLabel = QtGui.QLabel(self.tabgraphSpectra)
305 self.specGraphMagLabel = QtGui.QLabel(self.tabgraphSpectra)
306 self.specGraphMagLabel.setObjectName(_fromUtf8("specGraphMagLabel"))
306 self.specGraphMagLabel.setObjectName(_fromUtf8("specGraphMagLabel"))
307 self.gridLayout_9.addWidget(self.specGraphMagLabel, 16, 4, 1, 2)
307 self.gridLayout_9.addWidget(self.specGraphMagLabel, 16, 4, 1, 2)
308 self.specGgraphmagnitud = QtGui.QLineEdit(self.tabgraphSpectra)
308 self.specGgraphmagnitud = QtGui.QLineEdit(self.tabgraphSpectra)
309 self.specGgraphmagnitud.setObjectName(_fromUtf8("specGgraphmagnitud"))
309 self.specGgraphmagnitud.setObjectName(_fromUtf8("specGgraphmagnitud"))
310 self.gridLayout_9.addWidget(self.specGgraphmagnitud, 16, 6, 1, 2)
310 self.gridLayout_9.addWidget(self.specGgraphmagnitud, 16, 6, 1, 2)
311
311
312 self.specGraphPhaseLabel = QtGui.QLabel(self.tabgraphSpectra)
312 self.specGraphPhaseLabel = QtGui.QLabel(self.tabgraphSpectra)
313 self.specGraphPhaseLabel.setObjectName(_fromUtf8("specGraphPhaseLabel"))
313 self.specGraphPhaseLabel.setObjectName(_fromUtf8("specGraphPhaseLabel"))
314 self.gridLayout_9.addWidget(self.specGraphPhaseLabel, 17, 4, 1, 2)
314 self.gridLayout_9.addWidget(self.specGraphPhaseLabel, 17, 4, 1, 2)
315 self.specGgraphPhase = QtGui.QLineEdit(self.tabgraphSpectra)
315 self.specGgraphPhase = QtGui.QLineEdit(self.tabgraphSpectra)
316 self.specGgraphPhase.setObjectName(_fromUtf8("specGgraphPhase"))
316 self.specGgraphPhase.setObjectName(_fromUtf8("specGgraphPhase"))
317 self.gridLayout_9.addWidget(self.specGgraphPhase, 17, 6, 1, 2)
317 self.gridLayout_9.addWidget(self.specGgraphPhase, 17, 6, 1, 2)
318
318
319 self.label_6 = QtGui.QLabel(self.tabgraphSpectra)
319 self.label_6 = QtGui.QLabel(self.tabgraphSpectra)
320 self.label_6.setObjectName(_fromUtf8("label_6"))
320 self.label_6.setObjectName(_fromUtf8("label_6"))
321 self.gridLayout_9.addWidget(self.label_6, 18, 4, 1, 1)
321 self.gridLayout_9.addWidget(self.label_6, 18, 4, 1, 1)
322 self.specGgraphChannelList = QtGui.QLineEdit(self.tabgraphSpectra)
322 self.specGgraphChannelList = QtGui.QLineEdit(self.tabgraphSpectra)
323 self.specGgraphChannelList.setObjectName(_fromUtf8("specGgraphChannelList"))
323 self.specGgraphChannelList.setObjectName(_fromUtf8("specGgraphChannelList"))
324 self.gridLayout_9.addWidget(self.specGgraphChannelList, 18, 6, 1, 2)
324 self.gridLayout_9.addWidget(self.specGgraphChannelList, 18, 6, 1, 2)
325
325
326 self.label_29 = QtGui.QLabel(self.tabgraphSpectra)
326 self.label_29 = QtGui.QLabel(self.tabgraphSpectra)
327 self.label_29.setObjectName(_fromUtf8("label_29"))
327 self.label_29.setObjectName(_fromUtf8("label_29"))
328 self.gridLayout_9.addWidget(self.label_29, 19, 4, 1, 2)
328 self.gridLayout_9.addWidget(self.label_29, 19, 4, 1, 2)
329 self.specGgraphftpratio = QtGui.QLineEdit(self.tabgraphSpectra)
329 self.specGgraphftpratio = QtGui.QLineEdit(self.tabgraphSpectra)
330 self.specGgraphftpratio.setObjectName(_fromUtf8("specGgraphftpratio"))
330 self.specGgraphftpratio.setObjectName(_fromUtf8("specGgraphftpratio"))
331 self.gridLayout_9.addWidget(self.specGgraphftpratio, 19, 6, 1, 2)
331 self.gridLayout_9.addWidget(self.specGgraphftpratio, 19, 6, 1, 2)
332
332
333 self.label_48 = QtGui.QLabel(self.tabgraphSpectra)
333 self.label_48 = QtGui.QLabel(self.tabgraphSpectra)
334 self.label_48.setObjectName(_fromUtf8("label_48"))
334 self.label_48.setObjectName(_fromUtf8("label_48"))
335 self.gridLayout_9.addWidget(self.label_48, 20, 4, 1, 2)
335 self.gridLayout_9.addWidget(self.label_48, 20, 4, 1, 2)
336 self.specGgraphTimeRange = QtGui.QLineEdit(self.tabgraphSpectra)
336 self.specGgraphTimeRange = QtGui.QLineEdit(self.tabgraphSpectra)
337 self.specGgraphTimeRange.setObjectName(_fromUtf8("specGgraphTimeRange"))
337 self.specGgraphTimeRange.setObjectName(_fromUtf8("specGgraphTimeRange"))
338 self.gridLayout_9.addWidget(self.specGgraphTimeRange, 20, 6, 1, 2)
338 self.gridLayout_9.addWidget(self.specGgraphTimeRange, 20, 6, 1, 2)
339
339
340 spacerItem15 = QtGui.QSpacerItem(28, 15, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
340 spacerItem15 = QtGui.QSpacerItem(28, 15, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
341 self.gridLayout_9.addItem(spacerItem15, 27, 6, 1, 2)
341 self.gridLayout_9.addItem(spacerItem15, 27, 6, 1, 2)
342 spacerItem16 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
342 spacerItem16 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
343 self.gridLayout_9.addItem(spacerItem16, 3, 5, 1, 1)
343 self.gridLayout_9.addItem(spacerItem16, 3, 5, 1, 1)
344 spacerItem17 = QtGui.QSpacerItem(49, 15, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
344 spacerItem17 = QtGui.QSpacerItem(49, 15, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
345 self.gridLayout_9.addItem(spacerItem17, 27, 0, 1, 1)
345 self.gridLayout_9.addItem(spacerItem17, 27, 0, 1, 1)
346
346
347
347
348
348
349 self.tabWidgetSpectra.addTab(self.tabgraphSpectra, _fromUtf8(""))
349 self.tabWidgetSpectra.addTab(self.tabgraphSpectra, _fromUtf8(""))
350 self.taboutputSpectra = QtGui.QWidget()
350 self.taboutputSpectra = QtGui.QWidget()
351 self.taboutputSpectra.setObjectName(_fromUtf8("taboutputSpectra"))
351 self.taboutputSpectra.setObjectName(_fromUtf8("taboutputSpectra"))
352 self.gridLayout_11 = QtGui.QGridLayout(self.taboutputSpectra)
352 self.gridLayout_11 = QtGui.QGridLayout(self.taboutputSpectra)
353 self.gridLayout_11.setObjectName(_fromUtf8("gridLayout_11"))
353 self.gridLayout_11.setObjectName(_fromUtf8("gridLayout_11"))
354 self.label_39 = QtGui.QLabel(self.taboutputSpectra)
354 self.label_39 = QtGui.QLabel(self.taboutputSpectra)
355 self.label_39.setObjectName(_fromUtf8("label_39"))
355 self.label_39.setObjectName(_fromUtf8("label_39"))
356 self.gridLayout_11.addWidget(self.label_39, 0, 0, 1, 1)
356 self.gridLayout_11.addWidget(self.label_39, 0, 0, 1, 1)
357 self.specOutputComData = QtGui.QComboBox(self.taboutputSpectra)
357 self.specOutputComData = QtGui.QComboBox(self.taboutputSpectra)
358 self.specOutputComData.setObjectName(_fromUtf8("specOutputComData"))
358 self.specOutputComData.setObjectName(_fromUtf8("specOutputComData"))
359 self.specOutputComData.addItem(_fromUtf8(""))
359 self.specOutputComData.addItem(_fromUtf8(""))
360 self.gridLayout_11.addWidget(self.specOutputComData, 0, 2, 1, 2)
360 self.gridLayout_11.addWidget(self.specOutputComData, 0, 2, 1, 2)
361 self.label_34 = QtGui.QLabel(self.taboutputSpectra)
361 self.label_34 = QtGui.QLabel(self.taboutputSpectra)
362 self.label_34.setObjectName(_fromUtf8("label_34"))
362 self.label_34.setObjectName(_fromUtf8("label_34"))
363 self.gridLayout_11.addWidget(self.label_34, 1, 0, 1, 1)
363 self.gridLayout_11.addWidget(self.label_34, 1, 0, 1, 1)
364 self.specOutputPath = QtGui.QLineEdit(self.taboutputSpectra)
364 self.specOutputPath = QtGui.QLineEdit(self.taboutputSpectra)
365 self.specOutputPath.setObjectName(_fromUtf8("specOutputPath"))
365 self.specOutputPath.setObjectName(_fromUtf8("specOutputPath"))
366 self.gridLayout_11.addWidget(self.specOutputPath, 1, 2, 1, 1)
366 self.gridLayout_11.addWidget(self.specOutputPath, 1, 2, 1, 1)
367 spacerItem20 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
367 spacerItem20 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
368 self.gridLayout_11.addItem(spacerItem20, 4, 2, 1, 1)
368 self.gridLayout_11.addItem(spacerItem20, 4, 2, 1, 1)
369 self.specOutputToolPath = QtGui.QToolButton(self.taboutputSpectra)
369 self.specOutputToolPath = QtGui.QToolButton(self.taboutputSpectra)
370 self.specOutputToolPath.setObjectName(_fromUtf8("specOutputToolPath"))
370 self.specOutputToolPath.setObjectName(_fromUtf8("specOutputToolPath"))
371 self.gridLayout_11.addWidget(self.specOutputToolPath, 1, 3, 1, 1)
371 self.gridLayout_11.addWidget(self.specOutputToolPath, 1, 3, 1, 1)
372 self.specOutputblocksperfile = QtGui.QLineEdit(self.taboutputSpectra)
372 self.specOutputblocksperfile = QtGui.QLineEdit(self.taboutputSpectra)
373 self.specOutputblocksperfile.setObjectName(_fromUtf8("specOutputblocksperfile"))
373 self.specOutputblocksperfile.setObjectName(_fromUtf8("specOutputblocksperfile"))
374 self.gridLayout_11.addWidget(self.specOutputblocksperfile, 2, 2, 1, 1)
374 self.gridLayout_11.addWidget(self.specOutputblocksperfile, 2, 2, 1, 1)
375 self.label_9 = QtGui.QLabel(self.taboutputSpectra)
375 self.label_9 = QtGui.QLabel(self.taboutputSpectra)
376 self.label_9.setObjectName(_fromUtf8("label_9"))
376 self.label_9.setObjectName(_fromUtf8("label_9"))
377 self.gridLayout_11.addWidget(self.label_9, 2, 0, 1, 2)
377 self.gridLayout_11.addWidget(self.label_9, 2, 0, 1, 2)
378 self.label_38 = QtGui.QLabel(self.taboutputSpectra)
378 self.label_38 = QtGui.QLabel(self.taboutputSpectra)
379 self.label_38.setObjectName(_fromUtf8("label_38"))
379 self.label_38.setObjectName(_fromUtf8("label_38"))
380 self.gridLayout_11.addWidget(self.label_38, 3, 0, 1, 1)
380 self.gridLayout_11.addWidget(self.label_38, 3, 0, 1, 1)
381 self.specOutputprofileperblock = QtGui.QLineEdit(self.taboutputSpectra)
381 self.specOutputprofileperblock = QtGui.QLineEdit(self.taboutputSpectra)
382 self.specOutputprofileperblock.setObjectName(_fromUtf8("specOutputprofileperblock"))
382 self.specOutputprofileperblock.setObjectName(_fromUtf8("specOutputprofileperblock"))
383 self.gridLayout_11.addWidget(self.specOutputprofileperblock, 3, 2, 1, 1)
383 self.gridLayout_11.addWidget(self.specOutputprofileperblock, 3, 2, 1, 1)
384 self.tabWidgetSpectra.addTab(self.taboutputSpectra, _fromUtf8(""))
384 self.tabWidgetSpectra.addTab(self.taboutputSpectra, _fromUtf8(""))
385 self.gridLayout_7.addWidget(self.tabWidgetSpectra, 0, 1, 1, 1)
385 self.gridLayout_7.addWidget(self.tabWidgetSpectra, 0, 1, 1, 1)
386
386
387 self.tabWidgetProject.addTab(self.tabSpectra, _fromUtf8(""))
387 self.tabWidgetProject.addTab(self.tabSpectra, _fromUtf8(""))
388
388
389 self.tabWidgetSpectra.setCurrentIndex(0)
389 self.tabWidgetSpectra.setCurrentIndex(0)
390
390
391 def retranslateUi(self):
391 def retranslateUi(self):
392
392
393 self.specOpOk.setText(_translate("MainWindow", "Ok", None))
393 self.specOpOk.setText(_translate("MainWindow", "Ok", None))
394 self.specGraphClear.setText(_translate("MainWindow", "Clear", None))
394 self.specGraphClear.setText(_translate("MainWindow", "Clear", None))
395 self.specOpCebCrossSpectra.setText(_translate("MainWindow", "Select Cross Spectra", None))
395 self.specOpCebCrossSpectra.setText(_translate("MainWindow", "Select Cross Spectra", None))
396 self.specOpComChannel.setItemText(0, _translate("MainWindow", "Value", None))
396 self.specOpComChannel.setItemText(0, _translate("MainWindow", "Value", None))
397 self.specOpComChannel.setItemText(1, _translate("MainWindow", "Index", None))
397 self.specOpComChannel.setItemText(1, _translate("MainWindow", "Index", None))
398 self.specOpComHeights.setItemText(0, _translate("MainWindow", "Value", None))
398 self.specOpComHeights.setItemText(0, _translate("MainWindow", "Value", None))
399 self.specOpComHeights.setItemText(1, _translate("MainWindow", "Index", None))
399 self.specOpComHeights.setItemText(1, _translate("MainWindow", "Index", None))
400 self.specOpCebRemoveDC.setText(_translate("MainWindow", "Remove DC", None))
400 self.specOpCebRemoveDC.setText(_translate("MainWindow", "Remove DC", None))
401 self.specOpCebHeights.setText(_translate("MainWindow", "Select Heights", None))
401 self.specOpCebHeights.setText(_translate("MainWindow", "Select Heights", None))
402 self.specOpCebChannel.setText(_translate("MainWindow", "Select Channel", None))
402 self.specOpCebChannel.setText(_translate("MainWindow", "Select Channel", None))
403 self.label_31.setText(_translate("MainWindow", "x-y pairs", None))
403 self.label_31.setText(_translate("MainWindow", "x-y pairs", None))
404 self.label_26.setText(_translate("MainWindow", "nFFTPoints", None))
404 self.label_26.setText(_translate("MainWindow", "nFFTPoints", None))
405 self.specOpCebIncoherent.setText(_translate("MainWindow", "Incoherent Integration", None))
405 self.specOpCebIncoherent.setText(_translate("MainWindow", "Incoherent Integration", None))
406 self.specOpCobIncInt.setItemText(0, _translate("MainWindow", "Time Interval", None))
406 self.specOpCobIncInt.setItemText(0, _translate("MainWindow", "Time Interval", None))
407 self.specOpCobIncInt.setItemText(1, _translate("MainWindow", "Profiles", None))
407 self.specOpCobIncInt.setItemText(1, _translate("MainWindow", "Profiles", None))
408 self.specOpCebRadarfrequency.setText(_translate("MainWindow", "Radar wavelength", None))
408 self.specOpCebRadarfrequency.setText(_translate("MainWindow", "Radar frequency (MHz)", None))
409 self.label_21.setText(_translate("MainWindow", "Profiles", None))
409 self.label_21.setText(_translate("MainWindow", "Profiles", None))
410 self.specOpCebRemoveInt.setText(_translate("MainWindow", "Remove Interference", None))
410 self.specOpCebRemoveInt.setText(_translate("MainWindow", "Remove Interference", None))
411 self.label_70.setText(_translate("MainWindow", "IppFactor", None))
411 self.label_70.setText(_translate("MainWindow", "IppFactor", None))
412 self.specOpCebgetNoise.setText(_translate("MainWindow", "Get Noise", None))
412 self.specOpCebgetNoise.setText(_translate("MainWindow", "Get Noise", None))
413 self.specOpComRemoveDC.setItemText(0, _translate("MainWindow", "Mode 1", None))
413 self.specOpComRemoveDC.setItemText(0, _translate("MainWindow", "Mode 1", None))
414 self.specOpComRemoveDC.setItemText(1, _translate("MainWindow", "Mode 2", None))
414 self.specOpComRemoveDC.setItemText(1, _translate("MainWindow", "Mode 2", None))
415 self.tabWidgetSpectra.setTabText(self.tabWidgetSpectra.indexOf(self.tabopSpectra), _translate("MainWindow", "Operation", None))
415 self.tabWidgetSpectra.setTabText(self.tabWidgetSpectra.indexOf(self.tabopSpectra), _translate("MainWindow", "Operation", None))
416
416
417 self.label_44.setText(_translate("MainWindow", "Coherence Map", None))
417 self.label_44.setText(_translate("MainWindow", "Coherence Map", None))
418 self.specGraphTminTmaxLabel.setText(_translate("MainWindow", "Time range:", None))
418 self.specGraphTminTmaxLabel.setText(_translate("MainWindow", "Time range:", None))
419 self.label_25.setText(_translate("MainWindow", "Prefix", None))
419 self.label_25.setText(_translate("MainWindow", "Prefix", None))
420 self.label_42.setText(_translate("MainWindow", "RTI Plot", None))
420 self.label_42.setText(_translate("MainWindow", "RTI Plot", None))
421 self.label_16.setText(_translate("MainWindow", "Height range", None))
421 self.label_16.setText(_translate("MainWindow", "Height range", None))
422 self.label_17.setText(_translate("MainWindow", "dB range", None))
422 self.label_17.setText(_translate("MainWindow", "dB range", None))
423 self.specGraphMagLabel.setText(_translate("MainWindow", "Coh. Magnitud ", None))
423 self.specGraphMagLabel.setText(_translate("MainWindow", "Coh. Magnitud ", None))
424 self.label_24.setText(_translate("MainWindow", "Path", None))
424 self.label_24.setText(_translate("MainWindow", "Path", None))
425 self.label_46.setText(_translate("MainWindow", "Power Profile", None))
425 self.label_46.setText(_translate("MainWindow", "Power Profile", None))
426 self.label_22.setText(_translate("MainWindow", "Freq/Vel range:", None))
426 self.label_22.setText(_translate("MainWindow", "Freq/Vel range:", None))
427 self.label_41.setText(_translate("MainWindow", "Cross Spectra Plot", None))
427 self.label_41.setText(_translate("MainWindow", "Cross Spectra Plot", None))
428 self.specGraphToolPath.setText(_translate("MainWindow", "...", None))
428 self.specGraphToolPath.setText(_translate("MainWindow", "...", None))
429 self.label_6.setText(_translate("MainWindow", "Channel List:", None))
429 self.label_6.setText(_translate("MainWindow", "Channel List:", None))
430 self.label_40.setText(_translate("MainWindow", "Spectra Plot", None))
430 self.label_40.setText(_translate("MainWindow", "Spectra Plot", None))
431 self.label_43.setText(_translate("MainWindow", "Show", None))
431 self.label_43.setText(_translate("MainWindow", "Show", None))
432 self.label_29.setText(_translate("MainWindow", "Writing Period:", None))
432 self.label_29.setText(_translate("MainWindow", "Writing Period:", None))
433 self.label_47.setText(_translate("MainWindow", "Save", None))
433 self.label_47.setText(_translate("MainWindow", "Save", None))
434 self.label_19.setText(_translate("MainWindow", "Ftp", None))
434 self.label_19.setText(_translate("MainWindow", "Ftp", None))
435 self.label_45.setText(_translate("MainWindow", "Noise", None))
435 self.label_45.setText(_translate("MainWindow", "Noise", None))
436 self.label_48.setText(_translate("MainWindow", "Time Range:", None))
436 self.label_48.setText(_translate("MainWindow", "Time Range:", None))
437 self.specGraphPhaseLabel.setText(_translate("MainWindow", "Coh. Phase:", None))
437 self.specGraphPhaseLabel.setText(_translate("MainWindow", "Coh. Phase:", None))
438 self.label_48.hide()
438 self.label_48.hide()
439 self.specGgraphTimeRange.hide()
439 self.specGgraphTimeRange.hide()
440 self.tabWidgetSpectra.setTabText(self.tabWidgetSpectra.indexOf(self.tabgraphSpectra), _translate("MainWindow", "Graphics", None))
440 self.tabWidgetSpectra.setTabText(self.tabWidgetSpectra.indexOf(self.tabgraphSpectra), _translate("MainWindow", "Graphics", None))
441
441
442 self.label_39.setText(_translate("MainWindow", "Type:", None))
442 self.label_39.setText(_translate("MainWindow", "Type:", None))
443 self.specOutputComData.setItemText(0, _translate("MainWindow", ".pdata", None))
443 self.specOutputComData.setItemText(0, _translate("MainWindow", ".pdata", None))
444 self.label_34.setText(_translate("MainWindow", "Path:", None))
444 self.label_34.setText(_translate("MainWindow", "Path:", None))
445 self.specOutputToolPath.setText(_translate("MainWindow", "...", None))
445 self.specOutputToolPath.setText(_translate("MainWindow", "...", None))
446 self.label_9.setText(_translate("MainWindow", "Blocks per File: ", None))
446 self.label_9.setText(_translate("MainWindow", "Blocks per File: ", None))
447 self.label_38.setText(_translate("MainWindow", "Profile per Block: ", None))
447 self.label_38.setText(_translate("MainWindow", "Profile per Block: ", None))
448 self.tabWidgetSpectra.setTabText(self.tabWidgetSpectra.indexOf(self.taboutputSpectra), _translate("MainWindow", "Output", None))
448 self.tabWidgetSpectra.setTabText(self.tabWidgetSpectra.indexOf(self.taboutputSpectra), _translate("MainWindow", "Output", None))
449
449
450 self.tabWidgetProject.setTabText(self.tabWidgetProject.indexOf(self.tabSpectra), _translate("MainWindow", "Spectra", None))
450 self.tabWidgetProject.setTabText(self.tabWidgetProject.indexOf(self.tabSpectra), _translate("MainWindow", "Spectra", None))
451 No newline at end of file
451
@@ -1,324 +1,324
1
1
2 from PyQt4 import QtCore, QtGui
2 from PyQt4 import QtCore, QtGui
3
3
4 try:
4 try:
5 _fromUtf8 = QtCore.QString.fromUtf8
5 _fromUtf8 = QtCore.QString.fromUtf8
6 except AttributeError:
6 except AttributeError:
7 def _fromUtf8(s):
7 def _fromUtf8(s):
8 return s
8 return s
9
9
10 try:
10 try:
11 _encoding = QtGui.QApplication.UnicodeUTF8
11 _encoding = QtGui.QApplication.UnicodeUTF8
12 def _translate(context, text, disambig):
12 def _translate(context, text, disambig):
13 return QtGui.QApplication.translate(context, text, disambig, _encoding)
13 return QtGui.QApplication.translate(context, text, disambig, _encoding)
14 except AttributeError:
14 except AttributeError:
15 def _translate(context, text, disambig):
15 def _translate(context, text, disambig):
16 return QtGui.QApplication.translate(context, text, disambig)
16 return QtGui.QApplication.translate(context, text, disambig)
17
17
18 class Ui_VoltageTab(object):
18 class Ui_VoltageTab(object):
19
19
20 def setupUi(self):
20 def setupUi(self):
21
21
22 self.tabVoltage = QtGui.QWidget()
22 self.tabVoltage = QtGui.QWidget()
23 self.tabVoltage.setObjectName(_fromUtf8("tabVoltage"))
23 self.tabVoltage.setObjectName(_fromUtf8("tabVoltage"))
24
24
25 self.gridLayout_3 = QtGui.QGridLayout(self.tabVoltage)
25 self.gridLayout_3 = QtGui.QGridLayout(self.tabVoltage)
26 self.gridLayout_3.setObjectName(_fromUtf8("gridLayout_3"))
26 self.gridLayout_3.setObjectName(_fromUtf8("gridLayout_3"))
27
27
28 self.frame_4 = QtGui.QFrame(self.tabVoltage)
28 self.frame_4 = QtGui.QFrame(self.tabVoltage)
29 self.frame_4.setFrameShape(QtGui.QFrame.StyledPanel)
29 self.frame_4.setFrameShape(QtGui.QFrame.StyledPanel)
30 self.frame_4.setFrameShadow(QtGui.QFrame.Raised)
30 self.frame_4.setFrameShadow(QtGui.QFrame.Raised)
31 self.frame_4.setObjectName(_fromUtf8("frame_4"))
31 self.frame_4.setObjectName(_fromUtf8("frame_4"))
32
32
33 self.gridLayout_17 = QtGui.QGridLayout(self.frame_4)
33 self.gridLayout_17 = QtGui.QGridLayout(self.frame_4)
34 self.gridLayout_17.setObjectName(_fromUtf8("gridLayout_17"))
34 self.gridLayout_17.setObjectName(_fromUtf8("gridLayout_17"))
35 self.volOpOk = QtGui.QPushButton(self.frame_4)
35 self.volOpOk = QtGui.QPushButton(self.frame_4)
36 self.volOpOk.setObjectName(_fromUtf8("volOpOk"))
36 self.volOpOk.setObjectName(_fromUtf8("volOpOk"))
37 self.gridLayout_17.addWidget(self.volOpOk, 0, 0, 1, 1)
37 self.gridLayout_17.addWidget(self.volOpOk, 0, 0, 1, 1)
38 self.volGraphClear = QtGui.QPushButton(self.frame_4)
38 self.volGraphClear = QtGui.QPushButton(self.frame_4)
39 self.volGraphClear.setObjectName(_fromUtf8("volGraphClear"))
39 self.volGraphClear.setObjectName(_fromUtf8("volGraphClear"))
40 self.gridLayout_17.addWidget(self.volGraphClear, 0, 1, 1, 1)
40 self.gridLayout_17.addWidget(self.volGraphClear, 0, 1, 1, 1)
41 self.gridLayout_3.addWidget(self.frame_4, 1, 1, 1, 1)
41 self.gridLayout_3.addWidget(self.frame_4, 1, 1, 1, 1)
42
42
43
43
44 self.tabWidgetVoltage = QtGui.QTabWidget(self.tabVoltage)
44 self.tabWidgetVoltage = QtGui.QTabWidget(self.tabVoltage)
45 self.tabWidgetVoltage.setObjectName(_fromUtf8("tabWidgetVoltage"))
45 self.tabWidgetVoltage.setObjectName(_fromUtf8("tabWidgetVoltage"))
46 self.tabopVoltage = QtGui.QWidget()
46 self.tabopVoltage = QtGui.QWidget()
47 self.tabopVoltage.setObjectName(_fromUtf8("tabopVoltage"))
47 self.tabopVoltage.setObjectName(_fromUtf8("tabopVoltage"))
48 self.gridLayout = QtGui.QGridLayout(self.tabopVoltage)
48 self.gridLayout = QtGui.QGridLayout(self.tabopVoltage)
49 self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
49 self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
50 self.volOpHeights = QtGui.QLineEdit(self.tabopVoltage)
50 self.volOpHeights = QtGui.QLineEdit(self.tabopVoltage)
51 self.volOpHeights.setObjectName(_fromUtf8("volOpHeights"))
51 self.volOpHeights.setObjectName(_fromUtf8("volOpHeights"))
52 self.gridLayout.addWidget(self.volOpHeights, 4, 4, 1, 1)
52 self.gridLayout.addWidget(self.volOpHeights, 4, 4, 1, 1)
53 self.volOpComHeights = QtGui.QComboBox(self.tabopVoltage)
53 self.volOpComHeights = QtGui.QComboBox(self.tabopVoltage)
54 self.volOpComHeights.setObjectName(_fromUtf8("volOpComHeights"))
54 self.volOpComHeights.setObjectName(_fromUtf8("volOpComHeights"))
55 self.volOpComHeights.addItem(_fromUtf8(""))
55 self.volOpComHeights.addItem(_fromUtf8(""))
56 self.volOpComHeights.addItem(_fromUtf8(""))
56 self.volOpComHeights.addItem(_fromUtf8(""))
57 self.gridLayout.addWidget(self.volOpComHeights, 4, 0, 1, 3)
57 self.gridLayout.addWidget(self.volOpComHeights, 4, 0, 1, 3)
58 self.volOpComChannels = QtGui.QComboBox(self.tabopVoltage)
58 self.volOpComChannels = QtGui.QComboBox(self.tabopVoltage)
59 self.volOpComChannels.setObjectName(_fromUtf8("volOpComChannels"))
59 self.volOpComChannels.setObjectName(_fromUtf8("volOpComChannels"))
60 self.volOpComChannels.addItem(_fromUtf8(""))
60 self.volOpComChannels.addItem(_fromUtf8(""))
61 self.volOpComChannels.addItem(_fromUtf8(""))
61 self.volOpComChannels.addItem(_fromUtf8(""))
62 self.gridLayout.addWidget(self.volOpComChannels, 2, 0, 1, 3)
62 self.gridLayout.addWidget(self.volOpComChannels, 2, 0, 1, 3)
63 self.volOpCebProfile = QtGui.QCheckBox(self.tabopVoltage)
63 self.volOpCebProfile = QtGui.QCheckBox(self.tabopVoltage)
64 self.volOpCebProfile.setObjectName(_fromUtf8("volOpCebProfile"))
64 self.volOpCebProfile.setObjectName(_fromUtf8("volOpCebProfile"))
65 self.gridLayout.addWidget(self.volOpCebProfile, 6, 0, 1, 3)
65 self.gridLayout.addWidget(self.volOpCebProfile, 6, 0, 1, 3)
66 self.volOpComProfile = QtGui.QComboBox(self.tabopVoltage)
66 self.volOpComProfile = QtGui.QComboBox(self.tabopVoltage)
67 self.volOpComProfile.setObjectName(_fromUtf8("volOpComProfile"))
67 self.volOpComProfile.setObjectName(_fromUtf8("volOpComProfile"))
68 self.volOpComProfile.addItem(_fromUtf8(""))
68 self.volOpComProfile.addItem(_fromUtf8(""))
69 self.volOpComProfile.addItem(_fromUtf8(""))
69 self.volOpComProfile.addItem(_fromUtf8(""))
70 self.volOpComProfile.addItem(_fromUtf8(""))
70 self.volOpComProfile.addItem(_fromUtf8(""))
71 self.gridLayout.addWidget(self.volOpComProfile, 7, 0, 1, 3)
71 self.gridLayout.addWidget(self.volOpComProfile, 7, 0, 1, 3)
72 self.volOpCebDecodification = QtGui.QCheckBox(self.tabopVoltage)
72 self.volOpCebDecodification = QtGui.QCheckBox(self.tabopVoltage)
73 self.volOpCebDecodification.setObjectName(_fromUtf8("volOpCebDecodification"))
73 self.volOpCebDecodification.setObjectName(_fromUtf8("volOpCebDecodification"))
74 self.gridLayout.addWidget(self.volOpCebDecodification, 8, 0, 1, 3)
74 self.gridLayout.addWidget(self.volOpCebDecodification, 8, 0, 1, 3)
75 self.volOpProfile = QtGui.QLineEdit(self.tabopVoltage)
75 self.volOpProfile = QtGui.QLineEdit(self.tabopVoltage)
76 self.volOpProfile.setObjectName(_fromUtf8("volOpProfile"))
76 self.volOpProfile.setObjectName(_fromUtf8("volOpProfile"))
77 self.gridLayout.addWidget(self.volOpProfile, 7, 4, 1, 1)
77 self.gridLayout.addWidget(self.volOpProfile, 7, 4, 1, 1)
78 self.volOpFilter = QtGui.QLineEdit(self.tabopVoltage)
78 self.volOpFilter = QtGui.QLineEdit(self.tabopVoltage)
79 self.volOpFilter.setObjectName(_fromUtf8("volOpFilter"))
79 self.volOpFilter.setObjectName(_fromUtf8("volOpFilter"))
80 self.gridLayout.addWidget(self.volOpFilter, 5, 4, 1, 1)
80 self.gridLayout.addWidget(self.volOpFilter, 5, 4, 1, 1)
81 spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
81 spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
82 self.gridLayout.addItem(spacerItem, 6, 4, 1, 1)
82 self.gridLayout.addItem(spacerItem, 6, 4, 1, 1)
83 spacerItem1 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
83 spacerItem1 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
84 self.gridLayout.addItem(spacerItem1, 8, 4, 1, 1)
84 self.gridLayout.addItem(spacerItem1, 8, 4, 1, 1)
85 spacerItem2 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
85 spacerItem2 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
86 self.gridLayout.addItem(spacerItem2, 3, 4, 1, 1)
86 self.gridLayout.addItem(spacerItem2, 3, 4, 1, 1)
87 self.volOpChannel = QtGui.QLineEdit(self.tabopVoltage)
87 self.volOpChannel = QtGui.QLineEdit(self.tabopVoltage)
88 self.volOpChannel.setObjectName(_fromUtf8("volOpChannel"))
88 self.volOpChannel.setObjectName(_fromUtf8("volOpChannel"))
89 self.gridLayout.addWidget(self.volOpChannel, 2, 4, 1, 1)
89 self.gridLayout.addWidget(self.volOpChannel, 2, 4, 1, 1)
90 self.volOpCebChannels = QtGui.QCheckBox(self.tabopVoltage)
90 self.volOpCebChannels = QtGui.QCheckBox(self.tabopVoltage)
91 self.volOpCebChannels.setObjectName(_fromUtf8("volOpCebChannels"))
91 self.volOpCebChannels.setObjectName(_fromUtf8("volOpCebChannels"))
92 self.gridLayout.addWidget(self.volOpCebChannels, 1, 0, 1, 3)
92 self.gridLayout.addWidget(self.volOpCebChannels, 1, 0, 1, 3)
93 self.volOpCebHeights = QtGui.QCheckBox(self.tabopVoltage)
93 self.volOpCebHeights = QtGui.QCheckBox(self.tabopVoltage)
94 self.volOpCebHeights.setObjectName(_fromUtf8("volOpCebHeights"))
94 self.volOpCebHeights.setObjectName(_fromUtf8("volOpCebHeights"))
95 self.gridLayout.addWidget(self.volOpCebHeights, 3, 0, 1, 3)
95 self.gridLayout.addWidget(self.volOpCebHeights, 3, 0, 1, 3)
96 self.volOpCebFilter = QtGui.QCheckBox(self.tabopVoltage)
96 self.volOpCebFilter = QtGui.QCheckBox(self.tabopVoltage)
97 self.volOpCebFilter.setObjectName(_fromUtf8("volOpCebFilter"))
97 self.volOpCebFilter.setObjectName(_fromUtf8("volOpCebFilter"))
98 self.gridLayout.addWidget(self.volOpCebFilter, 5, 0, 1, 3)
98 self.gridLayout.addWidget(self.volOpCebFilter, 5, 0, 1, 3)
99 self.volOpRadarfrequency = QtGui.QLineEdit(self.tabopVoltage)
99 self.volOpRadarfrequency = QtGui.QLineEdit(self.tabopVoltage)
100 self.volOpRadarfrequency.setObjectName(_fromUtf8("volOpRadarfrequency"))
100 self.volOpRadarfrequency.setObjectName(_fromUtf8("volOpRadarfrequency"))
101 self.gridLayout.addWidget(self.volOpRadarfrequency, 0, 4, 1, 1)
101 self.gridLayout.addWidget(self.volOpRadarfrequency, 0, 4, 1, 1)
102 self.volOpCebRadarfrequency = QtGui.QCheckBox(self.tabopVoltage)
102 self.volOpCebRadarfrequency = QtGui.QCheckBox(self.tabopVoltage)
103 self.volOpCebRadarfrequency.setObjectName(_fromUtf8("volOpCebRadarfrequency"))
103 self.volOpCebRadarfrequency.setObjectName(_fromUtf8("volOpCebRadarfrequency"))
104 self.gridLayout.addWidget(self.volOpCebRadarfrequency, 0, 0, 1, 3)
104 self.gridLayout.addWidget(self.volOpCebRadarfrequency, 0, 0, 1, 3)
105 spacerItem3 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
105 spacerItem3 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
106 self.gridLayout.addItem(spacerItem3, 1, 4, 1, 1)
106 self.gridLayout.addItem(spacerItem3, 1, 4, 1, 1)
107 self.volOpCebFlip = QtGui.QCheckBox(self.tabopVoltage)
107 self.volOpCebFlip = QtGui.QCheckBox(self.tabopVoltage)
108 self.volOpCebFlip.setObjectName(_fromUtf8("volOpCebFlip"))
108 self.volOpCebFlip.setObjectName(_fromUtf8("volOpCebFlip"))
109 self.gridLayout.addWidget(self.volOpCebFlip, 11, 0, 1, 3)
109 self.gridLayout.addWidget(self.volOpCebFlip, 11, 0, 1, 3)
110 self.volOpFlip = QtGui.QLineEdit(self.tabopVoltage)
110 self.volOpFlip = QtGui.QLineEdit(self.tabopVoltage)
111 self.volOpFlip.setObjectName(_fromUtf8("volOpFlip"))
111 self.volOpFlip.setObjectName(_fromUtf8("volOpFlip"))
112 self.gridLayout.addWidget(self.volOpFlip, 11, 4, 1, 1)
112 self.gridLayout.addWidget(self.volOpFlip, 11, 4, 1, 1)
113
113
114 self.volOpCebCohInt = QtGui.QCheckBox(self.tabopVoltage)
114 self.volOpCebCohInt = QtGui.QCheckBox(self.tabopVoltage)
115 self.volOpCebCohInt.setObjectName(_fromUtf8("volOpCebCohInt"))
115 self.volOpCebCohInt.setObjectName(_fromUtf8("volOpCebCohInt"))
116 self.gridLayout.addWidget(self.volOpCebCohInt, 12, 0, 1, 3)
116 self.gridLayout.addWidget(self.volOpCebCohInt, 12, 0, 1, 3)
117 self.volOpCohInt = QtGui.QLineEdit(self.tabopVoltage)
117 self.volOpCohInt = QtGui.QLineEdit(self.tabopVoltage)
118 self.volOpCohInt.setObjectName(_fromUtf8("volOpCohInt"))
118 self.volOpCohInt.setObjectName(_fromUtf8("volOpCohInt"))
119 self.gridLayout.addWidget(self.volOpCohInt, 12, 4, 1, 1)
119 self.gridLayout.addWidget(self.volOpCohInt, 12, 4, 1, 1)
120
120
121 self.volLabCodeMode = QtGui.QLabel(self.tabopVoltage)
121 self.volLabCodeMode = QtGui.QLabel(self.tabopVoltage)
122 self.volLabCodeMode.setObjectName(_fromUtf8("volLabCodeMode"))
122 self.volLabCodeMode.setObjectName(_fromUtf8("volLabCodeMode"))
123 self.gridLayout.addWidget(self.volLabCodeMode, 8, 2, 1, 1)
123 self.gridLayout.addWidget(self.volLabCodeMode, 8, 2, 1, 1)
124 self.volLabCodeType = QtGui.QLabel(self.tabopVoltage)
124 self.volLabCodeType = QtGui.QLabel(self.tabopVoltage)
125 self.volLabCodeType.setObjectName(_fromUtf8("volLabCodeType"))
125 self.volLabCodeType.setObjectName(_fromUtf8("volLabCodeType"))
126 self.gridLayout.addWidget(self.volLabCodeType, 9, 2, 1, 1)
126 self.gridLayout.addWidget(self.volLabCodeType, 9, 2, 1, 1)
127 self.volLabCode = QtGui.QLabel(self.tabopVoltage)
127 self.volLabCode = QtGui.QLabel(self.tabopVoltage)
128 self.volLabCode.setObjectName(_fromUtf8("volLabCode"))
128 self.volLabCode.setObjectName(_fromUtf8("volLabCode"))
129 self.gridLayout.addWidget(self.volLabCode, 10, 2, 1, 1)
129 self.gridLayout.addWidget(self.volLabCode, 10, 2, 1, 1)
130 self.volOpComMode = QtGui.QComboBox(self.tabopVoltage)
130 self.volOpComMode = QtGui.QComboBox(self.tabopVoltage)
131 self.volOpComMode.setObjectName(_fromUtf8("volOpComMode"))
131 self.volOpComMode.setObjectName(_fromUtf8("volOpComMode"))
132 self.volOpComMode.addItem(_fromUtf8(""))
132 self.volOpComMode.addItem(_fromUtf8(""))
133 self.volOpComMode.addItem(_fromUtf8(""))
133 self.volOpComMode.addItem(_fromUtf8(""))
134 self.gridLayout.addWidget(self.volOpComMode, 8, 4, 1, 1)
134 self.gridLayout.addWidget(self.volOpComMode, 8, 4, 1, 1)
135 self.volOpComCode = QtGui.QComboBox(self.tabopVoltage)
135 self.volOpComCode = QtGui.QComboBox(self.tabopVoltage)
136 self.volOpComCode.setObjectName(_fromUtf8("volOpComCode"))
136 self.volOpComCode.setObjectName(_fromUtf8("volOpComCode"))
137 self.volOpComCode.addItem(_fromUtf8(""))
137 self.volOpComCode.addItem(_fromUtf8(""))
138 self.volOpComCode.addItem(_fromUtf8(""))
138 self.volOpComCode.addItem(_fromUtf8(""))
139 self.volOpComCode.addItem(_fromUtf8(""))
139 self.volOpComCode.addItem(_fromUtf8(""))
140 self.volOpComCode.addItem(_fromUtf8(""))
140 self.volOpComCode.addItem(_fromUtf8(""))
141 self.volOpComCode.addItem(_fromUtf8(""))
141 self.volOpComCode.addItem(_fromUtf8(""))
142 self.volOpComCode.addItem(_fromUtf8(""))
142 self.volOpComCode.addItem(_fromUtf8(""))
143 self.volOpComCode.addItem(_fromUtf8(""))
143 self.volOpComCode.addItem(_fromUtf8(""))
144 self.volOpComCode.addItem(_fromUtf8(""))
144 self.volOpComCode.addItem(_fromUtf8(""))
145 self.volOpComCode.addItem(_fromUtf8(""))
145 self.volOpComCode.addItem(_fromUtf8(""))
146 self.volOpComCode.addItem(_fromUtf8(""))
146 self.volOpComCode.addItem(_fromUtf8(""))
147 self.volOpComCode.addItem(_fromUtf8(""))
147 self.volOpComCode.addItem(_fromUtf8(""))
148 self.volOpComCode.addItem(_fromUtf8(""))
148 self.volOpComCode.addItem(_fromUtf8(""))
149 self.volOpComCode.addItem(_fromUtf8(""))
149 self.volOpComCode.addItem(_fromUtf8(""))
150 self.volOpComCode.addItem(_fromUtf8(""))
150 self.volOpComCode.addItem(_fromUtf8(""))
151 self.gridLayout.addWidget(self.volOpComCode, 9, 4, 1, 1)
151 self.gridLayout.addWidget(self.volOpComCode, 9, 4, 1, 1)
152 self.tabWidgetVoltage.addTab(self.tabopVoltage, _fromUtf8(""))
152 self.tabWidgetVoltage.addTab(self.tabopVoltage, _fromUtf8(""))
153 self.volOpCode = QtGui.QLineEdit(self.tabopVoltage)
153 self.volOpCode = QtGui.QLineEdit(self.tabopVoltage)
154 self.volOpCode.setObjectName(_fromUtf8("volOpCode"))
154 self.volOpCode.setObjectName(_fromUtf8("volOpCode"))
155 self.gridLayout.addWidget(self.volOpCode, 10, 4, 1, 1)
155 self.gridLayout.addWidget(self.volOpCode, 10, 4, 1, 1)
156
156
157 self.tabgraphVoltage = QtGui.QWidget()
157 self.tabgraphVoltage = QtGui.QWidget()
158 self.tabgraphVoltage.setObjectName(_fromUtf8("tabgraphVoltage"))
158 self.tabgraphVoltage.setObjectName(_fromUtf8("tabgraphVoltage"))
159 self.gridLayout_6 = QtGui.QGridLayout(self.tabgraphVoltage)
159 self.gridLayout_6 = QtGui.QGridLayout(self.tabgraphVoltage)
160 self.gridLayout_6.setObjectName(_fromUtf8("gridLayout_6"))
160 self.gridLayout_6.setObjectName(_fromUtf8("gridLayout_6"))
161 spacerItem4 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
161 spacerItem4 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
162 self.gridLayout_6.addItem(spacerItem4, 12, 3, 1, 1)
162 self.gridLayout_6.addItem(spacerItem4, 12, 3, 1, 1)
163 self.volGraphfreqrange = QtGui.QLineEdit(self.tabgraphVoltage)
163 self.volGraphfreqrange = QtGui.QLineEdit(self.tabgraphVoltage)
164 self.volGraphfreqrange.setObjectName(_fromUtf8("volGraphfreqrange"))
164 self.volGraphfreqrange.setObjectName(_fromUtf8("volGraphfreqrange"))
165 self.gridLayout_6.addWidget(self.volGraphfreqrange, 9, 1, 1, 6)
165 self.gridLayout_6.addWidget(self.volGraphfreqrange, 9, 1, 1, 6)
166 self.volGraphPrefix = QtGui.QLineEdit(self.tabgraphVoltage)
166 self.volGraphPrefix = QtGui.QLineEdit(self.tabgraphVoltage)
167 self.volGraphPrefix.setObjectName(_fromUtf8("volGraphPrefix"))
167 self.volGraphPrefix.setObjectName(_fromUtf8("volGraphPrefix"))
168 self.gridLayout_6.addWidget(self.volGraphPrefix, 2, 1, 1, 6)
168 self.gridLayout_6.addWidget(self.volGraphPrefix, 2, 1, 1, 6)
169 self.volGraphToolPath = QtGui.QToolButton(self.tabgraphVoltage)
169 self.volGraphToolPath = QtGui.QToolButton(self.tabgraphVoltage)
170 self.volGraphToolPath.setObjectName(_fromUtf8("volGraphToolPath"))
170 self.volGraphToolPath.setObjectName(_fromUtf8("volGraphToolPath"))
171 self.gridLayout_6.addWidget(self.volGraphToolPath, 1, 5, 1, 2)
171 self.gridLayout_6.addWidget(self.volGraphToolPath, 1, 5, 1, 2)
172 self.volGraphPath = QtGui.QLineEdit(self.tabgraphVoltage)
172 self.volGraphPath = QtGui.QLineEdit(self.tabgraphVoltage)
173 self.volGraphPath.setObjectName(_fromUtf8("volGraphPath"))
173 self.volGraphPath.setObjectName(_fromUtf8("volGraphPath"))
174 self.gridLayout_6.addWidget(self.volGraphPath, 1, 1, 1, 4)
174 self.gridLayout_6.addWidget(self.volGraphPath, 1, 1, 1, 4)
175 self.label_14 = QtGui.QLabel(self.tabgraphVoltage)
175 self.label_14 = QtGui.QLabel(self.tabgraphVoltage)
176 self.label_14.setObjectName(_fromUtf8("label_14"))
176 self.label_14.setObjectName(_fromUtf8("label_14"))
177 self.gridLayout_6.addWidget(self.label_14, 6, 0, 1, 1)
177 self.gridLayout_6.addWidget(self.label_14, 6, 0, 1, 1)
178 spacerItem5 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
178 spacerItem5 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
179 self.gridLayout_6.addItem(spacerItem5, 3, 3, 1, 1)
179 self.gridLayout_6.addItem(spacerItem5, 3, 3, 1, 1)
180 self.label_8 = QtGui.QLabel(self.tabgraphVoltage)
180 self.label_8 = QtGui.QLabel(self.tabgraphVoltage)
181 self.label_8.setObjectName(_fromUtf8("label_8"))
181 self.label_8.setObjectName(_fromUtf8("label_8"))
182 self.gridLayout_6.addWidget(self.label_8, 8, 0, 1, 1)
182 self.gridLayout_6.addWidget(self.label_8, 8, 0, 1, 1)
183 self.label_49 = QtGui.QLabel(self.tabgraphVoltage)
183 self.label_49 = QtGui.QLabel(self.tabgraphVoltage)
184 self.label_49.setObjectName(_fromUtf8("label_49"))
184 self.label_49.setObjectName(_fromUtf8("label_49"))
185 self.gridLayout_6.addWidget(self.label_49, 4, 3, 1, 1)
185 self.gridLayout_6.addWidget(self.label_49, 4, 3, 1, 1)
186 self.label_51 = QtGui.QLabel(self.tabgraphVoltage)
186 self.label_51 = QtGui.QLabel(self.tabgraphVoltage)
187 self.label_51.setObjectName(_fromUtf8("label_51"))
187 self.label_51.setObjectName(_fromUtf8("label_51"))
188 self.gridLayout_6.addWidget(self.label_51, 9, 0, 1, 1)
188 self.gridLayout_6.addWidget(self.label_51, 9, 0, 1, 1)
189 self.volGraphCebshow = QtGui.QCheckBox(self.tabgraphVoltage)
189 self.volGraphCebshow = QtGui.QCheckBox(self.tabgraphVoltage)
190 self.volGraphCebshow.setText(_fromUtf8(""))
190 self.volGraphCebshow.setText(_fromUtf8(""))
191 self.volGraphCebshow.setObjectName(_fromUtf8("volGraphCebshow"))
191 self.volGraphCebshow.setObjectName(_fromUtf8("volGraphCebshow"))
192 self.gridLayout_6.addWidget(self.volGraphCebshow, 6, 3, 1, 1)
192 self.gridLayout_6.addWidget(self.volGraphCebshow, 6, 3, 1, 1)
193 self.label_12 = QtGui.QLabel(self.tabgraphVoltage)
193 self.label_12 = QtGui.QLabel(self.tabgraphVoltage)
194 self.label_12.setObjectName(_fromUtf8("label_12"))
194 self.label_12.setObjectName(_fromUtf8("label_12"))
195 self.gridLayout_6.addWidget(self.label_12, 1, 0, 1, 1)
195 self.gridLayout_6.addWidget(self.label_12, 1, 0, 1, 1)
196 self.label_13 = QtGui.QLabel(self.tabgraphVoltage)
196 self.label_13 = QtGui.QLabel(self.tabgraphVoltage)
197 self.label_13.setObjectName(_fromUtf8("label_13"))
197 self.label_13.setObjectName(_fromUtf8("label_13"))
198 self.gridLayout_6.addWidget(self.label_13, 2, 0, 1, 1)
198 self.gridLayout_6.addWidget(self.label_13, 2, 0, 1, 1)
199 self.label_52 = QtGui.QLabel(self.tabgraphVoltage)
199 self.label_52 = QtGui.QLabel(self.tabgraphVoltage)
200 self.label_52.setObjectName(_fromUtf8("label_52"))
200 self.label_52.setObjectName(_fromUtf8("label_52"))
201 self.gridLayout_6.addWidget(self.label_52, 11, 0, 1, 1)
201 self.gridLayout_6.addWidget(self.label_52, 11, 0, 1, 1)
202 spacerItem6 = QtGui.QSpacerItem(40, 12, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
202 spacerItem6 = QtGui.QSpacerItem(40, 12, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
203 self.gridLayout_6.addItem(spacerItem6, 14, 5, 1, 2)
203 self.gridLayout_6.addItem(spacerItem6, 14, 5, 1, 2)
204 spacerItem7 = QtGui.QSpacerItem(18, 12, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
204 spacerItem7 = QtGui.QSpacerItem(18, 12, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
205 self.gridLayout_6.addItem(spacerItem7, 14, 3, 1, 1)
205 self.gridLayout_6.addItem(spacerItem7, 14, 3, 1, 1)
206 self.volGraphChannelList = QtGui.QLineEdit(self.tabgraphVoltage)
206 self.volGraphChannelList = QtGui.QLineEdit(self.tabgraphVoltage)
207 self.volGraphChannelList.setObjectName(_fromUtf8("volGraphChannelList"))
207 self.volGraphChannelList.setObjectName(_fromUtf8("volGraphChannelList"))
208 self.gridLayout_6.addWidget(self.volGraphChannelList, 8, 1, 1, 6)
208 self.gridLayout_6.addWidget(self.volGraphChannelList, 8, 1, 1, 6)
209 self.volGraphHeightrange = QtGui.QLineEdit(self.tabgraphVoltage)
209 self.volGraphHeightrange = QtGui.QLineEdit(self.tabgraphVoltage)
210 self.volGraphHeightrange.setObjectName(_fromUtf8("volGraphHeightrange"))
210 self.volGraphHeightrange.setObjectName(_fromUtf8("volGraphHeightrange"))
211 self.gridLayout_6.addWidget(self.volGraphHeightrange, 11, 1, 1, 6)
211 self.gridLayout_6.addWidget(self.volGraphHeightrange, 11, 1, 1, 6)
212 self.label_50 = QtGui.QLabel(self.tabgraphVoltage)
212 self.label_50 = QtGui.QLabel(self.tabgraphVoltage)
213 self.label_50.setObjectName(_fromUtf8("label_50"))
213 self.label_50.setObjectName(_fromUtf8("label_50"))
214 self.gridLayout_6.addWidget(self.label_50, 4, 4, 1, 1)
214 self.gridLayout_6.addWidget(self.label_50, 4, 4, 1, 1)
215 self.volGraphCebSave = QtGui.QCheckBox(self.tabgraphVoltage)
215 self.volGraphCebSave = QtGui.QCheckBox(self.tabgraphVoltage)
216 self.volGraphCebSave.setText(_fromUtf8(""))
216 self.volGraphCebSave.setText(_fromUtf8(""))
217 self.volGraphCebSave.setObjectName(_fromUtf8("volGraphCebSave"))
217 self.volGraphCebSave.setObjectName(_fromUtf8("volGraphCebSave"))
218 self.gridLayout_6.addWidget(self.volGraphCebSave, 6, 4, 1, 1)
218 self.gridLayout_6.addWidget(self.volGraphCebSave, 6, 4, 1, 1)
219 self.tabWidgetVoltage.addTab(self.tabgraphVoltage, _fromUtf8(""))
219 self.tabWidgetVoltage.addTab(self.tabgraphVoltage, _fromUtf8(""))
220
220
221 self.taboutputVoltage = QtGui.QWidget()
221 self.taboutputVoltage = QtGui.QWidget()
222 self.taboutputVoltage.setObjectName(_fromUtf8("taboutputVoltage"))
222 self.taboutputVoltage.setObjectName(_fromUtf8("taboutputVoltage"))
223 self.gridLayout_12 = QtGui.QGridLayout(self.taboutputVoltage)
223 self.gridLayout_12 = QtGui.QGridLayout(self.taboutputVoltage)
224 self.gridLayout_12.setObjectName(_fromUtf8("gridLayout_12"))
224 self.gridLayout_12.setObjectName(_fromUtf8("gridLayout_12"))
225 self.label_36 = QtGui.QLabel(self.taboutputVoltage)
225 self.label_36 = QtGui.QLabel(self.taboutputVoltage)
226 self.label_36.setObjectName(_fromUtf8("label_36"))
226 self.label_36.setObjectName(_fromUtf8("label_36"))
227 self.gridLayout_12.addWidget(self.label_36, 0, 0, 1, 1)
227 self.gridLayout_12.addWidget(self.label_36, 0, 0, 1, 1)
228 self.label_37 = QtGui.QLabel(self.taboutputVoltage)
228 self.label_37 = QtGui.QLabel(self.taboutputVoltage)
229 self.label_37.setObjectName(_fromUtf8("label_37"))
229 self.label_37.setObjectName(_fromUtf8("label_37"))
230 self.gridLayout_12.addWidget(self.label_37, 1, 0, 1, 1)
230 self.gridLayout_12.addWidget(self.label_37, 1, 0, 1, 1)
231 self.volOutputPath = QtGui.QLineEdit(self.taboutputVoltage)
231 self.volOutputPath = QtGui.QLineEdit(self.taboutputVoltage)
232 self.volOutputPath.setObjectName(_fromUtf8("volOutputPath"))
232 self.volOutputPath.setObjectName(_fromUtf8("volOutputPath"))
233 self.gridLayout_12.addWidget(self.volOutputPath, 1, 2, 1, 1)
233 self.gridLayout_12.addWidget(self.volOutputPath, 1, 2, 1, 1)
234 self.volOutputToolPath = QtGui.QToolButton(self.taboutputVoltage)
234 self.volOutputToolPath = QtGui.QToolButton(self.taboutputVoltage)
235 self.volOutputToolPath.setObjectName(_fromUtf8("volOutputToolPath"))
235 self.volOutputToolPath.setObjectName(_fromUtf8("volOutputToolPath"))
236 self.gridLayout_12.addWidget(self.volOutputToolPath, 1, 3, 1, 1)
236 self.gridLayout_12.addWidget(self.volOutputToolPath, 1, 3, 1, 1)
237 self.volOutputComData = QtGui.QComboBox(self.taboutputVoltage)
237 self.volOutputComData = QtGui.QComboBox(self.taboutputVoltage)
238 self.volOutputComData.setObjectName(_fromUtf8("volOutputComData"))
238 self.volOutputComData.setObjectName(_fromUtf8("volOutputComData"))
239 self.volOutputComData.addItem(_fromUtf8(""))
239 self.volOutputComData.addItem(_fromUtf8(""))
240 self.gridLayout_12.addWidget(self.volOutputComData, 0, 2, 1, 2)
240 self.gridLayout_12.addWidget(self.volOutputComData, 0, 2, 1, 2)
241 spacerItem8 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
241 spacerItem8 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
242 self.gridLayout_12.addItem(spacerItem8, 5, 2, 1, 1)
242 self.gridLayout_12.addItem(spacerItem8, 5, 2, 1, 1)
243 self.volOutputblocksperfile = QtGui.QLineEdit(self.taboutputVoltage)
243 self.volOutputblocksperfile = QtGui.QLineEdit(self.taboutputVoltage)
244 self.volOutputblocksperfile.setObjectName(_fromUtf8("volOutputblocksperfile"))
244 self.volOutputblocksperfile.setObjectName(_fromUtf8("volOutputblocksperfile"))
245 self.gridLayout_12.addWidget(self.volOutputblocksperfile, 3, 2, 1, 1)
245 self.gridLayout_12.addWidget(self.volOutputblocksperfile, 3, 2, 1, 1)
246 self.label_7 = QtGui.QLabel(self.taboutputVoltage)
246 self.label_7 = QtGui.QLabel(self.taboutputVoltage)
247 self.label_7.setObjectName(_fromUtf8("label_7"))
247 self.label_7.setObjectName(_fromUtf8("label_7"))
248 self.gridLayout_12.addWidget(self.label_7, 3, 0, 1, 1)
248 self.gridLayout_12.addWidget(self.label_7, 3, 0, 1, 1)
249 self.label_35 = QtGui.QLabel(self.taboutputVoltage)
249 self.label_35 = QtGui.QLabel(self.taboutputVoltage)
250 self.label_35.setObjectName(_fromUtf8("label_35"))
250 self.label_35.setObjectName(_fromUtf8("label_35"))
251 self.gridLayout_12.addWidget(self.label_35, 4, 0, 1, 1)
251 self.gridLayout_12.addWidget(self.label_35, 4, 0, 1, 1)
252 self.volOutputprofilesperblock = QtGui.QLineEdit(self.taboutputVoltage)
252 self.volOutputprofilesperblock = QtGui.QLineEdit(self.taboutputVoltage)
253 self.volOutputprofilesperblock.setObjectName(_fromUtf8("volOutputprofilesperblock"))
253 self.volOutputprofilesperblock.setObjectName(_fromUtf8("volOutputprofilesperblock"))
254 self.gridLayout_12.addWidget(self.volOutputprofilesperblock, 4, 2, 1, 1)
254 self.gridLayout_12.addWidget(self.volOutputprofilesperblock, 4, 2, 1, 1)
255 self.tabWidgetVoltage.addTab(self.taboutputVoltage, _fromUtf8(""))
255 self.tabWidgetVoltage.addTab(self.taboutputVoltage, _fromUtf8(""))
256 self.gridLayout_3.addWidget(self.tabWidgetVoltage, 0, 1, 1, 1)
256 self.gridLayout_3.addWidget(self.tabWidgetVoltage, 0, 1, 1, 1)
257
257
258 self.tabWidgetProject.addTab(self.tabVoltage, _fromUtf8(""))
258 self.tabWidgetProject.addTab(self.tabVoltage, _fromUtf8(""))
259
259
260 self.tabWidgetVoltage.setCurrentIndex(0)
260 self.tabWidgetVoltage.setCurrentIndex(0)
261
261
262 def retranslateUi(self):
262 def retranslateUi(self):
263
263
264 self.volOpOk.setText(_translate("MainWindow", "Ok", None))
264 self.volOpOk.setText(_translate("MainWindow", "Ok", None))
265 self.volGraphClear.setText(_translate("MainWindow", "Clear", None))
265 self.volGraphClear.setText(_translate("MainWindow", "Clear", None))
266 self.volOpComHeights.setItemText(0, _translate("MainWindow", "Value", None))
266 self.volOpComHeights.setItemText(0, _translate("MainWindow", "Value", None))
267 self.volOpComHeights.setItemText(1, _translate("MainWindow", "Index", None))
267 self.volOpComHeights.setItemText(1, _translate("MainWindow", "Index", None))
268 self.volOpComChannels.setItemText(0, _translate("MainWindow", "Value", None))
268 self.volOpComChannels.setItemText(0, _translate("MainWindow", "Value", None))
269 self.volOpComChannels.setItemText(1, _translate("MainWindow", "Index", None))
269 self.volOpComChannels.setItemText(1, _translate("MainWindow", "Index", None))
270 self.volOpCebProfile.setText(_translate("MainWindow", "Profile Selector", None))
270 self.volOpCebProfile.setText(_translate("MainWindow", "Profile Selector", None))
271 self.volOpComProfile.setItemText(0, _translate("MainWindow", "Profile List", None))
271 self.volOpComProfile.setItemText(0, _translate("MainWindow", "Profile List", None))
272 self.volOpComProfile.setItemText(1, _translate("MainWindow", "Profile Range", None))
272 self.volOpComProfile.setItemText(1, _translate("MainWindow", "Profile Range", None))
273 self.volOpComProfile.setItemText(2, _translate("MainWindow", "List of Profile Ranges", None))
273 self.volOpComProfile.setItemText(2, _translate("MainWindow", "List of Profile Ranges", None))
274 self.volOpCebDecodification.setText(_translate("MainWindow", "Decoder", None))
274 self.volOpCebDecodification.setText(_translate("MainWindow", "Decoder", None))
275 self.volOpCebCohInt.setText(_translate("MainWindow", "Coherent Integration", None))
275 self.volOpCebCohInt.setText(_translate("MainWindow", "Coherent Integration", None))
276 self.volOpCebFlip.setText(_translate("MainWindow", "Flip", None))
276 self.volOpCebFlip.setText(_translate("MainWindow", "Flip", None))
277 self.volLabCodeType.setText(_translate("MainWindow", "Code type:", None))
277 self.volLabCodeType.setText(_translate("MainWindow", "Code type:", None))
278 self.volOpCebChannels.setText(_translate("MainWindow", "Select Channels", None))
278 self.volOpCebChannels.setText(_translate("MainWindow", "Select Channels", None))
279 self.volOpCebHeights.setText(_translate("MainWindow", "Select Heights", None))
279 self.volOpCebHeights.setText(_translate("MainWindow", "Select Heights", None))
280 self.volOpCebFilter.setText(_translate("MainWindow", "Filter", None))
280 self.volOpCebFilter.setText(_translate("MainWindow", "Filter", None))
281 self.volOpCebRadarfrequency.setText(_translate("MainWindow", "Radar wavelength", None))
281 self.volOpCebRadarfrequency.setText(_translate("MainWindow", "Radar frequency (MHz)", None))
282 self.volLabCodeMode.setText(_translate("MainWindow", "Mode:", None))
282 self.volLabCodeMode.setText(_translate("MainWindow", "Mode:", None))
283 self.volLabCode.setText(_translate("MainWindow", "Code:", None))
283 self.volLabCode.setText(_translate("MainWindow", "Code:", None))
284 self.volOpComCode.setItemText(0, _translate("MainWindow", "Read from header", None))
284 self.volOpComCode.setItemText(0, _translate("MainWindow", "Read from header", None))
285 self.volOpComCode.setItemText(1, _translate("MainWindow", "Barker 3", None))
285 self.volOpComCode.setItemText(1, _translate("MainWindow", "Barker 3", None))
286 self.volOpComCode.setItemText(2, _translate("MainWindow", "Barker 4", None))
286 self.volOpComCode.setItemText(2, _translate("MainWindow", "Barker 4", None))
287 self.volOpComCode.setItemText(3, _translate("MainWindow", "Barker 5", None))
287 self.volOpComCode.setItemText(3, _translate("MainWindow", "Barker 5", None))
288 self.volOpComCode.setItemText(4, _translate("MainWindow", "Barker 7", None))
288 self.volOpComCode.setItemText(4, _translate("MainWindow", "Barker 7", None))
289 self.volOpComCode.setItemText(5, _translate("MainWindow", "Barker 11", None))
289 self.volOpComCode.setItemText(5, _translate("MainWindow", "Barker 11", None))
290 self.volOpComCode.setItemText(6, _translate("MainWindow", "Barker 13", None))
290 self.volOpComCode.setItemText(6, _translate("MainWindow", "Barker 13", None))
291 self.volOpComCode.setItemText(7, _translate("MainWindow", "Barker 3 + Comp.", None))
291 self.volOpComCode.setItemText(7, _translate("MainWindow", "Barker 3 + Comp.", None))
292 self.volOpComCode.setItemText(8, _translate("MainWindow", "Barker 4 + Comp.", None))
292 self.volOpComCode.setItemText(8, _translate("MainWindow", "Barker 4 + Comp.", None))
293 self.volOpComCode.setItemText(9, _translate("MainWindow", "Barker 5 + Comp.", None))
293 self.volOpComCode.setItemText(9, _translate("MainWindow", "Barker 5 + Comp.", None))
294 self.volOpComCode.setItemText(10, _translate("MainWindow", "Barker 7 + Comp.", None))
294 self.volOpComCode.setItemText(10, _translate("MainWindow", "Barker 7 + Comp.", None))
295 self.volOpComCode.setItemText(11, _translate("MainWindow", "Barker 11+ Comp.", None))
295 self.volOpComCode.setItemText(11, _translate("MainWindow", "Barker 11+ Comp.", None))
296 self.volOpComCode.setItemText(12, _translate("MainWindow", "Barker 13+ Comp.", None))
296 self.volOpComCode.setItemText(12, _translate("MainWindow", "Barker 13+ Comp.", None))
297 self.volOpComCode.setItemText(13, _translate("MainWindow", "User defined", None))
297 self.volOpComCode.setItemText(13, _translate("MainWindow", "User defined", None))
298 self.volOpComMode.setItemText(0, _translate("MainWindow", "Time", None))
298 self.volOpComMode.setItemText(0, _translate("MainWindow", "Time", None))
299 self.volOpComMode.setItemText(1, _translate("MainWindow", "Frequency", None))
299 self.volOpComMode.setItemText(1, _translate("MainWindow", "Frequency", None))
300 self.tabWidgetVoltage.setTabText(self.tabWidgetVoltage.indexOf(self.tabopVoltage), _translate("MainWindow", "Operation", None))
300 self.tabWidgetVoltage.setTabText(self.tabWidgetVoltage.indexOf(self.tabopVoltage), _translate("MainWindow", "Operation", None))
301
301
302 self.volGraphToolPath.setText(_translate("MainWindow", "...", None))
302 self.volGraphToolPath.setText(_translate("MainWindow", "...", None))
303 self.label_14.setText(_translate("MainWindow", "Scope", None))
303 self.label_14.setText(_translate("MainWindow", "Scope", None))
304 self.label_8.setText(_translate("MainWindow", "Channel List", None))
304 self.label_8.setText(_translate("MainWindow", "Channel List", None))
305 self.label_49.setText(_translate("MainWindow", "Show", None))
305 self.label_49.setText(_translate("MainWindow", "Show", None))
306 self.label_51.setText(_translate("MainWindow", "Height range", None))
306 self.label_51.setText(_translate("MainWindow", "Height range", None))
307 self.label_12.setText(_translate("MainWindow", "Path :", None))
307 self.label_12.setText(_translate("MainWindow", "Path :", None))
308 self.label_13.setText(_translate("MainWindow", "Figure name:", None))
308 self.label_13.setText(_translate("MainWindow", "Figure name:", None))
309 self.label_52.setText(_translate("MainWindow", "Amplitude", None))
309 self.label_52.setText(_translate("MainWindow", "Amplitude", None))
310 self.label_50.setText(_translate("MainWindow", "Save", None))
310 self.label_50.setText(_translate("MainWindow", "Save", None))
311 self.tabWidgetVoltage.setTabText(self.tabWidgetVoltage.indexOf(self.tabgraphVoltage), _translate("MainWindow", "Graphics", None))
311 self.tabWidgetVoltage.setTabText(self.tabWidgetVoltage.indexOf(self.tabgraphVoltage), _translate("MainWindow", "Graphics", None))
312
312
313 self.label_36.setText(_translate("MainWindow", "Type:", None))
313 self.label_36.setText(_translate("MainWindow", "Type:", None))
314 self.label_37.setText(_translate("MainWindow", "Path:", None))
314 self.label_37.setText(_translate("MainWindow", "Path:", None))
315 self.volOutputToolPath.setText(_translate("MainWindow", "...", None))
315 self.volOutputToolPath.setText(_translate("MainWindow", "...", None))
316 self.volOutputComData.setItemText(0, _translate("MainWindow", ".rawdata", None))
316 self.volOutputComData.setItemText(0, _translate("MainWindow", ".rawdata", None))
317 self.label_7.setText(_translate("MainWindow", "Blocks per File : ", None))
317 self.label_7.setText(_translate("MainWindow", "Blocks per File : ", None))
318 self.label_35.setText(_translate("MainWindow", "Profiles per Block: ", None))
318 self.label_35.setText(_translate("MainWindow", "Profiles per Block: ", None))
319 self.tabWidgetVoltage.setTabText(self.tabWidgetVoltage.indexOf(self.taboutputVoltage), _translate("MainWindow", "Output", None))
319 self.tabWidgetVoltage.setTabText(self.tabWidgetVoltage.indexOf(self.taboutputVoltage), _translate("MainWindow", "Output", None))
320
320
321 self.tabWidgetProject.setTabText(self.tabWidgetProject.indexOf(self.tabVoltage), _translate("MainWindow", "Voltage", None))
321 self.tabWidgetProject.setTabText(self.tabWidgetProject.indexOf(self.tabVoltage), _translate("MainWindow", "Voltage", None))
322
322
323
323
324 No newline at end of file
324
@@ -1,581 +1,583
1 '''
1 '''
2 Created on Jul 3, 2014
2 Created on Jul 3, 2014
3
3
4 @author: roj-idl71
4 @author: roj-idl71
5 '''
5 '''
6 import datetime
6 import datetime
7 import numpy
7 import numpy
8
8
9 try:
9 try:
10 from gevent import sleep
10 from gevent import sleep
11 except:
11 except:
12 from time import sleep
12 from time import sleep
13
13
14 from schainpy.model.data.jroheaderIO import RadarControllerHeader, SystemHeader
14 from schainpy.model.data.jroheaderIO import RadarControllerHeader, SystemHeader
15 from schainpy.model.data.jrodata import Voltage
15 from schainpy.model.data.jrodata import Voltage
16 from schainpy.model.proc.jroproc_base import ProcessingUnit, Operation
16 from schainpy.model.proc.jroproc_base import ProcessingUnit, Operation
17
17
18 try:
18 try:
19 import digital_rf_hdf5
19 import digital_rf_hdf5
20 except:
20 except:
21 print 'You should install "digital_rf_hdf5" module if you want to read USRP data'
21 print 'You should install "digital_rf_hdf5" module if you want to read USRP data'
22
22
23 class USRPReader(ProcessingUnit):
23 class USRPReader(ProcessingUnit):
24 '''
24 '''
25 classdocs
25 classdocs
26 '''
26 '''
27
27
28 def __init__(self):
28 def __init__(self):
29 '''
29 '''
30 Constructor
30 Constructor
31 '''
31 '''
32
32
33 ProcessingUnit.__init__(self)
33 ProcessingUnit.__init__(self)
34
34
35 self.dataOut = Voltage()
35 self.dataOut = Voltage()
36 self.__printInfo = True
36 self.__printInfo = True
37 self.__flagDiscontinuousBlock = False
37 self.__flagDiscontinuousBlock = False
38 self.__bufferIndex = 9999999
38 self.__bufferIndex = 9999999
39
39
40 self.__ippKm = None
40 self.__ippKm = None
41 self.__codeType = 0
41 self.__codeType = 0
42 self.__nCode = None
42 self.__nCode = None
43 self.__nBaud = None
43 self.__nBaud = None
44 self.__code = None
44 self.__code = None
45
45
46 def __getCurrentSecond(self):
46 def __getCurrentSecond(self):
47
47
48 return self.__thisUnixSample/self.__sample_rate
48 return self.__thisUnixSample/self.__sample_rate
49
49
50 thisSecond = property(__getCurrentSecond, "I'm the 'thisSecond' property.")
50 thisSecond = property(__getCurrentSecond, "I'm the 'thisSecond' property.")
51
51
52 def __setFileHeader(self):
52 def __setFileHeader(self):
53 '''
53 '''
54 In this method will be initialized every parameter of dataOut object (header, no data)
54 In this method will be initialized every parameter of dataOut object (header, no data)
55 '''
55 '''
56 nProfiles = self.__sample_rate #Number of profiles by second
56 nProfiles = self.__sample_rate #Number of profiles by second
57
57
58 self.dataOut.radarControllerHeaderObj = RadarControllerHeader(ippKm=self.__ippKm,
58 self.dataOut.radarControllerHeaderObj = RadarControllerHeader(ippKm=self.__ippKm,
59 txA=0,
59 txA=0,
60 txB=0,
60 txB=0,
61 nWindows=1,
61 nWindows=1,
62 nHeights=self.__nSamples,
62 nHeights=self.__nSamples,
63 firstHeight=self.__firstHeigth,
63 firstHeight=self.__firstHeigth,
64 deltaHeight=self.__deltaHeigth,
64 deltaHeight=self.__deltaHeigth,
65 codeType=self.__codeType,
65 codeType=self.__codeType,
66 nCode=self.__nCode, nBaud=self.__nBaud,
66 nCode=self.__nCode, nBaud=self.__nBaud,
67 code = self.__code)
67 code = self.__code)
68
68
69 self.dataOut.systemHeaderObj = SystemHeader(nSamples=self.__nSamples,
69 self.dataOut.systemHeaderObj = SystemHeader(nSamples=self.__nSamples,
70 nProfiles=nProfiles,
70 nProfiles=nProfiles,
71 nChannels=len(self.__channelList),
71 nChannels=len(self.__channelList),
72 adcResolution=14)
72 adcResolution=14)
73
73
74 self.dataOut.type = "Voltage"
74 self.dataOut.type = "Voltage"
75
75
76 self.dataOut.data = None
76 self.dataOut.data = None
77
77
78 self.dataOut.dtype = numpy.dtype([('real','<i8'),('imag','<i8')])
78 self.dataOut.dtype = numpy.dtype([('real','<i8'),('imag','<i8')])
79
79
80 # self.dataOut.nChannels = 0
80 # self.dataOut.nChannels = 0
81
81
82 # self.dataOut.nHeights = 0
82 # self.dataOut.nHeights = 0
83
83
84 self.dataOut.nProfiles = nProfiles
84 self.dataOut.nProfiles = nProfiles
85
85
86 self.dataOut.heightList = self.__firstHeigth + numpy.arange(self.__nSamples, dtype = numpy.float)*self.__deltaHeigth
86 self.dataOut.heightList = self.__firstHeigth + numpy.arange(self.__nSamples, dtype = numpy.float)*self.__deltaHeigth
87
87
88 self.dataOut.channelList = self.__channelList
88 self.dataOut.channelList = self.__channelList
89
89
90 self.dataOut.blocksize = self.dataOut.getNChannels() * self.dataOut.getNHeights()
90 self.dataOut.blocksize = self.dataOut.getNChannels() * self.dataOut.getNHeights()
91
91
92 # self.dataOut.channelIndexList = None
92 # self.dataOut.channelIndexList = None
93
93
94 self.dataOut.flagNoData = True
94 self.dataOut.flagNoData = True
95
95
96 #Set to TRUE if the data is discontinuous
96 #Set to TRUE if the data is discontinuous
97 self.dataOut.flagDiscontinuousBlock = False
97 self.dataOut.flagDiscontinuousBlock = False
98
98
99 self.dataOut.utctime = None
99 self.dataOut.utctime = None
100
100
101 self.dataOut.timeZone = self.__timezone/60 #timezone like jroheader, difference in minutes between UTC and localtime
101 self.dataOut.timeZone = self.__timezone/60 #timezone like jroheader, difference in minutes between UTC and localtime
102
102
103 self.dataOut.dstFlag = 0
103 self.dataOut.dstFlag = 0
104
104
105 self.dataOut.errorCount = 0
105 self.dataOut.errorCount = 0
106
106
107 self.dataOut.nCohInt = 1
107 self.dataOut.nCohInt = 1
108
108
109 self.dataOut.flagDecodeData = False #asumo que la data esta decodificada
109 self.dataOut.flagDecodeData = False #asumo que la data esta decodificada
110
110
111 self.dataOut.flagDeflipData = False #asumo que la data esta sin flip
111 self.dataOut.flagDeflipData = False #asumo que la data esta sin flip
112
112
113 self.dataOut.flagShiftFFT = False
113 self.dataOut.flagShiftFFT = False
114
114
115 self.dataOut.ippSeconds = 1.0*self.__nSamples/self.__sample_rate
115 self.dataOut.ippSeconds = 1.0*self.__nSamples/self.__sample_rate
116
116
117 #Time interval between profiles
117 #Time interval between profiles
118 #self.dataOut.timeInterval = self.dataOut.ippSeconds * self.dataOut.nCohInt
118 #self.dataOut.timeInterval = self.dataOut.ippSeconds * self.dataOut.nCohInt
119
119
120 self.dataOut.frequency = self.__frequency
120 self.dataOut.frequency = self.__frequency
121
121
122 self.dataOut.realtime = self.__online
122 self.dataOut.realtime = self.__online
123
123
124 def findDatafiles(self, path, startDate=None, endDate=None):
124 def findDatafiles(self, path, startDate=None, endDate=None):
125
125
126 try:
126 try:
127 digitalReadObj = digital_rf_hdf5.read_hdf5(path, load_all_metadata=True)
127 digitalReadObj = digital_rf_hdf5.read_hdf5(path, load_all_metadata=True)
128 except:
128 except:
129 digitalReadObj = digital_rf_hdf5.read_hdf5(path)
129 digitalReadObj = digital_rf_hdf5.read_hdf5(path)
130
130
131 channelNameList = digitalReadObj.get_channels()
131 channelNameList = digitalReadObj.get_channels()
132
132
133 if not channelNameList:
133 if not channelNameList:
134 return []
134 return []
135
135
136 metadata_dict = digitalReadObj.get_rf_file_metadata(channelNameList[0])
136 metadata_dict = digitalReadObj.get_rf_file_metadata(channelNameList[0])
137
137
138 sample_rate = metadata_dict['sample_rate'][0]
138 sample_rate = metadata_dict['sample_rate'][0]
139
139
140 this_metadata_file = digitalReadObj.get_metadata(channelNameList[0])
140 this_metadata_file = digitalReadObj.get_metadata(channelNameList[0])
141
141
142 try:
142 try:
143 timezone = this_metadata_file['timezone'].value
143 timezone = this_metadata_file['timezone'].value
144 except:
144 except:
145 timezone = 0
145 timezone = 0
146
146
147 startUTCSecond, endUTCSecond = digitalReadObj.get_bounds(channelNameList[0])/sample_rate - timezone
147 startUTCSecond, endUTCSecond = digitalReadObj.get_bounds(channelNameList[0])/sample_rate - timezone
148
148
149 startDatetime = datetime.datetime.utcfromtimestamp(startUTCSecond)
149 startDatetime = datetime.datetime.utcfromtimestamp(startUTCSecond)
150 endDatatime = datetime.datetime.utcfromtimestamp(endUTCSecond)
150 endDatatime = datetime.datetime.utcfromtimestamp(endUTCSecond)
151
151
152 if not startDate:
152 if not startDate:
153 startDate = startDatetime.date()
153 startDate = startDatetime.date()
154
154
155 if not endDate:
155 if not endDate:
156 endDate = endDatatime.date()
156 endDate = endDatatime.date()
157
157
158 dateList = []
158 dateList = []
159
159
160 thisDatetime = startDatetime
160 thisDatetime = startDatetime
161
161
162 while(thisDatetime<=endDatatime):
162 while(thisDatetime<=endDatatime):
163
163
164 thisDate = thisDatetime.date()
164 thisDate = thisDatetime.date()
165
165
166 if thisDate < startDate:
166 if thisDate < startDate:
167 continue
167 continue
168
168
169 if thisDate > endDate:
169 if thisDate > endDate:
170 break
170 break
171
171
172 dateList.append(thisDate)
172 dateList.append(thisDate)
173 thisDatetime += datetime.timedelta(1)
173 thisDatetime += datetime.timedelta(1)
174
174
175 return dateList
175 return dateList
176
176
177 def setup(self, path = None,
177 def setup(self, path = None,
178 startDate = None,
178 startDate = None,
179 endDate = None,
179 endDate = None,
180 startTime = datetime.time(0,0,0),
180 startTime = datetime.time(0,0,0),
181 endTime = datetime.time(23,59,59),
181 endTime = datetime.time(23,59,59),
182 channelList = None,
182 channelList = None,
183 nSamples = None,
183 nSamples = None,
184 ippKm = 60,
184 ippKm = 60,
185 online = False,
185 online = False,
186 delay = 60,
186 delay = 60,
187 buffer_size = None,
187 buffer_size = None,
188 nbuffer = 1024,
188 nbuffer = 1024,
189 **kwargs):
189 **kwargs):
190 '''
190 '''
191 In this method we should set all initial parameters.
191 In this method we should set all initial parameters.
192
192
193 Inputs:
193 Inputs:
194 path
194 path
195 startDate
195 startDate
196 endDate
196 endDate
197 startTime
197 startTime
198 endTime
198 endTime
199 set
199 set
200 expLabel
200 expLabel
201 ext
201 ext
202 online
202 online
203 delay
203 delay
204 '''
204 '''
205
205
206 if not buffer_size:
206 if not buffer_size:
207 buffer_size = nbuffer
207 buffer_size = nbuffer
208
208
209 try:
209 try:
210 self.digitalReadObj = digital_rf_hdf5.read_hdf5(path, load_all_metadata=True)
210 self.digitalReadObj = digital_rf_hdf5.read_hdf5(path, load_all_metadata=True)
211 except:
211 except:
212 self.digitalReadObj = digital_rf_hdf5.read_hdf5(path)
212 self.digitalReadObj = digital_rf_hdf5.read_hdf5(path)
213
213
214 channelNameList = self.digitalReadObj.get_channels()
214 channelNameList = self.digitalReadObj.get_channels()
215
215
216 if not channelNameList:
216 if not channelNameList:
217 raise IOError, "[Reading] The path doesn,t have any files .. "
217 raise IOError, "[Reading] The path doesn,t have any files .. "
218
218
219 if not channelList:
219 if not channelList:
220 channelList = range(len(channelNameList))
220 channelList = range(len(channelNameList))
221
221
222 ########## Reading metadata ######################
222 ########## Reading metadata ######################
223
223
224 metadata_dict = self.digitalReadObj.get_rf_file_metadata(channelNameList[channelList[0]])
224 metadata_dict = self.digitalReadObj.get_rf_file_metadata(channelNameList[channelList[0]])
225
225
226 self.__sample_rate = metadata_dict['sample_rate'][0]
226 self.__sample_rate = metadata_dict['sample_rate'][0]
227 self.__samples_per_file = metadata_dict['samples_per_file'][0]
227 self.__samples_per_file = metadata_dict['samples_per_file'][0]
228 self.__deltaHeigth = 1e6*0.15/self.__sample_rate
228 self.__deltaHeigth = 1e6*0.15/self.__sample_rate
229
229
230 this_metadata_file = self.digitalReadObj.get_metadata(channelNameList[channelList[0]])
230 this_metadata_file = self.digitalReadObj.get_metadata(channelNameList[channelList[0]])
231
231
232 self.__frequency = this_metadata_file['center_frequencies'].value
232 self.__frequency = this_metadata_file['center_frequencies'].value
233 try:
233 try:
234 self.__timezone = this_metadata_file['timezone'].value
234 self.__timezone = this_metadata_file['timezone'].value
235 except:
235 except:
236 self.__timezone = 0
236 self.__timezone = 0
237
237
238 self.__firstHeigth = 0
238 self.__firstHeigth = 0
239
239
240 try:
240 try:
241 codeType = this_metadata_file['codeType'].value
241 codeType = this_metadata_file['codeType'].value
242 except:
242 except:
243 codeType = 0
243 codeType = 0
244
244
245 nCode = 0
245 nCode = 0
246 nBaud = 0
246 nBaud = 0
247 code = None
247 code = None
248
248
249 if codeType:
249 if codeType:
250 nCode = this_metadata_file['nCode'].value
250 nCode = this_metadata_file['nCode'].value
251 nBaud = this_metadata_file['nBaud'].value
251 nBaud = this_metadata_file['nBaud'].value
252 code = this_metadata_file['code'].value
252 code = this_metadata_file['code'].value
253
253
254 if not ippKm:
254 if not ippKm:
255 try:
255 try:
256 #seconds to km
256 #seconds to km
257 ippKm = 1e6*0.15*this_metadata_file['ipp'].value
257 ippKm = 1e6*0.15*this_metadata_file['ipp'].value
258 except:
258 except:
259 ippKm = None
259 ippKm = None
260
260
261 ####################################################
261 ####################################################
262 startUTCSecond = None
262 startUTCSecond = None
263 endUTCSecond = None
263 endUTCSecond = None
264
264
265 if startDate:
265 if startDate:
266 startDatetime = datetime.datetime.combine(startDate, startTime)
266 startDatetime = datetime.datetime.combine(startDate, startTime)
267 startUTCSecond = (startDatetime-datetime.datetime(1970,1,1)).total_seconds() + self.__timezone
267 startUTCSecond = (startDatetime-datetime.datetime(1970,1,1)).total_seconds() + self.__timezone
268
268
269 if endDate:
269 if endDate:
270 endDatetime = datetime.datetime.combine(endDate, endTime)
270 endDatetime = datetime.datetime.combine(endDate, endTime)
271 endUTCSecond = (endDatetime-datetime.datetime(1970,1,1)).total_seconds() + self.__timezone
271 endUTCSecond = (endDatetime-datetime.datetime(1970,1,1)).total_seconds() + self.__timezone
272
272
273 start_index, end_index = self.digitalReadObj.get_bounds(channelNameList[channelList[0]])
273 start_index, end_index = self.digitalReadObj.get_bounds(channelNameList[channelList[0]])
274
274
275 if not startUTCSecond:
275 if not startUTCSecond:
276 startUTCSecond = start_index/self.__sample_rate
276 startUTCSecond = start_index/self.__sample_rate
277
277
278 if start_index > startUTCSecond*self.__sample_rate:
278 if start_index > startUTCSecond*self.__sample_rate:
279 startUTCSecond = start_index/self.__sample_rate
279 startUTCSecond = start_index/self.__sample_rate
280
280
281 if not endUTCSecond:
281 if not endUTCSecond:
282 endUTCSecond = end_index/self.__sample_rate
282 endUTCSecond = end_index/self.__sample_rate
283
283
284 if end_index < endUTCSecond*self.__sample_rate:
284 if end_index < endUTCSecond*self.__sample_rate:
285 endUTCSecond = end_index/self.__sample_rate
285 endUTCSecond = end_index/self.__sample_rate
286
286
287 if not nSamples:
287 if not nSamples:
288 if not ippKm:
288 if not ippKm:
289 raise ValueError, "[Reading] nSamples or ippKm should be defined"
289 raise ValueError, "[Reading] nSamples or ippKm should be defined"
290
290
291 nSamples = ippKm / (1e6*0.15/self.__sample_rate)
291 nSamples = ippKm / (1e6*0.15/self.__sample_rate)
292
292
293 channelBoundList = []
293 channelBoundList = []
294 channelNameListFiltered = []
294 channelNameListFiltered = []
295
295
296 for thisIndexChannel in channelList:
296 for thisIndexChannel in channelList:
297 thisChannelName = channelNameList[thisIndexChannel]
297 thisChannelName = channelNameList[thisIndexChannel]
298 start_index, end_index = self.digitalReadObj.get_bounds(thisChannelName)
298 start_index, end_index = self.digitalReadObj.get_bounds(thisChannelName)
299 channelBoundList.append((start_index, end_index))
299 channelBoundList.append((start_index, end_index))
300 channelNameListFiltered.append(thisChannelName)
300 channelNameListFiltered.append(thisChannelName)
301
301
302 self.profileIndex = 0
302 self.profileIndex = 0
303
303
304 self.__delay = delay
304 self.__delay = delay
305 self.__ippKm = ippKm
305 self.__ippKm = ippKm
306 self.__codeType = codeType
306 self.__codeType = codeType
307 self.__nCode = nCode
307 self.__nCode = nCode
308 self.__nBaud = nBaud
308 self.__nBaud = nBaud
309 self.__code = code
309 self.__code = code
310
310
311 self.__datapath = path
311 self.__datapath = path
312 self.__online = online
312 self.__online = online
313 self.__channelList = channelList
313 self.__channelList = channelList
314 self.__channelNameList = channelNameListFiltered
314 self.__channelNameList = channelNameListFiltered
315 self.__channelBoundList = channelBoundList
315 self.__channelBoundList = channelBoundList
316 self.__nSamples = nSamples
316 self.__nSamples = nSamples
317 self.__samples_to_read = buffer_size*nSamples
317 self.__samples_to_read = buffer_size*nSamples
318 self.__nChannels = len(self.__channelList)
318 self.__nChannels = len(self.__channelList)
319
319
320 self.__startUTCSecond = startUTCSecond
320 self.__startUTCSecond = startUTCSecond
321 self.__endUTCSecond = endUTCSecond
321 self.__endUTCSecond = endUTCSecond
322
322
323 self.__timeInterval = 1.0 * self.__samples_to_read/self.__sample_rate #Time interval
323 self.__timeInterval = 1.0 * self.__samples_to_read/self.__sample_rate #Time interval
324
324
325 if online:
325 if online:
326 # self.__thisUnixSample = int(endUTCSecond*self.__sample_rate - 4*self.__samples_to_read)
326 # self.__thisUnixSample = int(endUTCSecond*self.__sample_rate - 4*self.__samples_to_read)
327 startUTCSecond = numpy.floor(endUTCSecond)
327 startUTCSecond = numpy.floor(endUTCSecond)
328
328
329 self.__thisUnixSample = int(startUTCSecond*self.__sample_rate) - self.__samples_to_read
329 self.__thisUnixSample = int(startUTCSecond*self.__sample_rate) - self.__samples_to_read
330
330
331 self.__data_buffer = numpy.zeros((self.__nChannels, self.__samples_to_read), dtype = numpy.complex)
331 self.__data_buffer = numpy.zeros((self.__nChannels, self.__samples_to_read), dtype = numpy.complex)
332
332
333 self.__setFileHeader()
333 self.__setFileHeader()
334 self.isConfig = True
334 self.isConfig = True
335
335
336 print "[Reading] USRP Data was found from %s to %s " %(
336 print "[Reading] USRP Data was found from %s to %s " %(
337 datetime.datetime.utcfromtimestamp(self.__startUTCSecond - self.__timezone),
337 datetime.datetime.utcfromtimestamp(self.__startUTCSecond - self.__timezone),
338 datetime.datetime.utcfromtimestamp(self.__endUTCSecond - self.__timezone)
338 datetime.datetime.utcfromtimestamp(self.__endUTCSecond - self.__timezone)
339 )
339 )
340
340
341 print "[Reading] Starting process from ", datetime.datetime.utcfromtimestamp(startUTCSecond - self.__timezone), " to ", datetime.datetime.utcfromtimestamp(endUTCSecond - self.__timezone)
341 print "[Reading] Starting process from %s to %s" %(datetime.datetime.utcfromtimestamp(startUTCSecond - self.__timezone),
342 datetime.datetime.utcfromtimestamp(endUTCSecond - self.__timezone)
343 )
342
344
343 def __reload(self):
345 def __reload(self):
344
346
345 if not self.__online:
347 if not self.__online:
346 return
348 return
347
349
348 # print
350 # print
349 # print "%s not in range [%s, %s]" %(
351 # print "%s not in range [%s, %s]" %(
350 # datetime.datetime.utcfromtimestamp(self.thisSecond - self.__timezone),
352 # datetime.datetime.utcfromtimestamp(self.thisSecond - self.__timezone),
351 # datetime.datetime.utcfromtimestamp(self.__startUTCSecond - self.__timezone),
353 # datetime.datetime.utcfromtimestamp(self.__startUTCSecond - self.__timezone),
352 # datetime.datetime.utcfromtimestamp(self.__endUTCSecond - self.__timezone)
354 # datetime.datetime.utcfromtimestamp(self.__endUTCSecond - self.__timezone)
353 # )
355 # )
354 print "[Reading] reloading metadata ..."
356 print "[Reading] reloading metadata ..."
355
357
356 try:
358 try:
357 self.digitalReadObj.reload(complete_update=True)
359 self.digitalReadObj.reload(complete_update=True)
358 except:
360 except:
359 self.digitalReadObj.reload()
361 self.digitalReadObj.reload()
360
362
361 start_index, end_index = self.digitalReadObj.get_bounds(self.__channelNameList[self.__channelList[0]])
363 start_index, end_index = self.digitalReadObj.get_bounds(self.__channelNameList[self.__channelList[0]])
362
364
363 if start_index > self.__startUTCSecond*self.__sample_rate:
365 if start_index > self.__startUTCSecond*self.__sample_rate:
364 self.__startUTCSecond = 1.0*start_index/self.__sample_rate
366 self.__startUTCSecond = 1.0*start_index/self.__sample_rate
365
367
366 if end_index > self.__endUTCSecond*self.__sample_rate:
368 if end_index > self.__endUTCSecond*self.__sample_rate:
367 self.__endUTCSecond = 1.0*end_index/self.__sample_rate
369 self.__endUTCSecond = 1.0*end_index/self.__sample_rate
368 print
370 print
369 print "[Reading] New timerange found [%s, %s] " %(
371 print "[Reading] New timerange found [%s, %s] " %(
370 datetime.datetime.utcfromtimestamp(self.__startUTCSecond - self.__timezone),
372 datetime.datetime.utcfromtimestamp(self.__startUTCSecond - self.__timezone),
371 datetime.datetime.utcfromtimestamp(self.__endUTCSecond - self.__timezone)
373 datetime.datetime.utcfromtimestamp(self.__endUTCSecond - self.__timezone)
372 )
374 )
373
375
374 return True
376 return True
375
377
376 return False
378 return False
377
379
378 def __readNextBlock(self, seconds=30, volt_scale = 218776):
380 def __readNextBlock(self, seconds=30, volt_scale = 218776):
379 '''
381 '''
380 '''
382 '''
381
383
382 #Set the next data
384 #Set the next data
383 self.__flagDiscontinuousBlock = False
385 self.__flagDiscontinuousBlock = False
384 self.__thisUnixSample += self.__samples_to_read
386 self.__thisUnixSample += self.__samples_to_read
385
387
386 if self.__thisUnixSample + 2*self.__samples_to_read > self.__endUTCSecond*self.__sample_rate:
388 if self.__thisUnixSample + 2*self.__samples_to_read > self.__endUTCSecond*self.__sample_rate:
387 print "[Reading] There are no more data into selected timerange"
389 print "[Reading] There are no more data into selected timerange"
388
390
389 self.__reload()
391 self.__reload()
390
392
391 if self.__thisUnixSample + 2*self.__samples_to_read > self.__endUTCSecond*self.__sample_rate:
393 if self.__thisUnixSample + 2*self.__samples_to_read > self.__endUTCSecond*self.__sample_rate:
392 self.__thisUnixSample -= self.__samples_to_read
394 self.__thisUnixSample -= self.__samples_to_read
393 return False
395 return False
394
396
395 indexChannel = 0
397 indexChannel = 0
396
398
397 dataOk = False
399 dataOk = False
398
400
399 for thisChannelName in self.__channelNameList:
401 for thisChannelName in self.__channelNameList:
400
402
401 try:
403 try:
402 result = self.digitalReadObj.read_vector_c81d(self.__thisUnixSample,
404 result = self.digitalReadObj.read_vector_c81d(self.__thisUnixSample,
403 self.__samples_to_read,
405 self.__samples_to_read,
404 thisChannelName)
406 thisChannelName)
405
407
406 except IOError, e:
408 except IOError, e:
407 #read next profile
409 #read next profile
408 self.__flagDiscontinuousBlock = True
410 self.__flagDiscontinuousBlock = True
409 print e
411 print e
410 break
412 break
411
413
412 if result.shape[0] != self.__samples_to_read:
414 if result.shape[0] != self.__samples_to_read:
413 self.__flagDiscontinuousBlock = True
415 self.__flagDiscontinuousBlock = True
414 print "[Reading] %s: Too few samples were found, just %d samples" %(datetime.datetime.utcfromtimestamp(self.thisSecond - self.__timezone),
416 print "[Reading] %s: Too few samples were found, just %d samples" %(datetime.datetime.utcfromtimestamp(self.thisSecond - self.__timezone),
415 result.shape[0])
417 result.shape[0])
416 break
418 break
417
419
418 self.__data_buffer[indexChannel,:] = result*volt_scale
420 self.__data_buffer[indexChannel,:] = result*volt_scale
419
421
420 indexChannel += 1
422 indexChannel += 1
421
423
422 dataOk = True
424 dataOk = True
423
425
424 self.__utctime = self.__thisUnixSample/self.__sample_rate
426 self.__utctime = self.__thisUnixSample/self.__sample_rate
425
427
426 if not dataOk:
428 if not dataOk:
427 return False
429 return False
428
430
429 print "[Reading] %s: %d samples <> %f sec" %(datetime.datetime.utcfromtimestamp(self.thisSecond - self.__timezone),
431 print "[Reading] %s: %d samples <> %f sec" %(datetime.datetime.utcfromtimestamp(self.thisSecond - self.__timezone),
430 self.__samples_to_read,
432 self.__samples_to_read,
431 self.__timeInterval)
433 self.__timeInterval)
432
434
433 self.__bufferIndex = 0
435 self.__bufferIndex = 0
434
436
435 return True
437 return True
436
438
437 def __isBufferEmpty(self):
439 def __isBufferEmpty(self):
438
440
439 if self.__bufferIndex <= self.__samples_to_read - self.__nSamples:
441 if self.__bufferIndex <= self.__samples_to_read - self.__nSamples:
440 return False
442 return False
441
443
442 return True
444 return True
443
445
444 def getData(self, seconds=30, nTries=5):
446 def getData(self, seconds=30, nTries=5):
445
447
446 '''
448 '''
447 This method gets the data from files and put the data into the dataOut object
449 This method gets the data from files and put the data into the dataOut object
448
450
449 In addition, increase el the buffer counter in one.
451 In addition, increase el the buffer counter in one.
450
452
451 Return:
453 Return:
452 data : retorna un perfil de voltages (alturas * canales) copiados desde el
454 data : retorna un perfil de voltages (alturas * canales) copiados desde el
453 buffer. Si no hay mas archivos a leer retorna None.
455 buffer. Si no hay mas archivos a leer retorna None.
454
456
455 Affected:
457 Affected:
456 self.dataOut
458 self.dataOut
457 self.profileIndex
459 self.profileIndex
458 self.flagDiscontinuousBlock
460 self.flagDiscontinuousBlock
459 self.flagIsNewBlock
461 self.flagIsNewBlock
460 '''
462 '''
461
463
462 err_counter = 0
464 err_counter = 0
463 self.dataOut.flagNoData = True
465 self.dataOut.flagNoData = True
464
466
465 if self.__isBufferEmpty():
467 if self.__isBufferEmpty():
466
468
467 self.__flagDiscontinuousBlock = False
469 self.__flagDiscontinuousBlock = False
468
470
469 while True:
471 while True:
470 if self.__readNextBlock():
472 if self.__readNextBlock():
471 break
473 break
472
474
473 if self.__thisUnixSample > self.__endUTCSecond*self.__sample_rate:
475 if self.__thisUnixSample > self.__endUTCSecond*self.__sample_rate:
474 return False
476 return False
475
477
476 if self.__flagDiscontinuousBlock:
478 if self.__flagDiscontinuousBlock:
477 print '[Reading] discontinuous block found ... continue with the next block'
479 print '[Reading] discontinuous block found ... continue with the next block'
478 continue
480 continue
479
481
480 if not self.__online:
482 if not self.__online:
481 return False
483 return False
482
484
483 err_counter += 1
485 err_counter += 1
484 if err_counter > nTries:
486 if err_counter > nTries:
485 return False
487 return False
486
488
487 print '[Reading] waiting %d seconds to read a new block' %seconds
489 print '[Reading] waiting %d seconds to read a new block' %seconds
488 sleep(seconds)
490 sleep(seconds)
489
491
490 self.dataOut.data = self.__data_buffer[:,self.__bufferIndex:self.__bufferIndex+self.__nSamples]
492 self.dataOut.data = self.__data_buffer[:,self.__bufferIndex:self.__bufferIndex+self.__nSamples]
491 self.dataOut.utctime = (self.__thisUnixSample + self.__bufferIndex)/self.__sample_rate
493 self.dataOut.utctime = (self.__thisUnixSample + self.__bufferIndex)/self.__sample_rate
492 self.dataOut.flagNoData = False
494 self.dataOut.flagNoData = False
493 self.dataOut.flagDiscontinuousBlock = self.__flagDiscontinuousBlock
495 self.dataOut.flagDiscontinuousBlock = self.__flagDiscontinuousBlock
494
496
495 self.__bufferIndex += self.__nSamples
497 self.__bufferIndex += self.__nSamples
496 self.profileIndex += 1
498 self.profileIndex += 1
497
499
498 return True
500 return True
499
501
500 def printInfo(self):
502 def printInfo(self):
501 '''
503 '''
502 '''
504 '''
503 if self.__printInfo == False:
505 if self.__printInfo == False:
504 return
506 return
505
507
506 # self.systemHeaderObj.printInfo()
508 # self.systemHeaderObj.printInfo()
507 # self.radarControllerHeaderObj.printInfo()
509 # self.radarControllerHeaderObj.printInfo()
508
510
509 self.__printInfo = False
511 self.__printInfo = False
510
512
511 def printNumberOfBlock(self):
513 def printNumberOfBlock(self):
512 '''
514 '''
513 '''
515 '''
514
516
515 print self.profileIndex
517 print self.profileIndex
516
518
517 def run(self, **kwargs):
519 def run(self, **kwargs):
518 '''
520 '''
519 This method will be called many times so here you should put all your code
521 This method will be called many times so here you should put all your code
520 '''
522 '''
521
523
522 if not self.isConfig:
524 if not self.isConfig:
523 self.setup(**kwargs)
525 self.setup(**kwargs)
524
526
525 self.getData(seconds=self.__delay)
527 self.getData(seconds=self.__delay)
526
528
527 return
529 return
528
530
529 class USRPWriter(Operation):
531 class USRPWriter(Operation):
530 '''
532 '''
531 classdocs
533 classdocs
532 '''
534 '''
533
535
534 def __init__(self):
536 def __init__(self):
535 '''
537 '''
536 Constructor
538 Constructor
537 '''
539 '''
538 self.dataOut = None
540 self.dataOut = None
539
541
540 def setup(self, dataIn, path, blocksPerFile, set=0, ext=None):
542 def setup(self, dataIn, path, blocksPerFile, set=0, ext=None):
541 '''
543 '''
542 In this method we should set all initial parameters.
544 In this method we should set all initial parameters.
543
545
544 Input:
546 Input:
545 dataIn : Input data will also be outputa data
547 dataIn : Input data will also be outputa data
546
548
547 '''
549 '''
548 self.dataOut = dataIn
550 self.dataOut = dataIn
549
551
550
552
551
553
552
554
553
555
554 self.isConfig = True
556 self.isConfig = True
555
557
556 return
558 return
557
559
558 def run(self, dataIn, **kwargs):
560 def run(self, dataIn, **kwargs):
559 '''
561 '''
560 This method will be called many times so here you should put all your code
562 This method will be called many times so here you should put all your code
561
563
562 Inputs:
564 Inputs:
563
565
564 dataIn : object with the data
566 dataIn : object with the data
565
567
566 '''
568 '''
567
569
568 if not self.isConfig:
570 if not self.isConfig:
569 self.setup(dataIn, **kwargs)
571 self.setup(dataIn, **kwargs)
570
572
571
573
572 if __name__ == '__main__':
574 if __name__ == '__main__':
573
575
574 readObj = USRPReader()
576 readObj = USRPReader()
575
577
576 while True:
578 while True:
577 readObj.run(path='/Volumes/DATA/haystack/passive_radar/')
579 readObj.run(path='/Volumes/DATA/haystack/passive_radar/')
578 # readObj.printInfo()
580 # readObj.printInfo()
579 readObj.printNumberOfBlock()
581 readObj.printNumberOfBlock()
580
582
581 No newline at end of file
583
@@ -1,949 +1,965
1 '''
1 '''
2 @author: Daniel Suarez
2 @author: Daniel Suarez
3 '''
3 '''
4 import os
4 import os
5 import glob
5 import glob
6 import ftplib
6 import ftplib
7
7
8 try:
8 try:
9 import paramiko
9 import paramiko
10 import scp
10 import scp
11 except:
11 except:
12 print "You should install paramiko if you will use SSH protocol to upload files to a server"
12 print "You should install paramiko if you will use SSH protocol to upload files to a server"
13
13
14 import multiprocessing
14 import multiprocessing
15
15
16 import time
16 import time
17 import threading
17 import threading
18
18
19
19
20 try:
20 try:
21 from gevent import sleep
21 from gevent import sleep
22 except:
22 except:
23 from time import sleep
23 from time import sleep
24
24
25 from schainpy.model.proc.jroproc_base import ProcessingUnit, Operation
25 from schainpy.model.proc.jroproc_base import ProcessingUnit, Operation
26
26
27 class Remote(threading.Thread):
27 class Remote(threading.Thread):
28 """
28 """
29 Remote is a parent class used to define the behaviour of FTP and SSH class. These clases are
29 Remote is a parent class used to define the behaviour of FTP and SSH class. These clases are
30 used to upload or download files remotely.
30 used to upload or download files remotely.
31
31
32 Non-standard Python modules used:
32 Non-standard Python modules used:
33 None
33 None
34
34
35 Written by:
35 Written by:
36
36
37 "Miguel Urco":mailto:miguel.urco@jro.igp.gob.pe Jun. 03, 2015
37 "Miguel Urco":mailto:miguel.urco@jro.igp.gob.pe Jun. 03, 2015
38
38
39 """
39 """
40
40
41 server = None
41 server = None
42 username = None
42 username = None
43 password = None
43 password = None
44 remotefolder = None
44 remotefolder = None
45
45
46 period = 60
46 period = 60
47 fileList = []
47 fileList = []
48 bussy = False
48 bussy = False
49
49
50 def __init__(self, server, username, password, remotefolder, period=60):
50 def __init__(self, server, username, password, remotefolder, period=60):
51
51
52 threading.Thread.__init__(self)
52 threading.Thread.__init__(self)
53 self._stop = threading.Event()
53 self._stop = threading.Event()
54
54
55 self.setDaemon(True)
56
55 self.status = 0
57 self.status = 0
56
58
57 self.period = period
59 self.period = period
58 self.fileList = []
60 self.fileList = []
59 self.bussy = False
61 self.bussy = False
60
62
61 self.stopFlag = False
63 self.stopFlag = False
62
64
63 print "[Remote Server] Opening server: %s" %server
65 print "[Remote Server] Opening server: %s" %server
64 if self.open(server, username, password, remotefolder):
66 if self.open(server, username, password, remotefolder):
65 print "[Remote Server] %s server was opened successfully" %server
67 print "[Remote Server] %s server was opened successfully" %server
66
68
67 def stop(self):
69 def stop(self):
68
70
69 self.stopFlag = True
71 self.stopFlag = True
70
72
71 def open(self):
73 def open(self):
72 """
74 """
73 Connect to server and create a connection class (FTP or SSH) to remote server.
75 Connect to server and create a connection class (FTP or SSH) to remote server.
74 """
76 """
75 raise NotImplementedError, "Implement this method in child class"
77 raise NotImplementedError, "Implement this method in child class"
76
78
77 def close(self):
79 def close(self):
78 """
80 """
79 Close connection to server
81 Close connection to server
80 """
82 """
81 raise NotImplementedError, "Implement this method in child class"
83 raise NotImplementedError, "Implement this method in child class"
82
84
83 def mkdir(self, remotefolder):
85 def mkdir(self, remotefolder):
84 """
86 """
85 Create a folder remotely
87 Create a folder remotely
86 """
88 """
87 raise NotImplementedError, "Implement this method in child class"
89 raise NotImplementedError, "Implement this method in child class"
88
90
89 def cd(self, remotefolder):
91 def cd(self, remotefolder):
90 """
92 """
91 Change working directory in remote server
93 Change working directory in remote server
92 """
94 """
93 raise NotImplementedError, "Implement this method in child class"
95 raise NotImplementedError, "Implement this method in child class"
94
96
95 def download(self, filename, localfolder=None):
97 def download(self, filename, localfolder=None):
96 """
98 """
97 Download a file from server to local host
99 Download a file from server to local host
98 """
100 """
99 raise NotImplementedError, "Implement this method in child class"
101 raise NotImplementedError, "Implement this method in child class"
100
102
101 def sendFile(self, fullfilename):
103 def sendFile(self, fullfilename):
102 """
104 """
103 sendFile method is used to upload a local file to the current directory in remote server
105 sendFile method is used to upload a local file to the current directory in remote server
104
106
105 Inputs:
107 Inputs:
106 fullfilename - full path name of local file to store in remote directory
108 fullfilename - full path name of local file to store in remote directory
107
109
108 Returns:
110 Returns:
109 0 in error case else 1
111 0 in error case else 1
110 """
112 """
111 raise NotImplementedError, "Implement this method in child class"
113 raise NotImplementedError, "Implement this method in child class"
112
114
113 def upload(self, fullfilename, remotefolder=None):
115 def upload(self, fullfilename, remotefolder=None):
114 """
116 """
115 upload method is used to upload a local file to remote directory. This method changes
117 upload method is used to upload a local file to remote directory. This method changes
116 working directory before sending a file.
118 working directory before sending a file.
117
119
118 Inputs:
120 Inputs:
119 fullfilename - full path name of local file to store in remote directory
121 fullfilename - full path name of local file to store in remote directory
120
122
121 remotefolder - remote directory
123 remotefolder - remote directory
122
124
123 Returns:
125 Returns:
124 0 in error case else 1
126 0 in error case else 1
125 """
127 """
126 print "[Remote Server] Uploading %s to %s:%s" %(fullfilename, self.server, self.remotefolder)
128 print "[Remote Server] Uploading %s to %s:%s" %(fullfilename, self.server, self.remotefolder)
127
129
128 if not self.status:
130 if not self.status:
129 return 0
131 return 0
130
132
131 if remotefolder == None:
133 if remotefolder == None:
132 remotefolder = self.remotefolder
134 remotefolder = self.remotefolder
133
135
134 if not self.cd(remotefolder):
136 if not self.cd(remotefolder):
135 return 0
137 return 0
136
138
137 if not self.sendFile(fullfilename):
139 if not self.sendFile(fullfilename):
138 print "[Remote Server] Error uploading file %s" %fullfilename
140 print "[Remote Server] Error uploading file %s" %fullfilename
139 return 0
141 return 0
140
142
141 print "[Remote Server] upload finished successfully"
143 print "[Remote Server] upload finished successfully"
142
144
143 return 1
145 return 1
144
146
145 def delete(self, filename):
147 def delete(self, filename):
146 """
148 """
147 Remove a file from remote server
149 Remove a file from remote server
148 """
150 """
149 pass
151 pass
150
152
151 def updateFileList(self, fileList):
153 def updateFileList(self, fileList):
152 """
154 """
153 Remove a file from remote server
155 Remove a file from remote server
154 """
156 """
155
157
156 if fileList == self.fileList:
158 if fileList == self.fileList:
157 return 1
159 return 0
158
160
159 init = time.time()
161 init = time.time()
160
162
161 while(self.bussy):
163 while(self.bussy):
162 sleep(0.1)
164 sleep(0.1)
163 if time.time() - init > 2*self.period:
165 if time.time() - init > 2*self.period:
164 return 0
166 return 0
165
167
166 self.fileList = fileList
168 self.fileList = fileList
167
169
168 return 1
170 return 1
169
171
170 def run(self):
172 def run(self):
171
173
172 if not self.status:
174 if not self.status:
173 print "Finishing FTP service"
175 print "Finishing FTP service"
174 return
176 return
175
177
176 if not self.cd(self.remotefolder):
178 if not self.cd(self.remotefolder):
177 raise ValueError, "Could not access to the new remote directory: %s" %self.remotefolder
179 raise ValueError, "Could not access to the new remote directory: %s" %self.remotefolder
178
180
179 sts = True
181 sts = True
180
182
181 while True:
183 while True:
182
184
183 sleep(self.period)
185 sleep(self.period)
184
186
185 self.bussy = True
187 self.bussy = True
186
188
187 for thisFile in self.fileList:
189 for thisFile in self.fileList:
188 sts = self.upload(thisFile, self.remotefolder)
190 sts = self.upload(thisFile, self.remotefolder)
189 if not sts: break
191 if not sts: break
190
192
191 if not sts: break
192
193 self.bussy = False
193 self.bussy = False
194
194
195 if not sts: break
196
195 if self.stopFlag:
197 if self.stopFlag:
196 break
198 break
197
199
198 print "[Remote Server] Thread stopped successfully"
200 print "[Remote Server] Thread stopped successfully"
199
201
200 class FTPClient(Remote):
202 class FTPClient(Remote):
201
203
202 __ftpClientObj = None
204 __ftpClientObj = None
203
205
204 def __init__(self, server, username, password, remotefolder, period=60):
206 def __init__(self, server, username, password, remotefolder, period=60):
205 """
207 """
206 """
208 """
207 Remote.__init__(self, server, username, password, remotefolder, period)
209 Remote.__init__(self, server, username, password, remotefolder, period)
208
210
209 def open(self, server, username, password, remotefolder):
211 def open(self, server, username, password, remotefolder):
210
212
211 """
213 """
212 This method is used to set FTP parameters and establish a connection to remote server
214 This method is used to set FTP parameters and establish a connection to remote server
213
215
214 Inputs:
216 Inputs:
215 server - remote server IP Address
217 server - remote server IP Address
216
218
217 username - remote server Username
219 username - remote server Username
218
220
219 password - remote server password
221 password - remote server password
220
222
221 remotefolder - remote server current working directory
223 remotefolder - remote server current working directory
222
224
223 Return: void
225 Return: void
224
226
225 Affects:
227 Affects:
226 self.status - in case of error or fail connection this parameter is set to 0 else 1
228 self.status - in case of error or fail connection this parameter is set to 0 else 1
227
229
228 """
230 """
229
231
230 if server == None:
232 if server == None:
231 raise ValueError, "FTP server should be defined"
233 raise ValueError, "FTP server should be defined"
232
234
233 if username == None:
235 if username == None:
234 raise ValueError, "FTP username should be defined"
236 raise ValueError, "FTP username should be defined"
235
237
236 if password == None:
238 if password == None:
237 raise ValueError, "FTP password should be defined"
239 raise ValueError, "FTP password should be defined"
238
240
239 if remotefolder == None:
241 if remotefolder == None:
240 raise ValueError, "FTP remote folder should be defined"
242 raise ValueError, "FTP remote folder should be defined"
241
243
242 try:
244 try:
243 ftpClientObj = ftplib.FTP(server)
245 ftpClientObj = ftplib.FTP(server)
244 except ftplib.all_errors:
246 except ftplib.all_errors:
245 print "FTP server connection fail: %s" %server
247 print "FTP server connection fail: %s" %server
246 self.status = 0
248 self.status = 0
247 return 0
249 return 0
248
250
249 try:
251 try:
250 ftpClientObj.login(username, password)
252 ftpClientObj.login(username, password)
251 except ftplib.all_errors:
253 except ftplib.all_errors:
252 print "FTP username or password are incorrect"
254 print "FTP username or password are incorrect"
253 self.status = 0
255 self.status = 0
254 return 0
256 return 0
255
257
256 if remotefolder == None:
258 if remotefolder == None:
257 remotefolder = ftpClientObj.pwd()
259 remotefolder = ftpClientObj.pwd()
258 else:
260 else:
259 try:
261 try:
260 ftpClientObj.cwd(remotefolder)
262 ftpClientObj.cwd(remotefolder)
261 except ftplib.all_errors:
263 except ftplib.all_errors:
262 print "FTP remote folder is invalid: %s" %remotefolder
264 print "FTP remote folder is invalid: %s" %remotefolder
263 remotefolder = ftpClientObj.pwd()
265 remotefolder = ftpClientObj.pwd()
264
266
265 self.server = server
267 self.server = server
266 self.username = username
268 self.username = username
267 self.password = password
269 self.password = password
268 self.remotefolder = remotefolder
270 self.remotefolder = remotefolder
269 self.__ftpClientObj = ftpClientObj
271 self.__ftpClientObj = ftpClientObj
270 self.status = 1
272 self.status = 1
271
273
272 return 1
274 return 1
273
275
274 def close(self):
276 def close(self):
275 """
277 """
276 Close connection to remote server
278 Close connection to remote server
277 """
279 """
278 if not self.status:
280 if not self.status:
279 return 0
281 return 0
280
282
281 self.__ftpClientObj.close()
283 self.__ftpClientObj.close()
282
284
283 def mkdir(self, remotefolder):
285 def mkdir(self, remotefolder):
284 """
286 """
285 mkdir is used to make a new directory in remote server
287 mkdir is used to make a new directory in remote server
286
288
287 Input:
289 Input:
288 remotefolder - directory name
290 remotefolder - directory name
289
291
290 Return:
292 Return:
291 0 in error case else 1
293 0 in error case else 1
292 """
294 """
293 if not self.status:
295 if not self.status:
294 return 0
296 return 0
295
297
296 try:
298 try:
297 self.__ftpClientObj.mkd(dirname)
299 self.__ftpClientObj.mkd(dirname)
298 except ftplib.all_errors:
300 except ftplib.all_errors:
299 print "Error creating remote folder: %s" %remotefolder
301 print "Error creating remote folder: %s" %remotefolder
300 return 0
302 return 0
301
303
302 return 1
304 return 1
303
305
304 def cd(self, remotefolder):
306 def cd(self, remotefolder):
305 """
307 """
306 cd is used to change remote working directory on server
308 cd is used to change remote working directory on server
307
309
308 Input:
310 Input:
309 remotefolder - current working directory
311 remotefolder - current working directory
310
312
311 Affects:
313 Affects:
312 self.remotefolder
314 self.remotefolder
313
315
314 Return:
316 Return:
315 0 in case of error else 1
317 0 in case of error else 1
316 """
318 """
317 if not self.status:
319 if not self.status:
318 return 0
320 return 0
319
321
320 if remotefolder == self.remotefolder:
322 if remotefolder == self.remotefolder:
321 return 1
323 return 1
322
324
323 try:
325 try:
324 self.__ftpClientObj.cwd(remotefolder)
326 self.__ftpClientObj.cwd(remotefolder)
325 except ftplib.all_errors:
327 except ftplib.all_errors:
326 print 'Error changing to %s' %remotefolder
328 print 'Error changing to %s' %remotefolder
327 print 'Trying to create remote folder'
329 print 'Trying to create remote folder'
328
330
329 if not self.mkdir(remotefolder):
331 if not self.mkdir(remotefolder):
330 print 'Remote folder could not be created'
332 print 'Remote folder could not be created'
331 return 0
333 return 0
332
334
333 try:
335 try:
334 self.__ftpClientObj.cwd(remotefolder)
336 self.__ftpClientObj.cwd(remotefolder)
335 except ftplib.all_errors:
337 except ftplib.all_errors:
336 return 0
338 return 0
337
339
338 self.remotefolder = remotefolder
340 self.remotefolder = remotefolder
339
341
340 return 1
342 return 1
341
343
342 def sendFile(self, fullfilename):
344 def sendFile(self, fullfilename):
343
345
344 if not self.status:
346 if not self.status:
345 return 0
347 return 0
346
348
347 file = open(fullfilename, 'rb')
349 file = open(fullfilename, 'rb')
348
350
349 filename = os.path.split(fullfilename)[-1]
351 filename = os.path.basename(fullfilename)
350
352
351 command = "STOR %s" %filename
353 command = "STOR %s" %filename
352
354
353 try:
355 try:
354 self.__ftpClientObj.storbinary(command, file)
356 self.__ftpClientObj.storbinary(command, file)
355 except ftplib.all_errors:
357 except ftplib.all_errors:
356 return 0
358 return 0
357
359
358 try:
360 try:
359 self.__ftpClientObj.sendcmd('SITE CHMOD 755 ' + filename)
361 self.__ftpClientObj.sendcmd('SITE CHMOD 755 ' + filename)
360 except ftplib.all_errors, e:
362 except ftplib.all_errors, e:
361 print e
363 print e
362
364
363 file.close()
365 file.close()
364
366
365 return 1
367 return 1
366
368
367 class SSHClient(Remote):
369 class SSHClient(Remote):
368
370
369 __sshClientObj = None
371 __sshClientObj = None
370 __scpClientObj = None
372 __scpClientObj = None
371
373
372 def __init__(self, server, username, password, remotefolder, period=60):
374 def __init__(self, server, username, password, remotefolder, period=60):
373 """
375 """
374 """
376 """
375 Remote.__init__(self, server, username, password, remotefolder, period)
377 Remote.__init__(self, server, username, password, remotefolder, period)
376
378
377 def open(self, server, username, password, remotefolder, port=22):
379 def open(self, server, username, password, remotefolder, port=22):
378
380
379 """
381 """
380 This method is used to set SSH parameters and establish a connection to a remote server
382 This method is used to set SSH parameters and establish a connection to a remote server
381
383
382 Inputs:
384 Inputs:
383 server - remote server IP Address
385 server - remote server IP Address
384
386
385 username - remote server Username
387 username - remote server Username
386
388
387 password - remote server password
389 password - remote server password
388
390
389 remotefolder - remote server current working directory
391 remotefolder - remote server current working directory
390
392
391 Return: void
393 Return: void
392
394
393 Affects:
395 Affects:
394 self.status - in case of error or fail connection this parameter is set to 0 else 1
396 self.status - in case of error or fail connection this parameter is set to 0 else 1
395
397
396 """
398 """
397
399
398 if server == None:
400 if server == None:
399 raise ValueError, "SSH server should be defined"
401 raise ValueError, "SSH server should be defined"
400
402
401 if username == None:
403 if username == None:
402 raise ValueError, "SSH username should be defined"
404 raise ValueError, "SSH username should be defined"
403
405
404 if password == None:
406 if password == None:
405 raise ValueError, "SSH password should be defined"
407 raise ValueError, "SSH password should be defined"
406
408
407 if remotefolder == None:
409 if remotefolder == None:
408 raise ValueError, "SSH remote folder should be defined"
410 raise ValueError, "SSH remote folder should be defined"
409
411
410 try:
412 try:
411 sshClientObj = paramiko.SSHClient()
413 sshClientObj = paramiko.SSHClient()
412 except:
414 except:
413 print "SSH server connection fail: %s" %server
415 print "SSH server connection fail: %s" %server
414 self.status = 0
416 self.status = 0
415 return 0
417 return 0
416
418
417 sshClientObj.load_system_host_keys()
419 sshClientObj.load_system_host_keys()
418 sshClientObj.set_missing_host_key_policy(paramiko.WarningPolicy())
420 sshClientObj.set_missing_host_key_policy(paramiko.WarningPolicy())
419
421
420 try:
422 try:
421 sshClientObj.connect(server, username=username, password=password, port=port)
423 sshClientObj.connect(server, username=username, password=password, port=port)
422 except :
424 except :
423 print "SSH username or password are incorrect: %s"
425 print "SSH username or password are incorrect: %s"
424 self.status = 0
426 self.status = 0
425 return 0
427 return 0
426
428
427 scpClientObj = scp.SCPClient(sshClientObj.get_transport(), socket_timeout=30)
429 scpClientObj = scp.SCPClient(sshClientObj.get_transport(), socket_timeout=30)
428
430
429 if remotefolder == None:
431 if remotefolder == None:
430 remotefolder = self.pwd()
432 remotefolder = self.pwd()
431
433
432 self.server = server
434 self.server = server
433 self.username = username
435 self.username = username
434 self.password = password
436 self.password = password
435 self.__sshClientObj = sshClientObj
437 self.__sshClientObj = sshClientObj
436 self.__scpClientObj = scpClientObj
438 self.__scpClientObj = scpClientObj
437 self.status = 1
439 self.status = 1
438
440
439 if not self.cd(remotefolder):
441 if not self.cd(remotefolder):
440 raise ValueError, "Could not access to remote folder: %s" %remotefolder
442 raise ValueError, "Could not access to remote folder: %s" %remotefolder
441 return 0
443 return 0
442
444
443 self.remotefolder = remotefolder
445 self.remotefolder = remotefolder
444
446
445 return 1
447 return 1
446
448
447 def close(self):
449 def close(self):
448 """
450 """
449 Close connection to remote server
451 Close connection to remote server
450 """
452 """
451 if not self.status:
453 if not self.status:
452 return 0
454 return 0
453
455
454 self.__sshObj.close()
456 self.__sshObj.close()
455
457
456 def __execute(self, command):
458 def __execute(self, command):
457 """
459 """
458 __execute a command on remote server
460 __execute a command on remote server
459
461
460 Input:
462 Input:
461 command - Exmaple 'ls -l'
463 command - Exmaple 'ls -l'
462
464
463 Return:
465 Return:
464 0 in error case else 1
466 0 in error case else 1
465 """
467 """
466 if not self.status:
468 if not self.status:
467 return 0
469 return 0
468
470
469 stdin, stdout, stderr = self.__sshClientObj.exec_command(command)
471 stdin, stdout, stderr = self.__sshClientObj.exec_command(command)
470
472
471 result = stderr.readlines()
473 result = stderr.readlines()
472 if len(result) > 1:
474 if len(result) > 1:
473 return 0
475 return 0
474
476
475 result = stdout.readlines()
477 result = stdout.readlines()
476 if len(result) > 1:
478 if len(result) > 1:
477 return result[0][:-1]
479 return result[0][:-1]
478
480
479 return 1
481 return 1
480
482
481 def mkdir(self, remotefolder):
483 def mkdir(self, remotefolder):
482 """
484 """
483 mkdir is used to make a new directory in remote server
485 mkdir is used to make a new directory in remote server
484
486
485 Input:
487 Input:
486 remotefolder - directory name
488 remotefolder - directory name
487
489
488 Return:
490 Return:
489 0 in error case else 1
491 0 in error case else 1
490 """
492 """
491
493
492 command = 'mkdir %s' %remotefolder
494 command = 'mkdir %s' %remotefolder
493
495
494 return self.__execute(command)
496 return self.__execute(command)
495
497
496 def pwd(self):
498 def pwd(self):
497
499
498 command = 'pwd'
500 command = 'pwd'
499
501
500 return self.__execute(command)
502 return self.__execute(command)
501
503
502 def cd(self, remotefolder):
504 def cd(self, remotefolder):
503 """
505 """
504 cd is used to change remote working directory on server
506 cd is used to change remote working directory on server
505
507
506 Input:
508 Input:
507 remotefolder - current working directory
509 remotefolder - current working directory
508
510
509 Affects:
511 Affects:
510 self.remotefolder
512 self.remotefolder
511
513
512 Return:
514 Return:
513 0 in case of error else 1
515 0 in case of error else 1
514 """
516 """
515 if not self.status:
517 if not self.status:
516 return 0
518 return 0
517
519
518 if remotefolder == self.remotefolder:
520 if remotefolder == self.remotefolder:
519 return 1
521 return 1
520
522
521 chk_command = "cd %s; pwd" %remotefolder
523 chk_command = "cd %s; pwd" %remotefolder
522 mkdir_command = "mkdir %s" %remotefolder
524 mkdir_command = "mkdir %s" %remotefolder
523
525
524 if not self.__execute(chk_command):
526 if not self.__execute(chk_command):
525 if not self.__execute(mkdir_command):
527 if not self.__execute(mkdir_command):
526 self.remotefolder = None
528 self.remotefolder = None
527 return 0
529 return 0
528
530
529 self.remotefolder = remotefolder
531 self.remotefolder = remotefolder
530
532
531 return 1
533 return 1
532
534
533 def sendFile(self, fullfilename):
535 def sendFile(self, fullfilename):
534
536
535 if not self.status:
537 if not self.status:
536 return 0
538 return 0
537
539
538 try:
540 try:
539 self.__scpClientObj.put(fullfilename, remote_path=self.remotefolder)
541 self.__scpClientObj.put(fullfilename, remote_path=self.remotefolder)
540 except:
542 except:
541 return 0
543 return 0
542
544
543 remotefile = os.path.join(self.remotefolder, os.path.split(fullfilename)[-1])
545 remotefile = os.path.join(self.remotefolder, os.path.split(fullfilename)[-1])
544 command = 'chmod 775 %s' %remotefile
546 command = 'chmod 775 %s' %remotefile
545
547
546 return self.__execute(command)
548 return self.__execute(command)
547
549
548 class SendToServer(ProcessingUnit):
550 class SendToServer(ProcessingUnit):
549
551
550 def __init__(self):
552 def __init__(self):
551
553
552 ProcessingUnit.__init__(self)
554 ProcessingUnit.__init__(self)
553
555
554 self.isConfig = False
556 self.isConfig = False
555 self.clientObj = None
557 self.clientObj = None
556
558
557 def setup(self, server, username, password, remotefolder, localfolder, ext='.png', period=60, protocol='ftp', **kwargs):
559 def setup(self, server, username, password, remotefolder, localfolder, ext='.png', period=60, protocol='ftp', **kwargs):
558
560
559 self.clientObj = None
561 self.clientObj = None
560 self.localfolder = localfolder
562 self.localfolder = localfolder
561 self.ext = ext
563 self.ext = ext
562 self.period = period
564 self.period = period
563
565
564 if str.lower(protocol) == 'ftp':
566 if str.lower(protocol) == 'ftp':
565 self.clientObj = FTPClient(server, username, password, remotefolder, period)
567 self.clientObj = FTPClient(server, username, password, remotefolder, period)
566
568
567 if str.lower(protocol) == 'ssh':
569 if str.lower(protocol) == 'ssh':
568 self.clientObj = SSHClient(server, username, password, remotefolder, period)
570 self.clientObj = SSHClient(server, username, password, remotefolder, period)
569
571
570 if not self.clientObj:
572 if not self.clientObj:
571 raise ValueError, "%s has been chosen as remote access protocol but it is not valid" %protocol
573 raise ValueError, "%s has been chosen as remote access protocol but it is not valid" %protocol
572
574
573 self.clientObj.start()
575 self.clientObj.start()
574
576
575 def findFiles(self):
577 def findFiles(self):
576
578
577 filenameList = glob.glob1(self.localfolder, '*%s' %self.ext)
579 if not type(self.localfolder) == list:
580 folderList = [self.localfolder]
581 else:
582 folderList = self.localfolder
578
583
579 if len(filenameList) < 1:
584 fullfilenameList = []
580 return []
585
581
586 for thisFolder in folderList:
582 fullfilenameList = [os.path.join(self.localfolder, thisFile) for thisFile in filenameList]
583
587
588 filenameList = glob.glob1(thisFolder, '*%s' %self.ext)
589
590 if len(filenameList) < 1:
591 continue
592
593 for thisFile in filenameList:
594 fullfilename = os.path.join(thisFolder, thisFile)
595 fullfilenameList.append(fullfilename)
596
584 return fullfilenameList
597 return fullfilenameList
585
598
586 def run(self, **kwargs):
599 def run(self, **kwargs):
587
600
588 if not self.isConfig:
601 if not self.isConfig:
589 self.init = time.time()
602 self.init = time.time()
590 self.setup(**kwargs)
603 self.setup(**kwargs)
591 self.isConfig = True
604 self.isConfig = True
592
605
593 if time.time() - self.init >= self.period:
606 if time.time() - self.init >= self.period:
594 fullfilenameList = self.findFiles()
607 fullfilenameList = self.findFiles()
595 self.clientObj.updateFileList(fullfilenameList)
608
609 if self.clientObj.updateFileList(fullfilenameList):
610 print "[Remote Server]: Sending the next files ", str(fullfilenameList)
611
596 self.init = time.time()
612 self.init = time.time()
597
613
598 def close(self):
614 def close(self):
599 print "[Remote Server] Stopping thread"
615 print "[Remote Server] Stopping thread"
600 self.clientObj.stop()
616 self.clientObj.stop()
601
617
602
618
603 class FTP(object):
619 class FTP(object):
604 """
620 """
605 Ftp is a public class used to define custom File Transfer Protocol from "ftplib" python module
621 Ftp is a public class used to define custom File Transfer Protocol from "ftplib" python module
606
622
607 Non-standard Python modules used: None
623 Non-standard Python modules used: None
608
624
609 Written by "Daniel Suarez":mailto:daniel.suarez@jro.igp.gob.pe Oct. 26, 2010
625 Written by "Daniel Suarez":mailto:daniel.suarez@jro.igp.gob.pe Oct. 26, 2010
610 """
626 """
611
627
612 def __init__(self,server = None, username=None, password=None, remotefolder=None):
628 def __init__(self,server = None, username=None, password=None, remotefolder=None):
613 """
629 """
614 This method is used to setting parameters for FTP and establishing connection to remote server
630 This method is used to setting parameters for FTP and establishing connection to remote server
615
631
616 Inputs:
632 Inputs:
617 server - remote server IP Address
633 server - remote server IP Address
618
634
619 username - remote server Username
635 username - remote server Username
620
636
621 password - remote server password
637 password - remote server password
622
638
623 remotefolder - remote server current working directory
639 remotefolder - remote server current working directory
624
640
625 Return: void
641 Return: void
626
642
627 Affects:
643 Affects:
628 self.status - in Error Case or Connection Failed this parameter is set to 1 else 0
644 self.status - in Error Case or Connection Failed this parameter is set to 1 else 0
629
645
630 self.folderList - sub-folder list of remote folder
646 self.folderList - sub-folder list of remote folder
631
647
632 self.fileList - file list of remote folder
648 self.fileList - file list of remote folder
633
649
634
650
635 """
651 """
636
652
637 if ((server == None) and (username==None) and (password==None) and (remotefolder==None)):
653 if ((server == None) and (username==None) and (password==None) and (remotefolder==None)):
638 server, username, password, remotefolder = self.parmsByDefault()
654 server, username, password, remotefolder = self.parmsByDefault()
639
655
640 self.server = server
656 self.server = server
641 self.username = username
657 self.username = username
642 self.password = password
658 self.password = password
643 self.remotefolder = remotefolder
659 self.remotefolder = remotefolder
644 self.file = None
660 self.file = None
645 self.ftp = None
661 self.ftp = None
646 self.status = 0
662 self.status = 0
647
663
648 try:
664 try:
649 self.ftp = ftplib.FTP(self.server)
665 self.ftp = ftplib.FTP(self.server)
650 self.ftp.login(self.username,self.password)
666 self.ftp.login(self.username,self.password)
651 self.ftp.cwd(self.remotefolder)
667 self.ftp.cwd(self.remotefolder)
652 # print 'Connect to FTP Server: Successfully'
668 # print 'Connect to FTP Server: Successfully'
653
669
654 except ftplib.all_errors:
670 except ftplib.all_errors:
655 print 'Error FTP Service'
671 print 'Error FTP Service'
656 self.status = 1
672 self.status = 1
657 return
673 return
658
674
659
675
660
676
661 self.dirList = []
677 self.dirList = []
662
678
663 try:
679 try:
664 self.dirList = self.ftp.nlst()
680 self.dirList = self.ftp.nlst()
665
681
666 except ftplib.error_perm, resp:
682 except ftplib.error_perm, resp:
667 if str(resp) == "550 No files found":
683 if str(resp) == "550 No files found":
668 print "no files in this directory"
684 print "no files in this directory"
669 self.status = 1
685 self.status = 1
670 return
686 return
671
687
672 except ftplib.all_errors:
688 except ftplib.all_errors:
673 print 'Error Displaying Dir-Files'
689 print 'Error Displaying Dir-Files'
674 self.status = 1
690 self.status = 1
675 return
691 return
676
692
677 self.fileList = []
693 self.fileList = []
678 self.folderList = []
694 self.folderList = []
679 #only for test
695 #only for test
680 for f in self.dirList:
696 for f in self.dirList:
681 name, ext = os.path.splitext(f)
697 name, ext = os.path.splitext(f)
682 if ext != '':
698 if ext != '':
683 self.fileList.append(f)
699 self.fileList.append(f)
684 # print 'filename: %s - size: %d'%(f,self.ftp.size(f))
700 # print 'filename: %s - size: %d'%(f,self.ftp.size(f))
685
701
686 def parmsByDefault(self):
702 def parmsByDefault(self):
687 server = 'jro-app.igp.gob.pe'
703 server = 'jro-app.igp.gob.pe'
688 username = 'wmaster'
704 username = 'wmaster'
689 password = 'mst2010vhf'
705 password = 'mst2010vhf'
690 remotefolder = '/home/wmaster/graficos'
706 remotefolder = '/home/wmaster/graficos'
691
707
692 return server, username, password, remotefolder
708 return server, username, password, remotefolder
693
709
694
710
695 def mkd(self,dirname):
711 def mkd(self,dirname):
696 """
712 """
697 mkd is used to make directory in remote server
713 mkd is used to make directory in remote server
698
714
699 Input:
715 Input:
700 dirname - directory name
716 dirname - directory name
701
717
702 Return:
718 Return:
703 1 in error case else 0
719 1 in error case else 0
704 """
720 """
705 try:
721 try:
706 self.ftp.mkd(dirname)
722 self.ftp.mkd(dirname)
707 except:
723 except:
708 print 'Error creating remote folder:%s'%dirname
724 print 'Error creating remote folder:%s'%dirname
709 return 1
725 return 1
710
726
711 return 0
727 return 0
712
728
713
729
714 def delete(self,filename):
730 def delete(self,filename):
715 """
731 """
716 delete is used to delete file in current working directory of remote server
732 delete is used to delete file in current working directory of remote server
717
733
718 Input:
734 Input:
719 filename - filename to delete in remote folder
735 filename - filename to delete in remote folder
720
736
721 Return:
737 Return:
722 1 in error case else 0
738 1 in error case else 0
723 """
739 """
724
740
725 try:
741 try:
726 self.ftp.delete(filename)
742 self.ftp.delete(filename)
727 except:
743 except:
728 print 'Error deleting remote file:%s'%filename
744 print 'Error deleting remote file:%s'%filename
729 return 1
745 return 1
730
746
731 return 0
747 return 0
732
748
733 def download(self,filename,localfolder):
749 def download(self,filename,localfolder):
734 """
750 """
735 download is used to downloading file from remote folder into local folder
751 download is used to downloading file from remote folder into local folder
736
752
737 Inputs:
753 Inputs:
738 filename - filename to donwload
754 filename - filename to donwload
739
755
740 localfolder - directory local to store filename
756 localfolder - directory local to store filename
741
757
742 Returns:
758 Returns:
743 self.status - 1 in error case else 0
759 self.status - 1 in error case else 0
744 """
760 """
745
761
746 self.status = 0
762 self.status = 0
747
763
748
764
749 if not(filename in self.fileList):
765 if not(filename in self.fileList):
750 print 'filename:%s not exists'%filename
766 print 'filename:%s not exists'%filename
751 self.status = 1
767 self.status = 1
752 return self.status
768 return self.status
753
769
754 newfilename = os.path.join(localfolder,filename)
770 newfilename = os.path.join(localfolder,filename)
755
771
756 self.file = open(newfilename, 'wb')
772 self.file = open(newfilename, 'wb')
757
773
758 try:
774 try:
759 print 'Download: ' + filename
775 print 'Download: ' + filename
760 self.ftp.retrbinary('RETR ' + filename, self.__handleDownload)
776 self.ftp.retrbinary('RETR ' + filename, self.__handleDownload)
761 print 'Download Complete'
777 print 'Download Complete'
762 except ftplib.all_errors:
778 except ftplib.all_errors:
763 print 'Error Downloading ' + filename
779 print 'Error Downloading ' + filename
764 self.status = 1
780 self.status = 1
765 return self.status
781 return self.status
766
782
767 self.file.close()
783 self.file.close()
768
784
769 return self.status
785 return self.status
770
786
771
787
772 def __handleDownload(self,block):
788 def __handleDownload(self,block):
773 """
789 """
774 __handleDownload is used to handle writing file
790 __handleDownload is used to handle writing file
775 """
791 """
776 self.file.write(block)
792 self.file.write(block)
777
793
778
794
779 def upload(self,filename,remotefolder=None):
795 def upload(self,filename,remotefolder=None):
780 """
796 """
781 upload is used to uploading local file to remote directory
797 upload is used to uploading local file to remote directory
782
798
783 Inputs:
799 Inputs:
784 filename - full path name of local file to store in remote directory
800 filename - full path name of local file to store in remote directory
785
801
786 remotefolder - remote directory
802 remotefolder - remote directory
787
803
788 Returns:
804 Returns:
789 self.status - 1 in error case else 0
805 self.status - 1 in error case else 0
790 """
806 """
791
807
792 if remotefolder == None:
808 if remotefolder == None:
793 remotefolder = self.remotefolder
809 remotefolder = self.remotefolder
794
810
795 self.status = 0
811 self.status = 0
796
812
797 try:
813 try:
798 self.ftp.cwd(remotefolder)
814 self.ftp.cwd(remotefolder)
799
815
800 self.file = open(filename, 'rb')
816 self.file = open(filename, 'rb')
801
817
802 (head, tail) = os.path.split(filename)
818 (head, tail) = os.path.split(filename)
803
819
804 command = "STOR " + tail
820 command = "STOR " + tail
805
821
806 print 'Uploading: ' + tail
822 print 'Uploading: ' + tail
807 self.ftp.storbinary(command, self.file)
823 self.ftp.storbinary(command, self.file)
808 print 'Upload Completed'
824 print 'Upload Completed'
809
825
810 except ftplib.all_errors:
826 except ftplib.all_errors:
811 print 'Error Uploading ' + tail
827 print 'Error Uploading ' + tail
812 self.status = 1
828 self.status = 1
813 return self.status
829 return self.status
814
830
815 self.file.close()
831 self.file.close()
816
832
817 #back to initial directory in __init__()
833 #back to initial directory in __init__()
818 self.ftp.cwd(self.remotefolder)
834 self.ftp.cwd(self.remotefolder)
819
835
820 return self.status
836 return self.status
821
837
822
838
823 def dir(self,remotefolder):
839 def dir(self,remotefolder):
824 """
840 """
825 dir is used to change working directory of remote server and get folder and file list
841 dir is used to change working directory of remote server and get folder and file list
826
842
827 Input:
843 Input:
828 remotefolder - current working directory
844 remotefolder - current working directory
829
845
830 Affects:
846 Affects:
831 self.fileList - file list of working directory
847 self.fileList - file list of working directory
832
848
833 Return:
849 Return:
834 infoList - list with filenames and size of file in bytes
850 infoList - list with filenames and size of file in bytes
835
851
836 self.folderList - folder list
852 self.folderList - folder list
837 """
853 """
838
854
839 self.remotefolder = remotefolder
855 self.remotefolder = remotefolder
840 print 'Change to ' + self.remotefolder
856 print 'Change to ' + self.remotefolder
841 try:
857 try:
842 self.ftp.cwd(remotefolder)
858 self.ftp.cwd(remotefolder)
843 except ftplib.all_errors:
859 except ftplib.all_errors:
844 print 'Error Change to ' + self.remotefolder
860 print 'Error Change to ' + self.remotefolder
845 infoList = None
861 infoList = None
846 self.folderList = None
862 self.folderList = None
847 return infoList,self.folderList
863 return infoList,self.folderList
848
864
849 self.dirList = []
865 self.dirList = []
850
866
851 try:
867 try:
852 self.dirList = self.ftp.nlst()
868 self.dirList = self.ftp.nlst()
853
869
854 except ftplib.error_perm, resp:
870 except ftplib.error_perm, resp:
855 if str(resp) == "550 No files found":
871 if str(resp) == "550 No files found":
856 print "no files in this directory"
872 print "no files in this directory"
857 infoList = None
873 infoList = None
858 self.folderList = None
874 self.folderList = None
859 return infoList,self.folderList
875 return infoList,self.folderList
860 except ftplib.all_errors:
876 except ftplib.all_errors:
861 print 'Error Displaying Dir-Files'
877 print 'Error Displaying Dir-Files'
862 infoList = None
878 infoList = None
863 self.folderList = None
879 self.folderList = None
864 return infoList,self.folderList
880 return infoList,self.folderList
865
881
866 infoList = []
882 infoList = []
867 self.fileList = []
883 self.fileList = []
868 self.folderList = []
884 self.folderList = []
869 for f in self.dirList:
885 for f in self.dirList:
870 name,ext = os.path.splitext(f)
886 name,ext = os.path.splitext(f)
871 if ext != '':
887 if ext != '':
872 self.fileList.append(f)
888 self.fileList.append(f)
873 value = (f,self.ftp.size(f))
889 value = (f,self.ftp.size(f))
874 infoList.append(value)
890 infoList.append(value)
875
891
876 if ext == '':
892 if ext == '':
877 self.folderList.append(f)
893 self.folderList.append(f)
878
894
879 return infoList,self.folderList
895 return infoList,self.folderList
880
896
881
897
882 def close(self):
898 def close(self):
883 """
899 """
884 close is used to close and end FTP connection
900 close is used to close and end FTP connection
885
901
886 Inputs: None
902 Inputs: None
887
903
888 Return: void
904 Return: void
889
905
890 """
906 """
891 self.ftp.close()
907 self.ftp.close()
892
908
893 class SendByFTP(Operation):
909 class SendByFTP(Operation):
894
910
895 def __init__(self):
911 def __init__(self):
896
912
897 self.status = 1
913 self.status = 1
898 self.counter = 0
914 self.counter = 0
899
915
900 def error_print(self, ValueError):
916 def error_print(self, ValueError):
901
917
902 print ValueError, 'Error FTP'
918 print ValueError, 'Error FTP'
903 print "don't worry the program is running..."
919 print "don't worry the program is running..."
904
920
905 def worker_ftp(self, server, username, password, remotefolder, filenameList):
921 def worker_ftp(self, server, username, password, remotefolder, filenameList):
906
922
907 self.ftpClientObj = FTP(server, username, password, remotefolder)
923 self.ftpClientObj = FTP(server, username, password, remotefolder)
908 for filename in filenameList:
924 for filename in filenameList:
909 self.ftpClientObj.upload(filename)
925 self.ftpClientObj.upload(filename)
910 self.ftpClientObj.close()
926 self.ftpClientObj.close()
911
927
912 def ftp_thread(self, server, username, password, remotefolder):
928 def ftp_thread(self, server, username, password, remotefolder):
913 if not(self.status):
929 if not(self.status):
914 return
930 return
915
931
916 p = multiprocessing.Process(target=self.worker_ftp, args=(server, username, password, remotefolder, self.filenameList,))
932 p = multiprocessing.Process(target=self.worker_ftp, args=(server, username, password, remotefolder, self.filenameList,))
917 p.start()
933 p.start()
918
934
919 p.join(3)
935 p.join(3)
920
936
921 if p.is_alive():
937 if p.is_alive():
922 p.terminate()
938 p.terminate()
923 p.join()
939 p.join()
924 print 'killing ftp process...'
940 print 'killing ftp process...'
925 self.status = 0
941 self.status = 0
926 return
942 return
927
943
928 self.status = 1
944 self.status = 1
929 return
945 return
930
946
931 def filterByExt(self, ext, localfolder):
947 def filterByExt(self, ext, localfolder):
932 fnameList = glob.glob1(localfolder,ext)
948 fnameList = glob.glob1(localfolder,ext)
933 self.filenameList = [os.path.join(localfolder,x) for x in fnameList]
949 self.filenameList = [os.path.join(localfolder,x) for x in fnameList]
934
950
935 if len(self.filenameList) == 0:
951 if len(self.filenameList) == 0:
936 self.status = 0
952 self.status = 0
937
953
938 def run(self, dataOut, ext, localfolder, remotefolder, server, username, password, period=1):
954 def run(self, dataOut, ext, localfolder, remotefolder, server, username, password, period=1):
939
955
940 self.counter += 1
956 self.counter += 1
941 if self.counter >= period:
957 if self.counter >= period:
942 self.filterByExt(ext, localfolder)
958 self.filterByExt(ext, localfolder)
943
959
944 self.ftp_thread(server, username, password, remotefolder)
960 self.ftp_thread(server, username, password, remotefolder)
945
961
946 self.counter = 0
962 self.counter = 0
947
963
948 self.status = 1
964 self.status = 1
949
965
General Comments 0
You need to be logged in to leave comments. Login now