##// END OF EJS Templates
Bug fixed in SignalChain GUI:...
Miguel Valdez -
r581:cd9db1f6f595
parent child
Show More
@@ -1,1026 +1,1034
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 import ast
13 13
14 14 def prettify(elem):
15 15 """Return a pretty-printed XML string for the Element.
16 16 """
17 17 rough_string = ET.tostring(elem, 'utf-8')
18 18 reparsed = minidom.parseString(rough_string)
19 19 return reparsed.toprettyxml(indent=" ")
20 20
21 21 class ParameterConf():
22 22
23 23 id = None
24 24 name = None
25 25 value = None
26 26 format = None
27 27
28 28 __formated_value = None
29 29
30 30 ELEMENTNAME = 'Parameter'
31 31
32 32 def __init__(self):
33 33
34 34 self.format = 'str'
35 35
36 36 def getElementName(self):
37 37
38 38 return self.ELEMENTNAME
39 39
40 40 def getValue(self):
41 41
42 42 if self.__formated_value != None:
43 43
44 44 return self.__formated_value
45 45
46 46 value = self.value
47 47
48 48 if self.format == 'bool':
49 49 value = int(value)
50 50
51 51 if self.format == 'list':
52 52 strList = value.split(',')
53 53
54 54 self.__formated_value = strList
55 55
56 56 return self.__formated_value
57 57
58 58 if self.format == 'intlist':
59 59 """
60 60 Example:
61 61 value = (0,1,2)
62 62 """
63 63 strList = value.split(',')
64 64 intList = [int(x) for x in strList]
65 65
66 66 self.__formated_value = intList
67 67
68 68 return self.__formated_value
69 69
70 70 if self.format == 'floatlist':
71 71 """
72 72 Example:
73 73 value = (0.5, 1.4, 2.7)
74 74 """
75 75 strList = value.split(',')
76 76 floatList = [float(x) for x in strList]
77 77
78 78 self.__formated_value = floatList
79 79
80 80 return self.__formated_value
81 81
82 82 if self.format == 'date':
83 83 strList = value.split('/')
84 84 intList = [int(x) for x in strList]
85 85 date = datetime.date(intList[0], intList[1], intList[2])
86 86
87 87 self.__formated_value = date
88 88
89 89 return self.__formated_value
90 90
91 91 if self.format == 'time':
92 92 strList = value.split(':')
93 93 intList = [int(x) for x in strList]
94 94 time = datetime.time(intList[0], intList[1], intList[2])
95 95
96 96 self.__formated_value = time
97 97
98 98 return self.__formated_value
99 99
100 100 if self.format == 'pairslist':
101 101 """
102 102 Example:
103 103 value = (0,1),(1,2)
104 104 """
105 105
106 106 value = value.replace('(', '')
107 107 value = value.replace(')', '')
108 108
109 109 strList = value.split(',')
110 110 intList = [int(item) for item in strList]
111 111 pairList = []
112 112 for i in range(len(intList)/2):
113 113 pairList.append((intList[i*2], intList[i*2 + 1]))
114 114
115 115 self.__formated_value = pairList
116 116
117 117 return self.__formated_value
118 118
119 119 if self.format == 'multilist':
120 120 """
121 121 Example:
122 122 value = (0,1,2),(3,4,5)
123 123 """
124 124 multiList = ast.literal_eval(value)
125 125
126 126 self.__formated_value = multiList
127 127
128 128 return self.__formated_value
129 129
130 130 format_func = eval(self.format)
131 131
132 132 self.__formated_value = format_func(value)
133 133
134 134 return self.__formated_value
135 135
136 136 def setup(self, id, name, value, format='str'):
137 137
138 138 self.id = id
139 139 self.name = name
140 140 self.value = str(value)
141 141 self.format = str.lower(format)
142 142
143 143 def update(self, name, value, format='str'):
144 144
145 145 self.name = name
146 146 self.value = str(value)
147 147 self.format = format
148 148
149 149 def makeXml(self, opElement):
150 150
151 151 parmElement = SubElement(opElement, self.ELEMENTNAME)
152 152 parmElement.set('id', str(self.id))
153 153 parmElement.set('name', self.name)
154 154 parmElement.set('value', self.value)
155 155 parmElement.set('format', self.format)
156 156
157 157 def readXml(self, parmElement):
158 158
159 159 self.id = parmElement.get('id')
160 160 self.name = parmElement.get('name')
161 161 self.value = parmElement.get('value')
162 162 self.format = str.lower(parmElement.get('format'))
163 163
164 164 #Compatible with old signal chain version
165 165 if self.format == 'int' and self.name == 'idfigure':
166 166 self.name = 'id'
167 167
168 168 def printattr(self):
169 169
170 170 print "Parameter[%s]: name = %s, value = %s, format = %s" %(self.id, self.name, self.value, self.format)
171 171
172 172 class OperationConf():
173 173
174 174 id = None
175 175 name = None
176 176 priority = None
177 177 type = None
178 178
179 179 parmConfObjList = []
180 180
181 181 ELEMENTNAME = 'Operation'
182 182
183 183 def __init__(self):
184 184
185 185 self.id = 0
186 186 self.name = None
187 187 self.priority = None
188 188 self.type = 'self'
189 189
190 190
191 191 def __getNewId(self):
192 192
193 193 return int(self.id)*10 + len(self.parmConfObjList) + 1
194 194
195 195 def getElementName(self):
196 196
197 197 return self.ELEMENTNAME
198 198
199 199 def getParameterObjList(self):
200 200
201 201 return self.parmConfObjList
202 202
203 203 def getParameterObj(self, parameterName):
204 204
205 205 for parmConfObj in self.parmConfObjList:
206 206
207 207 if parmConfObj.name != parameterName:
208 208 continue
209 209
210 210 return parmConfObj
211 211
212 212 return None
213 213
214 214 def getParameterObjfromValue(self,parameterValue):
215 215 for parmConfObj in self.parmConfObjList:
216 216
217 217 if parmConfObj.getValue() != parameterValue:
218 218 continue
219 219
220 220 return parmConfObj.getValue()
221 221
222 222 return None
223 223
224 224 def getParameterValue(self, parameterName):
225 225
226 226 parameterObj = self.getParameterObj(parameterName)
227 227 value = parameterObj.getValue()
228 228
229 229 return value
230 230
231 231 def setup(self, id, name, priority, type):
232 232
233 233 self.id = id
234 234 self.name = name
235 235 self.type = type
236 236 self.priority = priority
237 237
238 238 self.parmConfObjList = []
239 239
240 240 def removeParameters(self):
241 241
242 242 for obj in self.parmConfObjList:
243 243 del obj
244 244
245 245 self.parmConfObjList = []
246 246
247 247 def addParameter(self, name, value, format='str'):
248 248
249 249 id = self.__getNewId()
250 250
251 251 parmConfObj = ParameterConf()
252 252 parmConfObj.setup(id, name, value, format)
253 253
254 254 self.parmConfObjList.append(parmConfObj)
255 255
256 256 return parmConfObj
257 257
258 258 def changeParameter(self, name, value, format='str'):
259 259
260 260 parmConfObj = self.getParameterObj(name)
261 261 parmConfObj.update(name, value, format)
262 262
263 263 return parmConfObj
264 264
265 265 def makeXml(self, upElement):
266 266
267 267 opElement = SubElement(upElement, self.ELEMENTNAME)
268 268 opElement.set('id', str(self.id))
269 269 opElement.set('name', self.name)
270 270 opElement.set('type', self.type)
271 271 opElement.set('priority', str(self.priority))
272 272
273 273 for parmConfObj in self.parmConfObjList:
274 274 parmConfObj.makeXml(opElement)
275 275
276 276 def readXml(self, opElement):
277 277
278 278 self.id = opElement.get('id')
279 279 self.name = opElement.get('name')
280 280 self.type = opElement.get('type')
281 281 self.priority = opElement.get('priority')
282 282
283 283 #Compatible with old signal chain version
284 284 #Use of 'run' method instead 'init'
285 285 if self.type == 'self' and self.name == 'init':
286 286 self.name = 'run'
287 287
288 288 self.parmConfObjList = []
289 289
290 290 parmElementList = opElement.getiterator(ParameterConf().getElementName())
291 291
292 292 for parmElement in parmElementList:
293 293 parmConfObj = ParameterConf()
294 294 parmConfObj.readXml(parmElement)
295 295
296 296 #Compatible with old signal chain version
297 297 #If an 'plot' OPERATION is found, changes name operation by the value of its type PARAMETER
298 298 if self.type != 'self' and self.name == 'Plot':
299 299 if parmConfObj.format == 'str' and parmConfObj.name == 'type':
300 300 self.name = parmConfObj.value
301 301 continue
302 302
303 303 self.parmConfObjList.append(parmConfObj)
304 304
305 305 def printattr(self):
306 306
307 307 print "%s[%s]: name = %s, type = %s, priority = %s" %(self.ELEMENTNAME,
308 308 self.id,
309 309 self.name,
310 310 self.type,
311 311 self.priority)
312 312
313 313 for parmConfObj in self.parmConfObjList:
314 314 parmConfObj.printattr()
315 315
316 316 def createObject(self):
317 317
318 318 if self.type == 'self':
319 319 raise ValueError, "This operation type cannot be created"
320 320
321 321 if self.type == 'external' or self.type == 'other':
322 322 className = eval(self.name)
323 323 opObj = className()
324 324
325 325 return opObj
326 326
327 327 class ProcUnitConf():
328 328
329 329 id = None
330 330 name = None
331 331 datatype = None
332 332 inputId = None
333 333 parentId = None
334 334
335 335 opConfObjList = []
336 336
337 337 procUnitObj = None
338 338 opObjList = []
339 339
340 340 ELEMENTNAME = 'ProcUnit'
341 341
342 342 def __init__(self):
343 343
344 344 self.id = None
345 345 self.datatype = None
346 346 self.name = None
347 347 self.inputId = None
348 348
349 349 self.opConfObjList = []
350 350
351 351 self.procUnitObj = None
352 352 self.opObjDict = {}
353 353
354 354 def __getPriority(self):
355 355
356 356 return len(self.opConfObjList)+1
357 357
358 358 def __getNewId(self):
359 359
360 360 return int(self.id)*10 + len(self.opConfObjList) + 1
361 361
362 362 def getElementName(self):
363 363
364 364 return self.ELEMENTNAME
365 365
366 366 def getId(self):
367 367
368 368 return str(self.id)
369 369
370 370 def getInputId(self):
371 371
372 372 return str(self.inputId)
373 373
374 374 def getOperationObjList(self):
375 375
376 376 return self.opConfObjList
377 377
378 378 def getOperationObj(self, name=None):
379 379
380 380 for opConfObj in self.opConfObjList:
381 381
382 382 if opConfObj.name != name:
383 383 continue
384 384
385 385 return opConfObj
386 386
387 387 return None
388 388
389 389 def getOpObjfromParamValue(self,value=None):
390 390
391 391 for opConfObj in self.opConfObjList:
392 392 if opConfObj.getParameterObjfromValue(parameterValue=value) != value:
393 393 continue
394 394 return opConfObj
395 395 return None
396 396
397 397 def getProcUnitObj(self):
398 398
399 399 return self.procUnitObj
400 400
401 401 def setup(self, id, name, datatype, inputId, parentId=None):
402 402
403 403 self.id = id
404 404 self.name = name
405 405 self.datatype = datatype
406 406 self.inputId = inputId
407 407 self.parentId = parentId
408 408
409 409 self.opConfObjList = []
410 410
411 411 self.addOperation(name='run', optype='self')
412 412
413 413 def removeOperations(self):
414 414
415 415 for obj in self.opConfObjList:
416 416 del obj
417 417
418 418 self.opConfObjList = []
419 419 self.addOperation(name='run')
420 420
421 421 def addParameter(self, **kwargs):
422 422 '''
423 423 Add parameters to "run" operation
424 424 '''
425 425 opObj = self.opConfObjList[0]
426 426
427 427 opObj.addParameter(**kwargs)
428 428
429 429 return opObj
430 430
431 431 def addOperation(self, name, optype='self'):
432 432
433 433 id = self.__getNewId()
434 434 priority = self.__getPriority()
435 435
436 436 opConfObj = OperationConf()
437 437 opConfObj.setup(id, name=name, priority=priority, type=optype)
438 438
439 439 self.opConfObjList.append(opConfObj)
440 440
441 441 return opConfObj
442 442
443 443 def makeXml(self, procUnitElement):
444 444
445 445 upElement = SubElement(procUnitElement, self.ELEMENTNAME)
446 446 upElement.set('id', str(self.id))
447 447 upElement.set('name', self.name)
448 448 upElement.set('datatype', self.datatype)
449 449 upElement.set('inputId', str(self.inputId))
450 450
451 451 for opConfObj in self.opConfObjList:
452 452 opConfObj.makeXml(upElement)
453 453
454 454 def readXml(self, upElement):
455 455
456 456 self.id = upElement.get('id')
457 457 self.name = upElement.get('name')
458 458 self.datatype = upElement.get('datatype')
459 459 self.inputId = upElement.get('inputId')
460 460
461 461 self.opConfObjList = []
462 462
463 463 opElementList = upElement.getiterator(OperationConf().getElementName())
464 464
465 465 for opElement in opElementList:
466 466 opConfObj = OperationConf()
467 467 opConfObj.readXml(opElement)
468 468 self.opConfObjList.append(opConfObj)
469 469
470 470 def printattr(self):
471 471
472 472 print "%s[%s]: name = %s, datatype = %s, inputId = %s" %(self.ELEMENTNAME,
473 473 self.id,
474 474 self.name,
475 475 self.datatype,
476 476 self.inputId)
477 477
478 478 for opConfObj in self.opConfObjList:
479 479 opConfObj.printattr()
480 480
481 481 def createObjects(self):
482 482
483 483 className = eval(self.name)
484 484 procUnitObj = className()
485 485
486 486 for opConfObj in self.opConfObjList:
487 487
488 488 if opConfObj.type == 'self':
489 489 continue
490 490
491 491 opObj = opConfObj.createObject()
492 492
493 493 self.opObjDict[opConfObj.id] = opObj
494 494 procUnitObj.addOperation(opObj, opConfObj.id)
495 495
496 496 self.procUnitObj = procUnitObj
497 497
498 498 return procUnitObj
499 499
500 500 def run(self):
501 501
502 502 finalSts = False
503 503
504 504 for opConfObj in self.opConfObjList:
505 505
506 506 kwargs = {}
507 507 for parmConfObj in opConfObj.getParameterObjList():
508 508 if opConfObj.name == 'run' and parmConfObj.name == 'datatype':
509 509 continue
510 510
511 511 kwargs[parmConfObj.name] = parmConfObj.getValue()
512 512
513 513 #print "\tRunning the '%s' operation with %s" %(opConfObj.name, opConfObj.id)
514 514 sts = self.procUnitObj.call(opType = opConfObj.type,
515 515 opName = opConfObj.name,
516 516 opId = opConfObj.id,
517 517 **kwargs)
518 518 finalSts = finalSts or sts
519 519
520 520 return finalSts
521 521
522 522 def close(self):
523 523
524 524 for opConfObj in self.opConfObjList:
525 525 if opConfObj.type == 'self':
526 526 continue
527 527
528 528 opObj = self.procUnitObj.getOperationObj(opConfObj.id)
529 529 opObj.close()
530 530
531 531 self.procUnitObj.close()
532 532
533 533 return
534 534
535 535 class ReadUnitConf(ProcUnitConf):
536 536
537 537 path = None
538 538 startDate = None
539 539 endDate = None
540 540 startTime = None
541 541 endTime = None
542 542
543 543 ELEMENTNAME = 'ReadUnit'
544 544
545 545 def __init__(self):
546 546
547 547 self.id = None
548 548 self.datatype = None
549 549 self.name = None
550 550 self.inputId = 0
551 551
552 552 self.opConfObjList = []
553 553 self.opObjList = []
554 554
555 555 def getElementName(self):
556 556
557 557 return self.ELEMENTNAME
558 558
559 559 def setup(self, id, name, datatype, path, startDate="", endDate="", startTime="", endTime="", parentId=None, **kwargs):
560 560
561 561 self.id = id
562 562 self.name = name
563 563 self.datatype = datatype
564 564
565 565 self.path = path
566 566 self.startDate = startDate
567 567 self.endDate = endDate
568 568 self.startTime = startTime
569 569 self.endTime = endTime
570 570
571 571 self.addRunOperation(**kwargs)
572 572
573 573 def update(self, datatype, path, startDate, endDate, startTime, endTime, parentId=None, **kwargs):
574 574
575 575 self.datatype = datatype
576 576 self.path = path
577 577 self.startDate = startDate
578 578 self.endDate = endDate
579 579 self.startTime = startTime
580 580 self.endTime = endTime
581 581
582 582 self.updateRunOperation(**kwargs)
583 583
584 584 def addRunOperation(self, **kwargs):
585 585
586 586 opObj = self.addOperation(name = 'run', optype = 'self')
587 587
588 588 opObj.addParameter(name='datatype' , value=self.datatype, format='str')
589 589 opObj.addParameter(name='path' , value=self.path, format='str')
590 590 opObj.addParameter(name='startDate' , value=self.startDate, format='date')
591 591 opObj.addParameter(name='endDate' , value=self.endDate, format='date')
592 592 opObj.addParameter(name='startTime' , value=self.startTime, format='time')
593 593 opObj.addParameter(name='endTime' , value=self.endTime, format='time')
594 594
595 595 for key, value in kwargs.items():
596 596 opObj.addParameter(name=key, value=value, format=type(value).__name__)
597 597
598 598 return opObj
599 599
600 600 def updateRunOperation(self, **kwargs):
601 601
602 602 opObj = self.getOperationObj(name = 'run')
603 603 opObj.removeParameters()
604 604
605 605 opObj.addParameter(name='datatype' , value=self.datatype, format='str')
606 606 opObj.addParameter(name='path' , value=self.path, format='str')
607 607 opObj.addParameter(name='startDate' , value=self.startDate, format='date')
608 608 opObj.addParameter(name='endDate' , value=self.endDate, format='date')
609 609 opObj.addParameter(name='startTime' , value=self.startTime, format='time')
610 610 opObj.addParameter(name='endTime' , value=self.endTime, format='time')
611 611
612 612 for key, value in kwargs.items():
613 613 opObj.addParameter(name=key, value=value, format=type(value).__name__)
614 614
615 615 return opObj
616 616
617 617 class Project():
618 618
619 619 id = None
620 620 name = None
621 621 description = None
622 622 # readUnitConfObjList = None
623 623 procUnitConfObjDict = None
624 624
625 625 ELEMENTNAME = 'Project'
626 626
627 627 def __init__(self, control=None, dataq=None):
628 628
629 629 self.id = None
630 630 self.name = None
631 631 self.description = None
632 632
633 633 self.procUnitConfObjDict = {}
634 634
635 635 #global data_q
636 636 #data_q = dataq
637 637
638 638 if control==None:
639 639 control = {}
640 640 control['stop'] = False
641 641 control['pause'] = False
642 642
643 643 self.control = control
644 644
645 645 def __getNewId(self):
646 646
647 647 id = int(self.id)*10 + len(self.procUnitConfObjDict) + 1
648 648
649 649 return str(id)
650 650
651 651 def getElementName(self):
652 652
653 653 return self.ELEMENTNAME
654 654
655 655 def getId(self):
656 656
657 657 return self.id
658 658
659 659 def setup(self, id, name, description):
660 660
661 661 self.id = id
662 662 self.name = name
663 663 self.description = description
664 664
665 665 def update(self, name, description):
666 666
667 667 self.name = name
668 668 self.description = description
669 669
670 670 def addReadUnit(self, datatype=None, name=None, **kwargs):
671 671
672 672 #Compatible with old signal chain version
673 673 if datatype==None and name==None:
674 674 raise ValueError, "datatype or name should be defined"
675 675
676 676 if name==None:
677 677 if 'Reader' in datatype:
678 678 name = datatype
679 679 else:
680 680 name = '%sReader' %(datatype)
681 681
682 682 if datatype==None:
683 683 datatype = name.replace('Reader','')
684 684
685 685 id = self.__getNewId()
686 686
687 687 readUnitConfObj = ReadUnitConf()
688 688 readUnitConfObj.setup(id, name, datatype, parentId=self.id, **kwargs)
689 689
690 690 self.procUnitConfObjDict[readUnitConfObj.getId()] = readUnitConfObj
691 691
692 692 return readUnitConfObj
693 693
694 694 def addProcUnit(self, inputId=0, datatype=None, name=None):
695 695
696 696 #Compatible with old signal chain version
697 697 if datatype==None and name==None:
698 698 raise ValueError, "datatype or name should be defined"
699 699
700 700 if name==None:
701 701 if 'Proc' in datatype:
702 702 name = datatype
703 703 else:
704 704 name = '%sProc' %(datatype)
705 705
706 706 if datatype==None:
707 707 datatype = name.replace('Proc','')
708 708
709 709 id = self.__getNewId()
710 710
711 711 procUnitConfObj = ProcUnitConf()
712 712 procUnitConfObj.setup(id, name, datatype, inputId, parentId=self.id)
713 713
714 714 self.procUnitConfObjDict[procUnitConfObj.getId()] = procUnitConfObj
715 715
716 716 return procUnitConfObj
717 717
718 718 def getReadUnitId(self):
719 719
720 720 readUnitConfObj = self.getReadUnitObj()
721 721
722 722 return readUnitConfObj.id
723 723
724 724 def getReadUnitObj(self):
725 725
726 726 for obj in self.procUnitConfObjDict.values():
727 727 if obj.getElementName() == "ReadUnit":
728 728 return obj
729 729
730 730 return None
731 731
732 732 def getProcUnitObj(self, id):
733 733
734 734 return self.procUnitConfObjDict[id]
735 735
736 def getProcUnitObjByName(self, name):
737
738 for obj in self.procUnitConfObjDict.values():
739 if obj.name == name:
740 return obj
741
742 return None
743
736 744 def makeXml(self):
737 745
738 746 projectElement = Element('Project')
739 747 projectElement.set('id', str(self.id))
740 748 projectElement.set('name', self.name)
741 749 projectElement.set('description', self.description)
742 750
743 751 # for readUnitConfObj in self.readUnitConfObjList:
744 752 # readUnitConfObj.makeXml(projectElement)
745 753
746 754 for procUnitConfObj in self.procUnitConfObjDict.values():
747 755 procUnitConfObj.makeXml(projectElement)
748 756
749 757 self.projectElement = projectElement
750 758
751 759 def writeXml(self, filename):
752 760
753 761 self.makeXml()
754 762
755 763 #print prettify(self.projectElement)
756 764
757 765 ElementTree(self.projectElement).write(filename, method='xml')
758 766
759 767 def readXml(self, filename):
760 768
761 769 #tree = ET.parse(filename)
762 770 self.projectElement = None
763 771 # self.readUnitConfObjList = []
764 772 self.procUnitConfObjDict = {}
765 773
766 774 self.projectElement = ElementTree().parse(filename)
767 775
768 776 self.project = self.projectElement.tag
769 777
770 778 self.id = self.projectElement.get('id')
771 779 self.name = self.projectElement.get('name')
772 780 self.description = self.projectElement.get('description')
773 781
774 782 readUnitElementList = self.projectElement.getiterator(ReadUnitConf().getElementName())
775 783
776 784 for readUnitElement in readUnitElementList:
777 785 readUnitConfObj = ReadUnitConf()
778 786 readUnitConfObj.readXml(readUnitElement)
779 787
780 788 self.procUnitConfObjDict[readUnitConfObj.getId()] = readUnitConfObj
781 789
782 790 procUnitElementList = self.projectElement.getiterator(ProcUnitConf().getElementName())
783 791
784 792 for procUnitElement in procUnitElementList:
785 793 procUnitConfObj = ProcUnitConf()
786 794 procUnitConfObj.readXml(procUnitElement)
787 795
788 796 self.procUnitConfObjDict[procUnitConfObj.getId()] = procUnitConfObj
789 797
790 798 def printattr(self):
791 799
792 800 print "Project[%s]: name = %s, description = %s" %(self.id,
793 801 self.name,
794 802 self.description)
795 803
796 804 # for readUnitConfObj in self.readUnitConfObjList:
797 805 # readUnitConfObj.printattr()
798 806
799 807 for procUnitConfObj in self.procUnitConfObjDict.values():
800 808 procUnitConfObj.printattr()
801 809
802 810 def createObjects(self):
803 811
804 812 # for readUnitConfObj in self.readUnitConfObjList:
805 813 # readUnitConfObj.createObjects()
806 814
807 815 for procUnitConfObj in self.procUnitConfObjDict.values():
808 816 procUnitConfObj.createObjects()
809 817
810 818 def __connect(self, objIN, thisObj):
811 819
812 820 thisObj.setInput(objIN.getOutputObj())
813 821
814 822 def connectObjects(self):
815 823
816 824 for thisPUConfObj in self.procUnitConfObjDict.values():
817 825
818 826 inputId = thisPUConfObj.getInputId()
819 827
820 828 if int(inputId) == 0:
821 829 continue
822 830
823 831 #Get input object
824 832 puConfINObj = self.procUnitConfObjDict[inputId]
825 833 puObjIN = puConfINObj.getProcUnitObj()
826 834
827 835 #Get current object
828 836 thisPUObj = thisPUConfObj.getProcUnitObj()
829 837
830 838 self.__connect(puObjIN, thisPUObj)
831 839
832 840 def run(self):
833 841
834 842 # for readUnitConfObj in self.readUnitConfObjList:
835 843 # readUnitConfObj.run()
836 844 print
837 845 print "*"*40
838 846 print " Starting SIGNAL CHAIN PROCESSING "
839 847 print "*"*40
840 848 print
841 849
842 850 keyList = self.procUnitConfObjDict.keys()
843 851 keyList.sort()
844 852
845 853 while(True):
846 854
847 855 finalSts = False
848 856
849 857 for procKey in keyList:
850 858 # print "Running the '%s' process with %s" %(procUnitConfObj.name, procUnitConfObj.id)
851 859
852 860 procUnitConfObj = self.procUnitConfObjDict[procKey]
853 861 sts = procUnitConfObj.run()
854 862 finalSts = finalSts or sts
855 863
856 864 #If every process unit finished so end process
857 865 if not(finalSts):
858 866 print "Every process unit have finished"
859 867 break
860 868
861 869 if self.control['pause']:
862 870 print "Pause..."
863 871
864 872 while True:
865 873 time.sleep(0.1)
866 874
867 875 if not self.control['pause']:
868 876 break
869 877
870 878 if self.control['stop']:
871 879 break
872 880
873 881 if self.control['stop']:
874 882 print "Stopping process"
875 883 break
876 884
877 885 #Closing every process
878 886 for procKey in keyList:
879 887 procUnitConfObj = self.procUnitConfObjDict[procKey]
880 888 procUnitConfObj.close()
881 889
882 890 print "Process stopped"
883 891
884 892 def start(self, filename):
885 893
886 894 self.writeXml(filename)
887 895 self.readXml(filename)
888 896
889 897 self.createObjects()
890 898 self.connectObjects()
891 899 self.run()
892 900
893 901 if __name__ == '__main__':
894 902
895 903 desc = "Segundo Test"
896 904 filename = "schain.xml"
897 905
898 906 controllerObj = Project()
899 907
900 908 controllerObj.setup(id = '191', name='test01', description=desc)
901 909
902 910 readUnitConfObj = controllerObj.addReadUnit(datatype='Voltage',
903 911 path='data/rawdata/',
904 912 startDate='2011/01/01',
905 913 endDate='2012/12/31',
906 914 startTime='00:00:00',
907 915 endTime='23:59:59',
908 916 online=1,
909 917 walk=1)
910 918
911 919 # opObj00 = readUnitConfObj.addOperation(name='printInfo')
912 920
913 921 procUnitConfObj0 = controllerObj.addProcUnit(datatype='Voltage', inputId=readUnitConfObj.getId())
914 922
915 923 opObj10 = procUnitConfObj0.addOperation(name='selectChannels')
916 924 opObj10.addParameter(name='channelList', value='3,4,5', format='intlist')
917 925
918 926 opObj10 = procUnitConfObj0.addOperation(name='selectHeights')
919 927 opObj10.addParameter(name='minHei', value='90', format='float')
920 928 opObj10.addParameter(name='maxHei', value='180', format='float')
921 929
922 930 opObj12 = procUnitConfObj0.addOperation(name='CohInt', optype='external')
923 931 opObj12.addParameter(name='n', value='10', format='int')
924 932
925 933 procUnitConfObj1 = controllerObj.addProcUnit(datatype='Spectra', inputId=procUnitConfObj0.getId())
926 934 procUnitConfObj1.addParameter(name='nFFTPoints', value='32', format='int')
927 935 # procUnitConfObj1.addParameter(name='pairList', value='(0,1),(0,2),(1,2)', format='')
928 936
929 937
930 938 opObj11 = procUnitConfObj1.addOperation(name='SpectraPlot', optype='external')
931 939 opObj11.addParameter(name='idfigure', value='1', format='int')
932 940 opObj11.addParameter(name='wintitle', value='SpectraPlot0', format='str')
933 941 opObj11.addParameter(name='zmin', value='40', format='int')
934 942 opObj11.addParameter(name='zmax', value='90', format='int')
935 943 opObj11.addParameter(name='showprofile', value='1', format='int')
936 944
937 945 # opObj11 = procUnitConfObj1.addOperation(name='CrossSpectraPlot', optype='external')
938 946 # opObj11.addParameter(name='idfigure', value='2', format='int')
939 947 # opObj11.addParameter(name='wintitle', value='CrossSpectraPlot', format='str')
940 948 # opObj11.addParameter(name='zmin', value='40', format='int')
941 949 # opObj11.addParameter(name='zmax', value='90', format='int')
942 950
943 951
944 952 # procUnitConfObj2 = controllerObj.addProcUnit(datatype='Voltage', inputId=procUnitConfObj0.getId())
945 953 #
946 954 # opObj12 = procUnitConfObj2.addOperation(name='CohInt', optype='external')
947 955 # opObj12.addParameter(name='n', value='2', format='int')
948 956 # opObj12.addParameter(name='overlapping', value='1', format='int')
949 957 #
950 958 # procUnitConfObj3 = controllerObj.addProcUnit(datatype='Spectra', inputId=procUnitConfObj2.getId())
951 959 # procUnitConfObj3.addParameter(name='nFFTPoints', value='32', format='int')
952 960 #
953 961 # opObj11 = procUnitConfObj3.addOperation(name='SpectraPlot', optype='external')
954 962 # opObj11.addParameter(name='idfigure', value='2', format='int')
955 963 # opObj11.addParameter(name='wintitle', value='SpectraPlot1', format='str')
956 964 # opObj11.addParameter(name='zmin', value='40', format='int')
957 965 # opObj11.addParameter(name='zmax', value='90', format='int')
958 966 # opObj11.addParameter(name='showprofile', value='1', format='int')
959 967
960 968 # opObj11 = procUnitConfObj1.addOperation(name='RTIPlot', optype='external')
961 969 # opObj11.addParameter(name='idfigure', value='10', format='int')
962 970 # opObj11.addParameter(name='wintitle', value='RTI', format='str')
963 971 ## opObj11.addParameter(name='xmin', value='21', format='float')
964 972 ## opObj11.addParameter(name='xmax', value='22', format='float')
965 973 # opObj11.addParameter(name='zmin', value='40', format='int')
966 974 # opObj11.addParameter(name='zmax', value='90', format='int')
967 975 # opObj11.addParameter(name='showprofile', value='1', format='int')
968 976 # opObj11.addParameter(name='timerange', value=str(60), format='int')
969 977
970 978 # opObj10 = procUnitConfObj1.addOperation(name='selectChannels')
971 979 # opObj10.addParameter(name='channelList', value='0,2,4,6', format='intlist')
972 980 #
973 981 # opObj12 = procUnitConfObj1.addOperation(name='IncohInt', optype='external')
974 982 # opObj12.addParameter(name='n', value='2', format='int')
975 983 #
976 984 # opObj11 = procUnitConfObj1.addOperation(name='SpectraPlot', optype='external')
977 985 # opObj11.addParameter(name='idfigure', value='2', format='int')
978 986 # opObj11.addParameter(name='wintitle', value='SpectraPlot10', format='str')
979 987 # opObj11.addParameter(name='zmin', value='70', format='int')
980 988 # opObj11.addParameter(name='zmax', value='90', format='int')
981 989 #
982 990 # opObj10 = procUnitConfObj1.addOperation(name='selectChannels')
983 991 # opObj10.addParameter(name='channelList', value='2,6', format='intlist')
984 992 #
985 993 # opObj12 = procUnitConfObj1.addOperation(name='IncohInt', optype='external')
986 994 # opObj12.addParameter(name='n', value='2', format='int')
987 995 #
988 996 # opObj11 = procUnitConfObj1.addOperation(name='SpectraPlot', optype='external')
989 997 # opObj11.addParameter(name='idfigure', value='3', format='int')
990 998 # opObj11.addParameter(name='wintitle', value='SpectraPlot10', format='str')
991 999 # opObj11.addParameter(name='zmin', value='70', format='int')
992 1000 # opObj11.addParameter(name='zmax', value='90', format='int')
993 1001
994 1002
995 1003 # opObj12 = procUnitConfObj1.addOperation(name='decoder')
996 1004 # opObj12.addParameter(name='ncode', value='2', format='int')
997 1005 # opObj12.addParameter(name='nbauds', value='8', format='int')
998 1006 # opObj12.addParameter(name='code0', value='001110011', format='int')
999 1007 # opObj12.addParameter(name='code1', value='001110011', format='int')
1000 1008
1001 1009
1002 1010
1003 1011 # procUnitConfObj2 = controllerObj.addProcUnit(datatype='Spectra', inputId=procUnitConfObj1.getId())
1004 1012 #
1005 1013 # opObj21 = procUnitConfObj2.addOperation(name='IncohInt', optype='external')
1006 1014 # opObj21.addParameter(name='n', value='2', format='int')
1007 1015 #
1008 1016 # opObj11 = procUnitConfObj2.addOperation(name='SpectraPlot', optype='external')
1009 1017 # opObj11.addParameter(name='idfigure', value='4', format='int')
1010 1018 # opObj11.addParameter(name='wintitle', value='SpectraPlot OBJ 2', format='str')
1011 1019 # opObj11.addParameter(name='zmin', value='70', format='int')
1012 1020 # opObj11.addParameter(name='zmax', value='90', format='int')
1013 1021
1014 1022 print "Escribiendo el archivo XML"
1015 1023
1016 1024 controllerObj.writeXml(filename)
1017 1025
1018 1026 print "Leyendo el archivo XML"
1019 1027 controllerObj.readXml(filename)
1020 1028 #controllerObj.printattr()
1021 1029
1022 1030 controllerObj.createObjects()
1023 1031 controllerObj.connectObjects()
1024 1032 controllerObj.run()
1025 1033
1026 1034 No newline at end of file
@@ -1,6439 +1,6477
1 1 # -*- coding: utf-8 -*-
2 2 """
3 3 Module implementing MainWindow.
4 4 #+++++++++++++GUI V1++++++++++++++#
5 5 @author: AlexanderValdezPortocarrero Γ±_Γ±
6 6 """
7 7 import os, sys, time
8 8 import datetime
9 9 import Queue
10 10 from PyQt4.QtGui import QMainWindow
11 11 from PyQt4.QtCore import pyqtSignature
12 12 from PyQt4.QtCore import pyqtSignal
13 13 from PyQt4 import QtCore
14 14 from PyQt4 import QtGui
15 15
16 16 from schainpy.gui.viewer.ui_unitprocess import Ui_UnitProcess
17 17 from schainpy.gui.viewer.ui_ftp import Ui_Ftp
18 18 from schainpy.gui.viewer.ui_mainwindow import Ui_BasicWindow
19 19 from schainpy.controller import Project
20 20
21 21 from modelProperties import treeModel
22 22 from collections import OrderedDict
23 23 from os.path import expanduser
24 24 #from CodeWarrior.Standard_Suite import file
25 25 from comm import *
26 26
27 27 def isRadarFile(file):
28 28 try:
29 29 year = int(file[1:5])
30 30 doy = int(file[5:8])
31 31 set = int(file[8:11])
32 32 except:
33 33 return 0
34 34
35 35 return 1
36 36
37 37 def isRadarPath(path):
38 38 try:
39 39 year = int(path[1:5])
40 40 doy = int(path[5:8])
41 41 except:
42 42 return 0
43 43
44 44 return 1
45 45
46 46 class BasicWindow(QMainWindow, Ui_BasicWindow):
47 47 """
48 48 """
49 49 def __init__(self, parent=None):
50 50 """
51 51
52 52 """
53 53 QMainWindow.__init__(self, parent)
54 54 self.setupUi(self)
55 55 self.__puObjDict = {}
56 56 self.__itemTreeDict = {}
57 57 self.readUnitConfObjList = []
58 58 self.operObjList = []
59 59 self.projecObjView = None
60 60 self.idProject = 0
61 61 # self.idImag = 0
62 62
63 63 self.idImagscope = 0
64 64 self.idImagspectra = 0
65 65 self.idImagcross = 0
66 66 self.idImagrti = 0
67 67 self.idImagcoherence = 0
68 68 self.idImagpower = 0
69 69 self.idImagrtinoise = 0
70 70 self.idImagspectraHeis = 0
71 71 self.idImagrtiHeis = 0
72 72
73 73 self.online = 0
74 74 self.walk = 0
75 75 self.create = False
76 76 self.selectedItemTree = None
77 77 self.commCtrlPThread = None
78 78 self.setParameter()
79 79 self.create_comm()
80 80 # self.create_timers()
81 81 # self.create_figure()
82 82 self.temporalFTP = ftpBuffer()
83 83 self.projectProperCaracteristica = []
84 84 self.projectProperPrincipal = []
85 85 self.projectProperDescripcion = []
86 86 self.volProperCaracteristica = []
87 87 self.volProperPrincipal = []
88 88 self.volProperDescripcion = []
89 89 self.specProperCaracteristica = []
90 90 self.specProperPrincipal = []
91 91 self.specProperDescripcion = []
92 92
93 93 self.specHeisProperCaracteristica = []
94 94 self.specHeisProperPrincipal = []
95 95 self.specHeisProperDescripcion = []
96 96
97 97 # self.pathWorkSpace = './'
98 98
99 99 self.__projectObjDict = {}
100 100 self.__operationObjDict = {}
101 101
102 102 self.__ftpProcUnitAdded = False
103 103 self.__ftpProcUnitId = None
104 104
105 105 @pyqtSignature("")
106 106 def on_actionCreate_triggered(self):
107 107 """
108 108 Slot documentation goes here.
109 109 """
110 110 self.setInputsProject_View()
111 111 self.create = True
112 112
113 113 @pyqtSignature("")
114 114 def on_actionSave_triggered(self):
115 115 """
116 116 Slot documentation goes here.
117 117 """
118 118 self.saveProject()
119 119
120 120 @pyqtSignature("")
121 121 def on_actionClose_triggered(self):
122 122 """
123 123 Slot documentation goes here.
124 124 """
125 125 self.close()
126 126
127 127 @pyqtSignature("")
128 128 def on_actionStart_triggered(self):
129 129 """
130 130 """
131 131 self.playProject()
132 132
133 133 @pyqtSignature("")
134 134 def on_actionPause_triggered(self):
135 135 """
136 136 """
137 137 self.pauseProject()
138 138
139 139 @pyqtSignature("")
140 140 def on_actionStop_triggered(self):
141 141 """
142 142 """
143 143 self.stopProject()
144 144
145 145 @pyqtSignature("")
146 146 def on_actionFTP_triggered(self):
147 147 """
148 148 """
149 149 self.configFTPWindowObj = Ftp(self)
150 150 # if self.temporalFTP.create:
151 151 if self.temporalFTP.createforView:
152 152 server, folder, username, password, ftp_wei, exp_code, sub_exp_code, plot_pos = self.temporalFTP.recover()
153 153 self.configFTPWindowObj.setParmsfromTemporal(server, folder, username, password, ftp_wei, exp_code, sub_exp_code, plot_pos)
154 154 self.configFTPWindowObj.show()
155 155 self.configFTPWindowObj.closed.connect(self.createFTPConfig)
156 156
157 157 def createFTPConfig(self):
158 158 self.console.clear()
159 159 if not self.configFTPWindowObj.create:
160 160 self.console.append("There is no FTP configuration")
161 161 return
162 162 self.console.append("Push Ok in Spectra view to Add FTP Configuration")
163 163 server, folder, username, password, ftp_wei, exp_code, sub_exp_code, plot_pos = self.configFTPWindowObj.getParmsFromFtpWindow()
164 164 self.temporalFTP.save(server, folder, username, password, ftp_wei, exp_code, sub_exp_code, plot_pos)
165 165
166 166 @pyqtSignature("")
167 167 def on_actionOpenToolbar_triggered(self):
168 168 """
169 169 Slot documentation goes here.
170 170 """
171 171 self.create = False
172 172 self.frame_2.setEnabled(True)
173 173 home = expanduser("~")
174 174 self.dir = os.path.join(home, 'schain_workspace')
175 175 # print self.dir
176 176 filename = str(QtGui.QFileDialog.getOpenFileName(self, "Open text file", self.dir, self.tr("Text Files (*.xml)")))
177 177 self.console.clear()
178 178 projectObjLoad = Project()
179 179 try:
180 180 projectObjLoad.readXml(filename)
181 181 except:
182 182 self.console.clear()
183 183 self.console.append("The selected xml file could not be loaded ...")
184 184 return 0
185 185
186 186 project_name, description = projectObjLoad.name, projectObjLoad.description
187 187 id = projectObjLoad.id
188 188 self.__projectObjDict[id] = projectObjLoad
189 189 # Project Properties
190 190 datatype, data_path, startDate, endDate, startTime, endTime , online , delay, walk, set = self.showProjectProperties(projectObjLoad)
191 191 # show ProjectView
192 192 self.addProject2ProjectExplorer(id=id, name=project_name)
193 193 self.refreshProjectWindow(project_name, description, datatype, data_path, startDate, endDate, startTime, endTime, online, delay, set)
194 194
195 195 if datatype == "Voltage":
196 196 ext = '.r'
197 197 self.specOpProfiles.setEnabled(True)
198 198 self.specOpippFactor.setEnabled(True)
199 199 elif datatype == "Spectra":
200 200 ext = '.pdata'
201 201 self.specOpProfiles.setEnabled(False)
202 202 self.specOpippFactor.setEnabled(False)
203 203 elif datatype == "Fits":
204 204 ext = '.fits'
205 205
206 206 if online == 0:
207 207 self.loadDays(data_path, ext, walk)
208 208 else:
209 209 self.proComStartDate.setEnabled(False)
210 210 self.proComEndDate.setEnabled(False)
211 211 self.proStartTime.setEnabled(False)
212 212 self.proEndTime.setEnabled(False)
213 213 self.frame_2.setEnabled(True)
214 214
215 215 self.tabWidgetProject.setEnabled(True)
216 216 self.tabWidgetProject.setCurrentWidget(self.tabProject)
217 217 # Disable tabProject after finish the creation
218 218 self.tabProject.setEnabled(True)
219 219 puObjorderList = OrderedDict(sorted(projectObjLoad.procUnitConfObjDict.items(), key=lambda x: x[0]))
220 220
221 221 for inputId, puObj in puObjorderList.items():
222 222 # print puObj.datatype, puObj.inputId,puObj.getId(),puObj.parentId
223 223 self.__puObjDict[puObj.getId()] = puObj
224 224
225 225 if puObj.inputId != "0":
226 226 self.addPU2PELoadXML(id=puObj.getId() , name=puObj.datatype , idParent=puObj.inputId)
227 227
228 228 if puObj.datatype == "Voltage":
229 229 self.refreshPUWindow(puObj.datatype, puObj)
230 230 self.showPUVoltageProperties(puObj)
231 231 self.showtabPUCreated(datatype=puObj.datatype)
232 232
233 233 if puObj.datatype == "Spectra":
234 234 self.refreshPUWindow(puObj.datatype, puObj)
235 235 self.showPUSpectraProperties(puObj)
236 236 self.showtabPUCreated(datatype=puObj.datatype)
237 237
238 238 if puObj.datatype == "SpectraHeis":
239 239 self.refreshPUWindow(puObj.datatype, puObj)
240 240 self.showPUSpectraHeisProperties(puObj)
241 241 self.showtabPUCreated(datatype=puObj.datatype)
242 242
243 243 if puObj.name == "SendToServer":
244 244 self.__ftpProcUnitAdded = True
245 245 self.__ftpProcUnitId = puObj.getId()
246 246
247 opObj = puObj.getOperationObj(name="run")
248 self.saveFTPvalues(opObj)
249
247 250 self.console.clear()
248 251 self.console.append("The selected xml file has been loaded successfully")
249 252 # self.refreshPUWindow(datatype=datatype,puObj=puObj)
250 253
251 254 @pyqtSignature("")
252 255 def on_actionCreateToolbar_triggered(self):
253 256 """
254 257 Slot documentation goes here.
255 258 """
256 259 self.setInputsProject_View()
257 260 self.create = True
258 261
259 262 @pyqtSignature("")
260 263 def on_actionAddPU_triggered(self):
261 264 if len(self.__projectObjDict) == 0:
262 265 outputstr = "First Create a Project then add Processing Unit"
263 266 self.console.clear()
264 267 self.console.append(outputstr)
265 268 return 0
266 269 else:
267 270 self.addPUWindow()
268 271 self.console.clear()
269 272 self.console.append("Please, Choose the type of Processing Unit")
270 273 self.console.append("If your Datatype is rawdata, you will start with processing unit Type Voltage")
271 274 self.console.append("If your Datatype is pdata, you will choose between processing unit Type Spectra or Correlation")
272 275 self.console.append("If your Datatype is fits, you will start with processing unit Type SpectraHeis")
273 276
274 277
275 278 @pyqtSignature("")
276 279 def on_actionSaveToolbar_triggered(self):
277 280 """
278 281 Slot documentation goes here.
279 282 """
280 283 self.saveProject()
281 284
282 285 @pyqtSignature("")
283 286 def on_actionStarToolbar_triggered(self):
284 287 """
285 288 Slot documentation goes here.
286 289 """
287 290 self.playProject()
288 291
289 292 @pyqtSignature("")
290 293 def on_actionPauseToolbar_triggered(self):
291 294
292 295 self.pauseProject()
293 296
294 297 @pyqtSignature("")
295 298 def on_actionStopToolbar_triggered(self):
296 299 """
297 300 Slot documentation goes here.
298 301 """
299 302 self.stopProject()
300 303
301 304 @pyqtSignature("int")
302 305 def on_proComReadMode_activated(self, index):
303 306 """
304 307 SELECCION DEL MODO DE LECTURA ON=1, OFF=0
305 308 """
306 309 if index == 0:
307 310 self.online = 0
308 311 self.proDelay.setText("0")
309 312 self.proSet.setText("0")
310 313 self.proSet.setEnabled(False)
311 314 self.proDelay.setEnabled(False)
312 315 elif index == 1:
313 316 self.online = 1
314 317 self.proSet.setText(" ")
315 318 self.proDelay.setText("5")
316 319 self.proSet.setEnabled(True)
317 320 self.proDelay.setEnabled(True)
318 321
319 322 @pyqtSignature("int")
320 323 def on_proComDataType_activated(self, index):
321 324 """
322 325 Voltage or Spectra
323 326 """
324 327 if index == 0:
325 328 self.datatype = '.r'
326 329 elif index == 1:
327 330 self.datatype = '.pdata'
328 331 elif index == 2:
329 332 self.datatype = '.fits'
330 333
331 334 self.proDataType.setText(self.datatype)
332 335 self.console.clear()
333 336
334 337 @pyqtSignature("int")
335 338 def on_proComWalk_activated(self, index):
336 339 """
337 340
338 341 """
339 342 if index == 0:
340 343 self.walk = 0
341 344 elif index == 1:
342 345 self.walk = 1
343 346
344 347 @pyqtSignature("")
345 348 def on_proToolPath_clicked(self):
346 349 """
347 350 Choose your path
348 351 """
349 352 self.dataPath = str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly))
350 353 self.proDataPath.setText(self.dataPath)
351 354
352 355 self.proComStartDate.clear()
353 356 self.proComEndDate.clear()
354 357
355 358 if not os.path.exists(self.dataPath):
356 359 self.proOk.setEnabled(False)
357 360 self.console.clear()
358 361 self.console.append("Write a correct a path")
359 362 return
360 363 self.console.clear()
361 364 self.console.append("Select the read mode")
362 365
363 366
364 367 @pyqtSignature("")
365 368 def on_proLoadButton_clicked(self):
366 369 self.console.clear()
367 370 parms_ok, project_name, datatype, ext, data_path, read_mode, delay, walk , set = self.checkInputsProject()
368 371 if read_mode == "Offline":
369 372 if parms_ok:
370 373 self.proComStartDate.clear()
371 374 self.proComEndDate.clear()
372 375 self.loadDays(data_path, ext, walk)
373 376 self.proComStartDate.setEnabled(True)
374 377 self.proComEndDate.setEnabled(True)
375 378 self.proStartTime.setEnabled(True)
376 379 self.proEndTime.setEnabled(True)
377 380 self.frame_2.setEnabled(True)
378 381 return
379 382 if read_mode == "Online":
380 383 if parms_ok:
381 384 self.proComStartDate.addItem("2010/01/30")
382 385 self.proComEndDate.addItem("2013/12/30")
383 386 self.loadDays(data_path, ext, walk)
384 387 self.proComStartDate.setEnabled(False)
385 388 self.proComEndDate.setEnabled(False)
386 389 self.proStartTime.setEnabled(False)
387 390 self.proEndTime.setEnabled(False)
388 391 self.frame_2.setEnabled(True)
389 392
390 393 @pyqtSignature("int")
391 394 def on_proComStartDate_activated(self, index):
392 395 """
393 396 SELECCION DEL RANGO DE FECHAS -START DATE
394 397 """
395 398 stopIndex = self.proComEndDate.count() - self.proComEndDate.currentIndex()
396 399 self.proComEndDate.clear()
397 400 for i in self.dateList[index:]:
398 401 self.proComEndDate.addItem(i)
399 402 self.proComEndDate.setCurrentIndex(self.proComEndDate.count() - stopIndex)
400 403
401 404 @pyqtSignature("int")
402 405 def on_proComEndDate_activated(self, index):
403 406 """
404 407 SELECCION DEL RANGO DE FECHAS-END DATE
405 408 """
406 409 startIndex = self.proComStartDate.currentIndex()
407 410 stopIndex = self.proComEndDate.count() - index
408 411 self.proComStartDate.clear()
409 412 for i in self.dateList[:len(self.dateList) - stopIndex + 1]:
410 413 self.proComStartDate.addItem(i)
411 414 self.proComStartDate.setCurrentIndex(startIndex)
412 415
413 416 @pyqtSignature("")
414 417 def on_proOk_clicked(self):
415 418 """
416 419 AΓ±ade al Obj XML de Projecto, name,datatype,date,time,readmode,wait,etc, crea el readUnitProcess del archivo xml.
417 420 Prepara la configuraciΓ³n del diΓ‘grama del Arbol del treeView numero 2
418 421 """
419 422 if self.create:
420 423 self.idProject += 1
421 424 projectId = self.idProject
422 425 projectObjView = self.createProjectView(projectId)
423 426 readUnitObj = self.createReadUnitView(projectObjView)
424 427 self.addProject2ProjectExplorer(id=projectId, name=projectObjView.name)
425 428 else:
426 429 projectObjView = self.updateProjectView()
427 430 projectId = projectObjView.getId()
428 431 idReadUnit = projectObjView.getReadUnitId()
429 432 readUnitObj = self.updateReadUnitView(projectObjView, idReadUnit)
430 433
431 434 self.__itemTreeDict[projectId].setText(projectObjView.name)
432 435 # Project Properties
433 436 self.showProjectProperties(projectObjView)
434 437 # Disable tabProject after finish the creation
435 438 self.tabProject.setEnabled(True)
436 439
437 440 @pyqtSignature("")
438 441 def on_proClear_clicked(self):
439 442 self.setInputsProject_View()
440 443 projectObj = self.getSelectedProjectObj()
441 444
442 445 @pyqtSignature("int")
443 446 def on_volOpCebChannels_stateChanged(self, p0):
444 447 """
445 448 Check Box habilita operaciones de SelecciοΏ½n de Canales
446 449 """
447 450 if p0 == 2:
448 451 self.volOpComChannels.setEnabled(True)
449 452 self.volOpChannel.setEnabled(True)
450 453
451 454 if p0 == 0:
452 455 self.volOpComChannels.setEnabled(False)
453 456 self.volOpChannel.setEnabled(False)
454 457 self.volOpChannel.clear()
455 458
456 459 @pyqtSignature("int")
457 460 def on_volOpCebHeights_stateChanged(self, p0):
458 461 """
459 462 Check Box habilita operaciones de SelecciοΏ½n de Alturas
460 463 """
461 464 if p0 == 2:
462 465 self.volOpHeights.setEnabled(True)
463 466 self.volOpComHeights.setEnabled(True)
464 467
465 468 if p0 == 0:
466 469 self.volOpHeights.setEnabled(False)
467 470 self.volOpHeights.clear()
468 471 self.volOpComHeights.setEnabled(False)
469 472
470 473 @pyqtSignature("int")
471 474 def on_volOpCebFilter_stateChanged(self, p0):
472 475 """
473 476 Name='Decoder', optype='other'
474 477 """
475 478 if p0 == 2:
476 479 self.volOpFilter.setEnabled(True)
477 480
478 481 if p0 == 0:
479 482 self.volOpFilter.setEnabled(False)
480 483 self.volOpFilter.clear()
481 484
482 485 @pyqtSignature("int")
483 486 def on_volOpCebProfile_stateChanged(self, p0):
484 487 """
485 488 Check Box habilita ingreso del rango de Perfiles
486 489 """
487 490 if p0 == 2:
488 491 self.volOpComProfile.setEnabled(True)
489 492 self.volOpProfile.setEnabled(True)
490 493
491 494 if p0 == 0:
492 495 self.volOpComProfile.setEnabled(False)
493 496 self.volOpProfile.setEnabled(False)
494 497 self.volOpProfile.clear()
495 498
496 499 @pyqtSignature("int")
497 500 def on_volOpCebDecodification_stateChanged(self, p0):
498 501 """
499 502 Check Box habilita
500 503 """
501 504 if p0 == 2:
502 505 self.volOpComCode.setEnabled(True)
503 506 self.volOpComMode.setEnabled(True)
504 507 if p0 == 0:
505 508 self.volOpComCode.setEnabled(False)
506 509 self.volOpComMode.setEnabled(False)
507 510
508 511 @pyqtSignature("int")
509 512 def on_volOpCebCohInt_stateChanged(self, p0):
510 513 """
511 514 Check Box habilita ingresode del numero de Integraciones a realizar
512 515 """
513 516 if p0 == 2:
514 517 self.volOpCohInt.setEnabled(True)
515 518 if p0 == 0:
516 519 self.volOpCohInt.setEnabled(False)
517 520 self.volOpCohInt.clear()
518 521
519 522 @pyqtSignature("int")
520 523 def on_volOpCebRadarfrequency_stateChanged(self, p0):
521 524 """
522 525 Check Box habilita ingresode del numero de Integraciones a realizar
523 526 """
524 527 if p0 == 2:
525 528 self.volOpRadarfrequency.setEnabled(True)
526 529 if p0 == 0:
527 530 self.volOpRadarfrequency.clear()
528 531 self.volOpRadarfrequency.setEnabled(False)
529 532
530 533 @pyqtSignature("")
531 534 def on_volOutputToolPath_clicked(self):
532 535 dirOutPath = str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly))
533 536 self.volOutputPath.setText(dirOutPath)
534 537
535 538 @pyqtSignature("")
536 539 def on_specOutputToolPath_clicked(self):
537 540 dirOutPath = str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly))
538 541 self.specOutputPath.setText(dirOutPath)
539 542
540 543 @pyqtSignature("")
541 544 def on_specHeisOutputToolPath_clicked(self):
542 545 dirOutPath = str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly))
543 546 self.specHeisOutputPath.setText(dirOutPath)
544 547
545 548 @pyqtSignature("")
546 549 def on_specHeisOutputMetadaToolPath_clicked(self):
547 550 home = expanduser("~")
548 551 self.dir = os.path.join(home, 'schain_workspace')
549 552 filename = str(QtGui.QFileDialog.getOpenFileName(self, "Open text file", self.dir, self.tr("Text Files (*.xml)")))
550 553 self.specHeisOutputMetada.setText(filename)
551 554
552 555 @pyqtSignature("")
553 556 def on_volOpOk_clicked(self):
554 557 """
555 558 BUSCA EN LA LISTA DE OPERACIONES DEL TIPO VOLTAJE Y LES AοΏ½ADE EL PARAMETRO ADECUADO ESPERANDO LA ACEPTACION DEL USUARIO
556 559 PARA AGREGARLO AL ARCHIVO DE CONFIGURACION XML
557 560 """
558 561
559 562 checkPath = False
560 563
561 564 self.actionSaveToolbar.setEnabled(False)
562 565 self.actionStarToolbar.setEnabled(False)
563 566
564 567 puObj = self.getSelectedPUObj()
565 568 puObj.removeOperations()
566 569
567 570 if self.volOpCebRadarfrequency.isChecked():
568 571 value = self.volOpRadarfrequency.text()
569 572 format = 'float'
570 573 name_operation = 'setRadarFrequency'
571 574 name_parameter = 'frequency'
572 575 if not value == "":
573 576 try:
574 577 radarfreq = float(self.volOpRadarfrequency.text())
575 578 except:
576 579 self.console.clear()
577 580 self.console.append("Write the parameter Radar Frequency type float")
578 581 return 0
579 582 opObj = puObj.addOperation(name=name_operation)
580 583 opObj.addParameter(name=name_parameter, value=radarfreq, format=format)
581 584
582 585
583 586
584 587 if self.volOpCebChannels.isChecked():
585 588 value = self.volOpChannel.text()
586 589 format = 'intlist'
587 590 if self.volOpComChannels.currentIndex() == 0:
588 591 name_operation = "selectChannels"
589 592 name_parameter = 'channelList'
590 593 else:
591 594 name_operation = "selectChannelsByIndex"
592 595 name_parameter = 'channelIndexList'
593 596
594 597 opObj = puObj.addOperation(name=name_operation)
595 598 opObj.addParameter(name=name_parameter, value=value, format=format)
596 599
597 600 if self.volOpCebHeights.isChecked():
598 601 value = self.volOpHeights.text()
599 602 valueList = value.split(',')
600 603 format = 'float'
601 604 if self.volOpComHeights.currentIndex() == 0:
602 605 name_operation = 'selectHeights'
603 606 name_parameter1 = 'minHei'
604 607 name_parameter2 = 'maxHei'
605 608 else:
606 609 name_operation = 'selectHeightsByIndex'
607 610 name_parameter1 = 'minIndex'
608 611 name_parameter2 = 'maxIndex'
609 612 opObj = puObj.addOperation(name=name_operation)
610 613 opObj.addParameter(name=name_parameter1, value=valueList[0], format=format)
611 614 opObj.addParameter(name=name_parameter2, value=valueList[1], format=format)
612 615
613 616 if self.volOpCebFilter.isChecked():
614 617 value = self.volOpFilter.text()
615 618 format = 'int'
616 619 name_operation = 'filterByHeights'
617 620 name_parameter = 'window'
618 621 opObj = puObj.addOperation(name=name_operation)
619 622 opObj.addParameter(name=name_parameter, value=value, format=format)
620 623
621 624 if self.volOpCebProfile.isChecked():
622 625 value = self.volOpProfile.text()
623 626 format = 'intlist'
624 627 optype = 'other'
625 628 name_operation = 'ProfileSelector'
626 629 if self.volOpComProfile.currentIndex() == 0:
627 630 name_parameter = 'profileList'
628 631 else:
629 632 name_parameter = 'profileRangeList'
630 633 opObj = puObj.addOperation(name='ProfileSelector', optype='other')
631 634 opObj.addParameter(name=name_parameter, value=value, format=format)
632 635
633 636 if self.volOpCebDecodification.isChecked():
634 637 name_operation = 'Decoder'
635 638 optype = 'other'
636 639 format1 = 'floatlist'
637 640 format2 = 'int'
638 641 format3 = 'int'
639 642 format4 = 'int'
640 643 name_parameter1 = 'code'
641 644 name_parameter2 = 'nCode'
642 645 name_parameter3 = 'nBaud'
643 646 name_parameter4 = 'mode'
644 647
645 648 if self.volOpComCode.currentIndex() == 0:
646 649 value1 = '1,1,-1'
647 650 value2 = '1'
648 651 value3 = '3'
649 652 if self.volOpComCode.currentIndex() == 1:
650 653 value1 = '1,1,-1,1'
651 654 value2 = '1'
652 655 value3 = '4'
653 656 if self.volOpComCode.currentIndex() == 2:
654 657 value1 = '1,1,1,βˆ’1,1'
655 658 value2 = '1'
656 659 value3 = '5'
657 660 if self.volOpComCode.currentIndex() == 3:
658 661 value1 = '1,1,1,-1,-1,1,-1'
659 662 value2 = '1'
660 663 value3 = '7'
661 664 if self.volOpComCode.currentIndex() == 4:
662 665 value1 = '1,1,1,-1,-1,-1,1,-1,-1,1,-1'
663 666 value2 = '1'
664 667 value3 = '11'
665 668 if self.volOpComCode.currentIndex() == 5:
666 669 value1 = '1,1,1,1,1,-1,-1,1,1,-1,1,-1,1'
667 670 value2 = '1'
668 671 value3 = '13'
669 672 if self.volOpComCode.currentIndex() == 6:
670 673 value1 = '1,1,-1,-1,-1,1'
671 674 value2 = '2'
672 675 value3 = '3'
673 676 if self.volOpComCode.currentIndex() == 7:
674 677 value1 = '1,1,-1,1,-1,-1,1,-1'
675 678 value2 = '2'
676 679 value3 = '4'
677 680 if self.volOpComCode.currentIndex() == 8:
678 681 value1 = '1,1,1,-1,1,-1,-1,-1,1,-1'
679 682 value2 = '2'
680 683 value3 = '5'
681 684 if self.volOpComCode.currentIndex() == 9:
682 685 value1 = '1,1,1,-1,-1,1,-1,-1,-1,-1,1,1,-1,1'
683 686 value2 = '2'
684 687 value3 = '7'
685 688 if self.volOpComCode.currentIndex() == 10:
686 689 value1 = '1,1,1,-1,-1,-1,1,-1,-1,1,-1,-1 ,-1 ,-1 ,1 ,1,1,-1 ,1 ,1 ,-1 ,1'
687 690 value2 = '2'
688 691 value3 = '11'
689 692 if self.volOpComCode.currentIndex() == 11:
690 693 value1 = '1,1,1,1,1,-1,-1,1,1,-1,1,-1,1,-1,-1,-1,-1,-1,1,1,-1,-1,1,-1,1,-1'
691 694 value2 = '2'
692 695 value3 = '13'
693 696 if self.volOpComMode.currentIndex() == 0:
694 697 value4 = '0'
695 698 if self.volOpComMode.currentIndex() == 1:
696 699 value4 = '1'
697 700 if self.volOpComMode.currentIndex() == 2:
698 701 value4 = '2'
699 702 opObj = puObj.addOperation(name=name_operation, optype='other')
700 703 if self.volOpComCode.currentIndex() == 12:
701 704 pass
702 705 else:
703 706 opObj.addParameter(name=name_parameter1, value=value1, format=format1)
704 707 opObj.addParameter(name=name_parameter2, value=value2, format=format2)
705 708 opObj.addParameter(name=name_parameter3, value=value3, format=format3)
706 709 opObj.addParameter(name=name_parameter4, value=value4, format=format4)
707 710
708 711 if self.volOpCebFlip.isChecked():
709 712 name_operation = 'deFlip'
710 713 optype = 'self'
711 714 value = self.volOpFlip.text()
712 715 name_parameter = 'channelList'
713 716 format = 'intList'
714 717
715 718 opObj = puObj.addOperation(name=name_operation, optype=optype)
716 719 opObj.addParameter(name=name_parameter, value=value, format=format)
717 720
718 721 if self.volOpCebCohInt.isChecked():
719 722 name_operation = 'CohInt'
720 723 optype = 'other'
721 724 value = self.volOpCohInt.text()
722 725 name_parameter = 'n'
723 726 format = 'float'
724 727
725 728 opObj = puObj.addOperation(name=name_operation, optype=optype)
726 729 opObj.addParameter(name=name_parameter, value=value, format=format)
727 730
728 731 if self.volGraphCebshow.isChecked():
729 732 name_operation = 'Scope'
730 733 optype = 'other'
731 734 name_parameter = 'type'
732 735 value = 'Scope'
733 736 if self.idImagscope == 0:
734 737 self.idImagscope = 100
735 738 else:
736 739 self.idImagscope = self.idImagscope + 1
737 740
738 741 name_parameter1 = 'id'
739 742 value1 = int(self.idImagscope)
740 743 format1 = 'int'
741 744 format = 'str'
742 745
743 746 opObj = puObj.addOperation(name=name_operation, optype=optype)
744 747 # opObj.addParameter(name=name_parameter, value=value, format=format)
745 748 opObj.addParameter(name=name_parameter1, value=value1, format=format1)
746 749
747 750 channelList = self.volGraphChannelList.text()
748 751 xvalue = self.volGraphfreqrange.text()
749 752 yvalue = self.volGraphHeightrange.text()
750 753
751 754 if self.volGraphChannelList.isModified():
752 755 try:
753 756 value = str(channelList)
754 757 except:
755 758 return 0
756 759 opObj.addParameter(name='channelList', value=value, format='intlist')
757 760
758 761 if not xvalue == "":
759 762 xvalueList = xvalue.split(',')
760 763 try:
761 764 value0 = int(xvalueList[0])
762 765 value1 = int(xvalueList[1])
763 766 except:
764 767 return 0
765 768 opObj.addParameter(name='xmin', value=value0, format='int')
766 769 opObj.addParameter(name='xmax', value=value1, format='int')
767 770
768 771
769 772 if not yvalue == "":
770 773 yvalueList = yvalue.split(",")
771 774 try:
772 775 value = yvalueList[0]
773 776 value = yvalueList[1]
774 777 except:
775 778 return 0
776 779 opObj.addParameter(name='ymin', value=yvalueList[0], format='int')
777 780 opObj.addParameter(name='ymax', value=yvalueList[1], format='int')
778 781
779 782 if self.volGraphCebSave.isChecked():
780 783 checkPath = True
781 784 opObj.addParameter(name='save', value='1', format='int')
782 785 opObj.addParameter(name='figpath', value=self.volGraphPath.text(), format='str')
783 786 value = self.volGraphPrefix.text()
784 787 if not value == "":
785 788 try:
786 789 value = str(self.volGraphPrefix.text())
787 790 except:
788 791 self.console.clear()
789 792 self.console.append("Please Write prefix")
790 793 return 0
791 794 opObj.addParameter(name='figfile', value=self.volGraphPrefix.text(), format='str')
792 795
793 796 localfolder = None
794 797 if checkPath:
795 798 localfolder = str(self.specGraphPath.text())
796 799 if localfolder == '':
797 800 self.console.clear()
798 801 self.console.append("Graphic path should be defined")
799 802 return 0
800 803
801 804 # if something happend
802 805 parms_ok, output_path, blocksperfile, profilesperblock = self.checkInputsPUSave(datatype='Voltage')
803 806 if parms_ok:
804 807 name_operation = 'VoltageWriter'
805 808 optype = 'other'
806 809 name_parameter1 = 'path'
807 810 name_parameter2 = 'blocksPerFile'
808 811 name_parameter3 = 'profilesPerBlock'
809 812 value1 = output_path
810 813 value2 = blocksperfile
811 814 value3 = profilesperblock
812 815 format = "int"
813 816 opObj = puObj.addOperation(name=name_operation, optype=optype)
814 817 opObj.addParameter(name=name_parameter1, value=value1)
815 818 opObj.addParameter(name=name_parameter2, value=value2, format=format)
816 819 opObj.addParameter(name=name_parameter3, value=value3, format=format)
817 820
818 821 #---------NEW VOLTAGE PROPERTIES
819 822 self.showPUVoltageProperties(puObj)
820 823
821 824 self.console.clear()
822 825 self.console.append("If you want to save your project")
823 826 self.console.append("click on your project name in the Tree Project Explorer")
824 827
825 828 self.actionSaveToolbar.setEnabled(True)
826 829 self.actionStarToolbar.setEnabled(True)
827 830
828 831 return 1
829 832
830 833 """
831 834 Voltage Graph
832 835 """
833 836 @pyqtSignature("int")
834 837 def on_volGraphCebSave_stateChanged(self, p0):
835 838 """
836 839 Check Box habilita ingresode del numero de Integraciones a realizar
837 840 """
838 841 if p0 == 2:
839 842 self.volGraphPath.setEnabled(True)
840 843 self.volGraphPrefix.setEnabled(True)
841 844 self.volGraphToolPath.setEnabled(True)
842 845
843 846 if p0 == 0:
844 847 self.volGraphPath.setEnabled(False)
845 848 self.volGraphPrefix.setEnabled(False)
846 849 self.volGraphToolPath.setEnabled(False)
847 850
848 851 @pyqtSignature("")
849 852 def on_volGraphToolPath_clicked(self):
850 853 """
851 854 Donde se guardan los DATOS
852 855 """
853 856 self.dataPath = str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly))
854 857 self.volGraphPath.setText(self.dataPath)
855 858
856 859 # if not os.path.exists(self.dataPath):
857 860 # self.volGraphOk.setEnabled(False)
858 861 # return
859 862
860 863 @pyqtSignature("int")
861 864 def on_volGraphCebshow_stateChanged(self, p0):
862 865 """
863 866 Check Box habilita ingresode del numero de Integraciones a realizar
864 867 """
865 868 if p0 == 0:
866 869
867 870 self.volGraphChannelList.setEnabled(False)
868 871 self.volGraphfreqrange.setEnabled(False)
869 872 self.volGraphHeightrange.setEnabled(False)
870 873 if p0 == 2:
871 874
872 875 self.volGraphChannelList.setEnabled(True)
873 876 self.volGraphfreqrange.setEnabled(True)
874 877 self.volGraphHeightrange.setEnabled(True)
875 878
876 879 """
877 880 Spectra operation
878 881 """
879 882 @pyqtSignature("int")
880 883 def on_specOpCebRadarfrequency_stateChanged(self, p0):
881 884 """
882 885 Check Box habilita ingresode del numero de Integraciones a realizar
883 886 """
884 887 if p0 == 2:
885 888 self.specOpRadarfrequency.setEnabled(True)
886 889 if p0 == 0:
887 890 self.specOpRadarfrequency.clear()
888 891 self.specOpRadarfrequency.setEnabled(False)
889 892
890 893
891 894 @pyqtSignature("int")
892 895 def on_specOpCebCrossSpectra_stateChanged(self, p0):
893 896 """
894 897 Habilita la opcion de aοΏ½adir el parοΏ½metro CrossSpectra a la Unidad de Procesamiento .
895 898 """
896 899 if p0 == 2:
897 900 # self.specOpnFFTpoints.setEnabled(True)
898 901 self.specOppairsList.setEnabled(True)
899 902 if p0 == 0:
900 903 # self.specOpnFFTpoints.setEnabled(False)
901 904 self.specOppairsList.setEnabled(False)
902 905
903 906 @pyqtSignature("int")
904 907 def on_specOpCebChannel_stateChanged(self, p0):
905 908 """
906 909 Habilita la opcion de aοΏ½adir el parοΏ½metro numero de Canales a la Unidad de Procesamiento .
907 910 """
908 911 if p0 == 2:
909 912 self.specOpChannel.setEnabled(True)
910 913 self.specOpComChannel.setEnabled(True)
911 914 if p0 == 0:
912 915 self.specOpChannel.setEnabled(False)
913 916 self.specOpComChannel.setEnabled(False)
914 917
915 918 @pyqtSignature("int")
916 919 def on_specOpCebHeights_stateChanged(self, p0):
917 920 """
918 921 Habilita la opcion de aοΏ½adir el parοΏ½metro de alturas a la Unidad de Procesamiento .
919 922 """
920 923 if p0 == 2:
921 924 self.specOpComHeights.setEnabled(True)
922 925 self.specOpHeights.setEnabled(True)
923 926 if p0 == 0:
924 927 self.specOpComHeights.setEnabled(False)
925 928 self.specOpHeights.setEnabled(False)
926 929
927 930
928 931 @pyqtSignature("int")
929 932 def on_specOpCebIncoherent_stateChanged(self, p0):
930 933 """
931 934 Habilita la opcion de aοΏ½adir el parοΏ½metro integraciones incoherentes a la Unidad de Procesamiento .
932 935 """
933 936 if p0 == 2:
934 937 self.specOpIncoherent.setEnabled(True)
935 938 if p0 == 0:
936 939 self.specOpIncoherent.setEnabled(False)
937 940
938 941 @pyqtSignature("int")
939 942 def on_specOpCebRemoveDC_stateChanged(self, p0):
940 943 """
941 944 Habilita la opcion de aοΏ½adir el parοΏ½metro remover DC a la Unidad de Procesamiento .
942 945 """
943 946 if p0 == 2:
944 947 self.specOpComRemoveDC.setEnabled(True)
945 948 if p0 == 0:
946 949 self.specOpComRemoveDC.setEnabled(False)
947 950
948 951 @pyqtSignature("int")
949 952 def on_specOpCebgetNoise_stateChanged(self, p0):
950 953 """
951 954 Habilita la opcion de aοΏ½adir la estimacion de ruido a la Unidad de Procesamiento .
952 955 """
953 956 if p0 == 2:
954 957 self.specOpgetNoise.setEnabled(True)
955 958
956 959 if p0 == 0:
957 960 self.specOpgetNoise.setEnabled(False)
958 961
959 962 def refreshID(self, puObj):
960 963 opObj = puObj.getOperationObj(name='Scope')
961 964 # opObj = puObj.getOpObjfromParamValue(value="Scope")
962 965 if opObj == None:
963 966 pass
964 967 else:
965 968 name_parameter1 = 'id'
966 969 format1 = 'int'
967 970 if self.idImagscope == 0:
968 971 self.idImagscope = 100
969 972 else:
970 973 self.idImagscope = self.idImagscope + 1
971 974 value1 = int(self.idImagscope)
972 975 opObj.changeParameter(name=name_parameter1, value=value1, format=format1)
973 976
974 977 opObj = puObj.getOperationObj(name='SpectraPlot')
975 978 # opObj = puObj.getOpObjfromParamValue(value="SpectraPlot")
976 979 if opObj == None:
977 980 pass
978 981 else:
979 982 name_parameter1 = 'id'
980 983 format1 = 'int'
981 984 if self.idImagspectra == 0:
982 985 self.idImagspectra = 200
983 986 else:
984 987 self.idImagspectra = self.idImagspectra + 1
985 988 value1 = int(self.idImagspectra)
986 989 opObj.changeParameter(name=name_parameter1, value=value1, format=format1)
987 990
988 991 opObj = puObj.getOperationObj(name='CrossSpectraPlot')
989 992 # opObj = puObj.getOpObjfromParamValue(value="CrossSpectraPlot")
990 993 if opObj == None:
991 994 pass
992 995 else:
993 996 name_parameter1 = 'id'
994 997 format1 = 'int'
995 998 if self.idImagcross == 0:
996 999 self.idImagcross = 300
997 1000 else:
998 1001 self.idImagcross = self.idImagcross + 1
999 1002 value1 = int(self.idImagcross)
1000 1003 opObj.changeParameter(name=name_parameter1, value=value1, format=format1)
1001 1004
1002 1005 opObj = puObj.getOperationObj(name='RTIPlot')
1003 1006 # opObj = puObj.getOpObjfromParamValue(value="RTIPlot")
1004 1007 if opObj == None:
1005 1008 pass
1006 1009 else:
1007 1010 name_parameter1 = 'id'
1008 1011 format1 = 'int'
1009 1012 if self.idImagrti == 0:
1010 1013 self.idImagrti = 400
1011 1014 else:
1012 1015 self.idImagrti = self.idImagrti + 1
1013 1016 value1 = int(self.idImagrti)
1014 1017 opObj.changeParameter(name=name_parameter1, value=value1, format=format1)
1015 1018
1016 1019 opObj = puObj.getOperationObj(name='CoherenceMap')
1017 1020 # opObj = puObj.getOpObjfromParamValue(value="CoherenceMap")
1018 1021 if opObj == None:
1019 1022 pass
1020 1023 else:
1021 1024 name_parameter1 = 'id'
1022 1025 format1 = 'int'
1023 1026 if self.idImagcoherence == 0:
1024 1027 self.idImagcoherence = 500
1025 1028 else:
1026 1029 self.idImagcoherence = self.idImagcoherence + 1
1027 1030 value1 = int(self.idImagcoherence)
1028 1031 opObj.changeParameter(name=name_parameter1, value=value1, format=format1)
1029 1032
1030 1033 opObj = puObj.getOperationObj(name='PowerProfilePlot')
1031 1034 # opObj = puObj.getOpObjfromParamValue(value="PowerProfilePlot")
1032 1035 if opObj == None:
1033 1036 pass
1034 1037 else:
1035 1038 name_parameter1 = 'id'
1036 1039 format1 = 'int'
1037 1040 if self.idImagpower == 0:
1038 1041 self.idImagpower = 600
1039 1042 else:
1040 1043 self.idImagpower = self.idImagpower + 1
1041 1044 value1 = int(self.idImagpower)
1042 1045 opObj.changeParameter(name=name_parameter1, value=value1, format=format1)
1043 1046
1044 1047 opObj = puObj.getOperationObj(name='Noise')
1045 1048 # opObj = puObj.getOpObjfromParamValue(value="Noise")
1046 1049 if opObj == None:
1047 1050 pass
1048 1051 else:
1049 1052 name_parameter1 = 'id'
1050 1053 format1 = 'int'
1051 1054 if self.idImagrtinoise == 0:
1052 1055 self.idImagrtinoise = 700
1053 1056 else:
1054 1057 self.idImagrtinoise = self.idImagrtinoise + 1
1055 1058 value1 = int(self.idImagrtinoise)
1056 1059 opObj.changeParameter(name=name_parameter1, value=value1, format=format1)
1057 1060
1058 1061 opObj = puObj.getOperationObj(name='SpectraHeisScope')
1059 1062 # opObj = puObj.getOpObjfromParamValue(value="SpectraHeisScope")
1060 1063 if opObj == None:
1061 1064 pass
1062 1065 else:
1063 1066 name_parameter1 = 'id'
1064 1067 format1 = 'int'
1065 1068 if self.idImagspectraHeis == 0:
1066 1069 self.idImagspectraHeis = 800
1067 1070 else:
1068 1071 self.idImagspectraHeis = self.idImagspectraHeis + 1
1069 1072 value1 = int(self.idImagspectraHeis)
1070 1073 opObj.changeParameter(name=name_parameter1, value=value1, format=format1)
1071 1074
1072 1075 opObj = puObj.getOperationObj(name='RTIfromSpectraHeis')
1073 1076 # opObj = puObj.getOpObjfromParamValue(value="RTIfromSpectraHeis")
1074 1077 if opObj == None:
1075 1078 pass
1076 1079 else:
1077 1080 name_parameter1 = 'id'
1078 1081 format1 = 'int'
1079 1082 if self.idImagrtiHeis == 0:
1080 1083 self.idImagrtiHeis = 900
1081 1084 else:
1082 1085 self.idImagrtiHeis = self.idImagrtiHeis + 1
1083 1086 value1 = int(self.idImagrtiHeis)
1084 1087 opObj.changeParameter(name=name_parameter1, value=value1, format=format1)
1085 1088
1086 1089 @pyqtSignature("")
1087 1090 def on_specOpOk_clicked(self):
1088 1091 """
1089 1092 AΓ‘ADE OPERACION SPECTRA
1090 1093 """
1091 1094
1092 1095 addFTP = False
1093 1096 checkPath = False
1094 1097
1095 1098 self.actionSaveToolbar.setEnabled(False)
1096 1099 self.actionStarToolbar.setEnabled(False)
1097 1100
1098 1101 puObj = self.getSelectedPUObj()
1099 1102 puObj.removeOperations()
1100 1103
1101 1104 if self.specOpCebRadarfrequency.isChecked():
1102 1105 value = self.specOpRadarfrequency.text()
1103 1106 format = 'float'
1104 1107 name_operation = 'setRadarFrequency'
1105 1108 name_parameter = 'frequency'
1106 1109 if not value == "":
1107 1110 try:
1108 1111 radarfreq = float(self.specOpRadarfrequency.text())
1109 1112 except:
1110 1113 self.console.clear()
1111 1114 self.console.append("Write the parameter Radar Frequency type float")
1112 1115 return 0
1113 1116 opObj = puObj.addOperation(name=name_operation)
1114 1117 opObj.addParameter(name=name_parameter, value=radarfreq, format=format)
1115 1118
1116 1119
1117 1120 if self.proComDataType.currentText() == 'Voltage':
1118 1121 name_parameter = 'nFFTPoints'
1119 1122 value = self.specOpnFFTpoints.text()
1120 1123 name_parameter1 = 'nProfiles'
1121 1124 value1 = self.specOpProfiles.text()
1122 1125 name_parameter2 = 'ippFactor'
1123 1126 value2 = self.specOpippFactor.text()
1124 1127 format = 'int'
1125 1128 try:
1126 1129 value = int(self.specOpnFFTpoints.text())
1127 1130 except:
1128 1131 self.console.clear()
1129 1132 self.console.append("Please Write the number of FFT")
1130 1133 return 0
1131 1134 puObj.addParameter(name=name_parameter, value=value, format=format)
1132 1135 if not value1 == "":
1133 1136 try:
1134 1137 value1 = int(self.specOpProfiles.text())
1135 1138 except:
1136 1139 self.console.clear()
1137 1140 self.console.append("Please Write the number of Profiles")
1138 1141 return 0
1139 1142 puObj.addParameter(name=name_parameter1, value=value1, format=format)
1140 1143 if not value2 == "":
1141 1144 try:
1142 1145 value2 = int(self.specOpippFactor.text())
1143 1146 except:
1144 1147 self.console.clear()
1145 1148 self.console.append("Please Write the Number of IppFactor")
1146 1149 puObj.addParameter(name=name_parameter2 , value=value2 , format=format)
1147 1150
1148 1151 if self.specOpCebCrossSpectra.isChecked():
1149 1152 name_parameter = 'pairsList'
1150 1153 format = 'pairslist'
1151 1154 value2 = self.specOppairsList.text()
1152 1155 puObj.addParameter(name=name_parameter, value=value2, format=format)
1153 1156
1154 1157 if self.specOpCebHeights.isChecked():
1155 1158 value = self.specOpHeights.text()
1156 1159 valueList = value.split(',')
1157 1160 format = 'float'
1158 1161 value0 = valueList[0]
1159 1162 value1 = valueList[1]
1160 1163
1161 1164 if self.specOpComHeights.currentIndex() == 0:
1162 1165 name_operation = 'selectHeights'
1163 1166 name_parameter1 = 'minHei'
1164 1167 name_parameter2 = 'maxHei'
1165 1168 else:
1166 1169 name_operation = 'selectHeightsByIndex'
1167 1170 name_parameter1 = 'minIndex'
1168 1171 name_parameter2 = 'maxIndex'
1169 1172 opObj = puObj.addOperation(name=name_operation)
1170 1173 opObj.addParameter(name=name_parameter1, value=value0, format=format)
1171 1174 opObj.addParameter(name=name_parameter2, value=value1, format=format)
1172 1175
1173 1176 if self.specOpCebChannel.isChecked():
1174 1177 value = self.specOpChannel.text()
1175 1178 format = 'intlist'
1176 1179 if self.specOpComChannel.currentIndex() == 0:
1177 1180 name_operation = "selectChannels"
1178 1181 name_parameter = 'channelList'
1179 1182 else:
1180 1183 name_operation = "selectChannelsByIndex"
1181 1184 name_parameter = 'channelIndexList'
1182 1185 opObj = puObj.addOperation(name="selectChannels")
1183 1186 opObj.addParameter(name=name_parameter, value=value, format=format)
1184 1187
1185 1188 if self.specOpCebIncoherent.isChecked():
1186 1189 value = self.specOpIncoherent.text()
1187 1190 name_operation = 'IncohInt'
1188 1191 optype = 'other'
1189 1192 if self.specOpCobIncInt.currentIndex() == 0:
1190 1193 name_parameter = 'timeInterval'
1191 1194 format = 'float'
1192 1195 else:
1193 1196 name_parameter = 'n'
1194 1197 format = 'float'
1195 1198
1196 1199 opObj = puObj.addOperation(name=name_operation, optype=optype)
1197 1200 opObj.addParameter(name=name_parameter, value=value, format=format)
1198 1201
1199 1202 if self.specOpCebRemoveDC.isChecked():
1200 1203 name_operation = 'removeDC'
1201 1204 name_parameter = 'mode'
1202 1205 format = 'int'
1203 1206 if self.specOpComRemoveDC.currentIndex() == 0:
1204 1207 value = 1
1205 1208 else:
1206 1209 value = 2
1207 1210 opObj = puObj.addOperation(name=name_operation)
1208 1211 opObj.addParameter(name=name_parameter, value=value, format=format)
1209 1212
1210 1213 if self.specOpCebRemoveInt.isChecked():
1211 1214 name_operation = 'removeInterference'
1212 1215 opObj = puObj.addOperation(name=name_operation)
1213 1216
1214 1217
1215 1218 if self.specOpCebgetNoise.isChecked():
1216 1219 value = self.specOpgetNoise.text()
1217 1220 valueList = value.split(',')
1218 1221 format = 'float'
1219 1222 name_operation = "getNoise"
1220 1223 opObj = puObj.addOperation(name=name_operation)
1221 1224
1222 1225 if not value == '':
1223 1226 valueList = value.split(',')
1224 1227 length = len(valueList)
1225 1228 if length == 1:
1226 1229 try:
1227 1230 value1 = float(valueList[0])
1228 1231 except:
1229 1232 self.console.clear()
1230 1233 self.console.append("Please Write correct parameter Get Noise")
1231 1234 return 0
1232 1235 name1 = 'minHei'
1233 1236 opObj.addParameter(name=name1, value=value1, format=format)
1234 1237 elif length == 2:
1235 1238 try:
1236 1239 value1 = float(valueList[0])
1237 1240 value2 = float(valueList[1])
1238 1241 except:
1239 1242 self.console.clear()
1240 1243 self.console.append("Please Write corrects parameter Get Noise")
1241 1244 return 0
1242 1245 name1 = 'minHei'
1243 1246 name2 = 'maxHei'
1244 1247 opObj.addParameter(name=name1, value=value1, format=format)
1245 1248 opObj.addParameter(name=name2, value=value2, format=format)
1246 1249
1247 1250 elif length == 3:
1248 1251 try:
1249 1252 value1 = float(valueList[0])
1250 1253 value2 = float(valueList[1])
1251 1254 value3 = float(valueList[2])
1252 1255 except:
1253 1256 self.console.clear()
1254 1257 self.console.append("Please Write corrects parameter Get Noise")
1255 1258 return 0
1256 1259 name1 = 'minHei'
1257 1260 name2 = 'maxHei'
1258 1261 name3 = 'minVel'
1259 1262 opObj.addParameter(name=name1, value=value1, format=format)
1260 1263 opObj.addParameter(name=name2, value=value2, format=format)
1261 1264 opObj.addParameter(name=name3, value=value3, format=format)
1262 1265
1263 1266 elif length == 4:
1264 1267 try:
1265 1268 value1 = float(valueList[0])
1266 1269 value2 = float(valueList[1])
1267 1270 value3 = float(valueList[2])
1268 1271 value4 = float(valueList[3])
1269 1272 except:
1270 1273 self.console.clear()
1271 1274 self.console.append("Please Write corrects parameter Get Noise")
1272 1275 return 0
1273 1276 name1 = 'minHei'
1274 1277 name2 = 'maxHei'
1275 1278 name3 = 'minVel'
1276 1279 name4 = 'maxVel'
1277 1280 opObj.addParameter(name=name1, value=value1, format=format)
1278 1281 opObj.addParameter(name=name2, value=value2, format=format)
1279 1282 opObj.addParameter(name=name3, value=value3, format=format)
1280 1283 opObj.addParameter(name=name4, value=value4, format=format)
1281 1284
1282 1285 elif length > 4:
1283 1286 self.console.clear()
1284 1287 self.console.append("Get Noise Operation only accepts 4 parameters")
1285 1288 return 0
1286 1289
1287 1290 #-----Spectra Plot-----
1288 1291 if self.specGraphCebSpectraplot.isChecked():
1289 1292 name_operation = 'SpectraPlot'
1290 1293 optype = 'other'
1291 1294 name_parameter = 'type'
1292 1295 value = 'SpectraPlot'
1293 1296 format = 'str'
1294 1297 if self.idImagspectra == 0:
1295 1298 self.idImagspectra = 200
1296 1299 else:
1297 1300 self.idImagspectra = self.idImagspectra + 1
1298 1301 name_parameter1 = 'id'
1299 1302 value1 = int(self.idImagspectra)
1300 1303 format1 = 'int'
1301 1304
1302 1305 format = 'str'
1303 1306
1304 1307 channelList = self.specGgraphChannelList.text()
1305 1308 xvalue = self.specGgraphFreq.text()
1306 1309 yvalue = self.specGgraphHeight.text()
1307 1310 zvalue = self.specGgraphDbsrange.text()
1308 1311 opObj = puObj.addOperation(name=name_operation, optype=optype)
1309 1312 # opObj.addParameter(name=name_parameter, value=value, format=format)
1310 1313 opObj.addParameter(name=name_parameter1, value=value1, format=format1)
1311 1314
1312 1315 if not channelList == '':
1313 1316 name_parameter = 'channelList'
1314 1317 format = 'intlist'
1315 1318 opObj.addParameter(name=name_parameter, value=channelList, format=format)
1316 1319
1317 1320 if not xvalue == '':
1318 1321 xvalueList = xvalue.split(',')
1319 1322 try:
1320 1323 value1 = float(xvalueList[0])
1321 1324 value2 = float(xvalueList[1])
1322 1325 except:
1323 1326 self.console.clear()
1324 1327 self.console.append("Please Write corrects parameter freq")
1325 1328 return 0
1326 1329 name1 = 'xmin'
1327 1330 name2 = 'xmax'
1328 1331 format = 'float'
1329 1332 opObj.addParameter(name=name1, value=value1, format=format)
1330 1333 opObj.addParameter(name=name2, value=value2, format=format)
1331 1334 #------specGgraphHeight---
1332 1335 if not yvalue == '':
1333 1336 yvalueList = yvalue.split(",")
1334 1337 try:
1335 1338 value1 = float(yvalueList[0])
1336 1339 value2 = float(yvalueList[1])
1337 1340 except:
1338 1341 self.console.clear()
1339 1342 self.console.append("Please Write corrects parameter Height")
1340 1343 return 0
1341 1344 name1 = 'ymin'
1342 1345 name2 = 'ymax'
1343 1346 format = 'float'
1344 1347 opObj.addParameter(name=name1, value=value1, format=format)
1345 1348 opObj.addParameter(name=name2, value=value2, format=format)
1346 1349
1347 1350 if not zvalue == '':
1348 1351 zvalueList = zvalue.split(",")
1349 1352 try:
1350 1353 value = float(zvalueList[0])
1351 1354 value = float(zvalueList[1])
1352 1355 except:
1353 1356 self.console.clear()
1354 1357 self.console.append("Please Write corrects parameter Dbsrange")
1355 1358 return 0
1356 1359 format = 'float'
1357 1360 opObj.addParameter(name='zmin', value=zvalueList[0], format=format)
1358 1361 opObj.addParameter(name='zmax', value=zvalueList[1], format=format)
1359 1362
1360 1363 if self.specGraphSaveSpectra.isChecked():
1361 1364 checkPath = True
1362 1365 name_parameter1 = 'save'
1363 1366 name_parameter2 = 'figpath'
1364 1367 name_parameter3 = 'figfile'
1365 1368 value1 = '1'
1366 1369 value2 = self.specGraphPath.text()
1367 1370 value3 = self.specGraphPrefix.text()
1368 1371 format1 = 'bool'
1369 1372 format2 = 'str'
1370 1373 opObj.addParameter(name=name_parameter1, value=value1 , format=format1)
1371 1374 opObj.addParameter(name=name_parameter2, value=value2, format=format2)
1372 1375 opObj.addParameter(name=name_parameter3, value=value3, format=format2)
1373 1376
1374 1377 # opObj.addParameter(name='wr_period', value='5',format='int')
1375 1378
1376 1379 if self.specGraphftpSpectra.isChecked():
1377 1380 opObj.addParameter(name='ftp', value='1', format='int')
1378 1381 self.addFTPConf2Operation(puObj, opObj)
1379 1382 addFTP = True
1380 1383
1381 1384 if self.specGraphCebCrossSpectraplot.isChecked():
1382 1385 name_operation = 'CrossSpectraPlot'
1383 1386 optype = 'other'
1384 1387 opObj = puObj.addOperation(name=name_operation, optype=optype)
1385 1388 # opObj.addParameter(name='type', value="CrossSpectraPlot", format='str')
1386 1389 opObj.addParameter(name='power_cmap', value='jet', format='str')
1387 1390 opObj.addParameter(name='coherence_cmap', value='jet', format='str')
1388 1391 opObj.addParameter(name='phase_cmap', value='RdBu_r', format='str')
1389 1392
1390 1393 if self.idImagcross == 0:
1391 1394 self.idImagcross = 300
1392 1395 else:
1393 1396 self.idImagcross = self.idImagcross + 1
1394 1397 value1 = int(self.idImagcross)
1395 1398 channelList = self.specGgraphChannelList.text()
1396 1399 xvalue = self.specGgraphFreq.text()
1397 1400 yvalue = self.specGgraphHeight.text()
1398 1401 zvalue = self.specGgraphDbsrange.text()
1399 1402
1400 1403 opObj.addParameter(name='id', value=value1, format='int')
1401 1404
1402 1405 if self.specGgraphChannelList.isModified():
1403 1406 opObj.addParameter(name='channelList', value=channelList, format='intlist')
1404 1407
1405 1408 if not xvalue == '':
1406 1409 xvalueList = xvalue.split(',')
1407 1410 try:
1408 1411 value = float(xvalueList[0])
1409 1412 value = float(xvalueList[1])
1410 1413 except:
1411 1414 return 0
1412 1415 format = 'float'
1413 1416 opObj.addParameter(name='xmin', value=xvalueList[0], format=format)
1414 1417 opObj.addParameter(name='xmax', value=xvalueList[1], format=format)
1415 1418
1416 1419 if not yvalue == '':
1417 1420 yvalueList = yvalue.split(",")
1418 1421 try:
1419 1422 value = float(yvalueList[0])
1420 1423 value = float(yvalueList[1])
1421 1424 except:
1422 1425 return 0
1423 1426 format = 'float'
1424 1427 opObj.addParameter(name='ymin', value=yvalueList[0], format=format)
1425 1428 opObj.addParameter(name='ymax', value=yvalueList[1], format=format)
1426 1429
1427 1430
1428 1431 if not zvalue == '':
1429 1432 zvalueList = zvalue.split(",")
1430 1433 try:
1431 1434 value = float(zvalueList[0])
1432 1435 value = float(zvalueList[1])
1433 1436 except:
1434 1437 return 0
1435 1438 opObj.addParameter(name='zmin', value=zvalueList[0], format='float')
1436 1439 opObj.addParameter(name='zmax', value=zvalueList[1], format='float')
1437 1440
1438 1441 if self.specGraphSaveCross.isChecked():
1439 1442 checkPath = True
1440 1443 opObj.addParameter(name='save', value='1', format='bool')
1441 1444 opObj.addParameter(name='figpath', value=self.specGraphPath.text(), format='str')
1442 1445 value = self.specGraphPrefix.text()
1443 1446 if not value == "":
1444 1447 try:
1445 1448 value = str(self.specGraphPrefix.text())
1446 1449 except:
1447 1450 self.console.clear()
1448 1451 self.console.append("Please Write prefix")
1449 1452 return 0
1450 1453 opObj.addParameter(name='figfile', value=value, format='str')
1451 1454 # opObj.addParameter(name='figfile', value=self.specGraphPrefix.text(), format='str')
1452 1455 if self.specGraphftpCross.isChecked():
1453 1456 opObj.addParameter(name='ftp', value='1', format='int')
1454 1457 self.addFTPConf2Operation(puObj, opObj)
1455 1458 addFTP = True
1456 1459
1457 1460 if self.specGraphCebRTIplot.isChecked():
1458 1461 name_operation = 'RTIPlot'
1459 1462 optype = 'other'
1460 1463 name_parameter = 'type'
1461 1464 value = 'RTIPlot'
1462 1465 format = 'str'
1463 1466
1464 1467 if self.idImagrti == 0:
1465 1468 self.idImagrti = 400
1466 1469 else:
1467 1470 self.idImagrti = self.idImagrti + 1
1468 1471
1469 1472 name_parameter1 = 'id'
1470 1473 value1 = int(self.idImagrti)
1471 1474 format1 = 'int'
1472 1475
1473 1476 format = 'str'
1474 1477
1475 1478 opObj = puObj.addOperation(name=name_operation, optype=optype)
1476 1479 # opObj.addParameter(name=name_parameter, value=value, format=format)
1477 1480 opObj.addParameter(name=name_parameter1, value=value1, format=format1)
1478 1481
1479 1482 channelList = self.specGgraphChannelList.text()
1480 1483 xvalue = self.specGgraphTminTmax.text()
1481 1484 yvalue = self.specGgraphHeight.text()
1482 1485 zvalue = self.specGgraphDbsrange.text()
1483 1486 timerange = self.specGgraphTimeRange.text()
1484 1487
1485 1488 if not channelList == '':
1486 1489 opObj.addParameter(name='channelList', value=channelList, format='intlist')
1487 1490
1488 1491 if not xvalue == '':
1489 1492 xvalueList = xvalue.split(',')
1490 1493 try:
1491 1494 value = float(xvalueList[0])
1492 1495 value = float(xvalueList[1])
1493 1496 except:
1494 1497 return 0
1495 1498 format = 'float'
1496 1499 opObj.addParameter(name='xmin', value=xvalueList[0], format=format)
1497 1500 opObj.addParameter(name='xmax', value=xvalueList[1], format=format)
1498 1501
1499 1502 if not timerange == '':
1500 1503 format = 'int'
1501 1504 try:
1502 1505 timerange = int(timerange)
1503 1506 except:
1504 1507 return 0
1505 1508 opObj.addParameter(name='timerange', value=timerange, format=format)
1506 1509
1507 1510
1508 1511 if not yvalue == '':
1509 1512 yvalueList = yvalue.split(",")
1510 1513 try:
1511 1514 value = float(yvalueList[0])
1512 1515 value = float(yvalueList[1])
1513 1516 except:
1514 1517 return 0
1515 1518 format = 'float'
1516 1519 opObj.addParameter(name='ymin', value=yvalueList[0], format=format)
1517 1520 opObj.addParameter(name='ymax', value=yvalueList[1], format=format)
1518 1521
1519 1522 if not zvalue == '':
1520 1523 zvalueList = zvalue.split(",")
1521 1524 try:
1522 1525 value = float(zvalueList[0])
1523 1526 value = float(zvalueList[1])
1524 1527 except:
1525 1528 return 0
1526 1529 format = 'float'
1527 1530 opObj.addParameter(name='zmin', value=zvalueList[0], format=format)
1528 1531 opObj.addParameter(name='zmax', value=zvalueList[1], format=format)
1529 1532
1530 1533 if self.specGraphSaveRTIplot.isChecked():
1531 1534 checkPath = True
1532 1535 opObj.addParameter(name='save', value='1', format='bool')
1533 1536 opObj.addParameter(name='figpath', value=self.specGraphPath.text(), format='str')
1534 1537 value = self.specGraphPrefix.text()
1535 1538 if not value == "":
1536 1539 try:
1537 1540 value = str(self.specGraphPrefix.text())
1538 1541 except:
1539 1542 self.console.clear()
1540 1543 self.console.append("Please Write prefix")
1541 1544 return 0
1542 1545 opObj.addParameter(name='figfile', value=value, format='str')
1543 1546
1544 1547 # test_ftp
1545 1548 if self.specGraphftpRTIplot.isChecked():
1546 1549 opObj.addParameter(name='ftp', value='1', format='int')
1547 1550 self.addFTPConf2Operation(puObj, opObj)
1548 1551 addFTP = True
1549 1552
1550 1553 if self.specGraphCebCoherencmap.isChecked():
1551 1554 name_operation = 'CoherenceMap'
1552 1555 optype = 'other'
1553 1556 name_parameter = 'type'
1554 1557 value = 'CoherenceMap'
1555 1558 format = 'str'
1556 1559 if self.idImagcoherence == 0:
1557 1560 self.idImagcoherence = 500
1558 1561 else:
1559 1562 self.idImagcoherence = self.idImagcoherence + 1
1560 1563
1561 1564 name_parameter1 = 'id'
1562 1565 value1 = int(self.idImagcoherence)
1563 1566 format1 = 'int'
1564 1567
1565 1568 opObj = puObj.addOperation(name=name_operation, optype=optype)
1566 1569 # opObj.addParameter(name=name_parameter, value=value, format=format)
1567 1570 # opObj.addParameter(name='coherence_cmap', value='jet', format='str')
1568 1571 # opObj.addParameter(name='phase_cmap', value='RdBu_r', format='str')
1569 1572 opObj.addParameter(name=name_parameter1, value=value1, format=format1)
1570 1573
1571 1574 channelList = self.specGgraphChannelList.text()
1572 1575 if not channelList == '':
1573 1576 opObj.addParameter(name='channelList', value=channelList, format='intlist')
1574 1577
1575 1578 timerange = self.specGgraphTimeRange.text()
1576 1579 if not timerange == '':
1577 1580 try:
1578 1581 timerange = int(timerange)
1579 1582 except:
1580 1583 return 0
1581 1584 format = 'int'
1582 1585 opObj.addParameter(name='timerange', value=timerange, format=format)
1583 1586
1584 1587 xvalue = self.specGgraphTminTmax.text()
1585 1588 if not xvalue == '':
1586 1589 xvalueList = xvalue.split(',')
1587 1590 try:
1588 1591 value = float(xvalueList[0])
1589 1592 value = float(xvalueList[1])
1590 1593 except:
1591 1594 return 0
1592 1595 format = 'float'
1593 1596 opObj.addParameter(name='xmin', value=xvalueList[0], format=format)
1594 1597 opObj.addParameter(name='xmax', value=xvalueList[1], format=format)
1595 1598
1596 1599 yvalue = self.specGgraphHeight.text()
1597 1600 if not yvalue == '':
1598 1601 yvalueList = yvalue.split(",")
1599 1602 try:
1600 1603 value = float(yvalueList[0])
1601 1604 value = float(yvalueList[1])
1602 1605 except:
1603 1606 return 0
1604 1607 format = 'float'
1605 1608 opObj.addParameter(name='ymin', value=yvalueList[0], format=format)
1606 1609 opObj.addParameter(name='ymax', value=yvalueList[1], format=format)
1607 1610
1608 1611 zvalue = self.specGgraphmagnitud.text()
1609 1612 if not zvalue == '':
1610 1613 zvalueList = zvalue.split(",")
1611 1614 try:
1612 1615 value = float(zvalueList[0])
1613 1616 value = float(zvalueList[1])
1614 1617 except:
1615 1618 return 0
1616 1619 opObj.addParameter(name='zmin', value=zvalueList[0], format='float')
1617 1620 opObj.addParameter(name='zmax', value=zvalueList[1], format='float')
1618 1621
1619 1622 if self.specGraphSaveCoherencemap.isChecked():
1620 1623 checkPath = True
1621 1624 opObj.addParameter(name='save', value='1', format='bool')
1622 1625 opObj.addParameter(name='figpath', value=self.specGraphPath.text(), format='str')
1623 1626 value = self.specGraphPrefix.text()
1624 1627 if not value == "":
1625 1628 try:
1626 1629 value = str(self.specGraphPrefix.text())
1627 1630 except:
1628 1631 self.console.clear()
1629 1632 self.console.append("Please Write prefix")
1630 1633 return 0
1631 1634 opObj.addParameter(name='figfile', value=value, format='str')
1632 1635
1633 1636 # test_ftp
1634 1637 if self.specGraphftpCoherencemap.isChecked():
1635 1638 opObj.addParameter(name='ftp', value='1', format='int')
1636 1639 self.addFTPConf2Operation(puObj, opObj)
1637 1640 addFTP = True
1638 1641
1639 1642 if self.specGraphPowerprofile.isChecked():
1640 1643 name_operation = 'PowerProfilePlot'
1641 1644 optype = 'other'
1642 1645 name_parameter = 'type'
1643 1646 value = 'PowerProfilePlot'
1644 1647 format = 'str'
1645 1648
1646 1649 if self.idImagpower == 0:
1647 1650 self.idImagpower = 600
1648 1651 else:
1649 1652 self.idImagpower = self.idImagpower + 1
1650 1653 value1 = int(self.idImagpower)
1651 1654 opObj = puObj.addOperation(name=name_operation, optype=optype)
1652 1655 # opObj.addParameter(name=name_parameter, value=value, format='str')
1653 1656 opObj.addParameter(name='id', value=value1, format='int')
1654 1657
1655 1658 channelList = self.specGgraphChannelList.text()
1656 1659 if not channelList == '':
1657 1660 opObj.addParameter(name='channelList', value=channelList, format='intlist')
1658 1661
1659 1662 xvalue = self.specGgraphDbsrange.text()
1660 1663 if not xvalue == '':
1661 1664 xvalueList = xvalue.split(',')
1662 1665 try:
1663 1666 value = float(xvalueList[0])
1664 1667 value = float(xvalueList[1])
1665 1668 except:
1666 1669 return 0
1667 1670 format = 'float'
1668 1671 opObj.addParameter(name='xmin', value=xvalueList[0], format=format)
1669 1672 opObj.addParameter(name='xmax', value=xvalueList[1], format=format)
1670 1673
1671 1674 yvalue = self.specGgraphHeight.text()
1672 1675 if not yvalue == '':
1673 1676 yvalueList = yvalue.split(",")
1674 1677 try:
1675 1678 value = float(yvalueList[0])
1676 1679 value = float(yvalueList[1])
1677 1680 except:
1678 1681 return 0
1679 1682 format = 'float'
1680 1683 opObj.addParameter(name='ymin', value=yvalueList[0], format=format)
1681 1684 opObj.addParameter(name='ymax', value=yvalueList[1], format=format)
1682 1685
1683 1686
1684 1687 if self.specGraphSavePowerprofile.isChecked():
1685 1688 checkPath = True
1686 1689 opObj.addParameter(name='save', value='1', format='bool')
1687 1690 opObj.addParameter(name='figpath', value=self.specGraphPath.text(), format='str')
1688 1691 value = self.specGraphPrefix.text()
1689 1692 if not value == "":
1690 1693 try:
1691 1694 value = str(self.specGraphPrefix.text())
1692 1695 except:
1693 1696 self.console.clear()
1694 1697 self.console.append("Please Write prefix")
1695 1698 return 0
1696 1699 opObj.addParameter(name='figfile', value=value, format='str')
1697 1700
1698 1701
1699 1702 if self.specGraphftpPowerprofile.isChecked():
1700 1703 opObj.addParameter(name='ftp', value='1', format='int')
1701 1704 self.addFTPConf2Operation(puObj, opObj)
1702 1705 addFTP = True
1703 1706 # rti noise
1704 1707
1705 1708 if self.specGraphCebRTInoise.isChecked():
1706 1709 name_operation = 'Noise'
1707 1710 optype = 'other'
1708 1711 name_parameter = 'type'
1709 1712 value = 'Noise'
1710 1713 format = 'str'
1711 1714
1712 1715 if self.idImagrtinoise == 0:
1713 1716 self.idImagrtinoise = 700
1714 1717 else:
1715 1718 self.idImagrtinoise = self.idImagrtinoise + 1
1716 1719
1717 1720 name_parameter1 = 'id'
1718 1721 value1 = int(self.idImagrtinoise)
1719 1722 format1 = 'int'
1720 1723 format = 'str'
1721 1724
1722 1725 opObj = puObj.addOperation(name=name_operation, optype=optype)
1723 1726 # opObj.addParameter(name=name_parameter, value=value, format=format)
1724 1727 opObj.addParameter(name=name_parameter1, value=value1, format=format1)
1725 1728
1726 1729 channelList = self.specGgraphChannelList.text()
1727 1730 xvalue = self.specGgraphTminTmax.text()
1728 1731 yvalue = self.specGgraphDbsrange.text()
1729 1732 timerange = self.specGgraphTimeRange.text()
1730 1733
1731 1734
1732 1735 if not channelList == '':
1733 1736 opObj.addParameter(name='channelList', value=channelList, format='intlist')
1734 1737
1735 1738 if not timerange == '':
1736 1739 format = 'int'
1737 1740 try:
1738 1741 timerange = int(timerange)
1739 1742 except:
1740 1743 return 0
1741 1744 opObj.addParameter(name='timerange', value=timerange, format=format)
1742 1745
1743 1746 if not xvalue == '':
1744 1747 xvalueList = xvalue.split(',')
1745 1748 try:
1746 1749 value = float(xvalueList[0])
1747 1750 value = float(xvalueList[1])
1748 1751 except:
1749 1752 return 0
1750 1753 format = 'float'
1751 1754 opObj.addParameter(name='xmin', value=xvalueList[0], format=format)
1752 1755 opObj.addParameter(name='xmax', value=xvalueList[1], format=format)
1753 1756
1754 1757 if not yvalue == '':
1755 1758 yvalueList = yvalue.split(",")
1756 1759 try:
1757 1760 value = float(yvalueList[0])
1758 1761 value = float(yvalueList[1])
1759 1762 except:
1760 1763 return 0
1761 1764 format = 'float'
1762 1765 opObj.addParameter(name='ymin', value=yvalueList[0], format=format)
1763 1766 opObj.addParameter(name='ymax', value=yvalueList[1], format=format)
1764 1767
1765 1768 if self.specGraphSaveRTInoise.isChecked():
1766 1769 checkPath = True
1767 1770 opObj.addParameter(name='save', value='1', format='bool')
1768 1771 opObj.addParameter(name='figpath', value=self.specGraphPath.text(), format='str')
1769 1772 value = self.specGraphPrefix.text()
1770 1773 if not value == "":
1771 1774 try:
1772 1775 value = str(self.specGraphPrefix.text())
1773 1776 except:
1774 1777 self.console.clear()
1775 1778 self.console.append("Please Write prefix")
1776 1779 return 0
1777 1780 opObj.addParameter(name='figfile', value=value, format='str')
1778 1781
1779 1782 # test_ftp
1780 1783 if self.specGraphftpRTInoise.isChecked():
1781 1784 opObj.addParameter(name='ftp', value='1', format='int')
1782 1785 self.addFTPConf2Operation(puObj, opObj)
1783 1786 addFTP = True
1784 1787
1785 1788 localfolder = None
1786 1789 if checkPath:
1787 1790 localfolder = str(self.specGraphPath.text())
1788 1791 if localfolder == '':
1789 1792 self.console.clear()
1790 1793 self.console.append("Graphic path should be defined")
1791 1794 return 0
1792 1795
1793 1796 if addFTP:
1794 1797 if not localfolder:
1795 1798 self.console.clear()
1796 1799 self.console.append("You have to save the plots before sending them to FTP Server")
1797 1800 return 0
1798 1801
1802 if not self.temporalFTP.create:
1803 self.temporalFTP.setwithoutconfiguration()
1804
1799 1805 server, remotefolder, username, password, ftp_wei, exp_code, sub_exp_code, plot_pos = self.temporalFTP.recover()
1800 self.createFTPProcUnitView(server, username, password, remotefolder, localfolder)
1806 self.createFTPProcUnitView(server, username, password, remotefolder,
1807 ftp_wei, exp_code, sub_exp_code, plot_pos,
1808 localfolder=localfolder)
1801 1809 else:
1802 1810 self.removeFTPProcUnitView()
1803 1811
1804 1812 # if something happend
1805 1813 parms_ok, output_path, blocksperfile, profilesperblock = self.checkInputsPUSave(datatype='Spectra')
1806 1814 if parms_ok:
1807 1815 name_operation = 'SpectraWriter'
1808 1816 optype = 'other'
1809 1817 name_parameter1 = 'path'
1810 1818 name_parameter2 = 'blocksPerFile'
1811 1819 name_parameter3 = 'profilesPerBlock'
1812 1820 value1 = output_path
1813 1821 value2 = blocksperfile
1814 1822 value3 = profilesperblock
1815 1823 format = "int"
1816 1824
1817 1825 opObj = puObj.addOperation(name=name_operation, optype=optype)
1818 1826 opObj.addParameter(name=name_parameter1, value=value1)
1819 1827 opObj.addParameter(name=name_parameter2, value=value2, format=format)
1820 1828 opObj.addParameter(name=name_parameter3, value=value3, format=format)
1821 1829
1822 1830 self.showPUSpectraProperties(puObj)
1823 1831
1824 1832 self.console.clear()
1825 1833 self.console.append("If you want to save your project")
1826 1834 self.console.append("click on your project name in the Tree Project Explorer")
1827 1835
1828 1836 self.actionSaveToolbar.setEnabled(True)
1829 1837 self.actionStarToolbar.setEnabled(True)
1830 1838
1831 1839 return 1
1832 1840
1833 1841 """
1834 1842 Spectra Graph
1835 1843 """
1836 1844 @pyqtSignature("int")
1837 1845 def on_specGraphCebSpectraplot_stateChanged(self, p0):
1838 1846
1839 1847 if p0 == 2:
1840 1848 self.specGgraphChannelList.setEnabled(True)
1841 1849 self.specGgraphFreq.setEnabled(True)
1842 1850 self.specGgraphHeight.setEnabled(True)
1843 1851 self.specGgraphDbsrange.setEnabled(True)
1844 1852 if p0 == 0:
1845 1853 self.specGgraphFreq.setEnabled(False)
1846 1854 self.specGgraphHeight.setEnabled(False)
1847 1855 self.specGgraphDbsrange.setEnabled(False)
1848 1856
1849 1857
1850 1858 @pyqtSignature("int")
1851 1859 def on_specGraphCebCrossSpectraplot_stateChanged(self, p0):
1852 1860
1853 1861 if p0 == 2:
1854 1862 self.specGgraphFreq.setEnabled(True)
1855 1863 self.specGgraphHeight.setEnabled(True)
1856 1864 self.specGgraphDbsrange.setEnabled(True)
1857 1865 if p0 == 0:
1858 1866 self.specGgraphFreq.setEnabled(False)
1859 1867 self.specGgraphHeight.setEnabled(False)
1860 1868 self.specGgraphDbsrange.setEnabled(False)
1861 1869
1862 1870 @pyqtSignature("int")
1863 1871 def on_specGraphCebRTIplot_stateChanged(self, p0):
1864 1872
1865 1873 if p0 == 2:
1866 1874 self.specGgraphChannelList.setEnabled(True)
1867 1875 self.specGgraphTminTmax.setEnabled(True)
1868 1876 self.specGgraphHeight.setEnabled(True)
1869 1877 self.specGgraphDbsrange.setEnabled(True)
1870 1878 self.specGgraphTimeRange.setEnabled(True)
1871 1879
1872 1880 if p0 == 0:
1873 1881 self.specGgraphTminTmax.setEnabled(False)
1874 1882 self.specGgraphHeight.setEnabled(False)
1875 1883 self.specGgraphDbsrange.setEnabled(False)
1876 1884 self.specGgraphTimeRange.setEnabled(False)
1877 1885
1878 1886
1879 1887 @pyqtSignature("int")
1880 1888 def on_specGraphCebRTInoise_stateChanged(self, p0):
1881 1889 if p0 == 2:
1882 1890 self.specGgraphChannelList.setEnabled(True)
1883 1891 self.specGgraphTminTmax.setEnabled(True)
1884 1892 self.specGgraphDbsrange.setEnabled(True)
1885 1893 self.specGgraphTimeRange.setEnabled(True)
1886 1894
1887 1895 if p0 == 0:
1888 1896 self.specGgraphTminTmax.setEnabled(False)
1889 1897 self.specGgraphDbsrange.setEnabled(False)
1890 1898 self.specGgraphTimeRange.setEnabled(False)
1891 1899
1892 1900
1893 1901
1894 1902
1895 1903 @pyqtSignature("int")
1896 1904 def on_specGraphCebCoherencmap_stateChanged(self, p0):
1897 1905
1898 1906 if p0 == 2:
1899 1907 self.specGgraphTminTmax.setEnabled(True)
1900 1908 self.specGgraphHeight.setEnabled(True)
1901 1909 self.specGgraphmagnitud.setEnabled(True)
1902 1910 self.specGgraphTimeRange.setEnabled(True)
1903 1911
1904 1912 if p0 == 0:
1905 1913 self.specGgraphTminTmax.setEnabled(False)
1906 1914 self.specGgraphHeight.setEnabled(False)
1907 1915 self.specGgraphmagnitud.setEnabled(False)
1908 1916 self.specGgraphTimeRange.setEnabled(False)
1909 1917
1910 1918
1911 1919
1912 1920
1913 1921 @pyqtSignature("int")
1914 1922 def on_specGraphPowerprofile_stateChanged(self, p0):
1915 1923
1916 1924 if p0 == 2:
1917 1925
1918 1926 self.specGgraphHeight.setEnabled(True)
1919 1927 self.specGgraphDbsrange.setEnabled(True)
1920 1928 if p0 == 0:
1921 1929 self.specGgraphHeight.setEnabled(False)
1922 1930 self.specGgraphDbsrange.setEnabled(False)
1923 1931
1924 1932 @pyqtSignature("int")
1925 1933 def on_specGraphPhase_stateChanged(self, p0):
1926 1934
1927 1935 if p0 == 2:
1928 1936 self.specGgraphTminTmax.setEnabled(True)
1929 1937 self.specGgraphPhaserange.setEnabled(True)
1930 1938
1931 1939 if p0 == 0:
1932 1940 self.specGgraphTminTmax.setEnabled(False)
1933 1941 self.specGgraphPhaserange.setEnabled(False)
1934 1942
1935 1943 @pyqtSignature("int")
1936 1944 def on_specGraphSaveSpectra_stateChanged(self, p0):
1937 1945 """
1938 1946 """
1939 1947 if p0 == 2:
1940 1948 self.specGraphPath.setEnabled(True)
1941 1949 self.specGraphPrefix.setEnabled(True)
1942 1950 self.specGraphToolPath.setEnabled(True)
1943 1951 if p0 == 0:
1944 1952 self.specGraphPath.setEnabled(False)
1945 1953 self.specGraphPrefix.setEnabled(False)
1946 1954 self.specGraphToolPath.setEnabled(False)
1947 1955
1948 1956
1949 1957 @pyqtSignature("int")
1950 1958 def on_specGraphSaveCross_stateChanged(self, p0):
1951 1959 if p0 == 2:
1952 1960 self.specGraphPath.setEnabled(True)
1953 1961 self.specGraphPrefix.setEnabled(True)
1954 1962 self.specGraphToolPath.setEnabled(True)
1955 1963
1956 1964 @pyqtSignature("int")
1957 1965 def on_specGraphSaveRTIplot_stateChanged(self, p0):
1958 1966 if p0 == 2:
1959 1967 self.specGraphPath.setEnabled(True)
1960 1968 self.specGraphPrefix.setEnabled(True)
1961 1969 self.specGraphToolPath.setEnabled(True)
1962 1970
1963 1971 @pyqtSignature("int")
1964 1972 def on_specGraphSaveRTInoise_stateChanged(self, p0):
1965 1973 if p0 == 2:
1966 1974 self.specGraphPath.setEnabled(True)
1967 1975 self.specGraphPrefix.setEnabled(True)
1968 1976 self.specGraphToolPath.setEnabled(True)
1969 1977
1970 1978 @pyqtSignature("int")
1971 1979 def on_specGraphSaveCoherencemap_stateChanged(self, p0):
1972 1980 if p0 == 2:
1973 1981 self.specGraphPath.setEnabled(True)
1974 1982 self.specGraphPrefix.setEnabled(True)
1975 1983 self.specGraphToolPath.setEnabled(True)
1976 1984
1977 1985
1978 1986 @pyqtSignature("int")
1979 1987 def on_specGraphSavePowerprofile_stateChanged(self, p0):
1980 1988 if p0 == 2:
1981 1989 self.specGraphPath.setEnabled(True)
1982 1990 self.specGraphPrefix.setEnabled(True)
1983 1991 self.specGraphToolPath.setEnabled(True)
1984 1992
1985 1993
1986 1994 #-------ftp-----#
1987 1995 @pyqtSignature("int")
1988 1996 def on_specGraphftpSpectra_stateChanged(self, p0):
1989 1997 """
1990 1998 """
1991 1999 if p0 == 2:
1992 2000 self.specGgraphftpratio.setEnabled(True)
1993 2001
1994 2002 if p0 == 0:
1995 2003 self.specGgraphftpratio.setEnabled(False)
1996 2004
1997 2005
1998 2006 @pyqtSignature("int")
1999 2007 def on_specGraphftpCross_stateChanged(self, p0):
2000 2008 if p0 == 2:
2001 2009 self.specGgraphftpratio.setEnabled(True)
2002 2010
2003 2011 @pyqtSignature("int")
2004 2012 def on_specGraphftpRTIplot_stateChanged(self, p0):
2005 2013 if p0 == 2:
2006 2014 self.specGgraphftpratio.setEnabled(True)
2007 2015
2008 2016 @pyqtSignature("int")
2009 2017 def on_specGraphftpRTInoise_stateChanged(self, p0):
2010 2018 if p0 == 2:
2011 2019 self.specGgraphftpratio.setEnabled(True)
2012 2020
2013 2021 @pyqtSignature("int")
2014 2022 def on_specGraphftpCoherencemap_stateChanged(self, p0):
2015 2023 if p0 == 2:
2016 2024 self.specGgraphftpratio.setEnabled(True)
2017 2025
2018 2026 @pyqtSignature("int")
2019 2027 def on_specGraphftpPowerprofile_stateChanged(self, p0):
2020 2028 if p0 == 2:
2021 2029 self.specGgraphftpratio.setEnabled(True)
2022 2030
2023 2031 #-------------------#
2024 2032
2025 2033
2026 2034
2027 2035 @pyqtSignature("")
2028 2036 def on_specGraphToolPath_clicked(self):
2029 2037 """
2030 2038 """
2031 2039 self.savePath = str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly))
2032 2040 self.specGraphPath.setText(self.savePath)
2033 2041 if not os.path.exists(self.savePath):
2034 2042 self.console.clear()
2035 2043 self.console.append("Write a correct a path")
2036 2044 return
2037 2045
2038 2046 @pyqtSignature("")
2039 2047 def on_specHeisGraphToolPath_clicked(self):
2040 2048 """
2041 2049 """
2042 2050 self.savePath = str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly))
2043 2051 self.specHeisGraphPath.setText(self.savePath)
2044 2052 if not os.path.exists(self.savePath):
2045 2053 self.console.clear()
2046 2054 self.console.append("Write a correct a path")
2047 2055 return
2048 2056
2049 2057 @pyqtSignature("")
2050 2058 def on_specGraphClear_clicked(self):
2051 2059 self.clearspecGraph()
2052 2060
2053 2061 @pyqtSignature("int")
2054 2062 def on_specHeisOpCebIncoherent_stateChanged(self, p0):
2055 2063 """
2056 2064 Habilita la opcion de aοΏ½adir el parοΏ½metro integraciones incoherentes a la Unidad de Procesamiento .
2057 2065 """
2058 2066 if p0 == 2:
2059 2067 self.specHeisOpIncoherent.setEnabled(True)
2060 2068 self.specHeisOpCobIncInt.setEnabled(True)
2061 2069 if p0 == 0:
2062 2070 self.specHeisOpIncoherent.setEnabled(False)
2063 2071 self.specHeisOpCobIncInt.setEnabled(False)
2064 2072
2065 2073 @pyqtSignature("")
2066 2074 def on_specHeisOpOk_clicked(self):
2067 2075 """
2068 2076 AΓ‘ADE OPERACION SPECTRAHEIS
2069 2077 """
2070 2078 addFTP = False
2071 2079 checkPath = False
2072 2080
2073 2081 self.actionSaveToolbar.setEnabled(False)
2074 2082 self.actionStarToolbar.setEnabled(False)
2075 2083
2076 2084 puObj = self.getSelectedPUObj()
2077 2085 puObj.removeOperations()
2078 2086
2079 2087 if self.specHeisOpCebIncoherent.isChecked():
2080 2088 value = self.specHeisOpIncoherent.text()
2081 2089 name_operation = 'IncohInt4SpectraHeis'
2082 2090 optype = 'other'
2083 2091 if self.specOpCobIncInt.currentIndex() == 0:
2084 2092 name_parameter = 'timeInterval'
2085 2093 format = 'float'
2086 2094 opObj = puObj.addOperation(name=name_operation, optype=optype)
2087 2095 opObj.addParameter(name=name_parameter, value=value, format=format)
2088 2096
2089 2097 # ---- Spectra Plot-----
2090 2098 if self.specHeisGraphCebSpectraplot.isChecked():
2091 2099 name_operation = 'SpectraHeisScope'
2092 2100 optype = 'other'
2093 2101 name_parameter = 'type'
2094 2102 value = 'SpectraHeisScope'
2095 2103 format = 'str'
2096 2104 if self.idImagspectraHeis == 0:
2097 2105 self.idImagspectraHeis = 800
2098 2106 else:
2099 2107 self.idImagspectraHeis = self.idImagspectraHeis + 1
2100 2108 name_parameter1 = 'id'
2101 2109 value1 = int(self.idImagspectraHeis)
2102 2110 format1 = 'int'
2103 2111
2104 2112 format = 'str'
2105 2113
2106 2114 channelList = self.specHeisGgraphChannelList.text()
2107 2115 xvalue = self.specHeisGgraphXminXmax.text()
2108 2116 yvalue = self.specHeisGgraphYminYmax.text()
2109 2117 opObj = puObj.addOperation(name=name_operation, optype=optype)
2110 2118 # opObj.addParameter(name=name_parameter, value=value, format=format)
2111 2119 opObj.addParameter(name=name_parameter1, value=value1, format=format1)
2112 2120
2113 2121 if not channelList == '':
2114 2122 name_parameter = 'channelList'
2115 2123 format = 'intlist'
2116 2124 opObj.addParameter(name=name_parameter, value=channelList, format=format)
2117 2125
2118 2126 if not xvalue == '':
2119 2127 xvalueList = xvalue.split(',')
2120 2128 try:
2121 2129 value1 = float(xvalueList[0])
2122 2130 value2 = float(xvalueList[1])
2123 2131 except:
2124 2132 self.console.clear()
2125 2133 self.console.append("Please Write corrects parameter xmin-xmax")
2126 2134 return 0
2127 2135 name1 = 'xmin'
2128 2136 name2 = 'xmax'
2129 2137 format = 'float'
2130 2138 opObj.addParameter(name=name1, value=value1, format=format)
2131 2139 opObj.addParameter(name=name2, value=value2, format=format)
2132 2140 #------specHeisGgraphYmin-Ymax---
2133 2141 if not yvalue == '':
2134 2142 yvalueList = yvalue.split(",")
2135 2143 try:
2136 2144 value1 = float(yvalueList[0])
2137 2145 value2 = float(yvalueList[1])
2138 2146 except:
2139 2147 self.console.clear()
2140 2148 self.console.append("Please Write corrects parameter Ymix-Ymax")
2141 2149 return 0
2142 2150 name1 = 'ymin'
2143 2151 name2 = 'ymax'
2144 2152 format = 'float'
2145 2153 opObj.addParameter(name=name1, value=value1, format=format)
2146 2154 opObj.addParameter(name=name2, value=value2, format=format)
2147 2155
2148 2156 if self.specHeisGraphSaveSpectra.isChecked():
2149 2157 checkPath = True
2150 2158 name_parameter1 = 'save'
2151 2159 name_parameter2 = 'figpath'
2152 2160 name_parameter3 = 'figfile'
2153 2161 value1 = '1'
2154 2162 value2 = self.specHeisGraphPath.text()
2155 2163 value3 = self.specHeisGraphPrefix.text()
2156 2164 format1 = 'bool'
2157 2165 format2 = 'str'
2158 2166 opObj.addParameter(name=name_parameter1, value=value1 , format=format1)
2159 2167 opObj.addParameter(name=name_parameter2, value=value2, format=format2)
2160 2168 if not value3 == "":
2161 2169 try:
2162 2170 value3 = str(self.specHeisGraphPrefix.text())
2163 2171 except:
2164 2172 self.console.clear()
2165 2173 self.console.append("Please Write prefix")
2166 2174 return 0
2167 2175 opObj.addParameter(name='figfile', value=self.specHeisGraphPrefix.text(), format='str')
2168 2176
2169 2177 # opObj.addParameter(name=name_parameter3, value=value3, format=format2)
2170 2178 # opObj.addParameter(name='wr_period', value='5',format='int')
2171 2179
2172 2180 if self.specHeisGraphftpSpectra.isChecked():
2173 2181 opObj.addParameter(name='ftp', value='1', format='int')
2174 2182 self.addFTPConf2Operation(puObj, opObj)
2175 2183 addFTP = True
2176 2184
2177 2185 if self.specHeisGraphCebRTIplot.isChecked():
2178 2186 name_operation = 'RTIfromSpectraHeis'
2179 2187 optype = 'other'
2180 2188 name_parameter = 'type'
2181 2189 value = 'RTIfromSpectraHeis'
2182 2190 format = 'str'
2183 2191
2184 2192 if self.idImagrtiHeis == 0:
2185 2193 self.idImagrtiHeis = 900
2186 2194 else:
2187 2195 self.idImagrtiHeis = self.idImagrtiHeis + 1
2188 2196
2189 2197 name_parameter1 = 'id'
2190 2198 value1 = int(self.idImagrtiHeis)
2191 2199 format1 = 'int'
2192 2200
2193 2201 format = 'str'
2194 2202
2195 2203 opObj = puObj.addOperation(name=name_operation, optype=optype)
2196 2204 # opObj.addParameter(name=name_parameter, value=value, format=format)
2197 2205 opObj.addParameter(name=name_parameter1, value=value1, format=format1)
2198 2206
2199 2207 channelList = self.specHeisGgraphChannelList.text()
2200 2208 xvalue = self.specHeisGgraphTminTmax.text()
2201 2209 yvalue = self.specHeisGgraphYminYmax.text()
2202 2210 timerange = self.specHeisGgraphTimeRange.text()
2203 2211
2204 2212 if not channelList == '':
2205 2213 opObj.addParameter(name='channelList', value=channelList, format='intlist')
2206 2214
2207 2215 if not xvalue == '':
2208 2216 xvalueList = xvalue.split(',')
2209 2217 try:
2210 2218 value = float(xvalueList[0])
2211 2219 value = float(xvalueList[1])
2212 2220 except:
2213 2221 return 0
2214 2222 format = 'float'
2215 2223 opObj.addParameter(name='xmin', value=xvalueList[0], format=format)
2216 2224 opObj.addParameter(name='xmax', value=xvalueList[1], format=format)
2217 2225
2218 2226 if not timerange == '':
2219 2227 format = 'int'
2220 2228 try:
2221 2229 timerange = int(timerange)
2222 2230 except:
2223 2231 return 0
2224 2232 opObj.addParameter(name='timerange', value=timerange, format=format)
2225 2233
2226 2234
2227 2235 if not yvalue == '':
2228 2236 yvalueList = yvalue.split(",")
2229 2237 try:
2230 2238 value = float(yvalueList[0])
2231 2239 value = float(yvalueList[1])
2232 2240 except:
2233 2241 return 0
2234 2242 format = 'float'
2235 2243 opObj.addParameter(name='ymin', value=yvalueList[0], format=format)
2236 2244 opObj.addParameter(name='ymax', value=yvalueList[1], format=format)
2237 2245
2238 2246 if self.specHeisGraphSaveRTIplot.isChecked():
2239 2247 checkPath = True
2240 2248 opObj.addParameter(name='save', value='1', format='bool')
2241 2249 opObj.addParameter(name='figpath', value=self.specHeisGraphPath.text(), format='str')
2242 2250 value = self.specHeisGraphPrefix.text()
2243 2251 if not value == "":
2244 2252 try:
2245 2253 value = str(self.specHeisGraphPrefix.text())
2246 2254 except:
2247 2255 self.console.clear()
2248 2256 self.console.append("Please Write prefix")
2249 2257 return 0
2250 2258 opObj.addParameter(name='figfile', value=value, format='str')
2251 2259
2252 2260 # test_ftp
2253 2261 if self.specHeisGraphftpRTIplot.isChecked():
2254 2262 opObj.addParameter(name='ftp', value='1', format='int')
2255 2263 self.addFTPConf2Operation(puObj, opObj)
2256 2264 addFTP = True
2257 2265
2258 2266 localfolder = None
2259 2267 if checkPath:
2260 2268 localfolder = str(self.specGraphPath.text())
2261 2269 if localfolder == '':
2262 2270 self.console.clear()
2263 2271 self.console.append("Graphic path should be defined")
2264 2272 return 0
2265 2273
2266 2274 if addFTP:
2267 2275 if not localfolder:
2268 2276 self.console.clear()
2269 2277 self.console.append("You have to save the plots before sending them to FTP Server")
2270 2278 return 0
2271 2279
2280 if not self.temporalFTP.create:
2281 self.temporalFTP.setwithoutconfiguration()
2282
2272 2283 server, remotefolder, username, password, ftp_wei, exp_code, sub_exp_code, plot_pos = self.temporalFTP.recover()
2273 self.createFTPProcUnitView(server, username, password, remotefolder, localfolder)
2284 self.createFTPProcUnitView(server, username, password, remotefolder,
2285 ftp_wei, exp_code, sub_exp_code, plot_pos,
2286 localfolder=localfolder)
2274 2287 else:
2275 2288 self.removeFTPProcUnitView()
2276 2289
2277 2290 # if something happened
2278 2291 parms_ok, output_path, blocksperfile, metada = self.checkInputsPUSave(datatype='SpectraHeis')
2279 2292 if parms_ok:
2280 2293 name_operation = 'FitsWriter'
2281 2294 optype = 'other'
2282 2295 name_parameter1 = 'path'
2283 2296 name_parameter2 = 'dataBlocksPerFile'
2284 2297 name_parameter3 = 'metadatafile'
2285 2298 value1 = output_path
2286 2299 value2 = blocksperfile
2287 2300 value3 = metada
2288 2301 format2 = "int"
2289 2302 format3 = "str"
2290 2303 opObj = puObj.addOperation(name=name_operation, optype=optype)
2291 2304 opObj.addParameter(name=name_parameter1, value=value1)
2292 2305 opObj.addParameter(name=name_parameter2, value=value2, format=format2)
2293 2306 opObj.addParameter(name=name_parameter3, value=value3, format=format3)
2294 2307
2295 2308 self.showPUSpectraHeisProperties(puObj)
2296 2309
2297 2310 self.console.clear()
2298 2311 self.console.append("Click on save icon ff you want to save your project")
2299 2312
2300 2313 self.actionSaveToolbar.setEnabled(True)
2301 2314 self.actionStarToolbar.setEnabled(True)
2302 2315
2303 2316 return 1
2304 2317 @pyqtSignature("int")
2305 2318 def on_specHeisGraphCebSpectraplot_stateChanged(self, p0):
2306 2319
2307 2320 if p0 == 2:
2308 2321 self.specHeisGgraphChannelList.setEnabled(True)
2309 2322 self.specHeisGgraphXminXmax.setEnabled(True)
2310 2323 self.specHeisGgraphYminYmax.setEnabled(True)
2311 2324 if p0 == 0:
2312 2325 self.specHeisGgraphXminXmax.setEnabled(False)
2313 2326 self.specHeisGgraphYminYmax.setEnabled(False)
2314 2327
2315 2328 @pyqtSignature("int")
2316 2329 def on_specHeisGraphCebRTIplot_stateChanged(self, p0):
2317 2330
2318 2331 if p0 == 2:
2319 2332 self.specHeisGgraphChannelList.setEnabled(True)
2320 2333 self.specHeisGgraphTminTmax.setEnabled(True)
2321 2334 self.specHeisGgraphYminYmax.setEnabled(True)
2322 2335 self.specHeisGgraphTimeRange.setEnabled(True)
2323 2336
2324 2337 if p0 == 0:
2325 2338 self.specHeisGgraphTminTmax.setEnabled(False)
2326 2339 self.specHeisGgraphYminYmax.setEnabled(False)
2327 2340 self.specHeisGgraphTimeRange.setEnabled(False)
2328 2341
2329 2342 @pyqtSignature("int")
2330 2343 def on_specHeisGraphSaveSpectra_stateChanged(self, p0):
2331 2344 """
2332 2345 """
2333 2346 if p0 == 2:
2334 2347 self.specHeisGraphPath.setEnabled(True)
2335 2348 self.specHeisGraphPrefix.setEnabled(True)
2336 2349 self.specHeisGraphToolPath.setEnabled(True)
2337 2350 if p0 == 0:
2338 2351 self.specHeisGraphPath.setEnabled(False)
2339 2352 self.specHeisGraphPrefix.setEnabled(False)
2340 2353 self.specHeisGraphToolPath.setEnabled(False)
2341 2354
2342 2355 @pyqtSignature("int")
2343 2356 def on_specHeisGraphSaveRTIplot_stateChanged(self, p0):
2344 2357 if p0 == 2:
2345 2358 self.specHeisGraphPath.setEnabled(True)
2346 2359 self.specHeisGraphPrefix.setEnabled(True)
2347 2360 self.specHeisGraphToolPath.setEnabled(True)
2348 2361
2349 2362 #-------ftp-----#
2350 2363 @pyqtSignature("int")
2351 2364 def on_specHeisGraphftpSpectra_stateChanged(self, p0):
2352 2365 """
2353 2366 """
2354 2367 if p0 == 2:
2355 2368 self.specHeisGgraphftpratio.setEnabled(True)
2356 2369
2357 2370 if p0 == 0:
2358 2371 self.specHeisGgraphftpratio.setEnabled(False)
2359 2372
2360 2373 @pyqtSignature("int")
2361 2374 def on_specHeisGraphftpRTIplot_stateChanged(self, p0):
2362 2375 if p0 == 2:
2363 2376 self.specHeisGgraphftpratio.setEnabled(True)
2364 2377
2365 2378 @pyqtSignature("")
2366 2379 def on_specHeisGraphClear_clicked(self):
2367 2380 pass
2368 2381
2369 2382 def on_click(self, index):
2370 2383
2371 2384 self.selectedItemTree = self.projectExplorerModel.itemFromIndex(index)
2372 2385 if self.getSelectedProjectObj():
2373 2386 projectObjView = self.getSelectedProjectObj()
2374 2387 project_name, description = projectObjView.name, projectObjView.description
2375 2388 id = int(projectObjView.id)
2376 2389 idReadUnit = projectObjView.getReadUnitId()
2377 2390 readUnitObj = projectObjView.getProcUnitObj(idReadUnit)
2378 2391 datatype, data_path, startDate, endDate, startTime, endTime , online , delay, walk , set = self.showProjectProperties(projectObjView)
2379 2392 # show ProjectView
2380 2393 self.refreshProjectWindow(project_name, description, datatype, data_path, startDate, endDate, startTime, endTime, online, delay, set)
2381 2394 if datatype == 'Voltage':
2382 2395 ext = '.r'
2383 2396 elif datatype == 'Spectra':
2384 2397 ext = '.pdata'
2385 2398 elif datatype == 'Fits':
2386 2399 ext = '.fits'
2387 2400 if online == 0:
2388 2401 self.proComStartDate.clear()
2389 2402 self.proComEndDate.clear()
2390 2403 self.loadDays(data_path, ext, walk)
2391 2404 self.tabProject.setEnabled(True)
2392 2405 self.tabVoltage.setEnabled(False)
2393 2406 self.tabSpectra.setEnabled(False)
2394 2407 self.tabCorrelation.setEnabled(False)
2395 2408 self.tabSpectraHeis.setEnabled(False)
2396 2409 self.tabWidgetProject.setCurrentWidget(self.tabProject)
2397 2410
2398 2411 if self.selectedItemTree.text() == 'Voltage':
2399 2412 datatype = 'Voltage'
2400 2413 puObj = self.getSelectedPUObj()
2401 2414 self.showtabPUCreated(datatype=datatype)
2402 2415 if len(puObj.getOperationObjList()) == 1:
2403 2416 self.setInputsPU_View(datatype)
2404 2417 else:
2405 2418 self.refreshPUWindow(datatype=datatype, puObj=puObj)
2406 2419 self.showPUVoltageProperties(puObj)
2407 2420
2408 2421 if self.selectedItemTree.text() == 'Spectra':
2409 2422
2410 2423 datatype = 'Spectra'
2411 2424 puObj = self.getSelectedPUObj()
2412 2425 self.showtabPUCreated(datatype=datatype)
2413 2426 if readUnitObj.datatype == 'Spectra':
2414 2427 self.specOpnFFTpoints.setEnabled(False)
2415 2428 self.specOpProfiles.setEnabled(False)
2416 2429 self.specOpippFactor.setEnabled(False)
2417 2430
2418 2431 else:
2419 2432 self.specOpnFFTpoints.setEnabled(True)
2420 2433 self.specOpProfiles.setEnabled(True)
2421 2434 self.specOpippFactor.setEnabled(True)
2422 2435
2423 2436 if len(puObj.getOperationObjList()) == 1:
2424 2437 self.setInputsPU_View(datatype)
2425 2438
2426 2439 opObj = puObj.getOperationObj(name="run")
2427 2440 if opObj == None:
2428 2441 self.specOpnFFTpoints.clear()
2429 2442 self.specOpProfiles.clear()
2430 2443 self.specOpippFactor.clear()
2431 2444 else:
2432 2445 parmObj = opObj.getParameterObj(parameterName='nFFTPoints')
2433 2446 if parmObj == None:
2434 2447 self.specOpnFFTpoints.clear()
2435 2448 else:
2436 2449 value = opObj.getParameterValue(parameterName='nFFTPoints')
2437 2450 self.specOpnFFTpoints.setText(str(value))
2438 2451
2439 2452 parmObj = opObj.getParameterObj(parameterName='nProfiles')
2440 2453 if parmObj == None:
2441 2454 self.specOpProfiles.clear()
2442 2455 else:
2443 2456 value = opObj.getParameterValue(parameterName='nProfiles')
2444 2457 self.specOpProfiles.setText(str(value))
2445 2458
2446 2459 parmObj = opObj.getParameterObj(parameterName="ippFactor")
2447 2460 if parmObj == None:
2448 2461 self.specOpippFactor.clear()
2449 2462 else:
2450 2463 value = opObj.getParameterValue(parameterName='ippFactor')
2451 2464 self.specOpippFactor.setText(str(value))
2452 2465
2453 2466 opObj = puObj.getOperationObj(name="run")
2454 2467 if opObj == None:
2455 2468 self.specOppairsList.clear()
2456 2469 self.specOpCebCrossSpectra.setCheckState(0)
2457 2470 else:
2458 2471 parmObj = opObj.getParameterObj(parameterName='pairsList')
2459 2472 if parmObj == None:
2460 2473 self.specOppairsList.clear()
2461 2474 self.specOpCebCrossSpectra.setCheckState(0)
2462 2475 else:
2463 2476 value = opObj.getParameterValue(parameterName='pairsList')
2464 2477 value = str(value)[1:-1]
2465 2478 self.specOppairsList.setText(str(value))
2466 2479 self.specOppairsList.setEnabled(True)
2467 2480 self.specOpCebCrossSpectra.setCheckState(QtCore.Qt.Checked)
2468 2481
2469 2482 else:
2470 2483 self.refreshPUWindow(datatype=datatype, puObj=puObj)
2471 2484 self.showPUSpectraProperties(puObj)
2472 2485
2473 2486 if self.selectedItemTree.text() == 'Correlation':
2474 2487 self.tabCorrelation.setEnabled(True)
2475 2488 self.tabVoltage.setEnabled(False)
2476 2489 self.tabSpectra.setEnabled(False)
2477 2490 self.tabWidgetProject.setCurrentWidget(self.tabCorrelation)
2478 2491
2479 2492 if self.selectedItemTree.text() == 'SpectraHeis':
2480 2493 datatype = 'SpectraHeis'
2481 2494 puObj = self.getSelectedPUObj()
2482 2495 self.showtabPUCreated(datatype=datatype)
2483 2496 if len(puObj.getOperationObjList()) == 1:
2484 2497 self.setInputsPU_View(datatype)
2485 2498 else:
2486 2499 self.refreshPUWindow(datatype=datatype, puObj=puObj)
2487 2500 self.showPUSpectraHeisProperties(puObj)
2488 2501
2489 2502
2490 2503 def on_right_click(self, pos):
2491 2504
2492 2505 self.menu = QtGui.QMenu()
2493 2506 quitAction0 = self.menu.addAction("NewProject")
2494 2507 quitAction1 = self.menu.addAction("NewProcessingUnit")
2495 2508 quitAction2 = self.menu.addAction("Delete")
2496 2509 quitAction3 = self.menu.addAction("Exit")
2497 2510
2498 2511 if len(self.__itemTreeDict) == 0:
2499 2512 quitAction2.setEnabled(False)
2500 2513 else:
2501 2514 quitAction2.setEnabled(True)
2502 2515
2503 2516 action = self.menu.exec_(self.mapToGlobal(pos))
2504 2517
2505 2518 if action == quitAction0:
2506 2519 self. setInputsProject_View()
2507 2520 self.create = True
2508 2521
2509 2522 if action == quitAction1:
2510 2523 if len(self.__projectObjDict) == 0:
2511 2524 outputstr = "First Create a Project then add Processing Unit"
2512 2525 self.console.clear()
2513 2526 self.console.append(outputstr)
2514 2527 return 0
2515 2528 else:
2516 2529 self.addPUWindow()
2517 2530 self.console.clear()
2518 2531 self.console.append("Please, Choose the type of Processing Unit")
2519 2532 self.console.append("If your Datatype is rawdata, you will start with processing unit Type Voltage")
2520 2533 self.console.append("If your Datatype is pdata, you will choose between processing unit Type Spectra or Correlation")
2521 2534 self.console.append("If your Datatype is fits, you will start with processing unit Type SpectraHeis")
2522 2535
2523 2536 if action == quitAction2:
2524 2537 index = self.selectedItemTree
2525 2538 try:
2526 2539 index.parent()
2527 2540 except:
2528 2541 self.console.append('First left click on Project or Processing Unit')
2529 2542 return 0
2530 2543 # print index.parent(),index
2531 2544 if index.parent() == None:
2532 2545 self.projectExplorerModel.removeRow(index.row())
2533 2546 else:
2534 2547 index.parent().removeRow(index.row())
2535 2548 self.deleteProjectorPU()
2536 2549 self.console.clear()
2537 2550 # for i in self.projectExplorerTree.selectionModel().selection().indexes():
2538 2551 # print i.row()
2539 2552
2540 2553 if action == quitAction3:
2541 2554 return
2542 2555
2543 2556 def refreshProjectWindow(self, project_name, description, datatype, data_path, startDate, endDate, startTime, endTime, online, delay, set):
2544 2557
2545 2558 self.proName.setText(str(project_name))
2546 2559
2547 2560 if datatype == 'Voltage':
2548 2561 ext = '.r'
2549 2562 value = 0
2550 2563 elif datatype == 'Spectra':
2551 2564 ext = '.pdata'
2552 2565 value = 1
2553 2566 elif datatype == 'Fits':
2554 2567 ext = 'fits'
2555 2568 value = 2
2556 2569 self.proDataType.setText(ext)
2557 2570 self.proDataPath.setText(str(data_path))
2558 2571 self.proComDataType.setCurrentIndex(value)
2559 2572 self.proComReadMode.setCurrentIndex(int(online))
2560 2573 self.proDelay.setText(str(delay))
2561 2574 self.proSet.setText(str(set))
2562 2575 self.proComStartDate.clear()
2563 2576 self.proComEndDate.clear()
2564 2577 self.proComStartDate.addItem(str(startDate))
2565 2578 self.proComEndDate.addItem(str(endDate))
2566 2579 starTime = str(startTime)
2567 2580 starlist = starTime.split(":")
2568 2581 endTime = str(endTime)
2569 2582 endlist = endTime.split(":")
2570 2583 self.time.setHMS(int(starlist[0]), int(starlist[1]), int(starlist[2]))
2571 2584 self.proStartTime.setTime(self.time)
2572 2585 self.time.setHMS(int(endlist[0]), int(endlist[1]), int(endlist[2]))
2573 2586 self.proEndTime.setTime(self.time)
2574 2587 self.proDescription.clear()
2575 2588 self.proDescription.append(description)
2576 2589
2577 2590 def refreshPUWindow(self, datatype, puObj):
2578 2591
2579 2592 if datatype == 'Voltage':
2580 2593 opObj = puObj.getOperationObj(name='setRadarFrequency')
2581 2594 if opObj == None:
2582 2595 self.volOpRadarfrequency.clear()
2583 2596 self.volOpCebRadarfrequency.setCheckState(0)
2584 2597 else:
2585 2598 value = opObj.getParameterValue(parameterName='frequency')
2586 2599 value = str(value)
2587 2600 self.volOpRadarfrequency.setText(value)
2588 2601 self.volOpRadarfrequency.setEnabled(True)
2589 2602 self.volOpCebRadarfrequency.setCheckState(QtCore.Qt.Checked)
2590 2603
2591 2604
2592 2605 opObj = puObj.getOperationObj(name="selectChannels")
2593 2606 if opObj == None:
2594 2607 self.volOpChannel.clear()
2595 2608 self.volOpCebChannels.setCheckState(0)
2596 2609
2597 2610 else:
2598 2611 value = opObj.getParameterValue(parameterName='channelList')
2599 2612 value = str(value)[1:-1]
2600 2613 self.volOpChannel.setText(value)
2601 2614 self.volOpChannel.setEnabled(True)
2602 2615 self.volOpCebChannels.setCheckState(QtCore.Qt.Checked)
2603 2616
2604 2617
2605 2618 opObj = puObj.getOperationObj(name="selectHeights")
2606 2619 if opObj == None:
2607 2620 self.volOpHeights.clear()
2608 2621 self.volOpCebHeights.setCheckState(0)
2609 2622 else:
2610 2623 value1 = int(opObj.getParameterValue(parameterName='minHei'))
2611 2624 value1 = str(value1)
2612 2625 value2 = int(opObj.getParameterValue(parameterName='maxHei'))
2613 2626 value2 = str(value2)
2614 2627 value = value1 + "," + value2
2615 2628 self.volOpHeights.setText(value)
2616 2629 self.volOpHeights.setEnabled(True)
2617 2630 self.volOpCebHeights.setCheckState(QtCore.Qt.Checked)
2618 2631
2619 2632 opObj = puObj.getOperationObj(name="filterByHeights")
2620 2633 if opObj == None:
2621 2634 self.volOpFilter.clear()
2622 2635 self.volOpCebFilter.setCheckState(0)
2623 2636 else:
2624 2637 value = opObj.getParameterValue(parameterName='window')
2625 2638 value = str(value)
2626 2639 self.volOpFilter.setText(value)
2627 2640 self.volOpFilter.setEnabled(True)
2628 2641 self.volOpCebFilter.setCheckState(QtCore.Qt.Checked)
2629 2642
2630 2643 opObj = puObj.getOperationObj(name="ProfileSelector")
2631 2644 if opObj == None:
2632 2645 self.volOpProfile.clear()
2633 2646 self.volOpCebProfile.setCheckState(0)
2634 2647 else:
2635 2648 for parmObj in opObj.getParameterObjList():
2636 2649 if parmObj.name == "profileRangeList":
2637 2650 value = opObj.getParameterValue(parameterName='profileRangeList')
2638 2651 value = str(value)[1:-1]
2639 2652 self.volOpProfile.setText(value)
2640 2653 self.volOpProfile.setEnabled(True)
2641 2654 self.volOpCebProfile.setCheckState(QtCore.Qt.Checked)
2642 2655 self.volOpComProfile.setCurrentIndex(1)
2643 2656 if parmObj.name == "profileList":
2644 2657 value = opObj.getParameterValue(parameterName='profileList')
2645 2658 value = str(value)[1:-1]
2646 2659 self.volOpProfile.setText(value)
2647 2660 self.volOpProfile.setEnabled(True)
2648 2661 self.volOpCebProfile.setCheckState(QtCore.Qt.Checked)
2649 2662 self.volOpComProfile.setCurrentIndex(0)
2650 2663
2651 2664
2652 2665 opObj = puObj.getOperationObj(name="Decoder")
2653 2666 if opObj == None:
2654 2667 self.volOpCebDecodification.setCheckState(0)
2655 2668 else:
2656 2669 try:
2657 2670 valueCode = opObj.getParameterValue(parameterName='nCode')
2658 2671 status = "on"
2659 2672 except:
2660 2673 status = "off"
2661 2674 if not status == "off":
2662 2675 if int(valueCode) == 1:
2663 2676 valueBaud = opObj.getParameterValue(parameterName='nBaud')
2664 2677 if int(valueBaud) == 3:
2665 2678 self.volOpComCode.setCurrentIndex(0)
2666 2679 if int(valueBaud) == 4:
2667 2680 self.volOpComCode.setCurrentIndex(1)
2668 2681 if int(valueBaud) == 5:
2669 2682 self.volOpComCode.setCurrentIndex(2)
2670 2683 if int(valueBaud) == 7:
2671 2684 self.volOpComCode.setCurrentIndex(3)
2672 2685 if int(valueBaud) == 11:
2673 2686 self.volOpComCode.setCurrentIndex(4)
2674 2687 if int(valueBaud) == 13:
2675 2688 self.volOpComCode.setCurrentIndex(5)
2676 2689 else:
2677 2690 valueBaud = opObj.getParameterValue(parameterName='nBaud')
2678 2691 if int(valueBaud) == 3:
2679 2692 self.volOpComCode.setCurrentIndex(6)
2680 2693 if int(valueBaud) == 4:
2681 2694 self.volOpComCode.setCurrentIndex(7)
2682 2695 if int(valueBaud) == 5:
2683 2696 self.volOpComCode.setCurrentIndex(8)
2684 2697 if int(valueBaud) == 7:
2685 2698 self.volOpComCode.setCurrentIndex(9)
2686 2699 if int(valueBaud) == 11:
2687 2700 self.volOpComCode.setCurrentIndex(10)
2688 2701 if int(valueBaud) == 13:
2689 2702 self.volOpComCode.setCurrentIndex(11)
2690 2703
2691 2704 for parmObj in opObj.getParameterObjList():
2692 2705 if parmObj.name == "nBaud":
2693 2706 value = opObj.getParameterValue(parameterName='nBaud')
2694 2707 if parmObj.name == "mode":
2695 2708 value = opObj.getParameterValue(parameterName='mode')
2696 2709 self.volOpComMode.setCurrentIndex(value)
2697 2710 else:
2698 2711 self.volOpComCode.setCurrentIndex(12)
2699 2712 self.volOpCebDecodification.setCheckState(QtCore.Qt.Checked)
2700 2713
2701 2714 opObj = puObj.getOperationObj(name="CohInt")
2702 2715 if opObj == None:
2703 2716 self.volOpCohInt.clear()
2704 2717 self.volOpCebCohInt.setCheckState(0)
2705 2718 else:
2706 2719 value = opObj.getParameterValue(parameterName='n')
2707 2720 self.volOpCohInt.setText(str(value))
2708 2721 self.volOpCohInt.setEnabled(True)
2709 2722 self.volOpCebCohInt.setCheckState(QtCore.Qt.Checked)
2710 2723
2711 2724 opObj = puObj.getOperationObj(name='Scope')
2712 2725 if opObj == None:
2713 2726 self.volGraphCebshow.setCheckState(0)
2714 2727 else:
2715 2728 self.volGraphCebshow.setCheckState(QtCore.Qt.Checked)
2716 2729 value = opObj.getParameterObj(parameterName='channelList')
2717 2730 if value == None:
2718 2731 self.volGraphChannelList.clear()
2719 2732 else:
2720 2733 value = opObj.getParameterValue(parameterName='channelList')
2721 2734 value = str(value)[1:-1]
2722 2735 self.volGraphChannelList.setText(value)
2723 2736 self.volOpProfile.setEnabled(True)
2724 2737
2725 2738 for parmObj in opObj.getParameterObjList():
2726 2739 if parmObj.name == "xmin":
2727 2740 value1 = opObj.getParameterValue(parameterName='xmin')
2728 2741 value1 = str(value1)
2729 2742 value2 = opObj.getParameterValue(parameterName='xmax')
2730 2743 value2 = str(value2)
2731 2744 value = value1 + "," + value2
2732 2745 self.volGraphfreqrange.setText(value)
2733 2746 else:
2734 2747 self.volGraphfreqrange.clear()
2735 2748 for parmObj in opObj.getParameterObjList():
2736 2749 if parmObj.name == "ymin":
2737 2750 value1 = opObj.getParameterValue(parameterName='ymin')
2738 2751 value1 = str(value1)
2739 2752 value2 = opObj.getParameterValue(parameterName='ymax')
2740 2753 value2 = str(value2)
2741 2754 value = value1 + "," + value2
2742 2755 value2 = str(value2)
2743 2756 self.volGraphHeightrange.setText(value)
2744 2757 else:
2745 2758 self.volGraphHeightrange.clear()
2746 2759
2747 2760
2748 2761 for parmObj in opObj.getParameterObjList():
2749 2762 if parmObj.name == "save":
2750 2763 self.volGraphCebSave.setCheckState(QtCore.Qt.Checked)
2751 2764 else:
2752 2765 self.volGraphCebSave.setCheckState(QtCore.Qt.Unchecked)
2753 2766
2754 2767 # outputVoltageWrite
2755 2768 opObj = puObj.getOperationObj(name='VoltageWriter')
2756 2769 if opObj == None:
2757 2770 self.volOutputPath.clear()
2758 2771 self.volOutputblocksperfile.clear()
2759 2772 self.volOutputprofilesperblock.clear()
2760 2773 else:
2761 2774 value = opObj.getParameterObj(parameterName='path')
2762 2775 if value == None:
2763 2776 self.volOutputPath.clear()
2764 2777 else:
2765 2778 value = opObj.getParameterValue(parameterName='path')
2766 2779 path = str(value)
2767 2780 self.volOutputPath.setText(path)
2768 2781 value = opObj.getParameterObj(parameterName='blocksPerFile')
2769 2782 if value == None:
2770 2783 self.volOutputblocksperfile.clear()
2771 2784 else:
2772 2785 value = opObj.getParameterValue(parameterName='blocksPerFile')
2773 2786 blocksperfile = str(value)
2774 2787 self.volOutputblocksperfile.setText(blocksperfile)
2775 2788 value = opObj.getParameterObj(parameterName='profilesPerBlock')
2776 2789 if value == None:
2777 2790 self.volOutputprofilesperblock.clear()
2778 2791 else:
2779 2792 value = opObj.getParameterValue(parameterName='profilesPerBlock')
2780 2793 profilesPerBlock = str(value)
2781 2794 self.volOutputprofilesperblock.setText(profilesPerBlock)
2782 2795
2783 2796 if datatype == 'Spectra':
2784 2797
2785 2798 opObj = puObj.getOperationObj(name='setRadarFrequency')
2786 2799 if opObj == None:
2787 2800 self.specOpRadarfrequency.clear()
2788 2801 self.specOpCebRadarfrequency.setCheckState(0)
2789 2802 else:
2790 2803 value = opObj.getParameterValue(parameterName='frequency')
2791 2804 value = str(value)
2792 2805 self.specOpRadarfrequency.setText(value)
2793 2806 self.specOpRadarfrequency.setEnabled(True)
2794 2807 self.specOpCebRadarfrequency.setCheckState(QtCore.Qt.Checked)
2795 2808
2796 2809 opObj = puObj.getOperationObj(name="run")
2797 2810 if opObj == None:
2798 2811 self.specOpnFFTpoints.clear()
2799 2812 self.specOpProfiles.clear()
2800 2813 self.specOpippFactor.clear()
2801 2814 else:
2802 2815 parmObj = opObj.getParameterObj(parameterName='nFFTPoints')
2803 2816 if parmObj == None:
2804 2817 self.specOpnFFTpoints.clear()
2805 2818 else:
2806 2819 self.specOpnFFTpoints.setEnabled(True)
2807 2820 value = opObj.getParameterValue(parameterName='nFFTPoints')
2808 2821 self.specOpnFFTpoints.setText(str(value))
2809 2822
2810 2823 parmObj = opObj.getParameterObj(parameterName='nProfiles')
2811 2824 if parmObj == None:
2812 2825 self.specOpProfiles.clear()
2813 2826 else:
2814 2827 self.specOpProfiles.setEnabled(True)
2815 2828 value = opObj.getParameterValue(parameterName='nProfiles')
2816 2829 self.specOpProfiles.setText(str(value))
2817 2830
2818 2831 parmObj = opObj.getParameterObj(parameterName='ippFactor')
2819 2832 if parmObj == None:
2820 2833 self.specOpippFactor.clear()
2821 2834 else:
2822 2835 self.specOpippFactor.setEnabled(True)
2823 2836 value = opObj.getParameterValue(parameterName='ippFactor')
2824 2837 self.specOpippFactor.setText(str(value))
2825 2838
2826 2839 opObj = puObj.getOperationObj(name="run")
2827 2840 if opObj == None:
2828 2841 self.specOppairsList.clear()
2829 2842 self.specOpCebCrossSpectra.setCheckState(0)
2830 2843 else:
2831 2844 parmObj = opObj.getParameterObj(parameterName='pairsList')
2832 2845 if parmObj == None:
2833 2846 self.specOppairsList.clear()
2834 2847 self.specOpCebCrossSpectra.setCheckState(0)
2835 2848 else:
2836 2849 value = opObj.getParameterValue(parameterName='pairsList')
2837 2850 value = str(value)[1:-1]
2838 2851 self.specOppairsList.setText(str(value))
2839 2852 self.specOppairsList.setEnabled(True)
2840 2853 self.specOpCebCrossSpectra.setCheckState(QtCore.Qt.Checked)
2841 2854
2842 2855 opObj = puObj.getOperationObj(name="selectChannels")
2843 2856 if opObj == None:
2844 2857 self.specOpChannel.clear()
2845 2858 self.specOpCebChannel.setCheckState(0)
2846 2859 else:
2847 2860 value = opObj.getParameterValue(parameterName='channelList')
2848 2861 value = str(value)[1:-1]
2849 2862 self.specOpChannel.setText(value)
2850 2863 self.specOpChannel.setEnabled(True)
2851 2864 self.specOpCebChannel.setCheckState(QtCore.Qt.Checked)
2852 2865
2853 2866 opObj = puObj.getOperationObj(name="selectHeights")
2854 2867 if opObj == None:
2855 2868 self.specOpHeights.clear()
2856 2869 self.specOpCebHeights.setCheckState(0)
2857 2870 else:
2858 2871 value1 = int(opObj.getParameterValue(parameterName='minHei'))
2859 2872 value1 = str(value1)
2860 2873 value2 = int(opObj.getParameterValue(parameterName='maxHei'))
2861 2874 value2 = str(value2)
2862 2875 value = value1 + "," + value2
2863 2876 self.specOpHeights.setText(value)
2864 2877 self.specOpHeights.setEnabled(True)
2865 2878 self.specOpCebHeights.setCheckState(QtCore.Qt.Checked)
2866 2879
2867 2880 opObj = puObj.getOperationObj(name="IncohInt")
2868 2881 if opObj == None:
2869 2882 self.specOpIncoherent.clear()
2870 2883 self.specOpCebIncoherent.setCheckState(0)
2871 2884 else:
2872 2885 for parmObj in opObj.getParameterObjList():
2873 2886 if parmObj.name == 'timeInterval':
2874 2887 value = opObj.getParameterValue(parameterName='timeInterval')
2875 2888 value = float(value)
2876 2889 self.specOpIncoherent.setText(str(value))
2877 2890 self.specOpIncoherent.setEnabled(True)
2878 2891 self.specOpCebIncoherent.setCheckState(QtCore.Qt.Checked)
2879 2892 self.specOpCobIncInt.setCurrentIndex(0)
2880 2893
2881 2894 if parmObj.name == 'n':
2882 2895 value = opObj.getParameterValue(parameterName='n')
2883 2896 value = float(value)
2884 2897 self.specOpIncoherent.setText(str(value))
2885 2898 self.specOpIncoherent.setEnabled(True)
2886 2899 self.specOpCebIncoherent.setCheckState(QtCore.Qt.Checked)
2887 2900 self.specOpCobIncInt.setCurrentIndex(1)
2888 2901
2889 2902 opObj = puObj.getOperationObj(name="removeDC")
2890 2903 if opObj == None:
2891 2904 self.specOpCebRemoveDC.setCheckState(0)
2892 2905 else:
2893 2906 self.specOpCebRemoveDC.setCheckState(QtCore.Qt.Checked)
2894 2907 value = opObj.getParameterValue(parameterName='mode')
2895 2908 if value == 1:
2896 2909 self.specOpComRemoveDC.setCurrentIndex(0)
2897 2910 elif value == 2:
2898 2911 self.specOpComRemoveDC.setCurrentIndex(1)
2899 2912
2900 2913 opObj = puObj.getOperationObj(name="removeInterference")
2901 2914 if opObj == None:
2902 2915 self.specOpCebRemoveInt.setCheckState(0)
2903 2916 else:
2904 2917 self.specOpCebRemoveInt.setCheckState(QtCore.Qt.Checked)
2905 2918
2906 2919 opObj = puObj.getOperationObj(name='getNoise')
2907 2920 if opObj == None:
2908 2921 self.specOpCebgetNoise.setCheckState(0)
2909 2922 self.specOpgetNoise.clear()
2910 2923 else:
2911 2924 self.specOpCebgetNoise.setCheckState(QtCore.Qt.Checked)
2912 2925 parmObj = opObj.getParameterObj(parameterName='minHei')
2913 2926 if parmObj == None:
2914 2927 self.specOpgetNoise.clear()
2915 2928 value1 = None
2916 2929 else:
2917 2930 value1 = opObj.getParameterValue(parameterName='minHei')
2918 2931 value1 = str(value1)
2919 2932 parmObj = opObj.getParameterObj(parameterName='maxHei')
2920 2933 if parmObj == None:
2921 2934 value2 = None
2922 2935 value = value1
2923 2936 self.specOpgetNoise.setText(value)
2924 2937 self.specOpgetNoise.setEnabled(True)
2925 2938 else:
2926 2939 value2 = opObj.getParameterValue(parameterName='maxHei')
2927 2940 value2 = str(value2)
2928 2941 parmObj = opObj.getParameterObj(parameterName='minVel')
2929 2942 if parmObj == None:
2930 2943 value3 = None
2931 2944 value = value1 + "," + value2
2932 2945 self.specOpgetNoise.setText(value)
2933 2946 self.specOpgetNoise.setEnabled(True)
2934 2947 else:
2935 2948 value3 = opObj.getParameterValue(parameterName='minVel')
2936 2949 value3 = str(value3)
2937 2950 parmObj = opObj.getParameterObj(parameterName='maxVel')
2938 2951 if parmObj == None:
2939 2952 value4 = None
2940 2953 value = value1 + "," + value2 + "," + value3
2941 2954 self.specOpgetNoise.setText(value)
2942 2955 self.specOpgetNoise.setEnabled(True)
2943 2956 else:
2944 2957 value4 = opObj.getParameterValue(parameterName='maxVel')
2945 2958 value4 = str(value4)
2946 2959 value = value1 + "," + value2 + "," + value3 + ',' + value4
2947 2960 self.specOpgetNoise.setText(value)
2948 2961 self.specOpgetNoise.setEnabled(True)
2949 2962
2950 2963 opObj = puObj.getOperationObj(name='SpectraPlot')
2951 2964 # opObj = puObj.getOpObjfromParamValue(value="SpectraPlot")
2952 2965 if opObj == None:
2953 2966 self.specGraphCebSpectraplot.setCheckState(0)
2954 2967 self.specGraphSaveSpectra.setCheckState(0)
2955 2968 self.specGraphftpSpectra.setCheckState(0)
2956 2969
2957 2970 else:
2958 2971 operationSpectraPlot = "Enable"
2959 2972 self.specGraphCebSpectraplot.setCheckState(QtCore.Qt.Checked)
2960 2973 parmObj = opObj.getParameterObj(parameterName='channelList')
2961 2974 if parmObj == None:
2962 2975 self.specGgraphChannelList.clear()
2963 2976 else:
2964 2977 value = opObj.getParameterValue(parameterName='channelList')
2965 2978 channelListSpectraPlot = str(value)[1:-1]
2966 2979 self.specGgraphChannelList.setText(channelListSpectraPlot)
2967 2980 self.specGgraphChannelList.setEnabled(True)
2968 2981
2969 2982 parmObj = opObj.getParameterObj(parameterName='xmin')
2970 2983 if parmObj == None:
2971 2984 self.specGgraphFreq.clear()
2972 2985 else:
2973 2986 value1 = opObj.getParameterValue(parameterName='xmin')
2974 2987 value1 = str(value1)
2975 2988 value2 = opObj.getParameterValue(parameterName='xmax')
2976 2989 value2 = str(value2)
2977 2990 value = value1 + "," + value2
2978 2991 self.specGgraphFreq.setText(value)
2979 2992 self.specGgraphFreq.setEnabled(True)
2980 2993
2981 2994 parmObj = opObj.getParameterObj(parameterName='ymin')
2982 2995 if parmObj == None:
2983 2996 self.specGgraphHeight.clear()
2984 2997 else:
2985 2998 value1 = opObj.getParameterValue(parameterName='ymin')
2986 2999 value1 = str(value1)
2987 3000 value2 = opObj.getParameterValue(parameterName='ymax')
2988 3001 value2 = str(value2)
2989 3002 value = value1 + "," + value2
2990 3003 self.specGgraphHeight.setText(value)
2991 3004 self.specGgraphHeight.setEnabled(True)
2992 3005
2993 3006 parmObj = opObj.getParameterObj(parameterName='zmin')
2994 3007 if parmObj == None:
2995 3008 self.specGgraphDbsrange.clear()
2996 3009 else:
2997 3010 value1 = opObj.getParameterValue(parameterName='zmin')
2998 3011 value1 = str(value1)
2999 3012 value2 = opObj.getParameterValue(parameterName='zmax')
3000 3013 value2 = str(value2)
3001 3014 value = value1 + "," + value2
3002 3015 self.specGgraphDbsrange.setText(value)
3003 3016 self.specGgraphDbsrange.setEnabled(True)
3004 3017
3005 3018
3006 3019 parmObj = opObj.getParameterObj(parameterName="figpath")
3007 3020 if parmObj == None:
3008 3021 self.specGraphSaveSpectra.setCheckState(0)
3009 3022 else:
3010 3023 self.specGraphSaveSpectra.setCheckState(QtCore.Qt.Checked)
3011 3024 value = opObj.getParameterValue(parameterName='figpath')
3012 3025 self.specGraphPath.setText(value)
3013 3026
3014 3027 parmObj = opObj.getParameterObj(parameterName="ftp")
3015 3028 if parmObj == None:
3016 3029 self.specGraphftpSpectra.setCheckState(0)
3017 3030 else:
3018 3031 self.specGraphftpSpectra.setCheckState(QtCore.Qt.Checked)
3019 3032 try:
3020 3033 value = opObj.getParameterValue(parameterName='wr_period')
3021 3034 except:
3022 3035 value = " "
3023 3036 self.specGgraphftpratio.setText(str(value))
3024 3037
3025 3038 opObj = puObj.getOperationObj(name='CrossSpectraPlot')
3026 3039 # opObj = puObj.getOpObjfromParamValue(value="CrossSpectraPlot")
3027 3040 if opObj == None:
3028 3041 self.specGraphCebCrossSpectraplot.setCheckState(0)
3029 3042 self.specGraphSaveCross.setCheckState(0)
3030 3043
3031 3044 else:
3032 3045 operationCrossSpectraPlot = "Enable"
3033 3046 self.specGraphCebCrossSpectraplot.setCheckState(QtCore.Qt.Checked)
3034 3047 parmObj = opObj.getParameterObj(parameterName='xmin')
3035 3048 if parmObj == None:
3036 3049 self.specGgraphFreq.clear()
3037 3050 else:
3038 3051 value1 = opObj.getParameterValue(parameterName='xmin')
3039 3052 value1 = str(value1)
3040 3053 value2 = opObj.getParameterValue(parameterName='xmax')
3041 3054 value2 = str(value2)
3042 3055 value = value1 + "," + value2
3043 3056 self.specGgraphFreq.setText(value)
3044 3057 self.specGgraphFreq.setEnabled(True)
3045 3058
3046 3059 parmObj = opObj.getParameterObj(parameterName='ymin')
3047 3060 if parmObj == None:
3048 3061 self.specGgraphHeight.clear()
3049 3062 else:
3050 3063 value1 = opObj.getParameterValue(parameterName='ymin')
3051 3064 value1 = str(value1)
3052 3065 value2 = opObj.getParameterValue(parameterName='ymax')
3053 3066 value2 = str(value2)
3054 3067 value = value1 + "," + value2
3055 3068 self.specGgraphHeight.setText(value)
3056 3069 self.specGgraphHeight.setEnabled(True)
3057 3070
3058 3071 parmObj = opObj.getParameterObj(parameterName='zmin')
3059 3072 if parmObj == None:
3060 3073 self.specGgraphDbsrange.clear()
3061 3074 else:
3062 3075 value1 = opObj.getParameterValue(parameterName='zmin')
3063 3076 value1 = str(value1)
3064 3077 value2 = opObj.getParameterValue(parameterName='zmax')
3065 3078 value2 = str(value2)
3066 3079 value = value1 + "," + value2
3067 3080 self.specGgraphDbsrange.setText(value)
3068 3081 self.specGgraphDbsrange.setEnabled(True)
3069 3082
3070 3083 parmObj = opObj.getParameterObj(parameterName="figpath")
3071 3084 if parmObj == None:
3072 3085 self.specGraphSaveCross.setCheckState(0)
3073 3086
3074 3087 else:
3075 3088 self.specGraphSaveCross.setCheckState(QtCore.Qt.Checked)
3076 3089 value = opObj.getParameterValue(parameterName='figpath')
3077 3090 self.specGraphPath.setText(value)
3078 3091
3079 3092 parmObj = opObj.getParameterObj(parameterName="ftp")
3080 3093 if parmObj == None:
3081 3094 self.specGraphftpCross.setCheckState(0)
3082 3095 else:
3083 3096 self.specGraphftpCross.setCheckState(QtCore.Qt.Checked)
3084 3097 try:
3085 3098 value = opObj.getParameterValue(parameterName='wr_period')
3086 3099 except:
3087 3100 value = " "
3088 3101 self.specGgraphftpratio.setText(str(value))
3089 3102
3090 3103 opObj = puObj.getOperationObj(name='RTIPlot')
3091 3104 # opObj = puObj.getOpObjfromParamValue(value="RTIPlot")
3092 3105 if opObj == None:
3093 3106 self.specGraphCebRTIplot.setCheckState(0)
3094 3107 self.specGraphSaveRTIplot.setCheckState(0)
3095 3108 self.specGraphftpRTIplot.setCheckState(0)
3096 3109 else:
3097 3110 self.specGraphCebRTIplot.setCheckState(QtCore.Qt.Checked)
3098 3111 parmObj = opObj.getParameterObj(parameterName='channelList')
3099 3112 if parmObj == None:
3100 3113 self.specGgraphChannelList.clear()
3101 3114 else:
3102 3115 value = opObj.getParameterValue(parameterName='channelList')
3103 3116 channelListRTIPlot = str(value)[1:-1]
3104 3117 self.specGgraphChannelList.setText(channelListRTIPlot)
3105 3118 self.specGgraphChannelList.setEnabled(True)
3106 3119
3107 3120 parmObj = opObj.getParameterObj(parameterName='xmin')
3108 3121 if parmObj == None:
3109 3122 self.specGgraphTminTmax.clear()
3110 3123 else:
3111 3124 value1 = opObj.getParameterValue(parameterName='xmin')
3112 3125 value1 = str(value1)
3113 3126 value2 = opObj.getParameterValue(parameterName='xmax')
3114 3127 value2 = str(value2)
3115 3128 value = value1 + "," + value2
3116 3129 self.specGgraphTminTmax.setText(value)
3117 3130 self.specGgraphTminTmax.setEnabled(True)
3118 3131
3119 3132 parmObj = opObj.getParameterObj(parameterName='timerange')
3120 3133 if parmObj == None:
3121 3134 self.specGgraphTimeRange.clear()
3122 3135 else:
3123 3136 value1 = opObj.getParameterValue(parameterName='timerange')
3124 3137 value1 = str(value1)
3125 3138 self.specGgraphTimeRange.setText(value1)
3126 3139 self.specGgraphTimeRange.setEnabled(True)
3127 3140
3128 3141 parmObj = opObj.getParameterObj(parameterName='ymin')
3129 3142 if parmObj == None:
3130 3143 self.specGgraphHeight.clear()
3131 3144 else:
3132 3145 value1 = opObj.getParameterValue(parameterName='ymin')
3133 3146 value1 = str(value1)
3134 3147 value2 = opObj.getParameterValue(parameterName='ymax')
3135 3148 value2 = str(value2)
3136 3149 value = value1 + "," + value2
3137 3150 self.specGgraphHeight.setText(value)
3138 3151 self.specGgraphHeight.setEnabled(True)
3139 3152
3140 3153 parmObj = opObj.getParameterObj(parameterName='zmin')
3141 3154 if parmObj == None:
3142 3155 self.specGgraphDbsrange.clear()
3143 3156 else:
3144 3157 value1 = opObj.getParameterValue(parameterName='zmin')
3145 3158 value1 = str(value1)
3146 3159 value2 = opObj.getParameterValue(parameterName='zmax')
3147 3160 value2 = str(value2)
3148 3161 value = value1 + "," + value2
3149 3162 self.specGgraphDbsrange.setText(value)
3150 3163 self.specGgraphDbsrange.setEnabled(True)
3151 3164
3152 3165 parmObj = opObj.getParameterObj(parameterName="figpath")
3153 3166 if parmObj == None:
3154 3167 self.specGraphSaveRTIplot.setCheckState(0)
3155 3168 else:
3156 3169 self.specGraphSaveRTIplot.setCheckState(QtCore.Qt.Checked)
3157 3170 value = opObj.getParameterValue(parameterName='figpath')
3158 3171 self.specGraphPath.setText(value)
3159 3172 #---------add----#
3160 3173 parmObj = opObj.getParameterObj(parameterName="ftp")
3161 3174 if parmObj == None:
3162 3175 self.specGraphftpRTIplot.setCheckState(0)
3163 3176 else:
3164 3177 self.specGraphftpRTIplot.setCheckState(QtCore.Qt.Checked)
3165 3178 try:
3166 3179 value = opObj.getParameterValue(parameterName='wr_period')
3167 3180 except:
3168 3181 value = " "
3169 3182 self.specGgraphftpratio.setText(str(value))
3170 3183
3171 3184 opObj = puObj.getOperationObj(name='CoherenceMap')
3172 3185 # opObj = puObj.getOpObjfromParamValue(value="CoherenceMap")
3173 3186 if opObj == None:
3174 3187 self.specGraphCebCoherencmap.setCheckState(0)
3175 3188 self.specGraphSaveCoherencemap.setCheckState(0)
3176 3189 self.specGraphftpCoherencemap.setCheckState(0)
3177 3190
3178 3191 else:
3179 3192 operationCoherenceMap = "Enable"
3180 3193 self.specGraphCebCoherencmap.setCheckState(QtCore.Qt.Checked)
3181 3194 parmObj = opObj.getParameterObj(parameterName='xmin')
3182 3195 if parmObj == None:
3183 3196 self.specGgraphTminTmax.clear()
3184 3197 else:
3185 3198 value1 = opObj.getParameterValue(parameterName='xmin')
3186 3199 value1 = str(value1)
3187 3200 value2 = opObj.getParameterValue(parameterName='xmax')
3188 3201 value2 = str(value2)
3189 3202 value = value1 + "," + value2
3190 3203 self.specGgraphTminTmax.setText(value)
3191 3204 self.specGgraphTminTmax.setEnabled(True)
3192 3205
3193 3206 parmObj = opObj.getParameterObj(parameterName='timerange')
3194 3207 if parmObj == None:
3195 3208 self.specGgraphTimeRange.clear()
3196 3209 else:
3197 3210 value1 = opObj.getParameterValue(parameterName='timerange')
3198 3211 value1 = str(value1)
3199 3212 self.specGgraphTimeRange.setText(value1)
3200 3213 self.specGgraphTimeRange.setEnabled(True)
3201 3214
3202 3215 parmObj = opObj.getParameterObj(parameterName='ymin')
3203 3216 if parmObj == None:
3204 3217 self.specGgraphHeight.clear()
3205 3218 else:
3206 3219 value1 = opObj.getParameterValue(parameterName='ymin')
3207 3220 value1 = str(value1)
3208 3221 value2 = opObj.getParameterValue(parameterName='ymax')
3209 3222 value2 = str(value2)
3210 3223 value = value1 + "," + value2
3211 3224 self.specGgraphHeight.setText(value)
3212 3225 self.specGgraphHeight.setEnabled(True)
3213 3226
3214 3227 parmObj = opObj.getParameterObj(parameterName='zmin')
3215 3228 if parmObj == None:
3216 3229 self.specGgraphmagnitud.clear()
3217 3230 else:
3218 3231 value1 = opObj.getParameterValue(parameterName='zmin')
3219 3232 value1 = str(value1)
3220 3233 value2 = opObj.getParameterValue(parameterName='zmax')
3221 3234 value2 = str(value2)
3222 3235 value = value1 + "," + value2
3223 3236 self.specGgraphmagnitud.setText(value)
3224 3237 self.specGgraphmagnitud.setEnabled(True)
3225 3238
3226 3239 parmObj = opObj.getParameterObj(parameterName="figpath")
3227 3240 if parmObj == None:
3228 3241 self.specGraphSaveCoherencemap.setCheckState(0)
3229 3242 else:
3230 3243 self.specGraphSaveCoherencemap.setCheckState(QtCore.Qt.Checked)
3231 3244 value = opObj.getParameterValue(parameterName='figpath')
3232 3245 self.specGraphPath.setText(value)
3233 3246
3234 3247 parmObj = opObj.getParameterObj(parameterName="ftp")
3235 3248 if parmObj == None:
3236 3249 self.specGraphftpCoherencemap.setCheckState(0)
3237 3250 else:
3238 3251 self.specGraphftpCoherencemap.setCheckState(QtCore.Qt.Checked)
3239 3252 try:
3240 3253 value = opObj.getParameterValue(parameterName='wr_period')
3241 3254 except:
3242 3255 value = " "
3243 3256 self.specGgraphftpratio.setText(str(value))
3244 3257
3245 3258 opObj = puObj.getOperationObj(name='PowerProfilePlot')
3246 3259 # opObj = puObj.getOpObjfromParamValue(value="PowerProfilePlot")
3247 3260 if opObj == None:
3248 3261 self.specGraphPowerprofile.setCheckState(0)
3249 3262 self.specGraphSavePowerprofile.setCheckState(0)
3250 3263 operationPowerProfilePlot = "Disabled"
3251 3264 channelList = None
3252 3265 freq_vel = None
3253 3266 heightsrange = None
3254 3267 else:
3255 3268 operationPowerProfilePlot = "Enable"
3256 3269 self.specGraphPowerprofile.setCheckState(QtCore.Qt.Checked)
3257 3270 parmObj = opObj.getParameterObj(parameterName='xmin')
3258 3271 if parmObj == None:
3259 3272 self.specGgraphDbsrange.clear()
3260 3273 else:
3261 3274 value1 = opObj.getParameterValue(parameterName='xmin')
3262 3275 value1 = str(value1)
3263 3276 value2 = opObj.getParameterValue(parameterName='xmax')
3264 3277 value2 = str(value2)
3265 3278 value = value1 + "," + value2
3266 3279 self.specGgraphDbsrange.setText(value)
3267 3280 self.specGgraphDbsrange.setEnabled(True)
3268 3281
3269 3282 parmObj = opObj.getParameterObj(parameterName='ymin')
3270 3283 if parmObj == None:
3271 3284 self.specGgraphHeight.clear()
3272 3285 else:
3273 3286 value1 = opObj.getParameterValue(parameterName='ymin')
3274 3287 value1 = str(value1)
3275 3288 value2 = opObj.getParameterValue(parameterName='ymax')
3276 3289 value2 = str(value2)
3277 3290 value = value1 + "," + value2
3278 3291 self.specGgraphHeight.setText(value)
3279 3292 self.specGgraphHeight.setEnabled(True)
3280 3293
3281 3294 parmObj = opObj.getParameterObj(parameterName="figpath")
3282 3295 if parmObj == None:
3283 3296 self.specGraphSavePowerprofile.setCheckState(0)
3284 3297 else:
3285 3298 self.specGraphSavePowerprofile.setCheckState(QtCore.Qt.Checked)
3286 3299 value = opObj.getParameterValue(parameterName='figpath')
3287 3300 self.specGraphPath.setText(value)
3288 3301
3289 3302 parmObj = opObj.getParameterObj(parameterName="ftp")
3290 3303 if parmObj == None:
3291 3304 self.specGraphftpPowerprofile.setCheckState(0)
3292 3305 else:
3293 3306 self.specGraphftpPowerprofile.setCheckState(QtCore.Qt.Checked)
3294 3307 try:
3295 3308 value = opObj.getParameterValue(parameterName='wr_period')
3296 3309 except:
3297 3310 value = " "
3298 3311 self.specGgraphftpratio.setText(str(value))
3299 3312 # -noise
3300 3313 opObj = puObj.getOperationObj(name='Noise')
3301 3314 # opObj = puObj.getOpObjfromParamValue(value="Noise")
3302 3315 if opObj == None:
3303 3316 self.specGraphCebRTInoise.setCheckState(0)
3304 3317 self.specGraphSaveRTInoise.setCheckState(0)
3305 3318 self.specGraphftpRTInoise.setCheckState(0)
3306 3319 else:
3307 3320 self.specGraphCebRTInoise.setCheckState(QtCore.Qt.Checked)
3308 3321 parmObj = opObj.getParameterObj(parameterName='channelList')
3309 3322 if parmObj == None:
3310 3323 self.specGgraphChannelList.clear()
3311 3324 else:
3312 3325 value = opObj.getParameterValue(parameterName='channelList')
3313 3326 channelListRTINoise = str(value)[1:-1]
3314 3327 self.specGgraphChannelList.setText(channelListRTINoise)
3315 3328 self.specGgraphChannelList.setEnabled(True)
3316 3329
3317 3330 parmObj = opObj.getParameterObj(parameterName='xmin')
3318 3331 if parmObj == None:
3319 3332 self.specGgraphTminTmax.clear()
3320 3333 else:
3321 3334 value1 = opObj.getParameterValue(parameterName='xmin')
3322 3335 value1 = str(value1)
3323 3336 value2 = opObj.getParameterValue(parameterName='xmax')
3324 3337 value2 = str(value2)
3325 3338 value = value1 + "," + value2
3326 3339 self.specGgraphTminTmax.setText(value)
3327 3340 self.specGgraphTminTmax.setEnabled(True)
3328 3341
3329 3342 parmObj = opObj.getParameterObj(parameterName='timerange')
3330 3343 if parmObj == None:
3331 3344 self.specGgraphTimeRange.clear()
3332 3345 else:
3333 3346 value1 = opObj.getParameterValue(parameterName='timerange')
3334 3347 value1 = str(value1)
3335 3348 self.specGgraphTimeRange.setText(value1)
3336 3349 self.specGgraphTimeRange.setEnabled(True)
3337 3350
3338 3351
3339 3352 parmObj = opObj.getParameterObj(parameterName='ymin')
3340 3353 if parmObj == None:
3341 3354 self.specGgraphDbsrange.clear()
3342 3355 else:
3343 3356 value1 = opObj.getParameterValue(parameterName='ymin')
3344 3357 value1 = str(value1)
3345 3358 value2 = opObj.getParameterValue(parameterName='ymax')
3346 3359 value2 = str(value2)
3347 3360 value = value1 + "," + value2
3348 3361 self.specGgraphDbsrange.setText(value)
3349 3362 self.specGgraphDbsrange.setEnabled(True)
3350 3363
3351 3364 parmObj = opObj.getParameterObj(parameterName="figpath")
3352 3365 if parmObj == None:
3353 3366 self.specGraphSaveRTInoise.setCheckState(0)
3354 3367 else:
3355 3368 self.specGraphSaveRTInoise.setCheckState(QtCore.Qt.Checked)
3356 3369 value = opObj.getParameterValue(parameterName='figpath')
3357 3370 self.specGraphPath.setText(value)
3358 3371 #---------add----#
3359 3372 parmObj = opObj.getParameterObj(parameterName="ftp")
3360 3373 if parmObj == None:
3361 3374 self.specGraphftpRTInoise.setCheckState(0)
3362 3375 else:
3363 3376 self.specGraphftpRTInoise.setCheckState(QtCore.Qt.Checked)
3364 3377 try:
3365 3378 value = opObj.getParameterValue(parameterName='wr_period')
3366 3379 except:
3367 3380 value = " "
3368 3381 self.specGgraphftpratio.setText(str(value))
3369 3382
3370 3383 # outputSpectraWrite
3371 3384 opObj = puObj.getOperationObj(name='SpectraWriter')
3372 3385 if opObj == None:
3373 3386 self.specOutputPath.clear()
3374 3387 self.specOutputblocksperfile.clear()
3375 3388 self.specOutputprofileperblock.clear()
3376 3389 else:
3377 3390 value = opObj.getParameterObj(parameterName='path')
3378 3391 if value == None:
3379 3392 self.specOutputPath.clear()
3380 3393 else:
3381 3394 value = opObj.getParameterValue(parameterName='path')
3382 3395 path = str(value)
3383 3396 self.specOutputPath.setText(path)
3384 3397 value = opObj.getParameterObj(parameterName='blocksPerFile')
3385 3398 if value == None:
3386 3399 self.specOutputblocksperfile.clear()
3387 3400 else:
3388 3401 value = opObj.getParameterValue(parameterName='blocksPerFile')
3389 3402 blocksperfile = str(value)
3390 3403 self.specOutputblocksperfile.setText(blocksperfile)
3391 3404 value = opObj.getParameterObj(parameterName='profilesPerBlock')
3392 3405 if value == None:
3393 3406 self.specOutputprofileperblock.clear()
3394 3407 else:
3395 3408 value = opObj.getParameterValue(parameterName='profilesPerBlock')
3396 3409 profilesPerBlock = str(value)
3397 3410 self.specOutputprofileperblock.setText(profilesPerBlock)
3398 3411
3399 3412 if datatype == 'SpectraHeis':
3400 3413 opObj = puObj.getOperationObj(name="IncohInt4SpectraHeis")
3401 3414 if opObj == None:
3402 3415 self.specHeisOpIncoherent.clear()
3403 3416 self.specHeisOpCebIncoherent.setCheckState(0)
3404 3417 else:
3405 3418 for parmObj in opObj.getParameterObjList():
3406 3419 if parmObj.name == 'timeInterval':
3407 3420 value = opObj.getParameterValue(parameterName='timeInterval')
3408 3421 value = float(value)
3409 3422 self.specHeisOpIncoherent.setText(str(value))
3410 3423 self.specHeisOpIncoherent.setEnabled(True)
3411 3424 self.specHeisOpCebIncoherent.setCheckState(QtCore.Qt.Checked)
3412 3425 self.specHeisOpCobIncInt.setCurrentIndex(0)
3413 3426
3414 3427 # SpectraHeis Graph
3415 3428 opObj = puObj.getOperationObj(name='SpectraHeisScope')
3416 3429 # opObj = puObj.getOpObjfromParamValue(value="SpectraHeisScope")
3417 3430 if opObj == None:
3418 3431 self.specHeisGraphCebSpectraplot.setCheckState(0)
3419 3432 self.specHeisGraphSaveSpectra.setCheckState(0)
3420 3433 self.specHeisGraphftpSpectra.setCheckState(0)
3421 3434
3422 3435 else:
3423 3436 operationSpectraHeisScope = "Enable"
3424 3437 self.specHeisGraphCebSpectraplot.setCheckState(QtCore.Qt.Checked)
3425 3438 parmObj = opObj.getParameterObj(parameterName='channelList')
3426 3439 if parmObj == None:
3427 3440 self.specHeisGgraphChannelList.clear()
3428 3441 else:
3429 3442 value = opObj.getParameterValue(parameterName='channelList')
3430 3443 channelListSpectraHeisScope = str(value)[1:-1]
3431 3444 self.specHeisGgraphChannelList.setText(channelListSpectraHeisScope)
3432 3445 self.specHeisGgraphChannelList.setEnabled(True)
3433 3446
3434 3447 parmObj = opObj.getParameterObj(parameterName='xmin')
3435 3448 if parmObj == None:
3436 3449 self.specHeisGgraphXminXmax.clear()
3437 3450 else:
3438 3451 value1 = opObj.getParameterValue(parameterName='xmin')
3439 3452 value1 = str(value1)
3440 3453 value2 = opObj.getParameterValue(parameterName='xmax')
3441 3454 value2 = str(value2)
3442 3455 value = value1 + "," + value2
3443 3456 self.specHeisGgraphXminXmax.setText(value)
3444 3457 self.specHeisGgraphXminXmax.setEnabled(True)
3445 3458
3446 3459 parmObj = opObj.getParameterObj(parameterName='ymin')
3447 3460 if parmObj == None:
3448 3461 self.specHeisGgraphYminYmax.clear()
3449 3462 else:
3450 3463 value1 = opObj.getParameterValue(parameterName='ymin')
3451 3464 value1 = str(value1)
3452 3465 value2 = opObj.getParameterValue(parameterName='ymax')
3453 3466 value2 = str(value2)
3454 3467 value = value1 + "," + value2
3455 3468 self.specHeisGgraphYminYmax.setText(value)
3456 3469 self.specHeisGgraphYminYmax.setEnabled(True)
3457 3470
3458 3471 parmObj = opObj.getParameterObj(parameterName="figpath")
3459 3472 if parmObj == None:
3460 3473 self.specHeisGraphSaveSpectra.setCheckState(0)
3461 3474 else:
3462 3475 self.specHeisGraphSaveSpectra.setCheckState(QtCore.Qt.Checked)
3463 3476 value = opObj.getParameterValue(parameterName='figpath')
3464 3477 self.specHeisGraphPath.setText(value)
3465 3478
3466 3479 parmObj = opObj.getParameterObj(parameterName="ftp")
3467 3480 if parmObj == None:
3468 3481 self.specHeisGraphftpSpectra.setCheckState(0)
3469 3482 else:
3470 3483 self.specHeisGraphftpSpectra.setCheckState(QtCore.Qt.Checked)
3471 3484 try:
3472 3485 value = opObj.getParameterValue(parameterName='wr_period')
3473 3486 except:
3474 3487 value = " "
3475 3488 self.specHeisGgraphftpratio.setText(str(value))
3476 3489
3477 3490 opObj = puObj.getOperationObj(name='RTIfromSpectraHeis')
3478 3491 # opObj = puObj.getOpObjfromParamValue(value="RTIfromSpectraHeis")
3479 3492 if opObj == None:
3480 3493 self.specHeisGraphCebRTIplot.setCheckState(0)
3481 3494 self.specHeisGraphSaveRTIplot.setCheckState(0)
3482 3495 self.specHeisGraphftpRTIplot.setCheckState(0)
3483 3496 else:
3484 3497 self.specHeisGraphCebRTIplot.setCheckState(QtCore.Qt.Checked)
3485 3498 parmObj = opObj.getParameterObj(parameterName='channelList')
3486 3499 if parmObj == None:
3487 3500 self.specHeisGgraphChannelList.clear()
3488 3501 else:
3489 3502 value = opObj.getParameterValue(parameterName='channelList')
3490 3503 channelListRTIPlot = str(value)[1:-1]
3491 3504 self.specGgraphChannelList.setText(channelListRTIPlot)
3492 3505 self.specGgraphChannelList.setEnabled(True)
3493 3506
3494 3507 parmObj = opObj.getParameterObj(parameterName='xmin')
3495 3508 if parmObj == None:
3496 3509 self.specHeisGgraphTminTmax.clear()
3497 3510 else:
3498 3511 value1 = opObj.getParameterValue(parameterName='xmin')
3499 3512 value1 = str(value1)
3500 3513 value2 = opObj.getParameterValue(parameterName='xmax')
3501 3514 value2 = str(value2)
3502 3515 value = value1 + "," + value2
3503 3516 self.specHeisGgraphTminTmax.setText(value)
3504 3517 self.specHeisGgraphTminTmax.setEnabled(True)
3505 3518
3506 3519 parmObj = opObj.getParameterObj(parameterName='timerange')
3507 3520 if parmObj == None:
3508 3521 self.specGgraphTimeRange.clear()
3509 3522 else:
3510 3523 value1 = opObj.getParameterValue(parameterName='timerange')
3511 3524 value1 = str(value1)
3512 3525 self.specHeisGgraphTimeRange.setText(value1)
3513 3526 self.specHeisGgraphTimeRange.setEnabled(True)
3514 3527
3515 3528 parmObj = opObj.getParameterObj(parameterName='ymin')
3516 3529 if parmObj == None:
3517 3530 self.specHeisGgraphYminYmax.clear()
3518 3531 else:
3519 3532 value1 = opObj.getParameterValue(parameterName='ymin')
3520 3533 value1 = str(value1)
3521 3534 value2 = opObj.getParameterValue(parameterName='ymax')
3522 3535 value2 = str(value2)
3523 3536 value = value1 + "," + value2
3524 3537 self.specHeisGgraphYminYmax.setText(value)
3525 3538 self.specHeisGgraphYminYmax.setEnabled(True)
3526 3539
3527 3540 parmObj = opObj.getParameterObj(parameterName="figpath")
3528 3541 if parmObj == None:
3529 3542 self.specHeisGraphSaveRTIplot.setCheckState(0)
3530 3543 else:
3531 3544 self.specHeisGraphSaveRTIplot.setCheckState(QtCore.Qt.Checked)
3532 3545 value = opObj.getParameterValue(parameterName='figpath')
3533 3546 self.specHeisGraphPath.setText(value)
3534 3547 #---------add----#
3535 3548 parmObj = opObj.getParameterObj(parameterName="ftp")
3536 3549 if parmObj == None:
3537 3550 self.specHeisGraphftpRTIplot.setCheckState(0)
3538 3551 else:
3539 3552 self.specHeisGraphftpRTIplot.setCheckState(QtCore.Qt.Checked)
3540 3553 try:
3541 3554 value = opObj.getParameterValue(parameterName='wr_period')
3542 3555 except:
3543 3556 value = " "
3544 3557 self.specHeisGgraphftpratio.setText(str(value))
3545 3558
3546 3559
3547 3560
3548 3561 # outputSpectraHeisWrite
3549 3562 opObj = puObj.getOperationObj(name='FitsWriter')
3550 3563 if opObj == None:
3551 3564 self.specHeisOutputPath.clear()
3552 3565 self.specHeisOutputblocksperfile.clear()
3553 3566 self.specHeisOutputMetada.clear()
3554 3567 else:
3555 3568 value = opObj.getParameterObj(parameterName='path')
3556 3569 if value == None:
3557 3570 self.specHeisOutputPath.clear()
3558 3571 else:
3559 3572 value = opObj.getParameterValue(parameterName='path')
3560 3573 path = str(value)
3561 3574 self.specHeisOutputPath.setText(path)
3562 3575 value = opObj.getParameterObj(parameterName='dataBlocksPerFile')
3563 3576 if value == None:
3564 3577 self.specHeisOutputblocksperfile.clear()
3565 3578 else:
3566 3579 value = opObj.getParameterValue(parameterName='dataBlocksPerFile')
3567 3580 blocksperfile = str(value)
3568 3581 self.specHeisOutputblocksperfile.setText(blocksperfile)
3569 3582 value = opObj.getParameterObj(parameterName='metadatafile')
3570 3583 if value == None:
3571 3584 self.specHeisOutputMetada.clear()
3572 3585 else:
3573 3586 value = opObj.getParameterValue(parameterName='metadatafile')
3574 3587 metada = str(value)
3575 3588 self.specHeisOutputMetada.setText(metada)
3576 3589
3577 3590
3578 3591
3579 3592 def setspecGraph(self):
3580 3593
3581 3594 self.specGgraphChannelList.setEnabled(True)
3582 3595
3583 3596 def clearspecGraph(self):
3584 3597
3585 3598 self.specGgraphChannelList.clear()
3586 3599
3587 3600 def create_comm(self):
3588 3601 self.commCtrlPThread = CommCtrlProcessThread()
3589 3602 self.commCtrlPThread.start()
3590 3603
3591 3604 def create_timers(self):
3592 3605 self.comm_data_timer = QtCore.QTimer(self)
3593 3606 self.comm_data_timer.timeout.connect(self.on_comm_data_timer)
3594 3607 self.comm_data_timer.start(10)
3595 3608
3596 3609 def create_figure(self):
3597 3610 self.queue_plot = Queue.Queue()
3598 3611 self.plotmanager = PlotManager(self.queue_plot)
3599 3612 self.plot_timer = QtCore.QTimer()
3600 3613 QtCore.QObject.connect(self.plot_timer, QtCore.SIGNAL("timeout()"), self.periodicCall)
3601 3614 self.plot_timer.start(100)
3602 3615 self.running = 1
3603 3616
3604 3617 def periodicCall(self):
3605 3618 """
3606 3619 Check every 100 ms if there is something new in the queue.
3607 3620 """
3608 3621 self.plotmanager.processIncoming()
3609 3622 if not self.running:
3610 3623 app.quit()
3611 3624
3612 3625 def on_comm_data_timer(self):
3613 3626 # lee el data_queue y la coloca en el queue de ploteo
3614 3627 try:
3615 3628 reply = self.commCtrlPThread.data_q.get(block=False)
3616 3629 self.queue_plot.put(reply.data)
3617 3630
3618 3631 except Queue.Empty:
3619 3632 pass
3620 3633
3621 3634 def createProjectView(self, id):
3622 3635
3623 3636 self.create = False
3624 3637 project_name, description, datatype, data_path, starDate, endDate, startTime, endTime, online, delay, walk, set = self.getParmsFromProjectWindow()
3625 3638
3626 3639 projectObjView = Project()
3627 3640 projectObjView.setup(id=id, name=project_name, description=description)
3628 3641
3629 3642 self.__projectObjDict[id] = projectObjView
3630 3643
3631 3644 return projectObjView
3632 3645
3633 3646 def updateProjectView(self):
3634 3647
3635 3648 project_name, description, datatype, data_path, starDate, endDate, startTime, endTime, online, delay, walk, set = self.getParmsFromProjectWindow()
3636 3649
3637 3650 projectObjView = self.getSelectedProjectObj()
3638 3651 projectObjView.update(name=project_name, description=description)
3639 3652
3640 3653 return projectObjView
3641 3654
3642 3655 def createReadUnitView(self, projectObjView):
3643 3656
3644 3657 project_name, description, datatype, data_path, startDate, endDate, startTime, endTime, online, delay, walk , set = self.getParmsFromProjectWindow()
3645 3658 if set == None:
3646 3659 readUnitConfObj = projectObjView.addReadUnit(datatype=datatype,
3647 3660 path=data_path,
3648 3661 startDate=startDate,
3649 3662 endDate=endDate,
3650 3663 startTime=startTime,
3651 3664 endTime=endTime,
3652 3665 online=online,
3653 3666 delay=delay,
3654 3667 walk=walk)
3655 3668 else:
3656 3669 readUnitConfObj = projectObjView.addReadUnit(datatype=datatype,
3657 3670 path=data_path,
3658 3671 startDate=startDate,
3659 3672 endDate=endDate,
3660 3673 startTime=startTime,
3661 3674 endTime=endTime,
3662 3675 online=online,
3663 3676 delay=delay,
3664 3677 walk=walk,
3665 3678 set=set)
3666 3679
3667 3680 return readUnitConfObj
3668 3681
3669 3682 def updateReadUnitView(self, projectObjView, idReadUnit):
3670 3683
3671 3684 project_name, description, datatype, data_path, startDate, endDate, startTime, endTime, online, delay, walk , set = self.getParmsFromProjectWindow()
3672 3685
3673 3686 readUnitConfObj = projectObjView.getProcUnitObj(idReadUnit)
3674 3687
3675 3688 if set == None:
3676 3689
3677 3690 readUnitConfObj.update(datatype=datatype,
3678 3691 path=data_path,
3679 3692 startDate=startDate,
3680 3693 endDate=endDate,
3681 3694 startTime=startTime,
3682 3695 endTime=endTime,
3683 3696 online=online,
3684 3697 delay=delay,
3685 3698 walk=walk)
3686 3699
3687 3700 else:
3688 3701 readUnitConfObj.update(datatype=datatype,
3689 3702 path=data_path,
3690 3703 startDate=startDate,
3691 3704 endDate=endDate,
3692 3705 startTime=startTime,
3693 3706 endTime=endTime,
3694 3707 online=online,
3695 3708 delay=delay,
3696 3709 walk=walk,
3697 3710 set=set)
3698 3711
3699 3712
3700 3713
3701 3714 return readUnitConfObj
3702 3715
3703 3716 def createProcUnitView(self, projectObjView, datatype, inputId):
3704 3717
3705 3718 procUnitConfObj = projectObjView.addProcUnit(datatype=datatype, inputId=inputId)
3706 3719
3707 3720 self.__puObjDict[procUnitConfObj.getId()] = procUnitConfObj
3708 3721
3709 3722 return procUnitConfObj
3710 3723
3711 3724 def updateProcUnitView(self, id):
3712 3725
3713 3726 procUnitConfObj = projectObjView.getProcUnitObj(id)
3714 3727 procUnitConfObj.removeOperations()
3715 3728
3716 3729 return procUnitConfObj
3717 3730
3718 3731 def addPUWindow(self):
3719 3732
3720 3733 self.configUPWindowObj = UnitProcessWindow(self)
3721 3734 fatherObj = self.getSelectedPUObj()
3722 3735 try:
3723 3736 fatherObj.getElementName()
3724 3737 except:
3725 3738 self.console.append("First left click on Project or Processing Unit")
3726 3739 return 0
3727 3740
3728 3741 if fatherObj.getElementName() == 'Project':
3729 3742 readUnitConfObj = fatherObj.getReadUnitObj()
3730 3743 self.configUPWindowObj.dataTypeProject = str(readUnitConfObj.datatype)
3731 3744
3732 3745 self.configUPWindowObj.getfromWindowList.append(fatherObj)
3733 3746 self.configUPWindowObj.loadTotalList()
3734 3747 self.configUPWindowObj.show()
3735 3748 self.configUPWindowObj.closed.connect(self.createPUWindow)
3736 3749
3737 3750 def createPUWindow(self):
3738 3751
3739 3752 self.console.clear()
3740 3753
3741 3754 if not self.configUPWindowObj.create:
3742 3755 return
3743 3756
3744 3757 fatherObj = self.configUPWindowObj.getFromWindow
3745 3758 datatype = self.configUPWindowObj.typeofUP
3746 3759
3747 3760 if fatherObj.getElementName() == 'Project':
3748 3761 inputId = fatherObj.getReadUnitId()
3749 3762 projectObjView = fatherObj
3750 3763 else:
3751 3764 inputId = fatherObj.getId()
3752 3765 projectObjView = self.getSelectedProjectObj()
3753 3766
3754 3767 #----------------------------
3755 3768 puObj = self.createProcUnitView(projectObjView, datatype, inputId)
3756 3769 #----------------------------
3757 3770 self.addPU2ProjectExplorer(id=puObj.getId(), name=datatype)
3758 3771
3759 3772 self.showtabPUCreated(datatype)
3760 3773
3761 3774 self.setInputsPU_View(datatype)
3762 3775
3763 3776 self.showPUinitView()
3764 3777
3765 3778 def addFTPConf2Operation(self, puObj, opObj):
3766 3779
3767 3780 if self.temporalFTP.create:
3768 3781 server, remotefolder, username, password, ftp_wei, exp_code, sub_exp_code, plot_pos = self.temporalFTP.recover()
3769 3782 else:
3770 3783 self.temporalFTP.setwithoutconfiguration()
3771 3784 server, remotefolder, username, password, ftp_wei, exp_code, sub_exp_code, plot_pos = self.temporalFTP.recover()
3772 3785
3773 opObj.addParameter(name='server', value=server, format='str')
3774 opObj.addParameter(name='folder', value=remotefolder, format='str')
3775 opObj.addParameter(name='username', value=username, format='str')
3776 opObj.addParameter(name='password', value=password, format='str')
3786 # opObj.addParameter(name='server', value=server, format='str')
3787 # opObj.addParameter(name='folder', value=remotefolder, format='str')
3788 # opObj.addParameter(name='username', value=username, format='str')
3789 # opObj.addParameter(name='password', value=password, format='str')
3777 3790
3778 3791 if ftp_wei:
3779 3792 opObj.addParameter(name='ftp_wei', value=int(ftp_wei), format='int')
3780 3793 if exp_code:
3781 3794 opObj.addParameter(name='exp_code', value=int(exp_code), format='int')
3782 3795 if sub_exp_code:
3783 3796 opObj.addParameter(name='sub_exp_code', value=int(sub_exp_code), format='int')
3784 3797 if plot_pos:
3785 3798 opObj.addParameter(name='plot_pos', value=int(plot_pos), format='int')
3786 3799
3787 3800 if puObj.datatype == "Spectra":
3788 3801 value = self.specGgraphftpratio.text()
3789 3802 if puObj.datatype == "SpectraHeis":
3790 3803 value = self.specHeisGgraphftpratio.text()
3791 3804
3792 3805 if not value == "":
3793 3806 try:
3794 3807 value = int(value)
3795 3808 except:
3796 3809 self.console.clear()
3797 3810 self.console.append("Please fill Ratio on the textbox")
3798 3811 return 0
3799 3812
3800 3813 opObj.addParameter(name='wr_period', value=value, format='int')
3801 3814
3802 def createFTPProcUnitView(self, server, username, password, remotefolder, localfolder='./', extension='.png', period='60', protocol='ftp'):
3815 def createFTPProcUnitView(self, server, username, password, remotefolder,
3816 ftp_wei, exp_code, sub_exp_code, plot_pos,
3817 localfolder='./', extension='.png', period='60', protocol='ftp'):
3803 3818
3804 if self.__ftpProcUnitAdded:
3805 procUnitConfObj = self.__puObjDict[self.__ftpProcUnitId]
3806 procUnitConfObj.removeOperations()
3807 else:
3808 3819 projectObj = self.getSelectedProjectObj()
3820 procUnitConfObj = projectObj.getProcUnitObjByName(name="SendToServer")
3821
3822 if not procUnitConfObj:
3809 3823 procUnitConfObj = projectObj.addProcUnit(name="SendToServer")
3824 else:
3825 procUnitConfObj.removeOperations()
3810 3826
3811 3827 procUnitConfObj.addParameter(name='server', value=server, format='str')
3812 3828 procUnitConfObj.addParameter(name='username', value=username, format='str')
3813 3829 procUnitConfObj.addParameter(name='password', value=password, format='str')
3814 3830 procUnitConfObj.addParameter(name='localfolder', value=localfolder, format='str')
3815 3831 procUnitConfObj.addParameter(name='remotefolder', value=remotefolder, format='str')
3816 3832 procUnitConfObj.addParameter(name='ext', value=extension, format='str')
3817 3833 procUnitConfObj.addParameter(name='period', value=period, format='int')
3818 3834 procUnitConfObj.addParameter(name='protocol', value=protocol, format='str')
3819 3835
3836 procUnitConfObj.addParameter(name='ftp_wei', value=ftp_wei, format='str')
3837 procUnitConfObj.addParameter(name='exp_code', value=exp_code, format='str')
3838 procUnitConfObj.addParameter(name='sub_exp_code', value=sub_exp_code, format='str')
3839 procUnitConfObj.addParameter(name='plot_pos', value=plot_pos, format='str')
3840
3820 3841 self.__puObjDict[procUnitConfObj.getId()] = procUnitConfObj
3821 3842
3822 3843 self.__ftpProcUnitAdded = True
3823 3844 self.__ftpProcUnitId = procUnitConfObj.getId()
3824 3845
3825 3846 def removeFTPProcUnitView(self):
3826 3847
3827 if not self.__ftpProcUnitAdded:
3848 projectObj = self.getSelectedProjectObj()
3849 procUnitConfObj = projectObj.getProcUnitObjByName(name="SendToServer")
3850
3851 self.__ftpProcUnitAdded = False
3852 self.__ftpProcUnitId = None
3853
3854 if not procUnitConfObj:
3828 3855 return
3829 3856
3830 procUnitConfObj = self.__puObjDict[self.__ftpProcUnitId]
3831 3857 procUnitConfObj.removeOperations()
3832 3858
3833 3859 self.__puObjDict.pop(procUnitConfObj.getId())
3834 3860
3835 self.__ftpProcUnitAdded = False
3836 self.__ftpProcUnitId = None
3837
3838 3861 def bufferProject(self, caracteristica, principal, description):
3839 3862
3840 3863 self.projectProperCaracteristica.append(caracteristica)
3841 3864 self.projectProperPrincipal.append(principal)
3842 3865 self.projectProperDescripcion.append(description)
3843 3866 return self.projectProperCaracteristica, self.projectProperPrincipal, self.projectProperDescripcion
3844 3867
3845 3868
3846 3869 def showProjectProperties(self, projectObjView):
3847 3870
3848 3871 project_name, description = projectObjView.name, projectObjView.description
3849 3872
3850 3873 id = projectObjView.id
3851 3874 readUnitId = projectObjView.getReadUnitId()
3852 3875 readUnitObj = projectObjView.getProcUnitObj(readUnitId)
3853 3876 operationObj = readUnitObj.getOperationObj(name='run')
3854 3877
3855 3878
3856 3879 datatype = operationObj.getParameterValue(parameterName='datatype')
3857 3880 dpath = operationObj.getParameterValue(parameterName='path')
3858 3881 startDate = operationObj.getParameterValue(parameterName='startDate')
3859 3882 endDate = operationObj.getParameterValue(parameterName='endDate')
3860 3883 startDate = str(startDate)
3861 3884 endDate = str(endDate)
3862 3885 startDateList = startDate.split('-')
3863 3886 endDateList = endDate.split('-')
3864 3887 startDate = startDateList[0] + "/" + startDateList[1] + "/" + startDateList[2]
3865 3888 endDate = endDateList[0] + "/" + endDateList[1] + "/" + endDateList[2]
3866 3889
3867 3890 startTime = operationObj.getParameterValue(parameterName='startTime')
3868 3891 endTime = operationObj.getParameterValue(parameterName='endTime')
3869 3892 online = operationObj.getParameterValue(parameterName='online')
3870 3893 walk = operationObj.getParameterValue(parameterName='walk')
3871 3894 delay = operationObj.getParameterValue(parameterName='delay')
3872 3895 try:
3873 3896 set = operationObj.getParameterValue(parameterName='set')
3874 3897 except:
3875 3898 set = " "
3876 3899
3877 3900 if online == 0:
3878 3901 remode = "offline"
3879 3902 else:
3880 3903 remode = "online"
3881 3904
3882 3905 if walk == 0:
3883 3906 walk_str = 'On Files'
3884 3907 else:
3885 3908 walk_str = 'On Folder'
3886 3909
3887 3910 self.bufferProject("Properties", "Name", project_name),
3888 3911 self.bufferProject("Properties", "Data Path", dpath)
3889 3912 self.bufferProject("Properties", "Workspace", self.pathWorkSpace)
3890 3913 self.bufferProject("Parameters", "Read Mode ", remode)
3891 3914 self.bufferProject("Parameters", "DataType ", datatype)
3892 3915 self.bufferProject("Parameters", "Start Date", str(startDate))
3893 3916 self.bufferProject("Parameters", "End Date ", str(endDate))
3894 3917 self.bufferProject("Parameters", "Start Time", str(startTime))
3895 3918 self.bufferProject("Parameters", "End Time ", str(endTime))
3896 3919 self.bufferProject("Parameters", "Delay ", str(delay))
3897 3920 try:
3898 3921 set = operationObj.getParameterValue(parameterName='set')
3899 3922 self.bufferProject("Parameters", "Set ", set)
3900 3923 except:
3901 3924 set = " "
3902 3925 self.bufferProject("Parameters", "Walk ", str(walk_str))
3903 3926 self.bufferProject("Parameters", "Time zone", "Local")
3904 3927 self.bufferProject("Description", "Summary ", description)
3905 3928
3906 3929 self.propertiesModel = treeModel()
3907 3930 self.propertiesModel.showProjectParms(self.projectProperCaracteristica, self.projectProperPrincipal, self.projectProperDescripcion)
3908 3931 self.treeProjectProperties.setModel(self.propertiesModel)
3909 3932 self.treeProjectProperties.expandAll()
3910 3933 self.treeProjectProperties.resizeColumnToContents(0)
3911 3934 self.treeProjectProperties.resizeColumnToContents(1)
3912 3935
3913 3936 self.projectProperCaracteristica = []
3914 3937 self.projectProperPrincipal = []
3915 3938 self.projectProperDescripcion = []
3916 3939
3917 3940 return datatype , dpath , startDate , endDate, startTime, endTime, online, delay, walk, set
3918 3941
3919 3942 def showPUinitView(self):
3920 3943 self.propertiesModel = treeModel()
3921 3944 self.propertiesModel.initPUVoltageView()
3922 3945 self.treeProjectProperties.setModel(self.propertiesModel)
3923 3946 self.treeProjectProperties.expandAll()
3924 3947 self.treeProjectProperties.allColumnsShowFocus()
3925 3948 self.treeProjectProperties.resizeColumnToContents(1)
3926 3949
3927 3950 def bufferVoltage(self, caracteristica, principal, description):
3928 3951 self.volProperCaracteristica.append(caracteristica)
3929 3952 self.volProperPrincipal.append(principal)
3930 3953 self.volProperDescripcion.append(description)
3931 3954 return self.volProperCaracteristica, self.volProperPrincipal, self.volProperDescripcion
3932 3955
3933 3956 def showPUVoltageProperties(self, puObj):
3934 3957
3935 3958
3936 3959 type = puObj.name
3937 3960 self.bufferVoltage("Processing Unit", "Type", type)
3938 3961
3939 3962 opObj = puObj.getOperationObj(name="setRadarFrequency")
3940 3963 if opObj == None:
3941 3964 radarfrequency = None
3942 3965 else:
3943 3966 value = opObj.getParameterValue(parameterName='frequency')
3944 3967 value = str(value)
3945 3968 radarfrequency = value
3946 3969 self.bufferVoltage("Processing Unit", "Radar Frequency", radarfrequency)
3947 3970
3948 3971 opObj = puObj.getOperationObj(name="selectChannels")
3949 3972 if opObj == None:
3950 3973 channel = None
3951 3974 else:
3952 3975 value = opObj.getParameterValue(parameterName='channelList')
3953 3976 value = str(value)[1:-1]
3954 3977 channel = value
3955 3978 self.bufferVoltage("Processing Unit", "Select Channel", channel)
3956 3979
3957 3980
3958 3981
3959 3982 opObj = puObj.getOperationObj(name="selectHeights")
3960 3983 if opObj == None:
3961 3984 heights = None
3962 3985 else:
3963 3986 value1 = int(opObj.getParameterValue(parameterName='minHei'))
3964 3987 value1 = str(value1)
3965 3988 value2 = int(opObj.getParameterValue(parameterName='maxHei'))
3966 3989 value2 = str(value2)
3967 3990 value = value1 + "," + value2
3968 3991 heights = value
3969 3992 self.bufferVoltage("Processing Unit", "Select Heights", heights)
3970 3993
3971 3994
3972 3995 opObj = puObj.getOperationObj(name="filterByHeights")
3973 3996 if opObj == None:
3974 3997 filter = None
3975 3998 else:
3976 3999 value = opObj.getParameterValue(parameterName='window')
3977 4000 value = str(value)
3978 4001 filter = value
3979 4002 self.bufferVoltage("Processing Unit", "Filter", filter)
3980 4003
3981 4004
3982 4005 opObj = puObj.getOperationObj(name="ProfileSelector")
3983 4006 if opObj == None:
3984 4007 profile = None
3985 4008 else:
3986 4009 for parmObj in opObj.getParameterObjList():
3987 4010 if parmObj.name == "profileRangeList":
3988 4011 value = opObj.getParameterValue(parameterName='profileRangeList')
3989 4012 value = str(value)[1:-1]
3990 4013 profile = value
3991 4014 self.bufferVoltage("Processing Unit", "Select Profile", profile)
3992 4015
3993 4016 if parmObj.name == "profileList":
3994 4017 value = opObj.getParameterValue(parameterName='profileList')
3995 4018 value = str(value)[1:-1]
3996 4019 profile = value
3997 4020 self.bufferVoltage("Processing Unit", "Select Profile", profile)
3998 4021
3999 4022 opObj = puObj.getOperationObj(name="CohInt")
4000 4023 if opObj == None:
4001 4024 coherentintegration = None
4002 4025 else:
4003 4026 value = opObj.getParameterValue(parameterName='n')
4004 4027 coherentintegration = value
4005 4028 self.bufferVoltage("Processing Unit", "Coherente Integration", coherentintegration)
4006 4029
4007 4030
4008 4031
4009 4032 opObj = puObj.getOperationObj(name="Decoder")
4010 4033 if opObj == None:
4011 4034 self.volOpCebDecodification.setCheckState(0)
4012 4035 code = None
4013 4036 mode = None
4014 4037 else:
4015 4038 self.volOpCebDecodification.setCheckState(QtCore.Qt.Checked)
4016 4039 try:
4017 4040 valueBaud = opObj.getParameterValue(parameterName='nBaud')
4018 4041 except:
4019 4042 status = "off"
4020 4043 try:
4021 4044 valueCode = opObj.getParameterValue(parameterName='nCode')
4022 4045 status = "on"
4023 4046 except:
4024 4047 status = "off"
4025 4048
4026 4049 if not status == "off":
4027 4050 if int(valueCode) == 1:
4028 4051 Comp = ""
4029 4052 else:
4030 4053 Comp = "+" + "Comp."
4031 4054 code = "Barker" + str(valueBaud) + str(Comp)
4032 4055 else:
4033 4056 code = "Default"
4034 4057 self.bufferVoltage("Decodification", "Code", code)
4035 4058
4036 4059 try:
4037 4060 value = opObj.getParameterValue(parameterName='mode')
4038 4061 status = "on"
4039 4062 except:
4040 4063 status = "off"
4041 4064
4042 4065 if not status == "off":
4043 4066 self.volOpComMode.setCurrentIndex(value)
4044 4067 if int(value) == 0:
4045 4068 mode = "Time"
4046 4069 else:
4047 4070 mode = "freq" + str(value)
4048 4071 else:
4049 4072 mode = "Default"
4050 4073 self.bufferVoltage("Decodification", "Mode", mode)
4051 4074
4052 4075 # graph
4053 4076 # opObj = puObj.getOperationObj(name='Plot')
4054 4077 opObj = puObj.getOperationObj(name='Scope')
4055 4078 if opObj == None:
4056 4079 self.volGraphCebshow.setCheckState(0)
4057 4080 operation = "Disabled"
4058 4081 channelList = None
4059 4082 freq_vel = None
4060 4083 heightsrange = None
4061 4084 else:
4062 4085 operation = 'Enabled'
4063 4086 self.bufferVoltage("Scope", "Operation", operation),
4064 4087 self.volGraphCebshow.setCheckState(QtCore.Qt.Checked)
4065 4088 value = opObj.getParameterObj(parameterName='channelList')
4066 4089 if value == None:
4067 4090 channelList = None
4068 4091 else:
4069 4092 value = opObj.getParameterValue(parameterName='channelList')
4070 4093 value = str(value)[1:-1]
4071 4094 channelList = value
4072 4095 self.bufferVoltage("Scope", "Channel List", channelList)
4073 4096
4074 4097
4075 4098 value1 = opObj.getParameterObj(parameterName='xmin')
4076 4099 if value1 == None:
4077 4100 freq_vel = None
4078 4101 else:
4079 4102 value1 = opObj.getParameterValue(parameterName='xmin')
4080 4103 value1 = str(value1)
4081 4104 value2 = opObj.getParameterObj(parameterName='xmax')
4082 4105 if value2 == None:
4083 4106 freq_vel = None
4084 4107 else:
4085 4108 value2 = opObj.getParameterValue(parameterName='xmax')
4086 4109 value2 = str(value2)
4087 4110 value = value1 + "," + value2
4088 4111 freq_vel = value
4089 4112 self.bufferVoltage("Scope", "Freq/Vel", freq_vel)
4090 4113
4091 4114 value1 = opObj.getParameterObj(parameterName='ymin')
4092 4115 if value1 == None:
4093 4116 heightsrange = None
4094 4117 else:
4095 4118 value1 = opObj.getParameterValue(parameterName='ymin')
4096 4119 value1 = str(value1)
4097 4120 value2 = opObj.getParameterObj(parameterName='ymax')
4098 4121 if value2 == None:
4099 4122 fheightsrange = None
4100 4123 else:
4101 4124 value2 = opObj.getParameterValue(parameterName='ymax')
4102 4125 value2 = str(value2)
4103 4126 value = value1 + "," + value2
4104 4127 heightsrange = value
4105 4128 self.bufferVoltage("Scope", "Height Range", heightsrange)
4106 4129
4107 4130 parmObj = opObj.getParameterObj(parameterName="figpath")
4108 4131 if parmObj == None:
4109 4132 self.volGraphCebSave.setCheckState(QtCore.Qt.Unchecked)
4110 4133 figpath = None
4111 4134 else:
4112 4135 self.volGraphCebSave.setCheckState(QtCore.Qt.Checked)
4113 4136 value = opObj.getParameterValue(parameterName='figpath')
4114 4137 figpath = value
4115 4138 self.bufferVoltage("Scope", "Path", figpath)
4116 4139 # outputVoltageWrite
4117 4140 opObj = puObj.getOperationObj(name='VoltageWriter')
4118 4141 if opObj == None:
4119 4142 pass
4120 4143 else:
4121 4144 operation = 'Enabled'
4122 4145 self.bufferVoltage("Output", "Operation", operation)
4123 4146 value = opObj.getParameterObj(parameterName='path')
4124 4147 if value == None:
4125 4148 path = None
4126 4149 else:
4127 4150 value = opObj.getParameterValue(parameterName='path')
4128 4151 path = str(value)
4129 4152 self.bufferVoltage("Output", "Path", path)
4130 4153 value = opObj.getParameterObj(parameterName='blocksPerFile')
4131 4154 if value == None:
4132 4155 blocksperfile = None
4133 4156 else:
4134 4157 value = opObj.getParameterValue(parameterName='blocksPerFile')
4135 4158 blocksperfile = str(value)
4136 4159 self.bufferVoltage("Output", "BlocksPerFile", blocksperfile)
4137 4160 value = opObj.getParameterObj(parameterName='profilesPerBlock')
4138 4161 if value == None:
4139 4162 profilesPerBlock = None
4140 4163 else:
4141 4164 value = opObj.getParameterValue(parameterName='profilesPerBlock')
4142 4165 profilesPerBlock = str(value)
4143 4166 self.bufferVoltage("Output", "ProfilesPerBlock", profilesPerBlock)
4144 4167
4145 4168
4146 4169 # set model PU Properties
4147 4170
4148 4171 self.propertiesModel = treeModel()
4149 4172 self.propertiesModel.showPUVoltageParms(self.volProperCaracteristica, self.volProperPrincipal, self.volProperDescripcion)
4150 4173 self.volProperCaracteristica = []
4151 4174 self.volProperPrincipal = []
4152 4175 self.volProperDescripcion = []
4153 4176 self.treeProjectProperties.setModel(self.propertiesModel)
4154 4177 self.treeProjectProperties.expandAll()
4155 4178 self.treeProjectProperties.allColumnsShowFocus()
4156 4179 self.treeProjectProperties.resizeColumnToContents(0)
4157 4180 self.treeProjectProperties.resizeColumnToContents(1)
4158 4181
4159 4182 def bufferSpectra(self, caracteristica, principal, description):
4160 4183 self.specProperCaracteristica.append(caracteristica)
4161 4184 self.specProperPrincipal.append(principal)
4162 4185 self.specProperDescripcion.append(description)
4163 4186 return self.specProperCaracteristica, self.specProperPrincipal, self.specProperDescripcion
4164 4187
4165 4188 def showPUSpectraProperties(self, puObj):
4166 4189 type = puObj.name
4167 4190 self.bufferSpectra("Processing Unit", "Type", type)
4168 4191
4169 4192 opObj = puObj.getOperationObj(name="setRadarFrequency")
4170 4193 if opObj == None:
4171 4194 radarfrequency = None
4172 4195 else:
4173 4196 value = opObj.getParameterValue(parameterName='frequency')
4174 4197 value = str(value)
4175 4198 radarfrequency = value
4176 4199 self.bufferSpectra("Processing Unit", "Radar Frequency", radarfrequency)
4177 4200
4178 4201
4179 4202 opObj = puObj.getOperationObj(name="run")
4180 4203 if opObj == None:
4181 4204 self.specOpnFFTpoints.clear()
4182 4205 self.specOpProfiles.clear()
4183 4206 self.specOpippFactor.clear()
4184 4207 else:
4185 4208 parmObj = opObj.getParameterObj(parameterName='nProfiles')
4186 4209 if parmObj == None:
4187 4210 nProfiles = None
4188 4211 else:
4189 4212 value = opObj.getParameterValue(parameterName='nProfiles')
4190 4213 nProfiles = value
4191 4214 self.bufferSpectra("Processing Unit", "nProfiles", nProfiles)
4192 4215
4193 4216 parmObj = opObj.getParameterObj(parameterName='nFFTPoints')
4194 4217 if parmObj == None:
4195 4218 nFFTPoints = None
4196 4219 else:
4197 4220 value = opObj.getParameterValue(parameterName='nFFTPoints')
4198 4221 nFFTPoints = value
4199 4222 self.bufferSpectra("Processing Unit", "nFFTpoints", nFFTPoints)
4200 4223
4201 4224 parmObj = opObj.getParameterObj(parameterName='ippFactor')
4202 4225 if parmObj == None:
4203 4226 ippFactor = None
4204 4227 else:
4205 4228 value = opObj.getParameterValue(parameterName='ippFactor')
4206 4229 ippFactor = value
4207 4230 self.bufferSpectra("Processing Unit", "Ipp Factor", ippFactor)
4208 4231
4209 4232
4210 4233 opObj = puObj.getOperationObj(name="run")
4211 4234 if opObj == None:
4212 4235 pairsList = None
4213 4236 else:
4214 4237 parm = opObj.getParameterObj(parameterName='pairsList')
4215 4238 if parm == None:
4216 4239 pairsList = None
4217 4240 else:
4218 4241 value = opObj.getParameterValue(parameterName='pairsList')
4219 4242 value = str(value)[1:-1]
4220 4243 pairsList = value
4221 4244 self.bufferSpectra("Processing Unit", "PairsList", pairsList)
4222 4245
4223 4246
4224 4247 opObj = puObj.getOperationObj(name="selectChannels")
4225 4248 if opObj == None:
4226 4249 channel = None
4227 4250 else:
4228 4251 value = opObj.getParameterValue(parameterName='channelList')
4229 4252 value = str(value)[1:-1]
4230 4253 channel = value
4231 4254 self.bufferSpectra("Processing Unit", "Channel", channel)
4232 4255
4233 4256 opObj = puObj.getOperationObj(name="selectHeights")
4234 4257 if opObj == None:
4235 4258 heights = None
4236 4259 else:
4237 4260 value1 = int(opObj.getParameterValue(parameterName='minHei'))
4238 4261 value1 = str(value1)
4239 4262 value2 = int(opObj.getParameterValue(parameterName='maxHei'))
4240 4263 value2 = str(value2)
4241 4264 value = value1 + "," + value2
4242 4265 heights = value
4243 4266 self.bufferSpectra("Processing Unit", "Heights", heights)
4244 4267
4245 4268 opObj = puObj.getOperationObj(name="IncohInt")
4246 4269 if opObj == None:
4247 4270 incoherentintegration = None
4248 4271 else:
4249 4272 try:
4250 4273 value = opObj.getParameterValue(parameterName='timeInterval')
4251 4274 except:
4252 4275 value = opObj.getParameterValue(parameterName='n')
4253 4276
4254 4277 value = float(value)
4255 4278 incoherentintegration = str(value)
4256 4279 self.bufferSpectra("Processing Unit", "Incoherent Integration", incoherentintegration)
4257 4280
4258 4281
4259 4282 opObj = puObj.getOperationObj(name="removeDC")
4260 4283 if opObj == None:
4261 4284 removeDC = None
4262 4285 else:
4263 4286 value = opObj.getParameterValue(parameterName='mode')
4264 4287 self.bufferSpectra("Processing Unit", "Remove DC", value)
4265 4288
4266 4289 opObj = puObj.getOperationObj(name="removeInterference")
4267 4290 if opObj == None:
4268 4291 removeInterference = None
4269 4292 else:
4270 4293 self.bufferSpectra("Processing Unit", "Remove Interference", "1")
4271 4294
4272 4295 opObj = puObj.getOperationObj(name="getNoise")
4273 4296 if opObj == None:
4274 4297 getNoise = None
4275 4298 else:
4276 4299 value1 = opObj.getParameterObj(parameterName='minHei')
4277 4300 if value1 == None:
4278 4301 getNoise = None
4279 4302 getNoise = "Default"
4280 4303 self.bufferSpectra("Processing Unit", "Get Noise", getNoise)
4281 4304
4282 4305 else:
4283 4306 value1 = opObj.getParameterValue(parameterName='minHei')
4284 4307 value1 = str(value1)
4285 4308 value2 = opObj.getParameterObj(parameterName='maxHei')
4286 4309 if value2 == None:
4287 4310 getNoise = None
4288 4311 value = value1
4289 4312 getNoise = value
4290 4313 self.bufferSpectra("Processing Unit", "Get Noise", getNoise)
4291 4314 else:
4292 4315 value2 = opObj.getParameterValue(parameterName='maxHei')
4293 4316 value2 = str(value2)
4294 4317 value3 = opObj.getParameterObj(parameterName='minVel')
4295 4318 if value3 == None:
4296 4319 getNoise = None
4297 4320 value = value1 + "," + value2
4298 4321 getNoise = value
4299 4322 self.bufferSpectra("Processing Unit", "Get Noise", getNoise)
4300 4323 else:
4301 4324 value3 = opObj.getParameterValue(parameterName='minVel')
4302 4325 value3 = str(value3)
4303 4326 value4 = opObj.getParameterObj(parameterName='maxVel')
4304 4327 if value4 == None:
4305 4328 getNoise = None
4306 4329 value = value1 + "," + value2 + ',' + value3
4307 4330 getNoise = value
4308 4331 self.bufferSpectra("Processing Unit", "Get Noise", getNoise)
4309 4332 else:
4310 4333 value4 = opObj.getParameterValue(parameterName='maxVel')
4311 4334 value4 = str(value4)
4312 4335 value = value1 + "," + value2 + ',' + value3 + ',' + value4
4313 4336 getNoise = value
4314 4337 self.bufferSpectra("Processing Unit", "Get Noise", getNoise)
4315 4338
4316 4339 opObj = puObj.getOperationObj(name='SpectraPlot')
4317 4340 # opObj = puObj.getOpObjfromParamValue(value="SpectraPlot")
4318 4341
4319 4342 if opObj == None:
4320 4343 operationSpectraPlot = "Disabled"
4321 4344 freq_vel = None
4322 4345 heightsrange = None
4323 4346 channelListSpectraPlot = None
4324 4347 else:
4325 4348 operationSpectraPlot = "Enable"
4326 4349 self.bufferSpectra("Spectra Plot", "Operation", operationSpectraPlot)
4327 4350 parmObj = opObj.getParameterObj(parameterName='channelList')
4328 4351 if parmObj == None:
4329 4352 channelListSpectraPlot = None
4330 4353 else:
4331 4354 value = opObj.getParameterValue(parameterName='channelList')
4332 4355 channelListSpectraPlot = str(value)[1:-1]
4333 4356 self.bufferSpectra("Spectra Plot", "Channel List", channelListSpectraPlot)
4334 4357
4335 4358
4336 4359 value1 = opObj.getParameterObj(parameterName='xmin')
4337 4360 if value1 == None:
4338 4361 freq_vel = None
4339 4362 else:
4340 4363 value1 = opObj.getParameterValue(parameterName='xmin')
4341 4364 value1 = str(value1)
4342 4365 value2 = opObj.getParameterObj(parameterName='xmax')
4343 4366 if value2 == None:
4344 4367 freq_vel = None
4345 4368 else:
4346 4369 value2 = opObj.getParameterValue(parameterName='xmax')
4347 4370 value2 = str(value2)
4348 4371 value = value1 + "," + value2
4349 4372 freq_vel = value
4350 4373 self.bufferSpectra("Spectra Plot", "Freq/Vel", freq_vel)
4351 4374
4352 4375 value1 = opObj.getParameterObj(parameterName='ymin')
4353 4376 if value1 == None:
4354 4377 heightsrange = None
4355 4378 else:
4356 4379 value1 = opObj.getParameterValue(parameterName='ymin')
4357 4380 value1 = str(value1)
4358 4381 value2 = opObj.getParameterObj(parameterName='ymax')
4359 4382 if value2 == None:
4360 4383 fheightsrange = None
4361 4384 else:
4362 4385 value2 = opObj.getParameterValue(parameterName='ymax')
4363 4386 value2 = str(value2)
4364 4387 value = value1 + "," + value2
4365 4388 heightsrange = value
4366 4389 self.bufferSpectra("Spectra Plot", "Height Range", heightsrange)
4367 4390
4368 4391 value1 = opObj.getParameterObj(parameterName='zmin')
4369 4392 if value1 == None:
4370 4393 dBrange = None
4371 4394 else:
4372 4395 value1 = opObj.getParameterValue(parameterName='zmin')
4373 4396 value1 = str(value1)
4374 4397 value2 = opObj.getParameterObj(parameterName='zmax')
4375 4398 if value2 == None:
4376 4399 fdBrange = None
4377 4400 else:
4378 4401 value2 = opObj.getParameterValue(parameterName='zmax')
4379 4402 value2 = str(value2)
4380 4403 value = value1 + "," + value2
4381 4404 dbrange = value
4382 4405 self.bufferSpectra("Spectra Plot", "dB Range", dbrange)
4383 4406
4384 4407 parmObj = opObj.getParameterObj(parameterName="figpath")
4385 4408 if parmObj == None:
4386 4409 path = None
4387 4410 else:
4388 4411 path = opObj.getParameterValue(parameterName='figpath')
4389 4412 self.bufferSpectra("Spectra Plot", "Save Path", path)
4390 4413
4391 4414 parmObj = opObj.getParameterObj(parameterName="ftp")
4392 4415 if parmObj == None:
4393 4416 status = 'disable'
4394 4417 else:
4395 4418 status = 'enable'
4396 4419 self.bufferSpectra("Spectra Plot", "FTP", status)
4397 4420 self.showWr_Period(puObj, opObj, nameplotop="Spectra Plot")
4398 self.saveFTPvalues(opObj)
4421 # self.saveFTPvalues(opObj)
4399 4422
4400 4423 opObj = puObj.getOperationObj(name='CrossSpectraPlot')
4401 4424 # opObj = puObj.getOpObjfromParamValue(value="CrossSpectraPlot")
4402 4425 if opObj == None:
4403 4426 self.specGraphCebCrossSpectraplot.setCheckState(0)
4404 4427 operationCrossSpectraPlot = "Disabled"
4405 4428 channelList = None
4406 4429 freq_vel = None
4407 4430 heightsrange = None
4408 4431 else:
4409 4432 operationCrossSpectraPlot = "Enable"
4410 4433 self.specGraphCebCrossSpectraplot.setCheckState(QtCore.Qt.Checked)
4411 4434 self.bufferSpectra("Cross Spectra Plot", "Operation", operationCrossSpectraPlot)
4412 4435
4413 4436 value1 = opObj.getParameterObj(parameterName='xmin')
4414 4437 if value1 == None:
4415 4438 freq_vel = None
4416 4439 else:
4417 4440 value1 = opObj.getParameterValue(parameterName='xmin')
4418 4441 value1 = str(value1)
4419 4442 value2 = opObj.getParameterObj(parameterName='xmax')
4420 4443 if value2 == None:
4421 4444 freq_vel = None
4422 4445 else:
4423 4446 value2 = opObj.getParameterValue(parameterName='xmax')
4424 4447 value2 = str(value2)
4425 4448 value = value1 + "," + value2
4426 4449 freq_vel = value
4427 4450 self.bufferSpectra("Cross Spectra Plot", "Freq/Vel", freq_vel)
4428 4451
4429 4452 value1 = opObj.getParameterObj(parameterName='ymin')
4430 4453 if value1 == None:
4431 4454 heightsrange = None
4432 4455 else:
4433 4456 value1 = opObj.getParameterValue(parameterName='ymin')
4434 4457 value1 = str(value1)
4435 4458 value2 = opObj.getParameterObj(parameterName='ymax')
4436 4459 if value2 == None:
4437 4460 fheightsrange = None
4438 4461 else:
4439 4462 value2 = opObj.getParameterValue(parameterName='ymax')
4440 4463 value2 = str(value2)
4441 4464 value = value1 + "," + value2
4442 4465 heightsrange = value
4443 4466 self.bufferSpectra("Cross Spectra Plot", "Height Range", heightsrange)
4444 4467
4445 4468 value1 = opObj.getParameterObj(parameterName='zmin')
4446 4469 if value1 == None:
4447 4470 dBrange = None
4448 4471 else:
4449 4472 value1 = opObj.getParameterValue(parameterName='zmin')
4450 4473 value1 = str(value1)
4451 4474 value2 = opObj.getParameterObj(parameterName='zmax')
4452 4475 if value2 == None:
4453 4476 fdBrange = None
4454 4477 else:
4455 4478 value2 = opObj.getParameterValue(parameterName='zmax')
4456 4479 value2 = str(value2)
4457 4480 value = value1 + "," + value2
4458 4481 dbrange = value
4459 4482 self.bufferSpectra("Cross Spectra Plot", "dB Range", dbrange)
4460 4483
4461 4484 parmObj = opObj.getParameterObj(parameterName="figpath")
4462 4485 if parmObj == None:
4463 4486 path = None
4464 4487 else:
4465 4488 path = opObj.getParameterValue(parameterName='figpath')
4466 4489 self.bufferSpectra("Cross Spectra Plot", "Save Path", path)
4467 4490
4468 4491 parmObj = opObj.getParameterObj(parameterName="ftp")
4469 4492 if parmObj == None:
4470 4493 status = 'disable'
4471 4494 else:
4472 4495 status = 'enable'
4473 4496 self.bufferSpectra("Cross Spectra Plot", "FTP", status)
4474 4497 self.showWr_Period(puObj, opObj, nameplotop="Cross Spectra Plot")
4475 self.saveFTPvalues(opObj)
4498 # self.saveFTPvalues(opObj)
4476 4499
4477 4500 opObj = puObj.getOperationObj(name='RTIPlot')
4478 4501 # opObj = puObj.getOpObjfromParamValue(value="RTIPlot")
4479 4502 if opObj == None:
4480 4503 self.specGraphCebRTIplot.setCheckState(0)
4481 4504 operationRTIPlot = "Disabled"
4482 4505 channelList = None
4483 4506 freq_vel = None
4484 4507 heightsrange = None
4485 4508 else:
4486 4509 operationRTIPlot = "Enable"
4487 4510 self.specGraphCebRTIplot.setCheckState(QtCore.Qt.Checked)
4488 4511 self.bufferSpectra("RTI Plot", "Operation", operationRTIPlot)
4489 4512 parmObj = opObj.getParameterObj(parameterName='channelList')
4490 4513 if parmObj == None:
4491 4514 channelListRTIPlot = None
4492 4515 else:
4493 4516 value = opObj.getParameterValue(parameterName='channelList')
4494 4517 channelListRTIPlot = str(value)[1:-1]
4495 4518 self.bufferSpectra("RTI Plot", "Channel List", channelListRTIPlot)
4496 4519
4497 4520
4498 4521 value1 = opObj.getParameterObj(parameterName='xmin')
4499 4522 if value1 == None:
4500 4523 freq_vel = None
4501 4524 else:
4502 4525 value1 = opObj.getParameterValue(parameterName='xmin')
4503 4526 value1 = str(value1)
4504 4527 value2 = opObj.getParameterObj(parameterName='xmax')
4505 4528 if value2 == None:
4506 4529 freq_vel = None
4507 4530 else:
4508 4531 value2 = opObj.getParameterValue(parameterName='xmax')
4509 4532 value2 = str(value2)
4510 4533 value = value1 + "," + value2
4511 4534 tmintmax = value
4512 4535 self.bufferSpectra("RTI Plot", "Tmin,Tmax", tmintmax)
4513 4536
4514 4537 parmObj = opObj.getParameterObj(parameterName='timerange')
4515 4538 if parmObj == None:
4516 4539 timerange = None
4517 4540 else:
4518 4541 value = opObj.getParameterValue(parameterName='timerange')
4519 4542 timerange = str(value)
4520 4543 self.bufferSpectra("RTI Plot", "Time Range", timerange)
4521 4544
4522 4545 value1 = opObj.getParameterObj(parameterName='ymin')
4523 4546 if value1 == None:
4524 4547 heightsrange = None
4525 4548 else:
4526 4549 value1 = opObj.getParameterValue(parameterName='ymin')
4527 4550 value1 = str(value1)
4528 4551 value2 = opObj.getParameterObj(parameterName='ymax')
4529 4552 if value2 == None:
4530 4553 fheightsrange = None
4531 4554 else:
4532 4555 value2 = opObj.getParameterValue(parameterName='ymax')
4533 4556 value2 = str(value2)
4534 4557 value = value1 + "," + value2
4535 4558 heightsrange = value
4536 4559 self.bufferSpectra("RTI Plot", "Height Range", heightsrange)
4537 4560
4538 4561 value1 = opObj.getParameterObj(parameterName='zmin')
4539 4562 if value1 == None:
4540 4563 dBrange = None
4541 4564 else:
4542 4565 value1 = opObj.getParameterValue(parameterName='zmin')
4543 4566 value1 = str(value1)
4544 4567 value2 = opObj.getParameterObj(parameterName='zmax')
4545 4568 if value2 == None:
4546 4569 fdBrange = None
4547 4570 else:
4548 4571 value2 = opObj.getParameterValue(parameterName='zmax')
4549 4572 value2 = str(value2)
4550 4573 value = value1 + "," + value2
4551 4574 dbrange = value
4552 4575 self.bufferSpectra("RTI Plot", "dB Range", dbrange)
4553 4576
4554 4577 parmObj = opObj.getParameterObj(parameterName="figpath")
4555 4578 if parmObj == None:
4556 4579 path = None
4557 4580 else:
4558 4581 path = opObj.getParameterValue(parameterName='figpath')
4559 4582 self.bufferSpectra("RTI Plot", "Save Path", path)
4560 4583
4561 4584 parmObj = opObj.getParameterObj(parameterName="ftp")
4562 4585 if parmObj == None:
4563 4586 status = 'disable'
4564 4587 else:
4565 4588 status = 'enable'
4566 4589 self.bufferSpectra("RTI Plot", "FTP", status)
4567 4590 self.showWr_Period(puObj, opObj, nameplotop="RTI Plot")
4568 self.saveFTPvalues(opObj)
4591 # self.saveFTPvalues(opObj)
4569 4592
4570 4593 opObj = puObj.getOperationObj(name='CoherenceMap')
4571 4594 # opObj = puObj.getOpObjfromParamValue(value="CoherenceMap")
4572 4595 if opObj == None:
4573 4596 self.specGraphCebCoherencmap.setCheckState(0)
4574 4597 operationCoherenceMap = "Disabled"
4575 4598 channelList = None
4576 4599 freq_vel = None
4577 4600 heightsrange = None
4578 4601 else:
4579 4602 operationCoherenceMap = "Enable"
4580 4603 self.specGraphCebCoherencmap.setCheckState(QtCore.Qt.Checked)
4581 4604 self.bufferSpectra("Coherence Map Plot", "Operation", operationCoherenceMap)
4582 4605 parmObj = opObj.getParameterObj(parameterName='channelList')
4583 4606 if parmObj == None:
4584 4607 channelListRTIPlot = None
4585 4608 else:
4586 4609 value = opObj.getParameterValue(parameterName='channelList')
4587 4610 channelListRTIPlot = str(value)[1:-1]
4588 4611 self.bufferSpectra("Coherence Map Plot", "Channel List", channelListRTIPlot)
4589 4612
4590 4613
4591 4614 value1 = opObj.getParameterObj(parameterName='xmin')
4592 4615 if value1 == None:
4593 4616 freq_vel = None
4594 4617 else:
4595 4618 value1 = opObj.getParameterValue(parameterName='xmin')
4596 4619 value1 = str(value1)
4597 4620 value2 = opObj.getParameterObj(parameterName='xmax')
4598 4621 if value2 == None:
4599 4622 freq_vel = None
4600 4623 else:
4601 4624 value2 = opObj.getParameterValue(parameterName='xmax')
4602 4625 value2 = str(value2)
4603 4626 value = value1 + "," + value2
4604 4627 tmintmax = value
4605 4628 self.bufferSpectra("Coherence Map Plot", "Tmin,Tmax", tmintmax)
4606 4629
4607 4630 parmObj = opObj.getParameterObj(parameterName='timerange')
4608 4631 if parmObj == None:
4609 4632 timerange = None
4610 4633 else:
4611 4634 value = opObj.getParameterValue(parameterName='timerange')
4612 4635 timerange = str(value)
4613 4636 self.bufferSpectra("Coherence Map Plot", "Time Range", timerange)
4614 4637
4615 4638 value1 = opObj.getParameterObj(parameterName='ymin')
4616 4639 if value1 == None:
4617 4640 heightsrange = None
4618 4641 else:
4619 4642 value1 = opObj.getParameterValue(parameterName='ymin')
4620 4643 value1 = str(value1)
4621 4644 value2 = opObj.getParameterObj(parameterName='ymax')
4622 4645 if value2 == None:
4623 4646 fheightsrange = None
4624 4647 else:
4625 4648 value2 = opObj.getParameterValue(parameterName='ymax')
4626 4649 value2 = str(value2)
4627 4650 value = value1 + "," + value2
4628 4651 heightsrange = value
4629 4652 self.bufferSpectra("Coherence Map Plot", "Height Range", heightsrange)
4630 4653
4631 4654 value1 = opObj.getParameterObj(parameterName='zmin')
4632 4655 if value1 == None:
4633 4656 dBrange = None
4634 4657 else:
4635 4658 value1 = opObj.getParameterValue(parameterName='zmin')
4636 4659 value1 = str(value1)
4637 4660 value2 = opObj.getParameterObj(parameterName='zmax')
4638 4661 if value2 == None:
4639 4662 fdBrange = None
4640 4663 else:
4641 4664 value2 = opObj.getParameterValue(parameterName='zmax')
4642 4665 value2 = str(value2)
4643 4666 value = value1 + "," + value2
4644 4667 dbrange = value
4645 4668 self.bufferSpectra("Coherence Map Plot", "Magnitud", dbrange)
4646 4669
4647 4670 parmObj = opObj.getParameterObj(parameterName="figpath")
4648 4671 if parmObj == None:
4649 4672 path = None
4650 4673 else:
4651 4674 path = opObj.getParameterValue(parameterName='figpath')
4652 4675 self.bufferSpectra("Coherence Map Plot", "Save Path", path)
4653 4676
4654 4677 parmObj = opObj.getParameterObj(parameterName="ftp")
4655 4678 if parmObj == None:
4656 4679 status = 'disable'
4657 4680 else:
4658 4681 status = 'enable'
4659 4682 self.bufferSpectra("Coherence Map Plot", "FTP", status)
4660 4683 self.showWr_Period(puObj, opObj, nameplotop="Coherence Map Plot")
4661 self.saveFTPvalues(opObj)
4684 # self.saveFTPvalues(opObj)
4662 4685
4663 4686
4664 4687 opObj = puObj.getOperationObj(name='PowerProfilePlot')
4665 4688 # opObj = puObj.getOpObjfromParamValue(value="PowerProfilePlot")
4666 4689 if opObj == None:
4667 4690 self.specGraphPowerprofile.setCheckState(0)
4668 4691 operationPowerProfilePlot = "Disabled"
4669 4692 channelList = None
4670 4693 freq_vel = None
4671 4694 heightsrange = None
4672 4695 else:
4673 4696 operationPowerProfilePlot = "Enable"
4674 4697 self.specGraphPowerprofile.setCheckState(QtCore.Qt.Checked)
4675 4698 self.bufferSpectra("PowerProfile Plot", "Operation", operationPowerProfilePlot)
4676 4699 parmObj = opObj.getParameterObj(parameterName='channelList')
4677 4700 if parmObj == None:
4678 4701 channelListSpectraPlot = None
4679 4702 else:
4680 4703 value = opObj.getParameterValue(parameterName='channelList')
4681 4704 channelListSpectraPlot = str(value)[1:-1]
4682 4705 self.bufferSpectra("PowerProfile Plot", "Channel List", channelListSpectraPlot)
4683 4706
4684 4707
4685 4708 value1 = opObj.getParameterObj(parameterName='xmin')
4686 4709 if value1 == None:
4687 4710 freq_vel = None
4688 4711 else:
4689 4712 value1 = opObj.getParameterValue(parameterName='xmin')
4690 4713 value1 = str(value1)
4691 4714 value2 = opObj.getParameterObj(parameterName='xmax')
4692 4715 if value2 == None:
4693 4716 freq_vel = None
4694 4717 else:
4695 4718 value2 = opObj.getParameterValue(parameterName='xmax')
4696 4719 value2 = str(value2)
4697 4720 value = value1 + "," + value2
4698 4721 dbrange = value
4699 4722 self.bufferSpectra("PowerProfile Plot", "dbRange", dbrange)
4700 4723
4701 4724 value1 = opObj.getParameterObj(parameterName='ymin')
4702 4725 if value1 == None:
4703 4726 heightsrange = None
4704 4727 else:
4705 4728 value1 = opObj.getParameterValue(parameterName='ymin')
4706 4729 value1 = str(value1)
4707 4730 value2 = opObj.getParameterObj(parameterName='ymax')
4708 4731 if value2 == None:
4709 4732 fheightsrange = None
4710 4733 else:
4711 4734 value2 = opObj.getParameterValue(parameterName='ymax')
4712 4735 value2 = str(value2)
4713 4736 value = value1 + "," + value2
4714 4737 heightsrange = value
4715 4738 self.bufferSpectra("PowerProfile Plot", "Height Range", heightsrange)
4716 4739
4717 4740
4718 4741 parmObj = opObj.getParameterObj(parameterName="figpath")
4719 4742 if parmObj == None:
4720 4743 path = None
4721 4744 else:
4722 4745 path = opObj.getParameterValue(parameterName='figpath')
4723 4746 self.bufferSpectra("PowerProfile Plot", "Save Path", path)
4724 4747
4725 4748 parmObj = opObj.getParameterObj(parameterName="ftp")
4726 4749 if parmObj == None:
4727 4750 status = 'disable'
4728 4751 else:
4729 4752 status = 'enable'
4730 4753 self.bufferSpectra("PowerProfile Plot", "FTP", status)
4731 4754 self.showWr_Period(puObj, opObj, nameplotop="PowerProfile Plot")
4732 self.saveFTPvalues(opObj)
4755 # self.saveFTPvalues(opObj)
4733 4756
4734 4757 # noise
4735 4758 opObj = puObj.getOperationObj(name='Noise')
4736 4759 # opObj = puObj.getOpObjfromParamValue(value="Noise")
4737 4760 if opObj == None:
4738 4761 self.specGraphCebRTInoise.setCheckState(0)
4739 4762 operationRTINoise = "Disabled"
4740 4763 channelList = None
4741 4764 freq_vel = None
4742 4765 dbRange = None
4743 4766 else:
4744 4767 operationRTINoise = "Enable"
4745 4768 self.specGraphCebRTInoise.setCheckState(QtCore.Qt.Checked)
4746 4769 self.bufferSpectra("Noise Plot", "Operation", operationRTINoise)
4747 4770 parmObj = opObj.getParameterObj(parameterName='channelList')
4748 4771 if parmObj == None:
4749 4772 channelListRTINoise = None
4750 4773 else:
4751 4774 value = opObj.getParameterValue(parameterName='channelList')
4752 4775 channelListRTINoise = str(value)[1:-1]
4753 4776 self.bufferSpectra("Noise Plot", "Channel List", channelListRTINoise)
4754 4777
4755 4778
4756 4779 value1 = opObj.getParameterObj(parameterName='xmin')
4757 4780 if value1 == None:
4758 4781 freq_vel = None
4759 4782 else:
4760 4783 value1 = opObj.getParameterValue(parameterName='xmin')
4761 4784 value1 = str(value1)
4762 4785 value2 = opObj.getParameterObj(parameterName='xmax')
4763 4786 if value2 == None:
4764 4787 freq_vel = None
4765 4788 else:
4766 4789 value2 = opObj.getParameterValue(parameterName='xmax')
4767 4790 value2 = str(value2)
4768 4791 value = value1 + "," + value2
4769 4792 tmintmax = value
4770 4793 self.bufferSpectra("Noise Plot", "Tmin,Tmax", tmintmax)
4771 4794
4772 4795 parmObj = opObj.getParameterObj(parameterName='timerange')
4773 4796 if parmObj == None:
4774 4797 timerange = None
4775 4798 else:
4776 4799 value = opObj.getParameterValue(parameterName='timerange')
4777 4800 timerange = str(value)
4778 4801 self.bufferSpectra("Noise Plot", "Time Range", timerange)
4779 4802
4780 4803
4781 4804
4782 4805 value1 = opObj.getParameterObj(parameterName='ymin')
4783 4806 if value1 == None:
4784 4807 DBrange = None
4785 4808 else:
4786 4809 value1 = opObj.getParameterValue(parameterName='ymin')
4787 4810 value1 = str(value1)
4788 4811 value2 = opObj.getParameterObj(parameterName='ymax')
4789 4812 if value2 == None:
4790 4813 fdBrange = None
4791 4814 else:
4792 4815 value2 = opObj.getParameterValue(parameterName='ymax')
4793 4816 value2 = str(value2)
4794 4817 value = value1 + "," + value2
4795 4818 dBrange = value
4796 4819 self.bufferSpectra("Noise Plot", "dB Range", dBrange)
4797 4820
4798 4821 parmObj = opObj.getParameterObj(parameterName="figpath")
4799 4822 if parmObj == None:
4800 4823 path = None
4801 4824 else:
4802 4825 path = opObj.getParameterValue(parameterName='figpath')
4803 4826 self.bufferSpectra("Noise Plot", "Save Path", path)
4804 4827
4805 4828 parmObj = opObj.getParameterObj(parameterName="ftp")
4806 4829 if parmObj == None:
4807 4830 status = 'disable'
4808 4831 else:
4809 4832 status = 'enable'
4810 4833 self.bufferSpectra("Noise Plot", "FTP", status)
4811 4834 self.showWr_Period(puObj, opObj, nameplotop="Noise Plot")
4812 self.saveFTPvalues(opObj)
4835 # self.saveFTPvalues(opObj)
4813 4836
4814 if self.temporalFTP.create:
4815 self.bufferSpectra("FTP", "Server", self.temporalFTP.server)
4816 self.bufferSpectra("FTP", "Folder", self.temporalFTP.folder)
4817 self.bufferSpectra("FTP", "Username", self.temporalFTP.username)
4818 self.bufferSpectra("FTP", "Password", '*'*len(self.temporalFTP.password))
4819 self.bufferSpectra("FTP", "Ftp_wei", self.temporalFTP.ftp_wei)
4820 self.bufferSpectra("FTP", "Exp_code", self.temporalFTP.exp_code)
4821 self.bufferSpectra("FTP", "Sub_exp_code", self.temporalFTP.sub_exp_code)
4822 self.bufferSpectra("FTP", "Plot_pos", self.temporalFTP.plot_pos)
4823 # self.temporalFTP.create=False
4824 self.temporalFTP.withoutconfig = False
4825
4826 if self.temporalFTP.withoutconfig:
4827 self.bufferSpectra("FTP", "Server", self.temporalFTP.server)
4828 self.bufferSpectra("FTP", "Folder", self.temporalFTP.folder)
4829 self.bufferSpectra("FTP", "Username", self.temporalFTP.username)
4830 self.bufferSpectra("FTP", "Password", '*'*len(self.temporalFTP.password))
4831 self.bufferSpectra("FTP", "Ftp_wei", self.temporalFTP.ftp_wei)
4832 self.bufferSpectra("FTP", "Exp_code", self.temporalFTP.exp_code)
4833 self.bufferSpectra("FTP", "Sub_exp_code", self.temporalFTP.sub_exp_code)
4834 self.bufferSpectra("FTP", "Plot_pos", self.temporalFTP.plot_pos)
4835 self.temporalFTP.withoutconfig = False
4836
4837 ####
4838 self.temporalFTP.create = False
4837 projectObj = self.getSelectedProjectObj()
4838 ftpProcUnitConfObj = projectObj.getProcUnitObjByName(name="SendToServer")
4839
4840 if ftpProcUnitConfObj:
4841
4842 opObj = ftpProcUnitConfObj.getOperationObj(name='run')
4843
4844 server = opObj.getParameterValue(parameterName='server')
4845 folder = opObj.getParameterValue(parameterName='remotefolder')
4846 username = opObj.getParameterValue(parameterName='username')
4847 password = opObj.getParameterValue(parameterName='password')
4848 ftp_wei = opObj.getParameterValue(parameterName='ftp_wei')
4849 exp_code = opObj.getParameterValue(parameterName='exp_code')
4850 sub_exp_code = opObj.getParameterValue(parameterName='sub_exp_code')
4851 plot_pos = opObj.getParameterValue(parameterName='plot_pos')
4852 localfolder = opObj.getParameterValue(parameterName='localfolder')
4853
4854 self.bufferSpectra("FTP", "Server", server)
4855 self.bufferSpectra("FTP", "Remote folder", folder)
4856 self.bufferSpectra("FTP", "Local folder", localfolder)
4857 self.bufferSpectra("FTP", "Username", username)
4858 self.bufferSpectra("FTP", "Password", '*'*len(password))
4859 self.bufferSpectra("FTP", "Ftp_wei", ftp_wei)
4860 self.bufferSpectra("FTP", "Exp_code", exp_code)
4861 self.bufferSpectra("FTP", "Sub_exp_code", sub_exp_code)
4862 self.bufferSpectra("FTP", "Plot_pos", plot_pos)
4839 4863
4840 4864 # outputSpectraWrite
4841 4865 opObj = puObj.getOperationObj(name='SpectraWriter')
4842 4866 if opObj == None:
4843 4867 pass
4844 4868 else:
4845 4869 operation = 'Enabled'
4846 4870 self.bufferSpectra("Output", "Operation", operation)
4847 4871 value = opObj.getParameterObj(parameterName='path')
4848 4872 if value == None:
4849 4873 path = None
4850 4874 else:
4851 4875 value = opObj.getParameterValue(parameterName='path')
4852 4876 path = str(value)
4853 4877 self.bufferSpectra("Output", "Path", path)
4854 4878 value = opObj.getParameterObj(parameterName='blocksPerFile')
4855 4879 if value == None:
4856 4880 blocksperfile = None
4857 4881 else:
4858 4882 value = opObj.getParameterValue(parameterName='blocksPerFile')
4859 4883 blocksperfile = str(value)
4860 4884 self.bufferSpectra("Output", "BlocksPerFile", blocksperfile)
4861 4885 value = opObj.getParameterObj(parameterName='profilesPerBlock')
4862 4886 if value == None:
4863 4887 profilesPerBlock = None
4864 4888 else:
4865 4889 value = opObj.getParameterValue(parameterName='profilesPerBlock')
4866 4890 profilesPerBlock = str(value)
4867 4891 self.bufferSpectra("Output", "ProfilesPerBlock", profilesPerBlock)
4868 4892
4869 4893 # set model PU Properties
4870 4894
4871 4895 self.propertiesModel = treeModel()
4872 4896 self.propertiesModel.showPUSpectraParms(self.specProperCaracteristica, self.specProperPrincipal, self.specProperDescripcion)
4873 4897
4874 4898 self.treeProjectProperties.setModel(self.propertiesModel)
4875 4899 self.treeProjectProperties.expandAll()
4876 4900 self.treeProjectProperties.allColumnsShowFocus()
4877 4901 self.treeProjectProperties.resizeColumnToContents(0)
4878 4902 self.treeProjectProperties.resizeColumnToContents(1)
4879 4903
4880 4904 self.specProperCaracteristica = []
4881 4905 self.specProperDescripcion = []
4882 4906 self.specProperPrincipal = []
4883 4907
4884 4908
4885 4909 def bufferSpectraHeis(self, caracteristica, principal, description):
4886 4910 self.specHeisProperCaracteristica.append(caracteristica)
4887 4911 self.specHeisProperPrincipal.append(principal)
4888 4912 self.specHeisProperDescripcion.append(description)
4889 4913 return self.specHeisProperCaracteristica, self.specHeisProperPrincipal, self.specHeisProperDescripcion
4890 4914
4891 4915
4892 4916 def showPUSpectraHeisProperties(self, puObj):
4893 4917 type = puObj.name
4894 4918 self.bufferSpectraHeis("Processing Unit", "Type", type)
4895 4919
4896 4920 opObj = puObj.getOperationObj(name="IncohInt4SpectraHeis")
4897 4921 if opObj == None:
4898 4922 incoherentintegration = None
4899 4923 else:
4900 4924 value = opObj.getParameterValue(parameterName='timeInterval')
4901 4925 value = float(value)
4902 4926 incoherentintegration = str(value)
4903 4927 self.bufferSpectraHeis("Processing Unit", "Incoherent Integration", incoherentintegration)
4904 4928 # spectraheis graph
4905 4929 opObj = puObj.getOperationObj(name='SpectraHeisScope')
4906 4930 # opObj = puObj.getOpObjfromParamValue(value="SpectraHeisScope")
4907 4931 if opObj == None:
4908 4932 self.specHeisGraphCebSpectraplot.setCheckState(0)
4909 4933 operationSpectraHeisPlot = "Disabled"
4910 4934 xmin_xmax = None
4911 4935 ymin_ymax = None
4912 4936 channelListSpectraPlot = None
4913 4937 else:
4914 4938 operationSpectraHeisPlot = "Enable"
4915 4939 self.specHeisGraphCebSpectraplot.setCheckState(QtCore.Qt.Checked)
4916 4940 self.bufferSpectraHeis("SpectraHeis Plot", "Operation", operationSpectraHeisPlot)
4917 4941 parmObj = opObj.getParameterObj(parameterName='channelList')
4918 4942 if parmObj == None:
4919 4943 channelListSpectraPlot = None
4920 4944 else:
4921 4945 value = opObj.getParameterValue(parameterName='channelList')
4922 4946 channelListSpectraPlot = str(value)[1:-1]
4923 4947 self.bufferSpectraHeis("SpectraHeis Plot", "Channel List", channelListSpectraPlot)
4924 4948
4925 4949
4926 4950 value1 = opObj.getParameterObj(parameterName='xmin')
4927 4951 if value1 == None:
4928 4952 xmin_xmax = None
4929 4953 else:
4930 4954 value1 = opObj.getParameterValue(parameterName='xmin')
4931 4955 value1 = str(value1)
4932 4956 value2 = opObj.getParameterObj(parameterName='xmax')
4933 4957 if value2 == None:
4934 4958 xmin_xmax = None
4935 4959 else:
4936 4960 value2 = opObj.getParameterValue(parameterName='xmax')
4937 4961 value2 = str(value2)
4938 4962 value = value1 + "," + value2
4939 4963 xmin_xmax = value
4940 4964 self.bufferSpectraHeis("SpectraHeis Plot", "Xmin-Xmax", xmin_xmax)
4941 4965
4942 4966 value1 = opObj.getParameterObj(parameterName='ymin')
4943 4967 if value1 == None:
4944 4968 ymin_ymax = None
4945 4969 else:
4946 4970 value1 = opObj.getParameterValue(parameterName='ymin')
4947 4971 value1 = str(value1)
4948 4972 value2 = opObj.getParameterObj(parameterName='ymax')
4949 4973 if value2 == None:
4950 4974 ymin_ymax = None
4951 4975 else:
4952 4976 value2 = opObj.getParameterValue(parameterName='ymax')
4953 4977 value2 = str(value2)
4954 4978 value = value1 + "," + value2
4955 4979 ymin_ymax = value
4956 4980 self.bufferSpectraHeis("SpectraHeis Plot", "Ymin-Ymax", ymin_ymax)
4957 4981
4958 4982 parmObj = opObj.getParameterObj(parameterName="figpath")
4959 4983 if parmObj == None:
4960 4984 path = None
4961 4985 else:
4962 4986 path = opObj.getParameterValue(parameterName='figpath')
4963 4987 self.bufferSpectraHeis("SpectraHeis Plot", "Save Path", path)
4964 4988
4965 4989 parmObj = opObj.getParameterObj(parameterName="ftp")
4966 4990 if parmObj == None:
4967 4991 status = 'disable'
4968 4992 else:
4969 4993 status = 'enable'
4970 4994 self.bufferSpectraHeis("SpectraHeis Plot", "FTP", status)
4971 4995 self.showWr_Period(puObj, opObj, nameplotop="SpectraHeis Plot")
4972 self.saveFTPvalues(opObj)
4996 # self.saveFTPvalues(opObj)
4973 4997
4974 4998 opObj = puObj.getOperationObj(name='RTIfromSpectraHeis')
4975 4999 # opObj = puObj.getOpObjfromParamValue(value="RTIfromSpectraHeis")
4976 5000 if opObj == None:
4977 5001 self.specHeisGraphCebRTIplot.setCheckState(0)
4978 5002 operationRTIPlot = "Disabled"
4979 5003 channelList = None
4980 5004 freq_vel = None
4981 5005 heightsrange = None
4982 5006 else:
4983 5007 operationRTIPlot = "Enable"
4984 5008 self.specHeisGraphCebRTIplot.setCheckState(QtCore.Qt.Checked)
4985 5009 self.bufferSpectraHeis("RTIHeis Plot", "Operation", operationRTIPlot)
4986 5010 parmObj = opObj.getParameterObj(parameterName='channelList')
4987 5011 if parmObj == None:
4988 5012 channelListRTIPlot = None
4989 5013 else:
4990 5014 value = opObj.getParameterValue(parameterName='channelList')
4991 5015 channelListRTIPlot = str(value)[1:-1]
4992 5016 self.bufferSpectraHeis("RTIHeis Plot", "Channel List", channelListRTIPlot)
4993 5017
4994 5018
4995 5019 value1 = opObj.getParameterObj(parameterName='xmin')
4996 5020 if value1 == None:
4997 5021 freq_vel = None
4998 5022 else:
4999 5023 value1 = opObj.getParameterValue(parameterName='xmin')
5000 5024 value1 = str(value1)
5001 5025 value2 = opObj.getParameterObj(parameterName='xmax')
5002 5026 if value2 == None:
5003 5027 freq_vel = None
5004 5028 else:
5005 5029 value2 = opObj.getParameterValue(parameterName='xmax')
5006 5030 value2 = str(value2)
5007 5031 value = value1 + "," + value2
5008 5032 tmintmax = value
5009 5033 self.bufferSpectraHeis("RTIHeis Plot", "Tmin,Tmax", tmintmax)
5010 5034
5011 5035 parmObj = opObj.getParameterObj(parameterName='timerange')
5012 5036 if parmObj == None:
5013 5037 timerange = None
5014 5038 else:
5015 5039 value = opObj.getParameterValue(parameterName='timerange')
5016 5040 timerange = str(value)
5017 5041 self.bufferSpectraHeis("RTIHeis Plot", "Time Range", timerange)
5018 5042
5019 5043 value1 = opObj.getParameterObj(parameterName='ymin')
5020 5044 if value1 == None:
5021 5045 heightsrange = None
5022 5046 else:
5023 5047 value1 = opObj.getParameterValue(parameterName='ymin')
5024 5048 value1 = str(value1)
5025 5049 value2 = opObj.getParameterObj(parameterName='ymax')
5026 5050 if value2 == None:
5027 5051 fheightsrange = None
5028 5052 else:
5029 5053 value2 = opObj.getParameterValue(parameterName='ymax')
5030 5054 value2 = str(value2)
5031 5055 value = value1 + "," + value2
5032 5056 heightsrange = value
5033 5057 self.bufferSpectraHeis("RTIHeis Plot", "Ymin-Ymax", heightsrange)
5034 5058
5035 5059 parmObj = opObj.getParameterObj(parameterName="figpath")
5036 5060 if parmObj == None:
5037 5061 path = None
5038 5062 else:
5039 5063 path = opObj.getParameterValue(parameterName='figpath')
5040 5064 self.bufferSpectraHeis("RTIHeis Plot", "Save Path", path)
5041 5065
5042 5066 parmObj = opObj.getParameterObj(parameterName="ftp")
5043 5067 if parmObj == None:
5044 5068 status = 'disable'
5045 5069 else:
5046 5070 status = 'enable'
5047 5071 self.bufferSpectraHeis("RTIHeis Plot", "FTP", status)
5048 5072 self.showWr_Period(puObj, opObj, nameplotop="RTIHeis Plot")
5049 self.saveFTPvalues(opObj)
5073 # self.saveFTPvalues(opObj)
5050 5074
5051 if self.temporalFTP.create:
5052 self.bufferSpectraHeis("FTP", "Server", self.temporalFTP.server)
5053 self.bufferSpectraHeis("FTP", "Folder", self.temporalFTP.folder)
5054 self.bufferSpectraHeis("FTP", "Username", self.temporalFTP.username)
5055 self.bufferSpectraHeis("FTP", "Password", self.temporalFTP.password)
5056 self.bufferSpectraHeis("FTP", "Ftp_wei", self.temporalFTP.ftp_wei)
5057 self.bufferSpectraHeis("FTP", "Exp_code", self.temporalFTP.exp_code)
5058 self.bufferSpectraHeis("FTP", "Sub_exp_code", self.temporalFTP.sub_exp_code)
5059 self.bufferSpectraHeis("FTP", "Plot_pos", self.temporalFTP.plot_pos)
5060 # self.temporalFTP.create=False
5061 self.temporalFTP.withoutconfig = False
5062
5063 if self.temporalFTP.withoutconfig:
5064 self.bufferSpectraHeis("FTP", "Server", self.temporalFTP.server)
5065 self.bufferSpectraHeis("FTP", "Folder", self.temporalFTP.folder)
5066 self.bufferSpectraHeis("FTP", "Username", self.temporalFTP.username)
5067 self.bufferSpectraHeis("FTP", "Password", self.temporalFTP.password)
5068 self.bufferSpectraHeis("FTP", "Ftp_wei", self.temporalFTP.ftp_wei)
5069 self.bufferSpectraHeis("FTP", "Exp_code", self.temporalFTP.exp_code)
5070 self.bufferSpectraHeis("FTP", "Sub_exp_code", self.temporalFTP.sub_exp_code)
5071 self.bufferSpectraHeis("FTP", "Plot_pos", self.temporalFTP.plot_pos)
5072 self.temporalFTP.withoutconfig = False
5073
5074 ####
5075 self.temporalFTP.create = False
5075 projectObj = self.getSelectedProjectObj()
5076 ftpProcUnitConfObj = projectObj.getProcUnitObjByName(name="SendToServer")
5077
5078 if ftpProcUnitConfObj:
5079
5080 opObj = ftpProcUnitConfObj.getOperationObj(name='run')
5081
5082 server = opObj.getParameterValue(parameterName='server')
5083 folder = opObj.getParameterValue(parameterName='folder')
5084 username = opObj.getParameterValue(parameterName='username')
5085 password = opObj.getParameterValue(parameterName='password')
5086 ftp_wei = opObj.getParameterValue(parameterName='ftp_wei')
5087 exp_code = opObj.getParameterValue(parameterName='exp_code')
5088 sub_exp_code = opObj.getParameterValue(parameterName='sub_exp_code')
5089 plot_pos = opObj.getParameterValue(parameterName='plot_pos')
5090 localfolder = opObj.getParameterValue(parameterName='localfolder')
5091
5092 self.bufferSpectraHeis("FTP", "Server", server)
5093 self.bufferSpectraHeis("FTP", "Remote folder", folder)
5094 self.bufferSpectraHeis("FTP", "Local folder", localfolder)
5095 self.bufferSpectraHeis("FTP", "Username", username)
5096 self.bufferSpectraHeis("FTP", "Password", '*'*len(password))
5097 self.bufferSpectraHeis("FTP", "Ftp_wei", ftp_wei)
5098 self.bufferSpectraHeis("FTP", "Exp_code", exp_code)
5099 self.bufferSpectraHeis("FTP", "Sub_exp_code", sub_exp_code)
5100 self.bufferSpectraHeis("FTP", "Plot_pos", plot_pos)
5076 5101
5077 5102 # outputSpectraHeisWrite
5078 5103 opObj = puObj.getOperationObj(name='FitsWriter')
5079 5104 if opObj == None:
5080 5105 pass
5081 5106 else:
5082 5107 operation = 'Enabled'
5083 5108 self.bufferSpectraHeis("Output", "Operation", operation)
5084 5109 value = opObj.getParameterObj(parameterName='path')
5085 5110 if value == None:
5086 5111 path = None
5087 5112 else:
5088 5113 value = opObj.getParameterValue(parameterName='path')
5089 5114 path = str(value)
5090 5115 self.bufferSpectraHeis("Output", "Path", path)
5091 5116 value = opObj.getParameterObj(parameterName='dataBlocksPerFile')
5092 5117 if value == None:
5093 5118 blocksperfile = None
5094 5119 else:
5095 5120 value = opObj.getParameterValue(parameterName='dataBlocksPerFile')
5096 5121 blocksperfile = str(value)
5097 5122 self.bufferSpectraHeis("Output", "BlocksPerFile", blocksperfile)
5098 5123 value = opObj.getParameterObj(parameterName='metadatafile')
5099 5124 if value == None:
5100 5125 metadata = None
5101 5126 else:
5102 5127 value = opObj.getParameterValue(parameterName='metadatafile')
5103 5128 metadata = str(value)
5104 5129 self.bufferSpectraHeis("Output", "Metadata", metadata)
5105 5130
5106 5131 # set model PU Properties
5107 5132
5108 5133 self.propertiesModel = treeModel()
5109 5134 self.propertiesModel.showPUSpectraHeisParms(self.specHeisProperCaracteristica, self.specHeisProperPrincipal, self.specHeisProperDescripcion)
5110 5135
5111 5136 self.treeProjectProperties.setModel(self.propertiesModel)
5112 5137 self.treeProjectProperties.expandAll()
5113 5138 self.treeProjectProperties.allColumnsShowFocus()
5114 5139 self.treeProjectProperties.resizeColumnToContents(0)
5115 5140 self.treeProjectProperties.resizeColumnToContents(1)
5116 5141
5117 5142 self.specHeisProperCaracteristica = []
5118 5143 self.specHeisProperDescripcion = []
5119 5144 self.specHeisProperPrincipal = []
5120 5145
5121 5146
5122 5147 def showWr_Period(self, puObj, opObj, nameplotop):
5123 5148 parmObj = opObj.getParameterObj(parameterName='wr_period')
5124 5149 if parmObj == None:
5125 5150 wr_period = None
5126 5151 else:
5127 5152 value = opObj.getParameterValue(parameterName='wr_period')
5128 5153 wr_period = str(value)
5129 5154 if puObj.datatype == "Spectra":
5130 5155 self.bufferSpectra(nameplotop, "wr_period", wr_period)
5131 5156 if puObj.datatype == "SpectraHeis":
5132 5157 self.bufferSpectraHeis(nameplotop, "wr_period", wr_period)
5133 5158
5134 5159 def saveFTPvalues(self, opObj):
5160
5135 5161 parmObj = opObj.getParameterObj(parameterName="server")
5136 5162 if parmObj == None:
5137 5163 server = 'jro-app.igp.gob.pe'
5138 5164 else:
5139 5165 server = opObj.getParameterValue(parameterName='server')
5140 5166
5141 5167 parmObj = opObj.getParameterObj(parameterName="folder")
5142 5168 if parmObj == None:
5143 5169 folder = '/home/wmaster/graficos'
5144 5170 else:
5145 5171 folder = opObj.getParameterValue(parameterName='folder')
5146 5172
5147 5173 parmObj = opObj.getParameterObj(parameterName="username")
5148 5174 if parmObj == None:
5149 5175 username = 'wmaster'
5150 5176 else:
5151 5177 username = opObj.getParameterValue(parameterName='username')
5152 5178
5153 5179 parmObj = opObj.getParameterObj(parameterName="password")
5154 5180 if parmObj == None:
5155 5181 password = 'mst2010vhf'
5156 5182 else:
5157 5183 password = opObj.getParameterValue(parameterName='password')
5158 5184
5159 5185 parmObj = opObj.getParameterObj(parameterName="ftp_wei")
5160 5186 if parmObj == None:
5161 5187 ftp_wei = '0'
5162 5188 else:
5163 5189 ftp_wei = opObj.getParameterValue(parameterName='ftp_wei')
5164 5190
5165 5191 parmObj = opObj.getParameterObj(parameterName="exp_code")
5166 5192 if parmObj == None:
5167 5193 exp_code = '0'
5168 5194 else:
5169 5195 exp_code = opObj.getParameterValue(parameterName='exp_code')
5170 5196
5171 5197 parmObj = opObj.getParameterObj(parameterName="sub_exp_code")
5172 5198 if parmObj == None:
5173 5199 sub_exp_code = '0'
5174 5200 else:
5175 5201 sub_exp_code = opObj.getParameterValue(parameterName='sub_exp_code')
5176 5202
5177 5203 parmObj = opObj.getParameterObj(parameterName="plot_pos")
5178 5204 if parmObj == None:
5179 5205 plot_pos = '0'
5180 self.temporalFTP.setwithoutconfiguration()
5181 5206 else:
5182 5207 plot_pos = opObj.getParameterValue(parameterName='plot_pos')
5183 self.temporalFTP.save(server, folder, username, password, ftp_wei, exp_code, sub_exp_code, plot_pos)
5208
5209 parmObj = opObj.getParameterObj(parameterName="localfolder")
5210 if parmObj == None:
5211 localfolder = None
5212 else:
5213 localfolder = opObj.getParameterValue(parameterName='localfolder')
5214
5215 parmObj = opObj.getParameterObj(parameterName="extension")
5216 if parmObj == None:
5217 extension = None
5218 else:
5219 extension = opObj.getParameterValue(parameterName='extension')
5220
5221 self.temporalFTP.save(server, folder, username, password, ftp_wei, exp_code, sub_exp_code, plot_pos,
5222 localfolder=localfolder,
5223 extension=extension)
5184 5224
5185 5225 def addProject2ProjectExplorer(self, id, name):
5186 5226
5187 5227 itemTree = QtGui.QStandardItem(QtCore.QString(str(name)))
5188 5228 self.parentItem = self.projectExplorerModel.invisibleRootItem()
5189 5229 self.parentItem.appendRow(itemTree)
5190 5230 self.parentItem = itemTree
5191 5231 self.projectExplorerTree.setCurrentIndex(self.parentItem.index())
5192 5232
5193 5233 self.selectedItemTree = itemTree
5194 5234
5195 5235 self.__itemTreeDict[id] = itemTree
5196 5236
5197 5237 def addPU2ProjectExplorer(self, id, name):
5198 5238 # id1= round(int(id)/10.)*10
5199 5239 # id= int(id)
5200 5240 # id=id-id1
5201 5241 itemTree = QtGui.QStandardItem(QtCore.QString(str(name)))
5202 5242
5203 5243 self.parentItem = self.selectedItemTree
5204 5244 self.parentItem.appendRow(itemTree)
5205 5245 self.projectExplorerTree.expandAll()
5206 5246 self.parentItem = itemTree
5207 5247 self.projectExplorerTree.setCurrentIndex(self.parentItem.index())
5208 5248
5209 5249 self.selectedItemTree = itemTree
5210 5250
5211 5251 self.__itemTreeDict[id] = itemTree
5212 5252
5213 5253 def addPU2PELoadXML(self, id, name, idParent):
5214 5254
5215 5255 itemTree = QtGui.QStandardItem(QtCore.QString(str(name)))
5216 5256 if self.__itemTreeDict.has_key(idParent):
5217 5257 self.parentItem = self.__itemTreeDict[idParent]
5218 5258 else:
5219 5259 self.parentItem = self.selectedItemTree
5220 5260 self.parentItem.appendRow(itemTree)
5221 5261 self.projectExplorerTree.expandAll()
5222 5262 self.parentItem = itemTree
5223 5263 self.projectExplorerTree.setCurrentIndex(self.parentItem.index())
5224 5264
5225 5265 self.selectedItemTree = itemTree
5226 5266
5227 5267 self.__itemTreeDict[id] = itemTree
5228 5268 # print "stop"
5229 5269
5230 5270 def getSelectedProjectObj(self):
5231 5271
5232 5272 for key in self.__itemTreeDict.keys():
5233 5273 if self.__itemTreeDict[key] != self.selectedItemTree:
5234 5274 continue
5235 5275
5236 5276 if self.__projectObjDict.has_key(key):
5237 5277 projectObj = self.__projectObjDict[key]
5238 5278 else:
5239 5279 puObj = self.__puObjDict[key]
5240 5280 if puObj.parentId == None:
5241 5281 id = puObj.getId()[0]
5242 5282 else:
5243 5283 id = puObj.parentId
5244 5284 projectObj = self.__projectObjDict[id]
5245 5285
5246 5286 return projectObj
5247 5287
5248 5288 self.showWarning()
5249 5289
5250 5290 return None
5251 5291
5252 5292 def getSelectedPUObj(self):
5253 5293
5254 5294 for key in self.__itemTreeDict.keys():
5255 5295 if self.__itemTreeDict[key] != self.selectedItemTree:
5256 5296 continue
5257 5297
5258 5298 if self.__projectObjDict.has_key(key) == True:
5259 5299 fatherObj = self.__projectObjDict[key]
5260 5300 else:
5261 5301 fatherObj = self.__puObjDict[key]
5262 5302
5263 5303 return fatherObj
5264 5304
5265 5305 self.showWarning()
5266 5306
5267 5307 return None
5268 5308
5269 5309 def playProject(self, ext=".xml"):
5270 5310
5271 5311
5272 5312 self.actionStarToolbar.setEnabled(False)
5273 5313 self.actionPauseToolbar.setEnabled(True)
5274 5314 self.actionStopToolbar.setEnabled(True)
5275 5315
5276 5316 projectObj = self.getSelectedProjectObj()
5277 5317
5278 5318 filename = os.path.join(str(self.pathWorkSpace),
5279 5319 "%s%s%s" %(str(projectObj.name), str(projectObj.id), ext)
5280 5320 )
5281 5321
5282 5322 self.console.clear()
5283 5323 filename = self.saveProject()
5284 5324 # projectObj.writeXml(filename)
5285 5325 if filename == None:
5286 5326 self.console.append("Process did not initialize.")
5287 5327 return
5288 5328
5289 5329 self.console.append("Please Wait...")
5290 5330 # try:
5291 5331 self.commCtrlPThread.cmd_q.put(ProcessCommand(ProcessCommand.PROCESS, filename))
5292 5332 # #
5293 5333 # except:
5294 5334 # self.console.append("Error............................................!")
5295 5335 # self.actionStarToolbar.setEnabled(True)
5296 5336 # self.actionPauseToolbar.setEnabled(False)
5297 5337 # self.actionStopToolbar.setEnabled(False)
5298 5338
5299 5339 # filename = '/home/dsuarez/workspace_signalchain/schain_guiJune04/test/ewdrifts3.xml'
5300 5340 # data = filename
5301 5341 # self.commCtrlPThread.cmd_q.put(ProcessCommand(ProcessCommand.PROCESS, data))
5302 5342
5303 5343 def stopProject(self):
5304 5344 stop = True
5305 5345 self.actionStarToolbar.setEnabled(True)
5306 5346 self.actionPauseToolbar.setEnabled(stop)
5307 5347 self.actionStopToolbar.setEnabled(stop)
5308 5348
5309 5349 self.commCtrlPThread.cmd_q.put(ProcessCommand(ProcessCommand.STOP, stop))
5310 5350
5311 5351 def pauseProject(self):
5312 5352
5313 5353 self.actionStarToolbar.setEnabled(False)
5314 5354 self.actionPauseToolbar.setEnabled(True)
5315 5355 self.actionStopToolbar.setEnabled(True)
5316 5356
5317 5357 self.commCtrlPThread.cmd_q.put(ProcessCommand(ProcessCommand.PAUSE, data=True))
5318 5358
5319 5359
5320 5360 def saveProject(self):
5321 5361
5322 5362 sts = True
5323 5363 puObj = self.getSelectedPUObj()
5324 5364 if puObj.name == 'VoltageProc':
5325 5365 sts = self.on_volOpOk_clicked()
5326 5366 if puObj.name == 'SpectraProc':
5327 5367 sts = self.on_specOpOk_clicked()
5328 5368 if puObj.name == 'SpectraHeisProc':
5329 5369 sts = self.on_specHeisOpOk_clicked()
5330 5370
5331 5371 if not sts:
5332 5372 return None
5333 5373
5334 5374 projectObj = self.getSelectedProjectObj()
5335 5375 puObjorderList = OrderedDict(sorted(projectObj.procUnitConfObjDict.items(), key=lambda x: x[0]))
5336 5376
5337 5377 for inputId, puObj in puObjorderList.items():
5338 5378 # print puObj.datatype, puObj.inputId,puObj.getId(),puObj.parentId
5339 5379
5340 5380 if puObj.name == "VoltageProc":
5341 5381 self.refreshID(puObj)
5342 5382 if puObj.name == "SpectraProc":
5343 5383 self.refreshID(puObj)
5344 5384 if puObj.name == "SpectraHeisProc":
5345 5385 self.refreshID(puObj)
5346 5386
5347 5387 filename = os.path.join(str(self.pathWorkSpace),
5348 5388 "%s%s%s" %(str(projectObj.name), str(projectObj.id), '.xml')
5349 5389 )
5350 5390 projectObj.writeXml(filename)
5351 5391 self.console.append("Now, you can press the Start Icon on the toolbar")
5352 5392
5353 5393 return filename
5354 5394
5355 5395 def deleteProjectorPU(self):
5356 5396 """
5357 5397 Metodo para eliminar el proyecto en el dictionario de proyectos y en el dictionario de vista de arbol
5358 5398 """
5359 5399 for key in self.__itemTreeDict.keys():
5360 5400 if self.__itemTreeDict[key] != self.selectedItemTree:
5361 5401 continue
5362 5402
5363 5403 if self.__projectObjDict.has_key(key) == True:
5364 5404
5365 5405 del self.__projectObjDict[key]
5366 5406 del self.__itemTreeDict[key]
5367 5407
5368 5408 else:
5369 5409 puObj = self.__puObjDict[key]
5370 5410 if puObj.parentId == None:
5371 5411 id = puObj.getId()[0]
5372 5412 else:
5373 5413 id = puObj.parentId
5374 5414 projectObj = self.__projectObjDict[id]
5375 5415 del self.__puObjDict[key]
5376 5416 del self.__itemTreeDict[key]
5377 5417 del projectObj.procUnitConfObjDict[key]
5378 5418 for key in projectObj.procUnitConfObjDict.keys():
5379 5419 if projectObj.procUnitConfObjDict[key].inputId != puObj.getId():
5380 5420 continue
5381 5421 del self.__puObjDict[projectObj.procUnitConfObjDict[key].getId()]
5382 5422 del self.__itemTreeDict[projectObj.procUnitConfObjDict[key].getId()]
5383 5423 del projectObj.procUnitConfObjDict[key]
5384 5424 # print projectObj.procUnitConfObjDict
5385 5425 # print self.__itemTreeDict,self.__projectObjDict,self.__puObjDict
5386 5426 self.showWarning()
5387 5427
5388 5428 def showWarning(self):
5389 5429 pass
5390 5430
5391 5431 def getParmsFromProjectWindow(self):
5392 5432 """
5393 5433 Return Inputs Project:
5394 5434 - id
5395 5435 - project_name
5396 5436 - datatype
5397 5437 - ext
5398 5438 - data_path
5399 5439 - readmode
5400 5440 - delay
5401 5441 - set
5402 5442 - walk
5403 5443 """
5404 5444 project_name = str(self.proName.text())
5405 5445 try:
5406 5446 name = str(self.proName.text())
5407 5447 except:
5408 5448 self.console.clear()
5409 5449 self.console.append("Please Write a name")
5410 5450 return 0
5411 5451
5412 5452 desc = str(self.proDescription.toPlainText())
5413 5453 datatype = str(self.proComDataType.currentText())
5414 5454 data_path = str(self.proDataPath.text())
5415 5455 if not os.path.exists(data_path):
5416 5456 self.proOk.setEnabled(False)
5417 5457 self.console.clear()
5418 5458 self.console.append("Write a correct a path")
5419 5459 return
5420 5460
5421 5461 online = int(self.online)
5422 5462 if online == 0:
5423 5463 delay = 0
5424 5464 set = 0
5425 5465 else:
5426 5466 delay = self.proDelay.text()
5427 5467 try:
5428 5468 delay = int(self.proDelay.text())
5429 5469 except:
5430 5470 self.console.clear()
5431 5471 self.console.append("Please Write a number for delay")
5432 5472 return 0
5433 5473
5434 5474 set = self.proSet.text()
5435 5475 try:
5436 5476 set = int(self.proSet.text())
5437 5477 except:
5438 5478 self.console.clear()
5439 5479 set = None
5440 5480
5441 5481
5442 5482 walk = int(self.walk)
5443 5483 starDate = str(self.proComStartDate.currentText())
5444 5484 endDate = str(self.proComEndDate.currentText())
5445 5485 reloj1 = self.proStartTime.time()
5446 5486 reloj2 = self.proEndTime.time()
5447 5487 startTime = str(reloj1.hour()) + ":" + str(reloj1.minute()) + ":" + str(reloj1.second())
5448 5488 endTime = str(reloj2.hour()) + ":" + str(reloj2.minute()) + ":" + str(reloj2.second())
5449 5489
5450 5490 return project_name, desc, datatype, data_path, starDate, endDate, startTime, endTime, online, delay, walk , set
5451 5491
5452 5492 def removefromtree(self, row):
5453 5493 self.parentItem.removeRow(row)
5454 5494
5455 5495
5456 5496 def setInputsProject_View(self):
5457 5497 self.tabWidgetProject.setEnabled(True)
5458 5498 self.tabWidgetProject.setCurrentWidget(self.tabProject)
5459 5499 self.tabProject.setEnabled(True)
5460 5500 self.frame_2.setEnabled(False)
5461 5501 self.proName.clear()
5462 5502 self.proName.setFocus()
5463 5503 self.proName.setSelection(0, 0)
5464 5504 self.proName.setCursorPosition(0)
5465 5505 self.proDataType.setText('.r')
5466 5506 self.proDataPath.clear()
5467 5507 self.proComDataType.clear()
5468 5508 self.proComDataType.addItem("Voltage")
5469 5509 self.proComDataType.addItem("Spectra")
5470 5510 self.proComDataType.addItem("Fits")
5471 5511
5472 5512 self.proComStartDate.clear()
5473 5513 self.proComEndDate.clear()
5474 5514
5475 5515 startTime = "00:00:00"
5476 5516 endTime = "23:59:59"
5477 5517 starlist = startTime.split(":")
5478 5518 endlist = endTime.split(":")
5479 5519 self.proDelay.setText("0")
5480 5520 self.proSet.setText("0")
5481 5521 self.time.setHMS(int(starlist[0]), int(starlist[1]), int(starlist[2]))
5482 5522 self.proStartTime.setTime(self.time)
5483 5523 self.time.setHMS(int(endlist[0]), int(endlist[1]), int(endlist[2]))
5484 5524 self.proEndTime.setTime(self.time)
5485 5525 self.proDescription.clear()
5486 5526 self.proOk.setEnabled(False)
5487 5527 self.console.clear()
5488 5528 # self.console.append("Please, Write a name Project")
5489 5529 # self.console.append("Introduce Project Parameters")DC
5490 5530 # self.console.append("Select data type Voltage( .rawdata) or Spectra(.pdata)")
5491 5531
5492 5532 def setInputsPU_View(self, datatype):
5493 5533 projectObjView = self.getSelectedProjectObj()
5494 5534 idReadUnit = projectObjView.getReadUnitId()
5495 5535 readUnitObj = projectObjView.getProcUnitObj(idReadUnit)
5496 5536
5497 5537 if datatype == 'Voltage':
5498 5538 self.volOpComChannels.setEnabled(False)
5499 5539 self.volOpComHeights.setEnabled(False)
5500 5540 self.volOpFilter.setEnabled(False)
5501 5541 self.volOpComProfile.setEnabled(False)
5502 5542 self.volOpComCode.setEnabled(False)
5503 5543 self.volOpCohInt.setEnabled(False)
5504 5544 self.volOpChannel.setEnabled(False)
5505 5545 self.volOpHeights.setEnabled(False)
5506 5546 self.volOpProfile.setEnabled(False)
5507 5547 self.volOpRadarfrequency.setEnabled(False)
5508 5548 self.volOpCebChannels.setCheckState(0)
5509 5549 self.volOpCebRadarfrequency.setCheckState(0)
5510 5550 self.volOpCebHeights.setCheckState(0)
5511 5551 self.volOpCebFilter.setCheckState(0)
5512 5552 self.volOpCebProfile.setCheckState(0)
5513 5553 self.volOpCebDecodification.setCheckState(0)
5514 5554 self.volOpCebCohInt.setCheckState(0)
5515 5555
5516 5556 self.volOpChannel.clear()
5517 5557 self.volOpHeights.clear()
5518 5558 self.volOpProfile.clear()
5519 5559 self.volOpFilter.clear()
5520 5560 self.volOpCohInt.clear()
5521 5561 self.volOpRadarfrequency.clear()
5522 5562
5523 5563 if datatype == 'Spectra':
5524 5564
5525 5565 if readUnitObj.datatype == 'Spectra':
5526 5566 self.specOpnFFTpoints.setEnabled(False)
5527 5567 self.specOpProfiles.setEnabled(False)
5528 5568 self.specOpippFactor.setEnabled(False)
5529 5569 else:
5530 5570 self.specOpnFFTpoints.setEnabled(True)
5531 5571 self.specOpProfiles.setEnabled(True)
5532 5572 self.specOpippFactor.setEnabled(True)
5533 5573
5534 5574 self.specOpCebCrossSpectra.setCheckState(0)
5535 5575 self.specOpCebChannel.setCheckState(0)
5536 5576 self.specOpCebHeights.setCheckState(0)
5537 5577 self.specOpCebIncoherent.setCheckState(0)
5538 5578 self.specOpCebRemoveDC.setCheckState(0)
5539 5579 self.specOpCebRemoveInt.setCheckState(0)
5540 5580 self.specOpCebgetNoise.setCheckState(0)
5541 5581 self.specOpCebRadarfrequency.setCheckState(0)
5542 5582
5543 5583 self.specOpRadarfrequency.setEnabled(False)
5544 5584 self.specOppairsList.setEnabled(False)
5545 5585 self.specOpChannel.setEnabled(False)
5546 5586 self.specOpHeights.setEnabled(False)
5547 5587 self.specOpIncoherent.setEnabled(False)
5548 5588 self.specOpgetNoise.setEnabled(False)
5549 5589
5550 5590 self.specOpRadarfrequency.clear()
5551 5591 self.specOpnFFTpoints.clear()
5552 5592 self.specOpProfiles.clear()
5553 5593 self.specOpippFactor.clear
5554 5594 self.specOppairsList.clear()
5555 5595 self.specOpChannel.clear()
5556 5596 self.specOpHeights.clear()
5557 5597 self.specOpIncoherent.clear()
5558 5598 self.specOpgetNoise.clear()
5559 5599
5560 5600 self.specGraphCebSpectraplot.setCheckState(0)
5561 5601 self.specGraphCebCrossSpectraplot.setCheckState(0)
5562 5602 self.specGraphCebRTIplot.setCheckState(0)
5563 5603 self.specGraphCebRTInoise.setCheckState(0)
5564 5604 self.specGraphCebCoherencmap.setCheckState(0)
5565 5605 self.specGraphPowerprofile.setCheckState(0)
5566 5606
5567 5607 self.specGraphSaveSpectra.setCheckState(0)
5568 5608 self.specGraphSaveCross.setCheckState(0)
5569 5609 self.specGraphSaveRTIplot.setCheckState(0)
5570 5610 self.specGraphSaveRTInoise.setCheckState(0)
5571 5611 self.specGraphSaveCoherencemap.setCheckState(0)
5572 5612 self.specGraphSavePowerprofile.setCheckState(0)
5573 5613
5574 5614 self.specGraphftpRTIplot.setCheckState(0)
5575 5615 self.specGraphftpRTInoise.setCheckState(0)
5576 5616 self.specGraphftpCoherencemap.setCheckState(0)
5577 5617
5578 5618 self.specGraphPath.clear()
5579 5619 self.specGraphPrefix.clear()
5580 5620
5581 5621 self.specGgraphftpratio.clear()
5582 5622
5583 5623 self.specGgraphChannelList.clear()
5584 5624 self.specGgraphFreq.clear()
5585 5625 self.specGgraphHeight.clear()
5586 5626 self.specGgraphDbsrange.clear()
5587 5627 self.specGgraphmagnitud.clear()
5588 5628 self.specGgraphTminTmax.clear()
5589 5629 self.specGgraphTimeRange.clear()
5590 5630
5591 5631 if datatype == 'SpectraHeis':
5592 5632 self.specHeisOpCebIncoherent.setCheckState(0)
5593 5633 self.specHeisOpIncoherent.setEnabled(False)
5594 5634 self.specHeisOpIncoherent.clear()
5595 5635
5596 5636 self.specHeisGraphCebSpectraplot.setCheckState(0)
5597 5637 self.specHeisGraphCebRTIplot.setCheckState(0)
5598 5638
5599 5639 self.specHeisGraphSaveSpectra.setCheckState(0)
5600 5640 self.specHeisGraphSaveRTIplot.setCheckState(0)
5601 5641
5602 5642 self.specHeisGraphftpSpectra.setCheckState(0)
5603 5643 self.specHeisGraphftpRTIplot.setCheckState(0)
5604 5644
5605 5645 self.specHeisGraphPath.clear()
5606 5646 self.specHeisGraphPrefix.clear()
5607 5647 self.specHeisGgraphChannelList.clear()
5608 5648 self.specHeisGgraphXminXmax.clear()
5609 5649 self.specHeisGgraphYminYmax.clear()
5610 5650 self.specHeisGgraphTminTmax.clear()
5611 5651 self.specHeisGgraphTimeRange.clear()
5612 5652 self.specHeisGgraphftpratio.clear()
5613 5653
5614 5654
5615 5655
5616 5656
5617 5657
5618 5658 def showtabPUCreated(self, datatype):
5619 5659 if datatype == "Voltage":
5620 5660 self.tabVoltage.setEnabled(True)
5621 5661 self.tabProject.setEnabled(False)
5622 5662 self.tabSpectra.setEnabled(False)
5623 5663 self.tabCorrelation.setEnabled(False)
5624 5664 self.tabSpectraHeis.setEnabled(False)
5625 5665 self.tabWidgetProject.setCurrentWidget(self.tabVoltage)
5626 5666
5627 5667 if datatype == "Spectra":
5628 5668 self.tabVoltage.setEnabled(False)
5629 5669 self.tabProject.setEnabled(False)
5630 5670 self.tabSpectra.setEnabled(True)
5631 5671 self.tabCorrelation.setEnabled(False)
5632 5672 self.tabSpectraHeis.setEnabled(False)
5633 5673 self.tabWidgetProject.setCurrentWidget(self.tabSpectra)
5634 5674 if datatype == "SpectraHeis":
5635 5675 self.tabVoltage.setEnabled(False)
5636 5676 self.tabProject.setEnabled(False)
5637 5677 self.tabSpectra.setEnabled(False)
5638 5678 self.tabCorrelation.setEnabled(False)
5639 5679 self.tabSpectraHeis.setEnabled(True)
5640 5680 self.tabWidgetProject.setCurrentWidget(self.tabSpectraHeis)
5641 5681
5642 5682
5643 5683 def searchData(self, data_path, ext, walk, expLabel=''):
5644 5684 dateList = []
5645 5685 fileList = []
5646 5686
5647 5687 if not os.path.exists(data_path):
5648 5688 return None
5649 5689
5650 5690 if walk == 0:
5651 5691 files = os.listdir(data_path)
5652 5692 for thisFile in files:
5653 5693 thisExt = os.path.splitext(thisFile)[-1]
5654 5694 if thisExt == ext:
5655 5695 fileList.append(thisFile)
5656 5696
5657 5697 for thisFile in fileList:
5658 5698 try:
5659 5699 year = int(thisFile[1:5])
5660 5700 doy = int(thisFile[5:8])
5661 5701
5662 5702 date = datetime.date(year, 1, 1) + datetime.timedelta(doy - 1)
5663 5703 dateformat = date.strftime("%Y/%m/%d")
5664 5704
5665 5705 if dateformat not in dateList:
5666 5706 dateList.append(dateformat)
5667 5707 except:
5668 5708 continue
5669 5709 # REVISION---------------------------------1
5670 5710 if walk == 1:
5671 5711
5672 5712 dirList = os.listdir(data_path)
5673 5713
5674 5714 dirList.sort()
5675 5715
5676 5716 dateList = []
5677 5717
5678 5718 for thisDir in dirList:
5679 5719
5680 5720 if not isRadarPath(thisDir):
5681 5721 self.console.clear()
5682 5722 self.console.append("Please, Choose the Correct Path")
5683 5723 self.proOk.setEnabled(False)
5684 5724 continue
5685 5725
5686 5726 doypath = os.path.join(data_path, thisDir, expLabel)
5687 5727 if not os.path.exists(doypath):
5688 5728 self.console.clear()
5689 5729 self.console.append("Please, Choose the Correct Path")
5690 5730 return
5691 5731 files = os.listdir(doypath)
5692 5732 fileList = []
5693 5733
5694 5734 for thisFile in files:
5695 5735 thisExt = os.path.splitext(thisFile)[-1]
5696 5736 if thisExt != ext:
5697 5737 self.console.clear()
5698 5738 self.console.append("There is no datatype selected in the Path Directory")
5699 5739 self.proOk.setEnabled(False)
5700 5740 continue
5701 5741
5702 5742 if not isRadarFile(thisFile):
5703 5743 self.proOk.setEnabled(False)
5704 5744 self.console.clear()
5705 5745 self.console.append("Please, Choose the Correct Path")
5706 5746 continue
5707 5747
5708 5748 fileList.append(thisFile)
5709 5749 break
5710 5750
5711 5751 if fileList == []:
5712 5752 continue
5713 5753
5714 5754 year = int(thisDir[1:5])
5715 5755 doy = int(thisDir[5:8])
5716 5756
5717 5757 date = datetime.date(year, 1, 1) + datetime.timedelta(doy - 1)
5718 5758 dateformat = date.strftime("%Y/%m/%d")
5719 5759 dateList.append(dateformat)
5720 5760
5721 5761 if len(dateList) > 0:
5722 5762 self.proOk.setEnabled(True)
5723 5763 return dateList
5724 5764
5725 5765
5726 5766 # self.proOk.setEnabled(False)
5727 5767 return None
5728 5768
5729 5769 def checkInputsProject(self):
5730 5770 """
5731 5771 Check Inputs Project:
5732 5772 - project_name
5733 5773 - datatype
5734 5774 - ext
5735 5775 - data_path
5736 5776 - readmode
5737 5777 - delay
5738 5778 - set
5739 5779 - walk
5740 5780 """
5741 5781 parms_ok = True
5742 5782 project_name = str(self.proName.text())
5743 5783 if project_name == '' or project_name == None:
5744 5784 outputstr = "Enter the Project Name"
5745 5785 self.console.append(outputstr)
5746 5786 parms_ok = False
5747 5787 project_name = None
5748 5788
5749 5789 datatype = str(self.proComDataType.currentText())
5750 5790 if not(datatype in ['Voltage', 'Spectra', 'Fits']):
5751 5791 outputstr = 'datatype = %s, this must be either Voltage, Spectra or SpectraHeis' % datatype
5752 5792 self.console.append(outputstr)
5753 5793 parms_ok = False
5754 5794 datatype = None
5755 5795
5756 5796 ext = str(self.proDataType.text())
5757 5797 if not(ext in ['.r', '.pdata', '.fits']):
5758 5798 outputstr = "extension files must be .r , .pdata or .fits"
5759 5799 self.console.append(outputstr)
5760 5800 parms_ok = False
5761 5801 ext = None
5762 5802
5763 5803 data_path = str(self.proDataPath.text())
5764 5804
5765 5805 if data_path == '':
5766 5806 outputstr = 'Datapath is empty'
5767 5807 self.console.append(outputstr)
5768 5808 parms_ok = False
5769 5809 data_path = None
5770 5810
5771 5811 if data_path != None:
5772 5812 if not os.path.exists(data_path):
5773 5813 outputstr = 'Datapath:%s does not exists' % data_path
5774 5814 self.console.append(outputstr)
5775 5815 parms_ok = False
5776 5816 data_path = None
5777 5817
5778 5818 read_mode = str(self.proComReadMode.currentText())
5779 5819 if not(read_mode in ['Online', 'Offline']):
5780 5820 outputstr = 'Read Mode: %s, this must be either Online or Offline' % read_mode
5781 5821 self.console.append(outputstr)
5782 5822 parms_ok = False
5783 5823 read_mode = None
5784 5824
5785 5825 try:
5786 5826 delay = int(str(self.proDelay.text()))
5787 5827 except:
5788 5828 outputstr = 'Delay: %s, this must be a integer number' % str(self.proName.text())
5789 5829 self.console.append(outputstr)
5790 5830 parms_ok = False
5791 5831 delay = None
5792 5832
5793 5833 try:
5794 5834 set = int(str(self.proSet.text()))
5795 5835 except:
5796 5836 # outputstr = 'Set: %s, this must be a integer number' % str(self.proName.text())
5797 5837 # self.console.append(outputstr)
5798 5838 # parms_ok = False
5799 5839 set = None
5800 5840
5801 5841 walk_str = str(self.proComWalk.currentText())
5802 5842 if walk_str == 'On Files':
5803 5843 walk = 0
5804 5844 elif walk_str == 'On Folder':
5805 5845 walk = 1
5806 5846 else:
5807 5847 outputstr = 'Walk: %s, this must be either On Files or On Folders' % walk_str
5808 5848 self.console.append(outputstr)
5809 5849 parms_ok = False
5810 5850 walk = None
5811 5851
5812 5852 return parms_ok, project_name, datatype, ext, data_path, read_mode, delay, walk, set
5813 5853
5814 5854 def checkInputsPUSave(self, datatype):
5815 5855 """
5816 5856 Check Inputs Spectra Save:
5817 5857 - path
5818 5858 - blocks Per File
5819 5859 - sufix
5820 5860 - dataformat
5821 5861 """
5822 5862 parms_ok = True
5823 5863
5824 5864 if datatype == "Voltage":
5825 5865 output_path = str(self.volOutputPath.text())
5826 5866 blocksperfile = str(self.volOutputblocksperfile.text())
5827 5867 profilesperblock = str(self.volOutputprofilesperblock.text())
5828 5868
5829 5869 if datatype == "Spectra":
5830 5870 output_path = str(self.specOutputPath.text())
5831 5871 blocksperfile = str(self.specOutputblocksperfile.text())
5832 5872 profilesperblock = str(self.specOutputprofileperblock.text())
5833 5873
5834 5874 if datatype == "SpectraHeis":
5835 5875 output_path = str(self.specHeisOutputPath.text())
5836 5876 blocksperfile = str(self.specHeisOutputblocksperfile.text())
5837 5877 metada = str(self.specHeisOutputMetada.text())
5838 5878
5839 5879 if output_path == '':
5840 5880 outputstr = 'Outputpath is empty'
5841 5881 self.console.append(outputstr)
5842 5882 parms_ok = False
5843 5883 data_path = None
5844 5884
5845 5885 if output_path != None:
5846 5886 if not os.path.exists(output_path):
5847 5887 outputstr = 'OutputPath:%s does not exists' % output_path
5848 5888 self.console.append(outputstr)
5849 5889 parms_ok = False
5850 5890 output_path = None
5851 5891
5852 5892
5853 5893 try:
5854 5894 profilesperblock = int(profilesperblock)
5855 5895 except:
5856 5896 if datatype == "Voltage":
5857 5897 outputstr = 'Profilesperblock: %s, this must be a integer number' % str(self.volOutputprofilesperblock.text())
5858 5898 self.console.append(outputstr)
5859 5899 parms_ok = False
5860 5900 profilesperblock = None
5861 5901
5862 5902 elif datatype == "Spectra":
5863 5903 outputstr = 'Profilesperblock: %s, this must be a integer number' % str(self.specOutputprofileperblock.text())
5864 5904 self.console.append(outputstr)
5865 5905 parms_ok = False
5866 5906 profilesperblock = None
5867 5907
5868 5908 try:
5869 5909 blocksperfile = int(blocksperfile)
5870 5910 except:
5871 5911 if datatype == "Voltage":
5872 5912 outputstr = 'Blocksperfile: %s, this must be a integer number' % str(self.volOutputblocksperfile.text())
5873 5913 elif datatype == "Spectra":
5874 5914 outputstr = 'Blocksperfile: %s, this must be a integer number' % str(self.specOutputblocksperfile.text())
5875 5915 elif datatype == "SpectraHeis":
5876 5916 outputstr = 'Blocksperfile: %s, this must be a integer number' % str(self.specHeisOutputblocksperfile.text())
5877 5917
5878 5918 self.console.append(outputstr)
5879 5919 parms_ok = False
5880 5920 blocksperfile = None
5881 5921
5882 5922 if datatype == "SpectraHeis":
5883 5923 if metada == '':
5884 5924 outputstr = 'Choose metada file'
5885 5925 self.console.append(outputstr)
5886 5926 parms_ok = False
5887 5927 if metada != None:
5888 5928 if not os.path.isfile(metada):
5889 5929 outputstr = 'Metadata:%s does not exists' % metada
5890 5930 self.console.append(outputstr)
5891 5931 parms_ok = False
5892 5932 output_path = None
5893 5933
5894 5934 if datatype == "Voltage":
5895 5935 return parms_ok, output_path, blocksperfile, profilesperblock
5896 5936
5897 5937
5898 5938 if datatype == "Spectra":
5899 5939 return parms_ok, output_path, blocksperfile, profilesperblock
5900 5940
5901 5941
5902 5942 if datatype == "SpectraHeis":
5903 5943 return parms_ok, output_path, blocksperfile, metada
5904 5944
5905 5945 def loadDays(self, data_path, ext, walk):
5906 5946 """
5907 5947 Method to loads day
5908 5948 """
5909 5949 dateList = self.searchData(data_path, ext, walk)
5910 5950 if dateList == None:
5911 5951 self.console.clear()
5912 5952 outputstr = "The path: %s is empty with file extension *%s" % (data_path, ext)
5913 5953 self.console.append(outputstr)
5914 5954 return
5915 5955
5916 5956 self.dateList = dateList
5917 5957 for thisDate in dateList:
5918 5958 self.proComStartDate.addItem(thisDate)
5919 5959 self.proComEndDate.addItem(thisDate)
5920 5960 self.proComEndDate.setCurrentIndex(self.proComStartDate.count() - 1)
5921 5961
5922 5962 def setWorkSpaceGUI(self, pathWorkSpace):
5923 5963 self.pathWorkSpace = pathWorkSpace
5924 5964
5925 5965 """
5926 5966 Comandos Usados en Console
5927 5967 """
5928 5968 def __del__(self):
5929 5969 sys.stdout = sys.__stdout__
5930 5970 sys.stderr = sys.__stderr__
5931 5971
5932 5972 def normalOutputWritten(self, text):
5933 5973 self.console.append(text)
5934 5974
5935 5975
5936 5976 def setParameter(self):
5937 5977
5938 5978 self.setWindowTitle("ROJ-Signal Chain")
5939 5979 self.setWindowIcon(QtGui.QIcon("schainpy/gui/figure/adn.jpg"))
5940 5980 sys.stdout = ShowMeConsole(textWritten=self.normalOutputWritten)
5941 5981 # sys.stderr = ShowMeConsole(textWritten=self.normalOutputWritten)
5942 5982 self.tabWidgetProject.setEnabled(False)
5943 5983 self.tabVoltage.setEnabled(False)
5944 5984 self.tabSpectra.setEnabled(False)
5945 5985 self.tabCorrelation.setEnabled(False)
5946 5986 self.frame_2.setEnabled(False)
5947 5987
5948 5988 self.actionCreate.setShortcut('Ctrl+N')
5949 5989 self.actionStart.setShortcut('Ctrl+P')
5950 5990 self.actionSave.setShortcut('Ctrl+S')
5951 5991 self.actionClose.setShortcut('Ctrl+Q')
5952 5992
5953 5993 self.actionStarToolbar.setEnabled(True)
5954 5994 self.actionPauseToolbar.setEnabled(False)
5955 5995 self.actionStopToolbar.setEnabled(False)
5956 5996
5957 5997 self.proName.clear()
5958 5998 self.proDataPath.setText('')
5959 5999 self.console.setReadOnly(True)
5960 6000 self.console.append("Welcome to Signal Chain\nOpen a project or Create a new one")
5961 6001 self.proStartTime.setDisplayFormat("hh:mm:ss")
5962 6002 self.proDataType.setEnabled(False)
5963 6003 self.time = QtCore.QTime()
5964 6004 self.hour = 0
5965 6005 self.min = 0
5966 6006 self.sec = 0
5967 6007 self.proEndTime.setDisplayFormat("hh:mm:ss")
5968 6008 startTime = "00:00:00"
5969 6009 endTime = "23:59:59"
5970 6010 starlist = startTime.split(":")
5971 6011 endlist = endTime.split(":")
5972 6012 self.time.setHMS(int(starlist[0]), int(starlist[1]), int(starlist[2]))
5973 6013 self.proStartTime.setTime(self.time)
5974 6014 self.time.setHMS(int(endlist[0]), int(endlist[1]), int(endlist[2]))
5975 6015 self.proEndTime.setTime(self.time)
5976 6016 self.proOk.setEnabled(False)
5977 6017 # set model Project Explorer
5978 6018 self.projectExplorerModel = QtGui.QStandardItemModel()
5979 6019 self.projectExplorerModel.setHorizontalHeaderLabels(("Project Explorer",))
5980 6020 layout = QtGui.QVBoxLayout()
5981 6021 layout.addWidget(self.projectExplorerTree)
5982 6022 self.projectExplorerTree.setModel(self.projectExplorerModel)
5983 6023 self.projectExplorerTree.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
5984 6024 self.projectExplorerTree.customContextMenuRequested.connect(self.on_right_click)
5985 6025 self.projectExplorerTree.clicked.connect(self.on_click)
5986 6026 self.projectExplorerTree.expandAll()
5987 6027 # set model Project Properties
5988 6028
5989 6029 self.propertiesModel = treeModel()
5990 6030 self.propertiesModel.initProjectView()
5991 6031 self.treeProjectProperties.setModel(self.propertiesModel)
5992 6032 self.treeProjectProperties.expandAll()
5993 6033 self.treeProjectProperties.allColumnsShowFocus()
5994 6034 self.treeProjectProperties.resizeColumnToContents(1)
5995 6035
5996 6036 # set Project
5997 6037 self.proDelay.setEnabled(False)
5998 6038 self.proSet.setEnabled(False)
5999 6039 self.proDataType.setReadOnly(True)
6000 6040
6001 6041 # set Operation Voltage
6002 6042 self.volOpComChannels.setEnabled(False)
6003 6043 self.volOpComHeights.setEnabled(False)
6004 6044 self.volOpFilter.setEnabled(False)
6005 6045 self.volOpComProfile.setEnabled(False)
6006 6046 self.volOpComCode.setEnabled(False)
6007 6047 self.volOpCohInt.setEnabled(False)
6008 6048 self.volOpRadarfrequency.setEnabled(False)
6009 6049
6010 6050 self.volOpChannel.setEnabled(False)
6011 6051 self.volOpHeights.setEnabled(False)
6012 6052 self.volOpProfile.setEnabled(False)
6013 6053 self.volOpComMode.setEnabled(False)
6014 6054
6015 6055 self.volGraphPath.setEnabled(False)
6016 6056 self.volGraphPrefix.setEnabled(False)
6017 6057 self.volGraphToolPath.setEnabled(False)
6018 6058
6019 6059 # set Graph Voltage
6020 6060 self.volGraphChannelList.setEnabled(False)
6021 6061 self.volGraphfreqrange.setEnabled(False)
6022 6062 self.volGraphHeightrange.setEnabled(False)
6023 6063
6024 6064 # set Operation Spectra
6025 6065 self.specOpnFFTpoints.setEnabled(False)
6026 6066 self.specOpProfiles.setEnabled(False)
6027 6067 self.specOpippFactor.setEnabled(False)
6028 6068 self.specOppairsList.setEnabled(False)
6029 6069 self.specOpComChannel.setEnabled(False)
6030 6070 self.specOpComHeights.setEnabled(False)
6031 6071 self.specOpIncoherent.setEnabled(False)
6032 6072 self.specOpgetNoise.setEnabled(False)
6033 6073 self.specOpRadarfrequency.setEnabled(False)
6034 6074
6035 6075
6036 6076 self.specOpChannel.setEnabled(False)
6037 6077 self.specOpHeights.setEnabled(False)
6038 6078 # set Graph Spectra
6039 6079 self.specGgraphChannelList.setEnabled(False)
6040 6080 self.specGgraphFreq.setEnabled(False)
6041 6081 self.specGgraphHeight.setEnabled(False)
6042 6082 self.specGgraphDbsrange.setEnabled(False)
6043 6083 self.specGgraphmagnitud.setEnabled(False)
6044 6084 self.specGgraphTminTmax.setEnabled(False)
6045 6085 self.specGgraphTimeRange.setEnabled(False)
6046 6086 self.specGraphPath.setEnabled(False)
6047 6087 self.specGraphToolPath.setEnabled(False)
6048 6088 self.specGraphPrefix.setEnabled(False)
6049 6089
6050 6090 self.specGgraphftpratio.setEnabled(False)
6051 6091 # set Operation SpectraHeis
6052 6092 self.specHeisOpIncoherent.setEnabled(False)
6053 6093 self.specHeisOpCobIncInt.setEnabled(False)
6054 6094 # set Graph SpectraHeis
6055 6095 self.specHeisGgraphChannelList.setEnabled(False)
6056 6096 self.specHeisGgraphXminXmax.setEnabled(False)
6057 6097 self.specHeisGgraphYminYmax.setEnabled(False)
6058 6098 self.specHeisGgraphTminTmax.setEnabled(False)
6059 6099 self.specHeisGgraphTimeRange.setEnabled(False)
6060 6100 self.specHeisGgraphftpratio.setEnabled(False)
6061 6101 self.specHeisGraphPath.setEnabled(False)
6062 6102 self.specHeisGraphPrefix.setEnabled(False)
6063 6103 self.specHeisGraphToolPath.setEnabled(False)
6064 6104
6065 6105
6066 6106 # tool tip gui
6067 6107 QtGui.QToolTip.setFont(QtGui.QFont('SansSerif', 10))
6068 6108 self.projectExplorerTree.setToolTip('Right clik to add Project or Unit Process')
6069 6109 # tool tip gui project
6070 6110 self.proComWalk.setToolTip('<b>On Files</b>:<i>Search file in format .r or pdata</i> <b>On Folders</b>:<i>Search file in a directory DYYYYDOY</i>')
6071 6111 self.proComWalk.setCurrentIndex(0)
6072 6112 # tool tip gui volOp
6073 6113 self.volOpChannel.setToolTip('Example: 1,2,3,4,5')
6074 6114 self.volOpHeights.setToolTip('Example: 90,180')
6075 6115 self.volOpFilter.setToolTip('Example: 2')
6076 6116 self.volOpProfile.setToolTip('Example:0,127')
6077 6117 self.volOpCohInt.setToolTip('Example: 128')
6078 6118 self.volOpFlip.setToolTip('ChannelList where flip will be applied. Example: 0,2,3')
6079 6119 self.volOpOk.setToolTip('If you have finished, please Ok ')
6080 6120 # tool tip gui volGraph
6081 6121 self.volGraphfreqrange.setToolTip('Example: -30,30')
6082 6122 self.volGraphHeightrange.setToolTip('Example: 20,180')
6083 6123 # tool tip gui specOp
6084 6124 self.specOpnFFTpoints.setToolTip('Example: 128')
6085 6125 self.specOpProfiles.setToolTip('Example: 128')
6086 6126 self.specOpippFactor.setToolTip('Example:1.0')
6087 6127 self.specOpIncoherent.setToolTip('Example: 10')
6088 6128 self.specOpgetNoise.setToolTip('Example:20,180,30,120 (minHei,maxHei,minVel,maxVel)')
6089 6129
6090 6130 self.specOpChannel.setToolTip('Example: 0,1,2,3')
6091 6131 self.specOpHeights.setToolTip('Example: 90,180')
6092 6132 self.specOppairsList.setToolTip('Example: (0,1),(2,3)')
6093 6133 # tool tip gui specGraph
6094 6134
6095 6135 self.specGgraphChannelList.setToolTip('Example: 0,3,4')
6096 6136 self.specGgraphFreq.setToolTip('Example: -20,20')
6097 6137 self.specGgraphHeight.setToolTip('Example: 100,400')
6098 6138 self.specGgraphDbsrange.setToolTip('Example: 30,170')
6099 6139
6100 6140 self.specGraphPrefix.setToolTip('Example: EXPERIMENT_NAME')
6101 6141
6102 def closeEvent(self, event):
6103 self.closed.emit()
6104 event.accept()
6105 6142
6106 6143 class UnitProcessWindow(QMainWindow, Ui_UnitProcess):
6107 6144 """
6108 6145 Class documentation goes here.
6109 6146 """
6110 6147 closed = pyqtSignal()
6111 6148 create = False
6112 6149
6113 6150 def __init__(self, parent=None):
6114 6151 """
6115 6152 Constructor
6116 6153 """
6117 6154 QMainWindow.__init__(self, parent)
6118 6155 self.setupUi(self)
6119 6156 self.getFromWindow = None
6120 6157 self.getfromWindowList = []
6121 6158 self.dataTypeProject = None
6122 6159
6123 6160 self.listUP = None
6124 6161
6125 6162 @pyqtSignature("")
6126 6163 def on_unitPokbut_clicked(self):
6127 6164 """
6128 6165 Slot documentation goes here.
6129 6166 """
6130 6167 self.create = True
6131 6168 self.getFromWindow = self.getfromWindowList[int(self.comboInputBox.currentIndex())]
6132 6169 # self.nameofUP= str(self.nameUptxt.text())
6133 6170 self.typeofUP = str(self.comboTypeBox.currentText())
6134 6171 self.close()
6135 6172
6136 6173
6137 6174 @pyqtSignature("")
6138 6175 def on_unitPcancelbut_clicked(self):
6139 6176 """
6140 6177 Slot documentation goes here.
6141 6178 """
6142 6179 self.create = False
6143 6180 self.close()
6144 6181
6145 6182 def loadTotalList(self):
6146 6183 self.comboInputBox.clear()
6147 6184 for i in self.getfromWindowList:
6148 6185
6149 6186 name = i.getElementName()
6150 6187 if name == 'Project':
6151 6188 id = i.id
6152 6189 name = i.name
6153 6190 if self.dataTypeProject == 'Voltage':
6154 6191 self.comboTypeBox.clear()
6155 6192 self.comboTypeBox.addItem("Voltage")
6156 6193
6157 6194 if self.dataTypeProject == 'Spectra':
6158 6195 self.comboTypeBox.clear()
6159 6196 self.comboTypeBox.addItem("Spectra")
6160 6197 self.comboTypeBox.addItem("Correlation")
6161 6198 if self.dataTypeProject == 'Fits':
6162 6199 self.comboTypeBox.clear()
6163 6200 self.comboTypeBox.addItem("SpectraHeis")
6164 6201
6165 6202
6166 6203 if name == 'ProcUnit':
6167 6204 id = int(i.id) - 1
6168 6205 name = i.datatype
6169 6206 if name == 'Voltage':
6170 6207 self.comboTypeBox.clear()
6171 6208 self.comboTypeBox.addItem("Spectra")
6172 6209 self.comboTypeBox.addItem("SpectraHeis")
6173 6210 self.comboTypeBox.addItem("Correlation")
6174 6211 if name == 'Spectra':
6175 6212 self.comboTypeBox.clear()
6176 6213 self.comboTypeBox.addItem("Spectra")
6177 6214 self.comboTypeBox.addItem("SpectraHeis")
6178 6215 self.comboTypeBox.addItem("Correlation")
6179 6216 if name == 'SpectraHeis':
6180 6217 self.comboTypeBox.clear()
6181 6218 self.comboTypeBox.addItem("SpectraHeis")
6182 6219
6183 6220 self.comboInputBox.addItem(str(name))
6184 6221 # self.comboInputBox.addItem(str(name)+str(id))
6185 6222
6186 6223 def closeEvent(self, event):
6187 6224 self.closed.emit()
6188 6225 event.accept()
6189 6226
6190 6227 class Ftp(QMainWindow, Ui_Ftp):
6191 6228 """
6192 6229 Class documentation goes here.
6193 6230 """
6194 6231 create = False
6195 6232 closed = pyqtSignal()
6196 6233 server = None
6197 6234 folder = None
6198 6235 username = None
6199 6236 password = None
6200 6237 ftp_wei = None
6201 6238 exp_code = None
6202 6239 sub_exp_code = None
6203 6240 plot_pos = None
6204 6241
6205 6242 def __init__(self, parent=None):
6206 6243 """
6207 6244 Constructor
6208 6245 """
6209 6246 QMainWindow.__init__(self, parent)
6210 6247 self.setupUi(self)
6211 6248 self.setParameter()
6212 6249
6213 6250 def setParameter(self):
6214 6251 self.setWindowTitle("ROJ-Signal Chain")
6215 6252 self.serverFTP.setToolTip('Example: jro-app.igp.gob.pe')
6216 6253 self.folderFTP.setToolTip('Example: /home/wmaster/graficos')
6217 6254 self.usernameFTP.setToolTip('Example: myusername')
6218 6255 self.passwordFTP.setToolTip('Example: mypass ')
6219 6256 self.weightFTP.setToolTip('Example: 0')
6220 6257 self.expcodeFTP.setToolTip('Example: 0')
6221 6258 self.subexpFTP.setToolTip('Example: 0')
6222 6259 self.plotposFTP.setToolTip('Example: 0')
6223 6260
6224 6261 def setParmsfromTemporal(self, server, folder, username, password, ftp_wei, exp_code, sub_exp_code, plot_pos):
6225 6262 self.serverFTP.setText(str(server))
6226 6263 self.folderFTP.setText(str(folder))
6227 6264 self.usernameFTP.setText(str(username))
6228 6265 self.passwordFTP.setText(str(password))
6229 6266 self.weightFTP.setText(str(ftp_wei))
6230 6267 self.expcodeFTP.setText(str(exp_code))
6231 6268 self.subexpFTP.setText(str(sub_exp_code))
6232 6269 self.plotposFTP.setText(str(plot_pos))
6233 6270
6234 6271 def getParmsFromFtpWindow(self):
6235 6272 """
6236 6273 Return Inputs Project:
6237 6274 - server
6238 6275 - folder
6239 6276 - username
6240 6277 - password
6241 6278 - ftp_wei
6242 6279 - exp_code
6243 6280 - sub_exp_code
6244 6281 - plot_pos
6245 6282 """
6246 6283 name_server_ftp = str(self.serverFTP.text())
6247 6284 try:
6248 6285 name = str(self.serverFTP.text())
6249 6286 except:
6250 6287 self.console.clear()
6251 6288 self.console.append("Please Write a FTP Server")
6252 6289 return 0
6253 6290
6254 6291 folder_server_ftp = str(self.folderFTP.text())
6255 6292 try:
6256 6293 folder = str(self.folderFTP.text())
6257 6294 except:
6258 6295 self.console.clear()
6259 6296 self.console.append("Please Write a Folder")
6260 6297 return 0
6261 6298
6262 6299 username_ftp = str(self.usernameFTP.text())
6263 6300 try:
6264 6301 username = str(self.usernameFTP.text())
6265 6302 except:
6266 6303 self.console.clear()
6267 6304 self.console.append("Please Write a User Name")
6268 6305 return 0
6269 6306
6270 6307 password_ftp = str(self.passwordFTP.text())
6271 6308 try:
6272 6309 password = str(self.passwordFTP.text())
6273 6310 except:
6274 6311 self.console.clear()
6275 6312 self.console.append("Please Write a passwordFTP")
6276 6313 return 0
6277 6314
6278 6315 ftp_wei = self.weightFTP.text()
6279 6316 if not ftp_wei == "":
6280 6317 try:
6281 6318 ftp_wei = int(self.weightFTP.text())
6282 6319 except:
6283 6320 self.console.clear()
6284 6321 self.console.append("Please Write a ftp_wei number")
6285 6322 return 0
6286 6323
6287 6324 exp_code = self.expcodeFTP.text()
6288 6325 if not exp_code == "":
6289 6326 try:
6290 6327 exp_code = int(self.expcodeFTP.text())
6291 6328 except:
6292 6329 self.console.clear()
6293 6330 self.console.append("Please Write a exp_code number")
6294 6331 return 0
6295 6332
6296 6333
6297 6334 sub_exp_code = self.subexpFTP.text()
6298 6335 if not sub_exp_code == "":
6299 6336 try:
6300 6337 sub_exp_code = int(self.subexpFTP.text())
6301 6338 except:
6302 6339 self.console.clear()
6303 6340 self.console.append("Please Write a sub_exp_code number")
6304 6341 return 0
6305 6342
6306 6343 plot_pos = self.plotposFTP.text()
6307 6344 if not plot_pos == "":
6308 6345 try:
6309 6346 plot_pos = int(self.plotposFTP.text())
6310 6347 except:
6311 6348 self.console.clear()
6312 6349 self.console.append("Please Write a plot_pos number")
6313 6350 return 0
6314 6351
6315 6352 return name_server_ftp, folder_server_ftp, username_ftp, password_ftp, ftp_wei, exp_code, sub_exp_code, plot_pos
6316 6353
6317 6354 @pyqtSignature("")
6318 6355 def on_ftpOkButton_clicked(self):
6319 6356 server, folder, username, password, ftp_wei, exp_code, sub_exp_code, plot_pos = self.getParmsFromFtpWindow()
6320 6357 self.create = True
6321 6358 self.close()
6322 6359
6323 6360 @pyqtSignature("")
6324 6361 def on_ftpCancelButton_clicked(self):
6325 6362 self.create = False
6326 6363 self.close()
6327 6364
6328 6365 def closeEvent(self, event):
6329 6366 self.closed.emit()
6330 6367 event.accept()
6331 6368
6332 6369 class ftpBuffer():
6333 6370 server = None
6334 6371 folder = None
6335 6372 username = None
6336 6373 password = None
6337 6374 ftp_wei = None
6338 6375 exp_code = None
6339 6376 sub_exp_code = None
6340 6377 plot_pos = None
6341 6378 create = False
6342 6379 withoutconfig = False
6343 6380 createforView = False
6344 6381 localfolder = None
6345 6382 extension = None
6346 6383 period = None
6347 6384 protocol = None
6348 6385
6349 6386 def __init__(self):
6350 6387
6351 6388 self.create = False
6352 6389 self.server = None
6353 6390 self.folder = None
6354 6391 self.username = None
6355 6392 self.password = None
6356 6393 self.ftp_wei = None
6357 6394 self.exp_code = None
6358 6395 self.sub_exp_code = None
6359 6396 self.plot_pos = None
6360 6397 # self.create = False
6361 6398 self.localfolder = None
6362 6399 self.extension = None
6363 6400 self.period = None
6364 6401 self.protocol = None
6365 6402
6366 6403 def setwithoutconfiguration(self):
6367 6404
6368 6405 self.create = False
6369 6406 self.server = "jro-app.igp.gob.pe"
6370 6407 self.folder = "/home/wmaster/graficos"
6371 6408 self.username = "wmaster"
6372 6409 self.password = "mst2010vhf"
6373 6410 self.ftp_wei = "0"
6374 6411 self.exp_code = "0"
6375 6412 self.sub_exp_code = "0"
6376 6413 self.plot_pos = "0"
6377 6414 self.withoutconfig = True
6378 6415 self.localfolder = './'
6379 6416 self.extension = '.png'
6380 6417 self.period = '60'
6381 6418 self.protocol = 'ftp'
6419 self.createforView = True
6382 6420
6383 6421 def save(self, server, folder, username, password, ftp_wei, exp_code, sub_exp_code, plot_pos, localfolder='./', extension='.png', period='60', protocol='ftp'):
6384 6422
6385 6423 self.server = server
6386 6424 self.folder = folder
6387 6425 self.username = username
6388 6426 self.password = password
6389 6427 self.ftp_wei = ftp_wei
6390 6428 self.exp_code = exp_code
6391 6429 self.sub_exp_code = sub_exp_code
6392 6430 self.plot_pos = plot_pos
6393 6431 self.create = True
6394 6432 self.withoutconfig = False
6395 6433 self.createforView = True
6396 6434 self.localfolder = localfolder
6397 6435
6398 6436
6399 6437 def recover(self):
6400 6438
6401 6439 return self.server, self.folder, self.username, self.password, self.ftp_wei, self.exp_code, self.sub_exp_code, self.plot_pos
6402 6440
6403 6441 class ShowMeConsole(QtCore.QObject):
6404 6442 textWritten = QtCore.pyqtSignal(str)
6405 6443 def write (self, text):
6406 6444 self.textWritten.emit(str(text))
6407 6445
6408 6446 class PlotManager():
6409 6447 def __init__(self, queue):
6410 6448 self.queue = queue
6411 6449 self.objPlotDict = {}
6412 6450
6413 6451 def processIncoming(self):
6414 6452 while self.queue.qsize():
6415 6453 try:
6416 6454 dataFromQueue = self.queue.get(True)
6417 6455 if dataFromQueue == None:
6418 6456 continue
6419 6457
6420 6458 dataPlot = dataFromQueue['data']
6421 6459 kwargs = dataFromQueue['kwargs']
6422 6460 id = kwargs['id']
6423 6461 if 'channelList' in kwargs.keys():
6424 6462 channelList = kwargs['channelList']
6425 6463 else:
6426 6464 channelList = None
6427 6465 plotname = kwargs.pop('type')
6428 6466
6429 6467 if not(id in self.objPlotDict.keys()):
6430 6468 className = eval(plotname)
6431 6469 self.objPlotDict[id] = className(id, channelList, dataPlot)
6432 6470 self.objPlotDict[id].show()
6433 6471
6434 6472 self.objPlotDict[id].run(dataPlot , **kwargs)
6435 6473
6436 6474 except Queue.Empty:
6437 6475 pass
6438 6476
6439 6477
@@ -1,949 +1,949
1 1 '''
2 2 @author: Daniel Suarez
3 3 '''
4 4 import os
5 5 import glob
6 6 import ftplib
7 7
8 8 try:
9 9 import paramiko
10 10 import scp
11 11 except:
12 12 print "You should install paramiko if you will use SSH protocol to upload files to a server"
13 13
14 14 import multiprocessing
15 15
16 16 import time
17 17 import threading
18 18
19 19
20 20 try:
21 21 from gevent import sleep
22 22 except:
23 23 from time import sleep
24 24
25 25 from schainpy.model.proc.jroproc_base import ProcessingUnit, Operation
26 26
27 27 class Remote(threading.Thread):
28 28 """
29 29 Remote is a parent class used to define the behaviour of FTP and SSH class. These clases are
30 30 used to upload or download files remotely.
31 31
32 32 Non-standard Python modules used:
33 33 None
34 34
35 35 Written by:
36 36
37 37 "Miguel Urco":mailto:miguel.urco@jro.igp.gob.pe Jun. 03, 2015
38 38
39 39 """
40 40
41 41 server = None
42 42 username = None
43 43 password = None
44 44 remotefolder = None
45 45
46 46 period = 60
47 47 fileList = []
48 48 bussy = False
49 49
50 50 def __init__(self, server, username, password, remotefolder, period=60):
51 51
52 52 threading.Thread.__init__(self)
53 53 self._stop = threading.Event()
54 54
55 55 self.status = 0
56 56
57 57 self.period = period
58 58 self.fileList = []
59 59 self.bussy = False
60 60
61 61 self.stopFlag = False
62 62
63 63 print "[Remote Server] Opening server: %s" %server
64 64 if self.open(server, username, password, remotefolder):
65 65 print "[Remote Server] %s server was opened successfully" %server
66 66
67 67 def stop(self):
68 68
69 69 self.stopFlag = True
70 70
71 71 def open(self):
72 72 """
73 73 Connect to server and create a connection class (FTP or SSH) to remote server.
74 74 """
75 75 raise NotImplementedError, "Implement this method in child class"
76 76
77 77 def close(self):
78 78 """
79 79 Close connection to server
80 80 """
81 81 raise NotImplementedError, "Implement this method in child class"
82 82
83 83 def mkdir(self, remotefolder):
84 84 """
85 85 Create a folder remotely
86 86 """
87 87 raise NotImplementedError, "Implement this method in child class"
88 88
89 89 def cd(self, remotefolder):
90 90 """
91 91 Change working directory in remote server
92 92 """
93 93 raise NotImplementedError, "Implement this method in child class"
94 94
95 95 def download(self, filename, localfolder=None):
96 96 """
97 97 Download a file from server to local host
98 98 """
99 99 raise NotImplementedError, "Implement this method in child class"
100 100
101 101 def sendFile(self, fullfilename):
102 102 """
103 103 sendFile method is used to upload a local file to the current directory in remote server
104 104
105 105 Inputs:
106 106 fullfilename - full path name of local file to store in remote directory
107 107
108 108 Returns:
109 109 0 in error case else 1
110 110 """
111 111 raise NotImplementedError, "Implement this method in child class"
112 112
113 113 def upload(self, fullfilename, remotefolder=None):
114 114 """
115 115 upload method is used to upload a local file to remote directory. This method changes
116 116 working directory before sending a file.
117 117
118 118 Inputs:
119 119 fullfilename - full path name of local file to store in remote directory
120 120
121 121 remotefolder - remote directory
122 122
123 123 Returns:
124 124 0 in error case else 1
125 125 """
126 126 print "[Remote Server] Uploading %s to %s:%s" %(fullfilename, self.server, self.remotefolder)
127 127
128 128 if not self.status:
129 129 return 0
130 130
131 131 if remotefolder == None:
132 132 remotefolder = self.remotefolder
133 133
134 134 if not self.cd(remotefolder):
135 135 return 0
136 136
137 137 if not self.sendFile(fullfilename):
138 138 print "[Remote Server] Error uploading file %s" %fullfilename
139 139 return 0
140 140
141 141 print "[Remote Server] upload finished successfully"
142 142
143 143 return 1
144 144
145 145 def delete(self, filename):
146 146 """
147 147 Remove a file from remote server
148 148 """
149 149 pass
150 150
151 151 def updateFileList(self, fileList):
152 152 """
153 153 Remove a file from remote server
154 154 """
155 155
156 156 if fileList == self.fileList:
157 157 return 1
158 158
159 159 init = time.time()
160 160
161 161 while(self.bussy):
162 162 sleep(0.1)
163 163 if time.time() - init > 2*self.period:
164 164 return 0
165 165
166 166 self.fileList = fileList
167 167
168 168 return 1
169 169
170 170 def run(self):
171 171
172 172 if not self.status:
173 173 print "Finishing FTP service"
174 174 return
175 175
176 176 if not self.cd(self.remotefolder):
177 177 raise ValueError, "Could not access to the new remote directory: %s" %self.remotefolder
178 178
179 179 sts = True
180 180
181 181 while True:
182 182
183 183 sleep(self.period)
184 184
185 185 self.bussy = True
186 186
187 187 for thisFile in self.fileList:
188 188 sts = self.upload(thisFile, self.remotefolder)
189 189 if not sts: break
190 190
191 191 if not sts: break
192 192
193 193 self.bussy = False
194 194
195 195 if self.stopFlag:
196 196 break
197 197
198 198 print "[Remote Server] Thread stopped successfully"
199 199
200 200 class FTPClient(Remote):
201 201
202 202 __ftpClientObj = None
203 203
204 204 def __init__(self, server, username, password, remotefolder, period=60):
205 205 """
206 206 """
207 207 Remote.__init__(self, server, username, password, remotefolder, period)
208 208
209 209 def open(self, server, username, password, remotefolder):
210 210
211 211 """
212 212 This method is used to set FTP parameters and establish a connection to remote server
213 213
214 214 Inputs:
215 215 server - remote server IP Address
216 216
217 217 username - remote server Username
218 218
219 219 password - remote server password
220 220
221 221 remotefolder - remote server current working directory
222 222
223 223 Return: void
224 224
225 225 Affects:
226 226 self.status - in case of error or fail connection this parameter is set to 0 else 1
227 227
228 228 """
229 229
230 230 if server == None:
231 231 raise ValueError, "FTP server should be defined"
232 232
233 233 if username == None:
234 234 raise ValueError, "FTP username should be defined"
235 235
236 236 if password == None:
237 237 raise ValueError, "FTP password should be defined"
238 238
239 239 if remotefolder == None:
240 240 raise ValueError, "FTP remote folder should be defined"
241 241
242 242 try:
243 243 ftpClientObj = ftplib.FTP(server)
244 244 except ftplib.all_errors:
245 245 print "FTP server connection fail: %s" %server
246 246 self.status = 0
247 247 return 0
248 248
249 249 try:
250 250 ftpClientObj.login(username, password)
251 251 except ftplib.all_errors:
252 252 print "FTP username or password are incorrect"
253 253 self.status = 0
254 254 return 0
255 255
256 256 if remotefolder == None:
257 257 remotefolder = ftpClientObj.pwd()
258 258 else:
259 259 try:
260 260 ftpClientObj.cwd(remotefolder)
261 261 except ftplib.all_errors:
262 262 print "FTP remote folder is invalid: %s" %remotefolder
263 263 remotefolder = ftpClientObj.pwd()
264 264
265 265 self.server = server
266 266 self.username = username
267 267 self.password = password
268 268 self.remotefolder = remotefolder
269 269 self.__ftpClientObj = ftpClientObj
270 270 self.status = 1
271 271
272 272 return 1
273 273
274 274 def close(self):
275 275 """
276 276 Close connection to remote server
277 277 """
278 278 if not self.status:
279 279 return 0
280 280
281 281 self.__ftpClientObj.close()
282 282
283 283 def mkdir(self, remotefolder):
284 284 """
285 285 mkdir is used to make a new directory in remote server
286 286
287 287 Input:
288 288 remotefolder - directory name
289 289
290 290 Return:
291 291 0 in error case else 1
292 292 """
293 293 if not self.status:
294 294 return 0
295 295
296 296 try:
297 297 self.__ftpClientObj.mkd(dirname)
298 298 except ftplib.all_errors:
299 299 print "Error creating remote folder: %s" %remotefolder
300 300 return 0
301 301
302 302 return 1
303 303
304 304 def cd(self, remotefolder):
305 305 """
306 306 cd is used to change remote working directory on server
307 307
308 308 Input:
309 309 remotefolder - current working directory
310 310
311 311 Affects:
312 312 self.remotefolder
313 313
314 314 Return:
315 315 0 in case of error else 1
316 316 """
317 317 if not self.status:
318 318 return 0
319 319
320 320 if remotefolder == self.remotefolder:
321 321 return 1
322 322
323 323 try:
324 324 self.__ftpClientObj.cwd(remotefolder)
325 325 except ftplib.all_errors:
326 326 print 'Error changing to %s' %remotefolder
327 327 print 'Trying to create remote folder'
328 328
329 329 if not self.mkdir(remotefolder):
330 330 print 'Remote folder could not be created'
331 331 return 0
332 332
333 333 try:
334 334 self.__ftpClientObj.cwd(remotefolder)
335 335 except ftplib.all_errors:
336 336 return 0
337 337
338 338 self.remotefolder = remotefolder
339 339
340 340 return 1
341 341
342 342 def sendFile(self, fullfilename):
343 343
344 344 if not self.status:
345 345 return 0
346 346
347 347 file = open(fullfilename, 'rb')
348 348
349 349 filename = os.path.split(fullfilename)[-1]
350 350
351 351 command = "STOR %s" %filename
352 352
353 353 try:
354 354 self.__ftpClientObj.storbinary(command, file)
355 355 except ftplib.all_errors:
356 356 return 0
357 357
358 358 try:
359 359 self.__ftpClientObj.sendcmd('SITE CHMOD 755 ' + filename)
360 360 except ftplib.all_errors, e:
361 361 print e
362 362
363 363 file.close()
364 364
365 365 return 1
366 366
367 367 class SSHClient(Remote):
368 368
369 369 __sshClientObj = None
370 370 __scpClientObj = None
371 371
372 372 def __init__(self, server, username, password, remotefolder, period=60):
373 373 """
374 374 """
375 375 Remote.__init__(self, server, username, password, remotefolder, period)
376 376
377 377 def open(self, server, username, password, remotefolder, port=22):
378 378
379 379 """
380 380 This method is used to set SSH parameters and establish a connection to a remote server
381 381
382 382 Inputs:
383 383 server - remote server IP Address
384 384
385 385 username - remote server Username
386 386
387 387 password - remote server password
388 388
389 389 remotefolder - remote server current working directory
390 390
391 391 Return: void
392 392
393 393 Affects:
394 394 self.status - in case of error or fail connection this parameter is set to 0 else 1
395 395
396 396 """
397 397
398 398 if server == None:
399 399 raise ValueError, "SSH server should be defined"
400 400
401 401 if username == None:
402 402 raise ValueError, "SSH username should be defined"
403 403
404 404 if password == None:
405 405 raise ValueError, "SSH password should be defined"
406 406
407 407 if remotefolder == None:
408 408 raise ValueError, "SSH remote folder should be defined"
409 409
410 410 try:
411 411 sshClientObj = paramiko.SSHClient()
412 412 except:
413 413 print "SSH server connection fail: %s" %server
414 414 self.status = 0
415 415 return 0
416 416
417 417 sshClientObj.load_system_host_keys()
418 418 sshClientObj.set_missing_host_key_policy(paramiko.WarningPolicy())
419 419
420 420 try:
421 421 sshClientObj.connect(server, username=username, password=password, port=port)
422 422 except :
423 423 print "SSH username or password are incorrect: %s"
424 424 self.status = 0
425 425 return 0
426 426
427 427 scpClientObj = scp.SCPClient(sshClientObj.get_transport(), socket_timeout=30)
428 428
429 429 if remotefolder == None:
430 430 remotefolder = self.pwd()
431 431
432 432 self.server = server
433 433 self.username = username
434 434 self.password = password
435 435 self.__sshClientObj = sshClientObj
436 436 self.__scpClientObj = scpClientObj
437 437 self.status = 1
438 438
439 439 if not self.cd(remotefolder):
440 440 raise ValueError, "Could not access to remote folder: %s" %remotefolder
441 441 return 0
442 442
443 443 self.remotefolder = remotefolder
444 444
445 445 return 1
446 446
447 447 def close(self):
448 448 """
449 449 Close connection to remote server
450 450 """
451 451 if not self.status:
452 452 return 0
453 453
454 454 self.__sshObj.close()
455 455
456 456 def __execute(self, command):
457 457 """
458 458 __execute a command on remote server
459 459
460 460 Input:
461 461 command - Exmaple 'ls -l'
462 462
463 463 Return:
464 464 0 in error case else 1
465 465 """
466 466 if not self.status:
467 467 return 0
468 468
469 469 stdin, stdout, stderr = self.__sshClientObj.exec_command(command)
470 470
471 471 result = stderr.readlines()
472 472 if len(result) > 1:
473 473 return 0
474 474
475 475 result = stdout.readlines()
476 476 if len(result) > 1:
477 477 return result[0][:-1]
478 478
479 479 return 1
480 480
481 481 def mkdir(self, remotefolder):
482 482 """
483 483 mkdir is used to make a new directory in remote server
484 484
485 485 Input:
486 486 remotefolder - directory name
487 487
488 488 Return:
489 489 0 in error case else 1
490 490 """
491 491
492 492 command = 'mkdir %s' %remotefolder
493 493
494 494 return self.__execute(command)
495 495
496 496 def pwd(self):
497 497
498 498 command = 'pwd'
499 499
500 500 return self.__execute(command)
501 501
502 502 def cd(self, remotefolder):
503 503 """
504 504 cd is used to change remote working directory on server
505 505
506 506 Input:
507 507 remotefolder - current working directory
508 508
509 509 Affects:
510 510 self.remotefolder
511 511
512 512 Return:
513 513 0 in case of error else 1
514 514 """
515 515 if not self.status:
516 516 return 0
517 517
518 518 if remotefolder == self.remotefolder:
519 519 return 1
520 520
521 521 chk_command = "cd %s; pwd" %remotefolder
522 522 mkdir_command = "mkdir %s" %remotefolder
523 523
524 524 if not self.__execute(chk_command):
525 525 if not self.__execute(mkdir_command):
526 526 self.remotefolder = None
527 527 return 0
528 528
529 529 self.remotefolder = remotefolder
530 530
531 531 return 1
532 532
533 533 def sendFile(self, fullfilename):
534 534
535 535 if not self.status:
536 536 return 0
537 537
538 538 try:
539 539 self.__scpClientObj.put(fullfilename, remote_path=self.remotefolder)
540 540 except:
541 541 return 0
542 542
543 543 remotefile = os.path.join(self.remotefolder, os.path.split(fullfilename)[-1])
544 544 command = 'chmod 775 %s' %remotefile
545 545
546 546 return self.__execute(command)
547 547
548 548 class SendToServer(ProcessingUnit):
549 549
550 550 def __init__(self):
551 551
552 552 ProcessingUnit.__init__(self)
553 553
554 554 self.isConfig = False
555 555 self.clientObj = None
556 556
557 def setup(self, server, username, password, remotefolder, localfolder, ext='.png', period=60, protocol='ftp'):
557 def setup(self, server, username, password, remotefolder, localfolder, ext='.png', period=60, protocol='ftp', **kwargs):
558 558
559 559 self.clientObj = None
560 560 self.localfolder = localfolder
561 561 self.ext = ext
562 562 self.period = period
563 563
564 564 if str.lower(protocol) == 'ftp':
565 565 self.clientObj = FTPClient(server, username, password, remotefolder, period)
566 566
567 567 if str.lower(protocol) == 'ssh':
568 568 self.clientObj = SSHClient(server, username, password, remotefolder, period)
569 569
570 570 if not self.clientObj:
571 571 raise ValueError, "%s has been chosen as remote access protocol but it is not valid" %protocol
572 572
573 573 self.clientObj.start()
574 574
575 575 def findFiles(self):
576 576
577 577 filenameList = glob.glob1(self.localfolder, '*%s' %self.ext)
578 578
579 579 if len(filenameList) < 1:
580 580 return []
581 581
582 582 fullfilenameList = [os.path.join(self.localfolder, thisFile) for thisFile in filenameList]
583 583
584 584 return fullfilenameList
585 585
586 586 def run(self, **kwargs):
587 587
588 588 if not self.isConfig:
589 589 self.init = time.time()
590 590 self.setup(**kwargs)
591 591 self.isConfig = True
592 592
593 593 if time.time() - self.init >= self.period:
594 594 fullfilenameList = self.findFiles()
595 595 self.clientObj.updateFileList(fullfilenameList)
596 596 self.init = time.time()
597 597
598 598 def close(self):
599 599 print "[Remote Server] Stopping thread"
600 600 self.clientObj.stop()
601 601
602 602
603 603 class FTP(object):
604 604 """
605 605 Ftp is a public class used to define custom File Transfer Protocol from "ftplib" python module
606 606
607 607 Non-standard Python modules used: None
608 608
609 609 Written by "Daniel Suarez":mailto:daniel.suarez@jro.igp.gob.pe Oct. 26, 2010
610 610 """
611 611
612 612 def __init__(self,server = None, username=None, password=None, remotefolder=None):
613 613 """
614 614 This method is used to setting parameters for FTP and establishing connection to remote server
615 615
616 616 Inputs:
617 617 server - remote server IP Address
618 618
619 619 username - remote server Username
620 620
621 621 password - remote server password
622 622
623 623 remotefolder - remote server current working directory
624 624
625 625 Return: void
626 626
627 627 Affects:
628 628 self.status - in Error Case or Connection Failed this parameter is set to 1 else 0
629 629
630 630 self.folderList - sub-folder list of remote folder
631 631
632 632 self.fileList - file list of remote folder
633 633
634 634
635 635 """
636 636
637 637 if ((server == None) and (username==None) and (password==None) and (remotefolder==None)):
638 638 server, username, password, remotefolder = self.parmsByDefault()
639 639
640 640 self.server = server
641 641 self.username = username
642 642 self.password = password
643 643 self.remotefolder = remotefolder
644 644 self.file = None
645 645 self.ftp = None
646 646 self.status = 0
647 647
648 648 try:
649 649 self.ftp = ftplib.FTP(self.server)
650 650 self.ftp.login(self.username,self.password)
651 651 self.ftp.cwd(self.remotefolder)
652 652 # print 'Connect to FTP Server: Successfully'
653 653
654 654 except ftplib.all_errors:
655 655 print 'Error FTP Service'
656 656 self.status = 1
657 657 return
658 658
659 659
660 660
661 661 self.dirList = []
662 662
663 663 try:
664 664 self.dirList = self.ftp.nlst()
665 665
666 666 except ftplib.error_perm, resp:
667 667 if str(resp) == "550 No files found":
668 668 print "no files in this directory"
669 669 self.status = 1
670 670 return
671 671
672 672 except ftplib.all_errors:
673 673 print 'Error Displaying Dir-Files'
674 674 self.status = 1
675 675 return
676 676
677 677 self.fileList = []
678 678 self.folderList = []
679 679 #only for test
680 680 for f in self.dirList:
681 681 name, ext = os.path.splitext(f)
682 682 if ext != '':
683 683 self.fileList.append(f)
684 684 # print 'filename: %s - size: %d'%(f,self.ftp.size(f))
685 685
686 686 def parmsByDefault(self):
687 687 server = 'jro-app.igp.gob.pe'
688 688 username = 'wmaster'
689 689 password = 'mst2010vhf'
690 690 remotefolder = '/home/wmaster/graficos'
691 691
692 692 return server, username, password, remotefolder
693 693
694 694
695 695 def mkd(self,dirname):
696 696 """
697 697 mkd is used to make directory in remote server
698 698
699 699 Input:
700 700 dirname - directory name
701 701
702 702 Return:
703 703 1 in error case else 0
704 704 """
705 705 try:
706 706 self.ftp.mkd(dirname)
707 707 except:
708 708 print 'Error creating remote folder:%s'%dirname
709 709 return 1
710 710
711 711 return 0
712 712
713 713
714 714 def delete(self,filename):
715 715 """
716 716 delete is used to delete file in current working directory of remote server
717 717
718 718 Input:
719 719 filename - filename to delete in remote folder
720 720
721 721 Return:
722 722 1 in error case else 0
723 723 """
724 724
725 725 try:
726 726 self.ftp.delete(filename)
727 727 except:
728 728 print 'Error deleting remote file:%s'%filename
729 729 return 1
730 730
731 731 return 0
732 732
733 733 def download(self,filename,localfolder):
734 734 """
735 735 download is used to downloading file from remote folder into local folder
736 736
737 737 Inputs:
738 738 filename - filename to donwload
739 739
740 740 localfolder - directory local to store filename
741 741
742 742 Returns:
743 743 self.status - 1 in error case else 0
744 744 """
745 745
746 746 self.status = 0
747 747
748 748
749 749 if not(filename in self.fileList):
750 750 print 'filename:%s not exists'%filename
751 751 self.status = 1
752 752 return self.status
753 753
754 754 newfilename = os.path.join(localfolder,filename)
755 755
756 756 self.file = open(newfilename, 'wb')
757 757
758 758 try:
759 759 print 'Download: ' + filename
760 760 self.ftp.retrbinary('RETR ' + filename, self.__handleDownload)
761 761 print 'Download Complete'
762 762 except ftplib.all_errors:
763 763 print 'Error Downloading ' + filename
764 764 self.status = 1
765 765 return self.status
766 766
767 767 self.file.close()
768 768
769 769 return self.status
770 770
771 771
772 772 def __handleDownload(self,block):
773 773 """
774 774 __handleDownload is used to handle writing file
775 775 """
776 776 self.file.write(block)
777 777
778 778
779 779 def upload(self,filename,remotefolder=None):
780 780 """
781 781 upload is used to uploading local file to remote directory
782 782
783 783 Inputs:
784 784 filename - full path name of local file to store in remote directory
785 785
786 786 remotefolder - remote directory
787 787
788 788 Returns:
789 789 self.status - 1 in error case else 0
790 790 """
791 791
792 792 if remotefolder == None:
793 793 remotefolder = self.remotefolder
794 794
795 795 self.status = 0
796 796
797 797 try:
798 798 self.ftp.cwd(remotefolder)
799 799
800 800 self.file = open(filename, 'rb')
801 801
802 802 (head, tail) = os.path.split(filename)
803 803
804 804 command = "STOR " + tail
805 805
806 806 print 'Uploading: ' + tail
807 807 self.ftp.storbinary(command, self.file)
808 808 print 'Upload Completed'
809 809
810 810 except ftplib.all_errors:
811 811 print 'Error Uploading ' + tail
812 812 self.status = 1
813 813 return self.status
814 814
815 815 self.file.close()
816 816
817 817 #back to initial directory in __init__()
818 818 self.ftp.cwd(self.remotefolder)
819 819
820 820 return self.status
821 821
822 822
823 823 def dir(self,remotefolder):
824 824 """
825 825 dir is used to change working directory of remote server and get folder and file list
826 826
827 827 Input:
828 828 remotefolder - current working directory
829 829
830 830 Affects:
831 831 self.fileList - file list of working directory
832 832
833 833 Return:
834 834 infoList - list with filenames and size of file in bytes
835 835
836 836 self.folderList - folder list
837 837 """
838 838
839 839 self.remotefolder = remotefolder
840 840 print 'Change to ' + self.remotefolder
841 841 try:
842 842 self.ftp.cwd(remotefolder)
843 843 except ftplib.all_errors:
844 844 print 'Error Change to ' + self.remotefolder
845 845 infoList = None
846 846 self.folderList = None
847 847 return infoList,self.folderList
848 848
849 849 self.dirList = []
850 850
851 851 try:
852 852 self.dirList = self.ftp.nlst()
853 853
854 854 except ftplib.error_perm, resp:
855 855 if str(resp) == "550 No files found":
856 856 print "no files in this directory"
857 857 infoList = None
858 858 self.folderList = None
859 859 return infoList,self.folderList
860 860 except ftplib.all_errors:
861 861 print 'Error Displaying Dir-Files'
862 862 infoList = None
863 863 self.folderList = None
864 864 return infoList,self.folderList
865 865
866 866 infoList = []
867 867 self.fileList = []
868 868 self.folderList = []
869 869 for f in self.dirList:
870 870 name,ext = os.path.splitext(f)
871 871 if ext != '':
872 872 self.fileList.append(f)
873 873 value = (f,self.ftp.size(f))
874 874 infoList.append(value)
875 875
876 876 if ext == '':
877 877 self.folderList.append(f)
878 878
879 879 return infoList,self.folderList
880 880
881 881
882 882 def close(self):
883 883 """
884 884 close is used to close and end FTP connection
885 885
886 886 Inputs: None
887 887
888 888 Return: void
889 889
890 890 """
891 891 self.ftp.close()
892 892
893 893 class SendByFTP(Operation):
894 894
895 895 def __init__(self):
896 896
897 897 self.status = 1
898 898 self.counter = 0
899 899
900 900 def error_print(self, ValueError):
901 901
902 902 print ValueError, 'Error FTP'
903 903 print "don't worry the program is running..."
904 904
905 905 def worker_ftp(self, server, username, password, remotefolder, filenameList):
906 906
907 907 self.ftpClientObj = FTP(server, username, password, remotefolder)
908 908 for filename in filenameList:
909 909 self.ftpClientObj.upload(filename)
910 910 self.ftpClientObj.close()
911 911
912 912 def ftp_thread(self, server, username, password, remotefolder):
913 913 if not(self.status):
914 914 return
915 915
916 916 p = multiprocessing.Process(target=self.worker_ftp, args=(server, username, password, remotefolder, self.filenameList,))
917 917 p.start()
918 918
919 919 p.join(3)
920 920
921 921 if p.is_alive():
922 922 p.terminate()
923 923 p.join()
924 924 print 'killing ftp process...'
925 925 self.status = 0
926 926 return
927 927
928 928 self.status = 1
929 929 return
930 930
931 931 def filterByExt(self, ext, localfolder):
932 932 fnameList = glob.glob1(localfolder,ext)
933 933 self.filenameList = [os.path.join(localfolder,x) for x in fnameList]
934 934
935 935 if len(self.filenameList) == 0:
936 936 self.status = 0
937 937
938 938 def run(self, dataOut, ext, localfolder, remotefolder, server, username, password, period=1):
939 939
940 940 self.counter += 1
941 941 if self.counter >= period:
942 942 self.filterByExt(ext, localfolder)
943 943
944 944 self.ftp_thread(server, username, password, remotefolder)
945 945
946 946 self.counter = 0
947 947
948 948 self.status = 1
949 949
General Comments 0
You need to be logged in to leave comments. Login now