##// END OF EJS Templates
Bug fixed: translating float values to integer
Miguel Valdez -
r677:5a045da2ac8c
parent child
Show More

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

@@ -1,1142 +1,1145
1 1 '''
2 2 Created on September , 2012
3 3 @author:
4 4 '''
5 5 from xml.etree.ElementTree import ElementTree, Element, SubElement, tostring
6 6 from xml.dom import minidom
7 7
8 8 from model import *
9 9 from time import sleep
10 10
11 11 import sys
12 12 import ast
13 13 import traceback
14 14
15 15 SCHAIN_MAIL = "miguel.urco@jro.igp.gob.pe"
16 16 EMAIL_SERVER = "jro.igp.gob.pe"
17 17
18 18 def prettify(elem):
19 19 """Return a pretty-printed XML string for the Element.
20 20 """
21 21 rough_string = tostring(elem, 'utf-8')
22 22 reparsed = minidom.parseString(rough_string)
23 23 return reparsed.toprettyxml(indent=" ")
24 24
25 25 class ParameterConf():
26 26
27 27 id = None
28 28 name = None
29 29 value = None
30 30 format = None
31 31
32 32 __formated_value = None
33 33
34 34 ELEMENTNAME = 'Parameter'
35 35
36 36 def __init__(self):
37 37
38 38 self.format = 'str'
39 39
40 40 def getElementName(self):
41 41
42 42 return self.ELEMENTNAME
43 43
44 44 def getValue(self):
45 45
46 46 value = self.value
47 47 format = self.format
48 48
49 49 if self.__formated_value != None:
50 50
51 51 return self.__formated_value
52 52
53 53 if format == 'str':
54 54 self.__formated_value = str(value)
55 55 return self.__formated_value
56 56
57 57 if value == '':
58 58 raise ValueError, "%s: This parameter value is empty" %self.name
59
60 if format == 'bool':
61 value = int(value)
62 59
63 60 if format == 'list':
64 61 strList = value.split(',')
65 62
66 63 self.__formated_value = strList
67 64
68 65 return self.__formated_value
69 66
70 67 if format == 'intlist':
71 68 """
72 69 Example:
73 70 value = (0,1,2)
74 71 """
75 72 value = value.replace('(', '')
76 73 value = value.replace(')', '')
77 74
78 75 value = value.replace('[', '')
79 76 value = value.replace(']', '')
80 77
81 78 strList = value.split(',')
82 79 intList = [int(float(x)) for x in strList]
83 80
84 81 self.__formated_value = intList
85 82
86 83 return self.__formated_value
87 84
88 85 if format == 'floatlist':
89 86 """
90 87 Example:
91 88 value = (0.5, 1.4, 2.7)
92 89 """
93 90
94 91 value = value.replace('(', '')
95 92 value = value.replace(')', '')
96 93
97 94 value = value.replace('[', '')
98 95 value = value.replace(']', '')
99 96
100 97 strList = value.split(',')
101 98 floatList = [float(x) for x in strList]
102 99
103 100 self.__formated_value = floatList
104 101
105 102 return self.__formated_value
106 103
107 104 if format == 'date':
108 105 strList = value.split('/')
109 106 intList = [int(x) for x in strList]
110 107 date = datetime.date(intList[0], intList[1], intList[2])
111 108
112 109 self.__formated_value = date
113 110
114 111 return self.__formated_value
115 112
116 113 if format == 'time':
117 114 strList = value.split(':')
118 115 intList = [int(x) for x in strList]
119 116 time = datetime.time(intList[0], intList[1], intList[2])
120 117
121 118 self.__formated_value = time
122 119
123 120 return self.__formated_value
124 121
125 122 if format == 'pairslist':
126 123 """
127 124 Example:
128 125 value = (0,1),(1,2)
129 126 """
130 127
131 128 value = value.replace('(', '')
132 129 value = value.replace(')', '')
133 130
134 131 value = value.replace('[', '')
135 132 value = value.replace(']', '')
136 133
137 134 strList = value.split(',')
138 135 intList = [int(item) for item in strList]
139 136 pairList = []
140 137 for i in range(len(intList)/2):
141 138 pairList.append((intList[i*2], intList[i*2 + 1]))
142 139
143 140 self.__formated_value = pairList
144 141
145 142 return self.__formated_value
146 143
147 144 if format == 'multilist':
148 145 """
149 146 Example:
150 147 value = (0,1,2),(3,4,5)
151 148 """
152 149 multiList = ast.literal_eval(value)
153 150
154 151 if type(multiList[0]) == int:
155 152 multiList = ast.literal_eval("(" + value + ")")
156 153
157 154 self.__formated_value = multiList
158 155
159 156 return self.__formated_value
160 157
158 if format == 'bool':
159 value = int(value)
160
161 if format == 'int':
162 value = float(value)
163
161 164 format_func = eval(format)
162 165
163 166 self.__formated_value = format_func(value)
164 167
165 168 return self.__formated_value
166 169
167 170 def updateId(self, new_id):
168 171
169 172 self.id = str(new_id)
170 173
171 174 def setup(self, id, name, value, format='str'):
172 175
173 176 self.id = str(id)
174 177 self.name = name
175 178 self.value = str(value)
176 179 self.format = str.lower(format)
177 180
178 181 try:
179 182 self.getValue()
180 183 except:
181 184 return 0
182 185
183 186 return 1
184 187
185 188 def update(self, name, value, format='str'):
186 189
187 190 self.name = name
188 191 self.value = str(value)
189 192 self.format = format
190 193
191 194 def makeXml(self, opElement):
192 195
193 196 parmElement = SubElement(opElement, self.ELEMENTNAME)
194 197 parmElement.set('id', str(self.id))
195 198 parmElement.set('name', self.name)
196 199 parmElement.set('value', self.value)
197 200 parmElement.set('format', self.format)
198 201
199 202 def readXml(self, parmElement):
200 203
201 204 self.id = parmElement.get('id')
202 205 self.name = parmElement.get('name')
203 206 self.value = parmElement.get('value')
204 207 self.format = str.lower(parmElement.get('format'))
205 208
206 209 #Compatible with old signal chain version
207 210 if self.format == 'int' and self.name == 'idfigure':
208 211 self.name = 'id'
209 212
210 213 def printattr(self):
211 214
212 215 print "Parameter[%s]: name = %s, value = %s, format = %s" %(self.id, self.name, self.value, self.format)
213 216
214 217 class OperationConf():
215 218
216 219 id = None
217 220 name = None
218 221 priority = None
219 222 type = None
220 223
221 224 parmConfObjList = []
222 225
223 226 ELEMENTNAME = 'Operation'
224 227
225 228 def __init__(self):
226 229
227 230 self.id = '0'
228 231 self.name = None
229 232 self.priority = None
230 233 self.type = 'self'
231 234
232 235
233 236 def __getNewId(self):
234 237
235 238 return int(self.id)*10 + len(self.parmConfObjList) + 1
236 239
237 240 def updateId(self, new_id):
238 241
239 242 self.id = str(new_id)
240 243
241 244 n = 1
242 245 for parmObj in self.parmConfObjList:
243 246
244 247 idParm = str(int(new_id)*10 + n)
245 248 parmObj.updateId(idParm)
246 249
247 250 n += 1
248 251
249 252 def getElementName(self):
250 253
251 254 return self.ELEMENTNAME
252 255
253 256 def getParameterObjList(self):
254 257
255 258 return self.parmConfObjList
256 259
257 260 def getParameterObj(self, parameterName):
258 261
259 262 for parmConfObj in self.parmConfObjList:
260 263
261 264 if parmConfObj.name != parameterName:
262 265 continue
263 266
264 267 return parmConfObj
265 268
266 269 return None
267 270
268 271 def getParameterObjfromValue(self, parameterValue):
269 272
270 273 for parmConfObj in self.parmConfObjList:
271 274
272 275 if parmConfObj.getValue() != parameterValue:
273 276 continue
274 277
275 278 return parmConfObj.getValue()
276 279
277 280 return None
278 281
279 282 def getParameterValue(self, parameterName):
280 283
281 284 parameterObj = self.getParameterObj(parameterName)
282 285
283 286 # if not parameterObj:
284 287 # return None
285 288
286 289 value = parameterObj.getValue()
287 290
288 291 return value
289 292
290 293 def setup(self, id, name, priority, type):
291 294
292 295 self.id = str(id)
293 296 self.name = name
294 297 self.type = type
295 298 self.priority = priority
296 299
297 300 self.parmConfObjList = []
298 301
299 302 def removeParameters(self):
300 303
301 304 for obj in self.parmConfObjList:
302 305 del obj
303 306
304 307 self.parmConfObjList = []
305 308
306 309 def addParameter(self, name, value, format='str'):
307 310
308 311 id = self.__getNewId()
309 312
310 313 parmConfObj = ParameterConf()
311 314 if not parmConfObj.setup(id, name, value, format):
312 315 return None
313 316
314 317 self.parmConfObjList.append(parmConfObj)
315 318
316 319 return parmConfObj
317 320
318 321 def changeParameter(self, name, value, format='str'):
319 322
320 323 parmConfObj = self.getParameterObj(name)
321 324 parmConfObj.update(name, value, format)
322 325
323 326 return parmConfObj
324 327
325 328 def makeXml(self, upElement):
326 329
327 330 opElement = SubElement(upElement, self.ELEMENTNAME)
328 331 opElement.set('id', str(self.id))
329 332 opElement.set('name', self.name)
330 333 opElement.set('type', self.type)
331 334 opElement.set('priority', str(self.priority))
332 335
333 336 for parmConfObj in self.parmConfObjList:
334 337 parmConfObj.makeXml(opElement)
335 338
336 339 def readXml(self, opElement):
337 340
338 341 self.id = opElement.get('id')
339 342 self.name = opElement.get('name')
340 343 self.type = opElement.get('type')
341 344 self.priority = opElement.get('priority')
342 345
343 346 #Compatible with old signal chain version
344 347 #Use of 'run' method instead 'init'
345 348 if self.type == 'self' and self.name == 'init':
346 349 self.name = 'run'
347 350
348 351 self.parmConfObjList = []
349 352
350 353 parmElementList = opElement.getiterator(ParameterConf().getElementName())
351 354
352 355 for parmElement in parmElementList:
353 356 parmConfObj = ParameterConf()
354 357 parmConfObj.readXml(parmElement)
355 358
356 359 #Compatible with old signal chain version
357 360 #If an 'plot' OPERATION is found, changes name operation by the value of its type PARAMETER
358 361 if self.type != 'self' and self.name == 'Plot':
359 362 if parmConfObj.format == 'str' and parmConfObj.name == 'type':
360 363 self.name = parmConfObj.value
361 364 continue
362 365
363 366 self.parmConfObjList.append(parmConfObj)
364 367
365 368 def printattr(self):
366 369
367 370 print "%s[%s]: name = %s, type = %s, priority = %s" %(self.ELEMENTNAME,
368 371 self.id,
369 372 self.name,
370 373 self.type,
371 374 self.priority)
372 375
373 376 for parmConfObj in self.parmConfObjList:
374 377 parmConfObj.printattr()
375 378
376 379 def createObject(self):
377 380
378 381 if self.type == 'self':
379 382 raise ValueError, "This operation type cannot be created"
380 383
381 384 if self.type == 'external' or self.type == 'other':
382 385 className = eval(self.name)
383 386 opObj = className()
384 387
385 388 return opObj
386 389
387 390 class ProcUnitConf():
388 391
389 392 id = None
390 393 name = None
391 394 datatype = None
392 395 inputId = None
393 396 parentId = None
394 397
395 398 opConfObjList = []
396 399
397 400 procUnitObj = None
398 401 opObjList = []
399 402
400 403 ELEMENTNAME = 'ProcUnit'
401 404
402 405 def __init__(self):
403 406
404 407 self.id = None
405 408 self.datatype = None
406 409 self.name = None
407 410 self.inputId = None
408 411
409 412 self.opConfObjList = []
410 413
411 414 self.procUnitObj = None
412 415 self.opObjDict = {}
413 416
414 417 def __getPriority(self):
415 418
416 419 return len(self.opConfObjList)+1
417 420
418 421 def __getNewId(self):
419 422
420 423 return int(self.id)*10 + len(self.opConfObjList) + 1
421 424
422 425 def getElementName(self):
423 426
424 427 return self.ELEMENTNAME
425 428
426 429 def getId(self):
427 430
428 431 return self.id
429 432
430 433 def updateId(self, new_id, parentId=parentId):
431 434
432 435
433 436 new_id = int(parentId)*10 + (int(self.id) % 10)
434 437 new_inputId = int(parentId)*10 + (int(self.inputId) % 10)
435 438
436 439 #If this proc unit has not inputs
437 440 if self.inputId == '0':
438 441 new_inputId = 0
439 442
440 443 n = 1
441 444 for opConfObj in self.opConfObjList:
442 445
443 446 idOp = str(int(new_id)*10 + n)
444 447 opConfObj.updateId(idOp)
445 448
446 449 n += 1
447 450
448 451 self.parentId = str(parentId)
449 452 self.id = str(new_id)
450 453 self.inputId = str(new_inputId)
451 454
452 455
453 456 def getInputId(self):
454 457
455 458 return self.inputId
456 459
457 460 def getOperationObjList(self):
458 461
459 462 return self.opConfObjList
460 463
461 464 def getOperationObj(self, name=None):
462 465
463 466 for opConfObj in self.opConfObjList:
464 467
465 468 if opConfObj.name != name:
466 469 continue
467 470
468 471 return opConfObj
469 472
470 473 return None
471 474
472 475 def getOpObjfromParamValue(self, value=None):
473 476
474 477 for opConfObj in self.opConfObjList:
475 478 if opConfObj.getParameterObjfromValue(parameterValue=value) != value:
476 479 continue
477 480 return opConfObj
478 481 return None
479 482
480 483 def getProcUnitObj(self):
481 484
482 485 return self.procUnitObj
483 486
484 487 def setup(self, id, name, datatype, inputId, parentId=None):
485 488
486 489 #Compatible with old signal chain version
487 490 if datatype==None and name==None:
488 491 raise ValueError, "datatype or name should be defined"
489 492
490 493 if name==None:
491 494 if 'Proc' in datatype:
492 495 name = datatype
493 496 else:
494 497 name = '%sProc' %(datatype)
495 498
496 499 if datatype==None:
497 500 datatype = name.replace('Proc','')
498 501
499 502 self.id = str(id)
500 503 self.name = name
501 504 self.datatype = datatype
502 505 self.inputId = inputId
503 506 self.parentId = parentId
504 507
505 508 self.opConfObjList = []
506 509
507 510 self.addOperation(name='run', optype='self')
508 511
509 512 def removeOperations(self):
510 513
511 514 for obj in self.opConfObjList:
512 515 del obj
513 516
514 517 self.opConfObjList = []
515 518 self.addOperation(name='run')
516 519
517 520 def addParameter(self, **kwargs):
518 521 '''
519 522 Add parameters to "run" operation
520 523 '''
521 524 opObj = self.opConfObjList[0]
522 525
523 526 opObj.addParameter(**kwargs)
524 527
525 528 return opObj
526 529
527 530 def addOperation(self, name, optype='self'):
528 531
529 532 id = self.__getNewId()
530 533 priority = self.__getPriority()
531 534
532 535 opConfObj = OperationConf()
533 536 opConfObj.setup(id, name=name, priority=priority, type=optype)
534 537
535 538 self.opConfObjList.append(opConfObj)
536 539
537 540 return opConfObj
538 541
539 542 def makeXml(self, procUnitElement):
540 543
541 544 upElement = SubElement(procUnitElement, self.ELEMENTNAME)
542 545 upElement.set('id', str(self.id))
543 546 upElement.set('name', self.name)
544 547 upElement.set('datatype', self.datatype)
545 548 upElement.set('inputId', str(self.inputId))
546 549
547 550 for opConfObj in self.opConfObjList:
548 551 opConfObj.makeXml(upElement)
549 552
550 553 def readXml(self, upElement):
551 554
552 555 self.id = upElement.get('id')
553 556 self.name = upElement.get('name')
554 557 self.datatype = upElement.get('datatype')
555 558 self.inputId = upElement.get('inputId')
556 559
557 560 if self.ELEMENTNAME == "ReadUnit":
558 561 self.datatype = self.datatype.replace("Reader", "")
559 562
560 563 if self.ELEMENTNAME == "ProcUnit":
561 564 self.datatype = self.datatype.replace("Proc", "")
562 565
563 566 if self.inputId == 'None':
564 567 self.inputId = '0'
565 568
566 569 self.opConfObjList = []
567 570
568 571 opElementList = upElement.getiterator(OperationConf().getElementName())
569 572
570 573 for opElement in opElementList:
571 574 opConfObj = OperationConf()
572 575 opConfObj.readXml(opElement)
573 576 self.opConfObjList.append(opConfObj)
574 577
575 578 def printattr(self):
576 579
577 580 print "%s[%s]: name = %s, datatype = %s, inputId = %s" %(self.ELEMENTNAME,
578 581 self.id,
579 582 self.name,
580 583 self.datatype,
581 584 self.inputId)
582 585
583 586 for opConfObj in self.opConfObjList:
584 587 opConfObj.printattr()
585 588
586 589 def createObjects(self):
587 590
588 591 className = eval(self.name)
589 592 procUnitObj = className()
590 593
591 594 for opConfObj in self.opConfObjList:
592 595
593 596 if opConfObj.type == 'self':
594 597 continue
595 598
596 599 opObj = opConfObj.createObject()
597 600
598 601 self.opObjDict[opConfObj.id] = opObj
599 602 procUnitObj.addOperation(opObj, opConfObj.id)
600 603
601 604 self.procUnitObj = procUnitObj
602 605
603 606 return procUnitObj
604 607
605 608 def run(self):
606 609
607 610 is_ok = False
608 611
609 612 for opConfObj in self.opConfObjList:
610 613
611 614 kwargs = {}
612 615 for parmConfObj in opConfObj.getParameterObjList():
613 616 if opConfObj.name == 'run' and parmConfObj.name == 'datatype':
614 617 continue
615 618
616 619 kwargs[parmConfObj.name] = parmConfObj.getValue()
617 620
618 621 #print "\tRunning the '%s' operation with %s" %(opConfObj.name, opConfObj.id)
619 622 sts = self.procUnitObj.call(opType = opConfObj.type,
620 623 opName = opConfObj.name,
621 624 opId = opConfObj.id,
622 625 **kwargs)
623 626 is_ok = is_ok or sts
624 627
625 628 return is_ok
626 629
627 630 def close(self):
628 631
629 632 for opConfObj in self.opConfObjList:
630 633 if opConfObj.type == 'self':
631 634 continue
632 635
633 636 opObj = self.procUnitObj.getOperationObj(opConfObj.id)
634 637 opObj.close()
635 638
636 639 self.procUnitObj.close()
637 640
638 641 return
639 642
640 643 class ReadUnitConf(ProcUnitConf):
641 644
642 645 path = None
643 646 startDate = None
644 647 endDate = None
645 648 startTime = None
646 649 endTime = None
647 650
648 651 ELEMENTNAME = 'ReadUnit'
649 652
650 653 def __init__(self):
651 654
652 655 self.id = None
653 656 self.datatype = None
654 657 self.name = None
655 658 self.inputId = None
656 659
657 660 self.parentId = None
658 661
659 662 self.opConfObjList = []
660 663 self.opObjList = []
661 664
662 665 def getElementName(self):
663 666
664 667 return self.ELEMENTNAME
665 668
666 669 def setup(self, id, name, datatype, path, startDate="", endDate="", startTime="", endTime="", parentId=None, **kwargs):
667 670
668 671 #Compatible with old signal chain version
669 672 if datatype==None and name==None:
670 673 raise ValueError, "datatype or name should be defined"
671 674
672 675 if name==None:
673 676 if 'Reader' in datatype:
674 677 name = datatype
675 678 else:
676 679 name = '%sReader' %(datatype)
677 680
678 681 if datatype==None:
679 682 datatype = name.replace('Reader','')
680 683
681 684 self.id = id
682 685 self.name = name
683 686 self.datatype = datatype
684 687
685 688 self.path = path
686 689 self.startDate = startDate
687 690 self.endDate = endDate
688 691 self.startTime = startTime
689 692 self.endTime = endTime
690 693
691 694 self.inputId = '0'
692 695 self.parentId = parentId
693 696
694 697 self.addRunOperation(**kwargs)
695 698
696 699 def update(self, datatype, path, startDate, endDate, startTime, endTime, parentId=None, name=None, **kwargs):
697 700
698 701 #Compatible with old signal chain version
699 702 if datatype==None and name==None:
700 703 raise ValueError, "datatype or name should be defined"
701 704
702 705 if name==None:
703 706 if 'Reader' in datatype:
704 707 name = datatype
705 708 else:
706 709 name = '%sReader' %(datatype)
707 710
708 711 if datatype==None:
709 712 datatype = name.replace('Reader','')
710 713
711 714 self.datatype = datatype
712 715 self.name = name
713 716 self.path = path
714 717 self.startDate = startDate
715 718 self.endDate = endDate
716 719 self.startTime = startTime
717 720 self.endTime = endTime
718 721
719 722 self.inputId = '0'
720 723 self.parentId = parentId
721 724
722 725 self.updateRunOperation(**kwargs)
723 726
724 727 def addRunOperation(self, **kwargs):
725 728
726 729 opObj = self.addOperation(name = 'run', optype = 'self')
727 730
728 731 opObj.addParameter(name='datatype' , value=self.datatype, format='str')
729 732 opObj.addParameter(name='path' , value=self.path, format='str')
730 733 opObj.addParameter(name='startDate' , value=self.startDate, format='date')
731 734 opObj.addParameter(name='endDate' , value=self.endDate, format='date')
732 735 opObj.addParameter(name='startTime' , value=self.startTime, format='time')
733 736 opObj.addParameter(name='endTime' , value=self.endTime, format='time')
734 737
735 738 for key, value in kwargs.items():
736 739 opObj.addParameter(name=key, value=value, format=type(value).__name__)
737 740
738 741 return opObj
739 742
740 743 def updateRunOperation(self, **kwargs):
741 744
742 745 opObj = self.getOperationObj(name = 'run')
743 746 opObj.removeParameters()
744 747
745 748 opObj.addParameter(name='datatype' , value=self.datatype, format='str')
746 749 opObj.addParameter(name='path' , value=self.path, format='str')
747 750 opObj.addParameter(name='startDate' , value=self.startDate, format='date')
748 751 opObj.addParameter(name='endDate' , value=self.endDate, format='date')
749 752 opObj.addParameter(name='startTime' , value=self.startTime, format='time')
750 753 opObj.addParameter(name='endTime' , value=self.endTime, format='time')
751 754
752 755 for key, value in kwargs.items():
753 756 opObj.addParameter(name=key, value=value, format=type(value).__name__)
754 757
755 758 return opObj
756 759
757 760 class Project():
758 761
759 762 id = None
760 763 name = None
761 764 description = None
762 765 # readUnitConfObjList = None
763 766 procUnitConfObjDict = None
764 767
765 768 ELEMENTNAME = 'Project'
766 769
767 770 def __init__(self):
768 771
769 772 self.id = None
770 773 self.name = None
771 774 self.description = None
772 775
773 776 self.procUnitConfObjDict = {}
774 777
775 778 def __getNewId(self):
776 779
777 780 id = int(self.id)*10 + len(self.procUnitConfObjDict) + 1
778 781
779 782 return str(id)
780 783
781 784 def getElementName(self):
782 785
783 786 return self.ELEMENTNAME
784 787
785 788 def getId(self):
786 789
787 790 return self.id
788 791
789 792 def updateId(self, new_id):
790 793
791 794 self.id = str(new_id)
792 795
793 796 keyList = self.procUnitConfObjDict.keys()
794 797 keyList.sort()
795 798
796 799 n = 1
797 800 newProcUnitConfObjDict = {}
798 801
799 802 for procKey in keyList:
800 803
801 804 procUnitConfObj = self.procUnitConfObjDict[procKey]
802 805 idProcUnit = str(int(self.id)*10 + n)
803 806 procUnitConfObj.updateId(idProcUnit, parentId = self.id)
804 807
805 808 newProcUnitConfObjDict[idProcUnit] = procUnitConfObj
806 809 n += 1
807 810
808 811 self.procUnitConfObjDict = newProcUnitConfObjDict
809 812
810 813 def setup(self, id, name, description):
811 814
812 815 self.id = str(id)
813 816 self.name = name
814 817 self.description = description
815 818
816 819 def update(self, name, description):
817 820
818 821 self.name = name
819 822 self.description = description
820 823
821 824 def addReadUnit(self, datatype=None, name=None, **kwargs):
822 825
823 826 idReadUnit = self.__getNewId()
824 827
825 828 readUnitConfObj = ReadUnitConf()
826 829 readUnitConfObj.setup(idReadUnit, name, datatype, parentId=self.id, **kwargs)
827 830
828 831 self.procUnitConfObjDict[readUnitConfObj.getId()] = readUnitConfObj
829 832
830 833 return readUnitConfObj
831 834
832 835 def addProcUnit(self, inputId='0', datatype=None, name=None):
833 836
834 837 idProcUnit = self.__getNewId()
835 838
836 839 procUnitConfObj = ProcUnitConf()
837 840 procUnitConfObj.setup(idProcUnit, name, datatype, inputId, parentId=self.id)
838 841
839 842 self.procUnitConfObjDict[procUnitConfObj.getId()] = procUnitConfObj
840 843
841 844 return procUnitConfObj
842 845
843 846 def removeProcUnit(self, id):
844 847
845 848 if id in self.procUnitConfObjDict.keys():
846 849 self.procUnitConfObjDict.pop(id)
847 850
848 851 def getReadUnitId(self):
849 852
850 853 readUnitConfObj = self.getReadUnitObj()
851 854
852 855 return readUnitConfObj.id
853 856
854 857 def getReadUnitObj(self):
855 858
856 859 for obj in self.procUnitConfObjDict.values():
857 860 if obj.getElementName() == "ReadUnit":
858 861 return obj
859 862
860 863 return None
861 864
862 865 def getProcUnitObj(self, id=None, name=None):
863 866
864 867 if id != None:
865 868 return self.procUnitConfObjDict[id]
866 869
867 870 if name != None:
868 871 return self.getProcUnitObjByName(name)
869 872
870 873 return None
871 874
872 875 def getProcUnitObjByName(self, name):
873 876
874 877 for obj in self.procUnitConfObjDict.values():
875 878 if obj.name == name:
876 879 return obj
877 880
878 881 return None
879 882
880 883 def procUnitItems(self):
881 884
882 885 return self.procUnitConfObjDict.items()
883 886
884 887 def makeXml(self):
885 888
886 889 projectElement = Element('Project')
887 890 projectElement.set('id', str(self.id))
888 891 projectElement.set('name', self.name)
889 892 projectElement.set('description', self.description)
890 893
891 894 for procUnitConfObj in self.procUnitConfObjDict.values():
892 895 procUnitConfObj.makeXml(projectElement)
893 896
894 897 self.projectElement = projectElement
895 898
896 899 def writeXml(self, filename):
897 900
898 901 self.makeXml()
899 902
900 903 #print prettify(self.projectElement)
901 904
902 905 ElementTree(self.projectElement).write(filename, method='xml')
903 906
904 907 def readXml(self, filename):
905 908
906 909 self.projectElement = None
907 910 self.procUnitConfObjDict = {}
908 911
909 912 self.projectElement = ElementTree().parse(filename)
910 913
911 914 self.project = self.projectElement.tag
912 915
913 916 self.id = self.projectElement.get('id')
914 917 self.name = self.projectElement.get('name')
915 918 self.description = self.projectElement.get('description')
916 919
917 920 readUnitElementList = self.projectElement.getiterator(ReadUnitConf().getElementName())
918 921
919 922 for readUnitElement in readUnitElementList:
920 923 readUnitConfObj = ReadUnitConf()
921 924 readUnitConfObj.readXml(readUnitElement)
922 925
923 926 if readUnitConfObj.parentId == None:
924 927 readUnitConfObj.parentId = self.id
925 928
926 929 self.procUnitConfObjDict[readUnitConfObj.getId()] = readUnitConfObj
927 930
928 931 procUnitElementList = self.projectElement.getiterator(ProcUnitConf().getElementName())
929 932
930 933 for procUnitElement in procUnitElementList:
931 934 procUnitConfObj = ProcUnitConf()
932 935 procUnitConfObj.readXml(procUnitElement)
933 936
934 937 if procUnitConfObj.parentId == None:
935 938 procUnitConfObj.parentId = self.id
936 939
937 940 self.procUnitConfObjDict[procUnitConfObj.getId()] = procUnitConfObj
938 941
939 942 def printattr(self):
940 943
941 944 print "Project[%s]: name = %s, description = %s" %(self.id,
942 945 self.name,
943 946 self.description)
944 947
945 948 for procUnitConfObj in self.procUnitConfObjDict.values():
946 949 procUnitConfObj.printattr()
947 950
948 951 def createObjects(self):
949 952
950 953 for procUnitConfObj in self.procUnitConfObjDict.values():
951 954 procUnitConfObj.createObjects()
952 955
953 956 def __connect(self, objIN, thisObj):
954 957
955 958 thisObj.setInput(objIN.getOutputObj())
956 959
957 960 def connectObjects(self):
958 961
959 962 for thisPUConfObj in self.procUnitConfObjDict.values():
960 963
961 964 inputId = thisPUConfObj.getInputId()
962 965
963 966 if int(inputId) == 0:
964 967 continue
965 968
966 969 #Get input object
967 970 puConfINObj = self.procUnitConfObjDict[inputId]
968 971 puObjIN = puConfINObj.getProcUnitObj()
969 972
970 973 #Get current object
971 974 thisPUObj = thisPUConfObj.getProcUnitObj()
972 975
973 976 self.__connect(puObjIN, thisPUObj)
974 977
975 978 def isPaused(self):
976 979 return 0
977 980
978 981 def isStopped(self):
979 982 return 0
980 983
981 984 def runController(self):
982 985 """
983 986 returns 0 when this process has been stopped, 1 otherwise
984 987 """
985 988
986 989 if self.isPaused():
987 990 print "Process suspended"
988 991
989 992 while True:
990 993 sleep(0.1)
991 994
992 995 if not self.isPaused():
993 996 break
994 997
995 998 if self.isStopped():
996 999 break
997 1000
998 1001 print "Process reinitialized"
999 1002
1000 1003 if self.isStopped():
1001 1004 print "Process stopped"
1002 1005 return 0
1003 1006
1004 1007 return 1
1005 1008
1006 1009 def run(self):
1007 1010
1008 1011 print
1009 1012 print "*"*60
1010 1013 print " Starting SIGNAL CHAIN PROCESSING "
1011 1014 print "*"*60
1012 1015 print
1013 1016
1014 1017 keyList = self.procUnitConfObjDict.keys()
1015 1018 keyList.sort()
1016 1019
1017 1020 while(True):
1018 1021
1019 1022 is_ok = False
1020 1023
1021 1024 for procKey in keyList:
1022 1025 # print "Running the '%s' process with %s" %(procUnitConfObj.name, procUnitConfObj.id)
1023 1026
1024 1027 procUnitConfObj = self.procUnitConfObjDict[procKey]
1025 1028
1026 1029 message = ""
1027 1030 try:
1028 1031 sts = procUnitConfObj.run()
1029 1032 is_ok = is_ok or sts
1030 1033 except:
1031 1034 sleep(1)
1032 1035 err = traceback.format_exception(sys.exc_info()[0],
1033 1036 sys.exc_info()[1],
1034 1037 sys.exc_info()[2])
1035 1038
1036 1039 for thisLine in err:
1037 1040 message += thisLine
1038 1041
1039 1042 print message
1040 1043 # self.sendReport(message)
1041 1044 sleep(0.1)
1042 1045 is_ok = False
1043 1046
1044 1047 break
1045 1048
1046 1049 #If every process unit finished so end process
1047 1050 if not(is_ok):
1048 1051 print message
1049 1052 print "Every process unit have finished"
1050 1053 break
1051 1054
1052 1055 if not self.runController():
1053 1056 break
1054 1057
1055 1058 #Closing every process
1056 1059 for procKey in keyList:
1057 1060 procUnitConfObj = self.procUnitConfObjDict[procKey]
1058 1061 procUnitConfObj.close()
1059 1062
1060 1063 print "Process finished"
1061 1064
1062 1065 def start(self, filename):
1063 1066
1064 1067 self.writeXml(filename)
1065 1068 self.readXml(filename)
1066 1069
1067 1070 self.createObjects()
1068 1071 self.connectObjects()
1069 1072 self.run()
1070 1073
1071 1074 def sendReport(self, message, subject="Error occurred in Signal Chain", email=SCHAIN_MAIL):
1072 1075
1073 1076 import smtplib
1074 1077
1075 1078 print subject
1076 1079 print "Sending report to %s ..." %email
1077 1080
1078 1081 message = 'From: (Python Signal Chain API) ' + email + '\n' + \
1079 1082 'To: ' + email + '\n' + \
1080 1083 'Subject: ' + str(subject) + '\n' + \
1081 1084 'Content-type: text/html\n\n' + message
1082 1085
1083 1086 server = smtplib.SMTP(EMAIL_SERVER)
1084 1087 server.sendmail(email.split(',')[0],
1085 1088 email.split(','), message)
1086 1089 server.quit()
1087 1090
1088 1091 if __name__ == '__main__':
1089 1092
1090 1093 desc = "Segundo Test"
1091 1094 filename = "schain.xml"
1092 1095
1093 1096 controllerObj = Project()
1094 1097
1095 1098 controllerObj.setup(id = '191', name='test01', description=desc)
1096 1099
1097 1100 readUnitConfObj = controllerObj.addReadUnit(datatype='Voltage',
1098 1101 path='data/rawdata/',
1099 1102 startDate='2011/01/01',
1100 1103 endDate='2012/12/31',
1101 1104 startTime='00:00:00',
1102 1105 endTime='23:59:59',
1103 1106 online=1,
1104 1107 walk=1)
1105 1108
1106 1109 procUnitConfObj0 = controllerObj.addProcUnit(datatype='Voltage', inputId=readUnitConfObj.getId())
1107 1110
1108 1111 opObj10 = procUnitConfObj0.addOperation(name='selectChannels')
1109 1112 opObj10.addParameter(name='channelList', value='3,4,5', format='intlist')
1110 1113
1111 1114 opObj10 = procUnitConfObj0.addOperation(name='selectHeights')
1112 1115 opObj10.addParameter(name='minHei', value='90', format='float')
1113 1116 opObj10.addParameter(name='maxHei', value='180', format='float')
1114 1117
1115 1118 opObj12 = procUnitConfObj0.addOperation(name='CohInt', optype='external')
1116 1119 opObj12.addParameter(name='n', value='10', format='int')
1117 1120
1118 1121 procUnitConfObj1 = controllerObj.addProcUnit(datatype='Spectra', inputId=procUnitConfObj0.getId())
1119 1122 procUnitConfObj1.addParameter(name='nFFTPoints', value='32', format='int')
1120 1123 # procUnitConfObj1.addParameter(name='pairList', value='(0,1),(0,2),(1,2)', format='')
1121 1124
1122 1125
1123 1126 opObj11 = procUnitConfObj1.addOperation(name='SpectraPlot', optype='external')
1124 1127 opObj11.addParameter(name='idfigure', value='1', format='int')
1125 1128 opObj11.addParameter(name='wintitle', value='SpectraPlot0', format='str')
1126 1129 opObj11.addParameter(name='zmin', value='40', format='int')
1127 1130 opObj11.addParameter(name='zmax', value='90', format='int')
1128 1131 opObj11.addParameter(name='showprofile', value='1', format='int')
1129 1132
1130 1133 print "Escribiendo el archivo XML"
1131 1134
1132 1135 controllerObj.writeXml(filename)
1133 1136
1134 1137 print "Leyendo el archivo XML"
1135 1138 controllerObj.readXml(filename)
1136 1139 #controllerObj.printattr()
1137 1140
1138 1141 controllerObj.createObjects()
1139 1142 controllerObj.connectObjects()
1140 1143 controllerObj.run()
1141 1144
1142 1145 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,342 +1,342
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 from schainpy import __version__
30 30
31 31 FIGURES_PATH = tools.get_path()
32 32
33 33 class Ui_EnvWindow(object):
34 34 paused = False
35 35
36 36 def restorePauseIcon(self):
37 37
38 38 icon_name = "pause.png"
39 39 iconPause = QtGui.QIcon()
40 40 iconPause.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH, icon_name) )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
41 41 self.actionPauseToolbar.setIcon(iconPause)
42 42
43 43 def restoreStartIcon(self):
44 44
45 45 icon_name = "start.png"
46 46 iconStart = QtGui.QIcon()
47 47 iconStart.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH, icon_name) )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
48 48 self.actionStarToolbar.setIcon(iconStart)
49 49
50 50 def changePauseIcon(self, paused=False):
51 51
52 52 if paused == True:
53 53 icon_name = "pausered.png"
54 54 else:
55 55 icon_name = "pause.png"
56 56
57 57 iconPause = QtGui.QIcon()
58 58 iconPause.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH, icon_name) )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
59 59 self.actionPauseToolbar.setIcon(iconPause)
60 60
61 61 return
62 62
63 63 def changeStartIcon(self, started=False):
64 64
65 65 if started == True:
66 66 icon_name = "startred.png"
67 67 else:
68 68 icon_name = "start.png"
69 69
70 70 iconStart = QtGui.QIcon()
71 71 iconStart.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH, icon_name) )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
72 72 self.actionStarToolbar.setIcon(iconStart)
73
73
74 74 return
75 75
76 76 def setupUi(self, MainWindow):
77 77
78 78 self.paused=False
79 79
80 80 MainWindow.setObjectName(_fromUtf8("MainWindow"))
81 81 MainWindow.resize(1200, 800)
82 82
83 83 self.centralWidget = QtGui.QWidget(MainWindow)
84 84 self.centralWidget.setObjectName(_fromUtf8("centralWidget"))
85 85 self.gridLayout_16 = QtGui.QGridLayout(self.centralWidget)
86 86 self.gridLayout_16.setObjectName(_fromUtf8("gridLayout_16"))
87 87 self.splitter_2 = QtGui.QSplitter(self.centralWidget)
88 88 self.splitter_2.setOrientation(QtCore.Qt.Horizontal)
89 89 self.splitter_2.setObjectName(_fromUtf8("splitter_2"))
90 90 self.projectExplorerTree = QtGui.QTreeView(self.splitter_2)
91 91 self.projectExplorerTree.setObjectName(_fromUtf8("projectExplorerTree"))
92 92 self.splitter = QtGui.QSplitter(self.splitter_2)
93 93 self.splitter.setOrientation(QtCore.Qt.Vertical)
94 94 self.splitter.setObjectName(_fromUtf8("splitter"))
95 95 self.tabWidgetProject = QtGui.QTabWidget(self.splitter)
96 96 self.tabWidgetProject.setMinimumSize(QtCore.QSize(0, 278))
97 97 self.tabWidgetProject.setMaximumSize(QtCore.QSize(16777215, 16777215))
98 98 self.tabWidgetProject.setObjectName(_fromUtf8("tabWidgetProject"))
99 99
100 100 self.tabConsole = QtGui.QTabWidget(self.splitter)
101 101 self.tabConsole.setMinimumSize(QtCore.QSize(0, 0))
102 102 self.tabConsole.setObjectName(_fromUtf8("tabConsole"))
103 103 self.tab_5 = QtGui.QWidget()
104 104 self.tab_5.setObjectName(_fromUtf8("tab_5"))
105 105 self.gridLayout_4 = QtGui.QGridLayout(self.tab_5)
106 106 self.gridLayout_4.setObjectName(_fromUtf8("gridLayout_4"))
107 107 self.console = QtGui.QTextEdit(self.tab_5)
108 108 self.console.setObjectName(_fromUtf8("console"))
109 109 self.gridLayout_4.addWidget(self.console, 0, 0, 1, 1)
110 110 self.tabConsole.addTab(self.tab_5, _fromUtf8(""))
111 111 self.tabWidget = QtGui.QTabWidget(self.splitter_2)
112 112 self.tabWidget.setObjectName(_fromUtf8("tabWidget"))
113 113 self.tabProjectProperty = QtGui.QWidget()
114 114 self.tabProjectProperty.setObjectName(_fromUtf8("tabProjectProperty"))
115 115 self.gridLayout_8 = QtGui.QGridLayout(self.tabProjectProperty)
116 116 self.gridLayout_8.setObjectName(_fromUtf8("gridLayout_8"))
117 117 self.treeProjectProperties = QtGui.QTreeView(self.tabProjectProperty)
118 118 self.treeProjectProperties.setObjectName(_fromUtf8("treeProjectProperties"))
119 119 self.gridLayout_8.addWidget(self.treeProjectProperties, 0, 0, 1, 1)
120 120 self.tabWidget.addTab(self.tabProjectProperty, _fromUtf8(""))
121 121 self.gridLayout_16.addWidget(self.splitter_2, 1, 0, 1, 1)
122 122
123 123 MainWindow.setCentralWidget(self.centralWidget)
124 124 self.toolBar = QtGui.QToolBar(MainWindow)
125 125 self.toolBar.setObjectName(_fromUtf8("toolBar"))
126 126 MainWindow.addToolBar(QtCore.Qt.TopToolBarArea, self.toolBar)
127 127
128 128 self.menuBar = QtGui.QMenuBar(MainWindow)
129 129 self.menuBar.setGeometry(QtCore.QRect(0, 0, 1065, 25))
130 130 self.menuBar.setObjectName(_fromUtf8("menuBar"))
131 131 self.menuProject = QtGui.QMenu(self.menuBar)
132 132 self.menuProject.setObjectName(_fromUtf8("menuProject"))
133 133 self.menuRun = QtGui.QMenu(self.menuBar)
134 134 self.menuRun.setObjectName(_fromUtf8("menuRun"))
135 135 self.menuOptions = QtGui.QMenu(self.menuBar)
136 136 self.menuOptions.setObjectName(_fromUtf8("menuOptions"))
137 137 self.menuHelp = QtGui.QMenu(self.menuBar)
138 138 self.menuHelp.setObjectName(_fromUtf8("menuHelp"))
139 139 MainWindow.setMenuBar(self.menuBar)
140 140
141 141 iconOpen = QtGui.QIcon()
142 142 iconOpen.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH,"open.png") )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
143 143 iconCreate = QtGui.QIcon()
144 144 iconCreate.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH,"new.png") )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
145 145 iconSave = QtGui.QIcon()
146 146 iconSave.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH,"save.png") )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
147 147 iconStart = QtGui.QIcon()
148 148 iconStart.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH,"start.png") )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
149 149 iconStop = QtGui.QIcon()
150 150 iconStop.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH,"stop.png") )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
151 151 iconPause = QtGui.QIcon()
152 152 iconPause.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH,"pause.png") )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
153 153 iconAddPU = QtGui.QIcon()
154 154 iconAddPU.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH,"branch.png") )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
155 155 iconClose = QtGui.QIcon()
156 156 iconClose.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH,"close.png") )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
157 157
158 158
159 159 self.actionOpen = QtGui.QAction(MainWindow)
160 160 self.actionOpen.setIcon(iconOpen)
161 161 self.actionOpen.setObjectName(_fromUtf8("actionOpen"))
162 162 self.actionCreate = QtGui.QAction(MainWindow)
163 163 self.actionCreate.setIcon(iconCreate)
164 164 self.actionCreate.setObjectName(_fromUtf8("actionCreate"))
165 165 self.actionSave = QtGui.QAction(MainWindow)
166 166 self.actionSave.setIcon(iconSave)
167 167 self.actionSave.setObjectName(_fromUtf8("actionSave"))
168 168 self.actionClose = QtGui.QAction(MainWindow)
169 169 self.actionClose.setIcon(iconClose)
170 170 self.actionClose.setObjectName(_fromUtf8("actionClose"))
171 171 self.actionStart = QtGui.QAction(MainWindow)
172 172 self.actionStart.setIcon(iconStart)
173 173 self.actionStart.setObjectName(_fromUtf8("actionStart"))
174 174 self.actionPause = QtGui.QAction(MainWindow)
175 175 self.actionPause.setIcon(iconPause)
176 176 self.actionPause.setObjectName(_fromUtf8("actionPause"))
177 177 self.actionStop = QtGui.QAction(MainWindow)
178 178 self.actionStop.setIcon(iconStop)
179 179 self.actionStop.setObjectName(_fromUtf8("actionStop"))
180 180 self.actionAbout = QtGui.QAction(MainWindow)
181 181 self.actionAbout.setObjectName(_fromUtf8("actionAbout"))
182 182
183 183 self.actionOpenToolbar = QtGui.QAction(MainWindow)
184 184 self.actionOpenToolbar.setIcon(iconOpen)
185 185 self.actionOpenToolbar.setObjectName(_fromUtf8("actionOpenToolbar"))
186 186 self.actionCreateToolbar = QtGui.QAction(MainWindow)
187 187 self.actionCreateToolbar.setIcon(iconCreate)
188 188 self.actionCreateToolbar.setObjectName(_fromUtf8("actionCreateToolbar"))
189 189 self.actionSaveToolbar = QtGui.QAction(MainWindow)
190 190 self.actionSaveToolbar.setIcon(iconSave)
191 191 self.actionSaveToolbar.setObjectName(_fromUtf8("actionSaveToolbar"))
192 192 self.actionStarToolbar = QtGui.QAction(MainWindow)
193 193 self.actionStarToolbar.setIcon(iconStart)
194 194 self.actionStarToolbar.setObjectName(_fromUtf8("actionStarToolbar"))
195 195 self.actionStopToolbar = QtGui.QAction(MainWindow)
196 196 self.actionStopToolbar.setIcon(iconStop)
197 197 self.actionStopToolbar.setObjectName(_fromUtf8("actionStopToolbar"))
198 198 self.actionPauseToolbar = QtGui.QAction(MainWindow)
199 199 self.actionPauseToolbar.setIcon(iconPause)
200 200 self.actionPauseToolbar.setObjectName(_fromUtf8("actionPauseToolbar"))
201 201 self.actionAddPU = QtGui.QAction(MainWindow)
202 202 self.actionAddPU.setIcon(iconAddPU)
203 203 self.actionAddPU.setObjectName(_fromUtf8("actionAddPU"))
204 204 self.actionFTP = QtGui.QAction(MainWindow)
205 205 self.actionFTP.setObjectName(_fromUtf8("actionFTP"))
206 206 self.toolBar.addAction(self.actionOpenToolbar)
207 207 self.toolBar.addSeparator()
208 208 self.toolBar.addAction(self.actionCreateToolbar)
209 209 self.toolBar.addSeparator()
210 210 self.toolBar.addAction(self.actionAddPU)
211 211 self.toolBar.addSeparator()
212 212 self.toolBar.addAction(self.actionSaveToolbar)
213 213 self.toolBar.addSeparator()
214 214 self.toolBar.addAction(self.actionStarToolbar)
215 215 self.toolBar.addSeparator()
216 216 self.toolBar.addAction(self.actionPauseToolbar)
217 217 self.toolBar.addSeparator()
218 218 self.toolBar.addAction(self.actionStopToolbar)
219 219 self.toolBar.addSeparator()
220 220
221 221 # self.actionPause.triggered.connect(self.changePauseIcon)
222 222 # self.actionPauseToolbar.triggered.connect(self.changePauseIcon)
223 223
224 224 self.menuProject.addAction(self.actionOpen)
225 225 self.menuProject.addAction(self.actionCreate)
226 226 self.menuProject.addAction(self.actionSave)
227 227 self.menuProject.addAction(self.actionClose)
228 228 self.menuRun.addAction(self.actionStart)
229 229 self.menuRun.addAction(self.actionPause)
230 230 self.menuRun.addAction(self.actionStop)
231 231 self.menuOptions.addAction(self.actionFTP)
232 232 self.menuHelp.addAction(self.actionAbout)
233 233 self.menuBar.addAction(self.menuProject.menuAction())
234 234 self.menuBar.addAction(self.menuRun.menuAction())
235 235 self.menuBar.addAction(self.menuOptions.menuAction())
236 236 self.menuBar.addAction(self.menuHelp.menuAction())
237 237
238 238 self.tabConsole.setCurrentIndex(0)
239 239 self.tabWidget.setCurrentIndex(0)
240 240
241 241 def retranslateUi(self, MainWindow):
242 242
243 243 MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow", None))
244 244
245 245 self.tabConsole.setTabText(self.tabConsole.indexOf(self.tab_5), _translate("MainWindow", "Console", None))
246 246
247 247 self.tabWidget.setTabText(self.tabWidget.indexOf(self.tabProjectProperty), _translate("MainWindow", "Project Property", None))
248 248 self.toolBar.setWindowTitle(_translate("MainWindow", "toolBar", None))
249 249 self.menuProject.setTitle(_translate("MainWindow", "Project", None))
250 250 self.menuRun.setTitle(_translate("MainWindow", "Run", None))
251 251 self.menuOptions.setTitle(_translate("MainWindow", "Options", None))
252 252 self.menuHelp.setTitle(_translate("MainWindow", "Help", None))
253 253 self.actionOpen.setText(_translate("MainWindow", "Open", None))
254 254 self.actionCreate.setText(_translate("MainWindow", "Create", None))
255 255 self.actionSave.setText(_translate("MainWindow", "Save", None))
256 256 self.actionClose.setText(_translate("MainWindow", "Close", None))
257 257 self.actionStart.setText(_translate("MainWindow", "Start", None))
258 258 self.actionPause.setText(_translate("MainWindow", "Pause", None))
259 259 self.actionStop.setText(_translate("MainWindow", "Stop", None))
260 260 self.actionAbout.setText(_translate("MainWindow", "About SChain", None))
261 261 self.actionOpenToolbar.setText(_translate("MainWindow", "openToolbar", None))
262 262 self.actionOpenToolbar.setToolTip(_translate("MainWindow", "Open a project", None))
263 263 self.actionCreateToolbar.setText(_translate("MainWindow", "createToolbar", None))
264 264 self.actionCreateToolbar.setToolTip(_translate("MainWindow", "Create a new project", None))
265 265 self.actionSaveToolbar.setText(_translate("MainWindow", "saveToolbar", None))
266 266 self.actionSaveToolbar.setToolTip(_translate("MainWindow", "Save a project", None))
267 267 self.actionStarToolbar.setText(_translate("MainWindow", "starToolbar", None))
268 268 self.actionStarToolbar.setToolTip(_translate("MainWindow", "Start process", None))
269 269 self.actionStopToolbar.setText(_translate("MainWindow", "stopToolbar", None))
270 270 self.actionStopToolbar.setToolTip(_translate("MainWindow", "Stop process", None))
271 271 self.actionPauseToolbar.setText(_translate("MainWindow", "pauseToolbar", None))
272 272 self.actionPauseToolbar.setToolTip(_translate("MainWindow", "Pause process", None))
273 273 self.actionAddPU.setText(_translate("MainWindow", "Add Processing Unit", None))
274 274 self.actionFTP.setText(_translate("MainWindow", "FTP", None))
275 275
276 276 def closeEvent(self, event):
277 277
278 278 reply = QtGui.QMessageBox.question(self, 'Message',
279 279 "Are you sure to quit?", QtGui.QMessageBox.Yes |
280 280 QtGui.QMessageBox.No, QtGui.QMessageBox.No)
281 281 if reply == QtGui.QMessageBox.Yes:
282 282 event.accept()
283 283 else:
284 284 event.ignore()
285 285
286 286 def aboutEvent(self):
287 287 title = "Signal Chain Processing Software v%s" %__version__
288 288 message = """
289 289 Developed by Jicamarca Radio Observatory
290 290 Any comment to miguel.urco@jro.igp.gob.pe
291 291 """
292 292 QtGui.QMessageBox.about(self, title, message)
293 293
294 294
295 295 class Ui_BasicWindow(Ui_EnvWindow, Ui_ProjectTab, Ui_VoltageTab, Ui_SpectraTab, Ui_SpectraHeisTab, Ui_CorrelationTab):
296 296
297 297 def setupUi(self, MainWindow):
298 298
299 299 Ui_EnvWindow.setupUi(self, MainWindow)
300 300
301 301 Ui_ProjectTab.setupUi(self)
302 302 Ui_VoltageTab.setupUi(self)
303 303 Ui_SpectraTab.setupUi(self)
304 304 Ui_SpectraHeisTab.setupUi(self)
305 305 Ui_CorrelationTab.setupUi(self)
306 306
307 307 self.retranslateUi(MainWindow)
308 308
309 309 QtCore.QMetaObject.connectSlotsByName(MainWindow)
310 310
311 311 def retranslateUi(self, MainWindow):
312 312
313 313 Ui_EnvWindow.retranslateUi(self, MainWindow)
314 314
315 315 Ui_ProjectTab.retranslateUi(self)
316 316 Ui_VoltageTab.retranslateUi(self)
317 317 Ui_SpectraTab.retranslateUi(self)
318 318 Ui_SpectraHeisTab.retranslateUi(self)
319 319 Ui_CorrelationTab.retranslateUi(self)
320 320
321 321
322 322 class Ui_AdvancedWindow(Ui_EnvWindow):
323 323
324 324 def setupUi(self, AdvancedWindow):
325 325
326 326 Ui_MainWindow.setupUi(self, AdvancedWindow)
327 327
328 328 def retranslateUi(self, AdvancedWindow):
329 329
330 330 Ui_MainWindow.retranslateUi(self, AdvancedWindow)
331 331
332 332
333 333
334 334 if __name__ == "__main__":
335 335 import sys
336 336 app = QtGui.QApplication(sys.argv)
337 337 MainWindow = QtGui.QMainWindow()
338 338 ui = Ui_BasicWindow()
339 339 ui.setupUi(MainWindow)
340 340 MainWindow.show()
341 341 sys.exit(app.exec_())
342 342
General Comments 0
You need to be logged in to leave comments. Login now