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