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