##// END OF EJS Templates
Signal Chain GUI v2.1
Miguel Valdez -
r596:bf27846f03e1
parent child
Show More

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

@@ -1,1088 +1,1166
1 1 '''
2 2 Created on September , 2012
3 3 @author:
4 4 '''
5 5 from xml.etree.ElementTree import Element, SubElement
6 6 from xml.etree import ElementTree as ET
7 7 from xml.dom import minidom
8 8
9 9 #import datetime
10 10 from model import *
11 11
12 12 try:
13 13 from gevent import sleep
14 14 except:
15 15 from time import sleep
16 16
17 17 import ast
18 18
19 19 def prettify(elem):
20 20 """Return a pretty-printed XML string for the Element.
21 21 """
22 22 rough_string = ET.tostring(elem, 'utf-8')
23 23 reparsed = minidom.parseString(rough_string)
24 24 return reparsed.toprettyxml(indent=" ")
25 25
26 26 class ParameterConf():
27 27
28 28 id = None
29 29 name = None
30 30 value = None
31 31 format = None
32 32
33 33 __formated_value = None
34 34
35 35 ELEMENTNAME = 'Parameter'
36 36
37 37 def __init__(self):
38 38
39 39 self.format = 'str'
40 40
41 41 def getElementName(self):
42 42
43 43 return self.ELEMENTNAME
44 44
45 45 def getValue(self):
46 46
47 47 if self.__formated_value != None:
48 48
49 49 return self.__formated_value
50 50
51 51 value = self.value
52 52
53 if self.format == 'str':
54 self.__formated_value = str(value)
55 return self.__formated_value
56
57 if value == '':
58 raise ValueError, "%s: This parameter value is empty" %self.name
59
53 60 if self.format == 'bool':
54 61 value = int(value)
55 62
56 63 if self.format == 'list':
57 64 strList = value.split(',')
58 65
59 66 self.__formated_value = strList
60 67
61 68 return self.__formated_value
62 69
63 70 if self.format == 'intlist':
64 71 """
65 72 Example:
66 73 value = (0,1,2)
67 74 """
68 value = value.replace('(', '')
69 value = value.replace(')', '')
70
71 value = value.replace('[', '')
72 value = value.replace(']', '')
73
74 strList = value.split(',')
75 intList = [int(x) for x in strList]
75 intList = ast.literal_eval(value)
76 76
77 77 self.__formated_value = intList
78 78
79 79 return self.__formated_value
80 80
81 81 if self.format == 'floatlist':
82 82 """
83 83 Example:
84 84 value = (0.5, 1.4, 2.7)
85 85 """
86 86
87 value = value.replace('(', '')
88 value = value.replace(')', '')
89
90 value = value.replace('[', '')
91 value = value.replace(']', '')
92
93 strList = value.split(',')
94 floatList = [float(x) for x in strList]
87 floatList = ast.literal_eval(value)
95 88
96 89 self.__formated_value = floatList
97 90
98 91 return self.__formated_value
99 92
100 93 if self.format == 'date':
101 94 strList = value.split('/')
102 95 intList = [int(x) for x in strList]
103 96 date = datetime.date(intList[0], intList[1], intList[2])
104 97
105 98 self.__formated_value = date
106 99
107 100 return self.__formated_value
108 101
109 102 if self.format == 'time':
110 103 strList = value.split(':')
111 104 intList = [int(x) for x in strList]
112 105 time = datetime.time(intList[0], intList[1], intList[2])
113 106
114 107 self.__formated_value = time
115 108
116 109 return self.__formated_value
117 110
118 111 if self.format == 'pairslist':
119 112 """
120 113 Example:
121 114 value = (0,1),(1,2)
122 115 """
123 116
124 value = value.replace('(', '')
125 value = value.replace(')', '')
126
127 value = value.replace('[', '')
128 value = value.replace(']', '')
129
130 strList = value.split(',')
131 intList = [int(item) for item in strList]
132 pairList = []
133 for i in range(len(intList)/2):
134 pairList.append((intList[i*2], intList[i*2 + 1]))
117 pairList = ast.literal_eval(value)
135 118
136 119 self.__formated_value = pairList
137 120
138 121 return self.__formated_value
139 122
140 123 if self.format == 'multilist':
141 124 """
142 125 Example:
143 126 value = (0,1,2),(3,4,5)
144 127 """
145 128 multiList = ast.literal_eval(value)
146 129
147 130 self.__formated_value = multiList
148 131
149 132 return self.__formated_value
150 133
151 134 format_func = eval(self.format)
152 135
153 136 self.__formated_value = format_func(value)
154 137
155 138 return self.__formated_value
139
140 def updateId(self, new_id):
156 141
142 self.id = str(new_id)
143
157 144 def setup(self, id, name, value, format='str'):
158 145
159 self.id = id
146 self.id = str(id)
160 147 self.name = name
161 148 self.value = str(value)
162 149 self.format = str.lower(format)
163 150
164 151 def update(self, name, value, format='str'):
165 152
166 153 self.name = name
167 154 self.value = str(value)
168 155 self.format = format
169 156
170 157 def makeXml(self, opElement):
171 158
172 159 parmElement = SubElement(opElement, self.ELEMENTNAME)
173 160 parmElement.set('id', str(self.id))
174 161 parmElement.set('name', self.name)
175 162 parmElement.set('value', self.value)
176 163 parmElement.set('format', self.format)
177 164
178 165 def readXml(self, parmElement):
179 166
180 167 self.id = parmElement.get('id')
181 168 self.name = parmElement.get('name')
182 169 self.value = parmElement.get('value')
183 170 self.format = str.lower(parmElement.get('format'))
184 171
185 172 #Compatible with old signal chain version
186 173 if self.format == 'int' and self.name == 'idfigure':
187 174 self.name = 'id'
188 175
189 176 def printattr(self):
190 177
191 178 print "Parameter[%s]: name = %s, value = %s, format = %s" %(self.id, self.name, self.value, self.format)
192 179
193 180 class OperationConf():
194 181
195 182 id = None
196 183 name = None
197 184 priority = None
198 185 type = None
199 186
200 187 parmConfObjList = []
201 188
202 189 ELEMENTNAME = 'Operation'
203 190
204 191 def __init__(self):
205 192
206 193 self.id = '0'
207 194 self.name = None
208 195 self.priority = None
209 196 self.type = 'self'
210 197
211 198
212 199 def __getNewId(self):
213 200
214 201 return int(self.id)*10 + len(self.parmConfObjList) + 1
215
202
203 def updateId(self, new_id):
204
205 self.id = str(new_id)
206
207 n = 1
208 for parmObj in self.parmConfObjList:
209
210 idParm = str(int(new_id)*10 + n)
211 parmObj.updateId(idParm)
212
213 n += 1
214
216 215 def getElementName(self):
217 216
218 217 return self.ELEMENTNAME
219 218
220 219 def getParameterObjList(self):
221 220
222 221 return self.parmConfObjList
223 222
224 223 def getParameterObj(self, parameterName):
225 224
226 225 for parmConfObj in self.parmConfObjList:
227 226
228 227 if parmConfObj.name != parameterName:
229 228 continue
230 229
231 230 return parmConfObj
232 231
233 232 return None
234 233
235 234 def getParameterObjfromValue(self,parameterValue):
236 235 for parmConfObj in self.parmConfObjList:
237 236
238 237 if parmConfObj.getValue() != parameterValue:
239 238 continue
240 239
241 240 return parmConfObj.getValue()
242 241
243 242 return None
244 243
245 244 def getParameterValue(self, parameterName):
246 245
247 246 parameterObj = self.getParameterObj(parameterName)
248 247 value = parameterObj.getValue()
249 248
250 249 return value
251 250
252 251 def setup(self, id, name, priority, type):
253 252
254 self.id = id
253 self.id = str(id)
255 254 self.name = name
256 255 self.type = type
257 256 self.priority = priority
258 257
259 258 self.parmConfObjList = []
260 259
261 260 def removeParameters(self):
262 261
263 262 for obj in self.parmConfObjList:
264 263 del obj
265 264
266 265 self.parmConfObjList = []
267 266
268 267 def addParameter(self, name, value, format='str'):
269 268
270 269 id = self.__getNewId()
271 270
272 271 parmConfObj = ParameterConf()
273 272 parmConfObj.setup(id, name, value, format)
274 273
275 274 self.parmConfObjList.append(parmConfObj)
276 275
277 276 return parmConfObj
278 277
279 278 def changeParameter(self, name, value, format='str'):
280 279
281 280 parmConfObj = self.getParameterObj(name)
282 281 parmConfObj.update(name, value, format)
283 282
284 283 return parmConfObj
285 284
286 285 def makeXml(self, upElement):
287 286
288 287 opElement = SubElement(upElement, self.ELEMENTNAME)
289 288 opElement.set('id', str(self.id))
290 289 opElement.set('name', self.name)
291 290 opElement.set('type', self.type)
292 291 opElement.set('priority', str(self.priority))
293 292
294 293 for parmConfObj in self.parmConfObjList:
295 294 parmConfObj.makeXml(opElement)
296 295
297 296 def readXml(self, opElement):
298 297
299 298 self.id = opElement.get('id')
300 299 self.name = opElement.get('name')
301 300 self.type = opElement.get('type')
302 301 self.priority = opElement.get('priority')
303 302
304 303 #Compatible with old signal chain version
305 304 #Use of 'run' method instead 'init'
306 305 if self.type == 'self' and self.name == 'init':
307 306 self.name = 'run'
308 307
309 308 self.parmConfObjList = []
310 309
311 310 parmElementList = opElement.getiterator(ParameterConf().getElementName())
312 311
313 312 for parmElement in parmElementList:
314 313 parmConfObj = ParameterConf()
315 314 parmConfObj.readXml(parmElement)
316 315
317 316 #Compatible with old signal chain version
318 317 #If an 'plot' OPERATION is found, changes name operation by the value of its type PARAMETER
319 318 if self.type != 'self' and self.name == 'Plot':
320 319 if parmConfObj.format == 'str' and parmConfObj.name == 'type':
321 320 self.name = parmConfObj.value
322 321 continue
323 322
324 323 self.parmConfObjList.append(parmConfObj)
325 324
326 325 def printattr(self):
327 326
328 327 print "%s[%s]: name = %s, type = %s, priority = %s" %(self.ELEMENTNAME,
329 328 self.id,
330 329 self.name,
331 330 self.type,
332 331 self.priority)
333 332
334 333 for parmConfObj in self.parmConfObjList:
335 334 parmConfObj.printattr()
336 335
337 336 def createObject(self):
338 337
339 338 if self.type == 'self':
340 339 raise ValueError, "This operation type cannot be created"
341 340
342 341 if self.type == 'external' or self.type == 'other':
343 342 className = eval(self.name)
344 343 opObj = className()
345 344
346 345 return opObj
347 346
348 347 class ProcUnitConf():
349 348
350 349 id = None
351 350 name = None
352 351 datatype = None
353 352 inputId = None
354 353 parentId = None
355 354
356 355 opConfObjList = []
357 356
358 357 procUnitObj = None
359 358 opObjList = []
360 359
361 360 ELEMENTNAME = 'ProcUnit'
362 361
363 362 def __init__(self):
364 363
365 364 self.id = None
366 365 self.datatype = None
367 366 self.name = None
368 367 self.inputId = None
369 368
370 369 self.opConfObjList = []
371 370
372 371 self.procUnitObj = None
373 372 self.opObjDict = {}
374 373
375 374 def __getPriority(self):
376 375
377 376 return len(self.opConfObjList)+1
378 377
379 378 def __getNewId(self):
380 379
381 380 return int(self.id)*10 + len(self.opConfObjList) + 1
382 381
383 382 def getElementName(self):
384 383
385 384 return self.ELEMENTNAME
386 385
387 386 def getId(self):
388 387
389 388 return self.id
390
389
390 def updateId(self, new_id, parentId=parentId):
391
392
393 new_id = int(parentId)*10 + (int(self.id) % 10)
394 new_inputId = int(parentId)*10 + (int(self.inputId) % 10)
395
396 #If this proc unit has not inputs
397 if self.inputId == '0':
398 new_inputId = 0
399
400 n = 1
401 for opConfObj in self.opConfObjList:
402
403 idOp = str(int(new_id)*10 + n)
404 opConfObj.updateId(idOp)
405
406 n += 1
407
408 self.parentId = str(parentId)
409 self.id = str(new_id)
410 self.inputId = str(new_inputId)
411
412
391 413 def getInputId(self):
392 414
393 415 return self.inputId
394 416
395 417 def getOperationObjList(self):
396 418
397 419 return self.opConfObjList
398 420
399 421 def getOperationObj(self, name=None):
400 422
401 423 for opConfObj in self.opConfObjList:
402 424
403 425 if opConfObj.name != name:
404 426 continue
405 427
406 428 return opConfObj
407 429
408 430 return None
409 431
410 432 def getOpObjfromParamValue(self,value=None):
411 433
412 434 for opConfObj in self.opConfObjList:
413 435 if opConfObj.getParameterObjfromValue(parameterValue=value) != value:
414 436 continue
415 437 return opConfObj
416 438 return None
417 439
418 440 def getProcUnitObj(self):
419 441
420 442 return self.procUnitObj
421 443
422 444 def setup(self, id, name, datatype, inputId, parentId=None):
445
446 #Compatible with old signal chain version
447 if datatype==None and name==None:
448 raise ValueError, "datatype or name should be defined"
423 449
424 self.id = id
450 if name==None:
451 if 'Proc' in datatype:
452 name = datatype
453 else:
454 name = '%sProc' %(datatype)
455
456 if datatype==None:
457 datatype = name.replace('Proc','')
458
459 self.id = str(id)
425 460 self.name = name
426 461 self.datatype = datatype
427 462 self.inputId = inputId
428 463 self.parentId = parentId
429 464
430 465 self.opConfObjList = []
431 466
432 467 self.addOperation(name='run', optype='self')
433 468
434 469 def removeOperations(self):
435 470
436 471 for obj in self.opConfObjList:
437 472 del obj
438 473
439 474 self.opConfObjList = []
440 475 self.addOperation(name='run')
441 476
442 477 def addParameter(self, **kwargs):
443 478 '''
444 479 Add parameters to "run" operation
445 480 '''
446 481 opObj = self.opConfObjList[0]
447 482
448 483 opObj.addParameter(**kwargs)
449 484
450 485 return opObj
451 486
452 487 def addOperation(self, name, optype='self'):
453 488
454 489 id = self.__getNewId()
455 490 priority = self.__getPriority()
456 491
457 492 opConfObj = OperationConf()
458 493 opConfObj.setup(id, name=name, priority=priority, type=optype)
459 494
460 495 self.opConfObjList.append(opConfObj)
461 496
462 497 return opConfObj
463 498
464 499 def makeXml(self, procUnitElement):
465 500
466 501 upElement = SubElement(procUnitElement, self.ELEMENTNAME)
467 502 upElement.set('id', str(self.id))
468 503 upElement.set('name', self.name)
469 504 upElement.set('datatype', self.datatype)
470 505 upElement.set('inputId', str(self.inputId))
471 506
472 507 for opConfObj in self.opConfObjList:
473 508 opConfObj.makeXml(upElement)
474 509
475 510 def readXml(self, upElement):
476 511
477 512 self.id = upElement.get('id')
478 513 self.name = upElement.get('name')
479 514 self.datatype = upElement.get('datatype')
480 515 self.inputId = upElement.get('inputId')
481 516
517 if self.ELEMENTNAME == "ReadUnit":
518 self.datatype = self.datatype.replace("Reader", "")
519
520 if self.ELEMENTNAME == "ProcUnit":
521 self.datatype = self.datatype.replace("Proc", "")
522
482 523 if self.inputId == 'None':
483 524 self.inputId = '0'
484 525
485 526 self.opConfObjList = []
486 527
487 528 opElementList = upElement.getiterator(OperationConf().getElementName())
488 529
489 530 for opElement in opElementList:
490 531 opConfObj = OperationConf()
491 532 opConfObj.readXml(opElement)
492 533 self.opConfObjList.append(opConfObj)
493 534
494 535 def printattr(self):
495 536
496 537 print "%s[%s]: name = %s, datatype = %s, inputId = %s" %(self.ELEMENTNAME,
497 538 self.id,
498 539 self.name,
499 540 self.datatype,
500 541 self.inputId)
501 542
502 543 for opConfObj in self.opConfObjList:
503 544 opConfObj.printattr()
504 545
505 546 def createObjects(self):
506 547
507 548 className = eval(self.name)
508 549 procUnitObj = className()
509 550
510 551 for opConfObj in self.opConfObjList:
511 552
512 553 if opConfObj.type == 'self':
513 554 continue
514 555
515 556 opObj = opConfObj.createObject()
516 557
517 558 self.opObjDict[opConfObj.id] = opObj
518 559 procUnitObj.addOperation(opObj, opConfObj.id)
519 560
520 561 self.procUnitObj = procUnitObj
521 562
522 563 return procUnitObj
523 564
524 565 def run(self):
525 566
526 567 finalSts = False
527 568
528 569 for opConfObj in self.opConfObjList:
529 570
530 571 kwargs = {}
531 572 for parmConfObj in opConfObj.getParameterObjList():
532 573 if opConfObj.name == 'run' and parmConfObj.name == 'datatype':
533 574 continue
534 575
535 576 kwargs[parmConfObj.name] = parmConfObj.getValue()
536 577
537 578 #print "\tRunning the '%s' operation with %s" %(opConfObj.name, opConfObj.id)
538 579 sts = self.procUnitObj.call(opType = opConfObj.type,
539 580 opName = opConfObj.name,
540 581 opId = opConfObj.id,
541 582 **kwargs)
542 583 finalSts = finalSts or sts
543 584
544 585 return finalSts
545 586
546 587 def close(self):
547 588
548 589 for opConfObj in self.opConfObjList:
549 590 if opConfObj.type == 'self':
550 591 continue
551 592
552 593 opObj = self.procUnitObj.getOperationObj(opConfObj.id)
553 594 opObj.close()
554 595
555 596 self.procUnitObj.close()
556 597
557 598 return
558 599
559 600 class ReadUnitConf(ProcUnitConf):
560 601
561 602 path = None
562 603 startDate = None
563 604 endDate = None
564 605 startTime = None
565 606 endTime = None
566 607
567 608 ELEMENTNAME = 'ReadUnit'
568 609
569 610 def __init__(self):
570 611
571 612 self.id = None
572 613 self.datatype = None
573 614 self.name = None
574 615 self.inputId = None
575 616
576 617 self.parentId = None
577 618
578 619 self.opConfObjList = []
579 620 self.opObjList = []
580 621
581 622 def getElementName(self):
582 623
583 624 return self.ELEMENTNAME
584 625
585 626 def setup(self, id, name, datatype, path, startDate="", endDate="", startTime="", endTime="", parentId=None, **kwargs):
627
628 #Compatible with old signal chain version
629 if datatype==None and name==None:
630 raise ValueError, "datatype or name should be defined"
631
632 if name==None:
633 if 'Reader' in datatype:
634 name = datatype
635 else:
636 name = '%sReader' %(datatype)
586 637
638 if datatype==None:
639 datatype = name.replace('Reader','')
640
587 641 self.id = id
588 642 self.name = name
589 643 self.datatype = datatype
590 644
591 645 self.path = path
592 646 self.startDate = startDate
593 647 self.endDate = endDate
594 648 self.startTime = startTime
595 649 self.endTime = endTime
596 650
597 651 self.inputId = '0'
598 652 self.parentId = parentId
599 653
600 654 self.addRunOperation(**kwargs)
601 655
602 656 def update(self, datatype, path, startDate, endDate, startTime, endTime, parentId=None, name=None, **kwargs):
603 657
658 #Compatible with old signal chain version
659 if datatype==None and name==None:
660 raise ValueError, "datatype or name should be defined"
661
604 662 if name==None:
605 663 if 'Reader' in datatype:
606 664 name = datatype
607 665 else:
608 666 name = '%sReader' %(datatype)
609 667
610 668 if datatype==None:
611 669 datatype = name.replace('Reader','')
612 670
613 671 self.datatype = datatype
614 672 self.name = name
615 673 self.path = path
616 674 self.startDate = startDate
617 675 self.endDate = endDate
618 676 self.startTime = startTime
619 677 self.endTime = endTime
620 678
621 self.inputId = None
679 self.inputId = '0'
622 680 self.parentId = parentId
623 681
624 682 self.updateRunOperation(**kwargs)
625 683
626 684 def addRunOperation(self, **kwargs):
627 685
628 686 opObj = self.addOperation(name = 'run', optype = 'self')
629 687
630 688 opObj.addParameter(name='datatype' , value=self.datatype, format='str')
631 689 opObj.addParameter(name='path' , value=self.path, format='str')
632 690 opObj.addParameter(name='startDate' , value=self.startDate, format='date')
633 691 opObj.addParameter(name='endDate' , value=self.endDate, format='date')
634 692 opObj.addParameter(name='startTime' , value=self.startTime, format='time')
635 693 opObj.addParameter(name='endTime' , value=self.endTime, format='time')
636 694
637 695 for key, value in kwargs.items():
638 696 opObj.addParameter(name=key, value=value, format=type(value).__name__)
639 697
640 698 return opObj
641 699
642 700 def updateRunOperation(self, **kwargs):
643 701
644 702 opObj = self.getOperationObj(name = 'run')
645 703 opObj.removeParameters()
646 704
647 705 opObj.addParameter(name='datatype' , value=self.datatype, format='str')
648 706 opObj.addParameter(name='path' , value=self.path, format='str')
649 707 opObj.addParameter(name='startDate' , value=self.startDate, format='date')
650 708 opObj.addParameter(name='endDate' , value=self.endDate, format='date')
651 709 opObj.addParameter(name='startTime' , value=self.startTime, format='time')
652 710 opObj.addParameter(name='endTime' , value=self.endTime, format='time')
653 711
654 712 for key, value in kwargs.items():
655 713 opObj.addParameter(name=key, value=value, format=type(value).__name__)
656 714
657 715 return opObj
658 716
659 717 class Project():
660 718
661 719 id = None
662 720 name = None
663 721 description = None
664 722 # readUnitConfObjList = None
665 723 procUnitConfObjDict = None
666 724
667 725 ELEMENTNAME = 'Project'
668 726
669 727 def __init__(self, control=None, dataq=None):
670 728
671 729 self.id = None
672 730 self.name = None
673 731 self.description = None
674 732
675 733 self.procUnitConfObjDict = {}
676 734
677 735 #global data_q
678 736 #data_q = dataq
679 737
680 738 if control==None:
681 control = {}
682 control['stop'] = False
683 control['pause'] = False
739 control = {'stop':False,'pause':False}
684 740
685 741 self.control = control
686 742
687 743 def __getNewId(self):
688 744
689 745 id = int(self.id)*10 + len(self.procUnitConfObjDict) + 1
690 746
691 747 return str(id)
692 748
693 749 def getElementName(self):
694 750
695 751 return self.ELEMENTNAME
696 752
697 753 def getId(self):
698 754
699 755 return self.id
700 756
757 def updateId(self, new_id):
758
759 self.id = str(new_id)
760
761 keyList = self.procUnitConfObjDict.keys()
762 keyList.sort()
763
764 n = 1
765 newProcUnitConfObjDict = {}
766
767 for procKey in keyList:
768
769 procUnitConfObj = self.procUnitConfObjDict[procKey]
770 idProcUnit = str(int(self.id)*10 + n)
771 procUnitConfObj.updateId(idProcUnit, parentId = self.id)
772
773 newProcUnitConfObjDict[idProcUnit] = procUnitConfObj
774 n += 1
775
776 self.procUnitConfObjDict = newProcUnitConfObjDict
777
701 778 def setup(self, id, name, description):
702 779
703 self.id = id
780 self.id = str(id)
704 781 self.name = name
705 782 self.description = description
706 783
707 784 def update(self, name, description):
708 785
709 786 self.name = name
710 787 self.description = description
711 788
712 789 def addReadUnit(self, datatype=None, name=None, **kwargs):
713
714 #Compatible with old signal chain version
715 if datatype==None and name==None:
716 raise ValueError, "datatype or name should be defined"
717
718 if name==None:
719 if 'Reader' in datatype:
720 name = datatype
721 else:
722 name = '%sReader' %(datatype)
723
724 if datatype==None:
725 datatype = name.replace('Reader','')
726 790
727 791 idReadUnit = self.__getNewId()
728 792
729 793 readUnitConfObj = ReadUnitConf()
730 794 readUnitConfObj.setup(idReadUnit, name, datatype, parentId=self.id, **kwargs)
731 795
732 796 self.procUnitConfObjDict[readUnitConfObj.getId()] = readUnitConfObj
733 797
734 798 return readUnitConfObj
735 799
736 800 def addProcUnit(self, inputId='0', datatype=None, name=None):
737 801
738 #Compatible with old signal chain version
739 if datatype==None and name==None:
740 raise ValueError, "datatype or name should be defined"
741
742 if name==None:
743 if 'Proc' in datatype:
744 name = datatype
745 else:
746 name = '%sProc' %(datatype)
747
748 if datatype==None:
749 datatype = name.replace('Proc','')
750
751 802 idProcUnit = self.__getNewId()
752 803
753 804 procUnitConfObj = ProcUnitConf()
754 805 procUnitConfObj.setup(idProcUnit, name, datatype, inputId, parentId=self.id)
755 806
756 807 self.procUnitConfObjDict[procUnitConfObj.getId()] = procUnitConfObj
757 808
758 809 return procUnitConfObj
759 810
760 811 def removeProcUnit(self, id):
761 812
762 813 if id in self.procUnitConfObjDict.keys():
763 814 self.procUnitConfObjDict.pop(id)
764 815
765 816 def getReadUnitId(self):
766 817
767 818 readUnitConfObj = self.getReadUnitObj()
768 819
769 820 return readUnitConfObj.id
770 821
771 822 def getReadUnitObj(self):
772 823
773 824 for obj in self.procUnitConfObjDict.values():
774 825 if obj.getElementName() == "ReadUnit":
775 826 return obj
776 827
777 828 return None
778 829
779 830 def getProcUnitObj(self, id):
780 831
781 832 return self.procUnitConfObjDict[id]
782 833
783 834 def getProcUnitObjByName(self, name):
784 835
785 836 for obj in self.procUnitConfObjDict.values():
786 837 if obj.name == name:
787 838 return obj
788 839
789 840 return None
790 841
791 842 def makeXml(self):
792 843
793 844 projectElement = Element('Project')
794 845 projectElement.set('id', str(self.id))
795 846 projectElement.set('name', self.name)
796 847 projectElement.set('description', self.description)
797 848
798 849 # for readUnitConfObj in self.readUnitConfObjList:
799 850 # readUnitConfObj.makeXml(projectElement)
800 851
801 852 for procUnitConfObj in self.procUnitConfObjDict.values():
802 853 procUnitConfObj.makeXml(projectElement)
803 854
804 855 self.projectElement = projectElement
805 856
806 857 def writeXml(self, filename):
807 858
808 859 self.makeXml()
809 860
810 861 #print prettify(self.projectElement)
811 862
812 863 ElementTree(self.projectElement).write(filename, method='xml')
813 864
814 865 def readXml(self, filename):
815 866
816 867 #tree = ET.parse(filename)
817 868 self.projectElement = None
818 869 # self.readUnitConfObjList = []
819 870 self.procUnitConfObjDict = {}
820 871
821 872 self.projectElement = ElementTree().parse(filename)
822 873
823 874 self.project = self.projectElement.tag
824 875
825 876 self.id = self.projectElement.get('id')
826 877 self.name = self.projectElement.get('name')
827 878 self.description = self.projectElement.get('description')
828 879
829 880 readUnitElementList = self.projectElement.getiterator(ReadUnitConf().getElementName())
830 881
831 882 for readUnitElement in readUnitElementList:
832 883 readUnitConfObj = ReadUnitConf()
833 884 readUnitConfObj.readXml(readUnitElement)
834 885
835 886 if readUnitConfObj.parentId == None:
836 887 readUnitConfObj.parentId = self.id
837 888
838 889 self.procUnitConfObjDict[readUnitConfObj.getId()] = readUnitConfObj
839 890
840 891 procUnitElementList = self.projectElement.getiterator(ProcUnitConf().getElementName())
841 892
842 893 for procUnitElement in procUnitElementList:
843 894 procUnitConfObj = ProcUnitConf()
844 895 procUnitConfObj.readXml(procUnitElement)
845 896
846 897 if procUnitConfObj.parentId == None:
847 898 procUnitConfObj.parentId = self.id
848 899
849 900 self.procUnitConfObjDict[procUnitConfObj.getId()] = procUnitConfObj
850 901
851 902 def printattr(self):
852 903
853 904 print "Project[%s]: name = %s, description = %s" %(self.id,
854 905 self.name,
855 906 self.description)
856 907
857 908 # for readUnitConfObj in self.readUnitConfObjList:
858 909 # readUnitConfObj.printattr()
859 910
860 911 for procUnitConfObj in self.procUnitConfObjDict.values():
861 912 procUnitConfObj.printattr()
862 913
863 914 def createObjects(self):
864 915
865 916 # for readUnitConfObj in self.readUnitConfObjList:
866 917 # readUnitConfObj.createObjects()
867 918
868 919 for procUnitConfObj in self.procUnitConfObjDict.values():
869 920 procUnitConfObj.createObjects()
870 921
871 922 def __connect(self, objIN, thisObj):
872 923
873 924 thisObj.setInput(objIN.getOutputObj())
874 925
875 926 def connectObjects(self):
876 927
877 928 for thisPUConfObj in self.procUnitConfObjDict.values():
878 929
879 930 inputId = thisPUConfObj.getInputId()
880 931
881 932 if int(inputId) == 0:
882 933 continue
883 934
884 935 #Get input object
885 936 puConfINObj = self.procUnitConfObjDict[inputId]
886 937 puObjIN = puConfINObj.getProcUnitObj()
887 938
888 939 #Get current object
889 940 thisPUObj = thisPUConfObj.getProcUnitObj()
890 941
891 942 self.__connect(puObjIN, thisPUObj)
892 943
893 944 def run(self):
894 945
895 946 # for readUnitConfObj in self.readUnitConfObjList:
896 947 # readUnitConfObj.run()
897 948 print
898 949 print "*"*40
899 950 print " Starting SIGNAL CHAIN PROCESSING "
900 951 print "*"*40
901 952 print
902 953
903 954 keyList = self.procUnitConfObjDict.keys()
904 955 keyList.sort()
905 956
906 957 while(True):
907 958
908 959 finalSts = False
909 960
910 961 for procKey in keyList:
911 962 # print "Running the '%s' process with %s" %(procUnitConfObj.name, procUnitConfObj.id)
912 963
913 964 procUnitConfObj = self.procUnitConfObjDict[procKey]
914 965 sts = procUnitConfObj.run()
915 966 finalSts = finalSts or sts
916 967
917 968 #If every process unit finished so end process
918 969 if not(finalSts):
919 970 print "Every process unit have finished"
920 971 break
921 972
922 973 if self.control['pause']:
923 974 print "Process suspended"
924 975
925 976 while True:
926 977 sleep(0.1)
927 978
928 979 if not self.control['pause']:
929 980 break
930 981
931 982 if self.control['stop']:
932 983 break
933 984 print "Process reinitialized"
934 985
935 986 if self.control['stop']:
936 987 print "Process stopped"
937 988 break
938 989
939 990 #Closing every process
940 991 for procKey in keyList:
941 992 procUnitConfObj = self.procUnitConfObjDict[procKey]
942 993 procUnitConfObj.close()
943 994
944 995 print "Process finished"
945 996
946 997 def start(self, filename):
947 998
948 999 self.writeXml(filename)
949 1000 self.readXml(filename)
950 1001
951 1002 self.createObjects()
952 1003 self.connectObjects()
953 1004 self.run()
1005
1006 class ControllerThread(threading.Thread, Project):
1007
1008 def __init__(self, filename):
1009
1010 threading.Thread.__init__(self)
1011 Project.__init__(self)
1012
1013 self.setDaemon(True)
1014
1015 self.filename = filename
1016 self.control = {'stop':False, 'pause':False}
954 1017
1018 def stop(self):
1019 self.control['stop'] = True
1020
1021 def pause(self):
1022 self.control['pause'] = not(self.control['pause'])
1023
1024 def run(self):
1025 self.control['stop'] = False
1026 self.control['pause'] = False
1027
1028 self.readXml(self.filename)
1029 self.createObjects()
1030 self.connectObjects()
1031 Project.run(self)
1032
955 1033 if __name__ == '__main__':
956 1034
957 1035 desc = "Segundo Test"
958 1036 filename = "schain.xml"
959 1037
960 1038 controllerObj = Project()
961 1039
962 1040 controllerObj.setup(id = '191', name='test01', description=desc)
963 1041
964 1042 readUnitConfObj = controllerObj.addReadUnit(datatype='Voltage',
965 1043 path='data/rawdata/',
966 1044 startDate='2011/01/01',
967 1045 endDate='2012/12/31',
968 1046 startTime='00:00:00',
969 1047 endTime='23:59:59',
970 1048 online=1,
971 1049 walk=1)
972 1050
973 1051 # opObj00 = readUnitConfObj.addOperation(name='printInfo')
974 1052
975 1053 procUnitConfObj0 = controllerObj.addProcUnit(datatype='Voltage', inputId=readUnitConfObj.getId())
976 1054
977 1055 opObj10 = procUnitConfObj0.addOperation(name='selectChannels')
978 1056 opObj10.addParameter(name='channelList', value='3,4,5', format='intlist')
979 1057
980 1058 opObj10 = procUnitConfObj0.addOperation(name='selectHeights')
981 1059 opObj10.addParameter(name='minHei', value='90', format='float')
982 1060 opObj10.addParameter(name='maxHei', value='180', format='float')
983 1061
984 1062 opObj12 = procUnitConfObj0.addOperation(name='CohInt', optype='external')
985 1063 opObj12.addParameter(name='n', value='10', format='int')
986 1064
987 1065 procUnitConfObj1 = controllerObj.addProcUnit(datatype='Spectra', inputId=procUnitConfObj0.getId())
988 1066 procUnitConfObj1.addParameter(name='nFFTPoints', value='32', format='int')
989 1067 # procUnitConfObj1.addParameter(name='pairList', value='(0,1),(0,2),(1,2)', format='')
990 1068
991 1069
992 1070 opObj11 = procUnitConfObj1.addOperation(name='SpectraPlot', optype='external')
993 1071 opObj11.addParameter(name='idfigure', value='1', format='int')
994 1072 opObj11.addParameter(name='wintitle', value='SpectraPlot0', format='str')
995 1073 opObj11.addParameter(name='zmin', value='40', format='int')
996 1074 opObj11.addParameter(name='zmax', value='90', format='int')
997 1075 opObj11.addParameter(name='showprofile', value='1', format='int')
998 1076
999 1077 # opObj11 = procUnitConfObj1.addOperation(name='CrossSpectraPlot', optype='external')
1000 1078 # opObj11.addParameter(name='idfigure', value='2', format='int')
1001 1079 # opObj11.addParameter(name='wintitle', value='CrossSpectraPlot', format='str')
1002 1080 # opObj11.addParameter(name='zmin', value='40', format='int')
1003 1081 # opObj11.addParameter(name='zmax', value='90', format='int')
1004 1082
1005 1083
1006 1084 # procUnitConfObj2 = controllerObj.addProcUnit(datatype='Voltage', inputId=procUnitConfObj0.getId())
1007 1085 #
1008 1086 # opObj12 = procUnitConfObj2.addOperation(name='CohInt', optype='external')
1009 1087 # opObj12.addParameter(name='n', value='2', format='int')
1010 1088 # opObj12.addParameter(name='overlapping', value='1', format='int')
1011 1089 #
1012 1090 # procUnitConfObj3 = controllerObj.addProcUnit(datatype='Spectra', inputId=procUnitConfObj2.getId())
1013 1091 # procUnitConfObj3.addParameter(name='nFFTPoints', value='32', format='int')
1014 1092 #
1015 1093 # opObj11 = procUnitConfObj3.addOperation(name='SpectraPlot', optype='external')
1016 1094 # opObj11.addParameter(name='idfigure', value='2', format='int')
1017 1095 # opObj11.addParameter(name='wintitle', value='SpectraPlot1', format='str')
1018 1096 # opObj11.addParameter(name='zmin', value='40', format='int')
1019 1097 # opObj11.addParameter(name='zmax', value='90', format='int')
1020 1098 # opObj11.addParameter(name='showprofile', value='1', format='int')
1021 1099
1022 1100 # opObj11 = procUnitConfObj1.addOperation(name='RTIPlot', optype='external')
1023 1101 # opObj11.addParameter(name='idfigure', value='10', format='int')
1024 1102 # opObj11.addParameter(name='wintitle', value='RTI', format='str')
1025 1103 ## opObj11.addParameter(name='xmin', value='21', format='float')
1026 1104 ## opObj11.addParameter(name='xmax', value='22', format='float')
1027 1105 # opObj11.addParameter(name='zmin', value='40', format='int')
1028 1106 # opObj11.addParameter(name='zmax', value='90', format='int')
1029 1107 # opObj11.addParameter(name='showprofile', value='1', format='int')
1030 1108 # opObj11.addParameter(name='timerange', value=str(60), format='int')
1031 1109
1032 1110 # opObj10 = procUnitConfObj1.addOperation(name='selectChannels')
1033 1111 # opObj10.addParameter(name='channelList', value='0,2,4,6', format='intlist')
1034 1112 #
1035 1113 # opObj12 = procUnitConfObj1.addOperation(name='IncohInt', optype='external')
1036 1114 # opObj12.addParameter(name='n', value='2', format='int')
1037 1115 #
1038 1116 # opObj11 = procUnitConfObj1.addOperation(name='SpectraPlot', optype='external')
1039 1117 # opObj11.addParameter(name='idfigure', value='2', format='int')
1040 1118 # opObj11.addParameter(name='wintitle', value='SpectraPlot10', format='str')
1041 1119 # opObj11.addParameter(name='zmin', value='70', format='int')
1042 1120 # opObj11.addParameter(name='zmax', value='90', format='int')
1043 1121 #
1044 1122 # opObj10 = procUnitConfObj1.addOperation(name='selectChannels')
1045 1123 # opObj10.addParameter(name='channelList', value='2,6', format='intlist')
1046 1124 #
1047 1125 # opObj12 = procUnitConfObj1.addOperation(name='IncohInt', optype='external')
1048 1126 # opObj12.addParameter(name='n', value='2', format='int')
1049 1127 #
1050 1128 # opObj11 = procUnitConfObj1.addOperation(name='SpectraPlot', optype='external')
1051 1129 # opObj11.addParameter(name='idfigure', value='3', format='int')
1052 1130 # opObj11.addParameter(name='wintitle', value='SpectraPlot10', format='str')
1053 1131 # opObj11.addParameter(name='zmin', value='70', format='int')
1054 1132 # opObj11.addParameter(name='zmax', value='90', format='int')
1055 1133
1056 1134
1057 1135 # opObj12 = procUnitConfObj1.addOperation(name='decoder')
1058 1136 # opObj12.addParameter(name='ncode', value='2', format='int')
1059 1137 # opObj12.addParameter(name='nbauds', value='8', format='int')
1060 1138 # opObj12.addParameter(name='code0', value='001110011', format='int')
1061 1139 # opObj12.addParameter(name='code1', value='001110011', format='int')
1062 1140
1063 1141
1064 1142
1065 1143 # procUnitConfObj2 = controllerObj.addProcUnit(datatype='Spectra', inputId=procUnitConfObj1.getId())
1066 1144 #
1067 1145 # opObj21 = procUnitConfObj2.addOperation(name='IncohInt', optype='external')
1068 1146 # opObj21.addParameter(name='n', value='2', format='int')
1069 1147 #
1070 1148 # opObj11 = procUnitConfObj2.addOperation(name='SpectraPlot', optype='external')
1071 1149 # opObj11.addParameter(name='idfigure', value='4', format='int')
1072 1150 # opObj11.addParameter(name='wintitle', value='SpectraPlot OBJ 2', format='str')
1073 1151 # opObj11.addParameter(name='zmin', value='70', format='int')
1074 1152 # opObj11.addParameter(name='zmax', value='90', format='int')
1075 1153
1076 1154 print "Escribiendo el archivo XML"
1077 1155
1078 1156 controllerObj.writeXml(filename)
1079 1157
1080 1158 print "Leyendo el archivo XML"
1081 1159 controllerObj.readXml(filename)
1082 1160 #controllerObj.printattr()
1083 1161
1084 1162 controllerObj.createObjects()
1085 1163 controllerObj.connectObjects()
1086 1164 controllerObj.run()
1087 1165
1088 1166 No newline at end of file
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
@@ -1,87 +1,93
1 1 """
2 2 Classes to save parameters from Windows.
3 3
4 4 -Project window
5 5 -Voltage window
6 6 -Spectra window
7 7 -SpectraHeis window
8 8 -Correlation window
9 9
10 10 """
11 11
12 12 class ProjectParms():
13 13
14 14 parmsOk = False
15 project_name = None
15 name = None
16 description = None
16 17 datatype = None
17 18 ext = None
18 19 dpath = None
19 20 startDate = None
20 21 endDate = None
21 22 startTime = None
22 23 endTime = None
23 24 online = None
24 25 delay = None
25 26 walk = None
26 27 expLabel = None
27 28 set = None
28 29 ippKm = None
29 30
30 31 def __init__(self):
31 32
32 33 self.parmsOk = True
34 self.description = ''
33 35 self.expLabel = ''
34 self.set = None
35 self.ippKm = None
36 self.set = ''
37 self.ippKm = ''
36 38 self.walk = None
37 self.delay = None
39 self.delay = ''
38 40
39 41 def getDatatypeIndex(self):
40 42
41 43 indexDatatype = None
42 44
43 if self.datatype.lower() == 'voltage':
45 if 'voltage' in self.datatype.lower():
44 46 indexDatatype = 0
45 if self.datatype.lower() == 'spectra':
47 if 'spectra' in self.datatype.lower():
46 48 indexDatatype = 1
47 if self.datatype.lower() == 'fits':
49 if 'fits' in self.datatype.lower():
48 50 indexDatatype = 2
49 if self.datatype.lower() == 'usrp':
51 if 'usrp' in self.datatype.lower():
50 52 indexDatatype = 3
51 53
52 54 return indexDatatype
53 55
54 56 def getExt(self):
55 57
56 58 ext = None
57 59
58 60 if self.datatype.lower() == 'voltage':
59 61 ext = '.r'
60 62 if self.datatype.lower() == 'spectra':
61 63 ext = '.pdata'
62 64 if self.datatype.lower() == 'fits':
63 65 ext = '.fits'
64 66 if self.datatype.lower() == 'usrp':
65 67 ext = '.hdf5'
66 68
67 69 return ext
68 70
69 71 def set(self, project_name, datatype, ext, dpath, online,
70 72 startDate=None, endDate=None, startTime=None, endTime=None,
71 73 delay=None, walk=None, set=None, ippKm=None, parmsOk=True):
72 74
73 project_name = project_name
75 name = project_name
74 76 datatype = datatype
75 77 ext = ext
76 78 dpath = dpath
77 79 startDate = startDate
78 80 endDate = endDate
79 81 startTime = startTime
80 82 endTime = endTime
81 83 online = online
82 84 delay = delay
83 85 walk = walk
84 86 set = set
85 87 ippKm = ippKm
86 88
87 self.parmsOk = parmsOk No newline at end of file
89 self.parmsOk = parmsOk
90
91 def isValid(self):
92
93 return self.parmsOk No newline at end of file
@@ -1,311 +1,311
1 1 # -*- coding: utf-8 -*-
2 2
3 3 # Form implementation generated from reading ui file '/home/alex/ui/MainWindow_21_02_13_v49.ui'
4 4 #
5 5 # Created: Mon Mar 24 13:28:36 2014
6 6 # by: PyQt4 UI code generator 4.10
7 7 #
8 8 # WARNING! All changes made in this file will be lost!
9 9
10 10 from PyQt4 import QtCore, QtGui
11 11 from windows import *
12 12
13 13 try:
14 14 _fromUtf8 = QtCore.QString.fromUtf8
15 15 except AttributeError:
16 16 def _fromUtf8(s):
17 17 return s
18 18
19 19 try:
20 20 _encoding = QtGui.QApplication.UnicodeUTF8
21 21 def _translate(context, text, disambig):
22 22 return QtGui.QApplication.translate(context, text, disambig, _encoding)
23 23 except AttributeError:
24 24 def _translate(context, text, disambig):
25 25 return QtGui.QApplication.translate(context, text, disambig)
26 26
27 27 import os
28 28 from schainpy.gui.figures import tools
29 29
30 30 FIGURES_PATH = tools.get_path()
31 31
32 32 class Ui_EnvWindow(object):
33 33 paused = False
34 34
35 35 def restorePauseIcon(self):
36 36
37 37 iconPause = QtGui.QIcon()
38 38 iconPause.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH,"pause.png") )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
39 39 self.actionPauseToolbar.setIcon(iconPause)
40 40
41 41 self.paused = False
42 42
43 43 def changePauseIcon(self):
44 44
45 45 if self.paused == False:
46 46 iconPauseRed = QtGui.QIcon()
47 47 iconPauseRed.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH,"pausered.png") )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
48 48 self.actionPauseToolbar.setIcon(iconPauseRed)
49 49 self.paused = True
50 50 return 0
51 51
52 52 if self.paused:
53 53 iconPause = QtGui.QIcon()
54 54 iconPause.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH,"pause.png") )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
55 55 self.actionPauseToolbar.setIcon(iconPause)
56 56 self.paused = False
57 57 return 0
58 58
59 59 def setupUi(self, MainWindow):
60 60
61 61 MainWindow.setObjectName(_fromUtf8("MainWindow"))
62 MainWindow.resize(1203, 711)
62 MainWindow.resize(1200, 800)
63 63
64 64 self.centralWidget = QtGui.QWidget(MainWindow)
65 65 self.centralWidget.setObjectName(_fromUtf8("centralWidget"))
66 66 self.gridLayout_16 = QtGui.QGridLayout(self.centralWidget)
67 67 self.gridLayout_16.setObjectName(_fromUtf8("gridLayout_16"))
68 68 self.splitter_2 = QtGui.QSplitter(self.centralWidget)
69 69 self.splitter_2.setOrientation(QtCore.Qt.Horizontal)
70 70 self.splitter_2.setObjectName(_fromUtf8("splitter_2"))
71 71 self.projectExplorerTree = QtGui.QTreeView(self.splitter_2)
72 72 self.projectExplorerTree.setObjectName(_fromUtf8("projectExplorerTree"))
73 73 self.splitter = QtGui.QSplitter(self.splitter_2)
74 74 self.splitter.setOrientation(QtCore.Qt.Vertical)
75 75 self.splitter.setObjectName(_fromUtf8("splitter"))
76 76 self.tabWidgetProject = QtGui.QTabWidget(self.splitter)
77 77 self.tabWidgetProject.setMinimumSize(QtCore.QSize(0, 278))
78 78 self.tabWidgetProject.setMaximumSize(QtCore.QSize(16777215, 16777215))
79 79 self.tabWidgetProject.setObjectName(_fromUtf8("tabWidgetProject"))
80 80
81 81 self.tabConsole = QtGui.QTabWidget(self.splitter)
82 82 self.tabConsole.setMinimumSize(QtCore.QSize(0, 0))
83 83 self.tabConsole.setObjectName(_fromUtf8("tabConsole"))
84 84 self.tab_5 = QtGui.QWidget()
85 85 self.tab_5.setObjectName(_fromUtf8("tab_5"))
86 86 self.gridLayout_4 = QtGui.QGridLayout(self.tab_5)
87 87 self.gridLayout_4.setObjectName(_fromUtf8("gridLayout_4"))
88 88 self.console = QtGui.QTextEdit(self.tab_5)
89 89 self.console.setObjectName(_fromUtf8("console"))
90 90 self.gridLayout_4.addWidget(self.console, 0, 0, 1, 1)
91 91 self.tabConsole.addTab(self.tab_5, _fromUtf8(""))
92 92 self.tabWidget = QtGui.QTabWidget(self.splitter_2)
93 93 self.tabWidget.setObjectName(_fromUtf8("tabWidget"))
94 94 self.tabProjectProperty = QtGui.QWidget()
95 95 self.tabProjectProperty.setObjectName(_fromUtf8("tabProjectProperty"))
96 96 self.gridLayout_8 = QtGui.QGridLayout(self.tabProjectProperty)
97 97 self.gridLayout_8.setObjectName(_fromUtf8("gridLayout_8"))
98 98 self.treeProjectProperties = QtGui.QTreeView(self.tabProjectProperty)
99 99 self.treeProjectProperties.setObjectName(_fromUtf8("treeProjectProperties"))
100 100 self.gridLayout_8.addWidget(self.treeProjectProperties, 0, 0, 1, 1)
101 101 self.tabWidget.addTab(self.tabProjectProperty, _fromUtf8(""))
102 102 self.gridLayout_16.addWidget(self.splitter_2, 1, 0, 1, 1)
103 103
104 104 MainWindow.setCentralWidget(self.centralWidget)
105 105 self.toolBar = QtGui.QToolBar(MainWindow)
106 106 self.toolBar.setObjectName(_fromUtf8("toolBar"))
107 107 MainWindow.addToolBar(QtCore.Qt.TopToolBarArea, self.toolBar)
108 108
109 109 self.menuBar = QtGui.QMenuBar(MainWindow)
110 110 self.menuBar.setGeometry(QtCore.QRect(0, 0, 1065, 25))
111 111 self.menuBar.setObjectName(_fromUtf8("menuBar"))
112 112 self.menuProject = QtGui.QMenu(self.menuBar)
113 113 self.menuProject.setObjectName(_fromUtf8("menuProject"))
114 114 self.menuRun = QtGui.QMenu(self.menuBar)
115 115 self.menuRun.setObjectName(_fromUtf8("menuRun"))
116 116 self.menuOptions = QtGui.QMenu(self.menuBar)
117 117 self.menuOptions.setObjectName(_fromUtf8("menuOptions"))
118 118 self.menuHelp = QtGui.QMenu(self.menuBar)
119 119 self.menuHelp.setObjectName(_fromUtf8("menuHelp"))
120 120 MainWindow.setMenuBar(self.menuBar)
121 121
122 122 iconOpen = QtGui.QIcon()
123 123 iconOpen.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH,"open.gif") )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
124 124 iconCreate = QtGui.QIcon()
125 125 iconCreate.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH,"project.gif") )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
126 126 iconSave = QtGui.QIcon()
127 127 iconSave.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH,"saveicon.jpeg") )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
128 128 iconStart = QtGui.QIcon()
129 129 iconStart.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH,"startServer.png") )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
130 130 iconStop = QtGui.QIcon()
131 131 iconStop.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH,"stopServer.png") )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
132 132 iconPause = QtGui.QIcon()
133 133 iconPause.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH,"pause.png") )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
134 134 iconAddPU = QtGui.QIcon()
135 135 iconAddPU.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH,"add_PU.gif") )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
136 136
137 137 self.actionOpen = QtGui.QAction(MainWindow)
138 138 self.actionOpen.setIcon(iconOpen)
139 139 self.actionOpen.setObjectName(_fromUtf8("actionOpen"))
140 140 self.actionCreate = QtGui.QAction(MainWindow)
141 141 self.actionCreate.setIcon(iconCreate)
142 142 self.actionCreate.setObjectName(_fromUtf8("actionCreate"))
143 143 self.actionSave = QtGui.QAction(MainWindow)
144 144 self.actionSave.setIcon(iconSave)
145 145 self.actionSave.setObjectName(_fromUtf8("actionSave"))
146 146 self.actionClose = QtGui.QAction(MainWindow)
147 147 self.actionClose.setObjectName(_fromUtf8("actionClose"))
148 148 self.actionStart = QtGui.QAction(MainWindow)
149 149 self.actionStart.setIcon(iconStart)
150 150 self.actionStart.setObjectName(_fromUtf8("actionStart"))
151 151 self.actionPause = QtGui.QAction(MainWindow)
152 152 self.actionPause.setIcon(iconPause)
153 153 self.actionPause.setObjectName(_fromUtf8("actionPause"))
154 154 self.actionStop = QtGui.QAction(MainWindow)
155 155 self.actionStop.setIcon(iconStop)
156 156 self.actionStop.setObjectName(_fromUtf8("actionStop"))
157 157 self.actionAbout = QtGui.QAction(MainWindow)
158 158 self.actionAbout.setObjectName(_fromUtf8("actionAbout"))
159 159 self.actionOpenToolbar = QtGui.QAction(MainWindow)
160 160 self.actionOpenToolbar.setIcon(iconOpen)
161 161 self.actionOpenToolbar.setObjectName(_fromUtf8("actionOpenToolbar"))
162 162 self.actionCreateToolbar = QtGui.QAction(MainWindow)
163 163 self.actionCreateToolbar.setIcon(iconCreate)
164 164 self.actionCreateToolbar.setObjectName(_fromUtf8("actionCreateToolbar"))
165 165 self.actionSaveToolbar = QtGui.QAction(MainWindow)
166 166 self.actionSaveToolbar.setIcon(iconSave)
167 167 self.actionSaveToolbar.setObjectName(_fromUtf8("actionSaveToolbar"))
168 168 self.actionStarToolbar = QtGui.QAction(MainWindow)
169 169 self.actionStarToolbar.setIcon(iconStart)
170 170 self.actionStarToolbar.setObjectName(_fromUtf8("actionStarToolbar"))
171 171 self.actionStopToolbar = QtGui.QAction(MainWindow)
172 172 self.actionStopToolbar.setIcon(iconStop)
173 173 self.actionStopToolbar.setObjectName(_fromUtf8("actionStopToolbar"))
174 174 self.actionPauseToolbar = QtGui.QAction(MainWindow)
175 175 self.actionPause.setIcon(iconPause)
176 176 self.actionPauseToolbar.setIcon(iconPause)
177 177 self.actionPauseToolbar.setObjectName(_fromUtf8("actionPauseToolbar"))
178 178 self.actionAddPU = QtGui.QAction(MainWindow)
179 179 self.actionAddPU.setIcon(iconAddPU)
180 180 self.actionAddPU.setObjectName(_fromUtf8("actionAddPU"))
181 181 self.actionFTP = QtGui.QAction(MainWindow)
182 182 self.actionFTP.setObjectName(_fromUtf8("actionFTP"))
183 183 self.toolBar.addAction(self.actionOpenToolbar)
184 184 self.toolBar.addSeparator()
185 185 self.toolBar.addAction(self.actionCreateToolbar)
186 186 self.toolBar.addSeparator()
187 187 self.toolBar.addAction(self.actionAddPU)
188 188 self.toolBar.addSeparator()
189 189 self.toolBar.addAction(self.actionSaveToolbar)
190 190 self.toolBar.addSeparator()
191 191 self.toolBar.addAction(self.actionStarToolbar)
192 192 self.toolBar.addSeparator()
193 193 self.toolBar.addAction(self.actionPauseToolbar)
194 194 self.toolBar.addSeparator()
195 195 self.toolBar.addAction(self.actionStopToolbar)
196 196 self.toolBar.addSeparator()
197 197
198 198 self.paused=False
199 199 self.actionPause.triggered.connect(self.changePauseIcon)
200 200 self.actionPauseToolbar.triggered.connect(self.changePauseIcon)
201 201
202 202 self.menuProject.addAction(self.actionOpen)
203 203 self.menuProject.addAction(self.actionCreate)
204 204 self.menuProject.addAction(self.actionSave)
205 205 self.menuProject.addAction(self.actionClose)
206 206 self.menuRun.addAction(self.actionStart)
207 207 self.menuRun.addAction(self.actionPause)
208 208 self.menuRun.addAction(self.actionStop)
209 209 self.menuOptions.addAction(self.actionFTP)
210 210 self.menuHelp.addAction(self.actionAbout)
211 211 self.menuBar.addAction(self.menuProject.menuAction())
212 212 self.menuBar.addAction(self.menuRun.menuAction())
213 213 self.menuBar.addAction(self.menuOptions.menuAction())
214 214 self.menuBar.addAction(self.menuHelp.menuAction())
215 215
216 216 self.tabConsole.setCurrentIndex(0)
217 217 self.tabWidget.setCurrentIndex(0)
218 218
219 219 def retranslateUi(self, MainWindow):
220 220
221 221 MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow", None))
222 222
223 223 self.tabConsole.setTabText(self.tabConsole.indexOf(self.tab_5), _translate("MainWindow", "Console", None))
224 224
225 225 self.tabWidget.setTabText(self.tabWidget.indexOf(self.tabProjectProperty), _translate("MainWindow", "Project Property", None))
226 226 self.toolBar.setWindowTitle(_translate("MainWindow", "toolBar", None))
227 227 self.menuProject.setTitle(_translate("MainWindow", "Project", None))
228 228 self.menuRun.setTitle(_translate("MainWindow", "Run", None))
229 229 self.menuOptions.setTitle(_translate("MainWindow", "Options", None))
230 230 self.menuHelp.setTitle(_translate("MainWindow", "Help", None))
231 231 self.actionOpen.setText(_translate("MainWindow", "Open", None))
232 232 self.actionCreate.setText(_translate("MainWindow", "Create", None))
233 233 self.actionSave.setText(_translate("MainWindow", "Save", None))
234 234 self.actionClose.setText(_translate("MainWindow", "Close", None))
235 235 self.actionStart.setText(_translate("MainWindow", "Start", None))
236 236 self.actionPause.setText(_translate("MainWindow", "Pause", None))
237 237 self.actionStop.setText(_translate("MainWindow", "Stop", None))
238 238 self.actionAbout.setText(_translate("MainWindow", "About", None))
239 239 self.actionOpenToolbar.setText(_translate("MainWindow", "openToolbar", None))
240 240 self.actionOpenToolbar.setToolTip(_translate("MainWindow", "Open a project", None))
241 241 self.actionCreateToolbar.setText(_translate("MainWindow", "createToolbar", None))
242 242 self.actionCreateToolbar.setToolTip(_translate("MainWindow", "Create a new project", None))
243 243 self.actionSaveToolbar.setText(_translate("MainWindow", "saveToolbar", None))
244 244 self.actionSaveToolbar.setToolTip(_translate("MainWindow", "Save a project", None))
245 245 self.actionStarToolbar.setText(_translate("MainWindow", "starToolbar", None))
246 246 self.actionStarToolbar.setToolTip(_translate("MainWindow", "Start process", None))
247 247 self.actionStopToolbar.setText(_translate("MainWindow", "stopToolbar", None))
248 248 self.actionStopToolbar.setToolTip(_translate("MainWindow", "Stop process", None))
249 249 self.actionPauseToolbar.setText(_translate("MainWindow", "pauseToolbar", None))
250 250 self.actionPauseToolbar.setToolTip(_translate("MainWindow", "Pause process", None))
251 251 self.actionAddPU.setText(_translate("MainWindow", "Add Processing Unit", None))
252 252 self.actionFTP.setText(_translate("MainWindow", "FTP", None))
253 253
254 254 def closeEvent(self, event):
255 255
256 256 reply = QtGui.QMessageBox.question(self, 'Message',
257 257 "Are you sure to quit?", QtGui.QMessageBox.Yes |
258 258 QtGui.QMessageBox.No, QtGui.QMessageBox.No)
259 259 if reply == QtGui.QMessageBox.Yes:
260 260 event.accept()
261 261 else:
262 262 event.ignore()
263 263
264 264 class Ui_BasicWindow(Ui_EnvWindow, Ui_ProjectTab, Ui_VoltageTab, Ui_SpectraTab, Ui_SpectraHeisTab, Ui_CorrelationTab):
265 265
266 266 def setupUi(self, MainWindow):
267 267
268 268 Ui_EnvWindow.setupUi(self, MainWindow)
269 269
270 270 Ui_ProjectTab.setupUi(self)
271 271 Ui_VoltageTab.setupUi(self)
272 272 Ui_SpectraTab.setupUi(self)
273 273 Ui_SpectraHeisTab.setupUi(self)
274 274 Ui_CorrelationTab.setupUi(self)
275 275
276 276 self.retranslateUi(MainWindow)
277 277
278 278 QtCore.QMetaObject.connectSlotsByName(MainWindow)
279 279
280 280 def retranslateUi(self, MainWindow):
281 281
282 282 Ui_EnvWindow.retranslateUi(self, MainWindow)
283 283
284 284 Ui_ProjectTab.retranslateUi(self)
285 285 Ui_VoltageTab.retranslateUi(self)
286 286 Ui_SpectraTab.retranslateUi(self)
287 287 Ui_SpectraHeisTab.retranslateUi(self)
288 288 Ui_CorrelationTab.retranslateUi(self)
289 289
290 290
291 291 class Ui_AdvancedWindow(Ui_EnvWindow):
292 292
293 293 def setupUi(self, AdvancedWindow):
294 294
295 295 Ui_MainWindow.setupUi(self, AdvancedWindow)
296 296
297 297 def retranslateUi(self, AdvancedWindow):
298 298
299 299 Ui_MainWindow.retranslateUi(self, AdvancedWindow)
300 300
301 301
302 302
303 303 if __name__ == "__main__":
304 304 import sys
305 305 app = QtGui.QApplication(sys.argv)
306 306 MainWindow = QtGui.QMainWindow()
307 307 ui = Ui_BasicWindow()
308 308 ui.setupUi(MainWindow)
309 309 MainWindow.show()
310 310 sys.exit(app.exec_())
311 311
@@ -1,173 +1,182
1 1
2 2 from PyQt4 import QtCore, QtGui
3 3
4 4 try:
5 5 _fromUtf8 = QtCore.QString.fromUtf8
6 6 except AttributeError:
7 7 def _fromUtf8(s):
8 8 return s
9 9
10 10 try:
11 11 _encoding = QtGui.QApplication.UnicodeUTF8
12 12 def _translate(context, text, disambig):
13 13 return QtGui.QApplication.translate(context, text, disambig, _encoding)
14 14 except AttributeError:
15 15 def _translate(context, text, disambig):
16 16 return QtGui.QApplication.translate(context, text, disambig)
17 17
18 18 class Ui_ProjectTab(object):
19 19
20 20 def setupUi(self):
21 21
22 22 self.tabProject = QtGui.QWidget()
23 23 self.tabProject.setObjectName(_fromUtf8("tabProject"))
24 24 self.gridLayout_15 = QtGui.QGridLayout(self.tabProject)
25 25 self.gridLayout_15.setObjectName(_fromUtf8("gridLayout_15"))
26 26 self.frame = QtGui.QFrame(self.tabProject)
27 27 self.frame.setFrameShape(QtGui.QFrame.StyledPanel)
28 28 self.frame.setFrameShadow(QtGui.QFrame.Raised)
29 29 self.frame.setObjectName(_fromUtf8("frame"))
30 30 self.gridLayout_2 = QtGui.QGridLayout(self.frame)
31 31 self.gridLayout_2.setObjectName(_fromUtf8("gridLayout_2"))
32 32 self.label = QtGui.QLabel(self.frame)
33 33 self.label.setObjectName(_fromUtf8("label"))
34 34 self.gridLayout_2.addWidget(self.label, 0, 0, 1, 1)
35 35 self.proName = QtGui.QLineEdit(self.frame)
36 36 self.proName.setObjectName(_fromUtf8("proName"))
37 37 self.gridLayout_2.addWidget(self.proName, 0, 1, 1, 8)
38 38 self.label_11 = QtGui.QLabel(self.frame)
39 39 self.label_11.setObjectName(_fromUtf8("label_11"))
40 40 self.gridLayout_2.addWidget(self.label_11, 1, 0, 1, 1)
41 41 self.proComDataType = QtGui.QComboBox(self.frame)
42 42 self.proComDataType.setObjectName(_fromUtf8("proComDataType"))
43 43 self.proComDataType.addItem(_fromUtf8(""))
44 44 self.proComDataType.addItem(_fromUtf8(""))
45 45 self.proComDataType.addItem(_fromUtf8(""))
46 46 self.proComDataType.addItem(_fromUtf8(""))
47 47 self.gridLayout_2.addWidget(self.proComDataType, 1, 1, 1, 5)
48 48 self.proDataType = QtGui.QLineEdit(self.frame)
49 49 self.proDataType.setObjectName(_fromUtf8("proDataType"))
50 50 self.gridLayout_2.addWidget(self.proDataType, 1, 6, 1, 3)
51 51 self.label_15 = QtGui.QLabel(self.frame)
52 52 self.label_15.setObjectName(_fromUtf8("label_15"))
53 53 self.gridLayout_2.addWidget(self.label_15, 2, 0, 1, 1)
54 54 self.proToolPath = QtGui.QToolButton(self.frame)
55 55 self.proToolPath.setObjectName(_fromUtf8("proToolPath"))
56 56 self.gridLayout_2.addWidget(self.proToolPath, 2, 1, 1, 1)
57 57 self.proDataPath = QtGui.QLineEdit(self.frame)
58 58 self.proDataPath.setObjectName(_fromUtf8("proDataPath"))
59 59 self.gridLayout_2.addWidget(self.proDataPath, 2, 2, 1, 7)
60 60 self.label_23 = QtGui.QLabel(self.frame)
61 61 self.label_23.setObjectName(_fromUtf8("label_23"))
62 62 self.gridLayout_2.addWidget(self.label_23, 3, 0, 1, 1)
63 63 self.proComReadMode = QtGui.QComboBox(self.frame)
64 64 self.proComReadMode.setObjectName(_fromUtf8("proComReadMode"))
65 self.proComReadMode.addItem(_fromUtf8("------"))
65 66 self.proComReadMode.addItem(_fromUtf8(""))
66 self.proComReadMode.addItem(_fromUtf8(""))
67 self.gridLayout_2.addWidget(self.proComReadMode, 3, 1, 1, 2)
67 self.gridLayout_2.addWidget(self.proComReadMode, 3, 1, 1, 4)
68 68 self.label_33 = QtGui.QLabel(self.frame)
69 69 self.label_33.setObjectName(_fromUtf8("label_33"))
70 self.gridLayout_2.addWidget(self.label_33, 3, 5, 1, 2)
70 self.gridLayout_2.addWidget(self.label_33, 3, 5, 1, 1)
71 71 self.proDelay = QtGui.QLineEdit(self.frame)
72 72 self.proDelay.setObjectName(_fromUtf8("proDelay"))
73 self.gridLayout_2.addWidget(self.proDelay, 3, 8, 1, 1)
73 self.gridLayout_2.addWidget(self.proDelay, 3, 6, 1, 1)
74 74 self.label_32 = QtGui.QLabel(self.frame)
75 75 self.label_32.setObjectName(_fromUtf8("label_32"))
76 76 self.gridLayout_2.addWidget(self.label_32, 4, 0, 1, 1)
77 77 self.proComWalk = QtGui.QComboBox(self.frame)
78 78 self.proComWalk.setObjectName(_fromUtf8("proComWalk"))
79 79 self.proComWalk.addItem(_fromUtf8(""))
80 80 self.proComWalk.addItem(_fromUtf8(""))
81 81 self.gridLayout_2.addWidget(self.proComWalk, 4, 1, 1, 8)
82 82 self.proLoadButton = QtGui.QPushButton(self.frame)
83 83 self.proLoadButton.setObjectName(_fromUtf8("proLoadButton"))
84 84 self.gridLayout_2.addWidget(self.proLoadButton, 5, 0, 1, 9)
85 self.label_10 = QtGui.QLabel(self.frame)
86 self.label_10.setObjectName(_fromUtf8("label_10"))
87 self.gridLayout_2.addWidget(self.label_10, 3, 3, 1, 1)
85 self.labelSet = QtGui.QLabel(self.frame)
86 self.labelSet.setObjectName(_fromUtf8("labelSet"))
87 self.gridLayout_2.addWidget(self.labelSet, 3, 7, 1, 1)
88 88 self.proSet = QtGui.QLineEdit(self.frame)
89 89 self.proSet.setObjectName(_fromUtf8("proSet"))
90 self.gridLayout_2.addWidget(self.proSet, 3, 4, 1, 1)
90 self.gridLayout_2.addWidget(self.proSet, 3, 8, 1, 1)
91 self.labelIPPKm = QtGui.QLabel(self.frame)
92 self.labelIPPKm.setObjectName(_fromUtf8("labelIPPKm"))
93 self.gridLayout_2.addWidget(self.labelIPPKm, 3, 7, 1, 1)
94 self.proIPPKm = QtGui.QLineEdit(self.frame)
95 self.proIPPKm.setObjectName(_fromUtf8("proIPPKm"))
96 self.gridLayout_2.addWidget(self.proIPPKm, 3, 8, 1, 1)
97
98
91 99 self.gridLayout_15.addWidget(self.frame, 0, 0, 1, 1)
92 100 self.frame_2 = QtGui.QFrame(self.tabProject)
93 101 self.frame_2.setFrameShape(QtGui.QFrame.StyledPanel)
94 102 self.frame_2.setFrameShadow(QtGui.QFrame.Raised)
95 103 self.frame_2.setObjectName(_fromUtf8("frame_2"))
96 104 self.gridLayout_10 = QtGui.QGridLayout(self.frame_2)
97 105 self.gridLayout_10.setObjectName(_fromUtf8("gridLayout_10"))
98 106 self.label_27 = QtGui.QLabel(self.frame_2)
99 107 self.label_27.setObjectName(_fromUtf8("label_27"))
100 108 self.gridLayout_10.addWidget(self.label_27, 0, 0, 1, 1)
101 109 self.proComStartDate = QtGui.QComboBox(self.frame_2)
102 110 self.proComStartDate.setObjectName(_fromUtf8("proComStartDate"))
103 111 self.gridLayout_10.addWidget(self.proComStartDate, 0, 1, 1, 1)
104 112 self.label_28 = QtGui.QLabel(self.frame_2)
105 113 self.label_28.setObjectName(_fromUtf8("label_28"))
106 114 self.gridLayout_10.addWidget(self.label_28, 1, 0, 1, 1)
107 115 self.proComEndDate = QtGui.QComboBox(self.frame_2)
108 116 self.proComEndDate.setObjectName(_fromUtf8("proComEndDate"))
109 117 self.gridLayout_10.addWidget(self.proComEndDate, 1, 1, 1, 1)
110 118 self.label_2 = QtGui.QLabel(self.frame_2)
111 119 self.label_2.setObjectName(_fromUtf8("label_2"))
112 120 self.gridLayout_10.addWidget(self.label_2, 2, 0, 1, 1)
113 121 self.proStartTime = QtGui.QTimeEdit(self.frame_2)
114 122 self.proStartTime.setObjectName(_fromUtf8("proStartTime"))
115 123 self.gridLayout_10.addWidget(self.proStartTime, 2, 1, 1, 1)
116 124 self.label_3 = QtGui.QLabel(self.frame_2)
117 125 self.label_3.setObjectName(_fromUtf8("label_3"))
118 126 self.gridLayout_10.addWidget(self.label_3, 3, 0, 1, 1)
119 127 self.proEndTime = QtGui.QTimeEdit(self.frame_2)
120 128 self.proEndTime.setObjectName(_fromUtf8("proEndTime"))
121 129 self.gridLayout_10.addWidget(self.proEndTime, 3, 1, 1, 1)
122 130 self.label_30 = QtGui.QLabel(self.frame_2)
123 131 self.label_30.setObjectName(_fromUtf8("label_30"))
124 132 self.gridLayout_10.addWidget(self.label_30, 4, 0, 1, 1)
125 133 self.proDescription = QtGui.QTextEdit(self.frame_2)
126 134 self.proDescription.setObjectName(_fromUtf8("proDescription"))
127 135 self.gridLayout_10.addWidget(self.proDescription, 4, 1, 1, 1)
128 136 self.gridLayout_15.addWidget(self.frame_2, 1, 0, 1, 1)
129 137 self.frame_3 = QtGui.QFrame(self.tabProject)
130 138 self.frame_3.setFrameShape(QtGui.QFrame.StyledPanel)
131 139 self.frame_3.setFrameShadow(QtGui.QFrame.Raised)
132 140 self.frame_3.setObjectName(_fromUtf8("frame_3"))
133 141 self.gridLayout_14 = QtGui.QGridLayout(self.frame_3)
134 142 self.gridLayout_14.setObjectName(_fromUtf8("gridLayout_14"))
135 143 self.proOk = QtGui.QPushButton(self.frame_3)
136 144 self.proOk.setObjectName(_fromUtf8("proOk"))
137 145 self.gridLayout_14.addWidget(self.proOk, 0, 0, 1, 1)
138 146 self.proClear = QtGui.QPushButton(self.frame_3)
139 147 self.proClear.setObjectName(_fromUtf8("proClear"))
140 148 self.gridLayout_14.addWidget(self.proClear, 0, 1, 1, 1)
141 149 self.gridLayout_15.addWidget(self.frame_3, 2, 0, 1, 1)
142 150
143 151 self.tabWidgetProject.addTab(self.tabProject, _fromUtf8(""))
144 152
145 153 def retranslateUi(self):
146 154
147 155 self.label.setText(_translate("MainWindow", "Project Name :", None))
148 156 self.label_11.setText(_translate("MainWindow", "DataType :", None))
149 157 self.proComDataType.setItemText(0, _translate("MainWindow", "Voltage", None))
150 158 self.proComDataType.setItemText(1, _translate("MainWindow", "Spectra", None))
151 159 self.proComDataType.setItemText(2, _translate("MainWindow", "Fits", None))
152 160 self.proComDataType.setItemText(3, _translate("MainWindow", "USRP", None))
153 161 self.label_15.setText(_translate("MainWindow", "DataPath :", None))
154 162 self.proToolPath.setText(_translate("MainWindow", "...", None))
155 163 self.label_23.setText(_translate("MainWindow", "Read Mode:", None))
156 164 self.proComReadMode.setItemText(0, _translate("MainWindow", "Offline", None))
157 165 self.proComReadMode.setItemText(1, _translate("MainWindow", "Online", None))
158 166 self.label_33.setText(_translate("MainWindow", "Delay:", None))
159 167 self.label_32.setText(_translate("MainWindow", "Walk :", None))
160 168 self.proComWalk.setItemText(0, _translate("MainWindow", "On Files", None))
161 169 self.proComWalk.setItemText(1, _translate("MainWindow", "On Folder", None))
162 170 self.proLoadButton.setText(_translate("MainWindow", "Load", None))
163 self.label_10.setText(_translate("MainWindow", "Set:", None))
171 self.labelSet.setText(_translate("MainWindow", "Set:", None))
172 self.labelIPPKm.setText(_translate("MainWindow", "IPP (km):", None))
164 173 self.label_27.setText(_translate("MainWindow", "Star Date:", None))
165 174 self.label_28.setText(_translate("MainWindow", "End Date:", None))
166 175 self.label_2.setText(_translate("MainWindow", "Start Time:", None))
167 176 self.label_3.setText(_translate("MainWindow", "End Time:", None))
168 177 self.label_30.setText(_translate("MainWindow", "Description:", None))
169 178 self.proOk.setText(_translate("MainWindow", "Ok", None))
170 179 self.proClear.setText(_translate("MainWindow", "Clear", None))
171 180
172 181 self.tabWidgetProject.setTabText(self.tabWidgetProject.indexOf(self.tabProject), _translate("MainWindow", "Project", None))
173 182 No newline at end of file
@@ -1,314 +1,324
1 1
2 2 from PyQt4 import QtCore, QtGui
3 3
4 4 try:
5 5 _fromUtf8 = QtCore.QString.fromUtf8
6 6 except AttributeError:
7 7 def _fromUtf8(s):
8 8 return s
9 9
10 10 try:
11 11 _encoding = QtGui.QApplication.UnicodeUTF8
12 12 def _translate(context, text, disambig):
13 13 return QtGui.QApplication.translate(context, text, disambig, _encoding)
14 14 except AttributeError:
15 15 def _translate(context, text, disambig):
16 16 return QtGui.QApplication.translate(context, text, disambig)
17 17
18 18 class Ui_VoltageTab(object):
19 19
20 20 def setupUi(self):
21 21
22 22 self.tabVoltage = QtGui.QWidget()
23 23 self.tabVoltage.setObjectName(_fromUtf8("tabVoltage"))
24 24
25 25 self.gridLayout_3 = QtGui.QGridLayout(self.tabVoltage)
26 26 self.gridLayout_3.setObjectName(_fromUtf8("gridLayout_3"))
27 27
28 28 self.frame_4 = QtGui.QFrame(self.tabVoltage)
29 29 self.frame_4.setFrameShape(QtGui.QFrame.StyledPanel)
30 30 self.frame_4.setFrameShadow(QtGui.QFrame.Raised)
31 31 self.frame_4.setObjectName(_fromUtf8("frame_4"))
32 32
33 33 self.gridLayout_17 = QtGui.QGridLayout(self.frame_4)
34 34 self.gridLayout_17.setObjectName(_fromUtf8("gridLayout_17"))
35 35 self.volOpOk = QtGui.QPushButton(self.frame_4)
36 36 self.volOpOk.setObjectName(_fromUtf8("volOpOk"))
37 37 self.gridLayout_17.addWidget(self.volOpOk, 0, 0, 1, 1)
38 38 self.volGraphClear = QtGui.QPushButton(self.frame_4)
39 39 self.volGraphClear.setObjectName(_fromUtf8("volGraphClear"))
40 40 self.gridLayout_17.addWidget(self.volGraphClear, 0, 1, 1, 1)
41 41 self.gridLayout_3.addWidget(self.frame_4, 1, 1, 1, 1)
42 42
43 43
44 44 self.tabWidgetVoltage = QtGui.QTabWidget(self.tabVoltage)
45 45 self.tabWidgetVoltage.setObjectName(_fromUtf8("tabWidgetVoltage"))
46 46 self.tabopVoltage = QtGui.QWidget()
47 47 self.tabopVoltage.setObjectName(_fromUtf8("tabopVoltage"))
48 48 self.gridLayout = QtGui.QGridLayout(self.tabopVoltage)
49 49 self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
50 50 self.volOpHeights = QtGui.QLineEdit(self.tabopVoltage)
51 51 self.volOpHeights.setObjectName(_fromUtf8("volOpHeights"))
52 52 self.gridLayout.addWidget(self.volOpHeights, 4, 4, 1, 1)
53 53 self.volOpComHeights = QtGui.QComboBox(self.tabopVoltage)
54 54 self.volOpComHeights.setObjectName(_fromUtf8("volOpComHeights"))
55 55 self.volOpComHeights.addItem(_fromUtf8(""))
56 56 self.volOpComHeights.addItem(_fromUtf8(""))
57 57 self.gridLayout.addWidget(self.volOpComHeights, 4, 0, 1, 3)
58 58 self.volOpComChannels = QtGui.QComboBox(self.tabopVoltage)
59 59 self.volOpComChannels.setObjectName(_fromUtf8("volOpComChannels"))
60 60 self.volOpComChannels.addItem(_fromUtf8(""))
61 61 self.volOpComChannels.addItem(_fromUtf8(""))
62 62 self.gridLayout.addWidget(self.volOpComChannels, 2, 0, 1, 3)
63 63 self.volOpCebProfile = QtGui.QCheckBox(self.tabopVoltage)
64 64 self.volOpCebProfile.setObjectName(_fromUtf8("volOpCebProfile"))
65 65 self.gridLayout.addWidget(self.volOpCebProfile, 6, 0, 1, 3)
66 66 self.volOpComProfile = QtGui.QComboBox(self.tabopVoltage)
67 67 self.volOpComProfile.setObjectName(_fromUtf8("volOpComProfile"))
68 68 self.volOpComProfile.addItem(_fromUtf8(""))
69 69 self.volOpComProfile.addItem(_fromUtf8(""))
70 self.volOpComProfile.addItem(_fromUtf8(""))
70 71 self.gridLayout.addWidget(self.volOpComProfile, 7, 0, 1, 3)
71 72 self.volOpCebDecodification = QtGui.QCheckBox(self.tabopVoltage)
72 73 self.volOpCebDecodification.setObjectName(_fromUtf8("volOpCebDecodification"))
73 74 self.gridLayout.addWidget(self.volOpCebDecodification, 8, 0, 1, 3)
74 75 self.volOpProfile = QtGui.QLineEdit(self.tabopVoltage)
75 76 self.volOpProfile.setObjectName(_fromUtf8("volOpProfile"))
76 77 self.gridLayout.addWidget(self.volOpProfile, 7, 4, 1, 1)
77 78 self.volOpFilter = QtGui.QLineEdit(self.tabopVoltage)
78 79 self.volOpFilter.setObjectName(_fromUtf8("volOpFilter"))
79 80 self.gridLayout.addWidget(self.volOpFilter, 5, 4, 1, 1)
80 81 spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
81 82 self.gridLayout.addItem(spacerItem, 6, 4, 1, 1)
82 83 spacerItem1 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
83 84 self.gridLayout.addItem(spacerItem1, 8, 4, 1, 1)
84 85 spacerItem2 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
85 86 self.gridLayout.addItem(spacerItem2, 3, 4, 1, 1)
86 87 self.volOpChannel = QtGui.QLineEdit(self.tabopVoltage)
87 88 self.volOpChannel.setObjectName(_fromUtf8("volOpChannel"))
88 89 self.gridLayout.addWidget(self.volOpChannel, 2, 4, 1, 1)
89 self.label_4 = QtGui.QLabel(self.tabopVoltage)
90 self.label_4.setObjectName(_fromUtf8("label_4"))
91 self.gridLayout.addWidget(self.label_4, 9, 2, 1, 1)
92 90 self.volOpCebChannels = QtGui.QCheckBox(self.tabopVoltage)
93 91 self.volOpCebChannels.setObjectName(_fromUtf8("volOpCebChannels"))
94 92 self.gridLayout.addWidget(self.volOpCebChannels, 1, 0, 1, 3)
95 93 self.volOpCebHeights = QtGui.QCheckBox(self.tabopVoltage)
96 94 self.volOpCebHeights.setObjectName(_fromUtf8("volOpCebHeights"))
97 95 self.gridLayout.addWidget(self.volOpCebHeights, 3, 0, 1, 3)
98 96 self.volOpCebFilter = QtGui.QCheckBox(self.tabopVoltage)
99 97 self.volOpCebFilter.setObjectName(_fromUtf8("volOpCebFilter"))
100 98 self.gridLayout.addWidget(self.volOpCebFilter, 5, 0, 1, 3)
101 99 self.volOpRadarfrequency = QtGui.QLineEdit(self.tabopVoltage)
102 100 self.volOpRadarfrequency.setObjectName(_fromUtf8("volOpRadarfrequency"))
103 101 self.gridLayout.addWidget(self.volOpRadarfrequency, 0, 4, 1, 1)
104 102 self.volOpCebRadarfrequency = QtGui.QCheckBox(self.tabopVoltage)
105 103 self.volOpCebRadarfrequency.setObjectName(_fromUtf8("volOpCebRadarfrequency"))
106 104 self.gridLayout.addWidget(self.volOpCebRadarfrequency, 0, 0, 1, 3)
107 self.label_5 = QtGui.QLabel(self.tabopVoltage)
108 self.label_5.setObjectName(_fromUtf8("label_5"))
109 self.gridLayout.addWidget(self.label_5, 10, 2, 1, 1)
110 105 spacerItem3 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
111 106 self.gridLayout.addItem(spacerItem3, 1, 4, 1, 1)
112 107 self.volOpCebFlip = QtGui.QCheckBox(self.tabopVoltage)
113 108 self.volOpCebFlip.setObjectName(_fromUtf8("volOpCebFlip"))
114 109 self.gridLayout.addWidget(self.volOpCebFlip, 11, 0, 1, 3)
115 110 self.volOpFlip = QtGui.QLineEdit(self.tabopVoltage)
116 111 self.volOpFlip.setObjectName(_fromUtf8("volOpFlip"))
117 112 self.gridLayout.addWidget(self.volOpFlip, 11, 4, 1, 1)
118 113
119 114 self.volOpCebCohInt = QtGui.QCheckBox(self.tabopVoltage)
120 115 self.volOpCebCohInt.setObjectName(_fromUtf8("volOpCebCohInt"))
121 116 self.gridLayout.addWidget(self.volOpCebCohInt, 12, 0, 1, 3)
122 117 self.volOpCohInt = QtGui.QLineEdit(self.tabopVoltage)
123 118 self.volOpCohInt.setObjectName(_fromUtf8("volOpCohInt"))
124 119 self.gridLayout.addWidget(self.volOpCohInt, 12, 4, 1, 1)
125
120
121 self.volLabCodeMode = QtGui.QLabel(self.tabopVoltage)
122 self.volLabCodeMode.setObjectName(_fromUtf8("volLabCodeMode"))
123 self.gridLayout.addWidget(self.volLabCodeMode, 8, 2, 1, 1)
124 self.volLabCodeType = QtGui.QLabel(self.tabopVoltage)
125 self.volLabCodeType.setObjectName(_fromUtf8("volLabCodeType"))
126 self.gridLayout.addWidget(self.volLabCodeType, 9, 2, 1, 1)
127 self.volLabCode = QtGui.QLabel(self.tabopVoltage)
128 self.volLabCode.setObjectName(_fromUtf8("volLabCode"))
129 self.gridLayout.addWidget(self.volLabCode, 10, 2, 1, 1)
130 self.volOpComMode = QtGui.QComboBox(self.tabopVoltage)
131 self.volOpComMode.setObjectName(_fromUtf8("volOpComMode"))
132 self.volOpComMode.addItem(_fromUtf8(""))
133 self.volOpComMode.addItem(_fromUtf8(""))
134 self.gridLayout.addWidget(self.volOpComMode, 8, 4, 1, 1)
126 135 self.volOpComCode = QtGui.QComboBox(self.tabopVoltage)
127 136 self.volOpComCode.setObjectName(_fromUtf8("volOpComCode"))
128 137 self.volOpComCode.addItem(_fromUtf8(""))
129 138 self.volOpComCode.addItem(_fromUtf8(""))
130 139 self.volOpComCode.addItem(_fromUtf8(""))
131 140 self.volOpComCode.addItem(_fromUtf8(""))
132 141 self.volOpComCode.addItem(_fromUtf8(""))
133 142 self.volOpComCode.addItem(_fromUtf8(""))
134 143 self.volOpComCode.addItem(_fromUtf8(""))
135 144 self.volOpComCode.addItem(_fromUtf8(""))
136 145 self.volOpComCode.addItem(_fromUtf8(""))
137 146 self.volOpComCode.addItem(_fromUtf8(""))
138 147 self.volOpComCode.addItem(_fromUtf8(""))
139 148 self.volOpComCode.addItem(_fromUtf8(""))
140 149 self.volOpComCode.addItem(_fromUtf8(""))
150 self.volOpComCode.addItem(_fromUtf8(""))
141 151 self.gridLayout.addWidget(self.volOpComCode, 9, 4, 1, 1)
142 self.volOpComMode = QtGui.QComboBox(self.tabopVoltage)
143 self.volOpComMode.setObjectName(_fromUtf8("volOpComMode"))
144 self.volOpComMode.addItem(_fromUtf8(""))
145 self.volOpComMode.addItem(_fromUtf8(""))
146 self.gridLayout.addWidget(self.volOpComMode, 10, 4, 1, 1)
147 152 self.tabWidgetVoltage.addTab(self.tabopVoltage, _fromUtf8(""))
148
153 self.volOpCode = QtGui.QLineEdit(self.tabopVoltage)
154 self.volOpCode.setObjectName(_fromUtf8("volOpCode"))
155 self.gridLayout.addWidget(self.volOpCode, 10, 4, 1, 1)
149 156
150 157 self.tabgraphVoltage = QtGui.QWidget()
151 158 self.tabgraphVoltage.setObjectName(_fromUtf8("tabgraphVoltage"))
152 159 self.gridLayout_6 = QtGui.QGridLayout(self.tabgraphVoltage)
153 160 self.gridLayout_6.setObjectName(_fromUtf8("gridLayout_6"))
154 161 spacerItem4 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
155 162 self.gridLayout_6.addItem(spacerItem4, 12, 3, 1, 1)
156 163 self.volGraphfreqrange = QtGui.QLineEdit(self.tabgraphVoltage)
157 164 self.volGraphfreqrange.setObjectName(_fromUtf8("volGraphfreqrange"))
158 165 self.gridLayout_6.addWidget(self.volGraphfreqrange, 9, 1, 1, 6)
159 166 self.volGraphPrefix = QtGui.QLineEdit(self.tabgraphVoltage)
160 167 self.volGraphPrefix.setObjectName(_fromUtf8("volGraphPrefix"))
161 168 self.gridLayout_6.addWidget(self.volGraphPrefix, 2, 1, 1, 6)
162 169 self.volGraphToolPath = QtGui.QToolButton(self.tabgraphVoltage)
163 170 self.volGraphToolPath.setObjectName(_fromUtf8("volGraphToolPath"))
164 171 self.gridLayout_6.addWidget(self.volGraphToolPath, 1, 5, 1, 2)
165 172 self.volGraphPath = QtGui.QLineEdit(self.tabgraphVoltage)
166 173 self.volGraphPath.setObjectName(_fromUtf8("volGraphPath"))
167 174 self.gridLayout_6.addWidget(self.volGraphPath, 1, 1, 1, 4)
168 175 self.label_14 = QtGui.QLabel(self.tabgraphVoltage)
169 176 self.label_14.setObjectName(_fromUtf8("label_14"))
170 177 self.gridLayout_6.addWidget(self.label_14, 6, 0, 1, 1)
171 178 spacerItem5 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
172 179 self.gridLayout_6.addItem(spacerItem5, 3, 3, 1, 1)
173 180 self.label_8 = QtGui.QLabel(self.tabgraphVoltage)
174 181 self.label_8.setObjectName(_fromUtf8("label_8"))
175 182 self.gridLayout_6.addWidget(self.label_8, 8, 0, 1, 1)
176 183 self.label_49 = QtGui.QLabel(self.tabgraphVoltage)
177 184 self.label_49.setObjectName(_fromUtf8("label_49"))
178 185 self.gridLayout_6.addWidget(self.label_49, 4, 3, 1, 1)
179 186 self.label_51 = QtGui.QLabel(self.tabgraphVoltage)
180 187 self.label_51.setObjectName(_fromUtf8("label_51"))
181 188 self.gridLayout_6.addWidget(self.label_51, 9, 0, 1, 1)
182 189 self.volGraphCebshow = QtGui.QCheckBox(self.tabgraphVoltage)
183 190 self.volGraphCebshow.setText(_fromUtf8(""))
184 191 self.volGraphCebshow.setObjectName(_fromUtf8("volGraphCebshow"))
185 192 self.gridLayout_6.addWidget(self.volGraphCebshow, 6, 3, 1, 1)
186 193 self.label_12 = QtGui.QLabel(self.tabgraphVoltage)
187 194 self.label_12.setObjectName(_fromUtf8("label_12"))
188 195 self.gridLayout_6.addWidget(self.label_12, 1, 0, 1, 1)
189 196 self.label_13 = QtGui.QLabel(self.tabgraphVoltage)
190 197 self.label_13.setObjectName(_fromUtf8("label_13"))
191 198 self.gridLayout_6.addWidget(self.label_13, 2, 0, 1, 1)
192 199 self.label_52 = QtGui.QLabel(self.tabgraphVoltage)
193 200 self.label_52.setObjectName(_fromUtf8("label_52"))
194 201 self.gridLayout_6.addWidget(self.label_52, 11, 0, 1, 1)
195 202 spacerItem6 = QtGui.QSpacerItem(40, 12, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
196 203 self.gridLayout_6.addItem(spacerItem6, 14, 5, 1, 2)
197 204 spacerItem7 = QtGui.QSpacerItem(18, 12, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
198 205 self.gridLayout_6.addItem(spacerItem7, 14, 3, 1, 1)
199 206 self.volGraphChannelList = QtGui.QLineEdit(self.tabgraphVoltage)
200 207 self.volGraphChannelList.setObjectName(_fromUtf8("volGraphChannelList"))
201 208 self.gridLayout_6.addWidget(self.volGraphChannelList, 8, 1, 1, 6)
202 209 self.volGraphHeightrange = QtGui.QLineEdit(self.tabgraphVoltage)
203 210 self.volGraphHeightrange.setObjectName(_fromUtf8("volGraphHeightrange"))
204 211 self.gridLayout_6.addWidget(self.volGraphHeightrange, 11, 1, 1, 6)
205 212 self.label_50 = QtGui.QLabel(self.tabgraphVoltage)
206 213 self.label_50.setObjectName(_fromUtf8("label_50"))
207 214 self.gridLayout_6.addWidget(self.label_50, 4, 4, 1, 1)
208 215 self.volGraphCebSave = QtGui.QCheckBox(self.tabgraphVoltage)
209 216 self.volGraphCebSave.setText(_fromUtf8(""))
210 217 self.volGraphCebSave.setObjectName(_fromUtf8("volGraphCebSave"))
211 218 self.gridLayout_6.addWidget(self.volGraphCebSave, 6, 4, 1, 1)
212 219 self.tabWidgetVoltage.addTab(self.tabgraphVoltage, _fromUtf8(""))
213 220
214 221 self.taboutputVoltage = QtGui.QWidget()
215 222 self.taboutputVoltage.setObjectName(_fromUtf8("taboutputVoltage"))
216 223 self.gridLayout_12 = QtGui.QGridLayout(self.taboutputVoltage)
217 224 self.gridLayout_12.setObjectName(_fromUtf8("gridLayout_12"))
218 225 self.label_36 = QtGui.QLabel(self.taboutputVoltage)
219 226 self.label_36.setObjectName(_fromUtf8("label_36"))
220 227 self.gridLayout_12.addWidget(self.label_36, 0, 0, 1, 1)
221 228 self.label_37 = QtGui.QLabel(self.taboutputVoltage)
222 229 self.label_37.setObjectName(_fromUtf8("label_37"))
223 230 self.gridLayout_12.addWidget(self.label_37, 1, 0, 1, 1)
224 231 self.volOutputPath = QtGui.QLineEdit(self.taboutputVoltage)
225 232 self.volOutputPath.setObjectName(_fromUtf8("volOutputPath"))
226 233 self.gridLayout_12.addWidget(self.volOutputPath, 1, 2, 1, 1)
227 234 self.volOutputToolPath = QtGui.QToolButton(self.taboutputVoltage)
228 235 self.volOutputToolPath.setObjectName(_fromUtf8("volOutputToolPath"))
229 236 self.gridLayout_12.addWidget(self.volOutputToolPath, 1, 3, 1, 1)
230 237 self.volOutputComData = QtGui.QComboBox(self.taboutputVoltage)
231 238 self.volOutputComData.setObjectName(_fromUtf8("volOutputComData"))
232 239 self.volOutputComData.addItem(_fromUtf8(""))
233 240 self.gridLayout_12.addWidget(self.volOutputComData, 0, 2, 1, 2)
234 241 spacerItem8 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
235 242 self.gridLayout_12.addItem(spacerItem8, 5, 2, 1, 1)
236 243 self.volOutputblocksperfile = QtGui.QLineEdit(self.taboutputVoltage)
237 244 self.volOutputblocksperfile.setObjectName(_fromUtf8("volOutputblocksperfile"))
238 245 self.gridLayout_12.addWidget(self.volOutputblocksperfile, 3, 2, 1, 1)
239 246 self.label_7 = QtGui.QLabel(self.taboutputVoltage)
240 247 self.label_7.setObjectName(_fromUtf8("label_7"))
241 248 self.gridLayout_12.addWidget(self.label_7, 3, 0, 1, 1)
242 249 self.label_35 = QtGui.QLabel(self.taboutputVoltage)
243 250 self.label_35.setObjectName(_fromUtf8("label_35"))
244 251 self.gridLayout_12.addWidget(self.label_35, 4, 0, 1, 1)
245 252 self.volOutputprofilesperblock = QtGui.QLineEdit(self.taboutputVoltage)
246 253 self.volOutputprofilesperblock.setObjectName(_fromUtf8("volOutputprofilesperblock"))
247 254 self.gridLayout_12.addWidget(self.volOutputprofilesperblock, 4, 2, 1, 1)
248 255 self.tabWidgetVoltage.addTab(self.taboutputVoltage, _fromUtf8(""))
249 256 self.gridLayout_3.addWidget(self.tabWidgetVoltage, 0, 1, 1, 1)
250 257
251 258 self.tabWidgetProject.addTab(self.tabVoltage, _fromUtf8(""))
252 259
253 260 self.tabWidgetVoltage.setCurrentIndex(0)
254 261
255 262 def retranslateUi(self):
256 263
257 264 self.volOpOk.setText(_translate("MainWindow", "Ok", None))
258 265 self.volGraphClear.setText(_translate("MainWindow", "Clear", None))
259 266 self.volOpComHeights.setItemText(0, _translate("MainWindow", "Value", None))
260 267 self.volOpComHeights.setItemText(1, _translate("MainWindow", "Index", None))
261 268 self.volOpComChannels.setItemText(0, _translate("MainWindow", "Value", None))
262 269 self.volOpComChannels.setItemText(1, _translate("MainWindow", "Index", None))
263 270 self.volOpCebProfile.setText(_translate("MainWindow", "Profile Selector", None))
264 271 self.volOpComProfile.setItemText(0, _translate("MainWindow", "Profile List", None))
265 self.volOpComProfile.setItemText(1, _translate("MainWindow", "Profile Range List", None))
272 self.volOpComProfile.setItemText(1, _translate("MainWindow", "Profile Range", None))
273 self.volOpComProfile.setItemText(2, _translate("MainWindow", "List of Profile Ranges", None))
266 274 self.volOpCebDecodification.setText(_translate("MainWindow", "Decoder", None))
267 275 self.volOpCebCohInt.setText(_translate("MainWindow", "Coherent Integration", None))
268 276 self.volOpCebFlip.setText(_translate("MainWindow", "Flip", None))
269 self.label_4.setText(_translate("MainWindow", "Code:", None))
277 self.volLabCodeType.setText(_translate("MainWindow", "Code type:", None))
270 278 self.volOpCebChannels.setText(_translate("MainWindow", "Select Channels", None))
271 279 self.volOpCebHeights.setText(_translate("MainWindow", "Select Heights", None))
272 280 self.volOpCebFilter.setText(_translate("MainWindow", "Filter", None))
273 281 self.volOpCebRadarfrequency.setText(_translate("MainWindow", "Radar Frequency", None))
274 self.label_5.setText(_translate("MainWindow", "Mode:", None))
275 self.volOpComCode.setItemText(0, _translate("MainWindow", "Barker 3", None))
276 self.volOpComCode.setItemText(1, _translate("MainWindow", "Barker 4", None))
277 self.volOpComCode.setItemText(2, _translate("MainWindow", "Barker 5", None))
278 self.volOpComCode.setItemText(3, _translate("MainWindow", "Barker 7", None))
279 self.volOpComCode.setItemText(4, _translate("MainWindow", "Barker 11", None))
280 self.volOpComCode.setItemText(5, _translate("MainWindow", "Barker 13", None))
281 self.volOpComCode.setItemText(6, _translate("MainWindow", "Barker 3 + Comp.", None))
282 self.volOpComCode.setItemText(7, _translate("MainWindow", "Barker 4 + Comp.", None))
283 self.volOpComCode.setItemText(8, _translate("MainWindow", "Barker 5 + Comp.", None))
284 self.volOpComCode.setItemText(9, _translate("MainWindow", "Barker 7 + Comp.", None))
285 self.volOpComCode.setItemText(10, _translate("MainWindow", "Barker 11+ Comp.", None))
286 self.volOpComCode.setItemText(11, _translate("MainWindow", "Barker 13+ Comp.", None))
287 self.volOpComCode.setItemText(12, _translate("MainWindow", "Read from header", None))
282 self.volLabCodeMode.setText(_translate("MainWindow", "Mode:", None))
283 self.volLabCode.setText(_translate("MainWindow", "Code:", None))
284 self.volOpComCode.setItemText(0, _translate("MainWindow", "Read from header", None))
285 self.volOpComCode.setItemText(1, _translate("MainWindow", "Barker 3", None))
286 self.volOpComCode.setItemText(2, _translate("MainWindow", "Barker 4", None))
287 self.volOpComCode.setItemText(3, _translate("MainWindow", "Barker 5", None))
288 self.volOpComCode.setItemText(4, _translate("MainWindow", "Barker 7", None))
289 self.volOpComCode.setItemText(5, _translate("MainWindow", "Barker 11", None))
290 self.volOpComCode.setItemText(6, _translate("MainWindow", "Barker 13", None))
291 self.volOpComCode.setItemText(7, _translate("MainWindow", "Barker 3 + Comp.", None))
292 self.volOpComCode.setItemText(8, _translate("MainWindow", "Barker 4 + Comp.", None))
293 self.volOpComCode.setItemText(9, _translate("MainWindow", "Barker 5 + Comp.", None))
294 self.volOpComCode.setItemText(10, _translate("MainWindow", "Barker 7 + Comp.", None))
295 self.volOpComCode.setItemText(11, _translate("MainWindow", "Barker 11+ Comp.", None))
296 self.volOpComCode.setItemText(12, _translate("MainWindow", "Barker 13+ Comp.", None))
297 self.volOpComCode.setItemText(13, _translate("MainWindow", "User defined", None))
288 298 self.volOpComMode.setItemText(0, _translate("MainWindow", "Time", None))
289 self.volOpComMode.setItemText(1, _translate("MainWindow", "Freq 1", None))
299 self.volOpComMode.setItemText(1, _translate("MainWindow", "Frequency", None))
290 300 self.tabWidgetVoltage.setTabText(self.tabWidgetVoltage.indexOf(self.tabopVoltage), _translate("MainWindow", "Operation", None))
291 301
292 302 self.volGraphToolPath.setText(_translate("MainWindow", "...", None))
293 303 self.label_14.setText(_translate("MainWindow", "Scope", None))
294 304 self.label_8.setText(_translate("MainWindow", "Channel List", None))
295 305 self.label_49.setText(_translate("MainWindow", "Show", None))
296 self.label_51.setText(_translate("MainWindow", "Freq/Vel", None))
306 self.label_51.setText(_translate("MainWindow", "Height range", None))
297 307 self.label_12.setText(_translate("MainWindow", "Path :", None))
298 self.label_13.setText(_translate("MainWindow", "Prefix:", None))
299 self.label_52.setText(_translate("MainWindow", "Height range", None))
308 self.label_13.setText(_translate("MainWindow", "Figure name:", None))
309 self.label_52.setText(_translate("MainWindow", "Amplitude", None))
300 310 self.label_50.setText(_translate("MainWindow", "Save", None))
301 311 self.tabWidgetVoltage.setTabText(self.tabWidgetVoltage.indexOf(self.tabgraphVoltage), _translate("MainWindow", "Graphics", None))
302 312
303 313 self.label_36.setText(_translate("MainWindow", "Type:", None))
304 314 self.label_37.setText(_translate("MainWindow", "Path:", None))
305 315 self.volOutputToolPath.setText(_translate("MainWindow", "...", None))
306 316 self.volOutputComData.setItemText(0, _translate("MainWindow", ".rawdata", None))
307 317 self.label_7.setText(_translate("MainWindow", "Blocks per File : ", None))
308 318 self.label_35.setText(_translate("MainWindow", "Profiles per Block: ", None))
309 319 self.tabWidgetVoltage.setTabText(self.tabWidgetVoltage.indexOf(self.taboutputVoltage), _translate("MainWindow", "Output", None))
310 320
311 321 self.tabWidgetProject.setTabText(self.tabWidgetProject.indexOf(self.tabVoltage), _translate("MainWindow", "Voltage", None))
312 322
313 323
314 324 No newline at end of file
@@ -1,610 +1,610
1 1 import os
2 2 import numpy
3 3 import time, datetime
4 4 import mpldriver
5 5
6 6 from schainpy.model.proc.jroproc_base import Operation
7 7
8 8 def isRealtime(utcdatatime):
9 9 utcnow = time.mktime(time.localtime())
10 10 delta = abs(utcnow - utcdatatime) # abs
11 11 if delta >= 30.:
12 12 return False
13 13 return True
14 14
15 15 class Figure(Operation):
16 16
17 17 __driver = mpldriver
18 18 __isConfigThread = False
19 19 fig = None
20 20
21 21 id = None
22 22 wintitle = None
23 23 width = None
24 24 height = None
25 25 nplots = None
26 26 timerange = None
27 27
28 28 axesObjList = []
29 29
30 30 WIDTH = None
31 31 HEIGHT = None
32 32 PREFIX = 'fig'
33 33
34 34 xmin = None
35 35 xmax = None
36 36
37 37 counter_imagwr = 0
38 38
39 39 figfile = None
40 40
41 41 def __init__(self):
42 42
43 43 raise ValueError, "This method is not implemented"
44 44
45 45 def __del__(self):
46 46
47 47 self.__driver.closeFigure()
48 48
49 49 def getFilename(self, name, ext='.png'):
50 50
51 51 path = '%s%03d' %(self.PREFIX, self.id)
52 52 filename = '%s_%s%s' %(self.PREFIX, name, ext)
53 53 return os.path.join(path, filename)
54 54
55 55 def getAxesObjList(self):
56 56
57 57 return self.axesObjList
58 58
59 59 def getSubplots(self):
60 60
61 61 raise ValueError, "Abstract method: This method should be defined"
62 62
63 63 def getScreenDim(self, widthplot, heightplot):
64 64
65 65 nrow, ncol = self.getSubplots()
66 66
67 67 widthscreen = widthplot*ncol
68 68 heightscreen = heightplot*nrow
69 69
70 70 return widthscreen, heightscreen
71 71
72 72 def getTimeLim(self, x, xmin=None, xmax=None, timerange=None):
73 73
74 74 if self.xmin != None and self.xmax != None:
75 75 if timerange == None:
76 76 timerange = self.xmax - self.xmin
77 77 xmin = self.xmin + timerange
78 78 xmax = self.xmax + timerange
79 79
80 80 return xmin, xmax
81 81
82 82 if timerange == None and (xmin==None or xmax==None):
83 83 timerange = 14400 #seconds
84 84 #raise ValueError, "(timerange) or (xmin & xmax) should be defined"
85 85
86 86 if timerange != None:
87 87 txmin = x[0] - x[0] % min(timerange/10, 10*60)
88 88 else:
89 89 txmin = x[0] - x[0] % 10*60
90 90
91 91 thisdatetime = datetime.datetime.utcfromtimestamp(txmin)
92 92 thisdate = datetime.datetime.combine(thisdatetime.date(), datetime.time(0,0,0))
93 93
94 94 if timerange != None:
95 95 xmin = (thisdatetime - thisdate).seconds/(60*60.)
96 96 xmax = xmin + timerange/(60*60.)
97 97
98 98 mindt = thisdate + datetime.timedelta(hours=xmin) - datetime.timedelta(seconds=time.timezone)
99 99 xmin_sec = time.mktime(mindt.timetuple())
100 100
101 101 maxdt = thisdate + datetime.timedelta(hours=xmax) - datetime.timedelta(seconds=time.timezone)
102 102 xmax_sec = time.mktime(maxdt.timetuple())
103 103
104 104 return xmin_sec, xmax_sec
105 105
106 106 def init(self, id, nplots, wintitle):
107 107
108 108 raise ValueError, "This method has been replaced with createFigure"
109 109
110 110 def createFigure(self, id, wintitle, widthplot=None, heightplot=None, show=True):
111 111
112 112 """
113 113 Crea la figura de acuerdo al driver y parametros seleccionados seleccionados.
114 114 Las dimensiones de la pantalla es calculada a partir de los atributos self.WIDTH
115 115 y self.HEIGHT y el numero de subplots (nrow, ncol)
116 116
117 117 Input:
118 118 id : Los parametros necesarios son
119 119 wintitle :
120 120
121 121 """
122 122
123 123 if widthplot == None:
124 124 widthplot = self.WIDTH
125 125
126 126 if heightplot == None:
127 127 heightplot = self.HEIGHT
128 128
129 129 self.id = id
130 130
131 131 self.wintitle = wintitle
132 132
133 133 self.widthscreen, self.heightscreen = self.getScreenDim(widthplot, heightplot)
134 134
135 135 self.fig = self.__driver.createFigure(id=self.id,
136 136 wintitle=self.wintitle,
137 137 width=self.widthscreen,
138 138 height=self.heightscreen,
139 139 show=show)
140 140
141 141 self.axesObjList = []
142 142 self.counter_imagwr = 0
143 143
144 144
145 145 def setDriver(self, driver=mpldriver):
146 146
147 147 self.__driver = driver
148 148
149 149 def setTitle(self, title):
150 150
151 151 self.__driver.setTitle(self.fig, title)
152 152
153 153 def setWinTitle(self, title):
154 154
155 155 self.__driver.setWinTitle(self.fig, title=title)
156 156
157 157 def setTextFromAxes(self, text):
158 158
159 159 raise ValueError, "Este metodo ha sido reemplazaado con el metodo setText de la clase Axes"
160 160
161 161 def makeAxes(self, nrow, ncol, xpos, ypos, colspan, rowspan):
162 162
163 163 raise ValueError, "Este metodo ha sido reemplazaado con el metodo addAxes"
164 164
165 165 def addAxes(self, *args):
166 166 """
167 167
168 168 Input:
169 169 *args : Los parametros necesarios son
170 170 nrow, ncol, xpos, ypos, colspan, rowspan
171 171 """
172 172
173 173 axesObj = Axes(self.fig, *args)
174 174 self.axesObjList.append(axesObj)
175 175
176 176 def saveFigure(self, figpath, figfile, *args):
177 177
178 178 filename = os.path.join(figpath, figfile)
179 179
180 180 fullpath = os.path.split(filename)[0]
181 181
182 182 if not os.path.exists(fullpath):
183 183 subpath = os.path.split(fullpath)[0]
184 184
185 185 if not os.path.exists(subpath):
186 186 os.mkdir(subpath)
187 187
188 188 os.mkdir(fullpath)
189 189
190 190 self.__driver.saveFigure(self.fig, filename, *args)
191 191
192 192 def save(self, figpath, figfile=None, save=True, ftp=False, wr_period=1, thisDatetime=None, update_figfile=True):
193 193
194 194 self.counter_imagwr += 1
195 195 if self.counter_imagwr < wr_period:
196 196 return
197 197
198 198 self.counter_imagwr = 0
199 199
200 200 if save:
201 201
202 202 if figfile == None:
203 203
204 204 if not thisDatetime:
205 205 raise ValueError, "Saving figure: figfile or thisDatetime should be defined"
206 206 return
207 207
208 208 str_datetime = thisDatetime.strftime("%Y%m%d_%H%M%S")
209 209 figfile = self.getFilename(name = str_datetime)
210 210
211 211 if self.figfile == None:
212 212 self.figfile = figfile
213 213
214 214 if update_figfile:
215 215 self.figfile = figfile
216 216
217 217 # store png plot to local folder
218 218 self.saveFigure(figpath, self.figfile)
219 219
220 220
221 221 if not ftp:
222 222 return
223 223
224 224 if not thisDatetime:
225 225 return
226 226
227 227 # store png plot to FTP server according to RT-Web format
228 name = self.getNameToFtp(thisDatetime, self.FTP_WEI, self.EXP_CODE, self.SUB_EXP_CODE, self.PLOT_CODE, self.PLOT_POS)
229 ftp_filename = os.path.join(figpath, name)
228 ftp_filename = self.getNameToFtp(thisDatetime, self.FTP_WEI, self.EXP_CODE, self.SUB_EXP_CODE, self.PLOT_CODE, self.PLOT_POS)
229 # ftp_filename = os.path.join(figpath, name)
230 230 self.saveFigure(figpath, ftp_filename)
231 231
232 232 def getNameToFtp(self, thisDatetime, FTP_WEI, EXP_CODE, SUB_EXP_CODE, PLOT_CODE, PLOT_POS):
233 233 YEAR_STR = '%4.4d'%thisDatetime.timetuple().tm_year
234 234 DOY_STR = '%3.3d'%thisDatetime.timetuple().tm_yday
235 235 FTP_WEI = '%2.2d'%FTP_WEI
236 236 EXP_CODE = '%3.3d'%EXP_CODE
237 237 SUB_EXP_CODE = '%2.2d'%SUB_EXP_CODE
238 238 PLOT_CODE = '%2.2d'%PLOT_CODE
239 239 PLOT_POS = '%2.2d'%PLOT_POS
240 240 name = YEAR_STR + DOY_STR + FTP_WEI + EXP_CODE + SUB_EXP_CODE + PLOT_CODE + PLOT_POS
241 241 return name
242 242
243 243 def draw(self):
244 244
245 245 self.__driver.draw(self.fig)
246 246
247 247 def run(self):
248 248
249 249 raise ValueError, "This method is not implemented"
250 250
251 251 def close(self, show=False):
252 252
253 253 self.__driver.closeFigure(show=show, fig=self.fig)
254 254
255 255 axesList = property(getAxesObjList)
256 256
257 257
258 258 class Axes:
259 259
260 260 __driver = mpldriver
261 261 fig = None
262 262 ax = None
263 263 plot = None
264 264 __missing = 1E30
265 265 __firsttime = None
266 266
267 267 __showprofile = False
268 268
269 269 xmin = None
270 270 xmax = None
271 271 ymin = None
272 272 ymax = None
273 273 zmin = None
274 274 zmax = None
275 275
276 276 x_buffer = None
277 277 z_buffer = None
278 278
279 279 decimationx = None
280 280 decimationy = None
281 281
282 282 __MAXNUMX = 300
283 283 __MAXNUMY = 150
284 284
285 285 def __init__(self, *args):
286 286
287 287 """
288 288
289 289 Input:
290 290 *args : Los parametros necesarios son
291 291 fig, nrow, ncol, xpos, ypos, colspan, rowspan
292 292 """
293 293
294 294 ax = self.__driver.createAxes(*args)
295 295 self.fig = args[0]
296 296 self.ax = ax
297 297 self.plot = None
298 298
299 299 self.__firsttime = True
300 300 self.idlineList = []
301 301
302 302 self.x_buffer = numpy.array([])
303 303 self.z_buffer = numpy.array([])
304 304
305 305 def setText(self, text):
306 306
307 307 self.__driver.setAxesText(self.ax, text)
308 308
309 309 def setXAxisAsTime(self):
310 310 pass
311 311
312 312 def pline(self, x, y,
313 313 xmin=None, xmax=None,
314 314 ymin=None, ymax=None,
315 315 xlabel='', ylabel='',
316 316 title='',
317 317 **kwargs):
318 318
319 319 """
320 320
321 321 Input:
322 322 x :
323 323 y :
324 324 xmin :
325 325 xmax :
326 326 ymin :
327 327 ymax :
328 328 xlabel :
329 329 ylabel :
330 330 title :
331 331 **kwargs : Los parametros aceptados son
332 332
333 333 ticksize
334 334 ytick_visible
335 335 """
336 336
337 337 if self.__firsttime:
338 338
339 339 if xmin == None: xmin = numpy.nanmin(x)
340 340 if xmax == None: xmax = numpy.nanmax(x)
341 341 if ymin == None: ymin = numpy.nanmin(y)
342 342 if ymax == None: ymax = numpy.nanmax(y)
343 343
344 344 self.plot = self.__driver.createPline(self.ax, x, y,
345 345 xmin, xmax,
346 346 ymin, ymax,
347 347 xlabel=xlabel,
348 348 ylabel=ylabel,
349 349 title=title,
350 350 **kwargs)
351 351
352 352 self.idlineList.append(0)
353 353 self.__firsttime = False
354 354 return
355 355
356 356 self.__driver.pline(self.plot, x, y, xlabel=xlabel,
357 357 ylabel=ylabel,
358 358 title=title)
359 359
360 360 def addpline(self, x, y, idline, **kwargs):
361 361 lines = self.ax.lines
362 362
363 363 if idline in self.idlineList:
364 364 self.__driver.set_linedata(self.ax, x, y, idline)
365 365
366 366 if idline not in(self.idlineList):
367 367 self.__driver.addpline(self.ax, x, y, **kwargs)
368 368 self.idlineList.append(idline)
369 369
370 370 return
371 371
372 372 def pmultiline(self, x, y,
373 373 xmin=None, xmax=None,
374 374 ymin=None, ymax=None,
375 375 xlabel='', ylabel='',
376 376 title='',
377 377 **kwargs):
378 378
379 379 if self.__firsttime:
380 380
381 381 if xmin == None: xmin = numpy.nanmin(x)
382 382 if xmax == None: xmax = numpy.nanmax(x)
383 383 if ymin == None: ymin = numpy.nanmin(y)
384 384 if ymax == None: ymax = numpy.nanmax(y)
385 385
386 386 self.plot = self.__driver.createPmultiline(self.ax, x, y,
387 387 xmin, xmax,
388 388 ymin, ymax,
389 389 xlabel=xlabel,
390 390 ylabel=ylabel,
391 391 title=title,
392 392 **kwargs)
393 393 self.__firsttime = False
394 394 return
395 395
396 396 self.__driver.pmultiline(self.plot, x, y, xlabel=xlabel,
397 397 ylabel=ylabel,
398 398 title=title)
399 399
400 400 def pmultilineyaxis(self, x, y,
401 401 xmin=None, xmax=None,
402 402 ymin=None, ymax=None,
403 403 xlabel='', ylabel='',
404 404 title='',
405 405 **kwargs):
406 406
407 407 if self.__firsttime:
408 408
409 409 if xmin == None: xmin = numpy.nanmin(x)
410 410 if xmax == None: xmax = numpy.nanmax(x)
411 411 if ymin == None: ymin = numpy.nanmin(y)
412 412 if ymax == None: ymax = numpy.nanmax(y)
413 413
414 414 self.plot = self.__driver.createPmultilineYAxis(self.ax, x, y,
415 415 xmin, xmax,
416 416 ymin, ymax,
417 417 xlabel=xlabel,
418 418 ylabel=ylabel,
419 419 title=title,
420 420 **kwargs)
421 421 if self.xmin == None: self.xmin = xmin
422 422 if self.xmax == None: self.xmax = xmax
423 423 if self.ymin == None: self.ymin = ymin
424 424 if self.ymax == None: self.ymax = ymax
425 425
426 426 self.__firsttime = False
427 427 return
428 428
429 429 self.__driver.pmultilineyaxis(self.plot, x, y, xlabel=xlabel,
430 430 ylabel=ylabel,
431 431 title=title)
432 432
433 433 def pcolor(self, x, y, z,
434 434 xmin=None, xmax=None,
435 435 ymin=None, ymax=None,
436 436 zmin=None, zmax=None,
437 437 xlabel='', ylabel='',
438 438 title='', rti = False, colormap='jet',
439 439 **kwargs):
440 440
441 441 """
442 442 Input:
443 443 x :
444 444 y :
445 445 x :
446 446 xmin :
447 447 xmax :
448 448 ymin :
449 449 ymax :
450 450 zmin :
451 451 zmax :
452 452 xlabel :
453 453 ylabel :
454 454 title :
455 455 **kwargs : Los parametros aceptados son
456 456 ticksize=9,
457 457 cblabel=''
458 458 rti = True or False
459 459 """
460 460
461 461 if self.__firsttime:
462 462
463 463 if xmin == None: xmin = numpy.nanmin(x)
464 464 if xmax == None: xmax = numpy.nanmax(x)
465 465 if ymin == None: ymin = numpy.nanmin(y)
466 466 if ymax == None: ymax = numpy.nanmax(y)
467 467 if zmin == None: zmin = numpy.nanmin(z)
468 468 if zmax == None: zmax = numpy.nanmax(z)
469 469
470 470
471 471 self.plot = self.__driver.createPcolor(self.ax, x, y, z,
472 472 xmin, xmax,
473 473 ymin, ymax,
474 474 zmin, zmax,
475 475 xlabel=xlabel,
476 476 ylabel=ylabel,
477 477 title=title,
478 478 colormap=colormap,
479 479 **kwargs)
480 480
481 481 if self.xmin == None: self.xmin = xmin
482 482 if self.xmax == None: self.xmax = xmax
483 483 if self.ymin == None: self.ymin = ymin
484 484 if self.ymax == None: self.ymax = ymax
485 485 if self.zmin == None: self.zmin = zmin
486 486 if self.zmax == None: self.zmax = zmax
487 487
488 488 self.__firsttime = False
489 489 return
490 490
491 491 if rti:
492 492 self.__driver.addpcolor(self.ax, x, y, z, self.zmin, self.zmax,
493 493 xlabel=xlabel,
494 494 ylabel=ylabel,
495 495 title=title,
496 496 colormap=colormap)
497 497 return
498 498
499 499 self.__driver.pcolor(self.plot, z,
500 500 xlabel=xlabel,
501 501 ylabel=ylabel,
502 502 title=title)
503 503
504 504 def pcolorbuffer(self, x, y, z,
505 505 xmin=None, xmax=None,
506 506 ymin=None, ymax=None,
507 507 zmin=None, zmax=None,
508 508 xlabel='', ylabel='',
509 509 title='', rti = True, colormap='jet',
510 510 maxNumX = None, maxNumY = None,
511 511 **kwargs):
512 512
513 513 if maxNumX == None:
514 514 maxNumX = self.__MAXNUMX
515 515
516 516 if maxNumY == None:
517 517 maxNumY = self.__MAXNUMY
518 518
519 519 if self.__firsttime:
520 520 self.z_buffer = z
521 521 self.x_buffer = numpy.hstack((self.x_buffer, x))
522 522
523 523 if xmin == None: xmin = numpy.nanmin(x)
524 524 if xmax == None: xmax = numpy.nanmax(x)
525 525 if ymin == None: ymin = numpy.nanmin(y)
526 526 if ymax == None: ymax = numpy.nanmax(y)
527 527 if zmin == None: zmin = numpy.nanmin(z)
528 528 if zmax == None: zmax = numpy.nanmax(z)
529 529
530 530
531 531 self.plot = self.__driver.createPcolor(self.ax, self.x_buffer, y, z,
532 532 xmin, xmax,
533 533 ymin, ymax,
534 534 zmin, zmax,
535 535 xlabel=xlabel,
536 536 ylabel=ylabel,
537 537 title=title,
538 538 colormap=colormap,
539 539 **kwargs)
540 540
541 541 if self.xmin == None: self.xmin = xmin
542 542 if self.xmax == None: self.xmax = xmax
543 543 if self.ymin == None: self.ymin = ymin
544 544 if self.ymax == None: self.ymax = ymax
545 545 if self.zmin == None: self.zmin = zmin
546 546 if self.zmax == None: self.zmax = zmax
547 547
548 548 self.__firsttime = False
549 549 return
550 550
551 551 self.x_buffer = numpy.hstack((self.x_buffer, x[-1]))
552 552 self.z_buffer = numpy.hstack((self.z_buffer, z))
553 553
554 554 if self.decimationx == None:
555 555 deltax = float(self.xmax - self.xmin)/maxNumX
556 556 deltay = float(self.ymax - self.ymin)/maxNumY
557 557
558 558 resolutionx = self.x_buffer[2]-self.x_buffer[0]
559 559 resolutiony = y[1]-y[0]
560 560
561 561 self.decimationx = numpy.ceil(deltax / resolutionx)
562 562 self.decimationy = numpy.ceil(deltay / resolutiony)
563 563
564 564 z_buffer = self.z_buffer.reshape(-1,len(y))
565 565
566 566 x_buffer = self.x_buffer[::self.decimationx]
567 567 y_buffer = y[::self.decimationy]
568 568 z_buffer = z_buffer[::self.decimationx, ::self.decimationy]
569 569 #===================================================
570 570
571 571 x_buffer, y_buffer, z_buffer = self.__fillGaps(x_buffer, y_buffer, z_buffer)
572 572
573 573 self.__driver.addpcolorbuffer(self.ax, x_buffer, y_buffer, z_buffer, self.zmin, self.zmax,
574 574 xlabel=xlabel,
575 575 ylabel=ylabel,
576 576 title=title,
577 577 colormap=colormap)
578 578
579 579 def polar(self, x, y,
580 580 title='', xlabel='',ylabel='',**kwargs):
581 581
582 582 if self.__firsttime:
583 583 self.plot = self.__driver.createPolar(self.ax, x, y, title = title, xlabel = xlabel, ylabel = ylabel)
584 584 self.__firsttime = False
585 585 self.x_buffer = x
586 586 self.y_buffer = y
587 587 return
588 588
589 589 self.x_buffer = numpy.hstack((self.x_buffer,x))
590 590 self.y_buffer = numpy.hstack((self.y_buffer,y))
591 591 self.__driver.polar(self.plot, self.x_buffer, self.y_buffer, xlabel=xlabel,
592 592 ylabel=ylabel,
593 593 title=title)
594 594
595 595 def __fillGaps(self, x_buffer, y_buffer, z_buffer):
596 596
597 597 deltas = x_buffer[1:] - x_buffer[0:-1]
598 598 x_median = numpy.median(deltas)
599 599
600 600 index = numpy.where(deltas >= 2*x_median)
601 601
602 602 if len(index[0]) != 0:
603 603 z_buffer[index[0],::] = self.__missing
604 604 z_buffer = numpy.ma.masked_inside(z_buffer,0.99*self.__missing,1.01*self.__missing)
605 605
606 606 return x_buffer, y_buffer, z_buffer
607 607
608 608
609 609
610 610 No newline at end of file
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
1 NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
General Comments 0
You need to be logged in to leave comments. Login now