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