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