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