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