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