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