##// END OF EJS Templates
New GUI added (kivy framework), clean code, delete unused files
Juan C. Espinoza -
r1288:8eedfb38dc53
parent child
Show More
@@ -1,11 +1,13
1 1 ## CHANGELOG:
2 2
3 3 ### 3.0
4 * Python 3.x compatible
5 * New architecture with multiprocessing and IPC communication
6 * Add @MPDecorator for multiprocessing Units and Operations
4 * Python 3.x & 2.X compatible
5 * New architecture with multiprocessing support
6 * Add @MPDecorator for multiprocessing Operations (Plots, Writers and Publishers)
7 7 * Added new type of operation `external` for non-locking operations
8 8 * New plotting architecture with buffering/throttle capabilities to speed up plots
9 * Clean controller to optimize scripts (format & optype are no longer required)
10 * New GUI with dinamic load of Units and operations (use Kivy framework)
9 11
10 12 ### 2.3
11 13 * Added support for Madrigal formats (reading/writing).
@@ -1,1 +0,0
1 from viewcontroller import * No newline at end of file
@@ -1,39 +1,325
1 1 #!/usr/bin/env python
2 2 import os
3 3 import sys
4 import ast
5
6 from schainpy.controller import Project
7 from schainpy.cli import cli
4 8 from schainpy.utils import log
5 9
6 10 try:
7 from PyQt4 import QtCore, QtGui
8 from PyQt4.QtGui import QApplication
11 import kivy
12 from kivy.app import App
13 from kivy.uix.label import Label
14 from kivy.uix.boxlayout import BoxLayout
15 from kivy.uix.gridlayout import GridLayout
16 from kivy.uix.textinput import TextInput
17 from kivy.uix.button import Button
18 from kivy.uix.dropdown import DropDown
19 from kivy.uix.togglebutton import ToggleButton
20 from kivy.uix.popup import Popup
21 from kivy.uix.filechooser import FileChooserListView
9 22 except:
10 23 log.error(
11 'You should install PyQt4 module in order to run the GUI. See the README.')
24 'You should install kivy module in order to run the GUI.')
12 25 sys.exit()
13 26
14 from schainpy.gui.viewcontroller.initwindow import InitWindow
15 from schainpy.gui.viewcontroller.basicwindow import BasicWindow
16 from schainpy.gui.viewcontroller.workspace import Workspace
17 27
28 DEFAULTS = {
29 'path': os.path.expanduser('~'),
30 'startDate': '2018/01/01',
31 'endDate': '2020/01/01',
32 'startTime': '00:00:00',
33 'endTime': '23:59:59',
34 'online': '1',
35 'delay': '30',
36 'walk': '1',
37 'show': '1',
38 'zmin': '10',
39 'zmax': '40',
40 }
41
42
43 class MainLayout(BoxLayout):
44 def __init__(self, **kwargs):
45 super(MainLayout, self).__init__(**kwargs)
46
47 self.workspace = os.path.join(os.path.expanduser('~'), 'workspace/scripts')
48 self.current_unit_id = None
49 self._units = []
50 self.project = Project()
51 self.project.setup(id='1', name='test', description='')
52
53 self.sidebar_left = BoxLayout(orientation='vertical', size_hint_x=0.4, spacing=5)
54 self.body = BoxLayout(orientation='vertical', spacing=5)
55 self.sidebar_right = BoxLayout(orientation='vertical', size_hint_x=0.6, spacing=5)
56
57 bt_prj = Button(text='Project')
58 bt_prj.bind(on_press=self.show_project)
59 self.sidebar_left.add_widget(bt_prj)
60
61 bt_add_unit = Button(text='Add Unit')
62 bt_add_unit.bind(on_press=self.select_unit)
63 self.sidebar_left.add_widget(bt_add_unit)
64
65 bt_add_operation = Button(text='Add Operation')
66 bt_add_operation.bind(on_press=self.select_operation)
67 self.sidebar_left.add_widget(bt_add_operation)
68
69 bt_import = Button(text='Import')
70 bt_import.bind(on_press=self.load)
71 self.sidebar_left.add_widget(bt_import)
72
73 bt_export = Button(text='Export')
74 bt_export.bind(on_press=self.export)
75 self.sidebar_left.add_widget(bt_export)
76
77 bt_run = Button(text='Run')
78 bt_run.bind(on_press=self.run)
79 self.sidebar_left.add_widget(bt_run)
80
81 bt_stop = Button(text='Stop')
82 bt_stop.bind(on_press = self.stop)
83 self.sidebar_left.add_widget(bt_stop)
84
85 bt_exit = Button(text = 'Exit', height = 40, size_hint_y = None, background_color=(1, 0, 0, 1))
86 bt_exit.bind(on_press=App.get_running_app().stop)
87 self.sidebar_left.add_widget(bt_exit)
88
89 self.add_widget(self.sidebar_left)
90 self.add_widget(self.body)
91 self.add_widget(self.sidebar_right)
92
93 def update_body(self):
94
95 self._units = []
96 self.body.clear_widgets()
97 self.sidebar_right.clear_widgets()
98
99 for unit in self.project.getUnits():
100 box = GridLayout(cols=3)
101 bt = ToggleButton(text=unit.name, group='units')
102 bt._obj = unit
103 bt.bind(on_press=self.show_parameters)
104 box.add_widget(bt)
105 self._units.append(bt)
106
107 for operation in unit.operations:
108 bt_op = Button(text = operation.name, background_color=(1, 0.5, 0, 1))
109 bt_op._id = unit.id
110 bt_op._obj = operation
111 bt_op.bind(on_press=self.show_parameters)
112 box.add_widget(bt_op)
113
114 self.body.add_widget(box)
115
116 print(self.project)
117
118 def show_parameters(self, instance):
119
120 obj = instance._obj
121 self.current_unit_id = obj.id
122 self.sidebar_right.clear_widgets()
123
124 if obj and obj.parameters:
125 self._params = {}
126
127 for key, value in obj.getParameters().items():
128 self.sidebar_right.add_widget(Label(text=key))
129 text = TextInput(text=value, multiline=False)
130 self._params[key] = text
131 self.sidebar_right.add_widget(text)
132
133 bt_save = Button(text = 'Save', height = 40, size_hint_y = None, background_color=(0, 1, 0, 1))
134 bt_save._obj = obj
135 if hasattr(instance, '_id'):
136 bt_save._id = instance._id
137 self.current_unit_id = None
138 bt_save.bind(on_press=self.save_parameters)
139 self.sidebar_right.add_widget(bt_save)
140
141 bt_delete = Button(text = 'Delete', height = 40, size_hint_y = None, background_color=(1, 0, 0, 1))
142 bt_delete._obj = obj
143 if hasattr(instance, '_id'):
144 bt_delete._id = instance._id
145 self.current_unit_id = obj.id
146 bt_delete.bind(on_press=self.delete_object)
147 self.sidebar_right.add_widget(bt_delete)
148
149 def save_parameters(self, instance):
150
151 obj = instance._obj
152 params = {}
153 for key in self._params:
154 if self._params[key]:
155 params[key] = self._params[key].text
156
157 if hasattr(instance, '_id'):
158 unit = self.project.getProcUnit(instance._id)
159 op = unit.getOperation(obj.id)
160 op.update(**params)
161 else:
162 unit = self.project.getProcUnit(obj.id)
163 unit.update(**params)
164
165 def delete_object(self, instance):
166
167 obj = instance._obj
168
169 if hasattr(instance, '_id'):
170 unit = self.project.getProcUnit(instance._id)
171 unit.removeOperation(obj.id)
172 else:
173 self.project.removeProcUnit(obj.id)
174
175 self.project.updateId(self.project.id)
176 self.update_body()
177
178 def show_project(self, instance):
179
180 self.sidebar_right.clear_widgets()
181 self._params = {}
182 for label in ['Id', 'Name', 'Description']:
183 self.sidebar_right.add_widget(Label(text=label))
184 text = TextInput(text=getattr(self.project, label.lower()), multiline=False)
185 self._params[label] = text
186 self.sidebar_right.add_widget(text)
187
188 self.sidebar_right.add_widget(Label(text='Workspace'))
189 text = TextInput(text=getattr(self, 'workspace'), multiline=False)
190 self._params['Workspace'] = text
191 self.sidebar_right.add_widget(text)
192
193 bt_save = Button(text = 'Save', height = 40, size_hint_y = None, background_color=(0, 1, 0, 1))
194 bt_save.bind(on_press = self.save_project_parameters)
195 self.sidebar_right.add_widget(bt_save)
196
197 def save_project_parameters(self, instance):
198
199 for label in ['Id', 'Name', 'Description']:
200 setattr(self.project, label.lower(), self._params[label].text)
201
202 setattr(self, 'workspace', self._params['Workspace'].text)
203
204 def select_unit(self, instance):
205
206 self.sidebar_right.clear_widgets()
207 bt_main = Button(text = 'Select Unit', height = 40, size_hint_y = None)
208 dropdown = DropDown()
209
210 for unit in cli.getProcs():
211
212 btn = Button(text = unit, size_hint_y = None, height = 40)
213 btn.bind(on_release = lambda btn: dropdown.select(btn.text))
214 dropdown.add_widget(btn)
215
216 bt_main.bind(on_release = dropdown.open)
217 dropdown.bind(on_select = lambda instance, x: setattr(bt_main, 'text', x))
218
219 bt_add = Button(text = 'Add', height = 40, size_hint_y = None, background_color=(0, 1, 0, 1))
220 bt_add.bind(on_press = lambda instance: self.add_unit(bt_main.text))
221
222 self.sidebar_right.add_widget(bt_main)
223 self.sidebar_right.add_widget(bt_add)
224
225 def add_unit(self, s):
226
227 if s:
228 if 'Reader' in s:
229 unit = self.project.addReadUnit(name=s)
230 else:
231 *_, last = self.project.getUnits()
232 unit = self.project.addProcUnit(name=s, inputId=last.id)
233
234 keys = cli.getArgs(unit.name)
235 values = [DEFAULTS[key] if key in DEFAULTS else '' for key in keys]
236 unit.update(**dict(zip(keys, values)))
237 self.update_body()
238
239 def select_operation(self, instance):
240
241 self.sidebar_right.clear_widgets()
242 btns = [bt.state == 'down' for bt in self._units]
243 if True in btns:
244 bt_main = Button(text = 'Select Operation', height = 40, size_hint_y = None)
245 dropdown = DropDown()
246
247 for unit in cli.getOperations():
248
249 btn = Button(text = unit, size_hint_y = None, height = 40)
250 btn.bind(on_release = lambda btn: dropdown.select(btn.text))
251 dropdown.add_widget(btn)
252
253 bt_main.bind(on_release = dropdown.open)
254 dropdown.bind(on_select = lambda instance, x: setattr(bt_main, 'text', x))
255
256 bt_add = Button(text = 'Add', height = 40, size_hint_y = None, background_color=(0, 1, 0, 1))
257 bt_add.bind(on_press = lambda instance: self.add_operation(bt_main.text))
258
259 self.sidebar_right.add_widget(bt_main)
260 self.sidebar_right.add_widget(bt_add)
261 else:
262 self.sidebar_right.add_widget(Label(text='Select Unit'))
263
264 def add_operation(self, s):
265
266 if s:
267 unit = self.project.getProcUnit(self.current_unit_id)
268 op = unit.addOperation(name=s)
269 keys = cli.getArgs(op.name)
270 values = [DEFAULTS[key] if key in DEFAULTS else '' for key in keys]
271 op.update(**dict(zip(keys, values)))
272 self.update_body()
273
274 def run(self, instance):
275
276 if self.project and self.project.is_alive():
277 self.sidebar_right.clear_widgets()
278 self.sidebar_right.add_widget(Label(text='Project running'))
279 else:
280 if self.project.exitcode is None:
281 self.project.start()
282 else:
283 self.project = self.project.clone()
284 self.project.start()
285
286 def stop(self, instance):
287
288 if self.project and self.project.is_alive():
289 self.project.kill()
290 log.error('Project Stopped by user', 'GUI')
291 else:
292 self.sidebar_right.clear_widgets()
293 self.sidebar_right.add_widget(Label(text='Project not running'))
294
295 def load(self, instance):
296
297 self.sidebar_right.clear_widgets()
298 textinput = FileChooserListView(
299 path=self.workspace, size_hint=(1, 1), dirselect=False, filters=['*.xml'])
300
301 self.sidebar_right.add_widget(textinput)
302 bt_open = Button(text = 'Open', height = 40, size_hint_y = None, background_color=(0, 1, 0, 1))
303 bt_open.textinput = textinput
304 bt_open.bind(on_press = self.load_file)
305 self.sidebar_right.add_widget(bt_open)
18 306
19 def main():
307 def load_file(self, instance):
20 308
21 app = QtGui.QApplication(sys.argv)
309 self.project.readXml(instance.textinput.selection[0])
310 self.update_body()
22 311
23 Welcome = InitWindow()
312 def export(self, instance):
24 313
25 if not Welcome.exec_():
26 sys.exit(-1)
314 filename = os.path.join(self.workspace, '{}.xml'.format(self.project.name))
315 self.project.writeXml(filename)
316 log.success('File created: {}'.format(filename), 'GUI')
27 317
28 WorkPathspace = Workspace()
29 if not WorkPathspace.exec_():
30 sys.exit(-1)
31 318
32 MainGUI = BasicWindow()
33 MainGUI.setWorkSpaceGUI(WorkPathspace.dirComBox.currentText())
34 MainGUI.show()
35 sys.exit(app.exec_())
319 class SignalChainApp(App):
320 def build(self):
321 return MainLayout(spacing=10)
36 322
37 323
38 324 if __name__ == "__main__":
39 main()
325 SignalChainApp().run() No newline at end of file
@@ -362,7 +362,7 class deFlip(Operation):
362 362
363 363 class setAttribute(Operation):
364 364 '''
365 Set an arbitrary attribute to dataOut
365 Set an arbitrary attribute(s) to dataOut
366 366 '''
367 367
368 368 def __init__(self):
@@ -35,14 +35,9 setup(
35 35 'schainpy.model.utils',
36 36 'schainpy.utils',
37 37 'schainpy.gui',
38 'schainpy.gui.figures',
39 'schainpy.gui.viewcontroller',
40 'schainpy.gui.viewer',
41 'schainpy.gui.viewer.windows',
42 38 'schainpy.cli',
43 39 },
44 40 package_data = {'': ['schain.conf.template'],
45 'schainpy.gui.figures': ['*.png', '*.jpg'],
46 41 'schainpy.files': ['*.oga']
47 42 },
48 43 include_package_data = False,
@@ -1,10 +0,0
1 ROADMAP FOR SCHAIN BRANCHES
2 ===============================
3 <Enter>
4 ### BRANCH - SCHAIN_MP
5 * Revisar si funciona con varios publishers.
6 * Revisar xRange y reinicializaciΓ³n de grΓ‘fico.
7 * Grabar cada spectra independientemente.
8 * Agregar kwargs al init
9 * Agregar grΓ‘ficos restantes
10 * PresentaciΓ³n
@@ -1,9 +0,0
1 # schain
2
3 Command Line Interface for SIGNAL CHAIN - jro
4
5 # Usage
6
7 To use it:
8
9 $ schain-cli --help
@@ -1,179 +0,0
1 import threading
2 from queue import Queue
3
4 from schainpy.controller import Project
5 from schainpy.model.graphics.jroplotter import PlotManager
6
7 class ControllerThread(threading.Thread, Project):
8
9 def __init__(self, plotter_queue=None):
10
11 threading.Thread.__init__(self)
12 Project.__init__(self, plotter_queue)
13
14 self.setDaemon(True)
15
16 self.lock = threading.Lock()
17 self.control = { 'stop':False, 'pause':False }
18
19 def __del__(self):
20
21 self.control['stop'] = True
22
23 def stop(self):
24
25 self.lock.acquire()
26
27 self.control['stop'] = True
28
29 self.lock.release()
30
31 def pause(self):
32
33 self.lock.acquire()
34
35 self.control['pause'] = not(self.control['pause'])
36 paused = self.control['pause']
37
38 self.lock.release()
39
40 return paused
41
42 def isPaused(self):
43
44 self.lock.acquire()
45 paused = self.control['pause']
46 self.lock.release()
47
48 return paused
49
50 def isStopped(self):
51
52 self.lock.acquire()
53 stopped = self.control['stop']
54 self.lock.release()
55
56 return stopped
57
58 def run(self):
59 self.control['stop'] = False
60 self.control['pause'] = False
61
62 self.writeXml()
63
64 self.createObjects()
65 self.connectObjects()
66 Project.run(self)
67
68 def isRunning(self):
69
70 return self.is_alive()
71
72 def isFinished(self):
73
74 return not self.is_alive()
75
76 def setPlotters(self):
77
78 plotterList = PlotManager.plotterList
79
80 for thisPUConfObj in list(self.procUnitConfObjDict.values()):
81
82 inputId = thisPUConfObj.getInputId()
83
84 if int(inputId) == 0:
85 continue
86
87 for thisOpObj in thisPUConfObj.getOperationObjList():
88
89 if thisOpObj.type == "self":
90 continue
91
92 if thisOpObj.name in plotterList:
93 thisOpObj.type = "other"
94
95 def setPlotterQueue(self, plotter_queue):
96
97 self.plotterQueue = plotter_queue
98
99 def getPlotterQueue(self):
100
101 return self.plotterQueue
102
103 def useExternalPlotter(self):
104
105 self.plotterQueue = Queue(10)
106 self.setPlotters()
107
108 plotManagerObj = PlotManager(self.plotterQueue)
109 plotManagerObj.setController(self)
110
111 return plotManagerObj
112
113 # from PyQt4 import QtCore
114 # from PyQt4.QtCore import SIGNAL
115 #
116 # class ControllerQThread(QtCore.QThread, Project):
117 #
118 # def __init__(self, filename):
119 #
120 # QtCore.QThread.__init__(self)
121 # Project.__init__(self)
122 #
123 # self.filename = filename
124 #
125 # self.lock = threading.Lock()
126 # self.control = {'stop':False, 'pause':False}
127 #
128 # def __del__(self):
129 #
130 # self.control['stop'] = True
131 # self.wait()
132 #
133 # def stop(self):
134 #
135 # self.lock.acquire()
136 #
137 # self.control['stop'] = True
138 #
139 # self.lock.release()
140 #
141 # def pause(self):
142 #
143 # self.lock.acquire()
144 #
145 # self.control['pause'] = not(self.control['pause'])
146 # paused = self.control['pause']
147 #
148 # self.lock.release()
149 #
150 # return paused
151 #
152 # def isPaused(self):
153 #
154 # self.lock.acquire()
155 # paused = self.control['pause']
156 # self.lock.release()
157 #
158 # return paused
159 #
160 # def isStopped(self):
161 #
162 # self.lock.acquire()
163 # stopped = self.control['stop']
164 # self.lock.release()
165 #
166 # return stopped
167 #
168 # def run(self):
169 #
170 # self.control['stop'] = False
171 # self.control['pause'] = False
172 #
173 # self.readXml(self.filename)
174 # self.createObjects()
175 # self.connectObjects()
176 # self.emit( SIGNAL( "jobStarted( PyQt_PyObject )" ), 1)
177 # Project.run(self)
178 # self.emit( SIGNAL( "jobFinished( PyQt_PyObject )" ), 1)
179 # No newline at end of file
@@ -1,7 +0,0
1 # ~/.bash_logout: executed by bash(1) when login shell exits.
2
3 # when leaving the console clear the screen to increase privacy
4
5 if [ "$SHLVL" = 1 ]; then
6 [ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q
7 fi
1 NO CONTENT: file was removed
1 NO CONTENT: file was removed, binary diff hidden
1 NO CONTENT: file was removed, binary diff hidden
1 NO CONTENT: file was removed, binary diff hidden
1 NO CONTENT: file was removed, binary diff hidden
1 NO CONTENT: file was removed, binary diff hidden
1 NO CONTENT: file was removed, binary diff hidden
1 NO CONTENT: file was removed, binary diff hidden
1 NO CONTENT: file was removed, binary diff hidden
1 NO CONTENT: file was removed, binary diff hidden
1 NO CONTENT: file was removed, binary diff hidden
1 NO CONTENT: file was removed, binary diff hidden
1 NO CONTENT: file was removed, binary diff hidden
1 NO CONTENT: file was removed, binary diff hidden
1 NO CONTENT: file was removed, binary diff hidden
1 NO CONTENT: file was removed, binary diff hidden
1 NO CONTENT: file was removed, binary diff hidden
1 NO CONTENT: file was removed, binary diff hidden
1 NO CONTENT: file was removed, binary diff hidden
1 NO CONTENT: file was removed, binary diff hidden
1 NO CONTENT: file was removed, binary diff hidden
1 NO CONTENT: file was removed, binary diff hidden
1 NO CONTENT: file was removed, binary diff hidden
1 NO CONTENT: file was removed, binary diff hidden
1 NO CONTENT: file was removed, binary diff hidden
1 NO CONTENT: file was removed, binary diff hidden
@@ -1,15 +0,0
1 import os, sys
2
3 def get_path ():
4 """Borrowed from wxglade.py"""
5 try:
6 root = __file__
7 if os.path.islink (root):
8 root = os.path.realpath (root)
9
10 return os.path.dirname (os.path.abspath (root))
11 except:
12 print "I'm sorry, but something is wrong."
13 print "There is no __file__ variable. Please contact the author."
14 return ""
15 No newline at end of file
1 NO CONTENT: file was removed, binary diff hidden
1 NO CONTENT: file was removed
This diff has been collapsed as it changes many lines, (6223 lines changed) Show them Hide them
@@ -1,6223 +0,0
1 # -*- coding: utf-8 -*-
2 """
3 Module implementing MainWindow.
4 #+++++++++++++GUI V1++++++++++++++#
5 @author: AlexanderValdezPortocarrero
6
7 #+++++++++++++GUI V2++++++++++++++#
8 @author Miguel Urco
9 """
10 import os, sys
11 import datetime
12 import numpy
13 import ast
14
15 from Queue import Queue
16
17 from collections import OrderedDict
18 from os.path import expanduser
19 from time import sleep
20
21 from PyQt4.QtGui import QMainWindow
22 from PyQt4.QtCore import pyqtSignature
23 from PyQt4.QtCore import pyqtSignal
24 from PyQt4 import QtCore
25 from PyQt4 import QtGui
26
27 from propertiesViewModel import TreeModel, PropertyBuffer
28 from parametersModel import ProjectParms
29
30 from schainpy.gui.viewer.ui_unitprocess import Ui_UnitProcess
31 from schainpy.gui.viewer.ui_ftp import Ui_Ftp
32 from schainpy.gui.viewer.ui_mainwindow import Ui_BasicWindow
33
34 from schainpy.controller_api import ControllerThread
35 from schainpy.controller import Project
36
37 from schainpy.model.graphics.jroplotter import PlotManager
38 from schainpy.gui.figures import tools
39
40 FIGURES_PATH = tools.get_path()
41 TEMPORAL_FILE = ".temp.xml"
42
43 def isRadarFile(file):
44 try:
45 year = int(file[1:5])
46 doy = int(file[5:8])
47 set = int(file[8:11])
48 except:
49 return 0
50
51 return 1
52
53 def isRadarPath(path):
54 try:
55 year = int(path[1:5])
56 doy = int(path[5:8])
57 except:
58 return 0
59
60 return 1
61
62 def isInt(cadena):
63
64 try:
65 int(cadena)
66 except:
67 return 0
68
69 return 1
70
71 def isFloat(cadena):
72
73 try:
74 float(cadena)
75 except:
76 return 0
77
78 return 1
79
80 def isList(cadena):
81
82 value = str.strip(cadena)
83
84 if not value:
85 return 0
86
87 try:
88 x = ast.literal_eval(value)
89 except:
90 return 0
91
92 if type(x) in (int, float, tuple, list):
93 return 1
94
95 return 0
96
97 def isIntList(cadena):
98
99 value = str.strip(cadena)
100
101 if not value:
102 return 0
103
104 try:
105 x = ast.literal_eval(value)
106 except:
107 return 0
108
109 if type(x) not in (int, tuple, list):
110 return 0
111
112 return 1
113
114 def isFloatRange(cadena):
115
116 value = str.strip(cadena)
117
118 if not value:
119 return 0
120
121 c = str.split(value, ",")
122
123 if len(c) != 2:
124 return 0
125
126 if not isFloat(c[0]):
127 return 0
128
129 if not isFloat(c[1]):
130 return 0
131
132 return 1
133
134 def isIntRange(cadena):
135
136 value = str.strip(cadena)
137
138 if not value:
139 return 0
140
141 c = str.split(value, ",")
142
143 if len(c) != 2:
144 return 0
145
146 if not isInt(c[0]):
147 return 0
148
149 if not isInt(c[1]):
150 return 0
151
152 def isPair(value):
153
154 if type(value) not in (tuple, list):
155 return 0
156
157 if len(value) != 2:
158 return 0
159
160 for i in value:
161 if type(i) not in (int,):
162 return 0
163
164 return 1
165
166 def isPairList(cadena):
167
168 value = str.strip(cadena)
169
170 if not value:
171 return 0
172
173 try:
174 x = ast.literal_eval(value)
175 except:
176 return 0
177
178 if type(x) not in (tuple, list):
179 return 0
180
181 if type(x[0]) not in (tuple, list):
182 #x = (0,1)
183 if not isPair(x):
184 return 0
185
186 return 1
187
188 for thisPair in x:
189 if not isPair(thisPair):
190 return 0
191
192 return 1
193
194 def isMultiList(cadena):
195
196 value = str.strip(cadena)
197
198 if not value:
199 return 0
200
201 try:
202 x = ast.literal_eval(value)
203 except:
204 return 0
205
206 if type(x) not in (tuple, list):
207 return 0
208
209 for thisList in x:
210 if type(thisList) not in (int, float, tuple, list):
211 return 0
212
213 return 1
214
215 def getCode(cadena):
216
217 if not isMultiList(cadena):
218 return None
219
220 try:
221 x = ast.literal_eval(cadena)
222 except:
223 return None
224
225 if type(x[0]) in (int, float):
226 return [x]
227
228 return x
229
230
231 class BasicWindow(QMainWindow, Ui_BasicWindow):
232 """
233 """
234 def __init__(self, parent=None):
235 """
236
237 """
238 QMainWindow.__init__(self, parent)
239 self.setupUi(self)
240 self.__puObjDict = {}
241 self.__itemTreeDict = {}
242 self.readUnitConfObjList = []
243 self.operObjList = []
244 self.projecObjView = None
245 self.idProject = 0
246 # self.idImag = 0
247
248 self.idImagscope = 0
249 self.idImagspectra = 0
250 self.idImagcross = 0
251 self.idImagrti = 0
252 self.idImagcoherence = 0
253 self.idImagpower = 0
254 self.idImagrtinoise = 0
255 self.idImagspectraHeis = 0
256 self.idImagrtiHeis = 0
257
258 self.dateList = []
259 self.dataPath = None
260 self.create = False
261 self.selectedItemTree = None
262 self.controllerThread = None
263 # self.commCtrlPThread = None
264 # self.create_figure()
265 self.temporalFTP = ftpBuffer()
266 self.projectProperCaracteristica = []
267 self.projectProperPrincipal = []
268 self.projectProperDescripcion = []
269 self.volProperCaracteristica = []
270 self.volProperPrincipal = []
271 self.volProperDescripcion = []
272 self.specProperCaracteristica = []
273 self.specProperPrincipal = []
274 self.specProperDescripcion = []
275
276 self.specHeisProperCaracteristica = []
277 self.specHeisProperPrincipal = []
278 self.specHeisProperDescripcion = []
279
280 # self.pathWorkSpace = './'
281
282 self.__projectObjDict = {}
283 self.__operationObjDict = {}
284
285 self.__puLocalFolder2FTP = {}
286 self.threadStarted = False
287
288 self.plotManager = None
289
290 # self.create_comm()
291 self.create_updating_timer()
292 self.setGUIStatus()
293
294 @pyqtSignature("")
295 def on_actionOpen_triggered(self):
296 """
297 Slot documentation goes here.
298 """
299 self.openProject()
300
301 @pyqtSignature("")
302 def on_actionCreate_triggered(self):
303 """
304 Slot documentation goes here.
305 """
306 self.setInputsProject_View()
307 self.create = True
308
309 @pyqtSignature("")
310 def on_actionSave_triggered(self):
311 """
312 Slot documentation goes here.
313 """
314 self.saveProject()
315
316 @pyqtSignature("")
317 def on_actionClose_triggered(self):
318 """
319 Slot documentation goes here.
320 """
321 self.close()
322
323 @pyqtSignature("")
324 def on_actionStart_triggered(self):
325 """
326 """
327 self.playProject()
328
329 @pyqtSignature("")
330 def on_actionPause_triggered(self):
331 """
332 """
333 self.pauseProject()
334
335 @pyqtSignature("")
336 def on_actionStop_triggered(self):
337 """
338 """
339 self.stopProject()
340
341 @pyqtSignature("")
342 def on_actionAbout_triggered(self):
343 """
344 """
345 self.aboutEvent()
346
347 @pyqtSignature("")
348 def on_actionFTP_triggered(self):
349 """
350 """
351 self.configFTPWindowObj = Ftp(self)
352
353 if not self.temporalFTP.create:
354 self.temporalFTP.setwithoutconfiguration()
355
356 self.configFTPWindowObj.setParmsfromTemporal(self.temporalFTP.server,
357 self.temporalFTP.remotefolder,
358 self.temporalFTP.username,
359 self.temporalFTP.password,
360 self.temporalFTP.ftp_wei,
361 self.temporalFTP.exp_code,
362 self.temporalFTP.sub_exp_code,
363 self.temporalFTP.plot_pos)
364
365 self.configFTPWindowObj.show()
366 self.configFTPWindowObj.closed.connect(self.createFTPConfig)
367
368 def createFTPConfig(self):
369
370 if not self.configFTPWindowObj.create:
371 self.console.clear()
372 self.console.append("There is no FTP configuration")
373 return
374
375 self.console.append("Push Ok in Spectra view to Add FTP Configuration")
376
377 server, remotefolder, username, password, ftp_wei, exp_code, sub_exp_code, plot_pos = self.configFTPWindowObj.getParmsFromFtpWindow()
378 self.temporalFTP.save(server=server,
379 remotefolder=remotefolder,
380 username=username,
381 password=password,
382 ftp_wei=ftp_wei,
383 exp_code=exp_code,
384 sub_exp_code=sub_exp_code,
385 plot_pos=plot_pos)
386
387 @pyqtSignature("")
388 def on_actionOpenToolbar_triggered(self):
389 """
390 Slot documentation goes here.
391 """
392 self.openProject()
393
394 @pyqtSignature("")
395 def on_actionCreateToolbar_triggered(self):
396 """
397 Slot documentation goes here.
398 """
399 self.setInputsProject_View()
400 self.create = True
401
402 @pyqtSignature("")
403 def on_actionAddPU_triggered(self):
404
405 if len(self.__projectObjDict) == 0:
406 outputstr = "First create a Project before add any Processing Unit"
407 self.console.clear()
408 self.console.append(outputstr)
409 return
410 else:
411 self.addPUWindow()
412 self.console.clear()
413 self.console.append("Please, Choose the type of Processing Unit")
414 # self.console.append("If your Datatype is rawdata, you will start with processing unit Type Voltage")
415 # self.console.append("If your Datatype is pdata, you will choose between processing unit Type Spectra or Correlation")
416 # self.console.append("If your Datatype is fits, you will start with processing unit Type SpectraHeis")
417
418
419 @pyqtSignature("")
420 def on_actionSaveToolbar_triggered(self):
421 """
422 Slot documentation goes here.
423 """
424 self.saveProject()
425
426 @pyqtSignature("")
427 def on_actionStarToolbar_triggered(self):
428 """
429 Slot documentation goes here.
430 """
431 self.playProject()
432
433 @pyqtSignature("")
434 def on_actionPauseToolbar_triggered(self):
435
436 self.pauseProject()
437
438 @pyqtSignature("")
439 def on_actionStopToolbar_triggered(self):
440 """
441 Slot documentation goes here.
442 """
443 self.stopProject()
444
445 @pyqtSignature("int")
446 def on_proComReadMode_activated(self, index):
447 """
448 SELECCION DEL MODO DE LECTURA ON=1, OFF=0
449 """
450 if index == 0:
451 # self.proDelay.setText("0")
452 self.proSet.setEnabled(True)
453 self.proDelay.setEnabled(False)
454 elif index == 1:
455 self.proSet.setText("")
456 # self.proDelay.setText("5")
457 self.proSet.setEnabled(False)
458 self.proDelay.setEnabled(True)
459
460
461 def __setRawDataWindow(self):
462
463 self.__setPDataWindow()
464
465 self.frame_data.show()
466
467 self.labnTxs.show()
468 self.pronTxs.show()
469
470 self.labByBlock.show()
471 self.proComByBlock.show()
472
473 def __setPDataWindow(self):
474
475 self.labelIPPKm.hide()
476 self.proIPPKm.hide()
477
478 self.labelSet.show()
479 self.proSet.show()
480
481 self.labExpLabel.show()
482 self.proExpLabel.show()
483
484 self.labelWalk.show()
485 self.proComWalk.show()
486
487 self.frame_data.hide()
488
489 # self.labnTxs.hide()
490 # self.pronTxs.hide()
491 #
492 # self.labByBlock.hide()
493 # self.proComByBlock.hide()
494
495 def __setUSRPDataWindow(self):
496
497 self.frame_data.show()
498
499 self.labelIPPKm.show()
500 self.proIPPKm.show()
501
502 self.labelSet.hide()
503 self.proSet.hide()
504
505 self.labExpLabel.hide()
506 self.proExpLabel.hide()
507
508 self.labelWalk.hide()
509 self.proComWalk.hide()
510
511 self.labnTxs.hide()
512 self.pronTxs.hide()
513
514 self.labByBlock.hide()
515 self.proComByBlock.hide()
516
517 @pyqtSignature("int")
518 def on_proComDataType_activated(self, index):
519 """
520 Voltage or Spectra
521 """
522
523 if index == 0:
524 extension = '.r'
525 self.__setRawDataWindow()
526
527 elif index == 1:
528 extension = '.pdata'
529 self.__setPDataWindow()
530
531
532 elif index == 2:
533 extension = '.fits'
534 self.__setPDataWindow()
535
536 elif index == 3:
537 extension = '.hdf5'
538 self.__setUSRPDataWindow()
539
540 self.proDataType.setText(extension)
541
542 @pyqtSignature("int")
543 def on_proComWalk_activated(self, index):
544 """
545
546 """
547 if index == 0:
548 self.proExpLabel.setEnabled(False)
549 elif index == 1:
550 self.proExpLabel.setEnabled(True)
551
552 @pyqtSignature("")
553 def on_proToolPath_clicked(self):
554 """
555 Choose your path
556 """
557
558 current_dpath = './'
559 if self.dataPath:
560 current_dpath = self.dataPath
561
562 datapath = str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', current_dpath, QtGui.QFileDialog.ShowDirsOnly))
563
564 #If it was canceled
565 if not datapath:
566 return
567
568 #If any change was done
569 if datapath == self.dataPath:
570 return
571
572 self.proDataPath.setText(datapath)
573
574 self._disable_play_button()
575 self._disable_save_button()
576 self.proOk.setEnabled(False)
577
578 self.proComStartDate.clear()
579 self.proComEndDate.clear()
580
581 if not os.path.exists(datapath):
582
583 self.console.clear()
584 self.console.append("Write a valid path")
585 return
586
587 self.dataPath = datapath
588
589 self.console.clear()
590 self.console.append("Select the read mode and press 'load button'")
591
592
593 @pyqtSignature("")
594 def on_proLoadButton_clicked(self):
595
596 self.console.clear()
597
598 projectParms = self.__getParmsFromProjectWindow()
599
600 if not projectParms.online:
601 self.proComStartDate.clear()
602 self.proComEndDate.clear()
603 self.proComStartDate.setEnabled(True)
604 self.proComEndDate.setEnabled(True)
605 self.proStartTime.setEnabled(True)
606 self.proEndTime.setEnabled(True)
607 self.frame_2.setEnabled(True)
608
609 else:
610 self.proComStartDate.addItem("1960/01/30")
611 self.proComEndDate.addItem("2018/12/31")
612 self.proComStartDate.setEnabled(False)
613 self.proComEndDate.setEnabled(False)
614 self.proStartTime.setEnabled(False)
615 self.proEndTime.setEnabled(False)
616 self.frame_2.setEnabled(True)
617
618 if self.loadDays(projectParms.dpath, projectParms.ext, projectParms.walk, projectParms.expLabel) == []:
619 self._disable_save_button()
620 self._disable_play_button()
621 self.proOk.setEnabled(False)
622 else:
623 self._enable_save_button()
624 self._enable_play_button()
625 self.proOk.setEnabled(True)
626
627 @pyqtSignature("int")
628 def on_proComStartDate_activated(self, index):
629 """
630 SELECCION DEL RANGO DE FECHAS -START DATE
631 """
632 stopIndex = self.proComEndDate.count() - self.proComEndDate.currentIndex() - 1
633
634 self.proComEndDate.clear()
635 for i in self.dateList[index:]:
636 self.proComEndDate.addItem(i)
637
638 if self.proComEndDate.count() - stopIndex - 1 >= 0:
639 self.proComEndDate.setCurrentIndex(self.proComEndDate.count() - stopIndex - 1)
640 else:
641 self.proComEndDate.setCurrentIndex(self.proComEndDate.count() - 1)
642
643 @pyqtSignature("int")
644 def on_proComEndDate_activated(self, index):
645 """
646 SELECCION DEL RANGO DE FECHAS-END DATE
647 """
648 pass
649
650 @pyqtSignature("")
651 def on_proOk_clicked(self):
652 """
653 AΓ±ade al Obj XML de Projecto, name,datatype,date,time,readmode,wait,etc, crea el readUnitProcess del archivo xml.
654 Prepara la configuraciΓ³n del diΓ‘grama del Arbol del treeView numero 2
655 """
656
657 self._disable_play_button()
658 self._disable_save_button()
659
660 self.console.clear()
661
662 if self.create:
663
664 projectId = self.__getNewProjectId()
665
666 if not projectId:
667 return 0
668
669 projectObjView = self.createProjectView(projectId)
670
671 if not projectObjView:
672 return 0
673
674 self.create = False
675
676 readUnitObj = self.createReadUnitView(projectObjView)
677
678 if not readUnitObj:
679 return 0
680
681 else:
682 projectObjView = self.updateProjectView()
683
684 if not projectObjView:
685 return 0
686
687 projectId = projectObjView.getId()
688 idReadUnit = projectObjView.getReadUnitId()
689 readUnitObj = self.updateReadUnitView(projectObjView, idReadUnit)
690
691 if not readUnitObj:
692 return 0
693
694 self.__itemTreeDict[projectId].setText(projectObjView.name)
695 # Project Properties
696 self.refreshProjectProperties(projectObjView)
697 # Disable tabProject after finish the creation
698
699 self._enable_play_button()
700 self._enable_save_button()
701
702 self.console.clear()
703 self.console.append("The project parameters were validated")
704
705 return 1
706
707 @pyqtSignature("")
708 def on_proClear_clicked(self):
709
710 self.console.clear()
711
712 @pyqtSignature("int")
713 def on_volOpCebChannels_stateChanged(self, p0):
714 """
715 Check Box habilita operaciones de SelecciοΏ½n de Canales
716 """
717 if p0 == 2:
718 self.volOpComChannels.setEnabled(True)
719 self.volOpChannel.setEnabled(True)
720
721 if p0 == 0:
722 self.volOpComChannels.setEnabled(False)
723 self.volOpChannel.setEnabled(False)
724 # self.volOpChannel.clear()
725
726 @pyqtSignature("int")
727 def on_volOpCebHeights_stateChanged(self, p0):
728 """
729 Check Box habilita operaciones de SelecciοΏ½n de Alturas
730 """
731 if p0 == 2:
732 self.volOpHeights.setEnabled(True)
733 self.volOpComHeights.setEnabled(True)
734
735 if p0 == 0:
736 self.volOpHeights.setEnabled(False)
737 # self.volOpHeights.clear()
738 self.volOpComHeights.setEnabled(False)
739
740 @pyqtSignature("int")
741 def on_volOpCebSplitter_stateChanged(self, p0):
742 """
743 Name='Splitter', optype='other'
744 """
745 if p0 == 2:
746 self.volOpSplitter.setEnabled(True)
747
748 if p0 == 0:
749 self.volOpSplitter.setEnabled(False)
750
751 @pyqtSignature("int")
752 def on_volOpCebCombiner_stateChanged(self, p0):
753 """
754 Name='Combiner', optype='other'
755 """
756 if p0 == 2:
757 self.volOpCombiner.setEnabled(True)
758
759 if p0 == 0:
760 self.volOpCombiner.setEnabled(False)
761
762 @pyqtSignature("int")
763 def on_volOpCebFilter_stateChanged(self, p0):
764 """
765 Name='Decoder', optype='other'
766 """
767 if p0 == 2:
768 self.volOpFilter.setEnabled(True)
769
770 if p0 == 0:
771 self.volOpFilter.setEnabled(False)
772 # self.volOpFilter.clear()
773
774 @pyqtSignature("int")
775 def on_volOpCebProfile_stateChanged(self, p0):
776 """
777 Check Box habilita ingreso del rango de Perfiles
778 """
779 if p0 == 2:
780 self.volOpComProfile.setEnabled(True)
781 self.volOpProfile.setEnabled(True)
782
783 if p0 == 0:
784 self.volOpComProfile.setEnabled(False)
785 self.volOpProfile.setEnabled(False)
786 # self.volOpProfile.clear()
787
788 @pyqtSignature("int")
789 def on_volOpComProfile_activated(self, index):
790 """
791 Check Box habilita ingreso del rango de Perfiles
792 """
793 #Profile List
794 if index == 0:
795 self.volOpProfile.setToolTip('List of selected profiles. Example: 0, 1, 2, 3, 4, 5, 6, 7')
796
797 #Profile Range
798 if index == 1:
799 self.volOpProfile.setToolTip('Minimum and maximum profile index. Example: 0, 7')
800
801 #Profile Range List
802 if index == 2:
803 self.volOpProfile.setToolTip('List of profile ranges. Example: (0, 7), (12, 19), (100, 200)')
804
805 @pyqtSignature("int")
806 def on_volOpCebDecodification_stateChanged(self, p0):
807 """
808 Check Box habilita
809 """
810 if p0 == 2:
811 self.volOpComCode.setEnabled(True)
812 self.volOpComMode.setEnabled(True)
813 if p0 == 0:
814 self.volOpComCode.setEnabled(False)
815 self.volOpComMode.setEnabled(False)
816
817 @pyqtSignature("int")
818 def on_volOpComCode_activated(self, index):
819 """
820 Check Box habilita ingreso
821 """
822 if index == 13:
823 self.volOpCode.setEnabled(True)
824 else:
825 self.volOpCode.setEnabled(False)
826
827 if index == 0:
828 # code = ''
829 # self.volOpCode.setText(str(code))
830 return
831
832 if index == 1:
833 code = '(1,1,-1)'
834 nCode = '1'
835 nBaud = '3'
836 if index == 2:
837 code = '(1,1,-1,1)'
838 nCode = '1'
839 nBaud = '4'
840 if index == 3:
841 code = '(1,1,1,-1,1)'
842 nCode = '1'
843 nBaud = '5'
844 if index == 4:
845 code = '(1,1,1,-1,-1,1,-1)'
846 nCode = '1'
847 nBaud = '7'
848 if index == 5:
849 code = '(1,1,1,-1,-1,-1,1,-1,-1,1,-1)'
850 nCode = '1'
851 nBaud = '11'
852 if index == 6:
853 code = '(1,1,1,1,1,-1,-1,1,1,-1,1,-1,1)'
854 nCode = '1'
855 nBaud = '13'
856 if index == 7:
857 code = '(1,1,-1,-1,-1,1)'
858 nCode = '2'
859 nBaud = '3'
860 if index == 8:
861 code = '(1,1,-1,1,-1,-1,1,-1)'
862 nCode = '2'
863 nBaud = '4'
864 if index == 9:
865 code = '(1,1,1,-1,1,-1,-1,-1,1,-1)'
866 nCode = '2'
867 nBaud = '5'
868 if index == 10:
869 code = '(1,1,1,-1,-1,1,-1,-1,-1,-1,1,1,-1,1)'
870 nCode = '2'
871 nBaud = '7'
872 if index == 11:
873 code = '(1,1,1,-1,-1,-1,1,-1,-1,1,-1,-1 ,-1 ,-1 ,1 ,1,1,-1 ,1 ,1 ,-1 ,1)'
874 nCode = '2'
875 nBaud = '11'
876 if index == 12:
877 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)'
878 nCode = '2'
879 nBaud = '13'
880
881 code = ast.literal_eval(code)
882 nCode = int(nCode)
883 nBaud = int(nBaud)
884
885 code = numpy.asarray(code).reshape((nCode, nBaud)).tolist()
886
887 self.volOpCode.setText(str(code))
888
889 @pyqtSignature("int")
890 def on_volOpCebFlip_stateChanged(self, p0):
891 """
892 Check Box habilita ingresode del numero de Integraciones a realizar
893 """
894 if p0 == 2:
895 self.volOpFlip.setEnabled(True)
896 if p0 == 0:
897 self.volOpFlip.setEnabled(False)
898 # self.volOpFlip.clear()
899
900 @pyqtSignature("int")
901 def on_volOpCebCohInt_stateChanged(self, p0):
902 """
903 Check Box habilita ingresode del numero de Integraciones a realizar
904 """
905 if p0 == 2:
906 self.volOpCohInt.setEnabled(True)
907 if p0 == 0:
908 self.volOpCohInt.setEnabled(False)
909 # self.volOpCohInt.clear()
910
911 @pyqtSignature("int")
912 def on_volOpCebRadarfrequency_stateChanged(self, p0):
913 """
914 Check Box habilita ingresode del numero de Integraciones a realizar
915 """
916 if p0 == 2:
917 self.volOpRadarfrequency.setEnabled(True)
918 if p0 == 0:
919 self.volOpRadarfrequency.clear()
920 self.volOpRadarfrequency.setEnabled(False)
921
922 @pyqtSignature("")
923 def on_volOutputToolPath_clicked(self):
924 dirOutPath = str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly))
925 self.volOutputPath.setText(dirOutPath)
926
927 @pyqtSignature("")
928 def on_specOutputToolPath_clicked(self):
929 dirOutPath = str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly))
930 self.specOutputPath.setText(dirOutPath)
931
932 @pyqtSignature("")
933 def on_specHeisOutputToolPath_clicked(self):
934 dirOutPath = str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly))
935 self.specHeisOutputPath.setText(dirOutPath)
936
937 @pyqtSignature("")
938 def on_specHeisOutputMetadaToolPath_clicked(self):
939
940 filename = str(QtGui.QFileDialog.getOpenFileName(self, "Open text file", self.pathWorkSpace, self.tr("Text Files (*.xml)")))
941 self.specHeisOutputMetada.setText(filename)
942
943 @pyqtSignature("")
944 def on_volOpOk_clicked(self):
945 """
946 BUSCA EN LA LISTA DE OPERACIONES DEL TIPO VOLTAJE Y LES AοΏ½ADE EL PARAMETRO ADECUADO ESPERANDO LA ACEPTACION DEL USUARIO
947 PARA AGREGARLO AL ARCHIVO DE CONFIGURACION XML
948 """
949
950 checkPath = False
951
952 self._disable_play_button()
953 self._disable_save_button()
954
955 self.console.clear()
956 self.console.append("Checking input parameters:\n")
957
958 puObj = self.getSelectedItemObj()
959 puObj.removeOperations()
960
961 if self.volOpCebRadarfrequency.isChecked():
962 value = str(self.volOpRadarfrequency.text())
963 format = 'float'
964 name_operation = 'setRadarFrequency'
965 name_parameter = 'frequency'
966
967 if not isFloat(value):
968 self.console.append("Invalid value '%s' for Radar Frequency" %value)
969 return 0
970
971 opObj = puObj.addOperation(name=name_operation)
972 opObj.addParameter(name=name_parameter, value=radarfreq, format=format)
973
974 if self.volOpCebChannels.isChecked():
975
976 format = 'intlist'
977 if self.volOpComChannels.currentIndex() == 0:
978 name_operation = "selectChannels"
979 name_parameter = 'channelList'
980 else:
981 name_operation = "selectChannelsByIndex"
982 name_parameter = 'channelIndexList'
983
984 value = str(self.volOpChannel.text())
985
986 if not isIntList(value):
987 self.console.append("Invalid value '%s' for %s" %(value,name_parameter))
988 return 0
989
990 opObj = puObj.addOperation(name=name_operation)
991 opObj.addParameter(name=name_parameter, value=value, format=format)
992
993 if self.volOpCebHeights.isChecked():
994 value = str(self.volOpHeights.text())
995
996 if not isFloatRange(value):
997 self.console.append("Invalid value '%s' for Height range" %value)
998 return 0
999
1000 valueList = value.split(',')
1001
1002 if self.volOpComHeights.currentIndex() == 0:
1003 format = 'float'
1004 name_operation = 'selectHeights'
1005 name_parameter1 = 'minHei'
1006 name_parameter2 = 'maxHei'
1007 else:
1008 format = 'int'
1009 name_operation = 'selectHeightsByIndex'
1010 name_parameter1 = 'minIndex'
1011 name_parameter2 = 'maxIndex'
1012
1013 opObj = puObj.addOperation(name=name_operation)
1014 opObj.addParameter(name=name_parameter1, value=valueList[0], format=format)
1015 opObj.addParameter(name=name_parameter2, value=valueList[1], format=format)
1016
1017 if self.volOpCebSplitter.isChecked():
1018 value = str(self.volOpSplitter.text())
1019
1020 if not isInt(value):
1021 self.console.append("Invalid value '%s' for Profile Splitter" %value)
1022 return 0
1023
1024 opObj = puObj.addOperation(name="SplitProfiles", optype='external')
1025 opObj.addParameter(name='n', value=value, format='int')
1026
1027 if self.volOpCebProfile.isChecked():
1028 value = str(self.volOpProfile.text())
1029
1030 format = 'intlist'
1031 optype = 'other'
1032 name_operation = 'ProfileSelector'
1033
1034 if self.volOpComProfile.currentIndex() == 0:
1035 name_parameter = 'profileList'
1036 if self.volOpComProfile.currentIndex() == 1:
1037 name_parameter = 'profileRangeList'
1038 if self.volOpComProfile.currentIndex() == 2:
1039 name_parameter = 'rangeList'
1040
1041 if not isIntList(value):
1042 self.console.append("Invalid value '%s' for %s" %(value, name_parameter) )
1043 return 0
1044
1045 opObj = puObj.addOperation(name='ProfileSelector', optype='other')
1046 opObj.addParameter(name=name_parameter, value=value, format=format)
1047
1048 if self.volOpCebCombiner.isChecked():
1049 value = str(self.volOpCombiner.text())
1050
1051 if not isInt(value):
1052 self.console.append("Invalid value '%s' for Profile Combiner" %value)
1053 return 0
1054
1055 opObj = puObj.addOperation(name="CombineProfiles", optype='external')
1056 opObj.addParameter(name='n', value=value, format='int')
1057
1058 if self.volOpCebFilter.isChecked():
1059 value = str(self.volOpFilter.text())
1060
1061 if not isInt(value):
1062 self.console.append("Invalid value '%s' for Filter" %value)
1063 return 0
1064
1065 format = 'int'
1066 name_operation = 'filterByHeights'
1067 name_parameter = 'window'
1068 opObj = puObj.addOperation(name=name_operation)
1069 opObj.addParameter(name=name_parameter, value=value, format=format)
1070
1071 if self.volOpCebDecodification.isChecked():
1072 name_operation = 'Decoder'
1073 opObj = puObj.addOperation(name=name_operation, optype='other')
1074
1075 if self.volOpComCode.currentIndex() != 0:
1076
1077 code = str(self.volOpCode.text())
1078
1079 if not isMultiList(code):
1080 self.console.append("Please write a valid Code (Example: [1,1,-1], [1,-1,1])")
1081 return 0
1082
1083 real_code = getCode(code)
1084 nCode = len(real_code)
1085 nBaud = len(real_code[0])
1086
1087 opObj.addParameter(name='code', value=code, format='intlist')
1088 opObj.addParameter(name='nCode', value=nCode, format='int')
1089 opObj.addParameter(name='nBaud', value=nBaud, format='int')
1090
1091 name_parameter = 'mode'
1092 format = 'int'
1093 value = str(self.volOpComMode.currentIndex())
1094
1095 opObj.addParameter(name=name_parameter, value=value, format=format)
1096
1097
1098 if self.volOpCebFlip.isChecked():
1099 name_operation = 'deFlip'
1100 optype = 'self'
1101
1102 opObj = puObj.addOperation(name=name_operation, optype=optype)
1103
1104 value = str(self.volOpFlip.text())
1105
1106 if value:
1107
1108 name_parameter = 'channelList'
1109 format = 'intlist'
1110
1111 if not isIntList(value):
1112 self.console.append("Invalid value '%s' for '%s'" %(value,name_parameter))
1113 return 0
1114
1115 opObj.addParameter(name=name_parameter, value=value, format=format)
1116
1117 if self.volOpCebCohInt.isChecked():
1118 name_operation = 'CohInt'
1119 optype = 'other'
1120 value = str(self.volOpCohInt.text())
1121
1122 if not isInt(value):
1123 self.console.append("Invalid value '%s' for '%s'" %(value,name_parameter))
1124 return 0
1125
1126 name_parameter = 'n'
1127 format = 'int'
1128
1129 opObj = puObj.addOperation(name=name_operation, optype=optype)
1130 opObj.addParameter(name=name_parameter, value=value, format=format)
1131
1132 if self.volGraphCebshow.isChecked():
1133 name_operation = 'Scope'
1134 optype = 'other'
1135
1136 name_parameter1 = 'id'
1137 format1 = 'int'
1138
1139 opObj = puObj.addOperation(name=name_operation, optype=optype)
1140 opObj.addParameter(name=name_parameter1, value=opObj.id, format=format1)
1141
1142 channelList = str(self.volGraphChannelList.text()).strip()
1143 xvalue = str(self.volGraphHeightrange.text()).strip()
1144 yvalue = str(self.volGraphIntensityRange.text()).strip()
1145 figpath = str(self.volGraphPath.text()).strip()
1146 figfile = str(self.volGraphPrefix.text()).strip()
1147
1148 if channelList != "":
1149 if not isIntList(channelList):
1150 self.console.append("Invalid value '%s' for 'Graphics:ChannelList'" %(channelList))
1151 return 0
1152
1153 if xvalue != "":
1154 if not isFloatRange(xvalue):
1155 self.console.append("Invalid value '%s' for 'Graphics:Height-Range'" %(xvalue))
1156 return 0
1157
1158 if yvalue != "":
1159 if not isFloatRange(yvalue):
1160 self.console.append("Invalid value '%s' for 'Graphics:Amplitude-Range'" %(yvalue))
1161 return 0
1162
1163
1164 if channelList:
1165 opObj.addParameter(name='channelList', value=channelList, format='intlist')
1166
1167 if xvalue:
1168 xvalueList = xvalue.split(',')
1169
1170 opObj.addParameter(name='xmin', value=xvalueList[0], format='float')
1171 opObj.addParameter(name='xmax', value=xvalueList[1], format='float')
1172
1173 if yvalue:
1174 yvalueList = yvalue.split(",")
1175
1176 opObj.addParameter(name='ymin', value=yvalueList[0], format='int')
1177 opObj.addParameter(name='ymax', value=yvalueList[1], format='int')
1178
1179 plot_type = self.volComScopeType.currentIndex()
1180
1181 if plot_type == 0:
1182 opObj.addParameter(name='type', value="iq")
1183 if plot_type == 1:
1184 opObj.addParameter(name='type', value="power")
1185
1186 if self.volGraphCebSave.isChecked():
1187 checkPath = True
1188
1189 opObj.addParameter(name='save', value='1', format='int')
1190 opObj.addParameter(name='figpath', value=figpath, format='str')
1191
1192 if figfile:
1193 opObj.addParameter(name='figfile', value=value, format='str')
1194
1195 if checkPath:
1196
1197 if not figpath:
1198 self.console.clear()
1199 self.console.append("Graphic path should be defined")
1200 return 0
1201
1202 # if os.path.isdir(figpath):
1203 # self.console.clear()
1204 # self.console.append("Graphic path does not exist, it has to be created")
1205 # return 0
1206
1207 self.console.clear()
1208
1209 # if something happend
1210 parms_ok, output_path, blocksperfile, profilesperblock = self.checkInputsPUSave(datatype='Voltage')
1211 if parms_ok:
1212 name_operation = 'VoltageWriter'
1213 optype = 'other'
1214 name_parameter1 = 'path'
1215 name_parameter2 = 'blocksPerFile'
1216 name_parameter3 = 'profilesPerBlock'
1217 value1 = output_path
1218 value2 = blocksperfile
1219 value3 = profilesperblock
1220 format = "int"
1221 opObj = puObj.addOperation(name=name_operation, optype=optype)
1222 opObj.addParameter(name=name_parameter1, value=value1)
1223 opObj.addParameter(name=name_parameter2, value=value2, format=format)
1224 opObj.addParameter(name=name_parameter3, value=value3, format=format)
1225
1226 try:
1227 self.refreshPUProperties(puObj)
1228 except:
1229 self.console.append("An error reading input parameters was found ...Check them!")
1230 return 0
1231
1232 self.console.append("Save your project and press Play button to start signal processing")
1233
1234 self._enable_play_button()
1235 self._enable_save_button()
1236
1237 return 1
1238
1239 @pyqtSignature("")
1240 def on_volGraphClear_clicked(self):
1241
1242 self.console.clear()
1243
1244 """
1245 Voltage Graph
1246 """
1247 @pyqtSignature("int")
1248 def on_volGraphCebSave_stateChanged(self, p0):
1249 """
1250 Check Box habilita ingresode del numero de Integraciones a realizar
1251 """
1252 if p0 == 2:
1253 self.volGraphPath.setEnabled(True)
1254 self.volGraphPrefix.setEnabled(True)
1255 self.volGraphToolPath.setEnabled(True)
1256
1257 if p0 == 0:
1258 self.volGraphPath.setEnabled(False)
1259 self.volGraphPrefix.setEnabled(False)
1260 self.volGraphToolPath.setEnabled(False)
1261
1262 @pyqtSignature("")
1263 def on_volGraphToolPath_clicked(self):
1264 """
1265 Donde se guardan los DATOS
1266 """
1267 save_path = str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly))
1268 self.volGraphPath.setText(save_path)
1269
1270 if not os.path.exists(save_path):
1271 self.console.clear()
1272 self.console.append("Set a valid path")
1273 self.volGraphOk.setEnabled(False)
1274 return
1275
1276 @pyqtSignature("int")
1277 def on_volGraphCebshow_stateChanged(self, p0):
1278 """
1279 Check Box habilita ingresode del numero de Integraciones a realizar
1280 """
1281 if p0 == 0:
1282
1283 self.volGraphChannelList.setEnabled(False)
1284 self.volGraphIntensityRange.setEnabled(False)
1285 self.volGraphHeightrange.setEnabled(False)
1286 if p0 == 2:
1287
1288 self.volGraphChannelList.setEnabled(True)
1289 self.volGraphIntensityRange.setEnabled(True)
1290 self.volGraphHeightrange.setEnabled(True)
1291
1292 """
1293 Spectra operation
1294 """
1295 @pyqtSignature("int")
1296 def on_specOpCebRadarfrequency_stateChanged(self, p0):
1297 """
1298 Check Box habilita ingresode del numero de Integraciones a realizar
1299 """
1300 if p0 == 2:
1301 self.specOpRadarfrequency.setEnabled(True)
1302 if p0 == 0:
1303 # self.specOpRadarfrequency.clear()
1304 self.specOpRadarfrequency.setEnabled(False)
1305
1306
1307 @pyqtSignature("int")
1308 def on_specOpCebCrossSpectra_stateChanged(self, p0):
1309 """
1310 Habilita la opcion de aοΏ½adir el parοΏ½metro CrossSpectra a la Unidad de Procesamiento .
1311 """
1312 if p0 == 2:
1313 # self.specOpnFFTpoints.setEnabled(True)
1314 self.specOpComCrossSpectra.setEnabled(True)
1315 self.specOppairsList.setEnabled(True)
1316
1317 if p0 == 0:
1318 # self.specOpnFFTpoints.setEnabled(False)
1319 self.specOpComCrossSpectra.setEnabled(False)
1320 self.specOppairsList.setEnabled(False)
1321
1322 @pyqtSignature("int")
1323 def on_specOpCebChannel_stateChanged(self, p0):
1324 """
1325 Habilita la opcion de aοΏ½adir el parοΏ½metro numero de Canales a la Unidad de Procesamiento .
1326 """
1327 if p0 == 2:
1328 self.specOpChannel.setEnabled(True)
1329 self.specOpComChannel.setEnabled(True)
1330 if p0 == 0:
1331 self.specOpChannel.setEnabled(False)
1332 self.specOpComChannel.setEnabled(False)
1333
1334 @pyqtSignature("int")
1335 def on_specOpCebHeights_stateChanged(self, p0):
1336 """
1337 Habilita la opcion de aοΏ½adir el parοΏ½metro de alturas a la Unidad de Procesamiento .
1338 """
1339 if p0 == 2:
1340 self.specOpComHeights.setEnabled(True)
1341 self.specOpHeights.setEnabled(True)
1342 if p0 == 0:
1343 self.specOpComHeights.setEnabled(False)
1344 self.specOpHeights.setEnabled(False)
1345
1346
1347 @pyqtSignature("int")
1348 def on_specOpCebIncoherent_stateChanged(self, p0):
1349 """
1350 Habilita la opcion de aοΏ½adir el parοΏ½metro integraciones incoherentes a la Unidad de Procesamiento .
1351 """
1352 if p0 == 2:
1353 self.specOpIncoherent.setEnabled(True)
1354 if p0 == 0:
1355 self.specOpIncoherent.setEnabled(False)
1356
1357 @pyqtSignature("int")
1358 def on_specOpCebRemoveDC_stateChanged(self, p0):
1359 """
1360 Habilita la opcion de aοΏ½adir el parοΏ½metro remover DC a la Unidad de Procesamiento .
1361 """
1362 if p0 == 2:
1363 self.specOpComRemoveDC.setEnabled(True)
1364 if p0 == 0:
1365 self.specOpComRemoveDC.setEnabled(False)
1366
1367 @pyqtSignature("int")
1368 def on_specOpCebgetNoise_stateChanged(self, p0):
1369 """
1370 Habilita la opcion de aοΏ½adir la estimacion de ruido a la Unidad de Procesamiento .
1371 """
1372 if p0 == 2:
1373 self.specOpgetNoise.setEnabled(True)
1374
1375 if p0 == 0:
1376 self.specOpgetNoise.setEnabled(False)
1377
1378 @pyqtSignature("")
1379 def on_specOpOk_clicked(self):
1380 """
1381 AΓ‘ADE OPERACION SPECTRA
1382 """
1383
1384 addFTP = False
1385 checkPath = False
1386
1387 self._disable_play_button()
1388 self._disable_save_button()
1389
1390 self.console.clear()
1391 self.console.append("Checking input parameters:\n")
1392
1393 projectObj = self.getSelectedProjectObj()
1394
1395 if not projectObj:
1396 self.console.append("Please select a project before update it")
1397 return
1398
1399 puObj = self.getSelectedItemObj()
1400
1401 puObj.removeOperations()
1402
1403 if self.specOpCebRadarfrequency.isChecked():
1404 value = str(self.specOpRadarfrequency.text())
1405 format = 'float'
1406 name_operation = 'setRadarFrequency'
1407 name_parameter = 'frequency'
1408
1409 if not isFloat(value):
1410 self.console.clear()
1411 self.console.append("Invalid value [%s] for '%s'" %(value, name_parameter))
1412 return 0
1413
1414 radarfreq = float(value)*1e6
1415 opObj = puObj.addOperation(name=name_operation)
1416 opObj.addParameter(name=name_parameter, value=radarfreq, format=format)
1417
1418 inputId = puObj.getInputId()
1419 inputPuObj = projectObj.getProcUnitObj(inputId)
1420
1421 if inputPuObj.datatype == 'Voltage' or inputPuObj.datatype == 'USRP':
1422
1423 value = str(self.specOpnFFTpoints.text())
1424
1425 if not isInt(value):
1426 self.console.append("Invalid value [%s] for '%s'" %(value, 'nFFTPoints'))
1427 return 0
1428
1429 puObj.addParameter(name='nFFTPoints', value=value, format='int')
1430
1431 value = str(self.specOpProfiles.text())
1432 if not isInt(value):
1433 self.console.append("Please write a value on Profiles field")
1434 else:
1435 puObj.addParameter(name='nProfiles', value=value, format='int')
1436
1437 value = str(self.specOpippFactor.text())
1438 if not isInt(value):
1439 self.console.append("Please write a value on IppFactor field")
1440 else:
1441 puObj.addParameter(name='ippFactor' , value=value , format='int')
1442
1443 if self.specOpCebCrossSpectra.isChecked():
1444 name_parameter = 'pairsList'
1445 format = 'pairslist'
1446 value = str(self.specOppairsList.text())
1447
1448 if not isPairList(value):
1449 self.console.append("Invalid value [%s] for '%s'" %(value, name_parameter))
1450 return 0
1451
1452 puObj.addParameter(name=name_parameter, value=value, format=format)
1453
1454 if self.specOpCebHeights.isChecked():
1455 value = str(self.specOpHeights.text())
1456
1457 if not isFloatRange(value):
1458 self.console.append("Invalid value [%s] for Height range" %value)
1459 return 0
1460
1461 valueList = value.split(',')
1462 value0 = valueList[0]
1463 value1 = valueList[1]
1464
1465 if self.specOpComHeights.currentIndex() == 0:
1466 name_operation = 'selectHeights'
1467 name_parameter1 = 'minHei'
1468 name_parameter2 = 'maxHei'
1469 else:
1470 name_operation = 'selectHeightsByIndex'
1471 name_parameter1 = 'minIndex'
1472 name_parameter2 = 'maxIndex'
1473
1474 format = 'float'
1475
1476 opObj = puObj.addOperation(name=name_operation)
1477 opObj.addParameter(name=name_parameter1, value=value0, format=format)
1478 opObj.addParameter(name=name_parameter2, value=value1, format=format)
1479
1480 if self.specOpCebChannel.isChecked():
1481
1482 if self.specOpComChannel.currentIndex() == 0:
1483 name_operation = "selectChannels"
1484 name_parameter = 'channelList'
1485 else:
1486 name_operation = "selectChannelsByIndex"
1487 name_parameter = 'channelIndexList'
1488
1489 format = 'intlist'
1490 value = str(self.specOpChannel.text())
1491
1492 if not isIntList(value):
1493 self.console.append("Invalid value [%s] for '%s'" %(value, name_parameter))
1494 return 0
1495
1496 opObj = puObj.addOperation(name=name_operation)
1497 opObj.addParameter(name=name_parameter, value=value, format=format)
1498
1499 if self.specOpCebIncoherent.isChecked():
1500
1501 name_operation = 'IncohInt'
1502 optype = 'other'
1503
1504 if self.specOpCobIncInt.currentIndex() == 0:
1505 name_parameter = 'timeInterval'
1506 format = 'float'
1507 else:
1508 name_parameter = 'n'
1509 format = 'int'
1510
1511 value = str(self.specOpIncoherent.text())
1512
1513 if not isFloat(value):
1514 self.console.append("Invalid value [%s] for '%s'" %(value, name_parameter))
1515 return 0
1516
1517 opObj = puObj.addOperation(name=name_operation, optype=optype)
1518 opObj.addParameter(name=name_parameter, value=value, format=format)
1519
1520 if self.specOpCebRemoveDC.isChecked():
1521 name_operation = 'removeDC'
1522 name_parameter = 'mode'
1523 format = 'int'
1524
1525 if self.specOpComRemoveDC.currentIndex() == 0:
1526 value = 1
1527 else:
1528 value = 2
1529
1530 opObj = puObj.addOperation(name=name_operation)
1531 opObj.addParameter(name=name_parameter, value=value, format=format)
1532
1533 if self.specOpCebRemoveInt.isChecked():
1534 name_operation = 'removeInterference'
1535 opObj = puObj.addOperation(name=name_operation)
1536
1537
1538 if self.specOpCebgetNoise.isChecked():
1539 value = str(self.specOpgetNoise.text())
1540 valueList = value.split(',')
1541 format = 'float'
1542 name_operation = "getNoise"
1543 opObj = puObj.addOperation(name=name_operation)
1544
1545 if not value == '':
1546 valueList = value.split(',')
1547 length = len(valueList)
1548 if length == 1:
1549 try:
1550 value1 = float(valueList[0])
1551 except:
1552 self.console.clear()
1553 self.console.append("Please Write correct parameter Get Noise")
1554 return 0
1555 name1 = 'minHei'
1556 opObj.addParameter(name=name1, value=value1, format=format)
1557 elif length == 2:
1558 try:
1559 value1 = float(valueList[0])
1560 value2 = float(valueList[1])
1561 except:
1562 self.console.clear()
1563 self.console.append("Please Write corrects parameter Get Noise")
1564 return 0
1565 name1 = 'minHei'
1566 name2 = 'maxHei'
1567 opObj.addParameter(name=name1, value=value1, format=format)
1568 opObj.addParameter(name=name2, value=value2, format=format)
1569
1570 elif length == 3:
1571 try:
1572 value1 = float(valueList[0])
1573 value2 = float(valueList[1])
1574 value3 = float(valueList[2])
1575 except:
1576 self.console.clear()
1577 self.console.append("Please Write corrects parameter Get Noise")
1578 return 0
1579 name1 = 'minHei'
1580 name2 = 'maxHei'
1581 name3 = 'minVel'
1582 opObj.addParameter(name=name1, value=value1, format=format)
1583 opObj.addParameter(name=name2, value=value2, format=format)
1584 opObj.addParameter(name=name3, value=value3, format=format)
1585
1586 elif length == 4:
1587 try:
1588 value1 = float(valueList[0])
1589 value2 = float(valueList[1])
1590 value3 = float(valueList[2])
1591 value4 = float(valueList[3])
1592 except:
1593 self.console.clear()
1594 self.console.append("Please Write corrects parameter Get Noise")
1595 return 0
1596 name1 = 'minHei'
1597 name2 = 'maxHei'
1598 name3 = 'minVel'
1599 name4 = 'maxVel'
1600 opObj.addParameter(name=name1, value=value1, format=format)
1601 opObj.addParameter(name=name2, value=value2, format=format)
1602 opObj.addParameter(name=name3, value=value3, format=format)
1603 opObj.addParameter(name=name4, value=value4, format=format)
1604
1605 elif length > 4:
1606 self.console.clear()
1607 self.console.append("Get Noise Operation only accepts 4 parameters")
1608 return 0
1609
1610 channelList = str(self.specGgraphChannelList.text()).strip()
1611 vel_range = str(self.specGgraphFreq.text()).strip()
1612 hei_range = str(self.specGgraphHeight.text()).strip()
1613 db_range = str(self.specGgraphDbsrange.text()).strip()
1614
1615 trange = str(self.specGgraphTminTmax.text()).strip()
1616 magrange = str(self.specGgraphmagnitud.text()).strip()
1617 phaserange = str(self.specGgraphPhase.text()).strip()
1618 timerange = str(self.specGgraphTimeRange.text()).strip()
1619
1620 figpath = str(self.specGraphPath.text()).strip()
1621 figfile = str(self.specGraphPrefix.text()).strip()
1622
1623 try:
1624 wrperiod = int(str(self.specGgraphftpratio.text()).strip())
1625 except:
1626 wrperiod = None
1627
1628 #-----Spectra Plot-----
1629 if self.specGraphCebSpectraplot.isChecked() or self.specGraphSaveSpectra.isChecked():
1630
1631 opObj = puObj.addOperation(name='SpectraPlot', optype='other')
1632 opObj.addParameter(name='id', value=opObj.id, format='int')
1633
1634 if channelList:
1635
1636 if not isList(channelList):
1637 self.console.append("Invalid value [%s] for 'Graphic:ChannelList" %(channelList))
1638 return 0
1639
1640 opObj.addParameter(name='channelList', value=channelList, format='intlist')
1641
1642 if vel_range:
1643
1644 if not isFloatRange(vel_range):
1645 self.console.append("Invalid value [%s] for 'Graphic:Velocity-Range" %(vel_range))
1646 return 0
1647
1648 xvalueList = vel_range.split(',')
1649 value1 = float(xvalueList[0])
1650 value2 = float(xvalueList[1])
1651
1652 opObj.addParameter(name='xmin', value=value1, format='float')
1653 opObj.addParameter(name='xmax', value=value2, format='float')
1654
1655 if hei_range:
1656
1657 if not isFloatRange(hei_range):
1658 self.console.append("Invalid value [%s] for 'Graphic:Height-Range" %(hei_range))
1659 return 0
1660
1661 yvalueList = hei_range.split(",")
1662 value1 = float(yvalueList[0])
1663 value2 = float(yvalueList[1])
1664
1665 opObj.addParameter(name='ymin', value=value1, format='float')
1666 opObj.addParameter(name='ymax', value=value2, format='float')
1667
1668 if db_range:
1669
1670 if not isFloatRange(db_range):
1671 self.console.append("Invalid value [%s] for 'Graphic:dB-Range" %(db_range))
1672 return 0
1673
1674 zvalueList = db_range.split(",")
1675 value1 = float(zvalueList[0])
1676 value2 = float(zvalueList[1])
1677
1678 opObj.addParameter(name='zmin', value=value1, format='float')
1679 opObj.addParameter(name='zmax', value=value2, format='float')
1680
1681 if not self.specGraphCebSpectraplot.isChecked():
1682
1683 opObj.addParameter(name='show', value=0 , format='bool')
1684
1685 if self.specGraphSaveSpectra.isChecked():
1686
1687 checkPath = True
1688 opObj.addParameter(name='save', value=1 , format='bool')
1689 opObj.addParameter(name='figpath', value=figpath, format='str')
1690 if figfile:
1691 opObj.addParameter(name='figfile', value=figfile, format='str')
1692 if wrperiod:
1693 opObj.addParameter(name='wr_period', value=wrperiod,format='int')
1694
1695 if self.specGraphftpSpectra.isChecked():
1696
1697 opObj.addParameter(name='ftp', value='1', format='int')
1698 self.addFTPConf2Operation(puObj, opObj)
1699 addFTP = True
1700
1701 if self.specGraphCebCrossSpectraplot.isChecked() or self.specGraphSaveCross.isChecked():
1702
1703 opObj = puObj.addOperation(name='CrossSpectraPlot', optype='other')
1704 opObj.addParameter(name='id', value=opObj.id, format='int')
1705
1706 if vel_range:
1707
1708 if not isFloatRange(vel_range):
1709 self.console.append("Invalid value [%s] for 'Graphic:Velocity-Range" %(vel_range))
1710 return 0
1711
1712 xvalueList = vel_range.split(',')
1713 value1 = float(xvalueList[0])
1714 value2 = float(xvalueList[1])
1715
1716 opObj.addParameter(name='xmin', value=value1, format='float')
1717 opObj.addParameter(name='xmax', value=value2, format='float')
1718
1719 if hei_range:
1720
1721 if not isFloatRange(hei_range):
1722 self.console.append("Invalid value [%s] for 'Graphic:Height-Range" %(hei_range))
1723 return 0
1724
1725 yvalueList = hei_range.split(",")
1726 value1 = float(yvalueList[0])
1727 value2 = float(yvalueList[1])
1728
1729 opObj.addParameter(name='ymin', value=value1, format='float')
1730 opObj.addParameter(name='ymax', value=value2, format='float')
1731
1732 if db_range:
1733
1734 if not isFloatRange(db_range):
1735 self.console.append("Invalid value [%s] for 'Graphic:dB-Range" %(db_range))
1736 return 0
1737
1738 zvalueList = db_range.split(",")
1739 value1 = float(zvalueList[0])
1740 value2 = float(zvalueList[1])
1741
1742 opObj.addParameter(name='zmin', value=value1, format='float')
1743 opObj.addParameter(name='zmax', value=value2, format='float')
1744
1745 if magrange:
1746
1747 if not isFloatRange(magrange):
1748 self.console.append("Invalid value [%s] for 'Graphic:Magnitud-Range" %(magrange))
1749 return 0
1750
1751 zvalueList = magrange.split(",")
1752 value1 = float(zvalueList[0])
1753 value2 = float(zvalueList[1])
1754
1755 opObj.addParameter(name='coh_min', value=value1, format='float')
1756 opObj.addParameter(name='coh_max', value=value2, format='float')
1757
1758 if phaserange:
1759
1760 if not isFloatRange(phaserange):
1761 self.console.append("Invalid value [%s] for 'Graphic:Phase-Range" %(phaserange))
1762 return 0
1763
1764 zvalueList = phaserange.split(",")
1765 value1 = float(zvalueList[0])
1766 value2 = float(zvalueList[1])
1767
1768 opObj.addParameter(name='phase_min', value=value1, format='float')
1769 opObj.addParameter(name='phase_max', value=value2, format='float')
1770
1771 if not self.specGraphCebCrossSpectraplot.isChecked():
1772
1773 opObj.addParameter(name='show', value=0 , format='bool')
1774
1775 if self.specGraphSaveCross.isChecked():
1776
1777 checkPath = True
1778 opObj.addParameter(name='save', value='1', format='bool')
1779 opObj.addParameter(name='figpath', value=figpath, format='str')
1780 if figfile:
1781 opObj.addParameter(name='figfile', value=figfile, format='str')
1782 if wrperiod:
1783 opObj.addParameter(name='wr_period', value=wrperiod,format='int')
1784
1785 if self.specGraphftpCross.isChecked():
1786
1787 opObj.addParameter(name='ftp', value='1', format='int')
1788 self.addFTPConf2Operation(puObj, opObj)
1789 addFTP = True
1790
1791 if self.specGraphCebRTIplot.isChecked() or self.specGraphSaveRTIplot.isChecked():
1792
1793 opObj = puObj.addOperation(name='RTIPlot', optype='other')
1794 opObj.addParameter(name='id', value=opObj.id, format='int')
1795
1796 if channelList:
1797
1798 if not isIntList(channelList):
1799 self.console.append("Invalid value [%s] for 'Graphic:ChannelList" %(channelList))
1800 return 0
1801
1802 opObj.addParameter(name='channelList', value=channelList, format='intlist')
1803
1804 if trange:
1805
1806 if not isFloatRange(trange):
1807 self.console.append("Invalid value [%s] for 'Graphic:Time-Range" %(trange))
1808 return 0
1809
1810 zvalueList = trange.split(",")
1811 value1 = float(zvalueList[0])
1812 value2 = float(zvalueList[1])
1813
1814 opObj.addParameter(name='xmin', value=value1, format='float')
1815 opObj.addParameter(name='xmax', value=value2, format='float')
1816
1817 if timerange:
1818 try:
1819 timerange = int(timerange)
1820 except:
1821 return 0
1822 opObj.addParameter(name='timerange', value=timerange, format='int')
1823
1824 if hei_range:
1825
1826 if not isFloatRange(hei_range):
1827 self.console.append("Invalid value [%s] for 'Graphic:Height-Range" %(hei_range))
1828 return 0
1829
1830 yvalueList = hei_range.split(",")
1831 value1 = float(yvalueList[0])
1832 value2 = float(yvalueList[1])
1833
1834 opObj.addParameter(name='ymin', value=value1, format='float')
1835 opObj.addParameter(name='ymax', value=value2, format='float')
1836
1837 if db_range:
1838
1839 if not isFloatRange(db_range):
1840 self.console.append("Invalid value [%s] for 'Graphic:dB-Range" %(db_range))
1841 return 0
1842
1843 zvalueList = db_range.split(",")
1844 value1 = float(zvalueList[0])
1845 value2 = float(zvalueList[1])
1846
1847 opObj.addParameter(name='zmin', value=value1, format='float')
1848 opObj.addParameter(name='zmax', value=value2, format='float')
1849
1850 if not self.specGraphCebRTIplot.isChecked():
1851
1852 opObj.addParameter(name='show', value=0 , format='bool')
1853
1854 if self.specGraphSaveRTIplot.isChecked():
1855
1856 checkPath = True
1857 opObj.addParameter(name='save', value='1', format='bool')
1858 opObj.addParameter(name='figpath', value=figpath, format='str')
1859 if figfile:
1860 opObj.addParameter(name='figfile', value=value, format='str')
1861 if wrperiod:
1862 opObj.addParameter(name='wr_period', value=wrperiod,format='int')
1863
1864 if self.specGraphftpRTIplot.isChecked():
1865
1866 opObj.addParameter(name='ftp', value='1', format='int')
1867 self.addFTPConf2Operation(puObj, opObj)
1868 addFTP = True
1869
1870 if self.specGraphCebCoherencmap.isChecked() or self.specGraphSaveCoherencemap.isChecked():
1871
1872 opObj = puObj.addOperation(name='CoherenceMap', optype='other')
1873 opObj.addParameter(name='id', value=opObj.id, format='int')
1874
1875 if trange:
1876
1877 if not isFloatRange(trange):
1878 self.console.append("Invalid value [%s] for 'Graphic:Time-Range" %(trange))
1879 return 0
1880
1881 zvalueList = trange.split(",")
1882 value1 = float(zvalueList[0])
1883 value2 = float(zvalueList[1])
1884
1885 opObj.addParameter(name='xmin', value=value1, format='float')
1886 opObj.addParameter(name='xmax', value=value2, format='float')
1887
1888 if hei_range:
1889
1890 if not isFloatRange(hei_range):
1891 self.console.append("Invalid value [%s] for 'Graphic:Height-Range" %(hei_range))
1892 return 0
1893
1894 yvalueList = hei_range.split(",")
1895 value1 = float(yvalueList[0])
1896 value2 = float(yvalueList[1])
1897
1898 opObj.addParameter(name='ymin', value=value1, format='float')
1899 opObj.addParameter(name='ymax', value=value2, format='float')
1900
1901 if magrange:
1902
1903 if not isFloatRange(magrange):
1904 self.console.append("Invalid value [%s] for 'Graphic:Magnitud-Range" %(magrange))
1905 return 0
1906
1907 zvalueList = magrange.split(",")
1908 value1 = float(zvalueList[0])
1909 value2 = float(zvalueList[1])
1910
1911 opObj.addParameter(name='zmin', value=value1, format='float')
1912 opObj.addParameter(name='zmax', value=value2, format='float')
1913
1914 if phaserange:
1915
1916 if not isFloatRange(phaserange):
1917 self.console.append("Invalid value [%s] for 'Graphic:Phase-Range" %(phaserange))
1918 return 0
1919
1920 zvalueList = phaserange.split(",")
1921 value1 = float(zvalueList[0])
1922 value2 = float(zvalueList[1])
1923
1924 opObj.addParameter(name='phase_min', value=value1, format='float')
1925 opObj.addParameter(name='phase_max', value=value2, format='float')
1926
1927 if not self.specGraphCebCoherencmap.isChecked():
1928 opObj.addParameter(name='show', value=0 , format='bool')
1929
1930 if self.specGraphSaveCoherencemap.isChecked():
1931 checkPath = True
1932 opObj.addParameter(name='save', value='1', format='bool')
1933 opObj.addParameter(name='figpath', value=figpath, format='str')
1934 if figfile:
1935 opObj.addParameter(name='figfile', value=value, format='str')
1936 if wrperiod:
1937 opObj.addParameter(name='wr_period', value=wrperiod,format='int')
1938
1939 if self.specGraphftpCoherencemap.isChecked():
1940 opObj.addParameter(name='ftp', value='1', format='int')
1941 self.addFTPConf2Operation(puObj, opObj)
1942 addFTP = True
1943
1944 if self.specGraphPowerprofile.isChecked() or self.specGraphSavePowerprofile.isChecked():
1945
1946 opObj = puObj.addOperation(name='PowerProfilePlot', optype='other')
1947 opObj.addParameter(name='id', value=opObj.id, format='int')
1948
1949 if channelList:
1950
1951 if not isList(channelList):
1952 self.console.append("Invalid value [%s] for 'Graphic:ChannelList" %(channelList))
1953 return 0
1954
1955 opObj.addParameter(name='channelList', value=channelList, format='intlist')
1956
1957 if hei_range:
1958
1959 if not isFloatRange(hei_range):
1960 self.console.append("Invalid value [%s] for 'Graphic:Height-Range" %(hei_range))
1961 return 0
1962
1963 yvalueList = hei_range.split(",")
1964 value1 = float(yvalueList[0])
1965 value2 = float(yvalueList[1])
1966
1967 opObj.addParameter(name='ymin', value=value1, format='float')
1968 opObj.addParameter(name='ymax', value=value2, format='float')
1969
1970 if db_range:
1971
1972 if not isFloatRange(db_range):
1973 self.console.append("Invalid value [%s] for 'Graphic:dB-Range" %(db_range))
1974 return 0
1975
1976 zvalueList = db_range.split(",")
1977 value1 = float(zvalueList[0])
1978 value2 = float(zvalueList[1])
1979
1980 opObj.addParameter(name='xmin', value=value1, format='float')
1981 opObj.addParameter(name='xmax', value=value2, format='float')
1982
1983 if not self.specGraphPowerprofile.isChecked():
1984 opObj.addParameter(name='show', value=0 , format='bool')
1985
1986 if self.specGraphSavePowerprofile.isChecked():
1987 checkPath = True
1988 opObj.addParameter(name='save', value='1', format='bool')
1989 opObj.addParameter(name='figpath', value=figpath, format='str')
1990 if figfile:
1991 opObj.addParameter(name='figfile', value=value, format='str')
1992 if wrperiod:
1993 opObj.addParameter(name='wr_period', value=wrperiod,format='int')
1994
1995 if self.specGraphftpPowerprofile.isChecked():
1996 opObj.addParameter(name='ftp', value='1', format='int')
1997 self.addFTPConf2Operation(puObj, opObj)
1998 addFTP = True
1999 # rti noise
2000
2001 if self.specGraphCebRTInoise.isChecked() or self.specGraphSaveRTInoise.isChecked():
2002
2003 opObj = puObj.addOperation(name='Noise', optype='other')
2004 opObj.addParameter(name='id', value=opObj.id, format='int')
2005
2006 if channelList:
2007
2008 if not isList(channelList):
2009 self.console.append("Invalid value [%s] for 'Graphic:ChannelList" %(channelList))
2010 return 0
2011
2012 opObj.addParameter(name='channelList', value=channelList, format='intlist')
2013
2014 if trange:
2015
2016 if not isFloatRange(trange):
2017 self.console.append("Invalid value [%s] for 'Graphic:Time-Range" %(trange))
2018 return 0
2019
2020 zvalueList = trange.split(",")
2021 value1 = float(zvalueList[0])
2022 value2 = float(zvalueList[1])
2023
2024 opObj.addParameter(name='xmin', value=value1, format='float')
2025 opObj.addParameter(name='xmax', value=value2, format='float')
2026
2027 if db_range:
2028
2029 if not isFloatRange(db_range):
2030 self.console.append("Invalid value [%s] for 'Graphic:dB-Range" %(db_range))
2031 return 0
2032
2033 zvalueList = db_range.split(",")
2034 value1 = float(zvalueList[0])
2035 value2 = float(zvalueList[1])
2036
2037 opObj.addParameter(name='ymin', value=value1, format='float')
2038 opObj.addParameter(name='ymax', value=value2, format='float')
2039
2040 if not self.specGraphCebRTInoise.isChecked():
2041 opObj.addParameter(name='show', value=0 , format='bool')
2042
2043 if self.specGraphSaveRTInoise.isChecked():
2044 checkPath = True
2045 opObj.addParameter(name='save', value='1', format='bool')
2046 opObj.addParameter(name='figpath', value=figpath, format='str')
2047 if figfile:
2048 opObj.addParameter(name='figfile', value=value, format='str')
2049 if wrperiod:
2050 opObj.addParameter(name='wr_period', value=wrperiod,format='int')
2051
2052 # test_ftp
2053 if self.specGraphftpRTInoise.isChecked():
2054 opObj.addParameter(name='ftp', value='1', format='int')
2055 self.addFTPConf2Operation(puObj, opObj)
2056 addFTP = True
2057
2058 if checkPath:
2059 if not figpath:
2060 self.console.clear()
2061 self.console.append("Graphic path should be defined")
2062 return 0
2063
2064 if addFTP and not figpath:
2065 self.console.clear()
2066 self.console.append("You have to save the plots before sending them to FTP Server")
2067 return 0
2068
2069 self.console.clear()
2070
2071 # if something happend
2072 parms_ok, output_path, blocksperfile, profilesperblock = self.checkInputsPUSave(datatype='Spectra')
2073 if parms_ok:
2074 opObj = puObj.addOperation(name='SpectraWriter', optype='other')
2075 opObj.addParameter(name='path', value=output_path)
2076 opObj.addParameter(name='blocksPerFile', value=blocksperfile, format='int')
2077
2078 try:
2079 self.refreshPUProperties(puObj)
2080 except:
2081 self.console.append("An error reading input parameters was found ... Check them!")
2082 return 0
2083
2084 self.console.append("Save your project and press Play button to start signal processing")
2085
2086 self._enable_play_button()
2087 self._enable_save_button()
2088
2089 return 1
2090
2091
2092 @pyqtSignature("")
2093 def on_specGraphClear_clicked(self):
2094
2095 self.console.clear()
2096
2097 """
2098 Spectra Graph
2099 """
2100 @pyqtSignature("int")
2101 def on_specGraphCebSpectraplot_stateChanged(self, p0):
2102
2103 self.__checkSpecGraphFilters()
2104
2105
2106 @pyqtSignature("int")
2107 def on_specGraphCebCrossSpectraplot_stateChanged(self, p0):
2108
2109 self.__checkSpecGraphFilters()
2110
2111 @pyqtSignature("int")
2112 def on_specGraphCebRTIplot_stateChanged(self, p0):
2113
2114 self.__checkSpecGraphFilters()
2115
2116
2117 @pyqtSignature("int")
2118 def on_specGraphCebRTInoise_stateChanged(self, p0):
2119
2120 self.__checkSpecGraphFilters()
2121
2122
2123 @pyqtSignature("int")
2124 def on_specGraphCebCoherencmap_stateChanged(self, p0):
2125
2126 self.__checkSpecGraphFilters()
2127
2128 @pyqtSignature("int")
2129 def on_specGraphPowerprofile_stateChanged(self, p0):
2130
2131 self.__checkSpecGraphFilters()
2132
2133 @pyqtSignature("int")
2134 def on_specGraphPhase_stateChanged(self, p0):
2135
2136 self.__checkSpecGraphFilters()
2137
2138 @pyqtSignature("int")
2139 def on_specGraphSaveSpectra_stateChanged(self, p0):
2140 """
2141 """
2142 self.__checkSpecGraphFilters()
2143 self.__checkSpecGraphSaving()
2144
2145 @pyqtSignature("int")
2146 def on_specGraphSaveCross_stateChanged(self, p0):
2147
2148 self.__checkSpecGraphFilters()
2149 self.__checkSpecGraphSaving()
2150
2151 @pyqtSignature("int")
2152 def on_specGraphSaveRTIplot_stateChanged(self, p0):
2153
2154 self.__checkSpecGraphFilters()
2155 self.__checkSpecGraphSaving()
2156
2157 @pyqtSignature("int")
2158 def on_specGraphSaveRTInoise_stateChanged(self, p0):
2159
2160 self.__checkSpecGraphFilters()
2161 self.__checkSpecGraphSaving()
2162
2163 @pyqtSignature("int")
2164 def on_specGraphSaveCoherencemap_stateChanged(self, p0):
2165
2166 self.__checkSpecGraphFilters()
2167 self.__checkSpecGraphSaving()
2168
2169 @pyqtSignature("int")
2170 def on_specGraphSavePowerprofile_stateChanged(self, p0):
2171
2172 self.__checkSpecGraphFilters()
2173 self.__checkSpecGraphSaving()
2174
2175 @pyqtSignature("int")
2176 def on_specGraphftpSpectra_stateChanged(self, p0):
2177 """
2178 """
2179 self.__checkSpecGraphFTP()
2180
2181
2182 @pyqtSignature("int")
2183 def on_specGraphftpCross_stateChanged(self, p0):
2184
2185 self.__checkSpecGraphFTP()
2186
2187 @pyqtSignature("int")
2188 def on_specGraphftpRTIplot_stateChanged(self, p0):
2189
2190 self.__checkSpecGraphFTP()
2191
2192 @pyqtSignature("int")
2193 def on_specGraphftpRTInoise_stateChanged(self, p0):
2194
2195 self.__checkSpecGraphFTP()
2196
2197 @pyqtSignature("int")
2198 def on_specGraphftpCoherencemap_stateChanged(self, p0):
2199
2200 self.__checkSpecGraphFTP()
2201
2202 @pyqtSignature("int")
2203 def on_specGraphftpPowerprofile_stateChanged(self, p0):
2204
2205 self.__checkSpecGraphFTP()
2206
2207 @pyqtSignature("")
2208 def on_specGraphToolPath_clicked(self):
2209 """
2210 """
2211 save_path = str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly))
2212 self.specGraphPath.setText(save_path)
2213 if not os.path.exists(save_path):
2214 self.console.clear()
2215 self.console.append("Write a valid path")
2216 return
2217
2218 @pyqtSignature("")
2219 def on_specHeisGraphToolPath_clicked(self):
2220 """
2221 """
2222 save_path = str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly))
2223 self.specHeisGraphPath.setText(save_path)
2224 if not os.path.exists(save_path):
2225 self.console.clear()
2226 self.console.append("Write a valid path")
2227 return
2228
2229 @pyqtSignature("int")
2230 def on_specHeisOpCebIncoherent_stateChanged(self, p0):
2231 """
2232 Habilita la opcion de aοΏ½adir el parοΏ½metro integraciones incoherentes a la Unidad de Procesamiento .
2233 """
2234 if p0 == 2:
2235 self.specHeisOpIncoherent.setEnabled(True)
2236 self.specHeisOpCobIncInt.setEnabled(True)
2237 if p0 == 0:
2238 self.specHeisOpIncoherent.setEnabled(False)
2239 self.specHeisOpCobIncInt.setEnabled(False)
2240
2241 @pyqtSignature("")
2242 def on_specHeisOpOk_clicked(self):
2243 """
2244 AΓ‘ADE OPERACION SPECTRAHEIS
2245 """
2246 addFTP = False
2247 checkPath = False
2248
2249 self._disable_play_button()
2250 self._disable_save_button()
2251
2252 self.console.clear()
2253 self.console.append("Checking input parameters ...")
2254
2255 puObj = self.getSelectedItemObj()
2256 puObj.removeOperations()
2257
2258 if self.specHeisOpCebIncoherent.isChecked():
2259 value = str(self.specHeisOpIncoherent.text())
2260 name_operation = 'IncohInt4SpectraHeis'
2261 optype = 'other'
2262
2263 name_parameter = 'timeInterval'
2264 format = 'float'
2265
2266 if self.specOpCobIncInt.currentIndex() == 0:
2267 name_parameter = 'timeInterval'
2268 format = 'float'
2269
2270 if not isFloat(value):
2271 self.console.append("Invalid value '%s' for '%s'" %(value, name_parameter))
2272 return 0
2273
2274 opObj = puObj.addOperation(name=name_operation, optype=optype)
2275
2276 if not opObj.addParameter(name=name_parameter, value=value, format=format):
2277 self.console.append("Invalid value '%s' for '%s'" %(value, name_parameter))
2278 return 0
2279
2280 channelList = str(self.specHeisGgraphChannelList.text())
2281 freq_range = str(self.specHeisGgraphXminXmax.text())
2282 power_range = str(self.specHeisGgraphYminYmax.text())
2283 time_range = str(self.specHeisGgraphTminTmax.text())
2284 timerange = str(self.specHeisGgraphTimeRange.text())
2285
2286 if self.specHeisGraphCebSpectraplot.isChecked():
2287
2288 name_operation = 'SpectraHeisScope'
2289 optype = 'other'
2290 opObj = puObj.addOperation(name=name_operation, optype=optype)
2291
2292 name_parameter = 'id'
2293 format = 'int'
2294 value = opObj.id
2295
2296 if not opObj.addParameter(name=name_parameter, value=value, format=format):
2297 self.console.append("Invalid value '%s' for '%s'" %(value, name_parameter))
2298 return 0
2299
2300 if not (channelList == ''):
2301 name_parameter = 'channelList'
2302 format = 'intlist'
2303
2304 if not isList(channelList):
2305 self.console.append("Invalid value '%s' for '%s'" %(channelList, name_parameter))
2306 return 0
2307
2308 opObj.addParameter(name=name_parameter, value=channelList, format=format)
2309
2310 if not freq_range == '':
2311 xvalueList = freq_range.split(',')
2312
2313 if len(xvalueList) != 2:
2314 self.console.append("Invalid value '%s' for '%s'" %(freq_range, "xrange"))
2315 return 0
2316
2317 value1 = xvalueList[0]
2318 value2 = xvalueList[1]
2319
2320 if not isFloat(value1) or not isFloat(value2):
2321 self.console.append("Invalid value '%s' for '%s'" %(freq_range, "xrange"))
2322 return 0
2323
2324 name1 = 'xmin'
2325 name2 = 'xmax'
2326 format = 'float'
2327
2328 opObj.addParameter(name=name1, value=value1, format=format)
2329 opObj.addParameter(name=name2, value=value2, format=format)
2330
2331 if not power_range == '':
2332 yvalueList = power_range.split(",")
2333
2334 if len(yvalueList) != 2:
2335 self.console.append("Invalid value '%s' for '%s'" %(power_range, "xrange"))
2336 return 0
2337
2338 value1 = yvalueList[0]
2339 value2 = yvalueList[1]
2340
2341 if not isFloat(value1) or not isFloat(value2):
2342 self.console.append("Invalid value '%s' for '%s'" %(power_range, "yrange"))
2343 return 0
2344
2345 name1 = 'ymin'
2346 name2 = 'ymax'
2347 format = 'float'
2348 opObj.addParameter(name=name1, value=value1, format=format)
2349 opObj.addParameter(name=name2, value=value2, format=format)
2350
2351 if self.specHeisGraphSaveSpectra.isChecked():
2352 checkPath = True
2353 name_parameter1 = 'save'
2354 name_parameter2 = 'figpath'
2355 name_parameter3 = 'figfile'
2356 value1 = '1'
2357 value2 = str(self.specHeisGraphPath.text())
2358 value3 = str(self.specHeisGraphPrefix.text())
2359 format1 = 'bool'
2360 format2 = 'str'
2361 opObj.addParameter(name=name_parameter1, value=value1 , format=format1)
2362 opObj.addParameter(name=name_parameter2, value=value2, format=format2)
2363 if not value3 == "":
2364 try:
2365 value3 = str(self.specHeisGraphPrefix.text())
2366 except:
2367 self.console.clear()
2368 self.console.append("Please Write prefix")
2369 return 0
2370 opObj.addParameter(name='figfile', value=str(self.specHeisGraphPrefix.text()), format='str')
2371
2372 # opObj.addParameter(name=name_parameter3, value=value3, format=format2)
2373 # opObj.addParameter(name='wr_period', value='5',format='int')
2374
2375 if self.specHeisGraphftpSpectra.isChecked():
2376 opObj.addParameter(name='ftp', value='1', format='int')
2377 self.addFTPConf2Operation(puObj, opObj)
2378 addFTP = True
2379
2380 if self.specHeisGraphCebRTIplot.isChecked():
2381 name_operation = 'RTIfromSpectraHeis'
2382 optype = 'other'
2383
2384 name_parameter = 'id'
2385 format = 'int'
2386
2387 opObj = puObj.addOperation(name=name_operation, optype=optype)
2388 value = opObj.id
2389 opObj.addParameter(name=name_parameter, value=value, format=format)
2390
2391 if not channelList == '':
2392 opObj.addParameter(name='channelList', value=channelList, format='intlist')
2393
2394 if not time_range == '':
2395 xvalueList = time_range.split(',')
2396 try:
2397 value = float(xvalueList[0])
2398 value = float(xvalueList[1])
2399 except:
2400 return 0
2401 format = 'float'
2402 opObj.addParameter(name='xmin', value=xvalueList[0], format=format)
2403 opObj.addParameter(name='xmax', value=xvalueList[1], format=format)
2404
2405 if not timerange == '':
2406 format = 'int'
2407 try:
2408 timerange = int(timerange)
2409 except:
2410 return 0
2411 opObj.addParameter(name='timerange', value=timerange, format=format)
2412
2413
2414 if not power_range == '':
2415 yvalueList = power_range.split(",")
2416 try:
2417 value = float(yvalueList[0])
2418 value = float(yvalueList[1])
2419 except:
2420 return 0
2421
2422 format = 'float'
2423 opObj.addParameter(name='ymin', value=yvalueList[0], format=format)
2424 opObj.addParameter(name='ymax', value=yvalueList[1], format=format)
2425
2426 if self.specHeisGraphSaveRTIplot.isChecked():
2427 checkPath = True
2428 opObj.addParameter(name='save', value='1', format='bool')
2429 opObj.addParameter(name='figpath', value=str(self.specHeisGraphPath.text()), format='str')
2430 value = str(self.specHeisGraphPrefix.text())
2431 if not value == "":
2432 try:
2433 value = str(self.specHeisGraphPrefix.text())
2434 except:
2435 self.console.clear()
2436 self.console.append("Please Write prefix")
2437 return 0
2438 opObj.addParameter(name='figfile', value=value, format='str')
2439
2440 # test_ftp
2441 if self.specHeisGraphftpRTIplot.isChecked():
2442 opObj.addParameter(name='ftp', value='1', format='int')
2443 self.addFTPConf2Operation(puObj, opObj)
2444 addFTP = True
2445
2446 localfolder = None
2447 if checkPath:
2448 localfolder = str(self.specHeisGraphPath.text())
2449 if localfolder == '':
2450 self.console.clear()
2451 self.console.append("Graphic path should be defined")
2452 return 0
2453
2454 if addFTP and not localfolder:
2455 self.console.clear()
2456 self.console.append("You should save plots before send them to FTP Server")
2457 return 0
2458
2459 # if something happened
2460 parms_ok, output_path, blocksperfile, metadata_file = self.checkInputsPUSave(datatype='SpectraHeis')
2461 if parms_ok:
2462 name_operation = 'FitsWriter'
2463 optype = 'other'
2464 name_parameter1 = 'path'
2465 name_parameter2 = 'dataBlocksPerFile'
2466 name_parameter3 = 'metadatafile'
2467 value1 = output_path
2468 value2 = blocksperfile
2469 value3 = metadata_file
2470 format2 = "int"
2471 format3 = "str"
2472 opObj = puObj.addOperation(name=name_operation, optype=optype)
2473
2474 opObj.addParameter(name=name_parameter1, value=value1)
2475
2476 if blocksperfile:
2477 opObj.addParameter(name=name_parameter2, value=value2, format=format2)
2478
2479 if metadata_file:
2480 opObj.addParameter(name=name_parameter3, value=value3, format=format3)
2481
2482 self.console.clear()
2483 try:
2484 self.refreshPUProperties(puObj)
2485 except:
2486 self.console.append("An error reading input parameters was found ... Check them!")
2487 return 0
2488
2489 self.console.append("Save your project and press Play button to start signal processing")
2490
2491 self._enable_save_button()
2492 self._enable_play_button()
2493
2494 return 1
2495
2496 @pyqtSignature("")
2497 def on_specHeisGraphClear_clicked(self):
2498
2499 self.console.clear()
2500
2501 @pyqtSignature("int")
2502 def on_specHeisGraphCebSpectraplot_stateChanged(self, p0):
2503
2504 if p0 == 2:
2505 self.specHeisGgraphChannelList.setEnabled(True)
2506 self.specHeisGgraphXminXmax.setEnabled(True)
2507 self.specHeisGgraphYminYmax.setEnabled(True)
2508 if p0 == 0:
2509 self.specHeisGgraphXminXmax.setEnabled(False)
2510 self.specHeisGgraphYminYmax.setEnabled(False)
2511
2512 @pyqtSignature("int")
2513 def on_specHeisGraphCebRTIplot_stateChanged(self, p0):
2514
2515 if p0 == 2:
2516 self.specHeisGgraphChannelList.setEnabled(True)
2517 self.specHeisGgraphTminTmax.setEnabled(True)
2518 self.specHeisGgraphYminYmax.setEnabled(True)
2519 self.specHeisGgraphTimeRange.setEnabled(True)
2520
2521 if p0 == 0:
2522 self.specHeisGgraphTminTmax.setEnabled(False)
2523 self.specHeisGgraphYminYmax.setEnabled(False)
2524 self.specHeisGgraphTimeRange.setEnabled(False)
2525
2526 @pyqtSignature("int")
2527 def on_specHeisGraphSaveSpectra_stateChanged(self, p0):
2528 """
2529 """
2530 if p0 == 2:
2531 self.specHeisGraphPath.setEnabled(True)
2532 self.specHeisGraphPrefix.setEnabled(True)
2533 self.specHeisGraphToolPath.setEnabled(True)
2534 if p0 == 0:
2535 self.specHeisGraphPath.setEnabled(False)
2536 self.specHeisGraphPrefix.setEnabled(False)
2537 self.specHeisGraphToolPath.setEnabled(False)
2538
2539 @pyqtSignature("int")
2540 def on_specHeisGraphSaveRTIplot_stateChanged(self, p0):
2541 if p0 == 2:
2542 self.specHeisGraphPath.setEnabled(True)
2543 self.specHeisGraphPrefix.setEnabled(True)
2544 self.specHeisGraphToolPath.setEnabled(True)
2545
2546 @pyqtSignature("int")
2547 def on_specHeisGraphftpSpectra_stateChanged(self, p0):
2548 """
2549 """
2550 if p0 == 2:
2551 self.specHeisGgraphftpratio.setEnabled(True)
2552
2553 if p0 == 0:
2554 self.specHeisGgraphftpratio.setEnabled(False)
2555
2556 @pyqtSignature("int")
2557 def on_specHeisGraphftpRTIplot_stateChanged(self, p0):
2558 if p0 == 2:
2559 self.specHeisGgraphftpratio.setEnabled(True)
2560
2561 def __checkSpecGraphSaving(self):
2562
2563 enable = False
2564
2565 if self.specGraphSaveSpectra.checkState():
2566 enable = True
2567
2568 if self.specGraphSaveCross.checkState():
2569 enable = True
2570
2571 if self.specGraphSaveRTIplot.checkState():
2572 enable = True
2573
2574 if self.specGraphSaveCoherencemap.checkState():
2575 enable = True
2576
2577 if self.specGraphSavePowerprofile.checkState():
2578 enable = True
2579
2580 if self.specGraphSaveRTInoise.checkState():
2581 enable = True
2582
2583 self.specGraphPath.setEnabled(enable)
2584 self.specGraphPrefix.setEnabled(enable)
2585 self.specGraphToolPath.setEnabled(enable)
2586
2587 self.specGgraphftpratio.setEnabled(enable)
2588
2589 def __checkSpecGraphFTP(self):
2590
2591 enable = False
2592
2593 if self.specGraphftpSpectra.checkState():
2594 enable = True
2595
2596 if self.specGraphftpCross.checkState():
2597 enable = True
2598
2599 if self.specGraphftpRTIplot.checkState():
2600 enable = True
2601
2602 if self.specGraphftpCoherencemap.checkState():
2603 enable = True
2604
2605 if self.specGraphftpPowerprofile.checkState():
2606 enable = True
2607
2608 if self.specGraphftpRTInoise.checkState():
2609 enable = True
2610
2611 # self.specGgraphftpratio.setEnabled(enable)
2612
2613 def __checkSpecGraphFilters(self):
2614
2615 freq = False
2616 height = False
2617 db = False
2618 timerange = False
2619 magnitud = False
2620 phase = False
2621 channelList = False
2622
2623 if self.specGraphCebSpectraplot.checkState() or self.specGraphSaveSpectra.checkState():
2624 freq = True
2625 height = True
2626 db = True
2627 channelList = True
2628
2629 if self.specGraphCebCrossSpectraplot.checkState() or self.specGraphSaveCross.checkState():
2630 freq = True
2631 height = True
2632 db = True
2633 magnitud = True
2634 phase = True
2635
2636 if self.specGraphCebRTIplot.checkState() or self.specGraphSaveRTIplot.checkState():
2637 height = True
2638 db = True
2639 timerange = True
2640 channelList = True
2641
2642 if self.specGraphCebCoherencmap.checkState() or self.specGraphSaveCoherencemap.checkState():
2643 height = True
2644 timerange = True
2645 magnitud = True
2646 phase = True
2647
2648 if self.specGraphPowerprofile.checkState() or self.specGraphSavePowerprofile.checkState():
2649 height = True
2650 db = True
2651 channelList = True
2652
2653 if self.specGraphCebRTInoise.checkState() or self.specGraphSaveRTInoise.checkState():
2654 db = True
2655 timerange = True
2656 channelList = True
2657
2658
2659 self.specGgraphFreq.setEnabled(freq)
2660 self.specGgraphHeight.setEnabled(height)
2661 self.specGgraphDbsrange.setEnabled(db)
2662 self.specGgraphTminTmax.setEnabled(timerange)
2663 self.specGgraphTimeRange.setEnabled(timerange)
2664
2665 self.specGgraphmagnitud.setEnabled(magnitud)
2666 self.specGgraphPhase.setEnabled(phase)
2667 self.specGgraphChannelList.setEnabled(channelList)
2668
2669 def __getParmsFromProjectWindow(self):
2670 """
2671 Check Inputs Project:
2672 - project_name
2673 - datatype
2674 - ext
2675 - data_path
2676 - readmode
2677 - delay
2678 - set
2679 - walk
2680 """
2681 parms_ok = True
2682
2683 project_name = str(self.proName.text())
2684
2685 if project_name == '' or project_name == None:
2686 outputstr = "Enter a project Name"
2687 self.console.append(outputstr)
2688 parms_ok = False
2689 project_name = None
2690
2691 description = str(self.proDescription.toPlainText())
2692
2693 datatype = str(self.proComDataType.currentText())
2694
2695 ext = str(self.proDataType.text())
2696
2697 dpath = str(self.proDataPath.text())
2698
2699 if dpath == '':
2700 outputstr = 'Datapath is empty'
2701 self.console.append(outputstr)
2702 parms_ok = False
2703 dpath = None
2704
2705 if dpath != None:
2706 if not os.path.isdir(dpath):
2707 outputstr = 'Datapath (%s) does not exist' % dpath
2708 self.console.append(outputstr)
2709 parms_ok = False
2710 dpath = None
2711
2712 online = int(self.proComReadMode.currentIndex())
2713
2714 delay = None
2715 if online==1:
2716 try:
2717 delay = int(str(self.proDelay.text()))
2718 except:
2719 outputstr = 'Delay value (%s) must be a integer number' %str(self.proDelay.text())
2720 self.console.append(outputstr)
2721 parms_ok = False
2722
2723
2724 set = None
2725 value = str(self.proSet.text())
2726 try:
2727 set = int(value)
2728 except:
2729 pass
2730
2731 ippKm = None
2732
2733 value = str(self.proIPPKm.text())
2734
2735 try:
2736 ippKm = float(value)
2737 except:
2738 if datatype=="USRP":
2739 outputstr = 'IPP value "%s" must be a float number' % str(self.proIPPKm.text())
2740 self.console.append(outputstr)
2741 parms_ok = False
2742
2743 walk = int(self.proComWalk.currentIndex())
2744 expLabel = str(self.proExpLabel.text())
2745
2746 startDate = str(self.proComStartDate.currentText()).strip()
2747 endDate = str(self.proComEndDate.currentText()).strip()
2748
2749 if not startDate:
2750 parms_ok = False
2751
2752 if not endDate:
2753 parms_ok = False
2754
2755 # startDateList = startDate.split("/")
2756 # endDateList = endDate.split("/")
2757 #
2758 # startDate = datetime.date(int(startDateList[0]), int(startDateList[1]), int(startDateList[2]))
2759 # endDate = datetime.date(int(endDateList[0]), int(endDateList[1]), int(endDateList[2]))
2760
2761 startTime = self.proStartTime.time()
2762 endTime = self.proEndTime.time()
2763
2764 startTime = str(startTime.toString("H:m:s"))
2765 endTime = str(endTime.toString("H:m:s"))
2766
2767 projectParms = ProjectParms()
2768
2769 projectParms.name = project_name
2770 projectParms.description = description
2771 projectParms.datatype = datatype
2772 projectParms.ext = ext
2773 projectParms.dpath = dpath
2774 projectParms.online = online
2775 projectParms.startDate = startDate
2776 projectParms.endDate = endDate
2777 projectParms.startTime = startTime
2778 projectParms.endTime = endTime
2779 projectParms.delay = delay
2780 projectParms.walk = walk
2781 projectParms.expLabel = expLabel
2782 projectParms.set = set
2783 projectParms.ippKm = ippKm
2784 projectParms.parmsOk = parms_ok
2785
2786 return projectParms
2787
2788
2789 def __getParmsFromProjectObj(self, projectObjView):
2790
2791 parms_ok = True
2792
2793 project_name, description = projectObjView.name, projectObjView.description
2794
2795 readUnitObj = projectObjView.getReadUnitObj()
2796 datatype = readUnitObj.datatype
2797
2798 operationObj = readUnitObj.getOperationObj(name='run')
2799
2800 dpath = operationObj.getParameterValue(parameterName='path')
2801 startDate = operationObj.getParameterValue(parameterName='startDate')
2802 endDate = operationObj.getParameterValue(parameterName='endDate')
2803
2804 startDate = startDate.strftime("%Y/%m/%d")
2805 endDate = endDate.strftime("%Y/%m/%d")
2806
2807 startTime = operationObj.getParameterValue(parameterName='startTime')
2808 endTime = operationObj.getParameterValue(parameterName='endTime')
2809
2810 startTime = startTime.strftime("%H:%M:%S")
2811 endTime = endTime.strftime("%H:%M:%S")
2812
2813 online = 0
2814 try:
2815 online = operationObj.getParameterValue(parameterName='online')
2816 except:
2817 pass
2818
2819 delay = ''
2820 try:
2821 delay = operationObj.getParameterValue(parameterName='delay')
2822 except:
2823 pass
2824
2825 walk = 0
2826 try:
2827 walk = operationObj.getParameterValue(parameterName='walk')
2828 except:
2829 pass
2830
2831 set = ''
2832 try:
2833 set = operationObj.getParameterValue(parameterName='set')
2834 except:
2835 pass
2836
2837 expLabel = ''
2838 try:
2839 expLabel = operationObj.getParameterValue(parameterName='expLabel')
2840 except:
2841 pass
2842
2843 ippKm = ''
2844 if datatype.lower() == 'usrp':
2845 try:
2846 ippKm = operationObj.getParameterValue(parameterName='ippKm')
2847 except:
2848 pass
2849
2850 projectParms = ProjectParms()
2851
2852 projectParms.name = project_name
2853 projectParms.description = description
2854 projectParms.datatype = datatype
2855 projectParms.ext = None
2856 projectParms.dpath = dpath
2857 projectParms.online = online
2858 projectParms.startDate = startDate
2859 projectParms.endDate = endDate
2860 projectParms.startTime = startTime
2861 projectParms.endTime = endTime
2862 projectParms.delay=delay
2863 projectParms.walk=walk
2864 projectParms.set=set
2865 projectParms.ippKm=ippKm
2866 projectParms.expLabel = expLabel
2867 projectParms.parmsOk=parms_ok
2868
2869 return projectParms
2870
2871 def refreshProjectWindow(self, projectObjView):
2872
2873 self.proOk.setEnabled(False)
2874
2875 projectParms = self.__getParmsFromProjectObj(projectObjView)
2876
2877 index = projectParms.getDatatypeIndex()
2878
2879 self.proName.setText(projectParms.name)
2880 self.proDescription.clear()
2881 self.proDescription.append(projectParms.description)
2882
2883 self.on_proComDataType_activated(index=index)
2884 self.proDataPath.setText(projectParms.dpath)
2885 self.proComDataType.setCurrentIndex(index)
2886 self.proComReadMode.setCurrentIndex(projectParms.online)
2887 self.proDelay.setText(str(projectParms.delay))
2888 self.proSet.setText(str(projectParms.set))
2889 self.proIPPKm.setText(str(projectParms.ippKm))
2890 self.proComWalk.setCurrentIndex(projectParms.walk)
2891 self.proExpLabel.setText(str(projectParms.expLabel).strip())
2892
2893 self.on_proComReadMode_activated(projectParms.online)
2894 self.on_proComWalk_activated(projectParms.walk)
2895
2896 dateList = self.loadDays(data_path = projectParms.dpath,
2897 ext = projectParms.getExt(),
2898 walk = projectParms.walk,
2899 expLabel = projectParms.expLabel)
2900
2901 if not dateList:
2902 return 0
2903
2904 try:
2905 startDateIndex = dateList.index(projectParms.startDate)
2906 except:
2907 startDateIndex = 0
2908
2909 try:
2910 endDateIndex = dateList.index(projectParms.endDate)
2911 except:
2912 endDateIndex = int(self.proComEndDate.count()-1)
2913
2914 self.proComStartDate.setCurrentIndex(startDateIndex)
2915 self.proComEndDate.setCurrentIndex(endDateIndex)
2916
2917 startlist = projectParms.startTime.split(":")
2918 endlist = projectParms.endTime.split(":")
2919
2920 self.time.setHMS(int(startlist[0]), int(startlist[1]), int(startlist[2]))
2921 self.proStartTime.setTime(self.time)
2922
2923 self.time.setHMS(int(endlist[0]), int(endlist[1]), int(endlist[2]))
2924 self.proEndTime.setTime(self.time)
2925
2926 self.proOk.setEnabled(True)
2927
2928 return 1
2929
2930 def __refreshVoltageWindow(self, puObj):
2931
2932 opObj = puObj.getOperationObj(name='setRadarFrequency')
2933 if opObj == None:
2934 self.volOpRadarfrequency.clear()
2935 self.volOpCebRadarfrequency.setCheckState(0)
2936 else:
2937 value = opObj.getParameterValue(parameterName='frequency')
2938 value = str(float(value)/1e6)
2939 self.volOpRadarfrequency.setText(value)
2940 self.volOpRadarfrequency.setEnabled(True)
2941 self.volOpCebRadarfrequency.setCheckState(QtCore.Qt.Checked)
2942
2943 opObj = puObj.getOperationObj(name="selectChannels")
2944
2945 if opObj == None:
2946 opObj = puObj.getOperationObj(name="selectChannelsByIndex")
2947
2948 if opObj == None:
2949 self.volOpChannel.clear()
2950 self.volOpCebChannels.setCheckState(0)
2951 else:
2952 channelEnabled = False
2953 try:
2954 value = opObj.getParameterValue(parameterName='channelList')
2955 value = str(value)[1:-1]
2956 channelEnabled = True
2957 channelMode = 0
2958 except:
2959 pass
2960 try:
2961 value = opObj.getParameterValue(parameterName='channelIndexList')
2962 value = str(value)[1:-1]
2963 channelEnabled = True
2964 channelMode = 1
2965 except:
2966 pass
2967
2968 if channelEnabled:
2969 self.volOpChannel.setText(value)
2970 self.volOpChannel.setEnabled(True)
2971 self.volOpCebChannels.setCheckState(QtCore.Qt.Checked)
2972 self.volOpComChannels.setCurrentIndex(channelMode)
2973
2974 opObj = puObj.getOperationObj(name="selectHeights")
2975 if opObj == None:
2976 self.volOpHeights.clear()
2977 self.volOpCebHeights.setCheckState(0)
2978 else:
2979 value1 = str(opObj.getParameterValue(parameterName='minHei'))
2980 value2 = str(opObj.getParameterValue(parameterName='maxHei'))
2981 value = value1 + "," + value2
2982 self.volOpHeights.setText(value)
2983 self.volOpHeights.setEnabled(True)
2984 self.volOpCebHeights.setCheckState(QtCore.Qt.Checked)
2985
2986 opObj = puObj.getOperationObj(name="SplitProfiles")
2987 if opObj == None:
2988 self.volOpSplitter.clear()
2989 self.volOpCebSplitter.setCheckState(0)
2990 else:
2991 value = opObj.getParameterValue(parameterName='n')
2992 value = str(value)
2993 self.volOpSplitter.setText(value)
2994 self.volOpSplitter.setEnabled(True)
2995 self.volOpCebSplitter.setCheckState(QtCore.Qt.Checked)
2996
2997 opObj = puObj.getOperationObj(name="CombineProfiles")
2998 if opObj == None:
2999 self.volOpCombiner.clear()
3000 self.volOpCebCombiner.setCheckState(0)
3001 else:
3002 value = opObj.getParameterValue(parameterName='n')
3003 value = str(value)
3004 self.volOpCombiner.setText(value)
3005 self.volOpCombiner.setEnabled(True)
3006 self.volOpCebCombiner.setCheckState(QtCore.Qt.Checked)
3007
3008 opObj = puObj.getOperationObj(name="filterByHeights")
3009 if opObj == None:
3010 self.volOpFilter.clear()
3011 self.volOpCebFilter.setCheckState(0)
3012 else:
3013 value = opObj.getParameterValue(parameterName='window')
3014 value = str(value)
3015 self.volOpFilter.setText(value)
3016 self.volOpFilter.setEnabled(True)
3017 self.volOpCebFilter.setCheckState(QtCore.Qt.Checked)
3018
3019 opObj = puObj.getOperationObj(name="ProfileSelector")
3020 if opObj == None:
3021 self.volOpProfile.clear()
3022 self.volOpCebProfile.setCheckState(0)
3023 else:
3024 for parmObj in opObj.getParameterObjList():
3025
3026 if parmObj.name == "profileList":
3027 value = parmObj.getValue()
3028 value = str(value)[1:-1]
3029 self.volOpProfile.setText(value)
3030 self.volOpProfile.setEnabled(True)
3031 self.volOpCebProfile.setCheckState(QtCore.Qt.Checked)
3032 self.volOpComProfile.setCurrentIndex(0)
3033
3034 if parmObj.name == "profileRangeList":
3035 value = parmObj.getValue()
3036 value = str(value)[1:-1]
3037 self.volOpProfile.setText(value)
3038 self.volOpProfile.setEnabled(True)
3039 self.volOpCebProfile.setCheckState(QtCore.Qt.Checked)
3040 self.volOpComProfile.setCurrentIndex(1)
3041
3042 if parmObj.name == "rangeList":
3043 value = parmObj.getValue()
3044 value = str(value)[1:-1]
3045 self.volOpProfile.setText(value)
3046 self.volOpProfile.setEnabled(True)
3047 self.volOpCebProfile.setCheckState(QtCore.Qt.Checked)
3048 self.volOpComProfile.setCurrentIndex(2)
3049
3050 opObj = puObj.getOperationObj(name="Decoder")
3051 self.volOpCode.setText("")
3052 if opObj == None:
3053 self.volOpCebDecodification.setCheckState(0)
3054 else:
3055 self.volOpCebDecodification.setCheckState(QtCore.Qt.Checked)
3056
3057 parmObj = opObj.getParameterObj('code')
3058
3059 if parmObj == None:
3060 self.volOpComCode.setCurrentIndex(0)
3061 else:
3062
3063 parmObj1 = opObj.getParameterObj('nCode')
3064 parmObj2 = opObj.getParameterObj('nBaud')
3065
3066 if parmObj1 == None or parmObj2 == None:
3067 self.volOpComCode.setCurrentIndex(0)
3068 else:
3069 code = ast.literal_eval(str(parmObj.getValue()))
3070 nCode = parmObj1.getValue()
3071 nBaud = parmObj2.getValue()
3072
3073 code = numpy.asarray(code).reshape((nCode, nBaud)).tolist()
3074
3075 #User defined by default
3076 self.volOpComCode.setCurrentIndex(13)
3077 self.volOpCode.setText(str(code))
3078
3079 if nCode == 1:
3080 if nBaud == 3:
3081 self.volOpComCode.setCurrentIndex(1)
3082 if nBaud == 4:
3083 self.volOpComCode.setCurrentIndex(2)
3084 if nBaud == 5:
3085 self.volOpComCode.setCurrentIndex(3)
3086 if nBaud == 7:
3087 self.volOpComCode.setCurrentIndex(4)
3088 if nBaud == 11:
3089 self.volOpComCode.setCurrentIndex(5)
3090 if nBaud == 13:
3091 self.volOpComCode.setCurrentIndex(6)
3092
3093 if nCode == 2:
3094 if nBaud == 3:
3095 self.volOpComCode.setCurrentIndex(7)
3096 if nBaud == 4:
3097 self.volOpComCode.setCurrentIndex(8)
3098 if nBaud == 5:
3099 self.volOpComCode.setCurrentIndex(9)
3100 if nBaud == 7:
3101 self.volOpComCode.setCurrentIndex(10)
3102 if nBaud == 11:
3103 self.volOpComCode.setCurrentIndex(11)
3104 if nBaud == 13:
3105 self.volOpComCode.setCurrentIndex(12)
3106
3107
3108 opObj = puObj.getOperationObj(name="deFlip")
3109 if opObj == None:
3110 self.volOpFlip.clear()
3111 self.volOpFlip.setEnabled(False)
3112 self.volOpCebFlip.setCheckState(0)
3113 else:
3114 try:
3115 value = opObj.getParameterValue(parameterName='channelList')
3116 value = str(value)[1:-1]
3117 except:
3118 value = ""
3119
3120 self.volOpFlip.setText(value)
3121 self.volOpFlip.setEnabled(True)
3122 self.volOpCebFlip.setCheckState(QtCore.Qt.Checked)
3123
3124 opObj = puObj.getOperationObj(name="CohInt")
3125 if opObj == None:
3126 self.volOpCohInt.clear()
3127 self.volOpCebCohInt.setCheckState(0)
3128 else:
3129 value = opObj.getParameterValue(parameterName='n')
3130 self.volOpCohInt.setText(str(value))
3131 self.volOpCohInt.setEnabled(True)
3132 self.volOpCebCohInt.setCheckState(QtCore.Qt.Checked)
3133
3134 opObj = puObj.getOperationObj(name='Scope')
3135 if opObj == None:
3136 self.volGraphCebshow.setCheckState(0)
3137 else:
3138 self.volGraphCebshow.setCheckState(QtCore.Qt.Checked)
3139
3140 parmObj = opObj.getParameterObj(parameterName='channelList')
3141
3142 if parmObj == None:
3143 self.volGraphChannelList.clear()
3144 else:
3145 value = parmObj.getValue()
3146 value = str(value)
3147 self.volGraphChannelList.setText(value)
3148 # self.volOpChannel.setEnabled(True)
3149
3150 parmObj1 = opObj.getParameterObj(parameterName='ymin')
3151 parmObj2 = opObj.getParameterObj(parameterName='ymax')
3152
3153 if parmObj1 == None or parmObj2 ==None:
3154 self.volGraphIntensityRange.clear()
3155 else:
3156 value1 = parmObj1.getValue()
3157 value1 = str(value1)
3158 value2 = parmObj2.getValue()
3159 value2 = str(value2)
3160 value = value1 + "," + value2
3161 self.volGraphIntensityRange.setText(value)
3162
3163 parmObj1 = opObj.getParameterObj(parameterName='xmin')
3164 parmObj2 = opObj.getParameterObj(parameterName='xmax')
3165
3166 if parmObj1 == None or parmObj2 ==None:
3167 self.volGraphHeightrange.clear()
3168 else:
3169 value1 = parmObj1.getValue()
3170 value1 = str(value1)
3171 value2 = parmObj2.getValue()
3172 value2 = str(value2)
3173 value = value1 + "," + value2
3174 value2 = str(value2)
3175 self.volGraphHeightrange.setText(value)
3176
3177 parmObj = opObj.getParameterObj(parameterName='type')
3178
3179 if parmObj == None:
3180 self.volComScopeType.setCurrentIndex(0)
3181 else:
3182 value = parmObj.getValue()
3183 if value == "iq":
3184 self.volComScopeType.setCurrentIndex(0)
3185 if value == "power":
3186 self.volComScopeType.setCurrentIndex(1)
3187
3188 parmObj = opObj.getParameterObj(parameterName='save')
3189
3190 if parmObj == None:
3191 self.volGraphCebSave.setCheckState(QtCore.Qt.Unchecked)
3192 else:
3193 value = parmObj.getValue()
3194 if value:
3195 self.volGraphCebSave.setCheckState(QtCore.Qt.Checked)
3196 else:
3197 self.volGraphCebSave.setCheckState(QtCore.Qt.Unchecked)
3198
3199 parmObj = opObj.getParameterObj(parameterName='figpath')
3200 if parmObj == None:
3201 self.volGraphPath.clear()
3202 else:
3203 value = parmObj.getValue()
3204 path = str(value)
3205 self.volGraphPath.setText(path)
3206
3207 parmObj = opObj.getParameterObj(parameterName='figfile')
3208 if parmObj == None:
3209 self.volGraphPrefix.clear()
3210 else:
3211 value = parmObj.getValue()
3212 figfile = str(value)
3213 self.volGraphPrefix.setText(figfile)
3214
3215 # outputVoltageWrite
3216 opObj = puObj.getOperationObj(name='VoltageWriter')
3217
3218 if opObj == None:
3219 self.volOutputPath.clear()
3220 self.volOutputblocksperfile.clear()
3221 self.volOutputprofilesperblock.clear()
3222 else:
3223 parmObj = opObj.getParameterObj(parameterName='path')
3224 if parmObj == None:
3225 self.volOutputPath.clear()
3226 else:
3227 value = parmObj.getValue()
3228 path = str(value)
3229 self.volOutputPath.setText(path)
3230
3231 parmObj = opObj.getParameterObj(parameterName='blocksPerFile')
3232 if parmObj == None:
3233 self.volOutputblocksperfile.clear()
3234 else:
3235 value = parmObj.getValue()
3236 blocksperfile = str(value)
3237 self.volOutputblocksperfile.setText(blocksperfile)
3238
3239 parmObj = opObj.getParameterObj(parameterName='profilesPerBlock')
3240 if parmObj == None:
3241 self.volOutputprofilesperblock.clear()
3242 else:
3243 value = parmObj.getValue()
3244 profilesPerBlock = str(value)
3245 self.volOutputprofilesperblock.setText(profilesPerBlock)
3246
3247 return
3248
3249 def __refreshSpectraWindow(self, puObj):
3250
3251 inputId = puObj.getInputId()
3252 inputPUObj = self.__puObjDict[inputId]
3253
3254 if inputPUObj.datatype == 'Voltage':
3255 self.specOpnFFTpoints.setEnabled(True)
3256 self.specOpProfiles.setEnabled(True)
3257 self.specOpippFactor.setEnabled(True)
3258 else:
3259 self.specOpnFFTpoints.setEnabled(False)
3260 self.specOpProfiles.setEnabled(False)
3261 self.specOpippFactor.setEnabled(False)
3262
3263 opObj = puObj.getOperationObj(name='setRadarFrequency')
3264 if opObj == None:
3265 self.specOpRadarfrequency.clear()
3266 self.specOpCebRadarfrequency.setCheckState(0)
3267 else:
3268 value = opObj.getParameterValue(parameterName='frequency')
3269 value = str(float(value)/1e6)
3270 self.specOpRadarfrequency.setText(value)
3271 self.specOpRadarfrequency.setEnabled(True)
3272 self.specOpCebRadarfrequency.setCheckState(QtCore.Qt.Checked)
3273
3274 opObj = puObj.getOperationObj(name="run")
3275 if opObj == None:
3276 self.specOpnFFTpoints.clear()
3277 self.specOpProfiles.clear()
3278 self.specOpippFactor.clear()
3279 else:
3280 parmObj = opObj.getParameterObj(parameterName='nFFTPoints')
3281 if parmObj == None:
3282 self.specOpnFFTpoints.clear()
3283 else:
3284 self.specOpnFFTpoints.setEnabled(True)
3285 value = opObj.getParameterValue(parameterName='nFFTPoints')
3286 self.specOpnFFTpoints.setText(str(value))
3287
3288 parmObj = opObj.getParameterObj(parameterName='nProfiles')
3289 if parmObj == None:
3290 self.specOpProfiles.clear()
3291 else:
3292 self.specOpProfiles.setEnabled(True)
3293 value = opObj.getParameterValue(parameterName='nProfiles')
3294 self.specOpProfiles.setText(str(value))
3295
3296 parmObj = opObj.getParameterObj(parameterName='ippFactor')
3297 if parmObj == None:
3298 self.specOpippFactor.clear()
3299 else:
3300 self.specOpippFactor.setEnabled(True)
3301 value = opObj.getParameterValue(parameterName='ippFactor')
3302 self.specOpippFactor.setText(str(value))
3303
3304 opObj = puObj.getOperationObj(name="run")
3305 if opObj == None:
3306 self.specOppairsList.clear()
3307 self.specOpCebCrossSpectra.setCheckState(0)
3308 else:
3309 parmObj = opObj.getParameterObj(parameterName='pairsList')
3310 if parmObj == None:
3311 self.specOppairsList.clear()
3312 self.specOpCebCrossSpectra.setCheckState(0)
3313 else:
3314 value = opObj.getParameterValue(parameterName='pairsList')
3315 value = str(value)[1:-1]
3316 self.specOppairsList.setText(str(value))
3317 self.specOppairsList.setEnabled(True)
3318 self.specOpCebCrossSpectra.setCheckState(QtCore.Qt.Checked)
3319
3320 opObj = puObj.getOperationObj(name="selectChannels")
3321
3322 if opObj == None:
3323 opObj = puObj.getOperationObj(name="selectChannelsByIndex")
3324
3325 if opObj == None:
3326 self.specOpChannel.clear()
3327 self.specOpCebChannel.setCheckState(0)
3328 else:
3329 channelEnabled = False
3330 try:
3331 value = opObj.getParameterValue(parameterName='channelList')
3332 value = str(value)[1:-1]
3333 channelEnabled = True
3334 channelMode = 0
3335 except:
3336 pass
3337 try:
3338 value = opObj.getParameterValue(parameterName='channelIndexList')
3339 value = str(value)[1:-1]
3340 channelEnabled = True
3341 channelMode = 1
3342 except:
3343 pass
3344
3345 if channelEnabled:
3346 self.specOpChannel.setText(value)
3347 self.specOpChannel.setEnabled(True)
3348 self.specOpCebChannel.setCheckState(QtCore.Qt.Checked)
3349 self.specOpComChannel.setCurrentIndex(channelMode)
3350
3351 opObj = puObj.getOperationObj(name="selectHeights")
3352 if opObj == None:
3353 self.specOpHeights.clear()
3354 self.specOpCebHeights.setCheckState(0)
3355 else:
3356 value1 = int(opObj.getParameterValue(parameterName='minHei'))
3357 value1 = str(value1)
3358 value2 = int(opObj.getParameterValue(parameterName='maxHei'))
3359 value2 = str(value2)
3360 value = value1 + "," + value2
3361 self.specOpHeights.setText(value)
3362 self.specOpHeights.setEnabled(True)
3363 self.specOpCebHeights.setCheckState(QtCore.Qt.Checked)
3364
3365 opObj = puObj.getOperationObj(name="IncohInt")
3366 if opObj == None:
3367 self.specOpIncoherent.clear()
3368 self.specOpCebIncoherent.setCheckState(0)
3369 else:
3370 for parmObj in opObj.getParameterObjList():
3371 if parmObj.name == 'timeInterval':
3372 value = opObj.getParameterValue(parameterName='timeInterval')
3373 self.specOpIncoherent.setText(str(value))
3374 self.specOpIncoherent.setEnabled(True)
3375 self.specOpCebIncoherent.setCheckState(QtCore.Qt.Checked)
3376 self.specOpCobIncInt.setCurrentIndex(0)
3377
3378 if parmObj.name == 'n':
3379 value = opObj.getParameterValue(parameterName='n')
3380 self.specOpIncoherent.setText(str(value))
3381 self.specOpIncoherent.setEnabled(True)
3382 self.specOpCebIncoherent.setCheckState(QtCore.Qt.Checked)
3383 self.specOpCobIncInt.setCurrentIndex(1)
3384
3385 opObj = puObj.getOperationObj(name="removeDC")
3386 if opObj == None:
3387 self.specOpCebRemoveDC.setCheckState(0)
3388 else:
3389 self.specOpCebRemoveDC.setCheckState(QtCore.Qt.Checked)
3390
3391 parmObj = opObj.getParameterObj(parameterName='mode')
3392
3393 value = 1
3394 if parmObj:
3395 value = parmObj.getValue()
3396
3397 if value == 1:
3398 self.specOpComRemoveDC.setCurrentIndex(0)
3399 elif value == 2:
3400 self.specOpComRemoveDC.setCurrentIndex(1)
3401
3402 opObj = puObj.getOperationObj(name="removeInterference")
3403 if opObj == None:
3404 self.specOpCebRemoveInt.setCheckState(0)
3405 else:
3406 self.specOpCebRemoveInt.setCheckState(QtCore.Qt.Checked)
3407
3408 opObj = puObj.getOperationObj(name='getNoise')
3409 if opObj == None:
3410 self.specOpCebgetNoise.setCheckState(0)
3411 self.specOpgetNoise.clear()
3412 else:
3413 self.specOpCebgetNoise.setCheckState(QtCore.Qt.Checked)
3414 parmObj = opObj.getParameterObj(parameterName='minHei')
3415 if parmObj == None:
3416 self.specOpgetNoise.clear()
3417 value1 = None
3418 else:
3419 value1 = opObj.getParameterValue(parameterName='minHei')
3420 value1 = str(value1)
3421 parmObj = opObj.getParameterObj(parameterName='maxHei')
3422 if parmObj == None:
3423 value2 = None
3424 value = value1
3425 self.specOpgetNoise.setText(value)
3426 self.specOpgetNoise.setEnabled(True)
3427 else:
3428 value2 = opObj.getParameterValue(parameterName='maxHei')
3429 value2 = str(value2)
3430 parmObj = opObj.getParameterObj(parameterName='minVel')
3431 if parmObj == None:
3432 value3 = None
3433 value = value1 + "," + value2
3434 self.specOpgetNoise.setText(value)
3435 self.specOpgetNoise.setEnabled(True)
3436 else:
3437 value3 = opObj.getParameterValue(parameterName='minVel')
3438 value3 = str(value3)
3439 parmObj = opObj.getParameterObj(parameterName='maxVel')
3440 if parmObj == None:
3441 value4 = None
3442 value = value1 + "," + value2 + "," + value3
3443 self.specOpgetNoise.setText(value)
3444 self.specOpgetNoise.setEnabled(True)
3445 else:
3446 value4 = opObj.getParameterValue(parameterName='maxVel')
3447 value4 = str(value4)
3448 value = value1 + "," + value2 + "," + value3 + ',' + value4
3449 self.specOpgetNoise.setText(value)
3450 self.specOpgetNoise.setEnabled(True)
3451
3452 self.specGraphPath.clear()
3453 self.specGraphPrefix.clear()
3454 self.specGgraphFreq.clear()
3455 self.specGgraphHeight.clear()
3456 self.specGgraphDbsrange.clear()
3457 self.specGgraphmagnitud.clear()
3458 self.specGgraphPhase.clear()
3459 self.specGgraphChannelList.clear()
3460 self.specGgraphTminTmax.clear()
3461 self.specGgraphTimeRange.clear()
3462 self.specGgraphftpratio.clear()
3463
3464 opObj = puObj.getOperationObj(name='SpectraPlot')
3465
3466 if opObj == None:
3467 self.specGraphCebSpectraplot.setCheckState(0)
3468 self.specGraphSaveSpectra.setCheckState(0)
3469 self.specGraphftpSpectra.setCheckState(0)
3470 else:
3471 # operationSpectraPlot = "Enable"
3472 self.specGraphCebSpectraplot.setCheckState(QtCore.Qt.Checked)
3473
3474 parmObj = opObj.getParameterObj(parameterName='show')
3475 if parmObj:
3476 if not parmObj.getValue():
3477 self.specGraphCebSpectraplot.setCheckState(0)
3478
3479 parmObj = opObj.getParameterObj(parameterName='channelList')
3480 if parmObj == None:
3481 self.specGgraphChannelList.clear()
3482 else:
3483 value = opObj.getParameterValue(parameterName='channelList')
3484 channelListSpectraPlot = str(value)[1:-1]
3485 self.specGgraphChannelList.setText(channelListSpectraPlot)
3486 self.specGgraphChannelList.setEnabled(True)
3487
3488 parmObj = opObj.getParameterObj(parameterName='xmin')
3489 if parmObj == None:
3490 self.specGgraphFreq.clear()
3491 else:
3492 value1 = opObj.getParameterValue(parameterName='xmin')
3493 value1 = str(value1)
3494 value2 = opObj.getParameterValue(parameterName='xmax')
3495 value2 = str(value2)
3496 value = value1 + "," + value2
3497 self.specGgraphFreq.setText(value)
3498 self.specGgraphFreq.setEnabled(True)
3499
3500 parmObj = opObj.getParameterObj(parameterName='ymin')
3501 if parmObj == None:
3502 self.specGgraphHeight.clear()
3503 else:
3504 value1 = opObj.getParameterValue(parameterName='ymin')
3505 value1 = str(value1)
3506 value2 = opObj.getParameterValue(parameterName='ymax')
3507 value2 = str(value2)
3508 value = value1 + "," + value2
3509 self.specGgraphHeight.setText(value)
3510 self.specGgraphHeight.setEnabled(True)
3511
3512 parmObj = opObj.getParameterObj(parameterName='zmin')
3513 if parmObj == None:
3514 self.specGgraphDbsrange.clear()
3515 else:
3516 value1 = opObj.getParameterValue(parameterName='zmin')
3517 value1 = str(value1)
3518 value2 = opObj.getParameterValue(parameterName='zmax')
3519 value2 = str(value2)
3520 value = value1 + "," + value2
3521 self.specGgraphDbsrange.setText(value)
3522 self.specGgraphDbsrange.setEnabled(True)
3523
3524 parmObj = opObj.getParameterObj(parameterName="save")
3525 if parmObj == None:
3526 self.specGraphSaveSpectra.setCheckState(0)
3527 else:
3528 self.specGraphSaveSpectra.setCheckState(QtCore.Qt.Checked)
3529
3530 parmObj = opObj.getParameterObj(parameterName="ftp")
3531 if parmObj == None:
3532 self.specGraphftpSpectra.setCheckState(0)
3533 else:
3534 self.specGraphftpSpectra.setCheckState(QtCore.Qt.Checked)
3535
3536 parmObj = opObj.getParameterObj(parameterName="figpath")
3537 if parmObj:
3538 value = parmObj.getValue()
3539 self.specGraphPath.setText(value)
3540
3541 parmObj = opObj.getParameterObj(parameterName="wr_period")
3542 if parmObj:
3543 value = parmObj.getValue()
3544 self.specGgraphftpratio.setText(str(value))
3545
3546 opObj = puObj.getOperationObj(name='CrossSpectraPlot')
3547
3548 if opObj == None:
3549 self.specGraphCebCrossSpectraplot.setCheckState(0)
3550 self.specGraphSaveCross.setCheckState(0)
3551 self.specGraphftpCross.setCheckState(0)
3552 else:
3553 # operationCrossSpectraPlot = "Enable"
3554 self.specGraphCebCrossSpectraplot.setCheckState(QtCore.Qt.Checked)
3555
3556 parmObj = opObj.getParameterObj(parameterName='show')
3557 if parmObj:
3558 if not parmObj.getValue():
3559 self.specGraphCebCrossSpectraplot.setCheckState(0)
3560
3561 parmObj = opObj.getParameterObj(parameterName='xmin')
3562 if parmObj == None:
3563 self.specGgraphFreq.clear()
3564 else:
3565 value1 = opObj.getParameterValue(parameterName='xmin')
3566 value1 = str(value1)
3567 value2 = opObj.getParameterValue(parameterName='xmax')
3568 value2 = str(value2)
3569 value = value1 + "," + value2
3570 self.specGgraphFreq.setText(value)
3571 self.specGgraphFreq.setEnabled(True)
3572
3573 parmObj = opObj.getParameterObj(parameterName='ymin')
3574 if parmObj == None:
3575 self.specGgraphHeight.clear()
3576 else:
3577 value1 = opObj.getParameterValue(parameterName='ymin')
3578 value1 = str(value1)
3579 value2 = opObj.getParameterValue(parameterName='ymax')
3580 value2 = str(value2)
3581 value = value1 + "," + value2
3582 self.specGgraphHeight.setText(value)
3583 self.specGgraphHeight.setEnabled(True)
3584
3585 parmObj = opObj.getParameterObj(parameterName='zmin')
3586 if parmObj == None:
3587 self.specGgraphDbsrange.clear()
3588 else:
3589 value1 = opObj.getParameterValue(parameterName='zmin')
3590 value1 = str(value1)
3591 value2 = opObj.getParameterValue(parameterName='zmax')
3592 value2 = str(value2)
3593 value = value1 + "," + value2
3594 self.specGgraphDbsrange.setText(value)
3595 self.specGgraphDbsrange.setEnabled(True)
3596
3597 parmObj = opObj.getParameterObj(parameterName='coh_min')
3598 if parmObj == None:
3599 self.specGgraphmagnitud.clear()
3600 else:
3601 value1 = opObj.getParameterValue(parameterName='coh_min')
3602 value1 = str(value1)
3603 value2 = opObj.getParameterValue(parameterName='coh_max')
3604 value2 = str(value2)
3605 value = value1 + "," + value2
3606 self.specGgraphmagnitud.setText(value)
3607 self.specGgraphmagnitud.setEnabled(True)
3608
3609 parmObj = opObj.getParameterObj(parameterName='phase_min')
3610 if parmObj == None:
3611 self.specGgraphPhase.clear()
3612 else:
3613 value1 = opObj.getParameterValue(parameterName='phase_min')
3614 value1 = str(value1)
3615 value2 = opObj.getParameterValue(parameterName='phase_max')
3616 value2 = str(value2)
3617 value = value1 + "," + value2
3618 self.specGgraphPhase.setText(value)
3619 self.specGgraphPhase.setEnabled(True)
3620
3621 parmObj = opObj.getParameterObj(parameterName="save")
3622 if parmObj == None:
3623 self.specGraphSaveCross.setCheckState(0)
3624 else:
3625 self.specGraphSaveCross.setCheckState(QtCore.Qt.Checked)
3626
3627 parmObj = opObj.getParameterObj(parameterName="ftp")
3628 if parmObj == None:
3629 self.specGraphftpCross.setCheckState(0)
3630 else:
3631 self.specGraphftpCross.setCheckState(QtCore.Qt.Checked)
3632
3633 parmObj = opObj.getParameterObj(parameterName="figpath")
3634 if parmObj:
3635 value = parmObj.getValue()
3636 self.specGraphPath.setText(value)
3637
3638 parmObj = opObj.getParameterObj(parameterName="wr_period")
3639 if parmObj:
3640 value = parmObj.getValue()
3641 self.specGgraphftpratio.setText(str(value))
3642
3643 opObj = puObj.getOperationObj(name='RTIPlot')
3644
3645 if opObj == None:
3646 self.specGraphCebRTIplot.setCheckState(0)
3647 self.specGraphSaveRTIplot.setCheckState(0)
3648 self.specGraphftpRTIplot.setCheckState(0)
3649 else:
3650 self.specGraphCebRTIplot.setCheckState(QtCore.Qt.Checked)
3651
3652 parmObj = opObj.getParameterObj(parameterName='show')
3653 if parmObj:
3654 if not parmObj.getValue():
3655 self.specGraphCebRTIplot.setCheckState(0)
3656
3657 parmObj = opObj.getParameterObj(parameterName='channelList')
3658 if parmObj == None:
3659 self.specGgraphChannelList.clear()
3660 else:
3661 value = opObj.getParameterValue(parameterName='channelList')
3662 channelListRTIPlot = str(value)[1:-1]
3663 self.specGgraphChannelList.setText(channelListRTIPlot)
3664 self.specGgraphChannelList.setEnabled(True)
3665
3666 parmObj = opObj.getParameterObj(parameterName='xmin')
3667 if parmObj == None:
3668 self.specGgraphTminTmax.clear()
3669 else:
3670 value1 = opObj.getParameterValue(parameterName='xmin')
3671 value1 = str(value1)
3672 value2 = opObj.getParameterValue(parameterName='xmax')
3673 value2 = str(value2)
3674 value = value1 + "," + value2
3675 self.specGgraphTminTmax.setText(value)
3676 self.specGgraphTminTmax.setEnabled(True)
3677
3678 parmObj = opObj.getParameterObj(parameterName='timerange')
3679 if parmObj == None:
3680 self.specGgraphTimeRange.clear()
3681 else:
3682 value1 = opObj.getParameterValue(parameterName='timerange')
3683 value1 = str(value1)
3684 self.specGgraphTimeRange.setText(value1)
3685 self.specGgraphTimeRange.setEnabled(True)
3686
3687 parmObj = opObj.getParameterObj(parameterName='ymin')
3688 if parmObj == None:
3689 self.specGgraphHeight.clear()
3690 else:
3691 value1 = opObj.getParameterValue(parameterName='ymin')
3692 value1 = str(value1)
3693 value2 = opObj.getParameterValue(parameterName='ymax')
3694 value2 = str(value2)
3695 value = value1 + "," + value2
3696 self.specGgraphHeight.setText(value)
3697 self.specGgraphHeight.setEnabled(True)
3698
3699 parmObj = opObj.getParameterObj(parameterName='zmin')
3700 if parmObj == None:
3701 self.specGgraphDbsrange.clear()
3702 else:
3703 value1 = opObj.getParameterValue(parameterName='zmin')
3704 value1 = str(value1)
3705 value2 = opObj.getParameterValue(parameterName='zmax')
3706 value2 = str(value2)
3707 value = value1 + "," + value2
3708 self.specGgraphDbsrange.setText(value)
3709 self.specGgraphDbsrange.setEnabled(True)
3710
3711 parmObj = opObj.getParameterObj(parameterName="save")
3712 if parmObj == None:
3713 self.specGraphSaveRTIplot.setCheckState(0)
3714 else:
3715 self.specGraphSaveRTIplot.setCheckState(QtCore.Qt.Checked)
3716
3717 parmObj = opObj.getParameterObj(parameterName="ftp")
3718 if parmObj == None:
3719 self.specGraphftpRTIplot.setCheckState(0)
3720 else:
3721 self.specGraphftpRTIplot.setCheckState(QtCore.Qt.Checked)
3722
3723 parmObj = opObj.getParameterObj(parameterName="figpath")
3724 if parmObj:
3725 value = parmObj.getValue()
3726 self.specGraphPath.setText(value)
3727
3728 parmObj = opObj.getParameterObj(parameterName="wr_period")
3729 if parmObj:
3730 value = parmObj.getValue()
3731 self.specGgraphftpratio.setText(str(value))
3732
3733 opObj = puObj.getOperationObj(name='CoherenceMap')
3734
3735 if opObj == None:
3736 self.specGraphCebCoherencmap.setCheckState(0)
3737 self.specGraphSaveCoherencemap.setCheckState(0)
3738 self.specGraphftpCoherencemap.setCheckState(0)
3739 else:
3740 # operationCoherenceMap = "Enable"
3741 self.specGraphCebCoherencmap.setCheckState(QtCore.Qt.Checked)
3742
3743 parmObj = opObj.getParameterObj(parameterName='show')
3744 if parmObj:
3745 if not parmObj.getValue():
3746 self.specGraphCebCoherencmap.setCheckState(0)
3747
3748 parmObj = opObj.getParameterObj(parameterName='xmin')
3749 if parmObj == None:
3750 self.specGgraphTminTmax.clear()
3751 else:
3752 value1 = opObj.getParameterValue(parameterName='xmin')
3753 value1 = str(value1)
3754 value2 = opObj.getParameterValue(parameterName='xmax')
3755 value2 = str(value2)
3756 value = value1 + "," + value2
3757 self.specGgraphTminTmax.setText(value)
3758 self.specGgraphTminTmax.setEnabled(True)
3759
3760 parmObj = opObj.getParameterObj(parameterName='timerange')
3761 if parmObj == None:
3762 self.specGgraphTimeRange.clear()
3763 else:
3764 value1 = opObj.getParameterValue(parameterName='timerange')
3765 value1 = str(value1)
3766 self.specGgraphTimeRange.setText(value1)
3767 self.specGgraphTimeRange.setEnabled(True)
3768
3769 parmObj = opObj.getParameterObj(parameterName='ymin')
3770 if parmObj == None:
3771 self.specGgraphHeight.clear()
3772 else:
3773 value1 = opObj.getParameterValue(parameterName='ymin')
3774 value1 = str(value1)
3775 value2 = opObj.getParameterValue(parameterName='ymax')
3776 value2 = str(value2)
3777 value = value1 + "," + value2
3778 self.specGgraphHeight.setText(value)
3779 self.specGgraphHeight.setEnabled(True)
3780
3781 parmObj = opObj.getParameterObj(parameterName='zmin')
3782 if parmObj == None:
3783 self.specGgraphmagnitud.clear()
3784 else:
3785 value1 = opObj.getParameterValue(parameterName='zmin')
3786 value1 = str(value1)
3787 value2 = opObj.getParameterValue(parameterName='zmax')
3788 value2 = str(value2)
3789 value = value1 + "," + value2
3790 self.specGgraphmagnitud.setText(value)
3791 self.specGgraphmagnitud.setEnabled(True)
3792
3793 parmObj = opObj.getParameterObj(parameterName='coh_min')
3794 if parmObj == None:
3795 self.specGgraphmagnitud.clear()
3796 else:
3797 value1 = opObj.getParameterValue(parameterName='coh_min')
3798 value1 = str(value1)
3799 value2 = opObj.getParameterValue(parameterName='coh_max')
3800 value2 = str(value2)
3801 value = value1 + "," + value2
3802 self.specGgraphmagnitud.setText(value)
3803 self.specGgraphmagnitud.setEnabled(True)
3804
3805 parmObj = opObj.getParameterObj(parameterName='phase_min')
3806 if parmObj == None:
3807 self.specGgraphPhase.clear()
3808 else:
3809 value1 = opObj.getParameterValue(parameterName='phase_min')
3810 value1 = str(value1)
3811 value2 = opObj.getParameterValue(parameterName='phase_max')
3812 value2 = str(value2)
3813 value = value1 + "," + value2
3814 self.specGgraphPhase.setText(value)
3815 self.specGgraphPhase.setEnabled(True)
3816
3817 parmObj = opObj.getParameterObj(parameterName="save")
3818 if parmObj == None:
3819 self.specGraphSaveCoherencemap.setCheckState(0)
3820 else:
3821 self.specGraphSaveCoherencemap.setCheckState(QtCore.Qt.Checked)
3822
3823 parmObj = opObj.getParameterObj(parameterName="ftp")
3824 if parmObj == None:
3825 self.specGraphftpCoherencemap.setCheckState(0)
3826 else:
3827 self.specGraphftpCoherencemap.setCheckState(QtCore.Qt.Checked)
3828
3829 parmObj = opObj.getParameterObj(parameterName="figpath")
3830 if parmObj:
3831 value = parmObj.getValue()
3832 self.specGraphPath.setText(value)
3833
3834 parmObj = opObj.getParameterObj(parameterName="wr_period")
3835 if parmObj:
3836 value = parmObj.getValue()
3837 self.specGgraphftpratio.setText(str(value))
3838
3839 opObj = puObj.getOperationObj(name='PowerProfilePlot')
3840
3841 if opObj == None:
3842 self.specGraphPowerprofile.setCheckState(0)
3843 self.specGraphSavePowerprofile.setCheckState(0)
3844 self.specGraphftpPowerprofile.setCheckState(0)
3845 operationPowerProfilePlot = "Disabled"
3846 channelList = None
3847 freq_vel = None
3848 heightsrange = None
3849 else:
3850 # operationPowerProfilePlot = "Enable"
3851 self.specGraphPowerprofile.setCheckState(QtCore.Qt.Checked)
3852
3853 parmObj = opObj.getParameterObj(parameterName='show')
3854 if parmObj:
3855 if not parmObj.getValue():
3856 self.specGraphPowerprofile.setCheckState(0)
3857
3858 parmObj = opObj.getParameterObj(parameterName='xmin')
3859 if parmObj == None:
3860 self.specGgraphDbsrange.clear()
3861 else:
3862 value1 = opObj.getParameterValue(parameterName='xmin')
3863 value1 = str(value1)
3864 value2 = opObj.getParameterValue(parameterName='xmax')
3865 value2 = str(value2)
3866 value = value1 + "," + value2
3867 self.specGgraphDbsrange.setText(value)
3868 self.specGgraphDbsrange.setEnabled(True)
3869
3870 parmObj = opObj.getParameterObj(parameterName='ymin')
3871 if parmObj == None:
3872 self.specGgraphHeight.clear()
3873 else:
3874 value1 = opObj.getParameterValue(parameterName='ymin')
3875 value1 = str(value1)
3876 value2 = opObj.getParameterValue(parameterName='ymax')
3877 value2 = str(value2)
3878 value = value1 + "," + value2
3879 self.specGgraphHeight.setText(value)
3880 self.specGgraphHeight.setEnabled(True)
3881
3882 parmObj = opObj.getParameterObj(parameterName="save")
3883 if parmObj == None:
3884 self.specGraphSavePowerprofile.setCheckState(0)
3885 else:
3886 self.specGraphSavePowerprofile.setCheckState(QtCore.Qt.Checked)
3887
3888 parmObj = opObj.getParameterObj(parameterName="ftp")
3889 if parmObj == None:
3890 self.specGraphftpPowerprofile.setCheckState(0)
3891 else:
3892 self.specGraphftpPowerprofile.setCheckState(QtCore.Qt.Checked)
3893
3894 parmObj = opObj.getParameterObj(parameterName="figpath")
3895 if parmObj:
3896 value = parmObj.getValue()
3897 self.specGraphPath.setText(value)
3898
3899 parmObj = opObj.getParameterObj(parameterName="wr_period")
3900 if parmObj:
3901 value = parmObj.getValue()
3902 self.specGgraphftpratio.setText(str(value))
3903
3904 opObj = puObj.getOperationObj(name='Noise')
3905
3906 if opObj == None:
3907 self.specGraphCebRTInoise.setCheckState(0)
3908 self.specGraphSaveRTInoise.setCheckState(0)
3909 self.specGraphftpRTInoise.setCheckState(0)
3910 else:
3911 self.specGraphCebRTInoise.setCheckState(QtCore.Qt.Checked)
3912
3913 parmObj = opObj.getParameterObj(parameterName='show')
3914 if parmObj:
3915 if not parmObj.getValue():
3916 self.specGraphCebRTInoise.setCheckState(0)
3917
3918 parmObj = opObj.getParameterObj(parameterName='channelList')
3919 if parmObj == None:
3920 self.specGgraphChannelList.clear()
3921 else:
3922 value = opObj.getParameterValue(parameterName='channelList')
3923 channelListRTINoise = str(value)[1:-1]
3924 self.specGgraphChannelList.setText(channelListRTINoise)
3925 self.specGgraphChannelList.setEnabled(True)
3926
3927 parmObj = opObj.getParameterObj(parameterName='xmin')
3928 if parmObj == None:
3929 self.specGgraphTminTmax.clear()
3930 else:
3931 value1 = opObj.getParameterValue(parameterName='xmin')
3932 value1 = str(value1)
3933 value2 = opObj.getParameterValue(parameterName='xmax')
3934 value2 = str(value2)
3935 value = value1 + "," + value2
3936 self.specGgraphTminTmax.setText(value)
3937 self.specGgraphTminTmax.setEnabled(True)
3938
3939 parmObj = opObj.getParameterObj(parameterName='timerange')
3940 if parmObj == None:
3941 self.specGgraphTimeRange.clear()
3942 else:
3943 value1 = opObj.getParameterValue(parameterName='timerange')
3944 value1 = str(value1)
3945 self.specGgraphTimeRange.setText(value1)
3946 self.specGgraphTimeRange.setEnabled(True)
3947
3948
3949 parmObj = opObj.getParameterObj(parameterName='ymin')
3950 if parmObj == None:
3951 self.specGgraphDbsrange.clear()
3952 else:
3953 value1 = opObj.getParameterValue(parameterName='ymin')
3954 value1 = str(value1)
3955 value2 = opObj.getParameterValue(parameterName='ymax')
3956 value2 = str(value2)
3957 value = value1 + "," + value2
3958 self.specGgraphDbsrange.setText(value)
3959 self.specGgraphDbsrange.setEnabled(True)
3960
3961 parmObj = opObj.getParameterObj(parameterName="save")
3962 if parmObj == None:
3963 self.specGraphSaveRTInoise.setCheckState(0)
3964 else:
3965 self.specGraphSaveRTInoise.setCheckState(QtCore.Qt.Checked)
3966
3967 parmObj = opObj.getParameterObj(parameterName="ftp")
3968 if parmObj == None:
3969 self.specGraphftpRTInoise.setCheckState(0)
3970 else:
3971 self.specGraphftpRTInoise.setCheckState(QtCore.Qt.Checked)
3972
3973 parmObj = opObj.getParameterObj(parameterName="figpath")
3974 if parmObj:
3975 value = parmObj.getValue()
3976 self.specGraphPath.setText(value)
3977
3978 parmObj = opObj.getParameterObj(parameterName="wr_period")
3979 if parmObj:
3980 value = parmObj.getValue()
3981 self.specGgraphftpratio.setText(str(value))
3982
3983 opObj = puObj.getOperationObj(name='SpectraWriter')
3984 if opObj == None:
3985 self.specOutputPath.clear()
3986 self.specOutputblocksperfile.clear()
3987 else:
3988 value = opObj.getParameterObj(parameterName='path')
3989 if value == None:
3990 self.specOutputPath.clear()
3991 else:
3992 value = opObj.getParameterValue(parameterName='path')
3993 path = str(value)
3994 self.specOutputPath.setText(path)
3995 value = opObj.getParameterObj(parameterName='blocksPerFile')
3996 if value == None:
3997 self.specOutputblocksperfile.clear()
3998 else:
3999 value = opObj.getParameterValue(parameterName='blocksPerFile')
4000 blocksperfile = str(value)
4001 self.specOutputblocksperfile.setText(blocksperfile)
4002
4003 return
4004
4005 def __refreshSpectraHeisWindow(self, puObj):
4006
4007 opObj = puObj.getOperationObj(name="IncohInt4SpectraHeis")
4008 if opObj == None:
4009 self.specHeisOpIncoherent.clear()
4010 self.specHeisOpCebIncoherent.setCheckState(0)
4011 else:
4012 for parmObj in opObj.getParameterObjList():
4013 if parmObj.name == 'timeInterval':
4014 value = opObj.getParameterValue(parameterName='timeInterval')
4015 self.specHeisOpIncoherent.setText(str(value))
4016 self.specHeisOpIncoherent.setEnabled(True)
4017 self.specHeisOpCebIncoherent.setCheckState(QtCore.Qt.Checked)
4018 self.specHeisOpCobIncInt.setCurrentIndex(0)
4019
4020 # SpectraHeis Graph
4021
4022 self.specHeisGgraphXminXmax.clear()
4023 self.specHeisGgraphYminYmax.clear()
4024
4025 self.specHeisGgraphChannelList.clear()
4026 self.specHeisGgraphTminTmax.clear()
4027 self.specHeisGgraphTimeRange.clear()
4028 self.specHeisGgraphftpratio.clear()
4029
4030 opObj = puObj.getOperationObj(name='SpectraHeisScope')
4031 if opObj == None:
4032 self.specHeisGraphCebSpectraplot.setCheckState(0)
4033 self.specHeisGraphSaveSpectra.setCheckState(0)
4034 self.specHeisGraphftpSpectra.setCheckState(0)
4035 else:
4036 operationSpectraHeisScope = "Enable"
4037 self.specHeisGraphCebSpectraplot.setCheckState(QtCore.Qt.Checked)
4038
4039 parmObj = opObj.getParameterObj(parameterName='channelList')
4040 if parmObj == None:
4041 self.specHeisGgraphChannelList.clear()
4042 else:
4043 value = opObj.getParameterValue(parameterName='channelList')
4044 channelListSpectraHeisScope = str(value)[1:-1]
4045 self.specHeisGgraphChannelList.setText(channelListSpectraHeisScope)
4046 self.specHeisGgraphChannelList.setEnabled(True)
4047
4048 parmObj = opObj.getParameterObj(parameterName='xmin')
4049 if parmObj == None:
4050 self.specHeisGgraphXminXmax.clear()
4051 else:
4052 value1 = opObj.getParameterValue(parameterName='xmin')
4053 value1 = str(value1)
4054 value2 = opObj.getParameterValue(parameterName='xmax')
4055 value2 = str(value2)
4056 value = value1 + "," + value2
4057 self.specHeisGgraphXminXmax.setText(value)
4058 self.specHeisGgraphXminXmax.setEnabled(True)
4059
4060 parmObj = opObj.getParameterObj(parameterName='ymin')
4061 if parmObj == None:
4062 self.specHeisGgraphYminYmax.clear()
4063 else:
4064 value1 = opObj.getParameterValue(parameterName='ymin')
4065 value1 = str(value1)
4066 value2 = opObj.getParameterValue(parameterName='ymax')
4067 value2 = str(value2)
4068 value = value1 + "," + value2
4069 self.specHeisGgraphYminYmax.setText(value)
4070 self.specHeisGgraphYminYmax.setEnabled(True)
4071
4072 parmObj = opObj.getParameterObj(parameterName="save")
4073 if parmObj == None:
4074 self.specHeisGraphSaveSpectra.setCheckState(0)
4075 else:
4076 self.specHeisGraphSaveSpectra.setCheckState(QtCore.Qt.Checked)
4077
4078 parmObj = opObj.getParameterObj(parameterName="ftp")
4079 if parmObj == None:
4080 self.specHeisGraphftpSpectra.setCheckState(0)
4081 else:
4082 self.specHeisGraphftpSpectra.setCheckState(QtCore.Qt.Checked)
4083
4084 parmObj = opObj.getParameterObj(parameterName="figpath")
4085 if parmObj:
4086 value = parmObj.getValue()
4087 self.specHeisGraphPath.setText(value)
4088
4089 parmObj = opObj.getParameterObj(parameterName="wr_period")
4090 if parmObj:
4091 value = parmObj.getValue()
4092 self.specHeisGgraphftpratio.setText(str(value))
4093
4094 opObj = puObj.getOperationObj(name='RTIfromSpectraHeis')
4095
4096 if opObj == None:
4097 self.specHeisGraphCebRTIplot.setCheckState(0)
4098 self.specHeisGraphSaveRTIplot.setCheckState(0)
4099 self.specHeisGraphftpRTIplot.setCheckState(0)
4100 else:
4101 self.specHeisGraphCebRTIplot.setCheckState(QtCore.Qt.Checked)
4102 parmObj = opObj.getParameterObj(parameterName='channelList')
4103 if parmObj == None:
4104 self.specHeisGgraphChannelList.clear()
4105 else:
4106 value = opObj.getParameterValue(parameterName='channelList')
4107 channelListRTIPlot = str(value)[1:-1]
4108 self.specGgraphChannelList.setText(channelListRTIPlot)
4109 self.specGgraphChannelList.setEnabled(True)
4110
4111 parmObj = opObj.getParameterObj(parameterName='xmin')
4112 if parmObj == None:
4113 self.specHeisGgraphTminTmax.clear()
4114 else:
4115 value1 = opObj.getParameterValue(parameterName='xmin')
4116 value1 = str(value1)
4117 value2 = opObj.getParameterValue(parameterName='xmax')
4118 value2 = str(value2)
4119 value = value1 + "," + value2
4120 self.specHeisGgraphTminTmax.setText(value)
4121 self.specHeisGgraphTminTmax.setEnabled(True)
4122
4123 parmObj = opObj.getParameterObj(parameterName='timerange')
4124 if parmObj == None:
4125 self.specGgraphTimeRange.clear()
4126 else:
4127 value1 = opObj.getParameterValue(parameterName='timerange')
4128 value1 = str(value1)
4129 self.specHeisGgraphTimeRange.setText(value1)
4130 self.specHeisGgraphTimeRange.setEnabled(True)
4131
4132 parmObj = opObj.getParameterObj(parameterName='ymin')
4133 if parmObj == None:
4134 self.specHeisGgraphYminYmax.clear()
4135 else:
4136 value1 = opObj.getParameterValue(parameterName='ymin')
4137 value1 = str(value1)
4138 value2 = opObj.getParameterValue(parameterName='ymax')
4139 value2 = str(value2)
4140 value = value1 + "," + value2
4141 self.specHeisGgraphYminYmax.setText(value)
4142 self.specHeisGgraphYminYmax.setEnabled(True)
4143
4144 parmObj = opObj.getParameterObj(parameterName="save")
4145 if parmObj == None:
4146 self.specHeisGraphSaveRTIplot.setCheckState(0)
4147 else:
4148 self.specHeisGraphSaveRTIplot.setCheckState(QtCore.Qt.Checked)
4149
4150 parmObj = opObj.getParameterObj(parameterName="ftp")
4151 if parmObj == None:
4152 self.specHeisGraphftpRTIplot.setCheckState(0)
4153 else:
4154 self.specHeisGraphftpRTIplot.setCheckState(QtCore.Qt.Checked)
4155
4156 parmObj = opObj.getParameterObj(parameterName="figpath")
4157 if parmObj:
4158 value = parmObj.getValue()
4159 self.specHeisGraphPath.setText(value)
4160
4161 parmObj = opObj.getParameterObj(parameterName="wr_period")
4162 if parmObj:
4163 value = parmObj.getValue()
4164 self.specHeisGgraphftpratio.setText(str(value))
4165
4166 # outputSpectraHeisWrite
4167 opObj = puObj.getOperationObj(name='FitsWriter')
4168 if opObj == None:
4169 self.specHeisOutputPath.clear()
4170 self.specHeisOutputblocksperfile.clear()
4171 self.specHeisOutputMetada.clear()
4172 else:
4173 value = opObj.getParameterObj(parameterName='path')
4174 if value == None:
4175 self.specHeisOutputPath.clear()
4176 else:
4177 value = opObj.getParameterValue(parameterName='path')
4178 path = str(value)
4179 self.specHeisOutputPath.setText(path)
4180 value = opObj.getParameterObj(parameterName='dataBlocksPerFile')
4181 if value == None:
4182 self.specHeisOutputblocksperfile.clear()
4183 else:
4184 value = opObj.getParameterValue(parameterName='dataBlocksPerFile')
4185 blocksperfile = str(value)
4186 self.specHeisOutputblocksperfile.setText(blocksperfile)
4187 value = opObj.getParameterObj(parameterName='metadatafile')
4188 if value == None:
4189 self.specHeisOutputMetada.clear()
4190 else:
4191 value = opObj.getParameterValue(parameterName='metadatafile')
4192 metadata_file = str(value)
4193 self.specHeisOutputMetada.setText(metadata_file)
4194
4195 return
4196
4197 def __refreshCorrelationWindow(self, puObj):
4198 pass
4199
4200 def refreshPUWindow(self, puObj):
4201
4202 if puObj.datatype == 'Voltage':
4203 self.__refreshVoltageWindow(puObj)
4204
4205 if puObj.datatype == 'Spectra':
4206 self.__refreshSpectraWindow(puObj)
4207
4208 if puObj.datatype == 'SpectraHeis':
4209 self.__refreshSpectraHeisWindow(puObj)
4210
4211 def refreshProjectProperties(self, projectObjView):
4212
4213 propertyBuffObj = PropertyBuffer()
4214 name = projectObjView.name
4215
4216 propertyBuffObj.append("Properties", "Name", projectObjView.name),
4217 propertyBuffObj.append("Properties", "Description", projectObjView.description)
4218 propertyBuffObj.append("Properties", "Workspace", self.pathWorkSpace)
4219
4220 readUnitObj = projectObjView.getReadUnitObj()
4221 runOperationObj = readUnitObj.getOperationObj(name='run')
4222
4223 for thisParmObj in runOperationObj.getParameterObjList():
4224 propertyBuffObj.append("Reading parms", thisParmObj.name, str(thisParmObj.getValue()))
4225
4226 propertiesModel = propertyBuffObj.getPropertyModel()
4227
4228 self.treeProjectProperties.setModel(propertiesModel)
4229 self.treeProjectProperties.expandAll()
4230 self.treeProjectProperties.resizeColumnToContents(0)
4231 self.treeProjectProperties.resizeColumnToContents(1)
4232
4233 def refreshPUProperties(self, puObjView):
4234
4235 ############ FTP CONFIG ################################
4236 #Deleting FTP Conf. This processing unit have not got any
4237 #FTP configuration by default
4238 if puObjView.id in self.__puLocalFolder2FTP.keys():
4239 self.__puLocalFolder2FTP.pop(puObjView.id)
4240 ########################################################
4241
4242 propertyBuffObj = PropertyBuffer()
4243
4244 for thisOp in puObjView.getOperationObjList():
4245
4246 operationName = thisOp.name
4247
4248 if operationName == 'run':
4249 operationName = 'Properties'
4250
4251 else:
4252 if not thisOp.getParameterObjList():
4253 propertyBuffObj.append(operationName, '--', '--')
4254 continue
4255
4256 for thisParmObj in thisOp.getParameterObjList():
4257 propertyBuffObj.append(operationName, thisParmObj.name, str(thisParmObj.getValue()))
4258
4259 ############ FTP CONFIG ################################
4260 if thisParmObj.name == "ftp_wei" and thisParmObj.getValue():
4261 value = thisParmObj.getValue()
4262 self.temporalFTP.ftp_wei = value
4263
4264 if thisParmObj.name == "exp_code" and thisParmObj.getValue():
4265 value = thisParmObj.getValue()
4266 self.temporalFTP.exp_code = value
4267
4268 if thisParmObj.name == "sub_exp_code" and thisParmObj.getValue():
4269 value = thisParmObj.getValue()
4270 self.temporalFTP.sub_exp_code = value
4271
4272 if thisParmObj.name == "plot_pos" and thisParmObj.getValue():
4273 value = thisParmObj.getValue()
4274 self.temporalFTP.plot_pos = value
4275
4276 if thisParmObj.name == 'ftp' and thisParmObj.getValue():
4277 figpathObj = thisOp.getParameterObj('figpath')
4278 if figpathObj:
4279 self.__puLocalFolder2FTP[puObjView.id] = figpathObj.getValue()
4280
4281 ########################################################
4282
4283 propertiesModel = propertyBuffObj.getPropertyModel()
4284
4285 self.treeProjectProperties.setModel(propertiesModel)
4286 self.treeProjectProperties.expandAll()
4287 self.treeProjectProperties.resizeColumnToContents(0)
4288 self.treeProjectProperties.resizeColumnToContents(1)
4289
4290 def refreshGraphicsId(self):
4291
4292 projectObj = self.getSelectedProjectObj()
4293
4294 if not projectObj:
4295 return
4296
4297 for idPU, puObj in projectObj.procUnitConfObjDict.items():
4298
4299 for opObj in puObj.getOperationObjList():
4300
4301 if opObj.name not in ('Scope', 'SpectraPlot', 'CrossSpectraPlot', 'RTIPlot', 'CoherenceMap', 'PowerProfilePlot', 'Noise', 'SpectraHeisScope', 'RTIfromSpectraHeis'):
4302 continue
4303
4304 opObj.changeParameter(name='id', value=opObj.id, format='int')
4305
4306 def on_click(self, index):
4307
4308 self._disable_save_button()
4309 self._disable_play_button()
4310
4311 self.console.clear()
4312
4313 self.selectedItemTree = self.projectExplorerModel.itemFromIndex(index)
4314
4315 projectObjView = self.getSelectedProjectObj()
4316
4317 if not projectObjView:
4318 return
4319
4320 self.create = False
4321 selectedObjView = self.getSelectedItemObj()
4322
4323 self.refreshProjectWindow(projectObjView)
4324 self.refreshProjectProperties(projectObjView)
4325
4326 #A project has been selected
4327 if projectObjView == selectedObjView:
4328
4329 self.tabProject.setEnabled(True)
4330 self.tabVoltage.setEnabled(False)
4331 self.tabSpectra.setEnabled(False)
4332 self.tabCorrelation.setEnabled(False)
4333 self.tabSpectraHeis.setEnabled(False)
4334 self.tabWidgetProject.setCurrentWidget(self.tabProject)
4335
4336 if self.dateList:
4337 self._enable_save_button()
4338 self._enable_play_button()
4339
4340 return
4341
4342 #A processing unit has been selected
4343 voltEnable = False
4344 specEnable = False
4345 corrEnable = False
4346 specHeisEnable = False
4347 tabSelected = self.tabProject
4348
4349 puObj = selectedObjView
4350
4351 self.refreshPUWindow(puObj)
4352 self.refreshPUProperties(puObj)
4353 self.showtabPUCreated(puObj.datatype)
4354
4355 if self.dateList:
4356 self._enable_save_button()
4357 self._enable_play_button()
4358
4359 def on_right_click(self, pos):
4360
4361 self.menu = QtGui.QMenu()
4362 quitAction0 = self.menu.addAction("Create a New Project")
4363 quitAction1 = self.menu.addAction("Create a New Processing Unit")
4364 quitAction2 = self.menu.addAction("Delete Item")
4365 quitAction3 = self.menu.addAction("Quit")
4366
4367 if len(self.__itemTreeDict) == 0:
4368 quitAction2.setEnabled(False)
4369 else:
4370 quitAction2.setEnabled(True)
4371
4372 action = self.menu.exec_(self.mapToGlobal(pos))
4373
4374 if action == quitAction0:
4375 self. setInputsProject_View()
4376 self.create = True
4377
4378 if action == quitAction1:
4379 if len(self.__projectObjDict) == 0:
4380 outputstr = "You need to create a Project before adding a Processing Unit"
4381 self.console.clear()
4382 self.console.append(outputstr)
4383 return 0
4384 else:
4385 self.addPUWindow()
4386 self.console.clear()
4387 self.console.append("Please, Choose the type of Processing Unit")
4388 # self.console.append("If your Datatype is rawdata, you will start with processing unit Type Voltage")
4389 # self.console.append("If your Datatype is pdata, you will choose between processing unit Type Spectra or Correlation")
4390 # self.console.append("If your Datatype is fits, you will start with processing unit Type SpectraHeis")
4391
4392 if action == quitAction2:
4393 index = self.selectedItemTree
4394 try:
4395 index.parent()
4396 except:
4397 self.console.append('Please, first at all select a Project or Processing Unit')
4398 return 0
4399 # print index.parent(),index
4400 if index.parent() == None:
4401 self.projectExplorerModel.removeRow(index.row())
4402 else:
4403 index.parent().removeRow(index.row())
4404 self.removeItemTreeFromProject()
4405 self.console.clear()
4406 # for i in self.projectExplorerTree.selectionModel().selection().indexes():
4407 # print i.row()
4408
4409 if action == quitAction3:
4410 self.close()
4411 return 0
4412
4413 def createProjectView(self, id):
4414
4415 # project_name, description, datatype, data_path, starDate, endDate, startTime, endTime, online, delay, walk, set = self.getParmsFromProjectWindow()
4416 id = str(id)
4417 projectParms = self.__getParmsFromProjectWindow()
4418
4419 if not projectParms.isValid():
4420 return None
4421
4422 projectObjView = Project()
4423 projectObjView.setup(id=id, name=projectParms.name, description=projectParms.description)
4424
4425 self.__projectObjDict[id] = projectObjView
4426 self.addProject2ProjectExplorer(id=id, name=projectObjView.name)
4427
4428 return projectObjView
4429
4430 def updateProjectView(self):
4431
4432 # project_name, description, datatype, data_path, starDate, endDate, startTime, endTime, online, delay, walk, set = self.getParmsFromProjectWindow()
4433
4434 projectParms = self.__getParmsFromProjectWindow()
4435
4436 if not projectParms.isValid():
4437 return None
4438
4439 projectObjView = self.getSelectedProjectObj()
4440
4441 if not projectObjView:
4442 self.console.append("Please select a project before update it")
4443 return None
4444
4445 projectObjView.update(name=projectParms.name, description=projectParms.description)
4446
4447 return projectObjView
4448
4449 def createReadUnitView(self, projectObjView, idReadUnit=None):
4450
4451 projectParms = self.__getParmsFromProjectWindow()
4452
4453 if not projectParms.isValid():
4454 return None
4455
4456 if projectParms.datatype in ("Voltage", "Spectra", "Fits"):
4457 readUnitConfObj = projectObjView.addReadUnit(id=idReadUnit,
4458 datatype=projectParms.datatype,
4459 path=projectParms.dpath,
4460 startDate=projectParms.startDate,
4461 endDate=projectParms.endDate,
4462 startTime=projectParms.startTime,
4463 endTime=projectParms.endTime,
4464 online=projectParms.online,
4465 walk=projectParms.walk
4466 )
4467
4468 if projectParms.set:
4469 readUnitConfObj.addParameter(name="set", value=projectParms.set, format="int")
4470
4471 if projectParms.delay:
4472 readUnitConfObj.addParameter(name="delay", value=projectParms.delay, format="int")
4473
4474 if projectParms.expLabel:
4475 readUnitConfObj.addParameter(name="expLabel", value=projectParms.expLabel)
4476
4477 readUnitConfObj.addOperation(name="printInfo")
4478
4479 if projectParms.datatype == "USRP":
4480 readUnitConfObj = projectObjView.addReadUnit(id=idReadUnit,
4481 datatype=projectParms.datatype,
4482 path=projectParms.dpath,
4483 startDate=projectParms.startDate,
4484 endDate=projectParms.endDate,
4485 startTime=projectParms.startTime,
4486 endTime=projectParms.endTime,
4487 online=projectParms.online,
4488 ippKm=projectParms.ippKm
4489 )
4490
4491 if projectParms.delay:
4492 readUnitConfObj.addParameter(name="delay", value=projectParms.delay, format="int")
4493
4494 return readUnitConfObj
4495
4496 def updateReadUnitView(self, projectObjView, idReadUnit):
4497
4498 projectObjView.removeProcUnit(idReadUnit)
4499
4500 readUnitConfObj = self.createReadUnitView(projectObjView, idReadUnit)
4501
4502 return readUnitConfObj
4503
4504 def createProcUnitView(self, projectObjView, datatype, inputId):
4505
4506 procUnitConfObj = projectObjView.addProcUnit(datatype=datatype, inputId=inputId)
4507
4508 self.__puObjDict[procUnitConfObj.getId()] = procUnitConfObj
4509
4510 return procUnitConfObj
4511
4512 def updateProcUnitView(self, id):
4513
4514 pass
4515
4516 def addPUWindow(self):
4517
4518 self.configUPWindowObj = UnitProcessWindow(self)
4519 fatherObj = self.getSelectedItemObj()
4520 try:
4521 fatherObj.getElementName()
4522 except:
4523 self.console.append("First left click on Project or Processing Unit")
4524 return 0
4525
4526 if fatherObj.getElementName() == 'Project':
4527 readUnitConfObj = fatherObj.getReadUnitObj()
4528 self.configUPWindowObj.dataTypeProject = str(readUnitConfObj.datatype)
4529
4530 self.configUPWindowObj.getfromWindowList.append(fatherObj)
4531 self.configUPWindowObj.loadTotalList()
4532 self.configUPWindowObj.show()
4533 self.configUPWindowObj.closed.connect(self.createPUWindow)
4534
4535 def createPUWindow(self):
4536
4537 if not self.configUPWindowObj.create:
4538 return
4539
4540 fatherObj = self.configUPWindowObj.getFromWindow
4541 datatype = self.configUPWindowObj.typeofUP
4542
4543 if fatherObj.getElementName() == 'Project':
4544 inputId = fatherObj.getReadUnitId()
4545 projectObjView = fatherObj
4546 else:
4547 inputId = fatherObj.getId()
4548 projectObjView = self.getSelectedProjectObj()
4549
4550 if not projectObjView:
4551 return
4552
4553 puObj = self.createProcUnitView(projectObjView, datatype, inputId)
4554
4555 self.addPU2ProjectExplorer(puObj)
4556
4557 self.showtabPUCreated(datatype)
4558
4559 self.clearPUWindow(datatype)
4560
4561 self.showPUinitView()
4562
4563 def addFTPConf2Operation(self, puObj, opObj):
4564
4565 if not self.temporalFTP.create:
4566 self.temporalFTP.setwithoutconfiguration()
4567
4568 # opObj.addParameter(name='server', value=self.temporalFTP.server, format='str')
4569 # opObj.addParameter(name='remotefolder', value=self.temporalFTP.remotefolder, format='str')
4570 # opObj.addParameter(name='username', value=self.temporalFTP.username, format='str')
4571 # opObj.addParameter(name='password', value=self.temporalFTP.password, format='str')
4572
4573 if self.temporalFTP.ftp_wei:
4574 opObj.addParameter(name='ftp_wei', value=int(self.temporalFTP.ftp_wei), format='int')
4575 if self.temporalFTP.exp_code:
4576 opObj.addParameter(name='exp_code', value=int(self.temporalFTP.exp_code), format='int')
4577 if self.temporalFTP.sub_exp_code:
4578 opObj.addParameter(name='sub_exp_code', value=int(self.temporalFTP.sub_exp_code), format='int')
4579 if self.temporalFTP.plot_pos:
4580 opObj.addParameter(name='plot_pos', value=int(self.temporalFTP.plot_pos), format='int')
4581
4582 # def __checkFTPProcUnit(self, projectObj, localfolder):
4583 #
4584 # puId = None
4585 # puObj = None
4586 #
4587 # for thisPuId, thisPuObj in projectObj.procUnitItems():
4588 #
4589 # if not thisPuObj.name == "SendToServer":
4590 # continue
4591 #
4592 # opObj = thisPuObj.getOperationObj(name='run')
4593 #
4594 # parmObj = opObj.getParameterObj('localfolder')
4595 #
4596 # #localfolder parameter should always be set, if it is not set then ProcUnit should be removed
4597 # if not parmObj:
4598 # projectObj.removeProcUnit(thisPuId)
4599 # continue
4600 #
4601 # thisLocalfolder = parmObj.getValue()
4602 #
4603 # if localfolder != thisLocalfolder:
4604 # continue
4605 #
4606 # puId = thisPuId
4607 # puObj = thisPuObj
4608 # break
4609 #
4610 # return puObj
4611
4612 def createFTPProcUnitView(self):
4613
4614 if not self.temporalFTP.create:
4615 self.temporalFTP.setwithoutconfiguration()
4616
4617 projectObj = self.getSelectedProjectObj()
4618
4619 if not projectObj:
4620 return
4621
4622 self.removeAllFTPProcUnitView(projectObj)
4623
4624 if not self.__puLocalFolder2FTP:
4625 return
4626
4627 folderList = ",".join(self.__puLocalFolder2FTP.values())
4628
4629 procUnitConfObj = projectObj.addProcUnit(name="SendToServer")
4630
4631 procUnitConfObj.addParameter(name='server', value=self.temporalFTP.server, format='str')
4632 procUnitConfObj.addParameter(name='username', value=self.temporalFTP.username, format='str')
4633 procUnitConfObj.addParameter(name='password', value=self.temporalFTP.password, format='str')
4634 procUnitConfObj.addParameter(name='localfolder', value=folderList, format='list')
4635 procUnitConfObj.addParameter(name='remotefolder', value=self.temporalFTP.remotefolder, format='str')
4636 procUnitConfObj.addParameter(name='ext', value=self.temporalFTP.extension, format='str')
4637 procUnitConfObj.addParameter(name='period', value=self.temporalFTP.period, format='int')
4638 procUnitConfObj.addParameter(name='protocol', value=self.temporalFTP.protocol, format='str')
4639
4640 procUnitConfObj.addParameter(name='ftp_wei', value=self.temporalFTP.ftp_wei, format='int')
4641 procUnitConfObj.addParameter(name='exp_code', value=self.temporalFTP.exp_code, format='int')
4642 procUnitConfObj.addParameter(name='sub_exp_code', value=self.temporalFTP.sub_exp_code, format='int')
4643 procUnitConfObj.addParameter(name='plot_pos', value=self.temporalFTP.plot_pos, format='int')
4644
4645 self.__puObjDict[procUnitConfObj.getId()] = procUnitConfObj
4646
4647 def removeAllFTPProcUnitView(self, projectObj):
4648
4649 for thisPuId, thisPuObj in projectObj.procUnitItems():
4650
4651 if not thisPuObj.name == "SendToServer":
4652 continue
4653
4654 projectObj.removeProcUnit(thisPuId)
4655
4656 if thisPuId not in self.__puObjDict.keys():
4657 continue
4658
4659 self.__puObjDict.pop(thisPuId)
4660
4661 def showPUinitView(self):
4662
4663 self.propertiesModel = TreeModel()
4664 self.propertiesModel.initPUVoltageView()
4665 self.treeProjectProperties.setModel(self.propertiesModel)
4666 self.treeProjectProperties.expandAll()
4667 self.treeProjectProperties.allColumnsShowFocus()
4668 self.treeProjectProperties.resizeColumnToContents(1)
4669
4670 def saveFTPFromOpObj(self, operationObj):
4671
4672 if operationObj.name != "SendByFTP":
4673 return
4674
4675 server = operationObj.getParameterValue("server")
4676 username = operationObj.getParameterValue("username")
4677 password = operationObj.getParameterValue("password")
4678 localfolder = operationObj.getParameterValue("localfolder")
4679 remotefolder = operationObj.getParameterValue("remotefolder")
4680 ext = operationObj.getParameterValue("ext")
4681 period = operationObj.getParameterValue("period")
4682
4683 self.temporalFTP.save(server=server,
4684 remotefolder=remotefolder,
4685 username=username,
4686 password=password,
4687 localfolder=localfolder,
4688 extension=ext)
4689
4690 return
4691
4692 def saveFTPFromProcUnitObj(self, puObj):
4693
4694 opObj = puObj.getOperationObj(name="run")
4695
4696 parmObj = opObj.getParameterObj(parameterName="server")
4697 if parmObj == None:
4698 server = 'jro-app.igp.gob.pe'
4699 else:
4700 server = parmObj.getValue()
4701
4702 parmObj = opObj.getParameterObj(parameterName="remotefolder")
4703 if parmObj == None:
4704 remotefolder = '/home/wmaster/graficos'
4705 else:
4706 remotefolder = parmObj.getValue()
4707
4708 parmObj = opObj.getParameterObj(parameterName="username")
4709 if parmObj == None:
4710 username = 'wmaster'
4711 else:
4712 username = parmObj.getValue()
4713
4714 parmObj = opObj.getParameterObj(parameterName="password")
4715 if parmObj == None:
4716 password = 'mst2010vhf'
4717 else:
4718 password = parmObj.getValue()
4719
4720 parmObj = opObj.getParameterObj(parameterName="ftp_wei")
4721 if parmObj == None:
4722 ftp_wei = 0
4723 else:
4724 ftp_wei = parmObj.getValue()
4725
4726 parmObj = opObj.getParameterObj(parameterName="exp_code")
4727 if parmObj == None:
4728 exp_code = 0
4729 else:
4730 exp_code = parmObj.getValue()
4731
4732 parmObj = opObj.getParameterObj(parameterName="sub_exp_code")
4733 if parmObj == None:
4734 sub_exp_code = 0
4735 else:
4736 sub_exp_code = parmObj.getValue()
4737
4738 parmObj = opObj.getParameterObj(parameterName="plot_pos")
4739 if parmObj == None:
4740 plot_pos = 0
4741 else:
4742 plot_pos = parmObj.getValue()
4743
4744 parmObj = opObj.getParameterObj(parameterName="localfolder")
4745 if parmObj == None:
4746 localfolder = None
4747 else:
4748 localfolder = parmObj.getValue()
4749
4750 parmObj = opObj.getParameterObj(parameterName="ext")
4751 if parmObj == None:
4752 extension = '.png'
4753 else:
4754 extension = parmObj.getValue()
4755
4756 self.temporalFTP.save(server=server,
4757 remotefolder=remotefolder,
4758 username=username,
4759 password=password,
4760 ftp_wei=ftp_wei,
4761 exp_code=exp_code,
4762 sub_exp_code=sub_exp_code,
4763 plot_pos=plot_pos,
4764 localfolder=localfolder,
4765 extension=extension)
4766
4767 def addProject2ProjectExplorer(self, id, name):
4768
4769 itemTree = QtGui.QStandardItem(QtCore.QString(str(name)))
4770
4771 parentItem = self.projectExplorerModel.invisibleRootItem()
4772 parentItem.appendRow(itemTree)
4773
4774 self.projectExplorerTree.setCurrentIndex(itemTree.index())
4775
4776 self.selectedItemTree = itemTree
4777
4778 self.__itemTreeDict[id] = itemTree
4779
4780 def addPU2ProjectExplorer(self, puObj):
4781
4782 id, name = puObj.id, puObj.datatype
4783
4784 itemTree = QtGui.QStandardItem(QtCore.QString(str(name)))
4785
4786 parentItem = self.selectedItemTree
4787 parentItem.appendRow(itemTree)
4788 self.projectExplorerTree.expandAll()
4789
4790 self.projectExplorerTree.setCurrentIndex(itemTree.index())
4791
4792 self.selectedItemTree = itemTree
4793
4794 self.__itemTreeDict[id] = itemTree
4795
4796 def addPU2PELoadXML(self, puObj):
4797
4798 id, name, inputId = puObj.id, puObj.datatype, puObj.inputId
4799
4800 itemTree = QtGui.QStandardItem(QtCore.QString(str(name)))
4801
4802 if self.__itemTreeDict.has_key(inputId):
4803 parentItem = self.__itemTreeDict[inputId]
4804 else:
4805 #If parent is a Reader object
4806 parentItem = self.__itemTreeDict[id[:-1]]
4807
4808 parentItem.appendRow(itemTree)
4809 self.projectExplorerTree.expandAll()
4810 parentItem = itemTree
4811 self.projectExplorerTree.setCurrentIndex(parentItem.index())
4812
4813 self.__itemTreeDict[id] = itemTree
4814 self.selectedItemTree = itemTree
4815
4816 def getSelectedProjectObj(self):
4817 """
4818 Return the current project object selected. If a processing unit is
4819 actually selected this function returns associated project.
4820
4821 None if any project or processing unit is selected
4822 """
4823 for key in self.__itemTreeDict.keys():
4824 if self.__itemTreeDict[key] != self.selectedItemTree:
4825 continue
4826
4827 if self.__projectObjDict.has_key(key):
4828 projectObj = self.__projectObjDict[key]
4829 return projectObj
4830
4831 puObj = self.__puObjDict[key]
4832
4833 if puObj.parentId == None:
4834 projectId = puObj.getId()[0]
4835 else:
4836 projectId = puObj.parentId
4837
4838 projectObj = self.__projectObjDict[projectId]
4839 return projectObj
4840
4841 return None
4842
4843 def getSelectedItemObj(self):
4844 """
4845 Return the current project or processing unit object selected
4846
4847 None if any project or processing unit is selected
4848 """
4849 for key in self.__itemTreeDict.keys():
4850 if self.__itemTreeDict[key] != self.selectedItemTree:
4851 continue
4852
4853 if self.__projectObjDict.has_key(key) == True:
4854 fatherObj = self.__projectObjDict[key]
4855 else:
4856 fatherObj = self.__puObjDict[key]
4857
4858 return fatherObj
4859
4860 return None
4861
4862 def _WarningWindow(self, text, information):
4863
4864 msgBox = QtGui.QMessageBox()
4865 msgBox.setText(text)
4866 msgBox.setInformativeText(information)
4867 msgBox.setStandardButtons(QtGui.QMessageBox.Ok | QtGui.QMessageBox.Cancel)
4868 msgBox.setDefaultButton(QtGui.QMessageBox.Ok)
4869 ret = msgBox.exec_()
4870
4871 answer = False
4872
4873 if ret == QtGui.QMessageBox.Ok:
4874 answer = True
4875
4876 return answer
4877
4878 def __getNewProjectId(self):
4879
4880 loadProject = False
4881
4882 for thisId in range(1,10):
4883 newId = str(thisId)
4884 if newId in self.__projectObjDict.keys():
4885 continue
4886
4887 loadProject = True
4888 projectId = newId
4889 break
4890
4891 if not loadProject:
4892 self.console.clear()
4893 self.console.append("The maximum number of projects has been loaded, a new project can not be loaded")
4894 return None
4895
4896 return projectId
4897
4898 def openProject(self):
4899
4900 self._disable_save_button()
4901 self._disable_play_button()
4902
4903 self.console.clear()
4904
4905 self.frame_2.setEnabled(True)
4906
4907 # print self.dir
4908 filename = str(QtGui.QFileDialog.getOpenFileName(self, "Open a project file", self.pathWorkSpace, self.tr("Html Files (*.xml)")))
4909
4910 projectObjLoad = Project()
4911
4912 if not projectObjLoad.readXml(filename):
4913 self.console.append("The selected xml file could not be loaded ...")
4914 return 0
4915
4916 self.create = False
4917 self.refreshProjectWindow(projectObjLoad)
4918 self.refreshProjectProperties(projectObjLoad)
4919
4920 projectId = projectObjLoad.id
4921
4922 if projectId in self.__projectObjDict.keys():
4923
4924 projectId = self.__getNewProjectId()
4925
4926 if not projectId:
4927 return 0
4928
4929 projectObjLoad.updateId(projectId)
4930
4931 self.__projectObjDict[projectId] = projectObjLoad
4932
4933 self.addProject2ProjectExplorer(id=projectId, name=projectObjLoad.name)
4934
4935 self.tabWidgetProject.setEnabled(True)
4936 self.tabWidgetProject.setCurrentWidget(self.tabProject)
4937 # Disable tabProject after finish the creation
4938 self.tabProject.setEnabled(True)
4939 puObjorderList = OrderedDict(sorted(projectObjLoad.procUnitConfObjDict.items(), key=lambda x: x[0]))
4940
4941 for puId, puObj in puObjorderList.items():
4942
4943 self.__puObjDict[puId] = puObj
4944
4945 if puObj.name == "SendToServer":
4946 self.saveFTPFromProcUnitObj(puObj)
4947
4948 ############## COMPATIBLE WITH OLD VERSIONS ################
4949 operationObj = puObj.getOperationObj("SendByFTP")
4950
4951 if operationObj:
4952 self.saveFTPFromOpObj(operationObj)
4953 ############################################################
4954
4955 if puObj.inputId == '0':
4956 continue
4957
4958 self.addPU2PELoadXML(puObj)
4959
4960 self.refreshPUWindow(puObj)
4961 self.refreshPUProperties(puObj)
4962 self.showtabPUCreated(datatype=puObj.datatype)
4963
4964 # self.console.clear()
4965 self.console.append("\nThe selected xml file has been loaded successfully")
4966
4967 if self.dateList:
4968 self._disable_save_button()
4969 self._enable_play_button()
4970
4971 def create_updating_timer(self):
4972
4973 self.comm_data_timer = QtCore.QTimer(self)
4974 self.comm_data_timer.timeout.connect(self.on_comm_updating_timer)
4975 self.comm_data_timer.start(1000)
4976
4977 def on_comm_updating_timer(self):
4978 # Verifica si algun proceso ha sido inicializado y sigue ejecutandose
4979 # Si el proceso se ha parado actualizar el GUI (stopProject)
4980 if not self.threadStarted:
4981 return
4982
4983 if self.controllerThread.isFinished():
4984 self.stopProject()
4985 return
4986
4987 def use_plotmanager(self, controllerThread):
4988
4989 self.plotManager = controllerThread.useExternalPlotter()
4990
4991 self.plot_timer = QtCore.QTimer()
4992 self.plot_timer.timeout.connect(self.on_plotmanager_timer)
4993 self.plot_timer.start(10)
4994
4995 def on_plotmanager_timer(self):
4996
4997 if not self.plotManager:
4998 return
4999
5000 self.plotManager.run()
5001
5002 if self.plotManager.isErrorDetected():
5003 self.stopProject()
5004 return
5005
5006 def playProject(self, ext=".xml", save=1):
5007
5008 self._disable_play_button()
5009 self._disable_save_button()
5010
5011 if self.controllerThread:
5012 if self.controllerThread.isRunning():
5013 self.console.append("There is already another process running")
5014 self._enable_stop_button()
5015 return
5016
5017 if not self.dateList:
5018 self.console.append("No data found, check datapath")
5019
5020 projectObj = self.getSelectedProjectObj()
5021
5022 if not projectObj:
5023 self.console.append("Please, select a project to start it")
5024 return
5025
5026 if save:
5027 filename = self.saveProject()
5028 if filename == None:
5029 self.console.append("Process not initialized.")
5030 return
5031 else:
5032 filename = TEMPORAL_FILE
5033 projectObj.writeXml( os.path.join(self.pathWorkSpace,filename) )
5034
5035 self.console.clear()
5036 self.console.append("Please wait...")
5037
5038 self.controllerThread = ControllerThread()
5039 self.controllerThread.readXml(filename)
5040
5041 self.use_plotmanager(self.controllerThread)
5042
5043 self.console.clear()
5044
5045 self.controllerThread.start()
5046
5047 sleep(0.5)
5048
5049
5050 self.threadStarted = True
5051
5052 self._disable_play_button()
5053 self._disable_save_button()
5054 self._enable_stop_button()
5055
5056 def stopProject(self):
5057
5058 self.threadStarted = False
5059 self.controllerThread.stop()
5060 self.plot_timer.stop()
5061
5062 self.plotManager.join()
5063 self.plotManager = None
5064
5065 while self.controllerThread.isRunning():
5066 sleep(0.5)
5067
5068 self._disable_stop_button()
5069 self._enable_play_button()
5070
5071 def pauseProject(self):
5072
5073 # self.commCtrlPThread.cmd_q.put(ProcessCommand(ProcessCommand.PAUSE, data=True))
5074 paused = self.controllerThread.pause()
5075
5076 self.changePauseIcon(paused)
5077
5078 def saveProject(self, filename=None):
5079
5080 self._disable_save_button()
5081 self._disable_play_button()
5082
5083 projectObj = self.getSelectedProjectObj()
5084
5085 if not projectObj:
5086
5087 if self.create:
5088 self.console.append("Please press Ok before save it")
5089 else:
5090 self.console.append("Please select a project before save it")
5091 return
5092
5093 self.refreshGraphicsId()
5094
5095 sts = True
5096 selectedItemObj = self.getSelectedItemObj()
5097
5098 #A Processing Unit has been selected
5099 if projectObj == selectedItemObj:
5100 if not self.on_proOk_clicked():
5101 return None
5102
5103 #A Processing Unit has been selected
5104 if projectObj != selectedItemObj:
5105 puObj = selectedItemObj
5106
5107 if puObj.name == 'VoltageProc':
5108 sts = self.on_volOpOk_clicked()
5109 if puObj.name == 'SpectraProc':
5110 sts = self.on_specOpOk_clicked()
5111 if puObj.name == 'SpectraHeisProc':
5112 sts = self.on_specHeisOpOk_clicked()
5113
5114 if not sts:
5115 return None
5116
5117 self.createFTPProcUnitView()
5118
5119 if not filename:
5120 filename = os.path.join( str(self.pathWorkSpace), "%s%s" %(str(projectObj.name), '.xml') )
5121
5122 projectObj.writeXml(filename)
5123 self.console.clear()
5124 self.console.append("Project saved")
5125 self.console.append("Press Play button to start data processing ...")
5126
5127 self._disable_save_button()
5128 self._enable_play_button()
5129
5130 return filename
5131
5132 def removeItemTreeFromProject(self):
5133 """
5134 Metodo para eliminar el proyecto en el dictionario de proyectos y en el dictionario de vista de arbol
5135 """
5136 for key in self.__itemTreeDict.keys():
5137
5138 #Check again because an item can delete multiple items (childs)
5139 if key not in self.__itemTreeDict.keys():
5140 continue
5141
5142 if self.__itemTreeDict[key] != self.selectedItemTree:
5143 continue
5144
5145 if self.__projectObjDict.has_key(key) == True:
5146
5147 del self.__projectObjDict[key]
5148 del self.__itemTreeDict[key]
5149
5150 else:
5151 puObj = self.__puObjDict[key]
5152 idProjectParent = puObj.parentId
5153 projectObj = self.__projectObjDict[idProjectParent]
5154
5155 del self.__puObjDict[key]
5156 del self.__itemTreeDict[key]
5157 del projectObj.procUnitConfObjDict[key]
5158
5159 for key in projectObj.procUnitConfObjDict.keys():
5160 if projectObj.procUnitConfObjDict[key].inputId != puObj.getId():
5161 continue
5162 del self.__puObjDict[projectObj.procUnitConfObjDict[key].getId()]
5163 del self.__itemTreeDict[projectObj.procUnitConfObjDict[key].getId()]
5164 del projectObj.procUnitConfObjDict[key]
5165 # print projectObj.procUnitConfObjDict
5166 # print self.__itemTreeDict,self.__projectObjDict,self.__puObjDict
5167
5168 def setInputsProject_View(self):
5169
5170 self.tabWidgetProject.setEnabled(True)
5171 self.tabWidgetProject.setCurrentWidget(self.tabProject)
5172 self.tabProject.setEnabled(True)
5173 self.frame_2.setEnabled(False)
5174 self.proName.clear()
5175 self.proName.setFocus()
5176 self.proName.setSelection(0, 0)
5177 self.proName.setCursorPosition(0)
5178 self.proDataType.setText('.r')
5179 self.proDataPath.clear()
5180 self.proComDataType.clear()
5181 self.proComDataType.addItem("Voltage")
5182 self.proComDataType.addItem("Spectra")
5183 self.proComDataType.addItem("Fits")
5184 self.proComDataType.addItem("USRP")
5185
5186 self.proComStartDate.clear()
5187 self.proComEndDate.clear()
5188
5189 startTime = "00:00:00"
5190 endTime = "23:59:59"
5191 starlist = startTime.split(":")
5192 endlist = endTime.split(":")
5193 self.proDelay.setText("60")
5194 self.proSet.setText("")
5195
5196 self.labelSet.show()
5197 self.proSet.show()
5198
5199 self.labelIPPKm.hide()
5200 self.proIPPKm.hide()
5201
5202 self.time.setHMS(int(starlist[0]), int(starlist[1]), int(starlist[2]))
5203 self.proStartTime.setTime(self.time)
5204 self.time.setHMS(int(endlist[0]), int(endlist[1]), int(endlist[2]))
5205 self.proEndTime.setTime(self.time)
5206 self.proDescription.clear()
5207 self.proOk.setEnabled(False)
5208 # self.console.append("Please, Write a name Project")
5209 # self.console.append("Introduce Project Parameters")DC
5210 # self.console.append("Select data type Voltage( .rawdata) or Spectra(.pdata)")
5211
5212 def clearPUWindow(self, datatype):
5213
5214 projectObjView = self.getSelectedProjectObj()
5215
5216 if not projectObjView:
5217 return
5218
5219 puObj = self.getSelectedItemObj()
5220 inputId = puObj.getInputId()
5221 inputPUObj = projectObjView.getProcUnitObj(inputId)
5222
5223 if datatype == 'Voltage':
5224 self.volOpComChannels.setEnabled(False)
5225 self.volOpComHeights.setEnabled(False)
5226 self.volOpFilter.setEnabled(False)
5227 self.volOpComProfile.setEnabled(False)
5228 self.volOpComCode.setEnabled(False)
5229 self.volOpCohInt.setEnabled(False)
5230 self.volOpChannel.setEnabled(False)
5231 self.volOpHeights.setEnabled(False)
5232 self.volOpProfile.setEnabled(False)
5233 self.volOpRadarfrequency.setEnabled(False)
5234 self.volOpSplitter.setEnabled(False)
5235 self.volOpCombiner.setEnabled(False)
5236
5237 self.volOpCebChannels.setCheckState(0)
5238 self.volOpCebRadarfrequency.setCheckState(0)
5239 self.volOpCebHeights.setCheckState(0)
5240 self.volOpCebFilter.setCheckState(0)
5241 self.volOpCebProfile.setCheckState(0)
5242 self.volOpCebDecodification.setCheckState(0)
5243 self.volOpCebCohInt.setCheckState(0)
5244 self.volOpCebSplitter.setCheckState(0)
5245 self.volOpCebCombiner.setCheckState(0)
5246
5247 self.volOpChannel.clear()
5248 self.volOpHeights.clear()
5249 self.volOpProfile.clear()
5250 self.volOpFilter.clear()
5251 self.volOpCohInt.clear()
5252 self.volOpRadarfrequency.clear()
5253 self.volOpSplitter.clear()
5254 self.volOpCombiner.clear()
5255
5256 if datatype == 'Spectra':
5257
5258 if inputPUObj.datatype == 'Spectra':
5259 self.specOpnFFTpoints.setEnabled(False)
5260 self.specOpProfiles.setEnabled(False)
5261 self.specOpippFactor.setEnabled(False)
5262 else:
5263 self.specOpnFFTpoints.setEnabled(True)
5264 self.specOpProfiles.setEnabled(True)
5265 self.specOpippFactor.setEnabled(True)
5266
5267 self.specOpCebCrossSpectra.setCheckState(0)
5268 self.specOpCebChannel.setCheckState(0)
5269 self.specOpCebHeights.setCheckState(0)
5270 self.specOpCebIncoherent.setCheckState(0)
5271 self.specOpCebRemoveDC.setCheckState(0)
5272 self.specOpCebRemoveInt.setCheckState(0)
5273 self.specOpCebgetNoise.setCheckState(0)
5274 self.specOpCebRadarfrequency.setCheckState(0)
5275
5276 self.specOpRadarfrequency.setEnabled(False)
5277 self.specOppairsList.setEnabled(False)
5278 self.specOpChannel.setEnabled(False)
5279 self.specOpHeights.setEnabled(False)
5280 self.specOpIncoherent.setEnabled(False)
5281 self.specOpgetNoise.setEnabled(False)
5282
5283 self.specOpRadarfrequency.clear()
5284 self.specOpnFFTpoints.clear()
5285 self.specOpProfiles.clear()
5286 self.specOpippFactor.clear
5287 self.specOppairsList.clear()
5288 self.specOpChannel.clear()
5289 self.specOpHeights.clear()
5290 self.specOpIncoherent.clear()
5291 self.specOpgetNoise.clear()
5292
5293 self.specGraphCebSpectraplot.setCheckState(0)
5294 self.specGraphCebCrossSpectraplot.setCheckState(0)
5295 self.specGraphCebRTIplot.setCheckState(0)
5296 self.specGraphCebRTInoise.setCheckState(0)
5297 self.specGraphCebCoherencmap.setCheckState(0)
5298 self.specGraphPowerprofile.setCheckState(0)
5299
5300 self.specGraphSaveSpectra.setCheckState(0)
5301 self.specGraphSaveCross.setCheckState(0)
5302 self.specGraphSaveRTIplot.setCheckState(0)
5303 self.specGraphSaveRTInoise.setCheckState(0)
5304 self.specGraphSaveCoherencemap.setCheckState(0)
5305 self.specGraphSavePowerprofile.setCheckState(0)
5306
5307 self.specGraphftpRTIplot.setCheckState(0)
5308 self.specGraphftpRTInoise.setCheckState(0)
5309 self.specGraphftpCoherencemap.setCheckState(0)
5310
5311 self.specGraphPath.clear()
5312 self.specGraphPrefix.clear()
5313
5314 self.specGgraphftpratio.clear()
5315
5316 self.specGgraphChannelList.clear()
5317 self.specGgraphFreq.clear()
5318 self.specGgraphHeight.clear()
5319 self.specGgraphDbsrange.clear()
5320 self.specGgraphmagnitud.clear()
5321 self.specGgraphTminTmax.clear()
5322 self.specGgraphTimeRange.clear()
5323
5324 if datatype == 'SpectraHeis':
5325 self.specHeisOpCebIncoherent.setCheckState(0)
5326 self.specHeisOpIncoherent.setEnabled(False)
5327 self.specHeisOpIncoherent.clear()
5328
5329 self.specHeisGraphCebSpectraplot.setCheckState(0)
5330 self.specHeisGraphCebRTIplot.setCheckState(0)
5331
5332 self.specHeisGraphSaveSpectra.setCheckState(0)
5333 self.specHeisGraphSaveRTIplot.setCheckState(0)
5334
5335 self.specHeisGraphftpSpectra.setCheckState(0)
5336 self.specHeisGraphftpRTIplot.setCheckState(0)
5337
5338 self.specHeisGraphPath.clear()
5339 self.specHeisGraphPrefix.clear()
5340 self.specHeisGgraphChannelList.clear()
5341 self.specHeisGgraphXminXmax.clear()
5342 self.specHeisGgraphYminYmax.clear()
5343 self.specHeisGgraphTminTmax.clear()
5344 self.specHeisGgraphTimeRange.clear()
5345 self.specHeisGgraphftpratio.clear()
5346
5347 def showtabPUCreated(self, datatype):
5348
5349 if datatype == "Voltage":
5350 self.tabVoltage.setEnabled(True)
5351 self.tabProject.setEnabled(False)
5352 self.tabSpectra.setEnabled(False)
5353 self.tabCorrelation.setEnabled(False)
5354 self.tabSpectraHeis.setEnabled(False)
5355 self.tabWidgetProject.setCurrentWidget(self.tabVoltage)
5356
5357 if datatype == "Spectra":
5358 self.tabVoltage.setEnabled(False)
5359 self.tabProject.setEnabled(False)
5360 self.tabSpectra.setEnabled(True)
5361 self.tabCorrelation.setEnabled(False)
5362 self.tabSpectraHeis.setEnabled(False)
5363 self.tabWidgetProject.setCurrentWidget(self.tabSpectra)
5364
5365 if datatype == "SpectraHeis":
5366 self.tabVoltage.setEnabled(False)
5367 self.tabProject.setEnabled(False)
5368 self.tabSpectra.setEnabled(False)
5369 self.tabCorrelation.setEnabled(False)
5370 self.tabSpectraHeis.setEnabled(True)
5371 self.tabWidgetProject.setCurrentWidget(self.tabSpectraHeis)
5372
5373 def checkInputsProject(self):
5374 """
5375 Check Inputs Project:
5376 - project_name
5377 - datatype
5378 - ext
5379 - data_path
5380 - readmode
5381 - delay
5382 - set
5383 - walk
5384 """
5385 parms_ok = True
5386 project_name = str(self.proName.text())
5387 if project_name == '' or project_name == None:
5388 outputstr = "Enter the Project Name"
5389 self.console.append(outputstr)
5390 parms_ok = False
5391 project_name = None
5392
5393 datatype = str(self.proComDataType.currentText())
5394 if not(datatype in ['Voltage', 'Spectra', 'Fits', 'USRP']):
5395 outputstr = 'datatype = %s, this must be either Voltage, Spectra, SpectraHeis or USRP' % datatype
5396 self.console.append(outputstr)
5397 parms_ok = False
5398 datatype = None
5399
5400 ext = str(self.proDataType.text())
5401 if not(ext in ['.r', '.pdata', '.fits', '.hdf5']):
5402 outputstr = "extension files must be .r , .pdata, .fits or .hdf5"
5403 self.console.append(outputstr)
5404 parms_ok = False
5405 ext = None
5406
5407 data_path = str(self.proDataPath.text())
5408
5409 if data_path == '':
5410 outputstr = 'Datapath is empty'
5411 self.console.append(outputstr)
5412 parms_ok = False
5413 data_path = None
5414
5415 if data_path != None:
5416 if not os.path.isdir(data_path):
5417 outputstr = 'Datapath:%s does not exist' % data_path
5418 self.console.append(outputstr)
5419 parms_ok = False
5420 data_path = None
5421
5422 read_mode = str(self.proComReadMode.currentText())
5423 if not(read_mode in ['Online', 'Offline']):
5424 outputstr = 'Read Mode: %s, this must be either Online or Offline' % read_mode
5425 self.console.append(outputstr)
5426 parms_ok = False
5427 read_mode = None
5428
5429 delay = None
5430 if read_mode == "Online":
5431 parms_ok = False
5432 try:
5433 delay = int(str(self.proDelay.text()))
5434 parms_ok = True
5435 except:
5436 outputstr = 'Delay: %s, this must be a integer number' % str(self.proDelay.text())
5437 self.console.append(outputstr)
5438
5439 try:
5440 set = int(str(self.proSet.text()))
5441 except:
5442 # outputstr = 'Set: %s, this must be a integer number' % str(self.proName.text())
5443 # self.console.append(outputstr)
5444 # parms_ok = False
5445 set = None
5446
5447 walk = int(self.proComWalk.currentIndex())
5448 expLabel = str(self.proExpLabel.text())
5449
5450 return parms_ok, project_name, datatype, ext, data_path, read_mode, delay, walk, set, expLabel
5451
5452 def checkInputsPUSave(self, datatype):
5453 """
5454 Check Inputs Spectra Save:
5455 - path
5456 - blocks Per File
5457 - sufix
5458 - dataformat
5459 """
5460 parms_ok = True
5461
5462 if datatype == "Voltage":
5463 output_path = str(self.volOutputPath.text())
5464 blocksperfile = str(self.volOutputblocksperfile.text())
5465 profilesperblock = str(self.volOutputprofilesperblock.text())
5466
5467 if datatype == "Spectra":
5468 output_path = str(self.specOutputPath.text())
5469 blocksperfile = str(self.specOutputblocksperfile.text())
5470 profilesperblock = 0
5471
5472 if datatype == "SpectraHeis":
5473 output_path = str(self.specHeisOutputPath.text())
5474 blocksperfile = str(self.specHeisOutputblocksperfile.text())
5475 metadata_file = str(self.specHeisOutputMetada.text())
5476
5477 message = ''
5478
5479 if not os.path.isdir(output_path):
5480 message += 'OutputPath:%s does not exist\n' % output_path
5481 parms_ok = False
5482
5483 try:
5484 profilesperblock = int(profilesperblock)
5485 except:
5486 if datatype == "Voltage":
5487 message += 'Profilesperblock: %s, this must be a integer number\n' % str(self.volOutputprofilesperblock.text())
5488 parms_ok = False
5489 profilesperblock = None
5490
5491 try:
5492 blocksperfile = int(blocksperfile)
5493 except:
5494 if datatype == "Voltage":
5495 message += 'Blocksperfile: %s, this must be a integer number\n' % str(self.volOutputblocksperfile.text())
5496 elif datatype == "Spectra":
5497 message += 'Blocksperfile: %s, this must be a integer number\n' % str(self.specOutputblocksperfile.text())
5498 elif datatype == "SpectraHeis":
5499 message += 'Blocksperfile: %s, this must be a integer number\n' % str(self.specHeisOutputblocksperfile.text())
5500
5501 parms_ok = False
5502 blocksperfile = None
5503
5504 if datatype == "SpectraHeis":
5505 if metadata_file != '':
5506 if not os.path.isfile(metadata_file):
5507 message += 'Metadata file %s does not exist\n' % metadata_file
5508 parms_ok = False
5509
5510 if str.strip(output_path) != '':
5511 self.console.append(message)
5512
5513 if datatype == "Voltage":
5514 return parms_ok, output_path, blocksperfile, profilesperblock
5515
5516
5517 if datatype == "Spectra":
5518 return parms_ok, output_path, blocksperfile, profilesperblock
5519
5520
5521 if datatype == "SpectraHeis":
5522 return parms_ok, output_path, blocksperfile, metadata_file
5523
5524 def findDatafiles(self, data_path, ext, walk, expLabel=''):
5525
5526 dateList = []
5527 fileList = []
5528
5529 if ext == ".r":
5530 from schainpy.model.io.jroIO_base import JRODataReader
5531
5532 readerObj = JRODataReader()
5533 dateList = readerObj.findDatafiles(path=data_path,
5534 expLabel=expLabel,
5535 ext=ext,
5536 walk=walk)
5537
5538 if ext == ".pdata":
5539 from schainpy.model.io.jroIO_base import JRODataReader
5540
5541 readerObj = JRODataReader()
5542 dateList = readerObj.findDatafiles(path=data_path,
5543 expLabel=expLabel,
5544 ext=ext,
5545 walk=walk)
5546
5547 if ext == ".fits":
5548 from schainpy.model.io.jroIO_base import JRODataReader
5549
5550 readerObj = JRODataReader()
5551 dateList = readerObj.findDatafiles(path=data_path,
5552 expLabel=expLabel,
5553 ext=ext,
5554 walk=walk)
5555
5556 if ext == ".hdf5":
5557 from schainpy.model.io.jroIO_usrp import USRPReader
5558
5559 readerObj = USRPReader()
5560 dateList = readerObj.findDatafiles(path=data_path)
5561
5562 return dateList
5563
5564 def loadDays(self, data_path, ext, walk, expLabel=''):
5565 """
5566 Method to loads day
5567 """
5568 # self._disable_save_button()
5569 # self._disable_play_button()
5570 # self.proOk.setEnabled(False)
5571
5572 self.proComStartDate.clear()
5573 self.proComEndDate.clear()
5574
5575 self.dateList = []
5576
5577 if not data_path:
5578 self.console.append("Datapath has not been set")
5579 return []
5580
5581 if not os.path.isdir(data_path):
5582 self.console.append("Directory %s does not exist" %data_path)
5583 return []
5584
5585 self.dataPath = data_path
5586
5587 dateList = self.findDatafiles(data_path, ext=ext, walk=walk, expLabel=expLabel)
5588
5589 if not dateList:
5590 # self.console.clear()
5591 if walk:
5592 if expLabel:
5593 outputstr = "No files (*%s) were found on %s/DOYPATH/%s" % (ext, data_path, expLabel)
5594 else:
5595 outputstr = "No files (*%s) were found on %s" % (ext, data_path)
5596 else:
5597 outputstr = "No files (*%s) were found on %s" % (ext, data_path)
5598
5599 self.console.append(outputstr)
5600 return []
5601
5602 dateStrList = []
5603 for thisDate in dateList:
5604 dateStr = thisDate.strftime("%Y/%m/%d")
5605
5606 self.proComStartDate.addItem(dateStr)
5607 self.proComEndDate.addItem(dateStr)
5608 dateStrList.append(dateStr)
5609
5610 self.proComStartDate.setCurrentIndex(0)
5611 self.proComEndDate.setCurrentIndex(self.proComEndDate.count() - 1)
5612
5613 self.dateList = dateStrList
5614
5615 self.console.clear()
5616 self.console.append("Successful load")
5617
5618 # self.proOk.setEnabled(True)
5619 # self._enable_play_button()
5620 # self._enable_save_button()
5621
5622 return self.dateList
5623
5624 def setWorkSpaceGUI(self, pathWorkSpace=None):
5625
5626 if pathWorkSpace == None:
5627 home = os.path.expanduser("~")
5628 pathWorkSpace = os.path.join(home,'schain_workspace')
5629
5630 self.pathWorkSpace = pathWorkSpace
5631
5632 """
5633 Comandos Usados en Console
5634 """
5635 def __del__(self):
5636 sys.stdout = sys.__stdout__
5637 sys.stderr = sys.__stderr__
5638
5639 def normalOutputWritten(self, text):
5640 color_black = QtGui.QColor(0,0,0)
5641 self.console.setTextColor(color_black)
5642 self.console.append(text)
5643
5644 def errorOutputWritten(self, text):
5645 color_red = QtGui.QColor(255,0,0)
5646 color_black = QtGui.QColor(0,0,0)
5647
5648 self.console.setTextColor(color_red)
5649 self.console.append(text)
5650 self.console.setTextColor(color_black)
5651
5652 def _enable_save_button(self):
5653
5654 self.actionSaveToolbar.setEnabled(True)
5655 self.actionSave.setEnabled(True)
5656
5657 def _disable_save_button(self):
5658
5659 self.actionSaveToolbar.setEnabled(False)
5660 self.actionSave.setEnabled(False)
5661
5662 def _enable_play_button(self):
5663
5664 if self.controllerThread:
5665 if self.controllerThread.isRunning():
5666 return
5667
5668 self.actionStart.setEnabled(True)
5669 self.actionStarToolbar.setEnabled(True)
5670
5671 self.changeStartIcon(started=False)
5672
5673 def _disable_play_button(self):
5674
5675 self.actionStart.setEnabled(False)
5676 self.actionStarToolbar.setEnabled(False)
5677
5678 self.changeStartIcon(started=True)
5679
5680 def _enable_stop_button(self):
5681
5682 self.actionPause.setEnabled(True)
5683 self.actionStop.setEnabled(True)
5684
5685 self.actionPauseToolbar.setEnabled(True)
5686 self.actionStopToolbar.setEnabled(True)
5687
5688 self.changePauseIcon(paused=False)
5689 self.changeStopIcon(started=True)
5690
5691 def _disable_stop_button(self):
5692
5693 self.actionPause.setEnabled(False)
5694 self.actionStop.setEnabled(False)
5695
5696 self.actionPauseToolbar.setEnabled(False)
5697 self.actionStopToolbar.setEnabled(False)
5698
5699 self.changePauseIcon(paused=False)
5700 self.changeStopIcon(started=False)
5701
5702 def setGUIStatus(self):
5703
5704 self.setWindowTitle("ROJ-Signal Chain")
5705 self.setWindowIcon(QtGui.QIcon( os.path.join(FIGURES_PATH,"logo.png") ))
5706
5707 self.tabWidgetProject.setEnabled(False)
5708 self.tabVoltage.setEnabled(False)
5709 self.tabSpectra.setEnabled(False)
5710 self.tabCorrelation.setEnabled(False)
5711 self.frame_2.setEnabled(False)
5712
5713 self.actionCreate.setShortcut('Ctrl+N')
5714 self.actionOpen.setShortcut('Ctrl+O')
5715 self.actionSave.setShortcut('Ctrl+S')
5716 self.actionClose.setShortcut('Ctrl+X')
5717
5718 self.actionStart.setShortcut('Ctrl+1')
5719 self.actionPause.setShortcut('Ctrl+2')
5720 self.actionStop.setShortcut('Ctrl+3')
5721
5722 self.actionFTP.setShortcut('Ctrl+F')
5723
5724 self.actionStart.setEnabled(False)
5725 self.actionPause.setEnabled(False)
5726 self.actionStop.setEnabled(False)
5727
5728 self.actionStarToolbar.setEnabled(False)
5729 self.actionPauseToolbar.setEnabled(False)
5730 self.actionStopToolbar.setEnabled(False)
5731
5732 self.proName.clear()
5733 self.proDataPath.setText('')
5734 self.console.setReadOnly(True)
5735 self.console.append("Welcome to Signal Chain\n\n")
5736 self.console.append("Open a project or Create a new one\n")
5737 self.proStartTime.setDisplayFormat("hh:mm:ss")
5738 self.proDataType.setEnabled(False)
5739 self.time = QtCore.QTime()
5740 self.proEndTime.setDisplayFormat("hh:mm:ss")
5741 startTime = "00:00:00"
5742 endTime = "23:59:59"
5743 starlist = startTime.split(":")
5744 endlist = endTime.split(":")
5745 self.time.setHMS(int(starlist[0]), int(starlist[1]), int(starlist[2]))
5746 self.proStartTime.setTime(self.time)
5747 self.time.setHMS(int(endlist[0]), int(endlist[1]), int(endlist[2]))
5748 self.proEndTime.setTime(self.time)
5749 self.proOk.setEnabled(False)
5750 # set model Project Explorer
5751 self.projectExplorerModel = QtGui.QStandardItemModel()
5752 self.projectExplorerModel.setHorizontalHeaderLabels(("Project Explorer",))
5753 layout = QtGui.QVBoxLayout()
5754 layout.addWidget(self.projectExplorerTree)
5755 self.projectExplorerTree.setModel(self.projectExplorerModel)
5756 self.projectExplorerTree.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
5757 self.projectExplorerTree.customContextMenuRequested.connect(self.on_right_click)
5758 self.projectExplorerTree.clicked.connect(self.on_click)
5759 self.projectExplorerTree.expandAll()
5760 # set model Project Properties
5761
5762 self.propertiesModel = TreeModel()
5763 self.propertiesModel.initProjectView()
5764 self.treeProjectProperties.setModel(self.propertiesModel)
5765 self.treeProjectProperties.expandAll()
5766 self.treeProjectProperties.allColumnsShowFocus()
5767 self.treeProjectProperties.resizeColumnToContents(1)
5768
5769 # set Project
5770 self.pronTxs.setEnabled(False)
5771 self.proComByBlock.setEnabled(False)
5772 self.proExpLabel.setEnabled(False)
5773 self.proDelay.setEnabled(False)
5774 self.proSet.setEnabled(True)
5775 self.proDataType.setReadOnly(True)
5776
5777 # set Operation Voltage
5778 self.volOpComChannels.setEnabled(False)
5779 self.volOpComHeights.setEnabled(False)
5780 self.volOpFilter.setEnabled(False)
5781 self.volOpComProfile.setEnabled(False)
5782 self.volOpComCode.setEnabled(False)
5783 self.volOpFlip.setEnabled(False)
5784 self.volOpCohInt.setEnabled(False)
5785 self.volOpRadarfrequency.setEnabled(False)
5786
5787 self.volOpChannel.setEnabled(False)
5788 self.volOpHeights.setEnabled(False)
5789 self.volOpProfile.setEnabled(False)
5790 self.volOpComMode.setEnabled(False)
5791
5792 self.volOpSplitter.setEnabled(False)
5793 self.volOpCombiner.setEnabled(False)
5794 self.volOpAdjustHei.setEnabled(False)
5795
5796 self.volOpCebAdjustHei.setEnabled(False)
5797
5798 self.volGraphPath.setEnabled(False)
5799 self.volGraphPrefix.setEnabled(False)
5800 self.volGraphToolPath.setEnabled(False)
5801
5802 # set Graph Voltage
5803 self.volGraphChannelList.setEnabled(False)
5804 self.volGraphIntensityRange.setEnabled(False)
5805 self.volGraphHeightrange.setEnabled(False)
5806
5807 # set Operation Spectra
5808 self.specOpnFFTpoints.setEnabled(False)
5809 self.specOpProfiles.setEnabled(False)
5810 self.specOpippFactor.setEnabled(False)
5811 self.specOppairsList.setEnabled(False)
5812
5813 self.specOpComCrossSpectra.setEnabled(False)
5814 self.specOpComChannel.setEnabled(False)
5815 self.specOpComHeights.setEnabled(False)
5816 self.specOpIncoherent.setEnabled(False)
5817 self.specOpgetNoise.setEnabled(False)
5818 self.specOpRadarfrequency.setEnabled(False)
5819
5820
5821 self.specOpChannel.setEnabled(False)
5822 self.specOpHeights.setEnabled(False)
5823 # set Graph Spectra
5824 self.specGgraphChannelList.setEnabled(False)
5825 self.specGgraphFreq.setEnabled(False)
5826 self.specGgraphHeight.setEnabled(False)
5827 self.specGgraphDbsrange.setEnabled(False)
5828 self.specGgraphmagnitud.setEnabled(False)
5829 self.specGgraphTminTmax.setEnabled(False)
5830 self.specGgraphTimeRange.setEnabled(False)
5831 self.specGraphPath.setEnabled(False)
5832 self.specGraphToolPath.setEnabled(False)
5833 self.specGraphPrefix.setEnabled(False)
5834
5835 self.specGgraphftpratio.setEnabled(False)
5836 # set Operation SpectraHeis
5837 self.specHeisOpIncoherent.setEnabled(False)
5838 self.specHeisOpCobIncInt.setEnabled(False)
5839 # set Graph SpectraHeis
5840 self.specHeisGgraphChannelList.setEnabled(False)
5841 self.specHeisGgraphXminXmax.setEnabled(False)
5842 self.specHeisGgraphYminYmax.setEnabled(False)
5843 self.specHeisGgraphTminTmax.setEnabled(False)
5844 self.specHeisGgraphTimeRange.setEnabled(False)
5845 self.specHeisGgraphftpratio.setEnabled(False)
5846 self.specHeisGraphPath.setEnabled(False)
5847 self.specHeisGraphPrefix.setEnabled(False)
5848 self.specHeisGraphToolPath.setEnabled(False)
5849
5850 self.proComWalk.setCurrentIndex(0)
5851
5852 # tool tip gui
5853 QtGui.QToolTip.setFont(QtGui.QFont('SansSerif', 10))
5854 self.projectExplorerTree.setToolTip('Right clik to add Project or Unit Process')
5855 # tool tip gui project
5856
5857 # tool tip gui volOp
5858 # self.volOpChannel.setToolTip('Example: 1,2,3,4,5')
5859 # self.volOpHeights.setToolTip('Example: 90,180')
5860 # self.volOpFilter.setToolTip('Example: 2')
5861 # self.volOpProfile.setToolTip('Example:0,127')
5862 # self.volOpCohInt.setToolTip('Example: 128')
5863 # self.volOpFlip.setToolTip('ChannelList where flip will be applied. Example: 0,2,3')
5864 # self.volOpOk.setToolTip('If you have finished, please Ok ')
5865 # # tool tip gui volGraph
5866 # self.volGraphIntensityRange.setToolTip('Height range. Example: 50,100')
5867 # self.volGraphHeightrange.setToolTip('Amplitude. Example: 0,10000')
5868 # tool tip gui specOp
5869 # self.specOpnFFTpoints.setToolTip('Example: 128')
5870 # self.specOpProfiles.setToolTip('Example: 128')
5871 # self.specOpippFactor.setToolTip('Example:1.0')
5872 # self.specOpIncoherent.setToolTip('Example: 10')
5873 # self.specOpgetNoise.setToolTip('Example:20,180,30,120 (minHei,maxHei,minVel,maxVel)')
5874 #
5875 # self.specOpChannel.setToolTip('Example: 0,1,2,3')
5876 # self.specOpHeights.setToolTip('Example: 90,180')
5877 # self.specOppairsList.setToolTip('Example: (0,1),(2,3)')
5878 # # tool tip gui specGraph
5879 #
5880 # self.specGgraphChannelList.setToolTip('Example: 0,3,4')
5881 # self.specGgraphFreq.setToolTip('Example: -20,20')
5882 # self.specGgraphHeight.setToolTip('Example: 100,400')
5883 # self.specGgraphDbsrange.setToolTip('Example: 30,170')
5884 #
5885 # self.specGraphPrefix.setToolTip('Example: EXPERIMENT_NAME')
5886 #
5887 #
5888 # self.specHeisOpIncoherent.setToolTip('Example: 10')
5889 #
5890 # self.specHeisGgraphChannelList.setToolTip('Example: 0,2,3')
5891 # self.specHeisGgraphXminXmax.setToolTip('Example (Hz): -1000, 1000')
5892 # self.specHeisGgraphYminYmax.setToolTip('Example (dB): 5, 35')
5893 # self.specHeisGgraphTminTmax.setToolTip('Example (hours): 0, 24')
5894 # self.specHeisGgraphTimeRange.setToolTip('Example (hours): 8')
5895
5896 self.labelSet.show()
5897 self.proSet.show()
5898
5899 self.labelIPPKm.hide()
5900 self.proIPPKm.hide()
5901
5902 sys.stdout = ShowMeConsole(textWritten=self.normalOutputWritten)
5903 # sys.stderr = ShowMeConsole(textWritten=self.errorOutputWritten)
5904
5905
5906 class UnitProcessWindow(QMainWindow, Ui_UnitProcess):
5907 """
5908 Class documentation goes here.
5909 """
5910 closed = pyqtSignal()
5911 create = False
5912
5913 def __init__(self, parent=None):
5914 """
5915 Constructor
5916 """
5917 QMainWindow.__init__(self, parent)
5918 self.setupUi(self)
5919 self.getFromWindow = None
5920 self.getfromWindowList = []
5921 self.dataTypeProject = None
5922
5923 self.listUP = None
5924
5925 @pyqtSignature("")
5926 def on_unitPokbut_clicked(self):
5927 """
5928 Slot documentation goes here.
5929 """
5930 self.create = True
5931 self.getFromWindow = self.getfromWindowList[int(self.comboInputBox.currentIndex())]
5932 # self.nameofUP= str(self.nameUptxt.text())
5933 self.typeofUP = str(self.comboTypeBox.currentText())
5934 self.close()
5935
5936
5937 @pyqtSignature("")
5938 def on_unitPcancelbut_clicked(self):
5939 """
5940 Slot documentation goes here.
5941 """
5942 self.create = False
5943 self.close()
5944
5945 def loadTotalList(self):
5946 self.comboInputBox.clear()
5947 for i in self.getfromWindowList:
5948
5949 name = i.getElementName()
5950 if name == 'Project':
5951 id = i.id
5952 name = i.name
5953 if self.dataTypeProject == 'Voltage':
5954 self.comboTypeBox.clear()
5955 self.comboTypeBox.addItem("Voltage")
5956
5957 if self.dataTypeProject == 'Spectra':
5958 self.comboTypeBox.clear()
5959 self.comboTypeBox.addItem("Spectra")
5960 self.comboTypeBox.addItem("Correlation")
5961 if self.dataTypeProject == 'Fits':
5962 self.comboTypeBox.clear()
5963 self.comboTypeBox.addItem("SpectraHeis")
5964
5965
5966 if name == 'ProcUnit':
5967 id = int(i.id) - 1
5968 name = i.datatype
5969 if name == 'Voltage':
5970 self.comboTypeBox.clear()
5971 self.comboTypeBox.addItem("Spectra")
5972 self.comboTypeBox.addItem("SpectraHeis")
5973 self.comboTypeBox.addItem("Correlation")
5974 if name == 'Spectra':
5975 self.comboTypeBox.clear()
5976 self.comboTypeBox.addItem("Spectra")
5977 self.comboTypeBox.addItem("SpectraHeis")
5978 self.comboTypeBox.addItem("Correlation")
5979 if name == 'SpectraHeis':
5980 self.comboTypeBox.clear()
5981 self.comboTypeBox.addItem("SpectraHeis")
5982
5983 self.comboInputBox.addItem(str(name))
5984 # self.comboInputBox.addItem(str(name)+str(id))
5985
5986 def closeEvent(self, event):
5987 self.closed.emit()
5988 event.accept()
5989
5990 class Ftp(QMainWindow, Ui_Ftp):
5991 """
5992 Class documentation goes here.
5993 """
5994 create = False
5995 closed = pyqtSignal()
5996 server = None
5997 remotefolder = None
5998 username = None
5999 password = None
6000 ftp_wei = None
6001 exp_code = None
6002 sub_exp_code = None
6003 plot_pos = None
6004
6005 def __init__(self, parent=None):
6006 """
6007 Constructor
6008 """
6009 QMainWindow.__init__(self, parent)
6010 self.setupUi(self)
6011 self.setGUIStatus()
6012
6013 def setGUIStatus(self):
6014 self.setWindowTitle("ROJ-Signal Chain")
6015 self.serverFTP.setToolTip('Example: jro-app.igp.gob.pe')
6016 self.folderFTP.setToolTip('Example: /home/wmaster/graficos')
6017 self.usernameFTP.setToolTip('Example: myusername')
6018 self.passwordFTP.setToolTip('Example: mypass ')
6019 self.weightFTP.setToolTip('Example: 0')
6020 self.expcodeFTP.setToolTip('Example: 0')
6021 self.subexpFTP.setToolTip('Example: 0')
6022 self.plotposFTP.setToolTip('Example: 0')
6023
6024 def setParmsfromTemporal(self, server, remotefolder, username, password, ftp_wei, exp_code, sub_exp_code, plot_pos):
6025 self.serverFTP.setText(str(server))
6026 self.folderFTP.setText(str(remotefolder))
6027 self.usernameFTP.setText(str(username))
6028 self.passwordFTP.setText(str(password))
6029 self.weightFTP.setText(str(ftp_wei))
6030 self.expcodeFTP.setText(str(exp_code))
6031 self.subexpFTP.setText(str(sub_exp_code))
6032 self.plotposFTP.setText(str(plot_pos))
6033
6034 def getParmsFromFtpWindow(self):
6035 """
6036 Return Inputs Project:
6037 - server
6038 - remotefolder
6039 - username
6040 - password
6041 - ftp_wei
6042 - exp_code
6043 - sub_exp_code
6044 - plot_pos
6045 """
6046 name_server_ftp = str(self.serverFTP.text())
6047 if not name_server_ftp:
6048 self.console.clear()
6049 self.console.append("Please Write a FTP Server")
6050 return 0
6051
6052 folder_server_ftp = str(self.folderFTP.text())
6053 if not folder_server_ftp:
6054 self.console.clear()
6055 self.console.append("Please Write a Folder")
6056 return 0
6057
6058 username_ftp = str(self.usernameFTP.text())
6059 if not username_ftp:
6060 self.console.clear()
6061 self.console.append("Please Write a User Name")
6062 return 0
6063
6064 password_ftp = str(self.passwordFTP.text())
6065 if not password_ftp:
6066 self.console.clear()
6067 self.console.append("Please Write a passwordFTP")
6068 return 0
6069
6070 ftp_wei = str(self.weightFTP.text())
6071 if not ftp_wei == "":
6072 try:
6073 ftp_wei = int(self.weightFTP.text())
6074 except:
6075 self.console.clear()
6076 self.console.append("Please Write a ftp_wei number")
6077 return 0
6078
6079 exp_code = str(self.expcodeFTP.text())
6080 if not exp_code == "":
6081 try:
6082 exp_code = int(self.expcodeFTP.text())
6083 except:
6084 self.console.clear()
6085 self.console.append("Please Write a exp_code number")
6086 return 0
6087
6088
6089 sub_exp_code = str(self.subexpFTP.text())
6090 if not sub_exp_code == "":
6091 try:
6092 sub_exp_code = int(self.subexpFTP.text())
6093 except:
6094 self.console.clear()
6095 self.console.append("Please Write a sub_exp_code number")
6096 return 0
6097
6098 plot_pos = str(self.plotposFTP.text())
6099 if not plot_pos == "":
6100 try:
6101 plot_pos = int(self.plotposFTP.text())
6102 except:
6103 self.console.clear()
6104 self.console.append("Please Write a plot_pos number")
6105 return 0
6106
6107 return name_server_ftp, folder_server_ftp, username_ftp, password_ftp, ftp_wei, exp_code, sub_exp_code, plot_pos
6108
6109 @pyqtSignature("")
6110 def on_ftpOkButton_clicked(self):
6111 server, remotefolder, username, password, ftp_wei, exp_code, sub_exp_code, plot_pos = self.getParmsFromFtpWindow()
6112 self.create = True
6113 self.close()
6114
6115 @pyqtSignature("")
6116 def on_ftpCancelButton_clicked(self):
6117 self.create = False
6118 self.close()
6119
6120 def closeEvent(self, event):
6121 self.closed.emit()
6122 event.accept()
6123
6124 class ftpBuffer():
6125
6126 server = None
6127 remotefolder = None
6128 username = None
6129 password = None
6130 ftp_wei = None
6131 exp_code = None
6132 sub_exp_code = None
6133 plot_pos = None
6134 create = False
6135 withoutconfig = False
6136 createforView = False
6137 localfolder = None
6138 extension = None
6139 period = None
6140 protocol = None
6141
6142 def __init__(self):
6143
6144 self.create = False
6145 self.server = None
6146 self.remotefolder = None
6147 self.username = None
6148 self.password = None
6149 self.ftp_wei = None
6150 self.exp_code = None
6151 self.sub_exp_code = None
6152 self.plot_pos = None
6153 # self.create = False
6154 self.localfolder = None
6155 self.extension = None
6156 self.period = None
6157 self.protocol = None
6158
6159 def setwithoutconfiguration(self):
6160
6161 self.create = False
6162 self.server = "jro-app.igp.gob.pe"
6163 self.remotefolder = "/home/wmaster/graficos"
6164 self.username = "wmaster"
6165 self.password = "mst2010vhf"
6166 self.withoutconfig = True
6167 self.localfolder = './'
6168 self.extension = '.png'
6169 self.period = 60
6170 self.protocol = 'ftp'
6171 self.createforView = True
6172
6173 if not self.ftp_wei:
6174 self.ftp_wei = 0
6175
6176 if not self.exp_code:
6177 self.exp_code = 0
6178
6179 if not self.sub_exp_code:
6180 self.sub_exp_code = 0
6181
6182 if not self.plot_pos:
6183 self.plot_pos = 0
6184
6185 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'):
6186
6187 self.server = server
6188 self.remotefolder = remotefolder
6189 self.username = username
6190 self.password = password
6191 self.ftp_wei = ftp_wei
6192 self.exp_code = exp_code
6193 self.sub_exp_code = sub_exp_code
6194 self.plot_pos = plot_pos
6195 self.create = True
6196 self.withoutconfig = False
6197 self.createforView = True
6198 self.localfolder = localfolder
6199 self.extension = extension
6200 self.period = period
6201 self.protocol = protocol
6202
6203 def recover(self):
6204
6205 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
6206
6207 class ShowMeConsole(QtCore.QObject):
6208
6209 textWritten = QtCore.pyqtSignal(str)
6210
6211 def write(self, text):
6212
6213 if len(text) == 0:
6214 self.textWritten.emit("\n")
6215 return
6216
6217 if text[-1] == "\n":
6218 text = text[:-1]
6219
6220 self.textWritten.emit(str(text))
6221
6222 def flush(self):
6223 pass
@@ -1,21 +0,0
1 # -*- coding: utf-8 -*-
2
3 """
4 Module implementing Ftp.
5 """
6
7 from PyQt4.QtGui import QMainWindow
8 from PyQt4.QtCore import pyqtSignature
9
10 from schainpy.gui.viewer.ftp import Ui_Ftp
11
12 class Ftp(QMainWindow, Ui_MainWindow):
13 """
14 Class documentation goes here.
15 """
16 def __init__(self, parent = None):
17 """
18 Constructor
19 """
20 QMainWindow.__init__(self, parent)
21 self.setupUi(self)
@@ -1,46 +0,0
1 # -*- coding: utf-8 -*-
2
3 """
4 Module implementing InitWindow.
5 """
6 import os
7
8 from PyQt4.QtGui import QDialog
9 from PyQt4.QtCore import pyqtSignature
10 from PyQt4 import QtCore
11 from PyQt4 import QtGui
12
13 from schainpy.gui.viewer.ui_initwindow import Ui_InitWindow
14 from schainpy.gui.figures import tools
15
16 FIGURES_PATH = tools.get_path()
17
18 class InitWindow(QDialog, Ui_InitWindow):
19 """
20 Class documentation goes here.
21 """
22 def __init__(self, parent = None):
23 """
24 Constructor
25 """
26 QDialog.__init__(self, parent)
27 self.setupUi(self)
28 self.setWindowTitle("ROJ-Signal Chain")
29 self.setWindowIcon(QtGui.QIcon( os.path.join(FIGURES_PATH,"logo.png") ))
30
31 @pyqtSignature("")
32 def on_ExitBtn_clicked(self):
33 """
34 Exit cierra la ventana de Bienvenida
35 """
36 self.close()
37
38 @pyqtSignature("")
39 def on_ContinueBtn_clicked(self):
40 """
41 Continue cierra la ventana de Bienvenida, a este evento se le complementa con la accion
42 conectar con la ventana de configuracion de Workspace
43 """
44 # TODO: not implemented yet
45 #raise NotImplementedError
46 self.accept()
@@ -1,92 +0,0
1 """
2 Classes to save parameters from Windows.
3
4 -Project window
5 -Voltage window
6 -Spectra window
7 -SpectraHeis window
8 -Correlation window
9
10 """
11
12 class ProjectParms():
13
14 parmsOk = False
15 name = None
16 description = None
17 datatype = None
18 ext = None
19 dpath = None
20 startDate = None
21 endDate = None
22 startTime = None
23 endTime = None
24 online = None
25 delay = None
26 walk = None
27 expLabel = None
28 set = None
29 ippKm = None
30
31 def __init__(self):
32
33 self.parmsOk = True
34 self.description = ''
35 self.expLabel = ''
36 self.set = ''
37 self.ippKm = ''
38 self.walk = None
39 self.delay = ''
40
41 def getDatatypeIndex(self):
42
43 indexDatatype = None
44
45 if 'voltage' in self.datatype.lower():
46 indexDatatype = 0
47 if 'spectra' in self.datatype.lower():
48 indexDatatype = 1
49 if 'fits' in self.datatype.lower():
50 indexDatatype = 2
51 if 'usrp' in self.datatype.lower():
52 indexDatatype = 3
53 return indexDatatype
54
55 def getExt(self):
56
57 ext = None
58
59 if self.datatype.lower() == 'voltage':
60 ext = '.r'
61 if self.datatype.lower() == 'spectra':
62 ext = '.pdata'
63 if self.datatype.lower() == 'fits':
64 ext = '.fits'
65 if self.datatype.lower() == 'usrp':
66 ext = '.hdf5'
67 return ext
68
69 def set(self, project_name, datatype, ext, dpath, online,
70 startDate=None, endDate=None, startTime=None, endTime=None,
71 delay=None, walk=None, set=None, ippKm=None, parmsOk=True, expLabel=''):
72
73 name = project_name
74 datatype = datatype
75 ext = ext
76 dpath = dpath
77 startDate = startDate
78 endDate = endDate
79 startTime = startTime
80 endTime = endTime
81 online = online
82 delay = delay
83 walk = walk
84 set = set
85 ippKm = ippKm
86 expLabel = expLabel
87
88 self.parmsOk = parmsOk
89
90 def isValid(self):
91
92 return self.parmsOk No newline at end of file
@@ -1,211 +0,0
1 # -*- coding: utf-8 -*-
2 """
3 This module contains every model class to create, modify and show a property tree on a GUI.
4 """
5
6 from PyQt4 import QtCore
7 import itertools
8
9 HORIZONTAL_HEADERS = ("Property","Value " )
10
11 HORIZONTAL = ("RAMA :",)
12
13 class PropertyBuffer():
14
15 def __init__(self):
16
17 self.clear()
18
19 def clear(self):
20
21 self.headerList = []
22 self.parmList = []
23 self.valueList = []
24
25 def append(self, header, parm, value):
26
27 self.headerList.append(header)
28 self.parmList.append(parm)
29 self.valueList.append(value)
30
31 return
32
33 def get(self):
34
35 return self.headerList, self.parmList, self.valueList
36
37 def getPropertyModel(self):
38
39 propertiesModel = TreeModel()
40 propertiesModel.showProperties(self.headerList, self.parmList, self.valueList)
41
42 return propertiesModel
43
44
45 class TreeModel(QtCore.QAbstractItemModel):
46 '''
47 a model to display a few names, ordered by encabezado
48
49 '''
50 def __init__(self ,parent=None):
51 super(TreeModel, self).__init__(parent)
52 self.people = []
53
54 def initProjectView(self):
55 """
56 Reemplazo del mΓ©todo showtree
57 """
58 HORIZONTAL_HEADERS = ("Property","Value " )
59 HORIZONTAL = ("RAMA :",)
60 self.rootItem = TreeItem(None, "ALL", None)
61 self.parents = {0 : self.rootItem}
62 self.__setupModelData()
63
64 def initPUVoltageView(self):
65 HORIZONTAL_HEADERS = ("Operation"," Parameter Value " )
66 HORIZONTAL = ("RAMA :",)
67 self.rootItem = TreeItem(None, "ALL", None)
68 self.parents = {0 : self.rootItem}
69 self.__setupModelData()
70
71 def showProperties(self,headerList, parmList, valueList):
72 """
73 set2Obje
74 """
75 for header, parameter, value in itertools.izip(headerList, parmList, valueList):
76 person = person_class(header, parameter, value)
77 self.people.append(person)
78
79 self.rootItem = TreeItem(None, "ALL", None)
80 self.parents = {0 : self.rootItem}
81 self.__setupModelData()
82
83 def columnCount(self, parent=None):
84 if parent and parent.isValid():
85 return parent.internalPointer().columnCount()
86 else:
87 return len(HORIZONTAL_HEADERS)
88
89 def data(self, index, role):
90 if not index.isValid():
91 return QtCore.QVariant()
92
93 item = index.internalPointer()
94 if role == QtCore.Qt.DisplayRole:
95 return item.data(index.column())
96 if role == QtCore.Qt.UserRole:
97 if item:
98 return item.person
99
100 return QtCore.QVariant()
101
102 def index(self, row, column, parent):
103 if not self.hasIndex(row, column, parent):
104 return QtCore.QModelIndex()
105
106 if not parent.isValid():
107 parentItem = self.rootItem
108 else:
109 parentItem = parent.internalPointer()
110
111 childItem = parentItem.child(row)
112 if childItem:
113 return self.createIndex(row, column, childItem)
114 else:
115 return QtCore.QModelIndex()
116
117 def parent(self, index):
118 if not index.isValid():
119 return QtCore.QModelIndex()
120
121 childItem = index.internalPointer()
122 if not childItem:
123 return QtCore.QModelIndex()
124
125 parentItem = childItem.parent()
126
127 if parentItem == self.rootItem:
128 return QtCore.QModelIndex()
129
130 return self.createIndex(parentItem.row(), 0, parentItem)
131
132 def rowCount(self, parent=QtCore.QModelIndex()):
133 if parent.column() > 0:
134 return 0
135 if not parent.isValid():
136 p_Item = self.rootItem
137 else:
138 p_Item = parent.internalPointer()
139 return p_Item.childCount()
140
141 def __setupModelData(self):
142 for person in self.people:
143 if person.value:
144 encabezado = person.header
145
146 if not self.parents.has_key(encabezado):
147 newparent = TreeItem(None, encabezado, self.rootItem)
148 self.rootItem.appendChild(newparent)
149
150 self.parents[encabezado] = newparent
151
152 parentItem = self.parents[encabezado]
153 newItem = TreeItem(person, "", parentItem)
154 parentItem.appendChild(newItem)
155
156 class person_class(object):
157 '''
158 a trivial custom data object
159 '''
160 def __init__(self, header, parameter, value):
161 self.header = header
162 self.parameter = parameter
163 self.value = value
164
165 def __repr__(self):
166 return "PERSON - %s %s"% (self.parameter, self.header)
167
168 class TreeItem(object):
169 '''
170 a python object used to return row/column data, and keep note of
171 it's parents and/or children
172 '''
173 def __init__(self, person, header, parentItem):
174 self.person = person
175 self.parentItem = parentItem
176 self.header = header
177 self.childItems = []
178
179 def appendChild(self, item):
180 self.childItems.append(item)
181
182 def child(self, row):
183 return self.childItems[row]
184
185 def childCount(self):
186 return len(self.childItems)
187
188 def columnCount(self):
189 return 2
190
191 def data(self, column):
192 if self.person == None:
193 if column == 0:
194 return QtCore.QVariant(self.header)
195 if column == 1:
196 return QtCore.QVariant("")
197 else:
198 if column == 0:
199 return QtCore.QVariant(self.person.parameter)
200 if column == 1:
201 return QtCore.QVariant(self.person.value)
202 return QtCore.QVariant()
203
204 def parent(self):
205 return self.parentItem
206
207 def row(self):
208 if self.parentItem:
209 return self.parentItem.childItems.index(self)
210 return 0
211 No newline at end of file
@@ -1,70 +0,0
1 # -*- coding: utf-8 -*-
2 import os
3 from os.path import expanduser
4
5 from PyQt4.QtGui import QDialog
6 from PyQt4.QtCore import pyqtSignature
7 from PyQt4.QtCore import pyqtSignal
8 from PyQt4 import QtGui, QtCore
9
10 from schainpy.gui.viewer.ui_workspace import Ui_Workspace
11 from schainpy.gui.figures import tools
12
13 FIGURES_PATH = tools.get_path()
14
15 class Workspace(QDialog, Ui_Workspace):
16 """
17 Class documentation goes here.
18 """
19
20 def __init__(self, parent = None):
21 """
22 Constructor
23 """
24 QDialog.__init__(self, parent)
25 self.dirList=[]
26 self.setupUi(self)
27 self.setWindowTitle("ROJ-Signal Chain")
28 self.setWindowIcon(QtGui.QIcon( os.path.join(FIGURES_PATH,"logo.png") ))
29 #*####### DIRECTORIO DE TRABAJO #########*#
30 #self.dirCmbBox.setItemText(0, QtGui.QApplication.translate("MainWindow", "C:\WorkSpaceGui", None, QtGui.QApplication.UnicodeUTF8))
31 home=expanduser("~")
32 self.dir=os.path.join(home,'schain_workspace')
33 if not os.path.exists(self.dir):
34 os.makedirs(self.dir)
35 self.dirComBox.addItem(self.dir)
36 self.i=0
37
38
39 @pyqtSignature("")
40 def on_dirToolPath_clicked(self):
41 """
42 Slot documentation goes here.
43 """
44 self.i +=1
45 self.dirBrowse = str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly))
46 self.dirComBox.addItem(self.dirBrowse)
47 self.dirComBox.setCurrentIndex(self.i)
48
49
50
51 @pyqtSignature("")
52 def on_dirOkBtn_clicked(self):
53 """
54 VISTA DE INTERFAZ GRÁFICA
55 """
56 self.accept()
57 # self.close()
58 #
59 @pyqtSignature("")
60 def on_dirCancelBtn_clicked(self):
61 """
62 Cerrar
63 """
64 self.close()
65
66
67
68
69
70 No newline at end of file
@@ -1,5 +0,0
1 # import ui_initwindow
2 # import ui_workspace
3 # import ui_mainwindow
4 # import ui_window
5 # import ui_ftp No newline at end of file
@@ -1,140 +0,0
1 # -*- coding: utf-8 -*-
2
3 # Form implementation generated from reading ui file '/home/alex/ui/ftpConfig4.ui'
4 #
5 # Created: Tue Aug 20 08:24:35 2013
6 # by: PyQt4 UI code generator 4.10
7 #
8 # WARNING! All changes made in this file will be lost!
9
10 from PyQt4 import QtCore, QtGui
11
12 try:
13 _fromUtf8 = QtCore.QString.fromUtf8
14 except AttributeError:
15 def _fromUtf8(s):
16 return s
17
18 try:
19 _encoding = QtGui.QApplication.UnicodeUTF8
20 def _translate(context, text, disambig):
21 return QtGui.QApplication.translate(context, text, disambig, _encoding)
22 except AttributeError:
23 def _translate(context, text, disambig):
24 return QtGui.QApplication.translate(context, text, disambig)
25
26 class Ui_Ftp(object):
27 def setupUi(self, MainWindow):
28 MainWindow.setObjectName(_fromUtf8("MainWindow"))
29 MainWindow.resize(374, 399)
30 MainWindow.setMinimumSize(QtCore.QSize(374, 399))
31 MainWindow.setMaximumSize(QtCore.QSize(374, 399))
32 self.centralWidget = QtGui.QWidget(MainWindow)
33 self.centralWidget.setObjectName(_fromUtf8("centralWidget"))
34 self.label = QtGui.QLabel(self.centralWidget)
35 self.label.setGeometry(QtCore.QRect(9, 38, 47, 17))
36 self.label.setObjectName(_fromUtf8("label"))
37 self.label_2 = QtGui.QLabel(self.centralWidget)
38 self.label_2.setGeometry(QtCore.QRect(9, 133, 77, 17))
39 self.label_2.setObjectName(_fromUtf8("label_2"))
40 self.label_3 = QtGui.QLabel(self.centralWidget)
41 self.label_3.setGeometry(QtCore.QRect(9, 166, 68, 17))
42 self.label_3.setObjectName(_fromUtf8("label_3"))
43 self.label_4 = QtGui.QLabel(self.centralWidget)
44 self.label_4.setGeometry(QtCore.QRect(9, 9, 101, 17))
45 font = QtGui.QFont()
46 font.setBold(True)
47 font.setWeight(75)
48 self.label_4.setFont(font)
49 self.label_4.setObjectName(_fromUtf8("label_4"))
50 self.label_5 = QtGui.QLabel(self.centralWidget)
51 self.label_5.setGeometry(QtCore.QRect(9, 104, 87, 17))
52 font = QtGui.QFont()
53 font.setBold(True)
54 font.setWeight(75)
55 self.label_5.setFont(font)
56 self.label_5.setObjectName(_fromUtf8("label_5"))
57 self.label_6 = QtGui.QLabel(self.centralWidget)
58 self.label_6.setGeometry(QtCore.QRect(9, 71, 47, 17))
59 self.label_6.setObjectName(_fromUtf8("label_6"))
60 self.serverFTP = QtGui.QLineEdit(self.centralWidget)
61 self.serverFTP.setGeometry(QtCore.QRect(130, 40, 231, 27))
62 self.serverFTP.setObjectName(_fromUtf8("serverFTP"))
63 self.folderFTP = QtGui.QLineEdit(self.centralWidget)
64 self.folderFTP.setGeometry(QtCore.QRect(130, 70, 231, 27))
65 self.folderFTP.setObjectName(_fromUtf8("folderFTP"))
66 self.usernameFTP = QtGui.QLineEdit(self.centralWidget)
67 self.usernameFTP.setGeometry(QtCore.QRect(130, 130, 231, 27))
68 self.usernameFTP.setObjectName(_fromUtf8("usernameFTP"))
69 self.passwordFTP = QtGui.QLineEdit(self.centralWidget)
70 self.passwordFTP.setEchoMode(QtGui.QLineEdit.Password)
71 self.passwordFTP.setGeometry(QtCore.QRect(130, 160, 231, 27))
72 self.passwordFTP.setObjectName(_fromUtf8("passwordFTP"))
73 self.ftpCancelButton = QtGui.QPushButton(self.centralWidget)
74 self.ftpCancelButton.setGeometry(QtCore.QRect(130, 360, 111, 27))
75 self.ftpCancelButton.setObjectName(_fromUtf8("ftpCancelButton"))
76 self.ftpOkButton = QtGui.QPushButton(self.centralWidget)
77 self.ftpOkButton.setGeometry(QtCore.QRect(250, 360, 111, 27))
78 self.ftpOkButton.setObjectName(_fromUtf8("ftpOkButton"))
79 self.label_7 = QtGui.QLabel(self.centralWidget)
80 self.label_7.setGeometry(QtCore.QRect(10, 200, 66, 17))
81 font = QtGui.QFont()
82 font.setBold(True)
83 font.setWeight(75)
84 self.label_7.setFont(font)
85 self.label_7.setObjectName(_fromUtf8("label_7"))
86 self.label_8 = QtGui.QLabel(self.centralWidget)
87 self.label_8.setGeometry(QtCore.QRect(10, 230, 81, 17))
88 self.label_8.setObjectName(_fromUtf8("label_8"))
89 self.label_9 = QtGui.QLabel(self.centralWidget)
90 self.label_9.setGeometry(QtCore.QRect(10, 260, 81, 17))
91 self.label_9.setObjectName(_fromUtf8("label_9"))
92 self.label_10 = QtGui.QLabel(self.centralWidget)
93 self.label_10.setGeometry(QtCore.QRect(10, 290, 81, 17))
94 self.label_10.setObjectName(_fromUtf8("label_10"))
95 self.label_11 = QtGui.QLabel(self.centralWidget)
96 self.label_11.setGeometry(QtCore.QRect(10, 320, 81, 17))
97 self.label_11.setObjectName(_fromUtf8("label_11"))
98 self.weightFTP = QtGui.QLineEdit(self.centralWidget)
99 self.weightFTP.setGeometry(QtCore.QRect(130, 230, 231, 27))
100 self.weightFTP.setObjectName(_fromUtf8("weightFTP"))
101 self.expcodeFTP = QtGui.QLineEdit(self.centralWidget)
102 self.expcodeFTP.setGeometry(QtCore.QRect(130, 260, 231, 27))
103 self.expcodeFTP.setObjectName(_fromUtf8("expcodeFTP"))
104 self.subexpFTP = QtGui.QLineEdit(self.centralWidget)
105 self.subexpFTP.setGeometry(QtCore.QRect(130, 290, 231, 27))
106 self.subexpFTP.setObjectName(_fromUtf8("subexpFTP"))
107 self.plotposFTP = QtGui.QLineEdit(self.centralWidget)
108 self.plotposFTP.setGeometry(QtCore.QRect(130, 320, 231, 27))
109 self.plotposFTP.setObjectName(_fromUtf8("plotposFTP"))
110 MainWindow.setCentralWidget(self.centralWidget)
111
112 self.retranslateUi(MainWindow)
113 QtCore.QMetaObject.connectSlotsByName(MainWindow)
114
115 def retranslateUi(self, MainWindow):
116 MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow", None))
117 self.label.setText(_translate("MainWindow", "Server:", None))
118 self.label_2.setText(_translate("MainWindow", "User Name:", None))
119 self.label_3.setText(_translate("MainWindow", "Password:", None))
120 self.label_4.setText(_translate("MainWindow", "Server Details", None))
121 self.label_5.setText(_translate("MainWindow", "User Details", None))
122 self.label_6.setText(_translate("MainWindow", "Remote Folder:", None))
123 self.ftpCancelButton.setText(_translate("MainWindow", "Cancel", None))
124 self.ftpOkButton.setText(_translate("MainWindow", "Ok", None))
125 self.label_7.setText(_translate("MainWindow", "Project Details", None))
126 self.label_8.setText(_translate("MainWindow", "Ftp_wei:", None))
127 self.label_9.setText(_translate("MainWindow", "Exp_code:", None))
128 self.label_10.setText(_translate("MainWindow", "Sub_exp:", None))
129 self.label_11.setText(_translate("MainWindow", "Plot_pos:", None))
130
131
132 if __name__ == "__main__":
133 import sys
134 app = QtGui.QApplication(sys.argv)
135 MainWindow = QtGui.QMainWindow()
136 ui = Ui_Ftp()
137 ui.setupUi(MainWindow)
138 MainWindow.show()
139 sys.exit(app.exec_())
140
@@ -1,95 +0,0
1 # -*- coding: utf-8 -*-
2
3 # Form implementation generated from reading ui file '/home/roj-idl71/SignalChain/initwindowv2.ui'
4 #
5 # Created: Wed Mar 6 15:32:39 2013
6 # by: PyQt4 UI code generator 4.8.6
7 #
8 # WARNING! All changes made in this file will be lost!
9
10 from PyQt4 import QtCore, QtGui
11
12 try:
13 _fromUtf8 = QtCore.QString.fromUtf8
14 except AttributeError:
15 _fromUtf8 = lambda s: s
16
17 import os
18 from schainpy.gui.figures import tools
19 from schainpy import __version__
20
21 INITIAL_MSG = "Signal Chain GUI - v%s" %__version__
22 FIGURES_PATH = tools.get_path()
23
24 class Ui_InitWindow(object):
25 def setupUi(self, Dialog):
26 Dialog.setObjectName(_fromUtf8("Dialog"))
27 Dialog.resize(652, 496)
28 Dialog.setWindowTitle(QtGui.QApplication.translate("Dialog", "Dialog", None, QtGui.QApplication.UnicodeUTF8))
29 self.gridLayout = QtGui.QGridLayout(Dialog)
30 self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
31 self.verticalLayout_3 = QtGui.QVBoxLayout()
32 self.verticalLayout_3.setObjectName(_fromUtf8("verticalLayout_3"))
33 self.verticalLayout_4 = QtGui.QVBoxLayout()
34 self.verticalLayout_4.setObjectName(_fromUtf8("verticalLayout_4"))
35 self.label_3 = QtGui.QLabel(Dialog)
36 font = QtGui.QFont()
37 font.setFamily(_fromUtf8("Cambria"))
38 font.setPointSize(22)
39 font.setBold(False)
40 font.setWeight(50)
41 self.label_3.setFont(font)
42 self.label_3.setText(QtGui.QApplication.translate("Dialog", INITIAL_MSG, None, QtGui.QApplication.UnicodeUTF8))
43 self.label_3.setObjectName(_fromUtf8("label_3"))
44 self.verticalLayout_4.addWidget(self.label_3)
45 self.line_2 = QtGui.QFrame(Dialog)
46 self.line_2.setFrameShape(QtGui.QFrame.HLine)
47 self.line_2.setFrameShadow(QtGui.QFrame.Sunken)
48 self.line_2.setObjectName(_fromUtf8("line_2"))
49 self.verticalLayout_4.addWidget(self.line_2)
50 self.label_4 = QtGui.QLabel(Dialog)
51 self.label_4.setText(_fromUtf8(""))
52 self.label_4.setPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH,"w.jpg") )))
53 self.label_4.setScaledContents(True)
54 self.label_4.setObjectName(_fromUtf8("label_4"))
55 self.verticalLayout_4.addWidget(self.label_4)
56 self.verticalLayout_3.addLayout(self.verticalLayout_4)
57 self.horizontalLayout_3 = QtGui.QHBoxLayout()
58 self.horizontalLayout_3.setObjectName(_fromUtf8("horizontalLayout_3"))
59 self.horizontalLayout_4 = QtGui.QHBoxLayout()
60 self.horizontalLayout_4.setObjectName(_fromUtf8("horizontalLayout_4"))
61 spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
62 self.horizontalLayout_4.addItem(spacerItem)
63 self.ExitBtn = QtGui.QPushButton(Dialog)
64 self.ExitBtn.setText(QtGui.QApplication.translate("Dialog", "Exit", None, QtGui.QApplication.UnicodeUTF8))
65 self.ExitBtn.setObjectName(_fromUtf8("ExitBtn"))
66 self.horizontalLayout_4.addWidget(self.ExitBtn)
67 self.ContinueBtn = QtGui.QPushButton(Dialog)
68 self.ContinueBtn.setText(QtGui.QApplication.translate("Dialog", "Continue", None, QtGui.QApplication.UnicodeUTF8))
69 self.ContinueBtn.setObjectName(_fromUtf8("ContinueBtn"))
70 self.horizontalLayout_4.addWidget(self.ContinueBtn)
71 spacerItem1 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
72 self.horizontalLayout_4.addItem(spacerItem1)
73 self.horizontalLayout_3.addLayout(self.horizontalLayout_4)
74 self.verticalLayout_3.addLayout(self.horizontalLayout_3)
75 self.gridLayout.addLayout(self.verticalLayout_3, 0, 0, 1, 1)
76
77 self.retranslateUi(Dialog)
78 QtCore.QMetaObject.connectSlotsByName(Dialog)
79
80 def retranslateUi(self, Dialog):
81 pass
82
83
84 if __name__ == "__main__":
85 import sys
86 app = QtGui.QApplication(sys.argv)
87 Dialog = QtGui.QDialog()
88 ui = Ui_InitWindow()
89 ui.setupUi(Dialog)
90 Dialog.show()
91 sys.exit(app.exec_())
92
93
94
95
@@ -1,352 +0,0
1 # -*- coding: utf-8 -*-
2
3 # Form implementation generated from reading ui file '/home/alex/ui/MainWindow_21_02_13_v49.ui'
4 #
5 # Created: Mon Mar 24 13:28:36 2014
6 # by: PyQt4 UI code generator 4.10
7 #
8 # WARNING! All changes made in this file will be lost!
9
10 from PyQt4 import QtCore, QtGui
11 from windows import *
12
13 try:
14 _fromUtf8 = QtCore.QString.fromUtf8
15 except AttributeError:
16 def _fromUtf8(s):
17 return s
18
19 try:
20 _encoding = QtGui.QApplication.UnicodeUTF8
21 def _translate(context, text, disambig):
22 return QtGui.QApplication.translate(context, text, disambig, _encoding)
23 except AttributeError:
24 def _translate(context, text, disambig):
25 return QtGui.QApplication.translate(context, text, disambig)
26
27 import os
28 from schainpy.gui.figures import tools
29 from schainpy import __version__
30
31 FIGURES_PATH = tools.get_path()
32
33 ICON_START = "start_green.png"
34 ICON_PAUSE = "pause_yellow.png"
35 ICON_STOP = "stop_red.png"
36
37 ICON_PAUSE_ENA = "restart_yellow.png"
38
39 ICON_START_DIS = "start.png"
40 ICON_PAUSE_DIS = "pause.png"
41 ICON_STOP_DIS = "stop.png"
42
43 class Ui_EnvWindow(object):
44
45 def changeStartIcon(self, started=False):
46
47 if started == False:
48 icon_name = ICON_START
49 else:
50 icon_name = ICON_START_DIS
51
52 iconStart = QtGui.QIcon()
53 iconStart.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH, icon_name) )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
54 self.actionStarToolbar.setIcon(iconStart)
55
56 return
57
58 def changePauseIcon(self, paused=False):
59
60 if paused == True:
61 icon_name = ICON_PAUSE_ENA
62 else:
63 icon_name = ICON_PAUSE
64
65 iconPause = QtGui.QIcon()
66 iconPause.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH, icon_name) )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
67 self.actionPauseToolbar.setIcon(iconPause)
68
69 return
70
71 def changeStopIcon(self, started=False):
72
73 if started == True:
74 icon_name = ICON_STOP
75 else:
76 icon_name = ICON_STOP_DIS
77
78 iconStop = QtGui.QIcon()
79 iconStop.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH, icon_name) )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
80 self.actionStopToolbar.setIcon(iconStop)
81
82 return
83
84 def setupUi(self, MainWindow):
85
86 self.paused=False
87
88 MainWindow.setObjectName(_fromUtf8("MainWindow"))
89 MainWindow.resize(1200, 800)
90
91 self.centralWidget = QtGui.QWidget(MainWindow)
92 self.centralWidget.setObjectName(_fromUtf8("centralWidget"))
93 self.gridLayout_16 = QtGui.QGridLayout(self.centralWidget)
94 self.gridLayout_16.setObjectName(_fromUtf8("gridLayout_16"))
95 self.splitter_2 = QtGui.QSplitter(self.centralWidget)
96 self.splitter_2.setOrientation(QtCore.Qt.Horizontal)
97 self.splitter_2.setObjectName(_fromUtf8("splitter_2"))
98 self.projectExplorerTree = QtGui.QTreeView(self.splitter_2)
99 self.projectExplorerTree.setObjectName(_fromUtf8("projectExplorerTree"))
100 self.splitter = QtGui.QSplitter(self.splitter_2)
101 self.splitter.setOrientation(QtCore.Qt.Vertical)
102 self.splitter.setObjectName(_fromUtf8("splitter"))
103 self.tabWidgetProject = QtGui.QTabWidget(self.splitter)
104 self.tabWidgetProject.setMinimumSize(QtCore.QSize(0, 278))
105 self.tabWidgetProject.setMaximumSize(QtCore.QSize(16777215, 16777215))
106 self.tabWidgetProject.setObjectName(_fromUtf8("tabWidgetProject"))
107
108 self.tabConsole = QtGui.QTabWidget(self.splitter)
109 self.tabConsole.setMinimumSize(QtCore.QSize(0, 0))
110 self.tabConsole.setObjectName(_fromUtf8("tabConsole"))
111 self.tab_5 = QtGui.QWidget()
112 self.tab_5.setObjectName(_fromUtf8("tab_5"))
113 self.gridLayout_4 = QtGui.QGridLayout(self.tab_5)
114 self.gridLayout_4.setObjectName(_fromUtf8("gridLayout_4"))
115 self.console = QtGui.QTextEdit(self.tab_5)
116 self.console.setObjectName(_fromUtf8("console"))
117 self.gridLayout_4.addWidget(self.console, 0, 0, 1, 1)
118 self.tabConsole.addTab(self.tab_5, _fromUtf8(""))
119 self.tabWidget = QtGui.QTabWidget(self.splitter_2)
120 self.tabWidget.setObjectName(_fromUtf8("tabWidget"))
121 self.tabProjectProperty = QtGui.QWidget()
122 self.tabProjectProperty.setObjectName(_fromUtf8("tabProjectProperty"))
123 self.gridLayout_8 = QtGui.QGridLayout(self.tabProjectProperty)
124 self.gridLayout_8.setObjectName(_fromUtf8("gridLayout_8"))
125 self.treeProjectProperties = QtGui.QTreeView(self.tabProjectProperty)
126 self.treeProjectProperties.setObjectName(_fromUtf8("treeProjectProperties"))
127 self.gridLayout_8.addWidget(self.treeProjectProperties, 0, 0, 1, 1)
128 self.tabWidget.addTab(self.tabProjectProperty, _fromUtf8(""))
129 self.gridLayout_16.addWidget(self.splitter_2, 1, 0, 1, 1)
130
131 MainWindow.setCentralWidget(self.centralWidget)
132 self.toolBar = QtGui.QToolBar(MainWindow)
133 self.toolBar.setObjectName(_fromUtf8("toolBar"))
134 MainWindow.addToolBar(QtCore.Qt.TopToolBarArea, self.toolBar)
135
136 self.menuBar = QtGui.QMenuBar(MainWindow)
137 self.menuBar.setGeometry(QtCore.QRect(0, 0, 1065, 25))
138 self.menuBar.setObjectName(_fromUtf8("menuBar"))
139 self.menuProject = QtGui.QMenu(self.menuBar)
140 self.menuProject.setObjectName(_fromUtf8("menuProject"))
141 self.menuRun = QtGui.QMenu(self.menuBar)
142 self.menuRun.setObjectName(_fromUtf8("menuRun"))
143 self.menuOptions = QtGui.QMenu(self.menuBar)
144 self.menuOptions.setObjectName(_fromUtf8("menuOptions"))
145 self.menuHelp = QtGui.QMenu(self.menuBar)
146 self.menuHelp.setObjectName(_fromUtf8("menuHelp"))
147 MainWindow.setMenuBar(self.menuBar)
148
149 iconOpen = QtGui.QIcon()
150 iconOpen.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH,"open.png") )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
151 iconCreate = QtGui.QIcon()
152 iconCreate.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH,"new.png") )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
153 iconSave = QtGui.QIcon()
154 iconSave.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH,"save.png") )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
155 iconStart = QtGui.QIcon()
156 iconStart.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH, ICON_START_DIS) )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
157 iconStop = QtGui.QIcon()
158 iconStop.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH, ICON_STOP_DIS) )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
159 iconPause = QtGui.QIcon()
160 iconPause.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH, ICON_PAUSE_DIS) )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
161 iconAddPU = QtGui.QIcon()
162 iconAddPU.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH,"branch.png") )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
163 iconClose = QtGui.QIcon()
164 iconClose.addPixmap(QtGui.QPixmap(_fromUtf8( os.path.join(FIGURES_PATH,"close.png") )), QtGui.QIcon.Normal, QtGui.QIcon.Off)
165
166
167 self.actionOpen = QtGui.QAction(MainWindow)
168 self.actionOpen.setIcon(iconOpen)
169 self.actionOpen.setObjectName(_fromUtf8("actionOpen"))
170 self.actionCreate = QtGui.QAction(MainWindow)
171 self.actionCreate.setIcon(iconCreate)
172 self.actionCreate.setObjectName(_fromUtf8("actionCreate"))
173 self.actionSave = QtGui.QAction(MainWindow)
174 self.actionSave.setIcon(iconSave)
175 self.actionSave.setObjectName(_fromUtf8("actionSave"))
176 self.actionClose = QtGui.QAction(MainWindow)
177 self.actionClose.setIcon(iconClose)
178 self.actionClose.setObjectName(_fromUtf8("actionClose"))
179 self.actionStart = QtGui.QAction(MainWindow)
180 self.actionStart.setIcon(iconStart)
181 self.actionStart.setObjectName(_fromUtf8("actionStart"))
182 self.actionPause = QtGui.QAction(MainWindow)
183 self.actionPause.setIcon(iconPause)
184 self.actionPause.setObjectName(_fromUtf8("actionPause"))
185 self.actionStop = QtGui.QAction(MainWindow)
186 self.actionStop.setIcon(iconStop)
187 self.actionStop.setObjectName(_fromUtf8("actionStop"))
188 self.actionAbout = QtGui.QAction(MainWindow)
189 self.actionAbout.setObjectName(_fromUtf8("actionAbout"))
190
191 self.actionOpenToolbar = QtGui.QAction(MainWindow)
192 self.actionOpenToolbar.setIcon(iconOpen)
193 self.actionOpenToolbar.setObjectName(_fromUtf8("actionOpenToolbar"))
194 self.actionCreateToolbar = QtGui.QAction(MainWindow)
195 self.actionCreateToolbar.setIcon(iconCreate)
196 self.actionCreateToolbar.setObjectName(_fromUtf8("actionCreateToolbar"))
197 self.actionSaveToolbar = QtGui.QAction(MainWindow)
198 self.actionSaveToolbar.setIcon(iconSave)
199 self.actionSaveToolbar.setObjectName(_fromUtf8("actionSaveToolbar"))
200 self.actionStarToolbar = QtGui.QAction(MainWindow)
201 self.actionStarToolbar.setIcon(iconStart)
202 self.actionStarToolbar.setObjectName(_fromUtf8("actionStarToolbar"))
203 self.actionStopToolbar = QtGui.QAction(MainWindow)
204 self.actionStopToolbar.setIcon(iconStop)
205 self.actionStopToolbar.setObjectName(_fromUtf8("actionStopToolbar"))
206 self.actionPauseToolbar = QtGui.QAction(MainWindow)
207 self.actionPauseToolbar.setIcon(iconPause)
208 self.actionPauseToolbar.setObjectName(_fromUtf8("actionPauseToolbar"))
209 self.actionAddPU = QtGui.QAction(MainWindow)
210 self.actionAddPU.setIcon(iconAddPU)
211 self.actionAddPU.setObjectName(_fromUtf8("actionAddPU"))
212 self.actionFTP = QtGui.QAction(MainWindow)
213 self.actionFTP.setObjectName(_fromUtf8("actionFTP"))
214 self.toolBar.addAction(self.actionOpenToolbar)
215 self.toolBar.addSeparator()
216 self.toolBar.addAction(self.actionCreateToolbar)
217 self.toolBar.addSeparator()
218 self.toolBar.addAction(self.actionAddPU)
219 self.toolBar.addSeparator()
220 self.toolBar.addAction(self.actionSaveToolbar)
221 self.toolBar.addSeparator()
222 self.toolBar.addAction(self.actionStarToolbar)
223 self.toolBar.addSeparator()
224 self.toolBar.addAction(self.actionPauseToolbar)
225 self.toolBar.addSeparator()
226 self.toolBar.addAction(self.actionStopToolbar)
227 self.toolBar.addSeparator()
228
229 # self.actionPause.triggered.connect(self.changePauseIcon)
230 # self.actionPauseToolbar.triggered.connect(self.changePauseIcon)
231
232 self.menuProject.addAction(self.actionOpen)
233 self.menuProject.addAction(self.actionCreate)
234 self.menuProject.addAction(self.actionSave)
235 self.menuProject.addAction(self.actionClose)
236 self.menuRun.addAction(self.actionStart)
237 self.menuRun.addAction(self.actionPause)
238 self.menuRun.addAction(self.actionStop)
239 self.menuOptions.addAction(self.actionFTP)
240 self.menuHelp.addAction(self.actionAbout)
241 self.menuBar.addAction(self.menuProject.menuAction())
242 self.menuBar.addAction(self.menuRun.menuAction())
243 self.menuBar.addAction(self.menuOptions.menuAction())
244 self.menuBar.addAction(self.menuHelp.menuAction())
245
246 self.tabConsole.setCurrentIndex(0)
247 self.tabWidget.setCurrentIndex(0)
248
249 def retranslateUi(self, MainWindow):
250
251 MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow", None))
252
253 self.tabConsole.setTabText(self.tabConsole.indexOf(self.tab_5), _translate("MainWindow", "Console", None))
254
255 self.tabWidget.setTabText(self.tabWidget.indexOf(self.tabProjectProperty), _translate("MainWindow", "Project Property", None))
256 self.toolBar.setWindowTitle(_translate("MainWindow", "toolBar", None))
257 self.menuProject.setTitle(_translate("MainWindow", "Project", None))
258 self.menuRun.setTitle(_translate("MainWindow", "Run", None))
259 self.menuOptions.setTitle(_translate("MainWindow", "Options", None))
260 self.menuHelp.setTitle(_translate("MainWindow", "Help", None))
261 self.actionOpen.setText(_translate("MainWindow", "Open", None))
262 self.actionCreate.setText(_translate("MainWindow", "Create", None))
263 self.actionSave.setText(_translate("MainWindow", "Save", None))
264 self.actionClose.setText(_translate("MainWindow", "Close", None))
265 self.actionStart.setText(_translate("MainWindow", "Start", None))
266 self.actionPause.setText(_translate("MainWindow", "Pause", None))
267 self.actionStop.setText(_translate("MainWindow", "Stop", None))
268 self.actionAbout.setText(_translate("MainWindow", "About SChain", None))
269 self.actionOpenToolbar.setText(_translate("MainWindow", "openToolbar", None))
270 self.actionOpenToolbar.setToolTip(_translate("MainWindow", "Open a project", None))
271 self.actionCreateToolbar.setText(_translate("MainWindow", "createToolbar", None))
272 self.actionCreateToolbar.setToolTip(_translate("MainWindow", "Create a new project", None))
273 self.actionSaveToolbar.setText(_translate("MainWindow", "saveToolbar", None))
274 self.actionSaveToolbar.setToolTip(_translate("MainWindow", "Save a project", None))
275 self.actionStarToolbar.setText(_translate("MainWindow", "starToolbar", None))
276 self.actionStarToolbar.setToolTip(_translate("MainWindow", "Start process", None))
277 self.actionStopToolbar.setText(_translate("MainWindow", "stopToolbar", None))
278 self.actionStopToolbar.setToolTip(_translate("MainWindow", "Stop process", None))
279 self.actionPauseToolbar.setText(_translate("MainWindow", "pauseToolbar", None))
280 self.actionPauseToolbar.setToolTip(_translate("MainWindow", "Pause process", None))
281 self.actionAddPU.setText(_translate("MainWindow", "Add Processing Unit", None))
282 self.actionFTP.setText(_translate("MainWindow", "FTP", None))
283
284 def closeEvent(self, event):
285
286 reply = QtGui.QMessageBox.question(self, 'Message',
287 "Are you sure to quit?", QtGui.QMessageBox.Yes |
288 QtGui.QMessageBox.No, QtGui.QMessageBox.No)
289 if reply == QtGui.QMessageBox.Yes:
290 event.accept()
291 else:
292 event.ignore()
293
294 def aboutEvent(self):
295 title = "Signal Chain Processing Software v%s" %__version__
296 message = """
297 Developed by:
298 Miguel Urco
299 miguel.urco@jro.igp.gob.pe
300 Jicamarca Radio Observatory
301 """
302 QtGui.QMessageBox.about(self, title, message)
303
304
305 class Ui_BasicWindow(Ui_EnvWindow, Ui_ProjectTab, Ui_VoltageTab, Ui_SpectraTab, Ui_SpectraHeisTab, Ui_CorrelationTab):
306
307 def setupUi(self, MainWindow):
308
309 Ui_EnvWindow.setupUi(self, MainWindow)
310
311 Ui_ProjectTab.setupUi(self)
312 Ui_VoltageTab.setupUi(self)
313 Ui_SpectraTab.setupUi(self)
314 Ui_SpectraHeisTab.setupUi(self)
315 Ui_CorrelationTab.setupUi(self)
316
317 self.retranslateUi(MainWindow)
318
319 QtCore.QMetaObject.connectSlotsByName(MainWindow)
320
321 def retranslateUi(self, MainWindow):
322
323 Ui_EnvWindow.retranslateUi(self, MainWindow)
324
325 Ui_ProjectTab.retranslateUi(self)
326 Ui_VoltageTab.retranslateUi(self)
327 Ui_SpectraTab.retranslateUi(self)
328 Ui_SpectraHeisTab.retranslateUi(self)
329 Ui_CorrelationTab.retranslateUi(self)
330
331
332 class Ui_AdvancedWindow(Ui_EnvWindow):
333
334 def setupUi(self, AdvancedWindow):
335
336 Ui_MainWindow.setupUi(self, AdvancedWindow)
337
338 def retranslateUi(self, AdvancedWindow):
339
340 Ui_MainWindow.retranslateUi(self, AdvancedWindow)
341
342
343
344 if __name__ == "__main__":
345 import sys
346 app = QtGui.QApplication(sys.argv)
347 MainWindow = QtGui.QMainWindow()
348 ui = Ui_BasicWindow()
349 ui.setupUi(MainWindow)
350 MainWindow.show()
351 sys.exit(app.exec_())
352
@@ -1,123 +0,0
1 # -*- coding: utf-8 -*-
2
3 # Form implementation generated from reading ui file '/home/alex/ui/unitProcess4.ui'
4 #
5 # Created: Fri May 24 05:23:03 2013
6 # by: PyQt4 UI code generator 4.10
7 #
8 # WARNING! All changes made in this file will be lost!
9
10 from PyQt4 import QtCore, QtGui
11
12 try:
13 _fromUtf8 = QtCore.QString.fromUtf8
14 except AttributeError:
15 def _fromUtf8(s):
16 return s
17
18 try:
19 _encoding = QtGui.QApplication.UnicodeUTF8
20 def _translate(context, text, disambig):
21 return QtGui.QApplication.translate(context, text, disambig, _encoding)
22 except AttributeError:
23 def _translate(context, text, disambig):
24 return QtGui.QApplication.translate(context, text, disambig)
25
26 class Ui_UnitProcess(object):
27 def setupUi(self, MainWindow):
28 MainWindow.setObjectName(_fromUtf8("MainWindow"))
29 MainWindow.resize(312, 195)
30 self.centralWidget = QtGui.QWidget(MainWindow)
31 self.centralWidget.setObjectName(_fromUtf8("centralWidget"))
32 self.gridLayout = QtGui.QGridLayout(self.centralWidget)
33 self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
34 self.inputLabel = QtGui.QLabel(self.centralWidget)
35 font = QtGui.QFont()
36 font.setPointSize(12)
37 font.setBold(False)
38 font.setWeight(50)
39 self.inputLabel.setFont(font)
40 self.inputLabel.setObjectName(_fromUtf8("inputLabel"))
41 self.gridLayout.addWidget(self.inputLabel, 2, 0, 1, 1)
42 self.unitPcancelbut = QtGui.QPushButton(self.centralWidget)
43 font = QtGui.QFont()
44 font.setBold(False)
45 font.setWeight(50)
46 self.unitPcancelbut.setFont(font)
47 self.unitPcancelbut.setObjectName(_fromUtf8("unitPcancelbut"))
48 self.gridLayout.addWidget(self.unitPcancelbut, 5, 2, 1, 2)
49 self.unitPokbut = QtGui.QPushButton(self.centralWidget)
50 font = QtGui.QFont()
51 font.setBold(False)
52 font.setWeight(50)
53 self.unitPokbut.setFont(font)
54 self.unitPokbut.setObjectName(_fromUtf8("unitPokbut"))
55 self.gridLayout.addWidget(self.unitPokbut, 5, 0, 1, 2)
56 self.typeLabel = QtGui.QLabel(self.centralWidget)
57 font = QtGui.QFont()
58 font.setPointSize(12)
59 font.setBold(False)
60 font.setWeight(50)
61 self.typeLabel.setFont(font)
62 self.typeLabel.setObjectName(_fromUtf8("typeLabel"))
63 self.gridLayout.addWidget(self.typeLabel, 3, 0, 1, 1)
64 self.nameUP = QtGui.QLabel(self.centralWidget)
65 font = QtGui.QFont()
66 font.setPointSize(13)
67 font.setBold(False)
68 font.setWeight(50)
69 self.nameUP.setFont(font)
70 self.nameUP.setObjectName(_fromUtf8("nameUP"))
71 self.gridLayout.addWidget(self.nameUP, 0, 1, 1, 2)
72 spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
73 self.gridLayout.addItem(spacerItem, 0, 3, 1, 1)
74 self.comboInputBox = QtGui.QComboBox(self.centralWidget)
75 font = QtGui.QFont()
76 font.setPointSize(12)
77 self.comboInputBox.setFont(font)
78 self.comboInputBox.setObjectName(_fromUtf8("comboInputBox"))
79 self.gridLayout.addWidget(self.comboInputBox, 2, 1, 1, 3)
80 self.comboTypeBox = QtGui.QComboBox(self.centralWidget)
81 font = QtGui.QFont()
82 font.setPointSize(12)
83 self.comboTypeBox.setFont(font)
84 self.comboTypeBox.setObjectName(_fromUtf8("comboTypeBox"))
85 self.comboTypeBox.addItem(_fromUtf8(""))
86 self.comboTypeBox.addItem(_fromUtf8(""))
87 self.comboTypeBox.addItem(_fromUtf8(""))
88 self.gridLayout.addWidget(self.comboTypeBox, 3, 1, 1, 3)
89 spacerItem1 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
90 self.gridLayout.addItem(spacerItem1, 0, 0, 1, 1)
91 spacerItem2 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
92 self.gridLayout.addItem(spacerItem2, 4, 0, 1, 1)
93 self.line = QtGui.QFrame(self.centralWidget)
94 self.line.setFrameShape(QtGui.QFrame.HLine)
95 self.line.setFrameShadow(QtGui.QFrame.Sunken)
96 self.line.setObjectName(_fromUtf8("line"))
97 self.gridLayout.addWidget(self.line, 1, 0, 1, 4)
98 MainWindow.setCentralWidget(self.centralWidget)
99
100 self.retranslateUi(MainWindow)
101 QtCore.QMetaObject.connectSlotsByName(MainWindow)
102
103 def retranslateUi(self, MainWindow):
104 MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow", None))
105 self.inputLabel.setText(_translate("MainWindow", "Input:", None))
106 self.unitPcancelbut.setText(_translate("MainWindow", "Cancel", None))
107 self.unitPokbut.setText(_translate("MainWindow", "Ok", None))
108 self.typeLabel.setText(_translate("MainWindow", "Type:", None))
109 self.nameUP.setText(_translate("MainWindow", "Processing Unit", None))
110 self.comboTypeBox.setItemText(0, _translate("MainWindow", "Voltage", None))
111 self.comboTypeBox.setItemText(1, _translate("MainWindow", "Spectra", None))
112 self.comboTypeBox.setItemText(2, _translate("MainWindow", "Correlation", None))
113
114
115 if __name__ == "__main__":
116 import sys
117 app = QtGui.QApplication(sys.argv)
118 MainWindow = QtGui.QMainWindow()
119 ui = Ui_UnitProcess()
120 ui.setupUi(MainWindow)
121 MainWindow.show()
122 sys.exit(app.exec_())
123
@@ -1,72 +0,0
1 # -*- coding: utf-8 -*-
2
3 # Form implementation generated from reading ui file 'C:\Users\alex\ericworkspace\UIDOS\window.ui'
4 #
5 # Created: Thu Dec 06 08:56:59 2012
6 # by: PyQt4 UI code generator 4.9.4
7 #
8 # WARNING! All changes made in this file will be lost!
9
10 from PyQt4 import QtCore, QtGui
11
12 try:
13 _fromUtf8 = QtCore.QString.fromUtf8
14 except AttributeError:
15 _fromUtf8 = lambda s: s
16
17 class Ui_window(object):
18 def setupUi(self, MainWindow):
19 MainWindow.setObjectName(_fromUtf8("MainWindow"))
20 MainWindow.resize(220, 198)
21 self.centralWidget = QtGui.QWidget(MainWindow)
22 self.centralWidget.setObjectName(_fromUtf8("centralWidget"))
23 self.label = QtGui.QLabel(self.centralWidget)
24 self.label.setGeometry(QtCore.QRect(20, 10, 131, 20))
25 font = QtGui.QFont()
26 font.setPointSize(12)
27 self.label.setFont(font)
28 self.label.setObjectName(_fromUtf8("label"))
29 self.label_2 = QtGui.QLabel(self.centralWidget)
30 self.label_2.setGeometry(QtCore.QRect(20, 60, 131, 20))
31 font = QtGui.QFont()
32 font.setPointSize(12)
33 self.label_2.setFont(font)
34 self.label_2.setObjectName(_fromUtf8("label_2"))
35 self.cancelButton = QtGui.QPushButton(self.centralWidget)
36 self.cancelButton.setGeometry(QtCore.QRect(150, 160, 51, 23))
37 self.cancelButton.setObjectName(_fromUtf8("cancelButton"))
38 self.okButton = QtGui.QPushButton(self.centralWidget)
39 self.okButton.setGeometry(QtCore.QRect(80, 160, 61, 23))
40 self.okButton.setObjectName(_fromUtf8("okButton"))
41 self.proyectNameLine = QtGui.QLineEdit(self.centralWidget)
42 self.proyectNameLine.setGeometry(QtCore.QRect(20, 30, 181, 20))
43 self.proyectNameLine.setObjectName(_fromUtf8("proyectNameLine"))
44 self.descriptionTextEdit = QtGui.QTextEdit(self.centralWidget)
45 self.descriptionTextEdit.setGeometry(QtCore.QRect(20, 80, 181, 71))
46 self.descriptionTextEdit.setObjectName(_fromUtf8("descriptionTextEdit"))
47 self.saveButton = QtGui.QPushButton(self.centralWidget)
48 self.saveButton.setGeometry(QtCore.QRect(20, 160, 51, 23))
49 self.saveButton.setObjectName(_fromUtf8("saveButton"))
50 MainWindow.setCentralWidget(self.centralWidget)
51
52 self.retranslateUi(MainWindow)
53 QtCore.QMetaObject.connectSlotsByName(MainWindow)
54
55 def retranslateUi(self, MainWindow):
56 MainWindow.setWindowTitle(QtGui.QApplication.translate("MainWindow", "MainWindow", None, QtGui.QApplication.UnicodeUTF8))
57 self.label.setText(QtGui.QApplication.translate("MainWindow", "Project Name:", None, QtGui.QApplication.UnicodeUTF8))
58 self.label_2.setText(QtGui.QApplication.translate("MainWindow", "Description :", None, QtGui.QApplication.UnicodeUTF8))
59 self.cancelButton.setText(QtGui.QApplication.translate("MainWindow", "Cancel", None, QtGui.QApplication.UnicodeUTF8))
60 self.okButton.setText(QtGui.QApplication.translate("MainWindow", "Ok", None, QtGui.QApplication.UnicodeUTF8))
61 self.saveButton.setText(QtGui.QApplication.translate("MainWindow", "Save", None, QtGui.QApplication.UnicodeUTF8))
62
63
64 if __name__ == "__main__":
65 import sys
66 app = QtGui.QApplication(sys.argv)
67 MainWindow = QtGui.QMainWindow()
68 ui = Ui_window()
69 ui.setupUi(MainWindow)
70 MainWindow.show()
71 sys.exit(app.exec_())
72
@@ -1,115 +0,0
1 # -*- coding: utf-8 -*-
2
3 # Form implementation generated from reading ui file '/home/alex/ui/workspacev5.ui'
4 #
5 # Created: Sun May 12 16:45:47 2013
6 # by: PyQt4 UI code generator 4.10
7 #
8 # WARNING! All changes made in this file will be lost!
9
10 from PyQt4 import QtCore, QtGui
11
12 try:
13 _fromUtf8 = QtCore.QString.fromUtf8
14 except AttributeError:
15 def _fromUtf8(s):
16 return s
17
18 try:
19 _encoding = QtGui.QApplication.UnicodeUTF8
20 def _translate(context, text, disambig):
21 return QtGui.QApplication.translate(context, text, disambig, _encoding)
22 except AttributeError:
23 def _translate(context, text, disambig):
24 return QtGui.QApplication.translate(context, text, disambig)
25
26 class Ui_Workspace(object):
27 def setupUi(self, Dialog):
28 Dialog.setObjectName(_fromUtf8("Dialog"))
29 Dialog.setEnabled(True)
30 Dialog.resize(730, 295)
31 Dialog.setMinimumSize(QtCore.QSize(730, 295))
32 Dialog.setMaximumSize(QtCore.QSize(730, 295))
33 self.dirLabel = QtGui.QTextEdit(Dialog)
34 self.dirLabel.setGeometry(QtCore.QRect(0, 0, 731, 71))
35 self.dirLabel.setReadOnly(True)
36 self.dirLabel.setObjectName(_fromUtf8("dirLabel"))
37 self.dirWork = QtGui.QLabel(Dialog)
38 self.dirWork.setGeometry(QtCore.QRect(10, 90, 91, 16))
39 font = QtGui.QFont()
40 font.setPointSize(11)
41 self.dirWork.setFont(font)
42 self.dirWork.setObjectName(_fromUtf8("dirWork"))
43 self.dirComBox = QtGui.QComboBox(Dialog)
44 self.dirComBox.setGeometry(QtCore.QRect(110, 80, 501, 31))
45 palette = QtGui.QPalette()
46 brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
47 brush.setStyle(QtCore.Qt.SolidPattern)
48 palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Button, brush)
49 brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
50 brush.setStyle(QtCore.Qt.SolidPattern)
51 palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Button, brush)
52 brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
53 brush.setStyle(QtCore.Qt.SolidPattern)
54 palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Button, brush)
55 self.dirComBox.setPalette(palette)
56 self.dirComBox.setObjectName(_fromUtf8("dirComBox"))
57 self.dirToolPath = QtGui.QToolButton(Dialog)
58 self.dirToolPath.setGeometry(QtCore.QRect(620, 80, 101, 31))
59 font = QtGui.QFont()
60 font.setPointSize(11)
61 self.dirToolPath.setFont(font)
62 self.dirToolPath.setObjectName(_fromUtf8("dirToolPath"))
63 self.widget = QtGui.QWidget(Dialog)
64 self.widget.setGeometry(QtCore.QRect(10, 120, 711, 121))
65 self.widget.setObjectName(_fromUtf8("widget"))
66 self.horizontalLayout_3 = QtGui.QHBoxLayout(self.widget)
67 self.horizontalLayout_3.setMargin(0)
68 self.horizontalLayout_3.setObjectName(_fromUtf8("horizontalLayout_3"))
69 spacerItem = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
70 self.horizontalLayout_3.addItem(spacerItem)
71 spacerItem1 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
72 self.horizontalLayout_3.addItem(spacerItem1)
73 spacerItem2 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
74 self.horizontalLayout_3.addItem(spacerItem2)
75 spacerItem3 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
76 self.horizontalLayout_3.addItem(spacerItem3)
77 spacerItem4 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
78 self.horizontalLayout_3.addItem(spacerItem4)
79 self.dirCancelBtn = QtGui.QPushButton(Dialog)
80 self.dirCancelBtn.setGeometry(QtCore.QRect(490, 250, 111, 31))
81 self.dirCancelBtn.setObjectName(_fromUtf8("dirCancelBtn"))
82 self.dirOkBtn = QtGui.QPushButton(Dialog)
83 self.dirOkBtn.setGeometry(QtCore.QRect(610, 250, 111, 31))
84 font = QtGui.QFont()
85 font.setPointSize(11)
86 self.dirOkBtn.setFont(font)
87 self.dirOkBtn.setObjectName(_fromUtf8("dirOkBtn"))
88
89 self.retranslateUi(Dialog)
90 QtCore.QMetaObject.connectSlotsByName(Dialog)
91
92 def retranslateUi(self, Dialog):
93 Dialog.setWindowTitle(_translate("Dialog", "Dialog", None))
94 self.dirLabel.setHtml(_translate("Dialog", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
95 "<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
96 "p, li { white-space: pre-wrap; }\n"
97 "</style></head><body style=\" font-family:\'Ubuntu\'; font-size:11pt; font-weight:400; font-style:normal;\">\n"
98 "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Cantarell\'; font-size:12pt; font-weight:600;\">Select a workspace</span></p>\n"
99 "<p align=\"justify\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Cantarell\';\">Signal Chain stores your projects in a folder called a workspace.</span></p>\n"
100 "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Cantarell\';\">Choose a workspace folder to use for this session.</span></p></body></html>", None))
101 self.dirWork.setText(_translate("Dialog", "Workspace :", None))
102 self.dirToolPath.setText(_translate("Dialog", "Browse...", None))
103 self.dirCancelBtn.setText(_translate("Dialog", "Cancel", None))
104 self.dirOkBtn.setText(_translate("Dialog", "OK", None))
105
106
107 if __name__ == "__main__":
108 import sys
109 app = QtGui.QApplication(sys.argv)
110 Dialog = QtGui.QDialog()
111 ui = Ui_Workspace()
112 ui.setupUi(Dialog)
113 Dialog.show()
114 sys.exit(app.exec_())
115
This diff has been collapsed as it changes many lines, (1765 lines changed) Show them Hide them
@@ -1,1765 +0,0
1 <?xml version="1.0" encoding="UTF-8"?>
2 <ui version="4.0">
3 <class>MainWindow</class>
4 <widget class="QMainWindow" name="MainWindow">
5 <property name="geometry">
6 <rect>
7 <x>0</x>
8 <y>0</y>
9 <width>1065</width>
10 <height>711</height>
11 </rect>
12 </property>
13 <property name="windowTitle">
14 <string>MainWindow</string>
15 </property>
16 <widget class="QWidget" name="centralWidget">
17 <layout class="QGridLayout" name="gridLayout_16">
18 <item row="0" column="0">
19 <widget class="QSplitter" name="splitter_2">
20 <property name="orientation">
21 <enum>Qt::Horizontal</enum>
22 </property>
23 <widget class="QTreeView" name="treeProjectExplorer"/>
24 <widget class="QSplitter" name="splitter">
25 <property name="orientation">
26 <enum>Qt::Vertical</enum>
27 </property>
28 <widget class="QTabWidget" name="tabWidgetProject">
29 <property name="minimumSize">
30 <size>
31 <width>0</width>
32 <height>278</height>
33 </size>
34 </property>
35 <property name="maximumSize">
36 <size>
37 <width>16777215</width>
38 <height>16777215</height>
39 </size>
40 </property>
41 <property name="currentIndex">
42 <number>0</number>
43 </property>
44 <widget class="QWidget" name="tabProject">
45 <attribute name="title">
46 <string>Project</string>
47 </attribute>
48 <layout class="QGridLayout" name="gridLayout_15">
49 <item row="0" column="0">
50 <widget class="QFrame" name="frame">
51 <property name="frameShape">
52 <enum>QFrame::StyledPanel</enum>
53 </property>
54 <property name="frameShadow">
55 <enum>QFrame::Raised</enum>
56 </property>
57 <layout class="QGridLayout" name="gridLayout_2">
58 <item row="0" column="0">
59 <widget class="QLabel" name="label">
60 <property name="text">
61 <string>Project Name :</string>
62 </property>
63 </widget>
64 </item>
65 <item row="0" column="1" colspan="8">
66 <widget class="QLineEdit" name="proName"/>
67 </item>
68 <item row="1" column="0">
69 <widget class="QLabel" name="label_11">
70 <property name="text">
71 <string>DataType :</string>
72 </property>
73 </widget>
74 </item>
75 <item row="1" column="1" colspan="5">
76 <widget class="QComboBox" name="proComDataType">
77 <item>
78 <property name="text">
79 <string>Voltage</string>
80 </property>
81 </item>
82 <item>
83 <property name="text">
84 <string>Spectra</string>
85 </property>
86 </item>
87 </widget>
88 </item>
89 <item row="1" column="6" colspan="3">
90 <widget class="QLineEdit" name="proDataType"/>
91 </item>
92 <item row="2" column="0">
93 <widget class="QLabel" name="label_15">
94 <property name="text">
95 <string>DataPath :</string>
96 </property>
97 </widget>
98 </item>
99 <item row="2" column="1">
100 <widget class="QToolButton" name="proToolPath">
101 <property name="text">
102 <string>...</string>
103 </property>
104 </widget>
105 </item>
106 <item row="2" column="2" colspan="7">
107 <widget class="QLineEdit" name="proDataPath"/>
108 </item>
109 <item row="3" column="0">
110 <widget class="QLabel" name="label_23">
111 <property name="text">
112 <string>Read Mode:</string>
113 </property>
114 </widget>
115 </item>
116 <item row="3" column="1" colspan="2">
117 <widget class="QComboBox" name="proComReadMode">
118 <item>
119 <property name="text">
120 <string>Off Line</string>
121 </property>
122 </item>
123 <item>
124 <property name="text">
125 <string>On Line</string>
126 </property>
127 </item>
128 </widget>
129 </item>
130 <item row="3" column="5" colspan="2">
131 <widget class="QLabel" name="label_33">
132 <property name="text">
133 <string>Delay:</string>
134 </property>
135 </widget>
136 </item>
137 <item row="3" column="8">
138 <widget class="QLineEdit" name="proDelay"/>
139 </item>
140 <item row="4" column="0">
141 <widget class="QLabel" name="label_32">
142 <property name="text">
143 <string>Walk :</string>
144 </property>
145 </widget>
146 </item>
147 <item row="4" column="1" colspan="8">
148 <widget class="QComboBox" name="proComWalk">
149 <item>
150 <property name="text">
151 <string>Search 0</string>
152 </property>
153 </item>
154 <item>
155 <property name="text">
156 <string>Search 1</string>
157 </property>
158 </item>
159 </widget>
160 </item>
161 <item row="5" column="0" colspan="9">
162 <widget class="QPushButton" name="proLoadButton">
163 <property name="text">
164 <string>Load</string>
165 </property>
166 </widget>
167 </item>
168 <item row="3" column="3">
169 <widget class="QLabel" name="label_10">
170 <property name="text">
171 <string>Set:</string>
172 </property>
173 </widget>
174 </item>
175 <item row="3" column="4">
176 <widget class="QLineEdit" name="proSet"/>
177 </item>
178 </layout>
179 </widget>
180 </item>
181 <item row="1" column="0">
182 <widget class="QFrame" name="frame_2">
183 <property name="frameShape">
184 <enum>QFrame::StyledPanel</enum>
185 </property>
186 <property name="frameShadow">
187 <enum>QFrame::Raised</enum>
188 </property>
189 <layout class="QGridLayout" name="gridLayout_10">
190 <item row="0" column="0">
191 <widget class="QLabel" name="label_27">
192 <property name="text">
193 <string>Star Date:</string>
194 </property>
195 </widget>
196 </item>
197 <item row="0" column="1">
198 <widget class="QComboBox" name="proComStartDate"/>
199 </item>
200 <item row="1" column="0">
201 <widget class="QLabel" name="label_28">
202 <property name="text">
203 <string>End Date:</string>
204 </property>
205 </widget>
206 </item>
207 <item row="1" column="1">
208 <widget class="QComboBox" name="proComEndDate"/>
209 </item>
210 <item row="2" column="0">
211 <widget class="QLabel" name="label_2">
212 <property name="text">
213 <string>Start Time:</string>
214 </property>
215 </widget>
216 </item>
217 <item row="2" column="1">
218 <widget class="QTimeEdit" name="proStartTime"/>
219 </item>
220 <item row="3" column="0">
221 <widget class="QLabel" name="label_3">
222 <property name="text">
223 <string>End Time:</string>
224 </property>
225 </widget>
226 </item>
227 <item row="3" column="1">
228 <widget class="QTimeEdit" name="proEndTime"/>
229 </item>
230 <item row="4" column="0">
231 <widget class="QLabel" name="label_30">
232 <property name="text">
233 <string>Description:</string>
234 </property>
235 </widget>
236 </item>
237 <item row="4" column="1">
238 <widget class="QTextEdit" name="proDescription"/>
239 </item>
240 </layout>
241 </widget>
242 </item>
243 <item row="2" column="0">
244 <widget class="QFrame" name="frame_3">
245 <property name="frameShape">
246 <enum>QFrame::StyledPanel</enum>
247 </property>
248 <property name="frameShadow">
249 <enum>QFrame::Raised</enum>
250 </property>
251 <layout class="QGridLayout" name="gridLayout_14">
252 <item row="0" column="0">
253 <widget class="QPushButton" name="proOk">
254 <property name="text">
255 <string>Ok</string>
256 </property>
257 </widget>
258 </item>
259 <item row="0" column="1">
260 <widget class="QPushButton" name="proClear">
261 <property name="text">
262 <string>Clear</string>
263 </property>
264 </widget>
265 </item>
266 </layout>
267 </widget>
268 </item>
269 </layout>
270 </widget>
271 <widget class="QWidget" name="tabVoltage">
272 <attribute name="title">
273 <string>Voltage</string>
274 </attribute>
275 <layout class="QGridLayout" name="gridLayout_3">
276 <item row="1" column="1">
277 <widget class="QFrame" name="frame_4">
278 <property name="frameShape">
279 <enum>QFrame::StyledPanel</enum>
280 </property>
281 <property name="frameShadow">
282 <enum>QFrame::Raised</enum>
283 </property>
284 <layout class="QGridLayout" name="gridLayout_17">
285 <item row="0" column="0">
286 <widget class="QPushButton" name="volOpOk">
287 <property name="text">
288 <string>Ok</string>
289 </property>
290 </widget>
291 </item>
292 <item row="0" column="1">
293 <widget class="QPushButton" name="volGraphClear">
294 <property name="text">
295 <string>Clear</string>
296 </property>
297 </widget>
298 </item>
299 </layout>
300 </widget>
301 </item>
302 <item row="0" column="1">
303 <widget class="QTabWidget" name="tabWidgetVoltage">
304 <property name="currentIndex">
305 <number>0</number>
306 </property>
307 <widget class="QWidget" name="tabopVoltage">
308 <attribute name="title">
309 <string>Operation</string>
310 </attribute>
311 <layout class="QGridLayout" name="gridLayout">
312 <item row="4" column="4">
313 <widget class="QLineEdit" name="volOpHeights"/>
314 </item>
315 <item row="4" column="0" colspan="3">
316 <widget class="QComboBox" name="volOpComHeights">
317 <item>
318 <property name="text">
319 <string>Value</string>
320 </property>
321 </item>
322 <item>
323 <property name="text">
324 <string>Index</string>
325 </property>
326 </item>
327 </widget>
328 </item>
329 <item row="2" column="0" colspan="3">
330 <widget class="QComboBox" name="volOpComChannels">
331 <item>
332 <property name="text">
333 <string>Value</string>
334 </property>
335 </item>
336 <item>
337 <property name="text">
338 <string>Index</string>
339 </property>
340 </item>
341 </widget>
342 </item>
343 <item row="6" column="0" colspan="3">
344 <widget class="QCheckBox" name="volOpCebProfile">
345 <property name="text">
346 <string>Profile Selector</string>
347 </property>
348 </widget>
349 </item>
350 <item row="7" column="0" colspan="3">
351 <widget class="QComboBox" name="volOpComProfile">
352 <item>
353 <property name="text">
354 <string>Profile List</string>
355 </property>
356 </item>
357 <item>
358 <property name="text">
359 <string>Profile Range List</string>
360 </property>
361 </item>
362 </widget>
363 </item>
364 <item row="8" column="0" colspan="3">
365 <widget class="QCheckBox" name="volOpCebDecodification">
366 <property name="text">
367 <string>Decoder</string>
368 </property>
369 </widget>
370 </item>
371 <item row="11" column="0" colspan="3">
372 <widget class="QCheckBox" name="volOpCebCohInt">
373 <property name="text">
374 <string>Coherent Integration</string>
375 </property>
376 </widget>
377 </item>
378 <item row="7" column="4">
379 <widget class="QLineEdit" name="volOpProfile"/>
380 </item>
381 <item row="5" column="4">
382 <widget class="QLineEdit" name="volOpFilter"/>
383 </item>
384 <item row="6" column="4">
385 <spacer name="horizontalSpacer_4">
386 <property name="orientation">
387 <enum>Qt::Horizontal</enum>
388 </property>
389 <property name="sizeHint" stdset="0">
390 <size>
391 <width>40</width>
392 <height>20</height>
393 </size>
394 </property>
395 </spacer>
396 </item>
397 <item row="8" column="4">
398 <spacer name="horizontalSpacer_6">
399 <property name="orientation">
400 <enum>Qt::Horizontal</enum>
401 </property>
402 <property name="sizeHint" stdset="0">
403 <size>
404 <width>40</width>
405 <height>20</height>
406 </size>
407 </property>
408 </spacer>
409 </item>
410 <item row="3" column="4">
411 <spacer name="horizontalSpacer_5">
412 <property name="orientation">
413 <enum>Qt::Horizontal</enum>
414 </property>
415 <property name="sizeHint" stdset="0">
416 <size>
417 <width>40</width>
418 <height>20</height>
419 </size>
420 </property>
421 </spacer>
422 </item>
423 <item row="2" column="4">
424 <widget class="QLineEdit" name="volOpChannel"/>
425 </item>
426 <item row="9" column="2">
427 <widget class="QLabel" name="label_4">
428 <property name="text">
429 <string>Code:</string>
430 </property>
431 </widget>
432 </item>
433 <item row="1" column="0" colspan="3">
434 <widget class="QCheckBox" name="volOpCebChannels">
435 <property name="text">
436 <string>Select Channels</string>
437 </property>
438 </widget>
439 </item>
440 <item row="3" column="0" colspan="3">
441 <widget class="QCheckBox" name="volOpCebHeights">
442 <property name="text">
443 <string>Select Heights</string>
444 </property>
445 </widget>
446 </item>
447 <item row="5" column="0" colspan="3">
448 <widget class="QCheckBox" name="volOpCebFilter">
449 <property name="text">
450 <string>Filter</string>
451 </property>
452 </widget>
453 </item>
454 <item row="0" column="4">
455 <widget class="QLineEdit" name="volOpRadarfrequency"/>
456 </item>
457 <item row="0" column="0" colspan="3">
458 <widget class="QCheckBox" name="volOpCebRadarfrequency">
459 <property name="text">
460 <string>Radar Frequency</string>
461 </property>
462 </widget>
463 </item>
464 <item row="10" column="2">
465 <widget class="QLabel" name="label_5">
466 <property name="text">
467 <string>Mode:</string>
468 </property>
469 </widget>
470 </item>
471 <item row="1" column="4">
472 <spacer name="horizontalSpacer_3">
473 <property name="orientation">
474 <enum>Qt::Horizontal</enum>
475 </property>
476 <property name="sizeHint" stdset="0">
477 <size>
478 <width>40</width>
479 <height>20</height>
480 </size>
481 </property>
482 </spacer>
483 </item>
484 <item row="11" column="4">
485 <widget class="QLineEdit" name="volOpCohInt"/>
486 </item>
487 <item row="9" column="4">
488 <widget class="QComboBox" name="volOpComCode">
489 <item>
490 <property name="text">
491 <string>Barker 3</string>
492 </property>
493 </item>
494 <item>
495 <property name="text">
496 <string>Barker 4</string>
497 </property>
498 </item>
499 <item>
500 <property name="text">
501 <string>Barker 5</string>
502 </property>
503 </item>
504 <item>
505 <property name="text">
506 <string>Barker 7</string>
507 </property>
508 </item>
509 <item>
510 <property name="text">
511 <string>Barker 11</string>
512 </property>
513 </item>
514 <item>
515 <property name="text">
516 <string>Barker 13</string>
517 </property>
518 </item>
519 <item>
520 <property name="text">
521 <string>Barker 3 + Comp.</string>
522 </property>
523 </item>
524 <item>
525 <property name="text">
526 <string>Barker 4 + Comp.</string>
527 </property>
528 </item>
529 <item>
530 <property name="text">
531 <string>Barker 5 + Comp.</string>
532 </property>
533 </item>
534 <item>
535 <property name="text">
536 <string>Barker 7 + Comp.</string>
537 </property>
538 </item>
539 <item>
540 <property name="text">
541 <string>Barker 11+ Comp.</string>
542 </property>
543 </item>
544 <item>
545 <property name="text">
546 <string>Barker 13+ Comp.</string>
547 </property>
548 </item>
549 <item>
550 <property name="text">
551 <string>None</string>
552 </property>
553 </item>
554 </widget>
555 </item>
556 <item row="10" column="4">
557 <widget class="QComboBox" name="volOpComMode">
558 <item>
559 <property name="text">
560 <string>Time</string>
561 </property>
562 </item>
563 <item>
564 <property name="text">
565 <string>Freq 1</string>
566 </property>
567 </item>
568 </widget>
569 </item>
570 </layout>
571 </widget>
572 <widget class="QWidget" name="tabgraphVoltage">
573 <attribute name="title">
574 <string>Graphics</string>
575 </attribute>
576 <layout class="QGridLayout" name="gridLayout_6">
577 <item row="12" column="3">
578 <spacer name="verticalSpacer_2">
579 <property name="orientation">
580 <enum>Qt::Vertical</enum>
581 </property>
582 <property name="sizeHint" stdset="0">
583 <size>
584 <width>20</width>
585 <height>40</height>
586 </size>
587 </property>
588 </spacer>
589 </item>
590 <item row="9" column="1" colspan="6">
591 <widget class="QLineEdit" name="volGraphfreqrange"/>
592 </item>
593 <item row="2" column="1" colspan="6">
594 <widget class="QLineEdit" name="volGraphPrefix"/>
595 </item>
596 <item row="1" column="5" colspan="2">
597 <widget class="QToolButton" name="volGraphToolPath">
598 <property name="text">
599 <string>...</string>
600 </property>
601 </widget>
602 </item>
603 <item row="1" column="1" colspan="4">
604 <widget class="QLineEdit" name="volGraphPath"/>
605 </item>
606 <item row="6" column="0">
607 <widget class="QLabel" name="label_14">
608 <property name="text">
609 <string>Scope</string>
610 </property>
611 </widget>
612 </item>
613 <item row="3" column="3">
614 <spacer name="verticalSpacer">
615 <property name="orientation">
616 <enum>Qt::Vertical</enum>
617 </property>
618 <property name="sizeHint" stdset="0">
619 <size>
620 <width>20</width>
621 <height>40</height>
622 </size>
623 </property>
624 </spacer>
625 </item>
626 <item row="8" column="0">
627 <widget class="QLabel" name="label_8">
628 <property name="text">
629 <string>Channel List</string>
630 </property>
631 </widget>
632 </item>
633 <item row="4" column="3">
634 <widget class="QLabel" name="label_49">
635 <property name="text">
636 <string>Show</string>
637 </property>
638 </widget>
639 </item>
640 <item row="9" column="0">
641 <widget class="QLabel" name="label_51">
642 <property name="text">
643 <string>Freq/Vel</string>
644 </property>
645 </widget>
646 </item>
647 <item row="6" column="3">
648 <widget class="QCheckBox" name="volGraphCebshow">
649 <property name="text">
650 <string/>
651 </property>
652 </widget>
653 </item>
654 <item row="1" column="0">
655 <widget class="QLabel" name="label_12">
656 <property name="text">
657 <string>Path :</string>
658 </property>
659 </widget>
660 </item>
661 <item row="2" column="0">
662 <widget class="QLabel" name="label_13">
663 <property name="text">
664 <string>Prefix:</string>
665 </property>
666 </widget>
667 </item>
668 <item row="11" column="0">
669 <widget class="QLabel" name="label_52">
670 <property name="text">
671 <string>Height range</string>
672 </property>
673 </widget>
674 </item>
675 <item row="14" column="5" colspan="2">
676 <spacer name="horizontalSpacer_10">
677 <property name="orientation">
678 <enum>Qt::Horizontal</enum>
679 </property>
680 <property name="sizeHint" stdset="0">
681 <size>
682 <width>40</width>
683 <height>12</height>
684 </size>
685 </property>
686 </spacer>
687 </item>
688 <item row="14" column="3">
689 <spacer name="horizontalSpacer_9">
690 <property name="orientation">
691 <enum>Qt::Horizontal</enum>
692 </property>
693 <property name="sizeHint" stdset="0">
694 <size>
695 <width>18</width>
696 <height>12</height>
697 </size>
698 </property>
699 </spacer>
700 </item>
701 <item row="8" column="1" colspan="6">
702 <widget class="QLineEdit" name="volGraphChannelList"/>
703 </item>
704 <item row="11" column="1" colspan="6">
705 <widget class="QLineEdit" name="volGraphHeightrange"/>
706 </item>
707 <item row="4" column="4">
708 <widget class="QLabel" name="label_50">
709 <property name="text">
710 <string>Save</string>
711 </property>
712 </widget>
713 </item>
714 <item row="6" column="4">
715 <widget class="QCheckBox" name="volGraphCebSave">
716 <property name="text">
717 <string/>
718 </property>
719 </widget>
720 </item>
721 </layout>
722 </widget>
723 <widget class="QWidget" name="taboutputVoltage">
724 <attribute name="title">
725 <string>Output</string>
726 </attribute>
727 <layout class="QGridLayout" name="gridLayout_12">
728 <item row="0" column="0">
729 <widget class="QLabel" name="label_36">
730 <property name="text">
731 <string>Type:</string>
732 </property>
733 </widget>
734 </item>
735 <item row="1" column="0">
736 <widget class="QLabel" name="label_37">
737 <property name="text">
738 <string>Path:</string>
739 </property>
740 </widget>
741 </item>
742 <item row="1" column="2">
743 <widget class="QLineEdit" name="volOutputPath"/>
744 </item>
745 <item row="1" column="3">
746 <widget class="QToolButton" name="volOutputToolPath">
747 <property name="text">
748 <string>...</string>
749 </property>
750 </widget>
751 </item>
752 <item row="0" column="2" colspan="2">
753 <widget class="QComboBox" name="volOutputComData">
754 <item>
755 <property name="text">
756 <string>.rawdata</string>
757 </property>
758 </item>
759 </widget>
760 </item>
761 <item row="5" column="2">
762 <spacer name="verticalSpacer_6">
763 <property name="orientation">
764 <enum>Qt::Vertical</enum>
765 </property>
766 <property name="sizeHint" stdset="0">
767 <size>
768 <width>20</width>
769 <height>40</height>
770 </size>
771 </property>
772 </spacer>
773 </item>
774 <item row="3" column="2">
775 <widget class="QLineEdit" name="volOutputblocksperfile"/>
776 </item>
777 <item row="3" column="0">
778 <widget class="QLabel" name="label_7">
779 <property name="text">
780 <string>Blocks per File : </string>
781 </property>
782 </widget>
783 </item>
784 <item row="4" column="0">
785 <widget class="QLabel" name="label_35">
786 <property name="text">
787 <string>Profiles per Block: </string>
788 </property>
789 </widget>
790 </item>
791 <item row="4" column="2">
792 <widget class="QLineEdit" name="volOutputprofilesperblock"/>
793 </item>
794 </layout>
795 </widget>
796 </widget>
797 </item>
798 </layout>
799 </widget>
800 <widget class="QWidget" name="tabSpectra">
801 <attribute name="title">
802 <string>Spectra</string>
803 </attribute>
804 <layout class="QGridLayout" name="gridLayout_7">
805 <item row="1" column="1">
806 <widget class="QFrame" name="frame_5">
807 <property name="frameShape">
808 <enum>QFrame::StyledPanel</enum>
809 </property>
810 <property name="frameShadow">
811 <enum>QFrame::Raised</enum>
812 </property>
813 <layout class="QGridLayout" name="gridLayout_18">
814 <item row="0" column="0">
815 <widget class="QPushButton" name="specOpOk">
816 <property name="text">
817 <string>Ok</string>
818 </property>
819 </widget>
820 </item>
821 <item row="0" column="1">
822 <widget class="QPushButton" name="specGraphClear">
823 <property name="text">
824 <string>Clear</string>
825 </property>
826 </widget>
827 </item>
828 </layout>
829 </widget>
830 </item>
831 <item row="0" column="1">
832 <widget class="QTabWidget" name="tabWidgetSpectra">
833 <property name="currentIndex">
834 <number>0</number>
835 </property>
836 <widget class="QWidget" name="tabopSpectra">
837 <attribute name="title">
838 <string>Operation</string>
839 </attribute>
840 <layout class="QGridLayout" name="gridLayout_5">
841 <item row="3" column="0" colspan="2">
842 <widget class="QCheckBox" name="specOpCebCrossSpectra">
843 <property name="text">
844 <string>Select Cross Spectra</string>
845 </property>
846 </widget>
847 </item>
848 <item row="7" column="0" colspan="2">
849 <widget class="QComboBox" name="specOpComChannel">
850 <item>
851 <property name="text">
852 <string>Value</string>
853 </property>
854 </item>
855 <item>
856 <property name="text">
857 <string>Index</string>
858 </property>
859 </item>
860 </widget>
861 </item>
862 <item row="7" column="2" colspan="2">
863 <widget class="QLineEdit" name="specOpChannel"/>
864 </item>
865 <item row="10" column="0" colspan="2">
866 <widget class="QComboBox" name="specOpComHeights">
867 <item>
868 <property name="text">
869 <string>Value</string>
870 </property>
871 </item>
872 <item>
873 <property name="text">
874 <string>Index</string>
875 </property>
876 </item>
877 </widget>
878 </item>
879 <item row="10" column="2" colspan="2">
880 <widget class="QLineEdit" name="specOpHeights"/>
881 </item>
882 <item row="12" column="2" colspan="2">
883 <widget class="QLineEdit" name="specOpIncoherent"/>
884 </item>
885 <item row="13" column="0" colspan="2">
886 <widget class="QCheckBox" name="specOpCebRemoveDC">
887 <property name="text">
888 <string>Remove DC</string>
889 </property>
890 </widget>
891 </item>
892 <item row="8" column="0">
893 <widget class="QCheckBox" name="specOpCebHeights">
894 <property name="text">
895 <string>Select Heights</string>
896 </property>
897 </widget>
898 </item>
899 <item row="6" column="0">
900 <widget class="QCheckBox" name="specOpCebChannel">
901 <property name="text">
902 <string>Select Channel</string>
903 </property>
904 </widget>
905 </item>
906 <item row="5" column="2" colspan="2">
907 <widget class="QLineEdit" name="specOppairsList"/>
908 </item>
909 <item row="2" column="2" colspan="2">
910 <widget class="QLineEdit" name="specOpnFFTpoints"/>
911 </item>
912 <item row="5" column="0" colspan="2">
913 <widget class="QLabel" name="label_31">
914 <property name="text">
915 <string>x-y pairs</string>
916 </property>
917 </widget>
918 </item>
919 <item row="2" column="0" colspan="2">
920 <widget class="QLabel" name="label_26">
921 <property name="text">
922 <string>nFFTPoints</string>
923 </property>
924 </widget>
925 </item>
926 <item row="11" column="0">
927 <widget class="QCheckBox" name="specOpCebIncoherent">
928 <property name="text">
929 <string>Incoherent Integration</string>
930 </property>
931 </widget>
932 </item>
933 <item row="12" column="0" colspan="2">
934 <widget class="QComboBox" name="specOpCobIncInt">
935 <item>
936 <property name="text">
937 <string>Time Interval</string>
938 </property>
939 </item>
940 <item>
941 <property name="text">
942 <string>Profiles</string>
943 </property>
944 </item>
945 </widget>
946 </item>
947 <item row="11" column="2">
948 <spacer name="horizontalSpacer_2">
949 <property name="orientation">
950 <enum>Qt::Horizontal</enum>
951 </property>
952 <property name="sizeHint" stdset="0">
953 <size>
954 <width>40</width>
955 <height>20</height>
956 </size>
957 </property>
958 </spacer>
959 </item>
960 <item row="0" column="0" colspan="2">
961 <widget class="QCheckBox" name="specOpCebRadarfrequency">
962 <property name="text">
963 <string>Radar Frequency</string>
964 </property>
965 </widget>
966 </item>
967 <item row="8" column="2">
968 <spacer name="horizontalSpacer_11">
969 <property name="orientation">
970 <enum>Qt::Horizontal</enum>
971 </property>
972 <property name="sizeHint" stdset="0">
973 <size>
974 <width>40</width>
975 <height>20</height>
976 </size>
977 </property>
978 </spacer>
979 </item>
980 <item row="13" column="2">
981 <spacer name="horizontalSpacer_12">
982 <property name="orientation">
983 <enum>Qt::Horizontal</enum>
984 </property>
985 <property name="sizeHint" stdset="0">
986 <size>
987 <width>40</width>
988 <height>20</height>
989 </size>
990 </property>
991 </spacer>
992 </item>
993 <item row="6" column="2">
994 <spacer name="horizontalSpacer_8">
995 <property name="orientation">
996 <enum>Qt::Horizontal</enum>
997 </property>
998 <property name="sizeHint" stdset="0">
999 <size>
1000 <width>40</width>
1001 <height>20</height>
1002 </size>
1003 </property>
1004 </spacer>
1005 </item>
1006 <item row="0" column="2" colspan="2">
1007 <widget class="QLineEdit" name="specOpRadarfrequency"/>
1008 </item>
1009 <item row="3" column="2">
1010 <spacer name="horizontalSpacer_7">
1011 <property name="orientation">
1012 <enum>Qt::Horizontal</enum>
1013 </property>
1014 <property name="sizeHint" stdset="0">
1015 <size>
1016 <width>40</width>
1017 <height>20</height>
1018 </size>
1019 </property>
1020 </spacer>
1021 </item>
1022 <item row="1" column="0">
1023 <widget class="QLabel" name="label_21">
1024 <property name="text">
1025 <string>Profiles</string>
1026 </property>
1027 </widget>
1028 </item>
1029 <item row="1" column="2" colspan="2">
1030 <widget class="QLineEdit" name="specOpProfiles"/>
1031 </item>
1032 </layout>
1033 </widget>
1034 <widget class="QWidget" name="tabgraphSpectra">
1035 <attribute name="title">
1036 <string>Graphics</string>
1037 </attribute>
1038 <layout class="QGridLayout" name="gridLayout_9">
1039 <item row="10" column="0">
1040 <widget class="QLabel" name="label_44">
1041 <property name="text">
1042 <string>Coherence Map</string>
1043 </property>
1044 </widget>
1045 </item>
1046 <item row="14" column="2">
1047 <spacer name="verticalSpacer_4">
1048 <property name="orientation">
1049 <enum>Qt::Vertical</enum>
1050 </property>
1051 <property name="sizeHint" stdset="0">
1052 <size>
1053 <width>20</width>
1054 <height>40</height>
1055 </size>
1056 </property>
1057 </spacer>
1058 </item>
1059 <item row="21" column="0">
1060 <widget class="QLabel" name="label_20">
1061 <property name="text">
1062 <string>Tmin, Tmax:</string>
1063 </property>
1064 </widget>
1065 </item>
1066 <item row="13" column="4">
1067 <widget class="QCheckBox" name="specGraphSaveRTInoise">
1068 <property name="text">
1069 <string/>
1070 </property>
1071 </widget>
1072 </item>
1073 <item row="20" column="1" colspan="7">
1074 <widget class="QLineEdit" name="specGgraphmagnitud"/>
1075 </item>
1076 <item row="6" column="4">
1077 <widget class="QCheckBox" name="specGraphSaveSpectra">
1078 <property name="text">
1079 <string/>
1080 </property>
1081 </widget>
1082 </item>
1083 <item row="15" column="1" colspan="7">
1084 <widget class="QLineEdit" name="specGgraphChannelList"/>
1085 </item>
1086 <item row="2" column="0">
1087 <widget class="QLabel" name="label_25">
1088 <property name="text">
1089 <string>Prefix</string>
1090 </property>
1091 </widget>
1092 </item>
1093 <item row="21" column="1" colspan="7">
1094 <widget class="QLineEdit" name="specGgraphTminTmax"/>
1095 </item>
1096 <item row="27" column="6" colspan="2">
1097 <spacer name="horizontalSpacer_18">
1098 <property name="orientation">
1099 <enum>Qt::Horizontal</enum>
1100 </property>
1101 <property name="sizeHint" stdset="0">
1102 <size>
1103 <width>28</width>
1104 <height>15</height>
1105 </size>
1106 </property>
1107 </spacer>
1108 </item>
1109 <item row="3" column="5">
1110 <spacer name="verticalSpacer_3">
1111 <property name="orientation">
1112 <enum>Qt::Vertical</enum>
1113 </property>
1114 <property name="sizeHint" stdset="0">
1115 <size>
1116 <width>20</width>
1117 <height>40</height>
1118 </size>
1119 </property>
1120 </spacer>
1121 </item>
1122 <item row="9" column="0">
1123 <widget class="QLabel" name="label_42">
1124 <property name="text">
1125 <string>RTI Plot</string>
1126 </property>
1127 </widget>
1128 </item>
1129 <item row="18" column="0">
1130 <widget class="QLabel" name="label_16">
1131 <property name="text">
1132 <string>Height range:</string>
1133 </property>
1134 </widget>
1135 </item>
1136 <item row="19" column="0">
1137 <widget class="QLabel" name="label_17">
1138 <property name="text">
1139 <string>dBs range:</string>
1140 </property>
1141 </widget>
1142 </item>
1143 <item row="20" column="0">
1144 <widget class="QLabel" name="label_18">
1145 <property name="text">
1146 <string>magnitud [0-1]</string>
1147 </property>
1148 </widget>
1149 </item>
1150 <item row="16" column="1" colspan="7">
1151 <widget class="QLineEdit" name="specGgraphFreq"/>
1152 </item>
1153 <item row="18" column="1" colspan="7">
1154 <widget class="QLineEdit" name="specGgraphHeight"/>
1155 </item>
1156 <item row="27" column="0">
1157 <spacer name="horizontalSpacer_16">
1158 <property name="orientation">
1159 <enum>Qt::Horizontal</enum>
1160 </property>
1161 <property name="sizeHint" stdset="0">
1162 <size>
1163 <width>49</width>
1164 <height>15</height>
1165 </size>
1166 </property>
1167 </spacer>
1168 </item>
1169 <item row="0" column="0">
1170 <widget class="QLabel" name="label_24">
1171 <property name="text">
1172 <string>Path</string>
1173 </property>
1174 </widget>
1175 </item>
1176 <item row="2" column="1" colspan="7">
1177 <widget class="QLineEdit" name="specGraphPrefix"/>
1178 </item>
1179 <item row="19" column="1" colspan="7">
1180 <widget class="QLineEdit" name="specGgraphDbsrange"/>
1181 </item>
1182 <item row="11" column="0">
1183 <widget class="QLabel" name="label_46">
1184 <property name="text">
1185 <string>Power Profile</string>
1186 </property>
1187 </widget>
1188 </item>
1189 <item row="16" column="0">
1190 <widget class="QLabel" name="label_22">
1191 <property name="text">
1192 <string>Freq/Vel:</string>
1193 </property>
1194 </widget>
1195 </item>
1196 <item row="0" column="1" colspan="6">
1197 <widget class="QLineEdit" name="specGraphPath"/>
1198 </item>
1199 <item row="8" column="0">
1200 <widget class="QLabel" name="label_41">
1201 <property name="text">
1202 <string>Cross Spectra Plot</string>
1203 </property>
1204 </widget>
1205 </item>
1206 <item row="0" column="7">
1207 <widget class="QToolButton" name="specGraphToolPath">
1208 <property name="text">
1209 <string>...</string>
1210 </property>
1211 </widget>
1212 </item>
1213 <item row="15" column="0">
1214 <widget class="QLabel" name="label_6">
1215 <property name="text">
1216 <string>Channel List:</string>
1217 </property>
1218 </widget>
1219 </item>
1220 <item row="6" column="0">
1221 <widget class="QLabel" name="label_40">
1222 <property name="text">
1223 <string>Spectra Plot</string>
1224 </property>
1225 </widget>
1226 </item>
1227 <item row="6" column="2">
1228 <widget class="QCheckBox" name="specGraphCebSpectraplot">
1229 <property name="text">
1230 <string/>
1231 </property>
1232 </widget>
1233 </item>
1234 <item row="8" column="2">
1235 <widget class="QCheckBox" name="specGraphCebCrossSpectraplot">
1236 <property name="text">
1237 <string/>
1238 </property>
1239 </widget>
1240 </item>
1241 <item row="9" column="2">
1242 <widget class="QCheckBox" name="specGraphCebRTIplot">
1243 <property name="text">
1244 <string/>
1245 </property>
1246 </widget>
1247 </item>
1248 <item row="10" column="2">
1249 <widget class="QCheckBox" name="specGraphCebCoherencmap">
1250 <property name="text">
1251 <string/>
1252 </property>
1253 </widget>
1254 </item>
1255 <item row="11" column="2">
1256 <widget class="QCheckBox" name="specGraphPowerprofile">
1257 <property name="text">
1258 <string/>
1259 </property>
1260 </widget>
1261 </item>
1262 <item row="8" column="4">
1263 <widget class="QCheckBox" name="specGraphSaveCross">
1264 <property name="text">
1265 <string/>
1266 </property>
1267 </widget>
1268 </item>
1269 <item row="6" column="6">
1270 <widget class="QCheckBox" name="specGraphftpSpectra">
1271 <property name="text">
1272 <string/>
1273 </property>
1274 </widget>
1275 </item>
1276 <item row="4" column="3">
1277 <spacer name="horizontalSpacer">
1278 <property name="orientation">
1279 <enum>Qt::Horizontal</enum>
1280 </property>
1281 <property name="sizeHint" stdset="0">
1282 <size>
1283 <width>40</width>
1284 <height>20</height>
1285 </size>
1286 </property>
1287 </spacer>
1288 </item>
1289 <item row="11" column="4">
1290 <widget class="QCheckBox" name="specGraphSavePowerprofile">
1291 <property name="text">
1292 <string/>
1293 </property>
1294 </widget>
1295 </item>
1296 <item row="10" column="4">
1297 <widget class="QCheckBox" name="specGraphSaveCoherencemap">
1298 <property name="text">
1299 <string/>
1300 </property>
1301 </widget>
1302 </item>
1303 <item row="27" column="4">
1304 <spacer name="horizontalSpacer_17">
1305 <property name="orientation">
1306 <enum>Qt::Horizontal</enum>
1307 </property>
1308 <property name="sizeHint" stdset="0">
1309 <size>
1310 <width>39</width>
1311 <height>15</height>
1312 </size>
1313 </property>
1314 </spacer>
1315 </item>
1316 <item row="23" column="1" colspan="7">
1317 <widget class="QLineEdit" name="specGgraphftpratio"/>
1318 </item>
1319 <item row="3" column="2" rowspan="2">
1320 <widget class="QLabel" name="label_43">
1321 <property name="text">
1322 <string>Show</string>
1323 </property>
1324 </widget>
1325 </item>
1326 <item row="8" column="6">
1327 <widget class="QCheckBox" name="specGraphftpCross">
1328 <property name="text">
1329 <string/>
1330 </property>
1331 </widget>
1332 </item>
1333 <item row="23" column="0">
1334 <widget class="QLabel" name="label_29">
1335 <property name="text">
1336 <string>Wr Period:</string>
1337 </property>
1338 </widget>
1339 </item>
1340 <item row="3" column="4" rowspan="2">
1341 <widget class="QLabel" name="label_47">
1342 <property name="text">
1343 <string>Save</string>
1344 </property>
1345 </widget>
1346 </item>
1347 <item row="9" column="6">
1348 <widget class="QCheckBox" name="specGraphftpRTIplot">
1349 <property name="text">
1350 <string/>
1351 </property>
1352 </widget>
1353 </item>
1354 <item row="10" column="6">
1355 <widget class="QCheckBox" name="specGraphftpCoherencemap">
1356 <property name="text">
1357 <string/>
1358 </property>
1359 </widget>
1360 </item>
1361 <item row="11" column="6">
1362 <widget class="QCheckBox" name="specGraphftpPowerprofile">
1363 <property name="text">
1364 <string/>
1365 </property>
1366 </widget>
1367 </item>
1368 <item row="3" column="6" rowspan="2" colspan="2">
1369 <widget class="QLabel" name="label_19">
1370 <property name="text">
1371 <string>ftp</string>
1372 </property>
1373 </widget>
1374 </item>
1375 <item row="9" column="4">
1376 <widget class="QCheckBox" name="specGraphSaveRTIplot">
1377 <property name="text">
1378 <string/>
1379 </property>
1380 </widget>
1381 </item>
1382 <item row="13" column="0">
1383 <widget class="QLabel" name="label_45">
1384 <property name="text">
1385 <string>RTI Noise</string>
1386 </property>
1387 </widget>
1388 </item>
1389 <item row="13" column="6">
1390 <widget class="QCheckBox" name="specGraphftpRTInoise">
1391 <property name="text">
1392 <string/>
1393 </property>
1394 </widget>
1395 </item>
1396 <item row="13" column="2">
1397 <widget class="QCheckBox" name="specGraphCebRTInoise">
1398 <property name="text">
1399 <string/>
1400 </property>
1401 </widget>
1402 </item>
1403 <item row="22" column="0">
1404 <widget class="QLabel" name="label_48">
1405 <property name="text">
1406 <string>Time Range:</string>
1407 </property>
1408 </widget>
1409 </item>
1410 <item row="22" column="1" colspan="7">
1411 <widget class="QLineEdit" name="specGgraphTimeRange"/>
1412 </item>
1413 </layout>
1414 </widget>
1415 <widget class="QWidget" name="taboutputSpectra">
1416 <attribute name="title">
1417 <string>Output</string>
1418 </attribute>
1419 <layout class="QGridLayout" name="gridLayout_11">
1420 <item row="0" column="0">
1421 <widget class="QLabel" name="label_39">
1422 <property name="text">
1423 <string>Type:</string>
1424 </property>
1425 </widget>
1426 </item>
1427 <item row="0" column="2" colspan="2">
1428 <widget class="QComboBox" name="specOutputComData">
1429 <item>
1430 <property name="text">
1431 <string>.pdata</string>
1432 </property>
1433 </item>
1434 </widget>
1435 </item>
1436 <item row="1" column="0">
1437 <widget class="QLabel" name="label_34">
1438 <property name="text">
1439 <string>Path:</string>
1440 </property>
1441 </widget>
1442 </item>
1443 <item row="1" column="2">
1444 <widget class="QLineEdit" name="specOutputPath"/>
1445 </item>
1446 <item row="4" column="2">
1447 <spacer name="verticalSpacer_5">
1448 <property name="orientation">
1449 <enum>Qt::Vertical</enum>
1450 </property>
1451 <property name="sizeHint" stdset="0">
1452 <size>
1453 <width>20</width>
1454 <height>40</height>
1455 </size>
1456 </property>
1457 </spacer>
1458 </item>
1459 <item row="1" column="3">
1460 <widget class="QToolButton" name="specOutputToolPath">
1461 <property name="text">
1462 <string>...</string>
1463 </property>
1464 </widget>
1465 </item>
1466 <item row="2" column="2">
1467 <widget class="QLineEdit" name="specOutputblocksperfile"/>
1468 </item>
1469 <item row="2" column="0" colspan="2">
1470 <widget class="QLabel" name="label_9">
1471 <property name="text">
1472 <string>Blocks per File: </string>
1473 </property>
1474 </widget>
1475 </item>
1476 <item row="3" column="0">
1477 <widget class="QLabel" name="label_38">
1478 <property name="text">
1479 <string>Profile per Block: </string>
1480 </property>
1481 </widget>
1482 </item>
1483 <item row="3" column="2">
1484 <widget class="QLineEdit" name="specOutputprofileperblock"/>
1485 </item>
1486 </layout>
1487 </widget>
1488 </widget>
1489 </item>
1490 </layout>
1491 </widget>
1492 <widget class="QWidget" name="tabCorrelation">
1493 <attribute name="title">
1494 <string>Correlation</string>
1495 </attribute>
1496 <layout class="QGridLayout" name="gridLayout_13">
1497 <item row="0" column="0">
1498 <widget class="QTabWidget" name="tabWidget_2">
1499 <property name="currentIndex">
1500 <number>0</number>
1501 </property>
1502 <widget class="QWidget" name="tabopCorrelation">
1503 <attribute name="title">
1504 <string>Operation</string>
1505 </attribute>
1506 </widget>
1507 <widget class="QWidget" name="tabopCorrelation">
1508 <attribute name="title">
1509 <string>Graphics</string>
1510 </attribute>
1511 </widget>
1512 </widget>
1513 </item>
1514 </layout>
1515 </widget>
1516 </widget>
1517 <widget class="QTabWidget" name="tabConsole">
1518 <property name="minimumSize">
1519 <size>
1520 <width>0</width>
1521 <height>0</height>
1522 </size>
1523 </property>
1524 <property name="currentIndex">
1525 <number>0</number>
1526 </property>
1527 <widget class="QWidget" name="tab_5">
1528 <attribute name="title">
1529 <string>Console</string>
1530 </attribute>
1531 <layout class="QGridLayout" name="gridLayout_4">
1532 <item row="0" column="0">
1533 <widget class="QTextEdit" name="console"/>
1534 </item>
1535 </layout>
1536 </widget>
1537 </widget>
1538 </widget>
1539 <widget class="QTabWidget" name="tabWidget">
1540 <property name="currentIndex">
1541 <number>0</number>
1542 </property>
1543 <widget class="QWidget" name="tabProjectProperty">
1544 <attribute name="title">
1545 <string>Project Property</string>
1546 </attribute>
1547 <layout class="QGridLayout" name="gridLayout_8">
1548 <item row="0" column="0">
1549 <widget class="QTreeView" name="treeProjectProperties"/>
1550 </item>
1551 </layout>
1552 </widget>
1553 </widget>
1554 </widget>
1555 </item>
1556 </layout>
1557 </widget>
1558 <widget class="QToolBar" name="toolBar">
1559 <property name="windowTitle">
1560 <string>toolBar</string>
1561 </property>
1562 <attribute name="toolBarArea">
1563 <enum>TopToolBarArea</enum>
1564 </attribute>
1565 <attribute name="toolBarBreak">
1566 <bool>false</bool>
1567 </attribute>
1568 <addaction name="actionOpenToolbar"/>
1569 <addaction name="separator"/>
1570 <addaction name="actionCreateToolbar"/>
1571 <addaction name="separator"/>
1572 <addaction name="actionAddPU"/>
1573 <addaction name="separator"/>
1574 <addaction name="actionSaveToolbar"/>
1575 <addaction name="separator"/>
1576 <addaction name="actionStarToolbar"/>
1577 <addaction name="separator"/>
1578 <addaction name="actionPauseToolbar"/>
1579 <addaction name="separator"/>
1580 <addaction name="actionStopToolbar"/>
1581 <addaction name="separator"/>
1582 </widget>
1583 <widget class="QMenuBar" name="menuBar">
1584 <property name="geometry">
1585 <rect>
1586 <x>0</x>
1587 <y>0</y>
1588 <width>1065</width>
1589 <height>25</height>
1590 </rect>
1591 </property>
1592 <widget class="QMenu" name="menuProject">
1593 <property name="title">
1594 <string>Project</string>
1595 </property>
1596 <addaction name="actionOpen"/>
1597 <addaction name="actionCreate"/>
1598 <addaction name="actionSave"/>
1599 <addaction name="actionClose"/>
1600 </widget>
1601 <widget class="QMenu" name="menuRun">
1602 <property name="title">
1603 <string>Run</string>
1604 </property>
1605 <addaction name="actionStart"/>
1606 <addaction name="actionPause"/>
1607 </widget>
1608 <widget class="QMenu" name="menuOptions">
1609 <property name="title">
1610 <string>Options</string>
1611 </property>
1612 <addaction name="actionFTP"/>
1613 </widget>
1614 <widget class="QMenu" name="menuHelp">
1615 <property name="title">
1616 <string>Help</string>
1617 </property>
1618 <addaction name="actionAbout"/>
1619 </widget>
1620 <addaction name="menuProject"/>
1621 <addaction name="menuRun"/>
1622 <addaction name="menuOptions"/>
1623 <addaction name="menuHelp"/>
1624 </widget>
1625 <action name="actionOpen">
1626 <property name="icon">
1627 <iconset>
1628 <normaloff>../Documents/figure/open.png</normaloff>../Documents/figure/open.png</iconset>
1629 </property>
1630 <property name="text">
1631 <string>Open</string>
1632 </property>
1633 </action>
1634 <action name="actionCreate">
1635 <property name="icon">
1636 <iconset>
1637 <normaloff>../Documents/figure/create_class_obj.png</normaloff>../Documents/figure/create_class_obj.png</iconset>
1638 </property>
1639 <property name="text">
1640 <string>Create</string>
1641 </property>
1642 </action>
1643 <action name="actionSave">
1644 <property name="icon">
1645 <iconset>
1646 <normaloff>../Documents/figure/save.gif</normaloff>../Documents/figure/save.gif</iconset>
1647 </property>
1648 <property name="text">
1649 <string>Save</string>
1650 </property>
1651 </action>
1652 <action name="actionClose">
1653 <property name="text">
1654 <string>Close</string>
1655 </property>
1656 </action>
1657 <action name="actionStart">
1658 <property name="icon">
1659 <iconset>
1660 <normaloff>../Documents/figure/startServer.png</normaloff>../Documents/figure/startServer.png</iconset>
1661 </property>
1662 <property name="text">
1663 <string>Start</string>
1664 </property>
1665 </action>
1666 <action name="actionPause">
1667 <property name="text">
1668 <string>Pause</string>
1669 </property>
1670 </action>
1671 <action name="actionAbout">
1672 <property name="text">
1673 <string>About</string>
1674 </property>
1675 </action>
1676 <action name="actionOpenToolbar">
1677 <property name="icon">
1678 <iconset>
1679 <normaloff>../Documents/figure/open.png</normaloff>../Documents/figure/open.png</iconset>
1680 </property>
1681 <property name="text">
1682 <string>openToolbar</string>
1683 </property>
1684 <property name="toolTip">
1685 <string>Open</string>
1686 </property>
1687 </action>
1688 <action name="actionCreateToolbar">
1689 <property name="icon">
1690 <iconset>
1691 <normaloff>../Documents/figure/create_class_obj.png</normaloff>../Documents/figure/create_class_obj.png</iconset>
1692 </property>
1693 <property name="text">
1694 <string>createToolbar</string>
1695 </property>
1696 <property name="toolTip">
1697 <string>Create</string>
1698 </property>
1699 </action>
1700 <action name="actionSaveToolbar">
1701 <property name="icon">
1702 <iconset>
1703 <normaloff>../Documents/figure/save.gif</normaloff>../Documents/figure/save.gif</iconset>
1704 </property>
1705 <property name="text">
1706 <string>saveToolbar</string>
1707 </property>
1708 <property name="toolTip">
1709 <string>Save</string>
1710 </property>
1711 </action>
1712 <action name="actionStarToolbar">
1713 <property name="icon">
1714 <iconset>
1715 <normaloff>../Documents/figure/startServer.png</normaloff>../Documents/figure/startServer.png</iconset>
1716 </property>
1717 <property name="text">
1718 <string>starToolbar</string>
1719 </property>
1720 <property name="toolTip">
1721 <string>Start</string>
1722 </property>
1723 </action>
1724 <action name="actionStopToolbar">
1725 <property name="icon">
1726 <iconset>
1727 <normaloff>../Documents/figure/stopServer.png</normaloff>../Documents/figure/stopServer.png</iconset>
1728 </property>
1729 <property name="text">
1730 <string>stopToolbar</string>
1731 </property>
1732 <property name="toolTip">
1733 <string>Stop</string>
1734 </property>
1735 </action>
1736 <action name="actionPauseToolbar">
1737 <property name="icon">
1738 <iconset>
1739 <normaloff>../workspace/branch_gui_may/gui/figure/pause.png</normaloff>../workspace/branch_gui_may/gui/figure/pause.png</iconset>
1740 </property>
1741 <property name="text">
1742 <string>pauseToolbar</string>
1743 </property>
1744 <property name="toolTip">
1745 <string>Pause</string>
1746 </property>
1747 </action>
1748 <action name="actionAddPU">
1749 <property name="icon">
1750 <iconset>
1751 <normaloff>../addpu.jpg</normaloff>../addpu.jpg</iconset>
1752 </property>
1753 <property name="text">
1754 <string>addPU</string>
1755 </property>
1756 </action>
1757 <action name="actionFTP">
1758 <property name="text">
1759 <string>FTP</string>
1760 </property>
1761 </action>
1762 </widget>
1763 <resources/>
1764 <connections/>
1765 </ui>
This diff has been collapsed as it changes many lines, (2179 lines changed) Show them Hide them
@@ -1,2179 +0,0
1 <?xml version="1.0" encoding="UTF-8"?>
2 <ui version="4.0">
3 <class>MainWindow</class>
4 <widget class="QMainWindow" name="MainWindow">
5 <property name="geometry">
6 <rect>
7 <x>0</x>
8 <y>0</y>
9 <width>1065</width>
10 <height>711</height>
11 </rect>
12 </property>
13 <property name="windowTitle">
14 <string>MainWindow</string>
15 </property>
16 <widget class="QWidget" name="centralWidget">
17 <layout class="QGridLayout" name="gridLayout_16">
18 <item row="1" column="0">
19 <widget class="QSplitter" name="splitter_2">
20 <property name="orientation">
21 <enum>Qt::Horizontal</enum>
22 </property>
23 <widget class="QTreeView" name="treeProjectExplorer"/>
24 <widget class="QSplitter" name="splitter">
25 <property name="orientation">
26 <enum>Qt::Vertical</enum>
27 </property>
28 <widget class="QTabWidget" name="tabWidgetProject">
29 <property name="minimumSize">
30 <size>
31 <width>0</width>
32 <height>278</height>
33 </size>
34 </property>
35 <property name="maximumSize">
36 <size>
37 <width>16777215</width>
38 <height>16777215</height>
39 </size>
40 </property>
41 <property name="currentIndex">
42 <number>0</number>
43 </property>
44 <widget class="QWidget" name="tabProject">
45 <attribute name="title">
46 <string>Project</string>
47 </attribute>
48 <layout class="QGridLayout" name="gridLayout_15">
49 <item row="0" column="0">
50 <widget class="QFrame" name="frame">
51 <property name="frameShape">
52 <enum>QFrame::StyledPanel</enum>
53 </property>
54 <property name="frameShadow">
55 <enum>QFrame::Raised</enum>
56 </property>
57 <layout class="QGridLayout" name="gridLayout_2">
58 <item row="0" column="0">
59 <widget class="QLabel" name="label">
60 <property name="text">
61 <string>Project Name :</string>
62 </property>
63 </widget>
64 </item>
65 <item row="0" column="1" colspan="8">
66 <widget class="QLineEdit" name="proName"/>
67 </item>
68 <item row="1" column="0">
69 <widget class="QLabel" name="label_11">
70 <property name="text">
71 <string>DataType :</string>
72 </property>
73 </widget>
74 </item>
75 <item row="1" column="1" colspan="5">
76 <widget class="QComboBox" name="proComDataType">
77 <item>
78 <property name="text">
79 <string>Voltage</string>
80 </property>
81 </item>
82 <item>
83 <property name="text">
84 <string>Spectra</string>
85 </property>
86 </item>
87 <item>
88 <property name="text">
89 <string>Fits</string>
90 </property>
91 </item>
92 </widget>
93 </item>
94 <item row="1" column="6" colspan="3">
95 <widget class="QLineEdit" name="proDataType"/>
96 </item>
97 <item row="2" column="0">
98 <widget class="QLabel" name="label_15">
99 <property name="text">
100 <string>DataPath :</string>
101 </property>
102 </widget>
103 </item>
104 <item row="2" column="1">
105 <widget class="QToolButton" name="proToolPath">
106 <property name="text">
107 <string>...</string>
108 </property>
109 </widget>
110 </item>
111 <item row="2" column="2" colspan="7">
112 <widget class="QLineEdit" name="proDataPath"/>
113 </item>
114 <item row="3" column="0">
115 <widget class="QLabel" name="label_23">
116 <property name="text">
117 <string>Read Mode:</string>
118 </property>
119 </widget>
120 </item>
121 <item row="3" column="1" colspan="2">
122 <widget class="QComboBox" name="proComReadMode">
123 <item>
124 <property name="text">
125 <string>Off Line</string>
126 </property>
127 </item>
128 <item>
129 <property name="text">
130 <string>On Line</string>
131 </property>
132 </item>
133 </widget>
134 </item>
135 <item row="3" column="5" colspan="2">
136 <widget class="QLabel" name="label_33">
137 <property name="text">
138 <string>Delay:</string>
139 </property>
140 </widget>
141 </item>
142 <item row="3" column="8">
143 <widget class="QLineEdit" name="proDelay"/>
144 </item>
145 <item row="4" column="0">
146 <widget class="QLabel" name="label_32">
147 <property name="text">
148 <string>Walk :</string>
149 </property>
150 </widget>
151 </item>
152 <item row="4" column="1" colspan="8">
153 <widget class="QComboBox" name="proComWalk">
154 <item>
155 <property name="text">
156 <string>Search 0</string>
157 </property>
158 </item>
159 <item>
160 <property name="text">
161 <string>Search 1</string>
162 </property>
163 </item>
164 </widget>
165 </item>
166 <item row="5" column="0" colspan="9">
167 <widget class="QPushButton" name="proLoadButton">
168 <property name="text">
169 <string>Load</string>
170 </property>
171 </widget>
172 </item>
173 <item row="3" column="3">
174 <widget class="QLabel" name="label_10">
175 <property name="text">
176 <string>Set:</string>
177 </property>
178 </widget>
179 </item>
180 <item row="3" column="4">
181 <widget class="QLineEdit" name="proSet"/>
182 </item>
183 </layout>
184 </widget>
185 </item>
186 <item row="1" column="0">
187 <widget class="QFrame" name="frame_2">
188 <property name="frameShape">
189 <enum>QFrame::StyledPanel</enum>
190 </property>
191 <property name="frameShadow">
192 <enum>QFrame::Raised</enum>
193 </property>
194 <layout class="QGridLayout" name="gridLayout_10">
195 <item row="0" column="0">
196 <widget class="QLabel" name="label_27">
197 <property name="text">
198 <string>Star Date:</string>
199 </property>
200 </widget>
201 </item>
202 <item row="0" column="1">
203 <widget class="QComboBox" name="proComStartDate"/>
204 </item>
205 <item row="1" column="0">
206 <widget class="QLabel" name="label_28">
207 <property name="text">
208 <string>End Date:</string>
209 </property>
210 </widget>
211 </item>
212 <item row="1" column="1">
213 <widget class="QComboBox" name="proComEndDate"/>
214 </item>
215 <item row="2" column="0">
216 <widget class="QLabel" name="label_2">
217 <property name="text">
218 <string>Start Time:</string>
219 </property>
220 </widget>
221 </item>
222 <item row="2" column="1">
223 <widget class="QTimeEdit" name="proStartTime"/>
224 </item>
225 <item row="3" column="0">
226 <widget class="QLabel" name="label_3">
227 <property name="text">
228 <string>End Time:</string>
229 </property>
230 </widget>
231 </item>
232 <item row="3" column="1">
233 <widget class="QTimeEdit" name="proEndTime"/>
234 </item>
235 <item row="4" column="0">
236 <widget class="QLabel" name="label_30">
237 <property name="text">
238 <string>Description:</string>
239 </property>
240 </widget>
241 </item>
242 <item row="4" column="1">
243 <widget class="QTextEdit" name="proDescription"/>
244 </item>
245 </layout>
246 </widget>
247 </item>
248 <item row="2" column="0">
249 <widget class="QFrame" name="frame_3">
250 <property name="frameShape">
251 <enum>QFrame::StyledPanel</enum>
252 </property>
253 <property name="frameShadow">
254 <enum>QFrame::Raised</enum>
255 </property>
256 <layout class="QGridLayout" name="gridLayout_14">
257 <item row="0" column="0">
258 <widget class="QPushButton" name="proOk">
259 <property name="text">
260 <string>Ok</string>
261 </property>
262 </widget>
263 </item>
264 <item row="0" column="1">
265 <widget class="QPushButton" name="proClear">
266 <property name="text">
267 <string>Clear</string>
268 </property>
269 </widget>
270 </item>
271 </layout>
272 </widget>
273 </item>
274 </layout>
275 </widget>
276 <widget class="QWidget" name="tabVoltage">
277 <attribute name="title">
278 <string>Voltage</string>
279 </attribute>
280 <layout class="QGridLayout" name="gridLayout_3">
281 <item row="1" column="1">
282 <widget class="QFrame" name="frame_4">
283 <property name="frameShape">
284 <enum>QFrame::StyledPanel</enum>
285 </property>
286 <property name="frameShadow">
287 <enum>QFrame::Raised</enum>
288 </property>
289 <layout class="QGridLayout" name="gridLayout_17">
290 <item row="0" column="0">
291 <widget class="QPushButton" name="volOpOk">
292 <property name="text">
293 <string>Ok</string>
294 </property>
295 </widget>
296 </item>
297 <item row="0" column="1">
298 <widget class="QPushButton" name="volGraphClear">
299 <property name="text">
300 <string>Clear</string>
301 </property>
302 </widget>
303 </item>
304 </layout>
305 </widget>
306 </item>
307 <item row="0" column="1">
308 <widget class="QTabWidget" name="tabWidgetVoltage">
309 <property name="currentIndex">
310 <number>0</number>
311 </property>
312 <widget class="QWidget" name="tabopVoltage">
313 <attribute name="title">
314 <string>Operation</string>
315 </attribute>
316 <layout class="QGridLayout" name="gridLayout">
317 <item row="4" column="4">
318 <widget class="QLineEdit" name="volOpHeights"/>
319 </item>
320 <item row="4" column="0" colspan="3">
321 <widget class="QComboBox" name="volOpComHeights">
322 <item>
323 <property name="text">
324 <string>Value</string>
325 </property>
326 </item>
327 <item>
328 <property name="text">
329 <string>Index</string>
330 </property>
331 </item>
332 </widget>
333 </item>
334 <item row="2" column="0" colspan="3">
335 <widget class="QComboBox" name="volOpComChannels">
336 <item>
337 <property name="text">
338 <string>Value</string>
339 </property>
340 </item>
341 <item>
342 <property name="text">
343 <string>Index</string>
344 </property>
345 </item>
346 </widget>
347 </item>
348 <item row="6" column="0" colspan="3">
349 <widget class="QCheckBox" name="volOpCebProfile">
350 <property name="text">
351 <string>Profile Selector</string>
352 </property>
353 </widget>
354 </item>
355 <item row="7" column="0" colspan="3">
356 <widget class="QComboBox" name="volOpComProfile">
357 <item>
358 <property name="text">
359 <string>Profile List</string>
360 </property>
361 </item>
362 <item>
363 <property name="text">
364 <string>Profile Range List</string>
365 </property>
366 </item>
367 </widget>
368 </item>
369 <item row="8" column="0" colspan="3">
370 <widget class="QCheckBox" name="volOpCebDecodification">
371 <property name="text">
372 <string>Decoder</string>
373 </property>
374 </widget>
375 </item>
376 <item row="11" column="0" colspan="3">
377 <widget class="QCheckBox" name="volOpCebCohInt">
378 <property name="text">
379 <string>Coherent Integration</string>
380 </property>
381 </widget>
382 </item>
383 <item row="7" column="4">
384 <widget class="QLineEdit" name="volOpProfile"/>
385 </item>
386 <item row="5" column="4">
387 <widget class="QLineEdit" name="volOpFilter"/>
388 </item>
389 <item row="6" column="4">
390 <spacer name="horizontalSpacer_4">
391 <property name="orientation">
392 <enum>Qt::Horizontal</enum>
393 </property>
394 <property name="sizeHint" stdset="0">
395 <size>
396 <width>40</width>
397 <height>20</height>
398 </size>
399 </property>
400 </spacer>
401 </item>
402 <item row="8" column="4">
403 <spacer name="horizontalSpacer_6">
404 <property name="orientation">
405 <enum>Qt::Horizontal</enum>
406 </property>
407 <property name="sizeHint" stdset="0">
408 <size>
409 <width>40</width>
410 <height>20</height>
411 </size>
412 </property>
413 </spacer>
414 </item>
415 <item row="3" column="4">
416 <spacer name="horizontalSpacer_5">
417 <property name="orientation">
418 <enum>Qt::Horizontal</enum>
419 </property>
420 <property name="sizeHint" stdset="0">
421 <size>
422 <width>40</width>
423 <height>20</height>
424 </size>
425 </property>
426 </spacer>
427 </item>
428 <item row="2" column="4">
429 <widget class="QLineEdit" name="volOpChannel"/>
430 </item>
431 <item row="9" column="2">
432 <widget class="QLabel" name="label_4">
433 <property name="text">
434 <string>Code:</string>
435 </property>
436 </widget>
437 </item>
438 <item row="1" column="0" colspan="3">
439 <widget class="QCheckBox" name="volOpCebChannels">
440 <property name="text">
441 <string>Select Channels</string>
442 </property>
443 </widget>
444 </item>
445 <item row="3" column="0" colspan="3">
446 <widget class="QCheckBox" name="volOpCebHeights">
447 <property name="text">
448 <string>Select Heights</string>
449 </property>
450 </widget>
451 </item>
452 <item row="5" column="0" colspan="3">
453 <widget class="QCheckBox" name="volOpCebFilter">
454 <property name="text">
455 <string>Filter</string>
456 </property>
457 </widget>
458 </item>
459 <item row="0" column="4">
460 <widget class="QLineEdit" name="volOpRadarfrequency"/>
461 </item>
462 <item row="0" column="0" colspan="3">
463 <widget class="QCheckBox" name="volOpCebRadarfrequency">
464 <property name="text">
465 <string>Radar Frequency</string>
466 </property>
467 </widget>
468 </item>
469 <item row="10" column="2">
470 <widget class="QLabel" name="label_5">
471 <property name="text">
472 <string>Mode:</string>
473 </property>
474 </widget>
475 </item>
476 <item row="1" column="4">
477 <spacer name="horizontalSpacer_3">
478 <property name="orientation">
479 <enum>Qt::Horizontal</enum>
480 </property>
481 <property name="sizeHint" stdset="0">
482 <size>
483 <width>40</width>
484 <height>20</height>
485 </size>
486 </property>
487 </spacer>
488 </item>
489 <item row="11" column="4">
490 <widget class="QLineEdit" name="volOpCohInt"/>
491 </item>
492 <item row="9" column="4">
493 <widget class="QComboBox" name="volOpComCode">
494 <item>
495 <property name="text">
496 <string>Barker 3</string>
497 </property>
498 </item>
499 <item>
500 <property name="text">
501 <string>Barker 4</string>
502 </property>
503 </item>
504 <item>
505 <property name="text">
506 <string>Barker 5</string>
507 </property>
508 </item>
509 <item>
510 <property name="text">
511 <string>Barker 7</string>
512 </property>
513 </item>
514 <item>
515 <property name="text">
516 <string>Barker 11</string>
517 </property>
518 </item>
519 <item>
520 <property name="text">
521 <string>Barker 13</string>
522 </property>
523 </item>
524 <item>
525 <property name="text">
526 <string>Barker 3 + Comp.</string>
527 </property>
528 </item>
529 <item>
530 <property name="text">
531 <string>Barker 4 + Comp.</string>
532 </property>
533 </item>
534 <item>
535 <property name="text">
536 <string>Barker 5 + Comp.</string>
537 </property>
538 </item>
539 <item>
540 <property name="text">
541 <string>Barker 7 + Comp.</string>
542 </property>
543 </item>
544 <item>
545 <property name="text">
546 <string>Barker 11+ Comp.</string>
547 </property>
548 </item>
549 <item>
550 <property name="text">
551 <string>Barker 13+ Comp.</string>
552 </property>
553 </item>
554 <item>
555 <property name="text">
556 <string>None</string>
557 </property>
558 </item>
559 </widget>
560 </item>
561 <item row="10" column="4">
562 <widget class="QComboBox" name="volOpComMode">
563 <item>
564 <property name="text">
565 <string>Time</string>
566 </property>
567 </item>
568 <item>
569 <property name="text">
570 <string>Freq 1</string>
571 </property>
572 </item>
573 </widget>
574 </item>
575 </layout>
576 </widget>
577 <widget class="QWidget" name="tabgraphVoltage">
578 <attribute name="title">
579 <string>Graphics</string>
580 </attribute>
581 <layout class="QGridLayout" name="gridLayout_6">
582 <item row="12" column="3">
583 <spacer name="verticalSpacer_2">
584 <property name="orientation">
585 <enum>Qt::Vertical</enum>
586 </property>
587 <property name="sizeHint" stdset="0">
588 <size>
589 <width>20</width>
590 <height>40</height>
591 </size>
592 </property>
593 </spacer>
594 </item>
595 <item row="9" column="1" colspan="6">
596 <widget class="QLineEdit" name="volGraphfreqrange"/>
597 </item>
598 <item row="2" column="1" colspan="6">
599 <widget class="QLineEdit" name="volGraphPrefix"/>
600 </item>
601 <item row="1" column="5" colspan="2">
602 <widget class="QToolButton" name="volGraphToolPath">
603 <property name="text">
604 <string>...</string>
605 </property>
606 </widget>
607 </item>
608 <item row="1" column="1" colspan="4">
609 <widget class="QLineEdit" name="volGraphPath"/>
610 </item>
611 <item row="6" column="0">
612 <widget class="QLabel" name="label_14">
613 <property name="text">
614 <string>Scope</string>
615 </property>
616 </widget>
617 </item>
618 <item row="3" column="3">
619 <spacer name="verticalSpacer">
620 <property name="orientation">
621 <enum>Qt::Vertical</enum>
622 </property>
623 <property name="sizeHint" stdset="0">
624 <size>
625 <width>20</width>
626 <height>40</height>
627 </size>
628 </property>
629 </spacer>
630 </item>
631 <item row="8" column="0">
632 <widget class="QLabel" name="label_8">
633 <property name="text">
634 <string>Channel List</string>
635 </property>
636 </widget>
637 </item>
638 <item row="4" column="3">
639 <widget class="QLabel" name="label_49">
640 <property name="text">
641 <string>Show</string>
642 </property>
643 </widget>
644 </item>
645 <item row="9" column="0">
646 <widget class="QLabel" name="label_51">
647 <property name="text">
648 <string>Freq/Vel</string>
649 </property>
650 </widget>
651 </item>
652 <item row="6" column="3">
653 <widget class="QCheckBox" name="volGraphCebshow">
654 <property name="text">
655 <string/>
656 </property>
657 </widget>
658 </item>
659 <item row="1" column="0">
660 <widget class="QLabel" name="label_12">
661 <property name="text">
662 <string>Path :</string>
663 </property>
664 </widget>
665 </item>
666 <item row="2" column="0">
667 <widget class="QLabel" name="label_13">
668 <property name="text">
669 <string>Prefix:</string>
670 </property>
671 </widget>
672 </item>
673 <item row="11" column="0">
674 <widget class="QLabel" name="label_52">
675 <property name="text">
676 <string>Height range</string>
677 </property>
678 </widget>
679 </item>
680 <item row="14" column="5" colspan="2">
681 <spacer name="horizontalSpacer_10">
682 <property name="orientation">
683 <enum>Qt::Horizontal</enum>
684 </property>
685 <property name="sizeHint" stdset="0">
686 <size>
687 <width>40</width>
688 <height>12</height>
689 </size>
690 </property>
691 </spacer>
692 </item>
693 <item row="14" column="3">
694 <spacer name="horizontalSpacer_9">
695 <property name="orientation">
696 <enum>Qt::Horizontal</enum>
697 </property>
698 <property name="sizeHint" stdset="0">
699 <size>
700 <width>18</width>
701 <height>12</height>
702 </size>
703 </property>
704 </spacer>
705 </item>
706 <item row="8" column="1" colspan="6">
707 <widget class="QLineEdit" name="volGraphChannelList"/>
708 </item>
709 <item row="11" column="1" colspan="6">
710 <widget class="QLineEdit" name="volGraphHeightrange"/>
711 </item>
712 <item row="4" column="4">
713 <widget class="QLabel" name="label_50">
714 <property name="text">
715 <string>Save</string>
716 </property>
717 </widget>
718 </item>
719 <item row="6" column="4">
720 <widget class="QCheckBox" name="volGraphCebSave">
721 <property name="text">
722 <string/>
723 </property>
724 </widget>
725 </item>
726 </layout>
727 </widget>
728 <widget class="QWidget" name="taboutputVoltage">
729 <attribute name="title">
730 <string>Output</string>
731 </attribute>
732 <layout class="QGridLayout" name="gridLayout_12">
733 <item row="0" column="0">
734 <widget class="QLabel" name="label_36">
735 <property name="text">
736 <string>Type:</string>
737 </property>
738 </widget>
739 </item>
740 <item row="1" column="0">
741 <widget class="QLabel" name="label_37">
742 <property name="text">
743 <string>Path:</string>
744 </property>
745 </widget>
746 </item>
747 <item row="1" column="2">
748 <widget class="QLineEdit" name="volOutputPath"/>
749 </item>
750 <item row="1" column="3">
751 <widget class="QToolButton" name="volOutputToolPath">
752 <property name="text">
753 <string>...</string>
754 </property>
755 </widget>
756 </item>
757 <item row="0" column="2" colspan="2">
758 <widget class="QComboBox" name="volOutputComData">
759 <item>
760 <property name="text">
761 <string>.rawdata</string>
762 </property>
763 </item>
764 </widget>
765 </item>
766 <item row="5" column="2">
767 <spacer name="verticalSpacer_6">
768 <property name="orientation">
769 <enum>Qt::Vertical</enum>
770 </property>
771 <property name="sizeHint" stdset="0">
772 <size>
773 <width>20</width>
774 <height>40</height>
775 </size>
776 </property>
777 </spacer>
778 </item>
779 <item row="3" column="2">
780 <widget class="QLineEdit" name="volOutputblocksperfile"/>
781 </item>
782 <item row="3" column="0">
783 <widget class="QLabel" name="label_7">
784 <property name="text">
785 <string>Blocks per File : </string>
786 </property>
787 </widget>
788 </item>
789 <item row="4" column="0">
790 <widget class="QLabel" name="label_35">
791 <property name="text">
792 <string>Profiles per Block: </string>
793 </property>
794 </widget>
795 </item>
796 <item row="4" column="2">
797 <widget class="QLineEdit" name="volOutputprofilesperblock"/>
798 </item>
799 </layout>
800 </widget>
801 </widget>
802 </item>
803 </layout>
804 </widget>
805 <widget class="QWidget" name="tabSpectra">
806 <attribute name="title">
807 <string>Spectra</string>
808 </attribute>
809 <layout class="QGridLayout" name="gridLayout_7">
810 <item row="1" column="1">
811 <widget class="QFrame" name="frame_5">
812 <property name="frameShape">
813 <enum>QFrame::StyledPanel</enum>
814 </property>
815 <property name="frameShadow">
816 <enum>QFrame::Raised</enum>
817 </property>
818 <layout class="QGridLayout" name="gridLayout_18">
819 <item row="0" column="0">
820 <widget class="QPushButton" name="specOpOk">
821 <property name="text">
822 <string>Ok</string>
823 </property>
824 </widget>
825 </item>
826 <item row="0" column="1">
827 <widget class="QPushButton" name="specGraphClear">
828 <property name="text">
829 <string>Clear</string>
830 </property>
831 </widget>
832 </item>
833 </layout>
834 </widget>
835 </item>
836 <item row="0" column="1">
837 <widget class="QTabWidget" name="tabWidgetSpectra">
838 <property name="currentIndex">
839 <number>0</number>
840 </property>
841 <widget class="QWidget" name="tabopSpectra">
842 <attribute name="title">
843 <string>Operation</string>
844 </attribute>
845 <layout class="QGridLayout" name="gridLayout_5">
846 <item row="3" column="0" colspan="2">
847 <widget class="QCheckBox" name="specOpCebCrossSpectra">
848 <property name="text">
849 <string>Select Cross Spectra</string>
850 </property>
851 </widget>
852 </item>
853 <item row="7" column="0" colspan="2">
854 <widget class="QComboBox" name="specOpComChannel">
855 <item>
856 <property name="text">
857 <string>Value</string>
858 </property>
859 </item>
860 <item>
861 <property name="text">
862 <string>Index</string>
863 </property>
864 </item>
865 </widget>
866 </item>
867 <item row="7" column="3" colspan="2">
868 <widget class="QLineEdit" name="specOpChannel"/>
869 </item>
870 <item row="10" column="0" colspan="2">
871 <widget class="QComboBox" name="specOpComHeights">
872 <item>
873 <property name="text">
874 <string>Value</string>
875 </property>
876 </item>
877 <item>
878 <property name="text">
879 <string>Index</string>
880 </property>
881 </item>
882 </widget>
883 </item>
884 <item row="10" column="3" colspan="2">
885 <widget class="QLineEdit" name="specOpHeights"/>
886 </item>
887 <item row="12" column="3" colspan="2">
888 <widget class="QLineEdit" name="specOpIncoherent"/>
889 </item>
890 <item row="13" column="0" colspan="2">
891 <widget class="QCheckBox" name="specOpCebRemoveDC">
892 <property name="text">
893 <string>Remove DC</string>
894 </property>
895 </widget>
896 </item>
897 <item row="8" column="0">
898 <widget class="QCheckBox" name="specOpCebHeights">
899 <property name="text">
900 <string>Select Heights</string>
901 </property>
902 </widget>
903 </item>
904 <item row="6" column="0">
905 <widget class="QCheckBox" name="specOpCebChannel">
906 <property name="text">
907 <string>Select Channel</string>
908 </property>
909 </widget>
910 </item>
911 <item row="5" column="3" colspan="2">
912 <widget class="QLineEdit" name="specOppairsList"/>
913 </item>
914 <item row="2" column="3" colspan="2">
915 <widget class="QLineEdit" name="specOpnFFTpoints"/>
916 </item>
917 <item row="5" column="0" colspan="2">
918 <widget class="QLabel" name="label_31">
919 <property name="text">
920 <string>x-y pairs</string>
921 </property>
922 </widget>
923 </item>
924 <item row="2" column="0" colspan="2">
925 <widget class="QLabel" name="label_26">
926 <property name="text">
927 <string>nFFTPoints</string>
928 </property>
929 </widget>
930 </item>
931 <item row="11" column="0">
932 <widget class="QCheckBox" name="specOpCebIncoherent">
933 <property name="text">
934 <string>Incoherent Integration</string>
935 </property>
936 </widget>
937 </item>
938 <item row="12" column="0" colspan="2">
939 <widget class="QComboBox" name="specOpCobIncInt">
940 <item>
941 <property name="text">
942 <string>Time Interval</string>
943 </property>
944 </item>
945 <item>
946 <property name="text">
947 <string>Profiles</string>
948 </property>
949 </item>
950 </widget>
951 </item>
952 <item row="11" column="3">
953 <spacer name="horizontalSpacer_2">
954 <property name="orientation">
955 <enum>Qt::Horizontal</enum>
956 </property>
957 <property name="sizeHint" stdset="0">
958 <size>
959 <width>40</width>
960 <height>20</height>
961 </size>
962 </property>
963 </spacer>
964 </item>
965 <item row="0" column="0" colspan="2">
966 <widget class="QCheckBox" name="specOpCebRadarfrequency">
967 <property name="text">
968 <string>Radar Frequency</string>
969 </property>
970 </widget>
971 </item>
972 <item row="8" column="3">
973 <spacer name="horizontalSpacer_11">
974 <property name="orientation">
975 <enum>Qt::Horizontal</enum>
976 </property>
977 <property name="sizeHint" stdset="0">
978 <size>
979 <width>40</width>
980 <height>20</height>
981 </size>
982 </property>
983 </spacer>
984 </item>
985 <item row="6" column="3">
986 <spacer name="horizontalSpacer_8">
987 <property name="orientation">
988 <enum>Qt::Horizontal</enum>
989 </property>
990 <property name="sizeHint" stdset="0">
991 <size>
992 <width>40</width>
993 <height>20</height>
994 </size>
995 </property>
996 </spacer>
997 </item>
998 <item row="0" column="3" colspan="2">
999 <widget class="QLineEdit" name="specOpRadarfrequency"/>
1000 </item>
1001 <item row="3" column="3">
1002 <spacer name="horizontalSpacer_7">
1003 <property name="orientation">
1004 <enum>Qt::Horizontal</enum>
1005 </property>
1006 <property name="sizeHint" stdset="0">
1007 <size>
1008 <width>40</width>
1009 <height>20</height>
1010 </size>
1011 </property>
1012 </spacer>
1013 </item>
1014 <item row="1" column="0">
1015 <widget class="QLabel" name="label_21">
1016 <property name="text">
1017 <string>Profiles</string>
1018 </property>
1019 </widget>
1020 </item>
1021 <item row="1" column="3" colspan="2">
1022 <widget class="QLineEdit" name="specOpProfiles"/>
1023 </item>
1024 <item row="14" column="0">
1025 <widget class="QCheckBox" name="specOpCebRemoveInt">
1026 <property name="text">
1027 <string>Remove Interference</string>
1028 </property>
1029 </widget>
1030 </item>
1031 <item row="14" column="3">
1032 <spacer name="horizontalSpacer_12">
1033 <property name="orientation">
1034 <enum>Qt::Horizontal</enum>
1035 </property>
1036 <property name="sizeHint" stdset="0">
1037 <size>
1038 <width>40</width>
1039 <height>20</height>
1040 </size>
1041 </property>
1042 </spacer>
1043 </item>
1044 <item row="13" column="3">
1045 <widget class="QComboBox" name="specOpComRemoveDC">
1046 <item>
1047 <property name="text">
1048 <string>Mode 1</string>
1049 </property>
1050 </item>
1051 <item>
1052 <property name="text">
1053 <string>Mode 2</string>
1054 </property>
1055 </item>
1056 </widget>
1057 </item>
1058 </layout>
1059 </widget>
1060 <widget class="QWidget" name="tabgraphSpectra">
1061 <attribute name="title">
1062 <string>Graphics</string>
1063 </attribute>
1064 <layout class="QGridLayout" name="gridLayout_9">
1065 <item row="10" column="0">
1066 <widget class="QLabel" name="label_44">
1067 <property name="text">
1068 <string>Coherence Map</string>
1069 </property>
1070 </widget>
1071 </item>
1072 <item row="14" column="2">
1073 <spacer name="verticalSpacer_4">
1074 <property name="orientation">
1075 <enum>Qt::Vertical</enum>
1076 </property>
1077 <property name="sizeHint" stdset="0">
1078 <size>
1079 <width>20</width>
1080 <height>40</height>
1081 </size>
1082 </property>
1083 </spacer>
1084 </item>
1085 <item row="21" column="0">
1086 <widget class="QLabel" name="label_20">
1087 <property name="text">
1088 <string>Tmin, Tmax:</string>
1089 </property>
1090 </widget>
1091 </item>
1092 <item row="13" column="4">
1093 <widget class="QCheckBox" name="specGraphSaveRTInoise">
1094 <property name="text">
1095 <string/>
1096 </property>
1097 </widget>
1098 </item>
1099 <item row="20" column="1" colspan="7">
1100 <widget class="QLineEdit" name="specGgraphmagnitud"/>
1101 </item>
1102 <item row="6" column="4">
1103 <widget class="QCheckBox" name="specGraphSaveSpectra">
1104 <property name="text">
1105 <string/>
1106 </property>
1107 </widget>
1108 </item>
1109 <item row="15" column="1" colspan="7">
1110 <widget class="QLineEdit" name="specGgraphChannelList"/>
1111 </item>
1112 <item row="2" column="0">
1113 <widget class="QLabel" name="label_25">
1114 <property name="text">
1115 <string>Prefix :</string>
1116 </property>
1117 </widget>
1118 </item>
1119 <item row="21" column="1" colspan="7">
1120 <widget class="QLineEdit" name="specGgraphTminTmax"/>
1121 </item>
1122 <item row="27" column="6" colspan="2">
1123 <spacer name="horizontalSpacer_18">
1124 <property name="orientation">
1125 <enum>Qt::Horizontal</enum>
1126 </property>
1127 <property name="sizeHint" stdset="0">
1128 <size>
1129 <width>28</width>
1130 <height>15</height>
1131 </size>
1132 </property>
1133 </spacer>
1134 </item>
1135 <item row="3" column="5">
1136 <spacer name="verticalSpacer_3">
1137 <property name="orientation">
1138 <enum>Qt::Vertical</enum>
1139 </property>
1140 <property name="sizeHint" stdset="0">
1141 <size>
1142 <width>20</width>
1143 <height>40</height>
1144 </size>
1145 </property>
1146 </spacer>
1147 </item>
1148 <item row="9" column="0">
1149 <widget class="QLabel" name="label_42">
1150 <property name="text">
1151 <string>RTI Plot</string>
1152 </property>
1153 </widget>
1154 </item>
1155 <item row="18" column="0">
1156 <widget class="QLabel" name="label_16">
1157 <property name="text">
1158 <string>Height range:</string>
1159 </property>
1160 </widget>
1161 </item>
1162 <item row="19" column="0">
1163 <widget class="QLabel" name="label_17">
1164 <property name="text">
1165 <string>dBs range:</string>
1166 </property>
1167 </widget>
1168 </item>
1169 <item row="20" column="0">
1170 <widget class="QLabel" name="label_18">
1171 <property name="text">
1172 <string>magnitud [0-1]</string>
1173 </property>
1174 </widget>
1175 </item>
1176 <item row="16" column="1" colspan="7">
1177 <widget class="QLineEdit" name="specGgraphFreq"/>
1178 </item>
1179 <item row="18" column="1" colspan="7">
1180 <widget class="QLineEdit" name="specGgraphHeight"/>
1181 </item>
1182 <item row="27" column="0">
1183 <spacer name="horizontalSpacer_16">
1184 <property name="orientation">
1185 <enum>Qt::Horizontal</enum>
1186 </property>
1187 <property name="sizeHint" stdset="0">
1188 <size>
1189 <width>49</width>
1190 <height>15</height>
1191 </size>
1192 </property>
1193 </spacer>
1194 </item>
1195 <item row="0" column="0">
1196 <widget class="QLabel" name="label_24">
1197 <property name="text">
1198 <string>Path :</string>
1199 </property>
1200 </widget>
1201 </item>
1202 <item row="2" column="1" colspan="7">
1203 <widget class="QLineEdit" name="specGraphPrefix"/>
1204 </item>
1205 <item row="19" column="1" colspan="7">
1206 <widget class="QLineEdit" name="specGgraphDbsrange"/>
1207 </item>
1208 <item row="11" column="0">
1209 <widget class="QLabel" name="label_46">
1210 <property name="text">
1211 <string>Power Profile</string>
1212 </property>
1213 </widget>
1214 </item>
1215 <item row="16" column="0">
1216 <widget class="QLabel" name="label_22">
1217 <property name="text">
1218 <string>Freq/Vel:</string>
1219 </property>
1220 </widget>
1221 </item>
1222 <item row="0" column="1" colspan="6">
1223 <widget class="QLineEdit" name="specGraphPath"/>
1224 </item>
1225 <item row="8" column="0">
1226 <widget class="QLabel" name="label_41">
1227 <property name="text">
1228 <string>Cross Spectra Plot</string>
1229 </property>
1230 </widget>
1231 </item>
1232 <item row="0" column="7">
1233 <widget class="QToolButton" name="specGraphToolPath">
1234 <property name="text">
1235 <string>...</string>
1236 </property>
1237 </widget>
1238 </item>
1239 <item row="15" column="0">
1240 <widget class="QLabel" name="label_6">
1241 <property name="text">
1242 <string>Channel List:</string>
1243 </property>
1244 </widget>
1245 </item>
1246 <item row="6" column="0">
1247 <widget class="QLabel" name="label_40">
1248 <property name="text">
1249 <string>Spectra Plot</string>
1250 </property>
1251 </widget>
1252 </item>
1253 <item row="6" column="2">
1254 <widget class="QCheckBox" name="specGraphCebSpectraplot">
1255 <property name="text">
1256 <string/>
1257 </property>
1258 </widget>
1259 </item>
1260 <item row="8" column="2">
1261 <widget class="QCheckBox" name="specGraphCebCrossSpectraplot">
1262 <property name="text">
1263 <string/>
1264 </property>
1265 </widget>
1266 </item>
1267 <item row="9" column="2">
1268 <widget class="QCheckBox" name="specGraphCebRTIplot">
1269 <property name="text">
1270 <string/>
1271 </property>
1272 </widget>
1273 </item>
1274 <item row="10" column="2">
1275 <widget class="QCheckBox" name="specGraphCebCoherencmap">
1276 <property name="text">
1277 <string/>
1278 </property>
1279 </widget>
1280 </item>
1281 <item row="11" column="2">
1282 <widget class="QCheckBox" name="specGraphPowerprofile">
1283 <property name="text">
1284 <string/>
1285 </property>
1286 </widget>
1287 </item>
1288 <item row="8" column="4">
1289 <widget class="QCheckBox" name="specGraphSaveCross">
1290 <property name="text">
1291 <string/>
1292 </property>
1293 </widget>
1294 </item>
1295 <item row="6" column="6">
1296 <widget class="QCheckBox" name="specGraphftpSpectra">
1297 <property name="text">
1298 <string/>
1299 </property>
1300 </widget>
1301 </item>
1302 <item row="4" column="3">
1303 <spacer name="horizontalSpacer">
1304 <property name="orientation">
1305 <enum>Qt::Horizontal</enum>
1306 </property>
1307 <property name="sizeHint" stdset="0">
1308 <size>
1309 <width>40</width>
1310 <height>20</height>
1311 </size>
1312 </property>
1313 </spacer>
1314 </item>
1315 <item row="11" column="4">
1316 <widget class="QCheckBox" name="specGraphSavePowerprofile">
1317 <property name="text">
1318 <string/>
1319 </property>
1320 </widget>
1321 </item>
1322 <item row="10" column="4">
1323 <widget class="QCheckBox" name="specGraphSaveCoherencemap">
1324 <property name="text">
1325 <string/>
1326 </property>
1327 </widget>
1328 </item>
1329 <item row="27" column="4">
1330 <spacer name="horizontalSpacer_17">
1331 <property name="orientation">
1332 <enum>Qt::Horizontal</enum>
1333 </property>
1334 <property name="sizeHint" stdset="0">
1335 <size>
1336 <width>39</width>
1337 <height>15</height>
1338 </size>
1339 </property>
1340 </spacer>
1341 </item>
1342 <item row="23" column="1" colspan="7">
1343 <widget class="QLineEdit" name="specGgraphftpratio"/>
1344 </item>
1345 <item row="3" column="2" rowspan="2">
1346 <widget class="QLabel" name="label_43">
1347 <property name="text">
1348 <string>Show</string>
1349 </property>
1350 </widget>
1351 </item>
1352 <item row="8" column="6">
1353 <widget class="QCheckBox" name="specGraphftpCross">
1354 <property name="text">
1355 <string/>
1356 </property>
1357 </widget>
1358 </item>
1359 <item row="23" column="0">
1360 <widget class="QLabel" name="label_29">
1361 <property name="text">
1362 <string>Wr Period:</string>
1363 </property>
1364 </widget>
1365 </item>
1366 <item row="3" column="4" rowspan="2">
1367 <widget class="QLabel" name="label_47">
1368 <property name="text">
1369 <string>Save</string>
1370 </property>
1371 </widget>
1372 </item>
1373 <item row="9" column="6">
1374 <widget class="QCheckBox" name="specGraphftpRTIplot">
1375 <property name="text">
1376 <string/>
1377 </property>
1378 </widget>
1379 </item>
1380 <item row="10" column="6">
1381 <widget class="QCheckBox" name="specGraphftpCoherencemap">
1382 <property name="text">
1383 <string/>
1384 </property>
1385 </widget>
1386 </item>
1387 <item row="11" column="6">
1388 <widget class="QCheckBox" name="specGraphftpPowerprofile">
1389 <property name="text">
1390 <string/>
1391 </property>
1392 </widget>
1393 </item>
1394 <item row="3" column="6" rowspan="2" colspan="2">
1395 <widget class="QLabel" name="label_19">
1396 <property name="text">
1397 <string>ftp</string>
1398 </property>
1399 </widget>
1400 </item>
1401 <item row="9" column="4">
1402 <widget class="QCheckBox" name="specGraphSaveRTIplot">
1403 <property name="text">
1404 <string/>
1405 </property>
1406 </widget>
1407 </item>
1408 <item row="13" column="0">
1409 <widget class="QLabel" name="label_45">
1410 <property name="text">
1411 <string>RTI Noise</string>
1412 </property>
1413 </widget>
1414 </item>
1415 <item row="13" column="6">
1416 <widget class="QCheckBox" name="specGraphftpRTInoise">
1417 <property name="text">
1418 <string/>
1419 </property>
1420 </widget>
1421 </item>
1422 <item row="13" column="2">
1423 <widget class="QCheckBox" name="specGraphCebRTInoise">
1424 <property name="text">
1425 <string/>
1426 </property>
1427 </widget>
1428 </item>
1429 <item row="22" column="0">
1430 <widget class="QLabel" name="label_48">
1431 <property name="text">
1432 <string>Time Range:</string>
1433 </property>
1434 </widget>
1435 </item>
1436 <item row="22" column="1" colspan="7">
1437 <widget class="QLineEdit" name="specGgraphTimeRange"/>
1438 </item>
1439 </layout>
1440 </widget>
1441 <widget class="QWidget" name="taboutputSpectra">
1442 <attribute name="title">
1443 <string>Output</string>
1444 </attribute>
1445 <layout class="QGridLayout" name="gridLayout_11">
1446 <item row="0" column="0">
1447 <widget class="QLabel" name="label_39">
1448 <property name="text">
1449 <string>Type:</string>
1450 </property>
1451 </widget>
1452 </item>
1453 <item row="0" column="2" colspan="2">
1454 <widget class="QComboBox" name="specOutputComData">
1455 <item>
1456 <property name="text">
1457 <string>.pdata</string>
1458 </property>
1459 </item>
1460 </widget>
1461 </item>
1462 <item row="1" column="0">
1463 <widget class="QLabel" name="label_34">
1464 <property name="text">
1465 <string>Path:</string>
1466 </property>
1467 </widget>
1468 </item>
1469 <item row="1" column="2">
1470 <widget class="QLineEdit" name="specOutputPath"/>
1471 </item>
1472 <item row="4" column="2">
1473 <spacer name="verticalSpacer_5">
1474 <property name="orientation">
1475 <enum>Qt::Vertical</enum>
1476 </property>
1477 <property name="sizeHint" stdset="0">
1478 <size>
1479 <width>20</width>
1480 <height>40</height>
1481 </size>
1482 </property>
1483 </spacer>
1484 </item>
1485 <item row="1" column="3">
1486 <widget class="QToolButton" name="specOutputToolPath">
1487 <property name="text">
1488 <string>...</string>
1489 </property>
1490 </widget>
1491 </item>
1492 <item row="2" column="2">
1493 <widget class="QLineEdit" name="specOutputblocksperfile"/>
1494 </item>
1495 <item row="2" column="0" colspan="2">
1496 <widget class="QLabel" name="label_9">
1497 <property name="text">
1498 <string>Blocks per File: </string>
1499 </property>
1500 </widget>
1501 </item>
1502 <item row="3" column="0">
1503 <widget class="QLabel" name="label_38">
1504 <property name="text">
1505 <string>Profile per Block: </string>
1506 </property>
1507 </widget>
1508 </item>
1509 <item row="3" column="2">
1510 <widget class="QLineEdit" name="specOutputprofileperblock"/>
1511 </item>
1512 </layout>
1513 </widget>
1514 </widget>
1515 </item>
1516 </layout>
1517 </widget>
1518 <widget class="QWidget" name="tabSpectraHeis">
1519 <attribute name="title">
1520 <string>SpectraHeis</string>
1521 </attribute>
1522 <layout class="QGridLayout" name="gridLayout_23">
1523 <item row="1" column="0">
1524 <widget class="QFrame" name="frame_6">
1525 <property name="frameShape">
1526 <enum>QFrame::StyledPanel</enum>
1527 </property>
1528 <property name="frameShadow">
1529 <enum>QFrame::Raised</enum>
1530 </property>
1531 <layout class="QGridLayout" name="gridLayout_22">
1532 <item row="0" column="1">
1533 <widget class="QPushButton" name="specHeisGraphClear">
1534 <property name="text">
1535 <string>Clear</string>
1536 </property>
1537 </widget>
1538 </item>
1539 <item row="0" column="0">
1540 <widget class="QPushButton" name="specHeisOpOk">
1541 <property name="text">
1542 <string>Ok</string>
1543 </property>
1544 </widget>
1545 </item>
1546 </layout>
1547 </widget>
1548 </item>
1549 <item row="0" column="0">
1550 <widget class="QTabWidget" name="tabWidgetSpectraHeis">
1551 <property name="currentIndex">
1552 <number>0</number>
1553 </property>
1554 <widget class="QWidget" name="tabopSpectraHeis">
1555 <attribute name="title">
1556 <string>Operation</string>
1557 </attribute>
1558 <layout class="QGridLayout" name="gridLayout_21">
1559 <item row="0" column="1">
1560 <spacer name="horizontalSpacer_20">
1561 <property name="orientation">
1562 <enum>Qt::Horizontal</enum>
1563 </property>
1564 <property name="sizeHint" stdset="0">
1565 <size>
1566 <width>40</width>
1567 <height>20</height>
1568 </size>
1569 </property>
1570 </spacer>
1571 </item>
1572 <item row="1" column="0">
1573 <widget class="QComboBox" name="specHeisOpCobIncInt">
1574 <item>
1575 <property name="text">
1576 <string>Time Interval</string>
1577 </property>
1578 </item>
1579 </widget>
1580 </item>
1581 <item row="0" column="0">
1582 <widget class="QCheckBox" name="specHeisOpCebIncoherent">
1583 <property name="text">
1584 <string>Incoherent Intergration</string>
1585 </property>
1586 </widget>
1587 </item>
1588 <item row="1" column="1">
1589 <widget class="QLineEdit" name="specHeisOpIncoherent"/>
1590 </item>
1591 <item row="2" column="0">
1592 <spacer name="verticalSpacer_7">
1593 <property name="orientation">
1594 <enum>Qt::Vertical</enum>
1595 </property>
1596 <property name="sizeHint" stdset="0">
1597 <size>
1598 <width>20</width>
1599 <height>40</height>
1600 </size>
1601 </property>
1602 </spacer>
1603 </item>
1604 </layout>
1605 </widget>
1606 <widget class="QWidget" name="tabgraphSpectraHeis">
1607 <attribute name="title">
1608 <string>Graphics</string>
1609 </attribute>
1610 <layout class="QGridLayout" name="gridLayout_20">
1611 <item row="1" column="0">
1612 <widget class="QLabel" name="label_54">
1613 <property name="text">
1614 <string>Prefix</string>
1615 </property>
1616 </widget>
1617 </item>
1618 <item row="0" column="6">
1619 <widget class="QToolButton" name="specHeisGraphToolPath">
1620 <property name="text">
1621 <string>...</string>
1622 </property>
1623 </widget>
1624 </item>
1625 <item row="4" column="2">
1626 <widget class="QCheckBox" name="specHeisGraphCebRTIplot">
1627 <property name="text">
1628 <string/>
1629 </property>
1630 </widget>
1631 </item>
1632 <item row="7" column="0">
1633 <widget class="QLabel" name="label_62">
1634 <property name="text">
1635 <string>ymin - ymax</string>
1636 </property>
1637 </widget>
1638 </item>
1639 <item row="8" column="0">
1640 <widget class="QLabel" name="label_63">
1641 <property name="text">
1642 <string>Tmin - Tmax:</string>
1643 </property>
1644 </widget>
1645 </item>
1646 <item row="9" column="0">
1647 <widget class="QLabel" name="label_64">
1648 <property name="text">
1649 <string>Time Range:</string>
1650 </property>
1651 </widget>
1652 </item>
1653 <item row="10" column="0">
1654 <widget class="QLabel" name="label_65">
1655 <property name="text">
1656 <string>Wr Period</string>
1657 </property>
1658 </widget>
1659 </item>
1660 <item row="11" column="0" colspan="2">
1661 <spacer name="horizontalSpacer_14">
1662 <property name="orientation">
1663 <enum>Qt::Horizontal</enum>
1664 </property>
1665 <property name="sizeHint" stdset="0">
1666 <size>
1667 <width>134</width>
1668 <height>20</height>
1669 </size>
1670 </property>
1671 </spacer>
1672 </item>
1673 <item row="10" column="1" colspan="6">
1674 <widget class="QLineEdit" name="specHeisGgraphftpratio"/>
1675 </item>
1676 <item row="4" column="6">
1677 <widget class="QCheckBox" name="specHeisGraphftpRTIplot">
1678 <property name="text">
1679 <string/>
1680 </property>
1681 </widget>
1682 </item>
1683 <item row="8" column="1" colspan="6">
1684 <widget class="QLineEdit" name="specHeisGgraphTminTmax"/>
1685 </item>
1686 <item row="5" column="0">
1687 <widget class="QLabel" name="label_60">
1688 <property name="text">
1689 <string>Channel List:</string>
1690 </property>
1691 </widget>
1692 </item>
1693 <item row="6" column="0">
1694 <widget class="QLabel" name="label_61">
1695 <property name="text">
1696 <string>xmin - xmax</string>
1697 </property>
1698 </widget>
1699 </item>
1700 <item row="1" column="1" colspan="6">
1701 <widget class="QLineEdit" name="specHeisGraphPrefix"/>
1702 </item>
1703 <item row="2" column="4">
1704 <widget class="QLabel" name="label_56">
1705 <property name="text">
1706 <string>Save</string>
1707 </property>
1708 </widget>
1709 </item>
1710 <item row="2" column="6">
1711 <widget class="QLabel" name="label_57">
1712 <property name="text">
1713 <string>ftp</string>
1714 </property>
1715 </widget>
1716 </item>
1717 <item row="3" column="0">
1718 <widget class="QLabel" name="label_58">
1719 <property name="text">
1720 <string>Spectra Plot</string>
1721 </property>
1722 </widget>
1723 </item>
1724 <item row="3" column="2">
1725 <widget class="QCheckBox" name="specHeisGraphCebSpectraplot">
1726 <property name="text">
1727 <string/>
1728 </property>
1729 </widget>
1730 </item>
1731 <item row="7" column="1" colspan="6">
1732 <widget class="QLineEdit" name="specHeisGgraphYminYmax"/>
1733 </item>
1734 <item row="0" column="0">
1735 <widget class="QLabel" name="label_53">
1736 <property name="text">
1737 <string>Path</string>
1738 </property>
1739 </widget>
1740 </item>
1741 <item row="2" column="2">
1742 <widget class="QLabel" name="label_55">
1743 <property name="text">
1744 <string>Show</string>
1745 </property>
1746 </widget>
1747 </item>
1748 <item row="4" column="4">
1749 <widget class="QCheckBox" name="specHeisGraphSaveRTIplot">
1750 <property name="text">
1751 <string/>
1752 </property>
1753 </widget>
1754 </item>
1755 <item row="2" column="3">
1756 <spacer name="horizontalSpacer_13">
1757 <property name="orientation">
1758 <enum>Qt::Horizontal</enum>
1759 </property>
1760 <property name="sizeHint" stdset="0">
1761 <size>
1762 <width>40</width>
1763 <height>20</height>
1764 </size>
1765 </property>
1766 </spacer>
1767 </item>
1768 <item row="6" column="1" colspan="6">
1769 <widget class="QLineEdit" name="specHeisGgraphXminXmax"/>
1770 </item>
1771 <item row="5" column="1" colspan="6">
1772 <widget class="QLineEdit" name="specHeisGgraphChannelList"/>
1773 </item>
1774 <item row="9" column="1" colspan="6">
1775 <widget class="QLineEdit" name="specHeisGgraphTimeRange"/>
1776 </item>
1777 <item row="11" column="3" colspan="3">
1778 <spacer name="horizontalSpacer_19">
1779 <property name="orientation">
1780 <enum>Qt::Horizontal</enum>
1781 </property>
1782 <property name="sizeHint" stdset="0">
1783 <size>
1784 <width>106</width>
1785 <height>20</height>
1786 </size>
1787 </property>
1788 </spacer>
1789 </item>
1790 <item row="3" column="4">
1791 <widget class="QCheckBox" name="specHeisGraphSaveSpectra">
1792 <property name="text">
1793 <string/>
1794 </property>
1795 </widget>
1796 </item>
1797 <item row="3" column="6">
1798 <widget class="QCheckBox" name="specHeisGraphftpSpectra">
1799 <property name="text">
1800 <string/>
1801 </property>
1802 </widget>
1803 </item>
1804 <item row="4" column="0">
1805 <widget class="QLabel" name="label_59">
1806 <property name="text">
1807 <string>RTI PLot</string>
1808 </property>
1809 </widget>
1810 </item>
1811 <item row="2" column="5">
1812 <spacer name="horizontalSpacer_21">
1813 <property name="orientation">
1814 <enum>Qt::Horizontal</enum>
1815 </property>
1816 <property name="sizeHint" stdset="0">
1817 <size>
1818 <width>40</width>
1819 <height>20</height>
1820 </size>
1821 </property>
1822 </spacer>
1823 </item>
1824 <item row="0" column="1" colspan="5">
1825 <widget class="QLineEdit" name="specHeisGraphPath"/>
1826 </item>
1827 </layout>
1828 </widget>
1829 <widget class="QWidget" name="taboutputSpectraHeis">
1830 <attribute name="title">
1831 <string>Output</string>
1832 </attribute>
1833 <layout class="QGridLayout" name="gridLayout_19">
1834 <item row="1" column="0">
1835 <widget class="QLabel" name="label_67">
1836 <property name="text">
1837 <string>Path:</string>
1838 </property>
1839 </widget>
1840 </item>
1841 <item row="2" column="0" colspan="2">
1842 <widget class="QLabel" name="label_68">
1843 <property name="text">
1844 <string>Blocks per File:</string>
1845 </property>
1846 </widget>
1847 </item>
1848 <item row="0" column="0">
1849 <widget class="QLabel" name="label_66">
1850 <property name="text">
1851 <string>Type:</string>
1852 </property>
1853 </widget>
1854 </item>
1855 <item row="4" column="0">
1856 <spacer name="verticalSpacer_8">
1857 <property name="orientation">
1858 <enum>Qt::Vertical</enum>
1859 </property>
1860 <property name="sizeHint" stdset="0">
1861 <size>
1862 <width>20</width>
1863 <height>40</height>
1864 </size>
1865 </property>
1866 </spacer>
1867 </item>
1868 <item row="1" column="4">
1869 <widget class="QToolButton" name="specHeisOutputToolPath">
1870 <property name="text">
1871 <string>...</string>
1872 </property>
1873 </widget>
1874 </item>
1875 <item row="1" column="3">
1876 <widget class="QLineEdit" name="specHeisOutputPath"/>
1877 </item>
1878 <item row="0" column="3" colspan="2">
1879 <widget class="QComboBox" name="specHeisOutputComdata">
1880 <item>
1881 <property name="text">
1882 <string>.fits</string>
1883 </property>
1884 </item>
1885 </widget>
1886 </item>
1887 <item row="3" column="0" colspan="2">
1888 <widget class="QLabel" name="label_69">
1889 <property name="text">
1890 <string>Profile per Block:</string>
1891 </property>
1892 </widget>
1893 </item>
1894 <item row="2" column="3">
1895 <widget class="QLineEdit" name="specHeisOutputblocksperfile"/>
1896 </item>
1897 <item row="3" column="3">
1898 <widget class="QLineEdit" name="specHeisOutputprofileperblock"/>
1899 </item>
1900 </layout>
1901 </widget>
1902 </widget>
1903 </item>
1904 </layout>
1905 </widget>
1906 <widget class="QWidget" name="tabCorrelation">
1907 <attribute name="title">
1908 <string>Correlation</string>
1909 </attribute>
1910 <layout class="QGridLayout" name="gridLayout_13">
1911 <item row="0" column="0">
1912 <widget class="QTabWidget" name="tabWidget_2">
1913 <property name="currentIndex">
1914 <number>0</number>
1915 </property>
1916 <widget class="QWidget" name="tabopCorrelation">
1917 <attribute name="title">
1918 <string>Operation</string>
1919 </attribute>
1920 </widget>
1921 <widget class="QWidget" name="tabopCorrelation">
1922 <attribute name="title">
1923 <string>Graphics</string>
1924 </attribute>
1925 </widget>
1926 </widget>
1927 </item>
1928 </layout>
1929 </widget>
1930 </widget>
1931 <widget class="QTabWidget" name="tabConsole">
1932 <property name="minimumSize">
1933 <size>
1934 <width>0</width>
1935 <height>0</height>
1936 </size>
1937 </property>
1938 <property name="currentIndex">
1939 <number>0</number>
1940 </property>
1941 <widget class="QWidget" name="tab_5">
1942 <attribute name="title">
1943 <string>Console</string>
1944 </attribute>
1945 <layout class="QGridLayout" name="gridLayout_4">
1946 <item row="0" column="0">
1947 <widget class="QTextEdit" name="console"/>
1948 </item>
1949 </layout>
1950 </widget>
1951 </widget>
1952 </widget>
1953 <widget class="QTabWidget" name="tabWidget">
1954 <property name="currentIndex">
1955 <number>0</number>
1956 </property>
1957 <widget class="QWidget" name="tabProjectProperty">
1958 <attribute name="title">
1959 <string>Project Property</string>
1960 </attribute>
1961 <layout class="QGridLayout" name="gridLayout_8">
1962 <item row="0" column="0">
1963 <widget class="QTreeView" name="treeProjectProperties"/>
1964 </item>
1965 </layout>
1966 </widget>
1967 </widget>
1968 </widget>
1969 </item>
1970 </layout>
1971 </widget>
1972 <widget class="QToolBar" name="toolBar">
1973 <property name="windowTitle">
1974 <string>toolBar</string>
1975 </property>
1976 <attribute name="toolBarArea">
1977 <enum>TopToolBarArea</enum>
1978 </attribute>
1979 <attribute name="toolBarBreak">
1980 <bool>false</bool>
1981 </attribute>
1982 <addaction name="actionOpenToolbar"/>
1983 <addaction name="separator"/>
1984 <addaction name="actionCreateToolbar"/>
1985 <addaction name="separator"/>
1986 <addaction name="actionAddPU"/>
1987 <addaction name="separator"/>
1988 <addaction name="actionSaveToolbar"/>
1989 <addaction name="separator"/>
1990 <addaction name="actionStarToolbar"/>
1991 <addaction name="separator"/>
1992 <addaction name="actionPauseToolbar"/>
1993 <addaction name="separator"/>
1994 <addaction name="actionStopToolbar"/>
1995 <addaction name="separator"/>
1996 </widget>
1997 <widget class="QMenuBar" name="menuBar">
1998 <property name="geometry">
1999 <rect>
2000 <x>0</x>
2001 <y>0</y>
2002 <width>1065</width>
2003 <height>25</height>
2004 </rect>
2005 </property>
2006 <widget class="QMenu" name="menuProject">
2007 <property name="title">
2008 <string>Project</string>
2009 </property>
2010 <addaction name="actionOpen"/>
2011 <addaction name="actionCreate"/>
2012 <addaction name="actionSave"/>
2013 <addaction name="actionClose"/>
2014 </widget>
2015 <widget class="QMenu" name="menuRun">
2016 <property name="title">
2017 <string>Run</string>
2018 </property>
2019 <addaction name="actionStart"/>
2020 <addaction name="actionPause"/>
2021 </widget>
2022 <widget class="QMenu" name="menuOptions">
2023 <property name="title">
2024 <string>Options</string>
2025 </property>
2026 <addaction name="actionFTP"/>
2027 </widget>
2028 <widget class="QMenu" name="menuHelp">
2029 <property name="title">
2030 <string>Help</string>
2031 </property>
2032 <addaction name="actionAbout"/>
2033 </widget>
2034 <addaction name="menuProject"/>
2035 <addaction name="menuRun"/>
2036 <addaction name="menuOptions"/>
2037 <addaction name="menuHelp"/>
2038 </widget>
2039 <action name="actionOpen">
2040 <property name="icon">
2041 <iconset>
2042 <normaloff>../Documents/figure/open.png</normaloff>../Documents/figure/open.png</iconset>
2043 </property>
2044 <property name="text">
2045 <string>Open</string>
2046 </property>
2047 </action>
2048 <action name="actionCreate">
2049 <property name="icon">
2050 <iconset>
2051 <normaloff>../Documents/figure/create_class_obj.png</normaloff>../Documents/figure/create_class_obj.png</iconset>
2052 </property>
2053 <property name="text">
2054 <string>Create</string>
2055 </property>
2056 </action>
2057 <action name="actionSave">
2058 <property name="icon">
2059 <iconset>
2060 <normaloff>../Documents/figure/save.gif</normaloff>../Documents/figure/save.gif</iconset>
2061 </property>
2062 <property name="text">
2063 <string>Save</string>
2064 </property>
2065 </action>
2066 <action name="actionClose">
2067 <property name="text">
2068 <string>Close</string>
2069 </property>
2070 </action>
2071 <action name="actionStart">
2072 <property name="icon">
2073 <iconset>
2074 <normaloff>../Documents/figure/startServer.png</normaloff>../Documents/figure/startServer.png</iconset>
2075 </property>
2076 <property name="text">
2077 <string>Start</string>
2078 </property>
2079 </action>
2080 <action name="actionPause">
2081 <property name="text">
2082 <string>Pause</string>
2083 </property>
2084 </action>
2085 <action name="actionAbout">
2086 <property name="text">
2087 <string>About</string>
2088 </property>
2089 </action>
2090 <action name="actionOpenToolbar">
2091 <property name="icon">
2092 <iconset>
2093 <normaloff>../Documents/figure/open.png</normaloff>../Documents/figure/open.png</iconset>
2094 </property>
2095 <property name="text">
2096 <string>openToolbar</string>
2097 </property>
2098 <property name="toolTip">
2099 <string>Open</string>
2100 </property>
2101 </action>
2102 <action name="actionCreateToolbar">
2103 <property name="icon">
2104 <iconset>
2105 <normaloff>../Documents/figure/create_class_obj.png</normaloff>../Documents/figure/create_class_obj.png</iconset>
2106 </property>
2107 <property name="text">
2108 <string>createToolbar</string>
2109 </property>
2110 <property name="toolTip">
2111 <string>Create</string>
2112 </property>
2113 </action>
2114 <action name="actionSaveToolbar">
2115 <property name="icon">
2116 <iconset>
2117 <normaloff>../Documents/figure/save.gif</normaloff>../Documents/figure/save.gif</iconset>
2118 </property>
2119 <property name="text">
2120 <string>saveToolbar</string>
2121 </property>
2122 <property name="toolTip">
2123 <string>Save</string>
2124 </property>
2125 </action>
2126 <action name="actionStarToolbar">
2127 <property name="icon">
2128 <iconset>
2129 <normaloff>../Documents/figure/startServer.png</normaloff>../Documents/figure/startServer.png</iconset>
2130 </property>
2131 <property name="text">
2132 <string>starToolbar</string>
2133 </property>
2134 <property name="toolTip">
2135 <string>Start</string>
2136 </property>
2137 </action>
2138 <action name="actionStopToolbar">
2139 <property name="icon">
2140 <iconset>
2141 <normaloff>../Documents/figure/stopServer.png</normaloff>../Documents/figure/stopServer.png</iconset>
2142 </property>
2143 <property name="text">
2144 <string>stopToolbar</string>
2145 </property>
2146 <property name="toolTip">
2147 <string>Stop</string>
2148 </property>
2149 </action>
2150 <action name="actionPauseToolbar">
2151 <property name="icon">
2152 <iconset>
2153 <normaloff>../workspace/branch_gui_may/gui/figure/pause.png</normaloff>../workspace/branch_gui_may/gui/figure/pause.png</iconset>
2154 </property>
2155 <property name="text">
2156 <string>pauseToolbar</string>
2157 </property>
2158 <property name="toolTip">
2159 <string>Pause</string>
2160 </property>
2161 </action>
2162 <action name="actionAddPU">
2163 <property name="icon">
2164 <iconset>
2165 <normaloff>../addpu.jpg</normaloff>../addpu.jpg</iconset>
2166 </property>
2167 <property name="text">
2168 <string>addPU</string>
2169 </property>
2170 </action>
2171 <action name="actionFTP">
2172 <property name="text">
2173 <string>FTP</string>
2174 </property>
2175 </action>
2176 </widget>
2177 <resources/>
2178 <connections/>
2179 </ui>
This diff has been collapsed as it changes many lines, (2186 lines changed) Show them Hide them
@@ -1,2186 +0,0
1 <?xml version="1.0" encoding="UTF-8"?>
2 <ui version="4.0">
3 <class>MainWindow</class>
4 <widget class="QMainWindow" name="MainWindow">
5 <property name="geometry">
6 <rect>
7 <x>0</x>
8 <y>0</y>
9 <width>1065</width>
10 <height>711</height>
11 </rect>
12 </property>
13 <property name="windowTitle">
14 <string>MainWindow</string>
15 </property>
16 <widget class="QWidget" name="centralWidget">
17 <layout class="QGridLayout" name="gridLayout_16">
18 <item row="1" column="0">
19 <widget class="QSplitter" name="splitter_2">
20 <property name="orientation">
21 <enum>Qt::Horizontal</enum>
22 </property>
23 <widget class="QTreeView" name="treeProjectExplorer"/>
24 <widget class="QSplitter" name="splitter">
25 <property name="orientation">
26 <enum>Qt::Vertical</enum>
27 </property>
28 <widget class="QTabWidget" name="tabWidgetProject">
29 <property name="minimumSize">
30 <size>
31 <width>0</width>
32 <height>278</height>
33 </size>
34 </property>
35 <property name="maximumSize">
36 <size>
37 <width>16777215</width>
38 <height>16777215</height>
39 </size>
40 </property>
41 <property name="currentIndex">
42 <number>0</number>
43 </property>
44 <widget class="QWidget" name="tabProject">
45 <attribute name="title">
46 <string>Project</string>
47 </attribute>
48 <layout class="QGridLayout" name="gridLayout_15">
49 <item row="0" column="0">
50 <widget class="QFrame" name="frame">
51 <property name="frameShape">
52 <enum>QFrame::StyledPanel</enum>
53 </property>
54 <property name="frameShadow">
55 <enum>QFrame::Raised</enum>
56 </property>
57 <layout class="QGridLayout" name="gridLayout_2">
58 <item row="0" column="0">
59 <widget class="QLabel" name="label">
60 <property name="text">
61 <string>Project Name :</string>
62 </property>
63 </widget>
64 </item>
65 <item row="0" column="1" colspan="8">
66 <widget class="QLineEdit" name="proName"/>
67 </item>
68 <item row="1" column="0">
69 <widget class="QLabel" name="label_11">
70 <property name="text">
71 <string>DataType :</string>
72 </property>
73 </widget>
74 </item>
75 <item row="1" column="1" colspan="5">
76 <widget class="QComboBox" name="proComDataType">
77 <item>
78 <property name="text">
79 <string>Voltage</string>
80 </property>
81 </item>
82 <item>
83 <property name="text">
84 <string>Spectra</string>
85 </property>
86 </item>
87 <item>
88 <property name="text">
89 <string>Fits</string>
90 </property>
91 </item>
92 </widget>
93 </item>
94 <item row="1" column="6" colspan="3">
95 <widget class="QLineEdit" name="proDataType"/>
96 </item>
97 <item row="2" column="0">
98 <widget class="QLabel" name="label_15">
99 <property name="text">
100 <string>DataPath :</string>
101 </property>
102 </widget>
103 </item>
104 <item row="2" column="1">
105 <widget class="QToolButton" name="proToolPath">
106 <property name="text">
107 <string>...</string>
108 </property>
109 </widget>
110 </item>
111 <item row="2" column="2" colspan="7">
112 <widget class="QLineEdit" name="proDataPath"/>
113 </item>
114 <item row="3" column="0">
115 <widget class="QLabel" name="label_23">
116 <property name="text">
117 <string>Read Mode:</string>
118 </property>
119 </widget>
120 </item>
121 <item row="3" column="1" colspan="2">
122 <widget class="QComboBox" name="proComReadMode">
123 <item>
124 <property name="text">
125 <string>Off Line</string>
126 </property>
127 </item>
128 <item>
129 <property name="text">
130 <string>On Line</string>
131 </property>
132 </item>
133 </widget>
134 </item>
135 <item row="3" column="5" colspan="2">
136 <widget class="QLabel" name="label_33">
137 <property name="text">
138 <string>Delay:</string>
139 </property>
140 </widget>
141 </item>
142 <item row="3" column="8">
143 <widget class="QLineEdit" name="proDelay"/>
144 </item>
145 <item row="4" column="0">
146 <widget class="QLabel" name="label_32">
147 <property name="text">
148 <string>Walk :</string>
149 </property>
150 </widget>
151 </item>
152 <item row="4" column="1" colspan="8">
153 <widget class="QComboBox" name="proComWalk">
154 <item>
155 <property name="text">
156 <string>Search 0</string>
157 </property>
158 </item>
159 <item>
160 <property name="text">
161 <string>Search 1</string>
162 </property>
163 </item>
164 </widget>
165 </item>
166 <item row="5" column="0" colspan="9">
167 <widget class="QPushButton" name="proLoadButton">
168 <property name="text">
169 <string>Load</string>
170 </property>
171 </widget>
172 </item>
173 <item row="3" column="3">
174 <widget class="QLabel" name="label_10">
175 <property name="text">
176 <string>Set:</string>
177 </property>
178 </widget>
179 </item>
180 <item row="3" column="4">
181 <widget class="QLineEdit" name="proSet"/>
182 </item>
183 </layout>
184 </widget>
185 </item>
186 <item row="1" column="0">
187 <widget class="QFrame" name="frame_2">
188 <property name="frameShape">
189 <enum>QFrame::StyledPanel</enum>
190 </property>
191 <property name="frameShadow">
192 <enum>QFrame::Raised</enum>
193 </property>
194 <layout class="QGridLayout" name="gridLayout_10">
195 <item row="0" column="0">
196 <widget class="QLabel" name="label_27">
197 <property name="text">
198 <string>Star Date:</string>
199 </property>
200 </widget>
201 </item>
202 <item row="0" column="1">
203 <widget class="QComboBox" name="proComStartDate"/>
204 </item>
205 <item row="1" column="0">
206 <widget class="QLabel" name="label_28">
207 <property name="text">
208 <string>End Date:</string>
209 </property>
210 </widget>
211 </item>
212 <item row="1" column="1">
213 <widget class="QComboBox" name="proComEndDate"/>
214 </item>
215 <item row="2" column="0">
216 <widget class="QLabel" name="label_2">
217 <property name="text">
218 <string>Start Time:</string>
219 </property>
220 </widget>
221 </item>
222 <item row="2" column="1">
223 <widget class="QTimeEdit" name="proStartTime"/>
224 </item>
225 <item row="3" column="0">
226 <widget class="QLabel" name="label_3">
227 <property name="text">
228 <string>End Time:</string>
229 </property>
230 </widget>
231 </item>
232 <item row="3" column="1">
233 <widget class="QTimeEdit" name="proEndTime"/>
234 </item>
235 <item row="4" column="0">
236 <widget class="QLabel" name="label_30">
237 <property name="text">
238 <string>Description:</string>
239 </property>
240 </widget>
241 </item>
242 <item row="4" column="1">
243 <widget class="QTextEdit" name="proDescription"/>
244 </item>
245 </layout>
246 </widget>
247 </item>
248 <item row="2" column="0">
249 <widget class="QFrame" name="frame_3">
250 <property name="frameShape">
251 <enum>QFrame::StyledPanel</enum>
252 </property>
253 <property name="frameShadow">
254 <enum>QFrame::Raised</enum>
255 </property>
256 <layout class="QGridLayout" name="gridLayout_14">
257 <item row="0" column="0">
258 <widget class="QPushButton" name="proOk">
259 <property name="text">
260 <string>Ok</string>
261 </property>
262 </widget>
263 </item>
264 <item row="0" column="1">
265 <widget class="QPushButton" name="proClear">
266 <property name="text">
267 <string>Clear</string>
268 </property>
269 </widget>
270 </item>
271 </layout>
272 </widget>
273 </item>
274 </layout>
275 </widget>
276 <widget class="QWidget" name="tabVoltage">
277 <attribute name="title">
278 <string>Voltage</string>
279 </attribute>
280 <layout class="QGridLayout" name="gridLayout_3">
281 <item row="1" column="1">
282 <widget class="QFrame" name="frame_4">
283 <property name="frameShape">
284 <enum>QFrame::StyledPanel</enum>
285 </property>
286 <property name="frameShadow">
287 <enum>QFrame::Raised</enum>
288 </property>
289 <layout class="QGridLayout" name="gridLayout_17">
290 <item row="0" column="0">
291 <widget class="QPushButton" name="volOpOk">
292 <property name="text">
293 <string>Ok</string>
294 </property>
295 </widget>
296 </item>
297 <item row="0" column="1">
298 <widget class="QPushButton" name="volGraphClear">
299 <property name="text">
300 <string>Clear</string>
301 </property>
302 </widget>
303 </item>
304 </layout>
305 </widget>
306 </item>
307 <item row="0" column="1">
308 <widget class="QTabWidget" name="tabWidgetVoltage">
309 <property name="currentIndex">
310 <number>0</number>
311 </property>
312 <widget class="QWidget" name="tabopVoltage">
313 <attribute name="title">
314 <string>Operation</string>
315 </attribute>
316 <layout class="QGridLayout" name="gridLayout">
317 <item row="4" column="4">
318 <widget class="QLineEdit" name="volOpHeights"/>
319 </item>
320 <item row="4" column="0" colspan="3">
321 <widget class="QComboBox" name="volOpComHeights">
322 <item>
323 <property name="text">
324 <string>Value</string>
325 </property>
326 </item>
327 <item>
328 <property name="text">
329 <string>Index</string>
330 </property>
331 </item>
332 </widget>
333 </item>
334 <item row="2" column="0" colspan="3">
335 <widget class="QComboBox" name="volOpComChannels">
336 <item>
337 <property name="text">
338 <string>Value</string>
339 </property>
340 </item>
341 <item>
342 <property name="text">
343 <string>Index</string>
344 </property>
345 </item>
346 </widget>
347 </item>
348 <item row="6" column="0" colspan="3">
349 <widget class="QCheckBox" name="volOpCebProfile">
350 <property name="text">
351 <string>Profile Selector</string>
352 </property>
353 </widget>
354 </item>
355 <item row="7" column="0" colspan="3">
356 <widget class="QComboBox" name="volOpComProfile">
357 <item>
358 <property name="text">
359 <string>Profile List</string>
360 </property>
361 </item>
362 <item>
363 <property name="text">
364 <string>Profile Range List</string>
365 </property>
366 </item>
367 </widget>
368 </item>
369 <item row="8" column="0" colspan="3">
370 <widget class="QCheckBox" name="volOpCebDecodification">
371 <property name="text">
372 <string>Decoder</string>
373 </property>
374 </widget>
375 </item>
376 <item row="11" column="0" colspan="3">
377 <widget class="QCheckBox" name="volOpCebCohInt">
378 <property name="text">
379 <string>Coherent Integration</string>
380 </property>
381 </widget>
382 </item>
383 <item row="7" column="4">
384 <widget class="QLineEdit" name="volOpProfile"/>
385 </item>
386 <item row="5" column="4">
387 <widget class="QLineEdit" name="volOpFilter"/>
388 </item>
389 <item row="6" column="4">
390 <spacer name="horizontalSpacer_4">
391 <property name="orientation">
392 <enum>Qt::Horizontal</enum>
393 </property>
394 <property name="sizeHint" stdset="0">
395 <size>
396 <width>40</width>
397 <height>20</height>
398 </size>
399 </property>
400 </spacer>
401 </item>
402 <item row="8" column="4">
403 <spacer name="horizontalSpacer_6">
404 <property name="orientation">
405 <enum>Qt::Horizontal</enum>
406 </property>
407 <property name="sizeHint" stdset="0">
408 <size>
409 <width>40</width>
410 <height>20</height>
411 </size>
412 </property>
413 </spacer>
414 </item>
415 <item row="3" column="4">
416 <spacer name="horizontalSpacer_5">
417 <property name="orientation">
418 <enum>Qt::Horizontal</enum>
419 </property>
420 <property name="sizeHint" stdset="0">
421 <size>
422 <width>40</width>
423 <height>20</height>
424 </size>
425 </property>
426 </spacer>
427 </item>
428 <item row="2" column="4">
429 <widget class="QLineEdit" name="volOpChannel"/>
430 </item>
431 <item row="9" column="2">
432 <widget class="QLabel" name="label_4">
433 <property name="text">
434 <string>Code:</string>
435 </property>
436 </widget>
437 </item>
438 <item row="1" column="0" colspan="3">
439 <widget class="QCheckBox" name="volOpCebChannels">
440 <property name="text">
441 <string>Select Channels</string>
442 </property>
443 </widget>
444 </item>
445 <item row="3" column="0" colspan="3">
446 <widget class="QCheckBox" name="volOpCebHeights">
447 <property name="text">
448 <string>Select Heights</string>
449 </property>
450 </widget>
451 </item>
452 <item row="5" column="0" colspan="3">
453 <widget class="QCheckBox" name="volOpCebFilter">
454 <property name="text">
455 <string>Filter</string>
456 </property>
457 </widget>
458 </item>
459 <item row="0" column="4">
460 <widget class="QLineEdit" name="volOpRadarfrequency"/>
461 </item>
462 <item row="0" column="0" colspan="3">
463 <widget class="QCheckBox" name="volOpCebRadarfrequency">
464 <property name="text">
465 <string>Radar Frequency</string>
466 </property>
467 </widget>
468 </item>
469 <item row="10" column="2">
470 <widget class="QLabel" name="label_5">
471 <property name="text">
472 <string>Mode:</string>
473 </property>
474 </widget>
475 </item>
476 <item row="1" column="4">
477 <spacer name="horizontalSpacer_3">
478 <property name="orientation">
479 <enum>Qt::Horizontal</enum>
480 </property>
481 <property name="sizeHint" stdset="0">
482 <size>
483 <width>40</width>
484 <height>20</height>
485 </size>
486 </property>
487 </spacer>
488 </item>
489 <item row="11" column="4">
490 <widget class="QLineEdit" name="volOpCohInt"/>
491 </item>
492 <item row="9" column="4">
493 <widget class="QComboBox" name="volOpComCode">
494 <item>
495 <property name="text">
496 <string>Barker 3</string>
497 </property>
498 </item>
499 <item>
500 <property name="text">
501 <string>Barker 4</string>
502 </property>
503 </item>
504 <item>
505 <property name="text">
506 <string>Barker 5</string>
507 </property>
508 </item>
509 <item>
510 <property name="text">
511 <string>Barker 7</string>
512 </property>
513 </item>
514 <item>
515 <property name="text">
516 <string>Barker 11</string>
517 </property>
518 </item>
519 <item>
520 <property name="text">
521 <string>Barker 13</string>
522 </property>
523 </item>
524 <item>
525 <property name="text">
526 <string>Barker 3 + Comp.</string>
527 </property>
528 </item>
529 <item>
530 <property name="text">
531 <string>Barker 4 + Comp.</string>
532 </property>
533 </item>
534 <item>
535 <property name="text">
536 <string>Barker 5 + Comp.</string>
537 </property>
538 </item>
539 <item>
540 <property name="text">
541 <string>Barker 7 + Comp.</string>
542 </property>
543 </item>
544 <item>
545 <property name="text">
546 <string>Barker 11+ Comp.</string>
547 </property>
548 </item>
549 <item>
550 <property name="text">
551 <string>Barker 13+ Comp.</string>
552 </property>
553 </item>
554 <item>
555 <property name="text">
556 <string>None</string>
557 </property>
558 </item>
559 </widget>
560 </item>
561 <item row="10" column="4">
562 <widget class="QComboBox" name="volOpComMode">
563 <item>
564 <property name="text">
565 <string>Time</string>
566 </property>
567 </item>
568 <item>
569 <property name="text">
570 <string>Freq 1</string>
571 </property>
572 </item>
573 </widget>
574 </item>
575 </layout>
576 </widget>
577 <widget class="QWidget" name="tabgraphVoltage">
578 <attribute name="title">
579 <string>Graphics</string>
580 </attribute>
581 <layout class="QGridLayout" name="gridLayout_6">
582 <item row="12" column="3">
583 <spacer name="verticalSpacer_2">
584 <property name="orientation">
585 <enum>Qt::Vertical</enum>
586 </property>
587 <property name="sizeHint" stdset="0">
588 <size>
589 <width>20</width>
590 <height>40</height>
591 </size>
592 </property>
593 </spacer>
594 </item>
595 <item row="9" column="1" colspan="6">
596 <widget class="QLineEdit" name="volGraphfreqrange"/>
597 </item>
598 <item row="2" column="1" colspan="6">
599 <widget class="QLineEdit" name="volGraphPrefix"/>
600 </item>
601 <item row="1" column="5" colspan="2">
602 <widget class="QToolButton" name="volGraphToolPath">
603 <property name="text">
604 <string>...</string>
605 </property>
606 </widget>
607 </item>
608 <item row="1" column="1" colspan="4">
609 <widget class="QLineEdit" name="volGraphPath"/>
610 </item>
611 <item row="6" column="0">
612 <widget class="QLabel" name="label_14">
613 <property name="text">
614 <string>Scope</string>
615 </property>
616 </widget>
617 </item>
618 <item row="3" column="3">
619 <spacer name="verticalSpacer">
620 <property name="orientation">
621 <enum>Qt::Vertical</enum>
622 </property>
623 <property name="sizeHint" stdset="0">
624 <size>
625 <width>20</width>
626 <height>40</height>
627 </size>
628 </property>
629 </spacer>
630 </item>
631 <item row="8" column="0">
632 <widget class="QLabel" name="label_8">
633 <property name="text">
634 <string>Channel List</string>
635 </property>
636 </widget>
637 </item>
638 <item row="4" column="3">
639 <widget class="QLabel" name="label_49">
640 <property name="text">
641 <string>Show</string>
642 </property>
643 </widget>
644 </item>
645 <item row="9" column="0">
646 <widget class="QLabel" name="label_51">
647 <property name="text">
648 <string>Freq/Vel</string>
649 </property>
650 </widget>
651 </item>
652 <item row="6" column="3">
653 <widget class="QCheckBox" name="volGraphCebshow">
654 <property name="text">
655 <string/>
656 </property>
657 </widget>
658 </item>
659 <item row="1" column="0">
660 <widget class="QLabel" name="label_12">
661 <property name="text">
662 <string>Path :</string>
663 </property>
664 </widget>
665 </item>
666 <item row="2" column="0">
667 <widget class="QLabel" name="label_13">
668 <property name="text">
669 <string>Prefix:</string>
670 </property>
671 </widget>
672 </item>
673 <item row="11" column="0">
674 <widget class="QLabel" name="label_52">
675 <property name="text">
676 <string>Height range</string>
677 </property>
678 </widget>
679 </item>
680 <item row="14" column="5" colspan="2">
681 <spacer name="horizontalSpacer_10">
682 <property name="orientation">
683 <enum>Qt::Horizontal</enum>
684 </property>
685 <property name="sizeHint" stdset="0">
686 <size>
687 <width>40</width>
688 <height>12</height>
689 </size>
690 </property>
691 </spacer>
692 </item>
693 <item row="14" column="3">
694 <spacer name="horizontalSpacer_9">
695 <property name="orientation">
696 <enum>Qt::Horizontal</enum>
697 </property>
698 <property name="sizeHint" stdset="0">
699 <size>
700 <width>18</width>
701 <height>12</height>
702 </size>
703 </property>
704 </spacer>
705 </item>
706 <item row="8" column="1" colspan="6">
707 <widget class="QLineEdit" name="volGraphChannelList"/>
708 </item>
709 <item row="11" column="1" colspan="6">
710 <widget class="QLineEdit" name="volGraphHeightrange"/>
711 </item>
712 <item row="4" column="4">
713 <widget class="QLabel" name="label_50">
714 <property name="text">
715 <string>Save</string>
716 </property>
717 </widget>
718 </item>
719 <item row="6" column="4">
720 <widget class="QCheckBox" name="volGraphCebSave">
721 <property name="text">
722 <string/>
723 </property>
724 </widget>
725 </item>
726 </layout>
727 </widget>
728 <widget class="QWidget" name="taboutputVoltage">
729 <attribute name="title">
730 <string>Output</string>
731 </attribute>
732 <layout class="QGridLayout" name="gridLayout_12">
733 <item row="0" column="0">
734 <widget class="QLabel" name="label_36">
735 <property name="text">
736 <string>Type:</string>
737 </property>
738 </widget>
739 </item>
740 <item row="1" column="0">
741 <widget class="QLabel" name="label_37">
742 <property name="text">
743 <string>Path:</string>
744 </property>
745 </widget>
746 </item>
747 <item row="1" column="2">
748 <widget class="QLineEdit" name="volOutputPath"/>
749 </item>
750 <item row="1" column="3">
751 <widget class="QToolButton" name="volOutputToolPath">
752 <property name="text">
753 <string>...</string>
754 </property>
755 </widget>
756 </item>
757 <item row="0" column="2" colspan="2">
758 <widget class="QComboBox" name="volOutputComData">
759 <item>
760 <property name="text">
761 <string>.rawdata</string>
762 </property>
763 </item>
764 </widget>
765 </item>
766 <item row="5" column="2">
767 <spacer name="verticalSpacer_6">
768 <property name="orientation">
769 <enum>Qt::Vertical</enum>
770 </property>
771 <property name="sizeHint" stdset="0">
772 <size>
773 <width>20</width>
774 <height>40</height>
775 </size>
776 </property>
777 </spacer>
778 </item>
779 <item row="3" column="2">
780 <widget class="QLineEdit" name="volOutputblocksperfile"/>
781 </item>
782 <item row="3" column="0">
783 <widget class="QLabel" name="label_7">
784 <property name="text">
785 <string>Blocks per File : </string>
786 </property>
787 </widget>
788 </item>
789 <item row="4" column="0">
790 <widget class="QLabel" name="label_35">
791 <property name="text">
792 <string>Profiles per Block: </string>
793 </property>
794 </widget>
795 </item>
796 <item row="4" column="2">
797 <widget class="QLineEdit" name="volOutputprofilesperblock"/>
798 </item>
799 </layout>
800 </widget>
801 </widget>
802 </item>
803 </layout>
804 </widget>
805 <widget class="QWidget" name="tabSpectra">
806 <attribute name="title">
807 <string>Spectra</string>
808 </attribute>
809 <layout class="QGridLayout" name="gridLayout_7">
810 <item row="1" column="1">
811 <widget class="QFrame" name="frame_5">
812 <property name="frameShape">
813 <enum>QFrame::StyledPanel</enum>
814 </property>
815 <property name="frameShadow">
816 <enum>QFrame::Raised</enum>
817 </property>
818 <layout class="QGridLayout" name="gridLayout_18">
819 <item row="0" column="0">
820 <widget class="QPushButton" name="specOpOk">
821 <property name="text">
822 <string>Ok</string>
823 </property>
824 </widget>
825 </item>
826 <item row="0" column="1">
827 <widget class="QPushButton" name="specGraphClear">
828 <property name="text">
829 <string>Clear</string>
830 </property>
831 </widget>
832 </item>
833 </layout>
834 </widget>
835 </item>
836 <item row="0" column="1">
837 <widget class="QTabWidget" name="tabWidgetSpectra">
838 <property name="currentIndex">
839 <number>0</number>
840 </property>
841 <widget class="QWidget" name="tabopSpectra">
842 <attribute name="title">
843 <string>Operation</string>
844 </attribute>
845 <layout class="QGridLayout" name="gridLayout_5">
846 <item row="3" column="0" colspan="2">
847 <widget class="QCheckBox" name="specOpCebCrossSpectra">
848 <property name="text">
849 <string>Select Cross Spectra</string>
850 </property>
851 </widget>
852 </item>
853 <item row="7" column="0" colspan="2">
854 <widget class="QComboBox" name="specOpComChannel">
855 <item>
856 <property name="text">
857 <string>Value</string>
858 </property>
859 </item>
860 <item>
861 <property name="text">
862 <string>Index</string>
863 </property>
864 </item>
865 </widget>
866 </item>
867 <item row="7" column="3" colspan="2">
868 <widget class="QLineEdit" name="specOpChannel"/>
869 </item>
870 <item row="10" column="0" colspan="2">
871 <widget class="QComboBox" name="specOpComHeights">
872 <item>
873 <property name="text">
874 <string>Value</string>
875 </property>
876 </item>
877 <item>
878 <property name="text">
879 <string>Index</string>
880 </property>
881 </item>
882 </widget>
883 </item>
884 <item row="10" column="3" colspan="2">
885 <widget class="QLineEdit" name="specOpHeights"/>
886 </item>
887 <item row="12" column="3" colspan="2">
888 <widget class="QLineEdit" name="specOpIncoherent"/>
889 </item>
890 <item row="13" column="0" colspan="2">
891 <widget class="QCheckBox" name="specOpCebRemoveDC">
892 <property name="text">
893 <string>Remove DC</string>
894 </property>
895 </widget>
896 </item>
897 <item row="8" column="0">
898 <widget class="QCheckBox" name="specOpCebHeights">
899 <property name="text">
900 <string>Select Heights</string>
901 </property>
902 </widget>
903 </item>
904 <item row="6" column="0">
905 <widget class="QCheckBox" name="specOpCebChannel">
906 <property name="text">
907 <string>Select Channel</string>
908 </property>
909 </widget>
910 </item>
911 <item row="5" column="3" colspan="2">
912 <widget class="QLineEdit" name="specOppairsList"/>
913 </item>
914 <item row="2" column="3" colspan="2">
915 <widget class="QLineEdit" name="specOpnFFTpoints"/>
916 </item>
917 <item row="5" column="0" colspan="2">
918 <widget class="QLabel" name="label_31">
919 <property name="text">
920 <string>x-y pairs</string>
921 </property>
922 </widget>
923 </item>
924 <item row="2" column="0" colspan="2">
925 <widget class="QLabel" name="label_26">
926 <property name="text">
927 <string>nFFTPoints</string>
928 </property>
929 </widget>
930 </item>
931 <item row="11" column="0">
932 <widget class="QCheckBox" name="specOpCebIncoherent">
933 <property name="text">
934 <string>Incoherent Integration</string>
935 </property>
936 </widget>
937 </item>
938 <item row="12" column="0" colspan="2">
939 <widget class="QComboBox" name="specOpCobIncInt">
940 <item>
941 <property name="text">
942 <string>Time Interval</string>
943 </property>
944 </item>
945 <item>
946 <property name="text">
947 <string>Profiles</string>
948 </property>
949 </item>
950 </widget>
951 </item>
952 <item row="11" column="3">
953 <spacer name="horizontalSpacer_2">
954 <property name="orientation">
955 <enum>Qt::Horizontal</enum>
956 </property>
957 <property name="sizeHint" stdset="0">
958 <size>
959 <width>40</width>
960 <height>20</height>
961 </size>
962 </property>
963 </spacer>
964 </item>
965 <item row="0" column="0" colspan="2">
966 <widget class="QCheckBox" name="specOpCebRadarfrequency">
967 <property name="text">
968 <string>Radar Frequency</string>
969 </property>
970 </widget>
971 </item>
972 <item row="8" column="3">
973 <spacer name="horizontalSpacer_11">
974 <property name="orientation">
975 <enum>Qt::Horizontal</enum>
976 </property>
977 <property name="sizeHint" stdset="0">
978 <size>
979 <width>40</width>
980 <height>20</height>
981 </size>
982 </property>
983 </spacer>
984 </item>
985 <item row="6" column="3">
986 <spacer name="horizontalSpacer_8">
987 <property name="orientation">
988 <enum>Qt::Horizontal</enum>
989 </property>
990 <property name="sizeHint" stdset="0">
991 <size>
992 <width>40</width>
993 <height>20</height>
994 </size>
995 </property>
996 </spacer>
997 </item>
998 <item row="0" column="3" colspan="2">
999 <widget class="QLineEdit" name="specOpRadarfrequency"/>
1000 </item>
1001 <item row="3" column="3">
1002 <spacer name="horizontalSpacer_7">
1003 <property name="orientation">
1004 <enum>Qt::Horizontal</enum>
1005 </property>
1006 <property name="sizeHint" stdset="0">
1007 <size>
1008 <width>40</width>
1009 <height>20</height>
1010 </size>
1011 </property>
1012 </spacer>
1013 </item>
1014 <item row="1" column="0">
1015 <widget class="QLabel" name="label_21">
1016 <property name="text">
1017 <string>Profiles</string>
1018 </property>
1019 </widget>
1020 </item>
1021 <item row="1" column="3" colspan="2">
1022 <widget class="QLineEdit" name="specOpProfiles"/>
1023 </item>
1024 <item row="14" column="0">
1025 <widget class="QCheckBox" name="specOpCebRemoveInt">
1026 <property name="text">
1027 <string>Remove Interference</string>
1028 </property>
1029 </widget>
1030 </item>
1031 <item row="14" column="3">
1032 <spacer name="horizontalSpacer_12">
1033 <property name="orientation">
1034 <enum>Qt::Horizontal</enum>
1035 </property>
1036 <property name="sizeHint" stdset="0">
1037 <size>
1038 <width>40</width>
1039 <height>20</height>
1040 </size>
1041 </property>
1042 </spacer>
1043 </item>
1044 <item row="13" column="3">
1045 <widget class="QComboBox" name="specOpComRemoveDC">
1046 <item>
1047 <property name="text">
1048 <string>Mode 1</string>
1049 </property>
1050 </item>
1051 <item>
1052 <property name="text">
1053 <string>Mode 2</string>
1054 </property>
1055 </item>
1056 </widget>
1057 </item>
1058 </layout>
1059 </widget>
1060 <widget class="QWidget" name="tabgraphSpectra">
1061 <attribute name="title">
1062 <string>Graphics</string>
1063 </attribute>
1064 <layout class="QGridLayout" name="gridLayout_9">
1065 <item row="10" column="0">
1066 <widget class="QLabel" name="label_44">
1067 <property name="text">
1068 <string>Coherence Map</string>
1069 </property>
1070 </widget>
1071 </item>
1072 <item row="14" column="2">
1073 <spacer name="verticalSpacer_4">
1074 <property name="orientation">
1075 <enum>Qt::Vertical</enum>
1076 </property>
1077 <property name="sizeHint" stdset="0">
1078 <size>
1079 <width>20</width>
1080 <height>40</height>
1081 </size>
1082 </property>
1083 </spacer>
1084 </item>
1085 <item row="21" column="0">
1086 <widget class="QLabel" name="label_20">
1087 <property name="text">
1088 <string>Tmin, Tmax:</string>
1089 </property>
1090 </widget>
1091 </item>
1092 <item row="13" column="4">
1093 <widget class="QCheckBox" name="specGraphSaveRTInoise">
1094 <property name="text">
1095 <string/>
1096 </property>
1097 </widget>
1098 </item>
1099 <item row="20" column="1" colspan="7">
1100 <widget class="QLineEdit" name="specGgraphmagnitud"/>
1101 </item>
1102 <item row="6" column="4">
1103 <widget class="QCheckBox" name="specGraphSaveSpectra">
1104 <property name="text">
1105 <string/>
1106 </property>
1107 </widget>
1108 </item>
1109 <item row="15" column="1" colspan="7">
1110 <widget class="QLineEdit" name="specGgraphChannelList"/>
1111 </item>
1112 <item row="2" column="0">
1113 <widget class="QLabel" name="label_25">
1114 <property name="text">
1115 <string>Prefix :</string>
1116 </property>
1117 </widget>
1118 </item>
1119 <item row="21" column="1" colspan="7">
1120 <widget class="QLineEdit" name="specGgraphTminTmax"/>
1121 </item>
1122 <item row="27" column="6" colspan="2">
1123 <spacer name="horizontalSpacer_18">
1124 <property name="orientation">
1125 <enum>Qt::Horizontal</enum>
1126 </property>
1127 <property name="sizeHint" stdset="0">
1128 <size>
1129 <width>28</width>
1130 <height>15</height>
1131 </size>
1132 </property>
1133 </spacer>
1134 </item>
1135 <item row="3" column="5">
1136 <spacer name="verticalSpacer_3">
1137 <property name="orientation">
1138 <enum>Qt::Vertical</enum>
1139 </property>
1140 <property name="sizeHint" stdset="0">
1141 <size>
1142 <width>20</width>
1143 <height>40</height>
1144 </size>
1145 </property>
1146 </spacer>
1147 </item>
1148 <item row="9" column="0">
1149 <widget class="QLabel" name="label_42">
1150 <property name="text">
1151 <string>RTI Plot</string>
1152 </property>
1153 </widget>
1154 </item>
1155 <item row="18" column="0">
1156 <widget class="QLabel" name="label_16">
1157 <property name="text">
1158 <string>Height range:</string>
1159 </property>
1160 </widget>
1161 </item>
1162 <item row="19" column="0">
1163 <widget class="QLabel" name="label_17">
1164 <property name="text">
1165 <string>dBs range:</string>
1166 </property>
1167 </widget>
1168 </item>
1169 <item row="20" column="0">
1170 <widget class="QLabel" name="label_18">
1171 <property name="text">
1172 <string>magnitud [0-1]</string>
1173 </property>
1174 </widget>
1175 </item>
1176 <item row="16" column="1" colspan="7">
1177 <widget class="QLineEdit" name="specGgraphFreq"/>
1178 </item>
1179 <item row="18" column="1" colspan="7">
1180 <widget class="QLineEdit" name="specGgraphHeight"/>
1181 </item>
1182 <item row="27" column="0">
1183 <spacer name="horizontalSpacer_16">
1184 <property name="orientation">
1185 <enum>Qt::Horizontal</enum>
1186 </property>
1187 <property name="sizeHint" stdset="0">
1188 <size>
1189 <width>49</width>
1190 <height>15</height>
1191 </size>
1192 </property>
1193 </spacer>
1194 </item>
1195 <item row="0" column="0">
1196 <widget class="QLabel" name="label_24">
1197 <property name="text">
1198 <string>Path :</string>
1199 </property>
1200 </widget>
1201 </item>
1202 <item row="2" column="1" colspan="7">
1203 <widget class="QLineEdit" name="specGraphPrefix"/>
1204 </item>
1205 <item row="19" column="1" colspan="7">
1206 <widget class="QLineEdit" name="specGgraphDbsrange"/>
1207 </item>
1208 <item row="11" column="0">
1209 <widget class="QLabel" name="label_46">
1210 <property name="text">
1211 <string>Power Profile</string>
1212 </property>
1213 </widget>
1214 </item>
1215 <item row="16" column="0">
1216 <widget class="QLabel" name="label_22">
1217 <property name="text">
1218 <string>Freq/Vel:</string>
1219 </property>
1220 </widget>
1221 </item>
1222 <item row="0" column="1" colspan="6">
1223 <widget class="QLineEdit" name="specGraphPath"/>
1224 </item>
1225 <item row="8" column="0">
1226 <widget class="QLabel" name="label_41">
1227 <property name="text">
1228 <string>Cross Spectra Plot</string>
1229 </property>
1230 </widget>
1231 </item>
1232 <item row="0" column="7">
1233 <widget class="QToolButton" name="specGraphToolPath">
1234 <property name="text">
1235 <string>...</string>
1236 </property>
1237 </widget>
1238 </item>
1239 <item row="15" column="0">
1240 <widget class="QLabel" name="label_6">
1241 <property name="text">
1242 <string>Channel List:</string>
1243 </property>
1244 </widget>
1245 </item>
1246 <item row="6" column="0">
1247 <widget class="QLabel" name="label_40">
1248 <property name="text">
1249 <string>Spectra Plot</string>
1250 </property>
1251 </widget>
1252 </item>
1253 <item row="6" column="2">
1254 <widget class="QCheckBox" name="specGraphCebSpectraplot">
1255 <property name="text">
1256 <string/>
1257 </property>
1258 </widget>
1259 </item>
1260 <item row="8" column="2">
1261 <widget class="QCheckBox" name="specGraphCebCrossSpectraplot">
1262 <property name="text">
1263 <string/>
1264 </property>
1265 </widget>
1266 </item>
1267 <item row="9" column="2">
1268 <widget class="QCheckBox" name="specGraphCebRTIplot">
1269 <property name="text">
1270 <string/>
1271 </property>
1272 </widget>
1273 </item>
1274 <item row="10" column="2">
1275 <widget class="QCheckBox" name="specGraphCebCoherencmap">
1276 <property name="text">
1277 <string/>
1278 </property>
1279 </widget>
1280 </item>
1281 <item row="11" column="2">
1282 <widget class="QCheckBox" name="specGraphPowerprofile">
1283 <property name="text">
1284 <string/>
1285 </property>
1286 </widget>
1287 </item>
1288 <item row="8" column="4">
1289 <widget class="QCheckBox" name="specGraphSaveCross">
1290 <property name="text">
1291 <string/>
1292 </property>
1293 </widget>
1294 </item>
1295 <item row="6" column="6">
1296 <widget class="QCheckBox" name="specGraphftpSpectra">
1297 <property name="text">
1298 <string/>
1299 </property>
1300 </widget>
1301 </item>
1302 <item row="4" column="3">
1303 <spacer name="horizontalSpacer">
1304 <property name="orientation">
1305 <enum>Qt::Horizontal</enum>
1306 </property>
1307 <property name="sizeHint" stdset="0">
1308 <size>
1309 <width>40</width>
1310 <height>20</height>
1311 </size>
1312 </property>
1313 </spacer>
1314 </item>
1315 <item row="11" column="4">
1316 <widget class="QCheckBox" name="specGraphSavePowerprofile">
1317 <property name="text">
1318 <string/>
1319 </property>
1320 </widget>
1321 </item>
1322 <item row="10" column="4">
1323 <widget class="QCheckBox" name="specGraphSaveCoherencemap">
1324 <property name="text">
1325 <string/>
1326 </property>
1327 </widget>
1328 </item>
1329 <item row="27" column="4">
1330 <spacer name="horizontalSpacer_17">
1331 <property name="orientation">
1332 <enum>Qt::Horizontal</enum>
1333 </property>
1334 <property name="sizeHint" stdset="0">
1335 <size>
1336 <width>39</width>
1337 <height>15</height>
1338 </size>
1339 </property>
1340 </spacer>
1341 </item>
1342 <item row="23" column="1" colspan="7">
1343 <widget class="QLineEdit" name="specGgraphftpratio"/>
1344 </item>
1345 <item row="3" column="2" rowspan="2">
1346 <widget class="QLabel" name="label_43">
1347 <property name="text">
1348 <string>Show</string>
1349 </property>
1350 </widget>
1351 </item>
1352 <item row="8" column="6">
1353 <widget class="QCheckBox" name="specGraphftpCross">
1354 <property name="text">
1355 <string/>
1356 </property>
1357 </widget>
1358 </item>
1359 <item row="23" column="0">
1360 <widget class="QLabel" name="label_29">
1361 <property name="text">
1362 <string>Wr Period:</string>
1363 </property>
1364 </widget>
1365 </item>
1366 <item row="3" column="4" rowspan="2">
1367 <widget class="QLabel" name="label_47">
1368 <property name="text">
1369 <string>Save</string>
1370 </property>
1371 </widget>
1372 </item>
1373 <item row="9" column="6">
1374 <widget class="QCheckBox" name="specGraphftpRTIplot">
1375 <property name="text">
1376 <string/>
1377 </property>
1378 </widget>
1379 </item>
1380 <item row="10" column="6">
1381 <widget class="QCheckBox" name="specGraphftpCoherencemap">
1382 <property name="text">
1383 <string/>
1384 </property>
1385 </widget>
1386 </item>
1387 <item row="11" column="6">
1388 <widget class="QCheckBox" name="specGraphftpPowerprofile">
1389 <property name="text">
1390 <string/>
1391 </property>
1392 </widget>
1393 </item>
1394 <item row="3" column="6" rowspan="2" colspan="2">
1395 <widget class="QLabel" name="label_19">
1396 <property name="text">
1397 <string>ftp</string>
1398 </property>
1399 </widget>
1400 </item>
1401 <item row="9" column="4">
1402 <widget class="QCheckBox" name="specGraphSaveRTIplot">
1403 <property name="text">
1404 <string/>
1405 </property>
1406 </widget>
1407 </item>
1408 <item row="13" column="0">
1409 <widget class="QLabel" name="label_45">
1410 <property name="text">
1411 <string>RTI Noise</string>
1412 </property>
1413 </widget>
1414 </item>
1415 <item row="13" column="6">
1416 <widget class="QCheckBox" name="specGraphftpRTInoise">
1417 <property name="text">
1418 <string/>
1419 </property>
1420 </widget>
1421 </item>
1422 <item row="13" column="2">
1423 <widget class="QCheckBox" name="specGraphCebRTInoise">
1424 <property name="text">
1425 <string/>
1426 </property>
1427 </widget>
1428 </item>
1429 <item row="22" column="0">
1430 <widget class="QLabel" name="label_48">
1431 <property name="text">
1432 <string>Time Range:</string>
1433 </property>
1434 </widget>
1435 </item>
1436 <item row="22" column="1" colspan="7">
1437 <widget class="QLineEdit" name="specGgraphTimeRange"/>
1438 </item>
1439 </layout>
1440 </widget>
1441 <widget class="QWidget" name="taboutputSpectra">
1442 <attribute name="title">
1443 <string>Output</string>
1444 </attribute>
1445 <layout class="QGridLayout" name="gridLayout_11">
1446 <item row="0" column="0">
1447 <widget class="QLabel" name="label_39">
1448 <property name="text">
1449 <string>Type:</string>
1450 </property>
1451 </widget>
1452 </item>
1453 <item row="0" column="2" colspan="2">
1454 <widget class="QComboBox" name="specOutputComData">
1455 <item>
1456 <property name="text">
1457 <string>.pdata</string>
1458 </property>
1459 </item>
1460 </widget>
1461 </item>
1462 <item row="1" column="0">
1463 <widget class="QLabel" name="label_34">
1464 <property name="text">
1465 <string>Path:</string>
1466 </property>
1467 </widget>
1468 </item>
1469 <item row="1" column="2">
1470 <widget class="QLineEdit" name="specOutputPath"/>
1471 </item>
1472 <item row="4" column="2">
1473 <spacer name="verticalSpacer_5">
1474 <property name="orientation">
1475 <enum>Qt::Vertical</enum>
1476 </property>
1477 <property name="sizeHint" stdset="0">
1478 <size>
1479 <width>20</width>
1480 <height>40</height>
1481 </size>
1482 </property>
1483 </spacer>
1484 </item>
1485 <item row="1" column="3">
1486 <widget class="QToolButton" name="specOutputToolPath">
1487 <property name="text">
1488 <string>...</string>
1489 </property>
1490 </widget>
1491 </item>
1492 <item row="2" column="2">
1493 <widget class="QLineEdit" name="specOutputblocksperfile"/>
1494 </item>
1495 <item row="2" column="0" colspan="2">
1496 <widget class="QLabel" name="label_9">
1497 <property name="text">
1498 <string>Blocks per File: </string>
1499 </property>
1500 </widget>
1501 </item>
1502 <item row="3" column="0">
1503 <widget class="QLabel" name="label_38">
1504 <property name="text">
1505 <string>Profile per Block: </string>
1506 </property>
1507 </widget>
1508 </item>
1509 <item row="3" column="2">
1510 <widget class="QLineEdit" name="specOutputprofileperblock"/>
1511 </item>
1512 </layout>
1513 </widget>
1514 </widget>
1515 </item>
1516 </layout>
1517 </widget>
1518 <widget class="QWidget" name="tabSpectraHeis">
1519 <attribute name="title">
1520 <string>SpectraHeis</string>
1521 </attribute>
1522 <layout class="QGridLayout" name="gridLayout_23">
1523 <item row="1" column="0">
1524 <widget class="QFrame" name="frame_6">
1525 <property name="frameShape">
1526 <enum>QFrame::StyledPanel</enum>
1527 </property>
1528 <property name="frameShadow">
1529 <enum>QFrame::Raised</enum>
1530 </property>
1531 <layout class="QGridLayout" name="gridLayout_22">
1532 <item row="0" column="1">
1533 <widget class="QPushButton" name="specHeisGraphClear">
1534 <property name="text">
1535 <string>Clear</string>
1536 </property>
1537 </widget>
1538 </item>
1539 <item row="0" column="0">
1540 <widget class="QPushButton" name="specHeisOpOk">
1541 <property name="text">
1542 <string>Ok</string>
1543 </property>
1544 </widget>
1545 </item>
1546 </layout>
1547 </widget>
1548 </item>
1549 <item row="0" column="0">
1550 <widget class="QTabWidget" name="tabWidgetSpectraHeis">
1551 <property name="currentIndex">
1552 <number>0</number>
1553 </property>
1554 <widget class="QWidget" name="tabopSpectraHeis">
1555 <attribute name="title">
1556 <string>Operation</string>
1557 </attribute>
1558 <layout class="QGridLayout" name="gridLayout_21">
1559 <item row="0" column="1">
1560 <spacer name="horizontalSpacer_20">
1561 <property name="orientation">
1562 <enum>Qt::Horizontal</enum>
1563 </property>
1564 <property name="sizeHint" stdset="0">
1565 <size>
1566 <width>40</width>
1567 <height>20</height>
1568 </size>
1569 </property>
1570 </spacer>
1571 </item>
1572 <item row="1" column="0">
1573 <widget class="QComboBox" name="specHeisOpCobIncInt">
1574 <item>
1575 <property name="text">
1576 <string>Time Interval</string>
1577 </property>
1578 </item>
1579 </widget>
1580 </item>
1581 <item row="0" column="0">
1582 <widget class="QCheckBox" name="specHeisOpCebIncoherent">
1583 <property name="text">
1584 <string>Incoherent Intergration</string>
1585 </property>
1586 </widget>
1587 </item>
1588 <item row="1" column="1">
1589 <widget class="QLineEdit" name="specHeisOpIncoherent"/>
1590 </item>
1591 <item row="2" column="0">
1592 <spacer name="verticalSpacer_7">
1593 <property name="orientation">
1594 <enum>Qt::Vertical</enum>
1595 </property>
1596 <property name="sizeHint" stdset="0">
1597 <size>
1598 <width>20</width>
1599 <height>40</height>
1600 </size>
1601 </property>
1602 </spacer>
1603 </item>
1604 </layout>
1605 </widget>
1606 <widget class="QWidget" name="tabgraphSpectraHeis">
1607 <attribute name="title">
1608 <string>Graphics</string>
1609 </attribute>
1610 <layout class="QGridLayout" name="gridLayout_20">
1611 <item row="1" column="0">
1612 <widget class="QLabel" name="label_54">
1613 <property name="text">
1614 <string>Prefix</string>
1615 </property>
1616 </widget>
1617 </item>
1618 <item row="0" column="6">
1619 <widget class="QToolButton" name="specHeisGraphToolPath">
1620 <property name="text">
1621 <string>...</string>
1622 </property>
1623 </widget>
1624 </item>
1625 <item row="4" column="2">
1626 <widget class="QCheckBox" name="specHeisGraphCebRTIplot">
1627 <property name="text">
1628 <string/>
1629 </property>
1630 </widget>
1631 </item>
1632 <item row="7" column="0">
1633 <widget class="QLabel" name="label_62">
1634 <property name="text">
1635 <string>ymin - ymax</string>
1636 </property>
1637 </widget>
1638 </item>
1639 <item row="8" column="0">
1640 <widget class="QLabel" name="label_63">
1641 <property name="text">
1642 <string>Tmin - Tmax:</string>
1643 </property>
1644 </widget>
1645 </item>
1646 <item row="9" column="0">
1647 <widget class="QLabel" name="label_64">
1648 <property name="text">
1649 <string>Time Range:</string>
1650 </property>
1651 </widget>
1652 </item>
1653 <item row="10" column="0">
1654 <widget class="QLabel" name="label_65">
1655 <property name="text">
1656 <string>Wr Period</string>
1657 </property>
1658 </widget>
1659 </item>
1660 <item row="11" column="0" colspan="2">
1661 <spacer name="horizontalSpacer_14">
1662 <property name="orientation">
1663 <enum>Qt::Horizontal</enum>
1664 </property>
1665 <property name="sizeHint" stdset="0">
1666 <size>
1667 <width>134</width>
1668 <height>20</height>
1669 </size>
1670 </property>
1671 </spacer>
1672 </item>
1673 <item row="10" column="1" colspan="6">
1674 <widget class="QLineEdit" name="specHeisGgraphftpratio"/>
1675 </item>
1676 <item row="4" column="6">
1677 <widget class="QCheckBox" name="specHeisGraphftpRTIplot">
1678 <property name="text">
1679 <string/>
1680 </property>
1681 </widget>
1682 </item>
1683 <item row="8" column="1" colspan="6">
1684 <widget class="QLineEdit" name="specHeisGgraphTminTmax"/>
1685 </item>
1686 <item row="5" column="0">
1687 <widget class="QLabel" name="label_60">
1688 <property name="text">
1689 <string>Channel List:</string>
1690 </property>
1691 </widget>
1692 </item>
1693 <item row="6" column="0">
1694 <widget class="QLabel" name="label_61">
1695 <property name="text">
1696 <string>xmin - xmax</string>
1697 </property>
1698 </widget>
1699 </item>
1700 <item row="1" column="1" colspan="6">
1701 <widget class="QLineEdit" name="specHeisGraphPrefix"/>
1702 </item>
1703 <item row="2" column="4">
1704 <widget class="QLabel" name="label_56">
1705 <property name="text">
1706 <string>Save</string>
1707 </property>
1708 </widget>
1709 </item>
1710 <item row="2" column="6">
1711 <widget class="QLabel" name="label_57">
1712 <property name="text">
1713 <string>ftp</string>
1714 </property>
1715 </widget>
1716 </item>
1717 <item row="3" column="0">
1718 <widget class="QLabel" name="label_58">
1719 <property name="text">
1720 <string>Spectra Plot</string>
1721 </property>
1722 </widget>
1723 </item>
1724 <item row="3" column="2">
1725 <widget class="QCheckBox" name="specHeisGraphCebSpectraplot">
1726 <property name="text">
1727 <string/>
1728 </property>
1729 </widget>
1730 </item>
1731 <item row="7" column="1" colspan="6">
1732 <widget class="QLineEdit" name="specHeisGgraphYminYmax"/>
1733 </item>
1734 <item row="0" column="0">
1735 <widget class="QLabel" name="label_53">
1736 <property name="text">
1737 <string>Path</string>
1738 </property>
1739 </widget>
1740 </item>
1741 <item row="2" column="2">
1742 <widget class="QLabel" name="label_55">
1743 <property name="text">
1744 <string>Show</string>
1745 </property>
1746 </widget>
1747 </item>
1748 <item row="4" column="4">
1749 <widget class="QCheckBox" name="specHeisGraphSaveRTIplot">
1750 <property name="text">
1751 <string/>
1752 </property>
1753 </widget>
1754 </item>
1755 <item row="2" column="3">
1756 <spacer name="horizontalSpacer_13">
1757 <property name="orientation">
1758 <enum>Qt::Horizontal</enum>
1759 </property>
1760 <property name="sizeHint" stdset="0">
1761 <size>
1762 <width>40</width>
1763 <height>20</height>
1764 </size>
1765 </property>
1766 </spacer>
1767 </item>
1768 <item row="6" column="1" colspan="6">
1769 <widget class="QLineEdit" name="specHeisGgraphXminXmax"/>
1770 </item>
1771 <item row="5" column="1" colspan="6">
1772 <widget class="QLineEdit" name="specHeisGgraphChannelList"/>
1773 </item>
1774 <item row="9" column="1" colspan="6">
1775 <widget class="QLineEdit" name="specHeisGgraphTimeRange"/>
1776 </item>
1777 <item row="11" column="3" colspan="3">
1778 <spacer name="horizontalSpacer_19">
1779 <property name="orientation">
1780 <enum>Qt::Horizontal</enum>
1781 </property>
1782 <property name="sizeHint" stdset="0">
1783 <size>
1784 <width>106</width>
1785 <height>20</height>
1786 </size>
1787 </property>
1788 </spacer>
1789 </item>
1790 <item row="3" column="4">
1791 <widget class="QCheckBox" name="specHeisGraphSaveSpectra">
1792 <property name="text">
1793 <string/>
1794 </property>
1795 </widget>
1796 </item>
1797 <item row="3" column="6">
1798 <widget class="QCheckBox" name="specHeisGraphftpSpectra">
1799 <property name="text">
1800 <string/>
1801 </property>
1802 </widget>
1803 </item>
1804 <item row="4" column="0">
1805 <widget class="QLabel" name="label_59">
1806 <property name="text">
1807 <string>RTI PLot</string>
1808 </property>
1809 </widget>
1810 </item>
1811 <item row="2" column="5">
1812 <spacer name="horizontalSpacer_21">
1813 <property name="orientation">
1814 <enum>Qt::Horizontal</enum>
1815 </property>
1816 <property name="sizeHint" stdset="0">
1817 <size>
1818 <width>40</width>
1819 <height>20</height>
1820 </size>
1821 </property>
1822 </spacer>
1823 </item>
1824 <item row="0" column="1" colspan="5">
1825 <widget class="QLineEdit" name="specHeisGraphPath"/>
1826 </item>
1827 </layout>
1828 </widget>
1829 <widget class="QWidget" name="taboutputSpectraHeis">
1830 <attribute name="title">
1831 <string>Output</string>
1832 </attribute>
1833 <layout class="QGridLayout" name="gridLayout_19">
1834 <item row="1" column="0">
1835 <widget class="QLabel" name="label_67">
1836 <property name="text">
1837 <string>Path:</string>
1838 </property>
1839 </widget>
1840 </item>
1841 <item row="2" column="0" colspan="2">
1842 <widget class="QLabel" name="label_68">
1843 <property name="text">
1844 <string>Blocks per File:</string>
1845 </property>
1846 </widget>
1847 </item>
1848 <item row="0" column="0">
1849 <widget class="QLabel" name="label_66">
1850 <property name="text">
1851 <string>Type:</string>
1852 </property>
1853 </widget>
1854 </item>
1855 <item row="4" column="0">
1856 <spacer name="verticalSpacer_8">
1857 <property name="orientation">
1858 <enum>Qt::Vertical</enum>
1859 </property>
1860 <property name="sizeHint" stdset="0">
1861 <size>
1862 <width>20</width>
1863 <height>40</height>
1864 </size>
1865 </property>
1866 </spacer>
1867 </item>
1868 <item row="1" column="4">
1869 <widget class="QToolButton" name="specHeisOutputToolPath">
1870 <property name="text">
1871 <string>...</string>
1872 </property>
1873 </widget>
1874 </item>
1875 <item row="1" column="3">
1876 <widget class="QLineEdit" name="specHeisOutputPath"/>
1877 </item>
1878 <item row="0" column="3" colspan="2">
1879 <widget class="QComboBox" name="specHeisOutputComdata">
1880 <item>
1881 <property name="text">
1882 <string>.fits</string>
1883 </property>
1884 </item>
1885 </widget>
1886 </item>
1887 <item row="3" column="0" colspan="2">
1888 <widget class="QLabel" name="label_69">
1889 <property name="text">
1890 <string>Metada</string>
1891 </property>
1892 </widget>
1893 </item>
1894 <item row="2" column="3">
1895 <widget class="QLineEdit" name="specHeisOutputblocksperfile"/>
1896 </item>
1897 <item row="3" column="3">
1898 <widget class="QLineEdit" name="specHeisOutputMetada"/>
1899 </item>
1900 <item row="3" column="4">
1901 <widget class="QToolButton" name="specHeisOutputMetadaToolPath">
1902 <property name="text">
1903 <string>...</string>
1904 </property>
1905 </widget>
1906 </item>
1907 </layout>
1908 </widget>
1909 </widget>
1910 </item>
1911 </layout>
1912 </widget>
1913 <widget class="QWidget" name="tabCorrelation">
1914 <attribute name="title">
1915 <string>Correlation</string>
1916 </attribute>
1917 <layout class="QGridLayout" name="gridLayout_13">
1918 <item row="0" column="0">
1919 <widget class="QTabWidget" name="tabWidget_2">
1920 <property name="currentIndex">
1921 <number>0</number>
1922 </property>
1923 <widget class="QWidget" name="tabopCorrelation">
1924 <attribute name="title">
1925 <string>Operation</string>
1926 </attribute>
1927 </widget>
1928 <widget class="QWidget" name="tabopCorrelation">
1929 <attribute name="title">
1930 <string>Graphics</string>
1931 </attribute>
1932 </widget>
1933 </widget>
1934 </item>
1935 </layout>
1936 </widget>
1937 </widget>
1938 <widget class="QTabWidget" name="tabConsole">
1939 <property name="minimumSize">
1940 <size>
1941 <width>0</width>
1942 <height>0</height>
1943 </size>
1944 </property>
1945 <property name="currentIndex">
1946 <number>0</number>
1947 </property>
1948 <widget class="QWidget" name="tab_5">
1949 <attribute name="title">
1950 <string>Console</string>
1951 </attribute>
1952 <layout class="QGridLayout" name="gridLayout_4">
1953 <item row="0" column="0">
1954 <widget class="QTextEdit" name="console"/>
1955 </item>
1956 </layout>
1957 </widget>
1958 </widget>
1959 </widget>
1960 <widget class="QTabWidget" name="tabWidget">
1961 <property name="currentIndex">
1962 <number>0</number>
1963 </property>
1964 <widget class="QWidget" name="tabProjectProperty">
1965 <attribute name="title">
1966 <string>Project Property</string>
1967 </attribute>
1968 <layout class="QGridLayout" name="gridLayout_8">
1969 <item row="0" column="0">
1970 <widget class="QTreeView" name="treeProjectProperties"/>
1971 </item>
1972 </layout>
1973 </widget>
1974 </widget>
1975 </widget>
1976 </item>
1977 </layout>
1978 </widget>
1979 <widget class="QToolBar" name="toolBar">
1980 <property name="windowTitle">
1981 <string>toolBar</string>
1982 </property>
1983 <attribute name="toolBarArea">
1984 <enum>TopToolBarArea</enum>
1985 </attribute>
1986 <attribute name="toolBarBreak">
1987 <bool>false</bool>
1988 </attribute>
1989 <addaction name="actionOpenToolbar"/>
1990 <addaction name="separator"/>
1991 <addaction name="actionCreateToolbar"/>
1992 <addaction name="separator"/>
1993 <addaction name="actionAddPU"/>
1994 <addaction name="separator"/>
1995 <addaction name="actionSaveToolbar"/>
1996 <addaction name="separator"/>
1997 <addaction name="actionStarToolbar"/>
1998 <addaction name="separator"/>
1999 <addaction name="actionPauseToolbar"/>
2000 <addaction name="separator"/>
2001 <addaction name="actionStopToolbar"/>
2002 <addaction name="separator"/>
2003 </widget>
2004 <widget class="QMenuBar" name="menuBar">
2005 <property name="geometry">
2006 <rect>
2007 <x>0</x>
2008 <y>0</y>
2009 <width>1065</width>
2010 <height>25</height>
2011 </rect>
2012 </property>
2013 <widget class="QMenu" name="menuProject">
2014 <property name="title">
2015 <string>Project</string>
2016 </property>
2017 <addaction name="actionOpen"/>
2018 <addaction name="actionCreate"/>
2019 <addaction name="actionSave"/>
2020 <addaction name="actionClose"/>
2021 </widget>
2022 <widget class="QMenu" name="menuRun">
2023 <property name="title">
2024 <string>Run</string>
2025 </property>
2026 <addaction name="actionStart"/>
2027 <addaction name="actionPause"/>
2028 </widget>
2029 <widget class="QMenu" name="menuOptions">
2030 <property name="title">
2031 <string>Options</string>
2032 </property>
2033 <addaction name="actionFTP"/>
2034 </widget>
2035 <widget class="QMenu" name="menuHelp">
2036 <property name="title">
2037 <string>Help</string>
2038 </property>
2039 <addaction name="actionAbout"/>
2040 </widget>
2041 <addaction name="menuProject"/>
2042 <addaction name="menuRun"/>
2043 <addaction name="menuOptions"/>
2044 <addaction name="menuHelp"/>
2045 </widget>
2046 <action name="actionOpen">
2047 <property name="icon">
2048 <iconset>
2049 <normaloff>../Documents/figure/open.png</normaloff>../Documents/figure/open.png</iconset>
2050 </property>
2051 <property name="text">
2052 <string>Open</string>
2053 </property>
2054 </action>
2055 <action name="actionCreate">
2056 <property name="icon">
2057 <iconset>
2058 <normaloff>../Documents/figure/create_class_obj.png</normaloff>../Documents/figure/create_class_obj.png</iconset>
2059 </property>
2060 <property name="text">
2061 <string>Create</string>
2062 </property>
2063 </action>
2064 <action name="actionSave">
2065 <property name="icon">
2066 <iconset>
2067 <normaloff>../Documents/figure/save.gif</normaloff>../Documents/figure/save.gif</iconset>
2068 </property>
2069 <property name="text">
2070 <string>Save</string>
2071 </property>
2072 </action>
2073 <action name="actionClose">
2074 <property name="text">
2075 <string>Close</string>
2076 </property>
2077 </action>
2078 <action name="actionStart">
2079 <property name="icon">
2080 <iconset>
2081 <normaloff>../Documents/figure/startServer.png</normaloff>../Documents/figure/startServer.png</iconset>
2082 </property>
2083 <property name="text">
2084 <string>Start</string>
2085 </property>
2086 </action>
2087 <action name="actionPause">
2088 <property name="text">
2089 <string>Pause</string>
2090 </property>
2091 </action>
2092 <action name="actionAbout">
2093 <property name="text">
2094 <string>About</string>
2095 </property>
2096 </action>
2097 <action name="actionOpenToolbar">
2098 <property name="icon">
2099 <iconset>
2100 <normaloff>../Documents/figure/open.png</normaloff>../Documents/figure/open.png</iconset>
2101 </property>
2102 <property name="text">
2103 <string>openToolbar</string>
2104 </property>
2105 <property name="toolTip">
2106 <string>Open</string>
2107 </property>
2108 </action>
2109 <action name="actionCreateToolbar">
2110 <property name="icon">
2111 <iconset>
2112 <normaloff>../Documents/figure/create_class_obj.png</normaloff>../Documents/figure/create_class_obj.png</iconset>
2113 </property>
2114 <property name="text">
2115 <string>createToolbar</string>
2116 </property>
2117 <property name="toolTip">
2118 <string>Create</string>
2119 </property>
2120 </action>
2121 <action name="actionSaveToolbar">
2122 <property name="icon">
2123 <iconset>
2124 <normaloff>../Documents/figure/save.gif</normaloff>../Documents/figure/save.gif</iconset>
2125 </property>
2126 <property name="text">
2127 <string>saveToolbar</string>
2128 </property>
2129 <property name="toolTip">
2130 <string>Save</string>
2131 </property>
2132 </action>
2133 <action name="actionStarToolbar">
2134 <property name="icon">
2135 <iconset>
2136 <normaloff>../Documents/figure/startServer.png</normaloff>../Documents/figure/startServer.png</iconset>
2137 </property>
2138 <property name="text">
2139 <string>starToolbar</string>
2140 </property>
2141 <property name="toolTip">
2142 <string>Start</string>
2143 </property>
2144 </action>
2145 <action name="actionStopToolbar">
2146 <property name="icon">
2147 <iconset>
2148 <normaloff>../Documents/figure/stopServer.png</normaloff>../Documents/figure/stopServer.png</iconset>
2149 </property>
2150 <property name="text">
2151 <string>stopToolbar</string>
2152 </property>
2153 <property name="toolTip">
2154 <string>Stop</string>
2155 </property>
2156 </action>
2157 <action name="actionPauseToolbar">
2158 <property name="icon">
2159 <iconset>
2160 <normaloff>../workspace/branch_gui_may/gui/figure/pause.png</normaloff>../workspace/branch_gui_may/gui/figure/pause.png</iconset>
2161 </property>
2162 <property name="text">
2163 <string>pauseToolbar</string>
2164 </property>
2165 <property name="toolTip">
2166 <string>Pause</string>
2167 </property>
2168 </action>
2169 <action name="actionAddPU">
2170 <property name="icon">
2171 <iconset>
2172 <normaloff>../addpu.jpg</normaloff>../addpu.jpg</iconset>
2173 </property>
2174 <property name="text">
2175 <string>addPU</string>
2176 </property>
2177 </action>
2178 <action name="actionFTP">
2179 <property name="text">
2180 <string>FTP</string>
2181 </property>
2182 </action>
2183 </widget>
2184 <resources/>
2185 <connections/>
2186 </ui>
This diff has been collapsed as it changes many lines, (2206 lines changed) Show them Hide them
@@ -1,2206 +0,0
1 <?xml version="1.0" encoding="UTF-8"?>
2 <ui version="4.0">
3 <class>MainWindow</class>
4 <widget class="QMainWindow" name="MainWindow">
5 <property name="geometry">
6 <rect>
7 <x>0</x>
8 <y>0</y>
9 <width>1065</width>
10 <height>711</height>
11 </rect>
12 </property>
13 <property name="windowTitle">
14 <string>MainWindow</string>
15 </property>
16 <widget class="QWidget" name="centralWidget">
17 <layout class="QGridLayout" name="gridLayout_16">
18 <item row="1" column="0">
19 <widget class="QSplitter" name="splitter_2">
20 <property name="orientation">
21 <enum>Qt::Horizontal</enum>
22 </property>
23 <widget class="QTreeView" name="treeProjectExplorer"/>
24 <widget class="QSplitter" name="splitter">
25 <property name="orientation">
26 <enum>Qt::Vertical</enum>
27 </property>
28 <widget class="QTabWidget" name="tabWidgetProject">
29 <property name="minimumSize">
30 <size>
31 <width>0</width>
32 <height>278</height>
33 </size>
34 </property>
35 <property name="maximumSize">
36 <size>
37 <width>16777215</width>
38 <height>16777215</height>
39 </size>
40 </property>
41 <property name="currentIndex">
42 <number>0</number>
43 </property>
44 <widget class="QWidget" name="tabProject">
45 <attribute name="title">
46 <string>Project</string>
47 </attribute>
48 <layout class="QGridLayout" name="gridLayout_15">
49 <item row="0" column="0">
50 <widget class="QFrame" name="frame">
51 <property name="frameShape">
52 <enum>QFrame::StyledPanel</enum>
53 </property>
54 <property name="frameShadow">
55 <enum>QFrame::Raised</enum>
56 </property>
57 <layout class="QGridLayout" name="gridLayout_2">
58 <item row="0" column="0">
59 <widget class="QLabel" name="label">
60 <property name="text">
61 <string>Project Name :</string>
62 </property>
63 </widget>
64 </item>
65 <item row="0" column="1" colspan="8">
66 <widget class="QLineEdit" name="proName"/>
67 </item>
68 <item row="1" column="0">
69 <widget class="QLabel" name="label_11">
70 <property name="text">
71 <string>DataType :</string>
72 </property>
73 </widget>
74 </item>
75 <item row="1" column="1" colspan="5">
76 <widget class="QComboBox" name="proComDataType">
77 <item>
78 <property name="text">
79 <string>Voltage</string>
80 </property>
81 </item>
82 <item>
83 <property name="text">
84 <string>Spectra</string>
85 </property>
86 </item>
87 <item>
88 <property name="text">
89 <string>Fits</string>
90 </property>
91 </item>
92 </widget>
93 </item>
94 <item row="1" column="6" colspan="3">
95 <widget class="QLineEdit" name="proDataType"/>
96 </item>
97 <item row="2" column="0">
98 <widget class="QLabel" name="label_15">
99 <property name="text">
100 <string>DataPath :</string>
101 </property>
102 </widget>
103 </item>
104 <item row="2" column="1">
105 <widget class="QToolButton" name="proToolPath">
106 <property name="text">
107 <string>...</string>
108 </property>
109 </widget>
110 </item>
111 <item row="2" column="2" colspan="7">
112 <widget class="QLineEdit" name="proDataPath"/>
113 </item>
114 <item row="3" column="0">
115 <widget class="QLabel" name="label_23">
116 <property name="text">
117 <string>Read Mode:</string>
118 </property>
119 </widget>
120 </item>
121 <item row="3" column="1" colspan="2">
122 <widget class="QComboBox" name="proComReadMode">
123 <item>
124 <property name="text">
125 <string>Off Line</string>
126 </property>
127 </item>
128 <item>
129 <property name="text">
130 <string>On Line</string>
131 </property>
132 </item>
133 </widget>
134 </item>
135 <item row="3" column="5" colspan="2">
136 <widget class="QLabel" name="label_33">
137 <property name="text">
138 <string>Delay:</string>
139 </property>
140 </widget>
141 </item>
142 <item row="3" column="8">
143 <widget class="QLineEdit" name="proDelay"/>
144 </item>
145 <item row="4" column="0">
146 <widget class="QLabel" name="label_32">
147 <property name="text">
148 <string>Walk :</string>
149 </property>
150 </widget>
151 </item>
152 <item row="4" column="1" colspan="8">
153 <widget class="QComboBox" name="proComWalk">
154 <item>
155 <property name="text">
156 <string>Search 0</string>
157 </property>
158 </item>
159 <item>
160 <property name="text">
161 <string>Search 1</string>
162 </property>
163 </item>
164 </widget>
165 </item>
166 <item row="5" column="0" colspan="9">
167 <widget class="QPushButton" name="proLoadButton">
168 <property name="text">
169 <string>Load</string>
170 </property>
171 </widget>
172 </item>
173 <item row="3" column="3">
174 <widget class="QLabel" name="label_10">
175 <property name="text">
176 <string>Set:</string>
177 </property>
178 </widget>
179 </item>
180 <item row="3" column="4">
181 <widget class="QLineEdit" name="proSet"/>
182 </item>
183 </layout>
184 </widget>
185 </item>
186 <item row="1" column="0">
187 <widget class="QFrame" name="frame_2">
188 <property name="frameShape">
189 <enum>QFrame::StyledPanel</enum>
190 </property>
191 <property name="frameShadow">
192 <enum>QFrame::Raised</enum>
193 </property>
194 <layout class="QGridLayout" name="gridLayout_10">
195 <item row="0" column="0">
196 <widget class="QLabel" name="label_27">
197 <property name="text">
198 <string>Star Date:</string>
199 </property>
200 </widget>
201 </item>
202 <item row="0" column="1">
203 <widget class="QComboBox" name="proComStartDate"/>
204 </item>
205 <item row="1" column="0">
206 <widget class="QLabel" name="label_28">
207 <property name="text">
208 <string>End Date:</string>
209 </property>
210 </widget>
211 </item>
212 <item row="1" column="1">
213 <widget class="QComboBox" name="proComEndDate"/>
214 </item>
215 <item row="2" column="0">
216 <widget class="QLabel" name="label_2">
217 <property name="text">
218 <string>Start Time:</string>
219 </property>
220 </widget>
221 </item>
222 <item row="2" column="1">
223 <widget class="QTimeEdit" name="proStartTime"/>
224 </item>
225 <item row="3" column="0">
226 <widget class="QLabel" name="label_3">
227 <property name="text">
228 <string>End Time:</string>
229 </property>
230 </widget>
231 </item>
232 <item row="3" column="1">
233 <widget class="QTimeEdit" name="proEndTime"/>
234 </item>
235 <item row="4" column="0">
236 <widget class="QLabel" name="label_30">
237 <property name="text">
238 <string>Description:</string>
239 </property>
240 </widget>
241 </item>
242 <item row="4" column="1">
243 <widget class="QTextEdit" name="proDescription"/>
244 </item>
245 </layout>
246 </widget>
247 </item>
248 <item row="2" column="0">
249 <widget class="QFrame" name="frame_3">
250 <property name="frameShape">
251 <enum>QFrame::StyledPanel</enum>
252 </property>
253 <property name="frameShadow">
254 <enum>QFrame::Raised</enum>
255 </property>
256 <layout class="QGridLayout" name="gridLayout_14">
257 <item row="0" column="0">
258 <widget class="QPushButton" name="proOk">
259 <property name="text">
260 <string>Ok</string>
261 </property>
262 </widget>
263 </item>
264 <item row="0" column="1">
265 <widget class="QPushButton" name="proClear">
266 <property name="text">
267 <string>Clear</string>
268 </property>
269 </widget>
270 </item>
271 </layout>
272 </widget>
273 </item>
274 </layout>
275 </widget>
276 <widget class="QWidget" name="tabVoltage">
277 <attribute name="title">
278 <string>Voltage</string>
279 </attribute>
280 <layout class="QGridLayout" name="gridLayout_3">
281 <item row="1" column="1">
282 <widget class="QFrame" name="frame_4">
283 <property name="frameShape">
284 <enum>QFrame::StyledPanel</enum>
285 </property>
286 <property name="frameShadow">
287 <enum>QFrame::Raised</enum>
288 </property>
289 <layout class="QGridLayout" name="gridLayout_17">
290 <item row="0" column="0">
291 <widget class="QPushButton" name="volOpOk">
292 <property name="text">
293 <string>Ok</string>
294 </property>
295 </widget>
296 </item>
297 <item row="0" column="1">
298 <widget class="QPushButton" name="volGraphClear">
299 <property name="text">
300 <string>Clear</string>
301 </property>
302 </widget>
303 </item>
304 </layout>
305 </widget>
306 </item>
307 <item row="0" column="1">
308 <widget class="QTabWidget" name="tabWidgetVoltage">
309 <property name="currentIndex">
310 <number>0</number>
311 </property>
312 <widget class="QWidget" name="tabopVoltage">
313 <attribute name="title">
314 <string>Operation</string>
315 </attribute>
316 <layout class="QGridLayout" name="gridLayout">
317 <item row="4" column="4">
318 <widget class="QLineEdit" name="volOpHeights"/>
319 </item>
320 <item row="4" column="0" colspan="3">
321 <widget class="QComboBox" name="volOpComHeights">
322 <item>
323 <property name="text">
324 <string>Value</string>
325 </property>
326 </item>
327 <item>
328 <property name="text">
329 <string>Index</string>
330 </property>
331 </item>
332 </widget>
333 </item>
334 <item row="2" column="0" colspan="3">
335 <widget class="QComboBox" name="volOpComChannels">
336 <item>
337 <property name="text">
338 <string>Value</string>
339 </property>
340 </item>
341 <item>
342 <property name="text">
343 <string>Index</string>
344 </property>
345 </item>
346 </widget>
347 </item>
348 <item row="6" column="0" colspan="3">
349 <widget class="QCheckBox" name="volOpCebProfile">
350 <property name="text">
351 <string>Profile Selector</string>
352 </property>
353 </widget>
354 </item>
355 <item row="7" column="0" colspan="3">
356 <widget class="QComboBox" name="volOpComProfile">
357 <item>
358 <property name="text">
359 <string>Profile List</string>
360 </property>
361 </item>
362 <item>
363 <property name="text">
364 <string>Profile Range List</string>
365 </property>
366 </item>
367 </widget>
368 </item>
369 <item row="8" column="0" colspan="3">
370 <widget class="QCheckBox" name="volOpCebDecodification">
371 <property name="text">
372 <string>Decoder</string>
373 </property>
374 </widget>
375 </item>
376 <item row="11" column="0" colspan="3">
377 <widget class="QCheckBox" name="volOpCebCohInt">
378 <property name="text">
379 <string>Coherent Integration</string>
380 </property>
381 </widget>
382 </item>
383 <item row="7" column="4">
384 <widget class="QLineEdit" name="volOpProfile"/>
385 </item>
386 <item row="5" column="4">
387 <widget class="QLineEdit" name="volOpFilter"/>
388 </item>
389 <item row="6" column="4">
390 <spacer name="horizontalSpacer_4">
391 <property name="orientation">
392 <enum>Qt::Horizontal</enum>
393 </property>
394 <property name="sizeHint" stdset="0">
395 <size>
396 <width>40</width>
397 <height>20</height>
398 </size>
399 </property>
400 </spacer>
401 </item>
402 <item row="8" column="4">
403 <spacer name="horizontalSpacer_6">
404 <property name="orientation">
405 <enum>Qt::Horizontal</enum>
406 </property>
407 <property name="sizeHint" stdset="0">
408 <size>
409 <width>40</width>
410 <height>20</height>
411 </size>
412 </property>
413 </spacer>
414 </item>
415 <item row="3" column="4">
416 <spacer name="horizontalSpacer_5">
417 <property name="orientation">
418 <enum>Qt::Horizontal</enum>
419 </property>
420 <property name="sizeHint" stdset="0">
421 <size>
422 <width>40</width>
423 <height>20</height>
424 </size>
425 </property>
426 </spacer>
427 </item>
428 <item row="2" column="4">
429 <widget class="QLineEdit" name="volOpChannel"/>
430 </item>
431 <item row="9" column="2">
432 <widget class="QLabel" name="label_4">
433 <property name="text">
434 <string>Code:</string>
435 </property>
436 </widget>
437 </item>
438 <item row="1" column="0" colspan="3">
439 <widget class="QCheckBox" name="volOpCebChannels">
440 <property name="text">
441 <string>Select Channels</string>
442 </property>
443 </widget>
444 </item>
445 <item row="3" column="0" colspan="3">
446 <widget class="QCheckBox" name="volOpCebHeights">
447 <property name="text">
448 <string>Select Heights</string>
449 </property>
450 </widget>
451 </item>
452 <item row="5" column="0" colspan="3">
453 <widget class="QCheckBox" name="volOpCebFilter">
454 <property name="text">
455 <string>Filter</string>
456 </property>
457 </widget>
458 </item>
459 <item row="0" column="4">
460 <widget class="QLineEdit" name="volOpRadarfrequency"/>
461 </item>
462 <item row="0" column="0" colspan="3">
463 <widget class="QCheckBox" name="volOpCebRadarfrequency">
464 <property name="text">
465 <string>Radar Frequency</string>
466 </property>
467 </widget>
468 </item>
469 <item row="10" column="2">
470 <widget class="QLabel" name="label_5">
471 <property name="text">
472 <string>Mode:</string>
473 </property>
474 </widget>
475 </item>
476 <item row="1" column="4">
477 <spacer name="horizontalSpacer_3">
478 <property name="orientation">
479 <enum>Qt::Horizontal</enum>
480 </property>
481 <property name="sizeHint" stdset="0">
482 <size>
483 <width>40</width>
484 <height>20</height>
485 </size>
486 </property>
487 </spacer>
488 </item>
489 <item row="11" column="4">
490 <widget class="QLineEdit" name="volOpCohInt"/>
491 </item>
492 <item row="9" column="4">
493 <widget class="QComboBox" name="volOpComCode">
494 <item>
495 <property name="text">
496 <string>Barker 3</string>
497 </property>
498 </item>
499 <item>
500 <property name="text">
501 <string>Barker 4</string>
502 </property>
503 </item>
504 <item>
505 <property name="text">
506 <string>Barker 5</string>
507 </property>
508 </item>
509 <item>
510 <property name="text">
511 <string>Barker 7</string>
512 </property>
513 </item>
514 <item>
515 <property name="text">
516 <string>Barker 11</string>
517 </property>
518 </item>
519 <item>
520 <property name="text">
521 <string>Barker 13</string>
522 </property>
523 </item>
524 <item>
525 <property name="text">
526 <string>Barker 3 + Comp.</string>
527 </property>
528 </item>
529 <item>
530 <property name="text">
531 <string>Barker 4 + Comp.</string>
532 </property>
533 </item>
534 <item>
535 <property name="text">
536 <string>Barker 5 + Comp.</string>
537 </property>
538 </item>
539 <item>
540 <property name="text">
541 <string>Barker 7 + Comp.</string>
542 </property>
543 </item>
544 <item>
545 <property name="text">
546 <string>Barker 11+ Comp.</string>
547 </property>
548 </item>
549 <item>
550 <property name="text">
551 <string>Barker 13+ Comp.</string>
552 </property>
553 </item>
554 <item>
555 <property name="text">
556 <string>None</string>
557 </property>
558 </item>
559 </widget>
560 </item>
561 <item row="10" column="4">
562 <widget class="QComboBox" name="volOpComMode">
563 <item>
564 <property name="text">
565 <string>Time</string>
566 </property>
567 </item>
568 <item>
569 <property name="text">
570 <string>Freq 1</string>
571 </property>
572 </item>
573 </widget>
574 </item>
575 </layout>
576 </widget>
577 <widget class="QWidget" name="tabgraphVoltage">
578 <attribute name="title">
579 <string>Graphics</string>
580 </attribute>
581 <layout class="QGridLayout" name="gridLayout_6">
582 <item row="12" column="3">
583 <spacer name="verticalSpacer_2">
584 <property name="orientation">
585 <enum>Qt::Vertical</enum>
586 </property>
587 <property name="sizeHint" stdset="0">
588 <size>
589 <width>20</width>
590 <height>40</height>
591 </size>
592 </property>
593 </spacer>
594 </item>
595 <item row="9" column="1" colspan="6">
596 <widget class="QLineEdit" name="volGraphfreqrange"/>
597 </item>
598 <item row="2" column="1" colspan="6">
599 <widget class="QLineEdit" name="volGraphPrefix"/>
600 </item>
601 <item row="1" column="5" colspan="2">
602 <widget class="QToolButton" name="volGraphToolPath">
603 <property name="text">
604 <string>...</string>
605 </property>
606 </widget>
607 </item>
608 <item row="1" column="1" colspan="4">
609 <widget class="QLineEdit" name="volGraphPath"/>
610 </item>
611 <item row="6" column="0">
612 <widget class="QLabel" name="label_14">
613 <property name="text">
614 <string>Scope</string>
615 </property>
616 </widget>
617 </item>
618 <item row="3" column="3">
619 <spacer name="verticalSpacer">
620 <property name="orientation">
621 <enum>Qt::Vertical</enum>
622 </property>
623 <property name="sizeHint" stdset="0">
624 <size>
625 <width>20</width>
626 <height>40</height>
627 </size>
628 </property>
629 </spacer>
630 </item>
631 <item row="8" column="0">
632 <widget class="QLabel" name="label_8">
633 <property name="text">
634 <string>Channel List</string>
635 </property>
636 </widget>
637 </item>
638 <item row="4" column="3">
639 <widget class="QLabel" name="label_49">
640 <property name="text">
641 <string>Show</string>
642 </property>
643 </widget>
644 </item>
645 <item row="9" column="0">
646 <widget class="QLabel" name="label_51">
647 <property name="text">
648 <string>Freq/Vel</string>
649 </property>
650 </widget>
651 </item>
652 <item row="6" column="3">
653 <widget class="QCheckBox" name="volGraphCebshow">
654 <property name="text">
655 <string/>
656 </property>
657 </widget>
658 </item>
659 <item row="1" column="0">
660 <widget class="QLabel" name="label_12">
661 <property name="text">
662 <string>Path :</string>
663 </property>
664 </widget>
665 </item>
666 <item row="2" column="0">
667 <widget class="QLabel" name="label_13">
668 <property name="text">
669 <string>Prefix:</string>
670 </property>
671 </widget>
672 </item>
673 <item row="11" column="0">
674 <widget class="QLabel" name="label_52">
675 <property name="text">
676 <string>Height range</string>
677 </property>
678 </widget>
679 </item>
680 <item row="14" column="5" colspan="2">
681 <spacer name="horizontalSpacer_10">
682 <property name="orientation">
683 <enum>Qt::Horizontal</enum>
684 </property>
685 <property name="sizeHint" stdset="0">
686 <size>
687 <width>40</width>
688 <height>12</height>
689 </size>
690 </property>
691 </spacer>
692 </item>
693 <item row="14" column="3">
694 <spacer name="horizontalSpacer_9">
695 <property name="orientation">
696 <enum>Qt::Horizontal</enum>
697 </property>
698 <property name="sizeHint" stdset="0">
699 <size>
700 <width>18</width>
701 <height>12</height>
702 </size>
703 </property>
704 </spacer>
705 </item>
706 <item row="8" column="1" colspan="6">
707 <widget class="QLineEdit" name="volGraphChannelList"/>
708 </item>
709 <item row="11" column="1" colspan="6">
710 <widget class="QLineEdit" name="volGraphHeightrange"/>
711 </item>
712 <item row="4" column="4">
713 <widget class="QLabel" name="label_50">
714 <property name="text">
715 <string>Save</string>
716 </property>
717 </widget>
718 </item>
719 <item row="6" column="4">
720 <widget class="QCheckBox" name="volGraphCebSave">
721 <property name="text">
722 <string/>
723 </property>
724 </widget>
725 </item>
726 </layout>
727 </widget>
728 <widget class="QWidget" name="taboutputVoltage">
729 <attribute name="title">
730 <string>Output</string>
731 </attribute>
732 <layout class="QGridLayout" name="gridLayout_12">
733 <item row="0" column="0">
734 <widget class="QLabel" name="label_36">
735 <property name="text">
736 <string>Type:</string>
737 </property>
738 </widget>
739 </item>
740 <item row="1" column="0">
741 <widget class="QLabel" name="label_37">
742 <property name="text">
743 <string>Path:</string>
744 </property>
745 </widget>
746 </item>
747 <item row="1" column="2">
748 <widget class="QLineEdit" name="volOutputPath"/>
749 </item>
750 <item row="1" column="3">
751 <widget class="QToolButton" name="volOutputToolPath">
752 <property name="text">
753 <string>...</string>
754 </property>
755 </widget>
756 </item>
757 <item row="0" column="2" colspan="2">
758 <widget class="QComboBox" name="volOutputComData">
759 <item>
760 <property name="text">
761 <string>.rawdata</string>
762 </property>
763 </item>
764 </widget>
765 </item>
766 <item row="5" column="2">
767 <spacer name="verticalSpacer_6">
768 <property name="orientation">
769 <enum>Qt::Vertical</enum>
770 </property>
771 <property name="sizeHint" stdset="0">
772 <size>
773 <width>20</width>
774 <height>40</height>
775 </size>
776 </property>
777 </spacer>
778 </item>
779 <item row="3" column="2">
780 <widget class="QLineEdit" name="volOutputblocksperfile"/>
781 </item>
782 <item row="3" column="0">
783 <widget class="QLabel" name="label_7">
784 <property name="text">
785 <string>Blocks per File : </string>
786 </property>
787 </widget>
788 </item>
789 <item row="4" column="0">
790 <widget class="QLabel" name="label_35">
791 <property name="text">
792 <string>Profiles per Block: </string>
793 </property>
794 </widget>
795 </item>
796 <item row="4" column="2">
797 <widget class="QLineEdit" name="volOutputprofilesperblock"/>
798 </item>
799 </layout>
800 </widget>
801 </widget>
802 </item>
803 </layout>
804 </widget>
805 <widget class="QWidget" name="tabSpectra">
806 <attribute name="title">
807 <string>Spectra</string>
808 </attribute>
809 <layout class="QGridLayout" name="gridLayout_7">
810 <item row="1" column="1">
811 <widget class="QFrame" name="frame_5">
812 <property name="frameShape">
813 <enum>QFrame::StyledPanel</enum>
814 </property>
815 <property name="frameShadow">
816 <enum>QFrame::Raised</enum>
817 </property>
818 <layout class="QGridLayout" name="gridLayout_18">
819 <item row="0" column="0">
820 <widget class="QPushButton" name="specOpOk">
821 <property name="text">
822 <string>Ok</string>
823 </property>
824 </widget>
825 </item>
826 <item row="0" column="1">
827 <widget class="QPushButton" name="specGraphClear">
828 <property name="text">
829 <string>Clear</string>
830 </property>
831 </widget>
832 </item>
833 </layout>
834 </widget>
835 </item>
836 <item row="0" column="1">
837 <widget class="QTabWidget" name="tabWidgetSpectra">
838 <property name="currentIndex">
839 <number>0</number>
840 </property>
841 <widget class="QWidget" name="tabopSpectra">
842 <attribute name="title">
843 <string>Operation</string>
844 </attribute>
845 <layout class="QGridLayout" name="gridLayout_5">
846 <item row="4" column="0" colspan="2">
847 <widget class="QCheckBox" name="specOpCebCrossSpectra">
848 <property name="text">
849 <string>Select Cross Spectra</string>
850 </property>
851 </widget>
852 </item>
853 <item row="8" column="0" colspan="2">
854 <widget class="QComboBox" name="specOpComChannel">
855 <item>
856 <property name="text">
857 <string>Value</string>
858 </property>
859 </item>
860 <item>
861 <property name="text">
862 <string>Index</string>
863 </property>
864 </item>
865 </widget>
866 </item>
867 <item row="8" column="3" colspan="2">
868 <widget class="QLineEdit" name="specOpChannel"/>
869 </item>
870 <item row="11" column="0" colspan="2">
871 <widget class="QComboBox" name="specOpComHeights">
872 <item>
873 <property name="text">
874 <string>Value</string>
875 </property>
876 </item>
877 <item>
878 <property name="text">
879 <string>Index</string>
880 </property>
881 </item>
882 </widget>
883 </item>
884 <item row="11" column="3" colspan="2">
885 <widget class="QLineEdit" name="specOpHeights"/>
886 </item>
887 <item row="13" column="3" colspan="2">
888 <widget class="QLineEdit" name="specOpIncoherent"/>
889 </item>
890 <item row="14" column="0" colspan="2">
891 <widget class="QCheckBox" name="specOpCebRemoveDC">
892 <property name="text">
893 <string>Remove DC</string>
894 </property>
895 </widget>
896 </item>
897 <item row="9" column="0">
898 <widget class="QCheckBox" name="specOpCebHeights">
899 <property name="text">
900 <string>Select Heights</string>
901 </property>
902 </widget>
903 </item>
904 <item row="7" column="0">
905 <widget class="QCheckBox" name="specOpCebChannel">
906 <property name="text">
907 <string>Select Channel</string>
908 </property>
909 </widget>
910 </item>
911 <item row="6" column="3" colspan="2">
912 <widget class="QLineEdit" name="specOppairsList"/>
913 </item>
914 <item row="2" column="3" colspan="2">
915 <widget class="QLineEdit" name="specOpnFFTpoints"/>
916 </item>
917 <item row="6" column="0" colspan="2">
918 <widget class="QLabel" name="label_31">
919 <property name="text">
920 <string>x-y pairs</string>
921 </property>
922 </widget>
923 </item>
924 <item row="2" column="0" colspan="2">
925 <widget class="QLabel" name="label_26">
926 <property name="text">
927 <string>nFFTPoints</string>
928 </property>
929 </widget>
930 </item>
931 <item row="12" column="0">
932 <widget class="QCheckBox" name="specOpCebIncoherent">
933 <property name="text">
934 <string>Incoherent Integration</string>
935 </property>
936 </widget>
937 </item>
938 <item row="13" column="0" colspan="2">
939 <widget class="QComboBox" name="specOpCobIncInt">
940 <item>
941 <property name="text">
942 <string>Time Interval</string>
943 </property>
944 </item>
945 <item>
946 <property name="text">
947 <string>Profiles</string>
948 </property>
949 </item>
950 </widget>
951 </item>
952 <item row="12" column="3">
953 <spacer name="horizontalSpacer_2">
954 <property name="orientation">
955 <enum>Qt::Horizontal</enum>
956 </property>
957 <property name="sizeHint" stdset="0">
958 <size>
959 <width>40</width>
960 <height>20</height>
961 </size>
962 </property>
963 </spacer>
964 </item>
965 <item row="0" column="0" colspan="2">
966 <widget class="QCheckBox" name="specOpCebRadarfrequency">
967 <property name="text">
968 <string>Radar Frequency</string>
969 </property>
970 </widget>
971 </item>
972 <item row="9" column="3">
973 <spacer name="horizontalSpacer_11">
974 <property name="orientation">
975 <enum>Qt::Horizontal</enum>
976 </property>
977 <property name="sizeHint" stdset="0">
978 <size>
979 <width>40</width>
980 <height>20</height>
981 </size>
982 </property>
983 </spacer>
984 </item>
985 <item row="7" column="3">
986 <spacer name="horizontalSpacer_8">
987 <property name="orientation">
988 <enum>Qt::Horizontal</enum>
989 </property>
990 <property name="sizeHint" stdset="0">
991 <size>
992 <width>40</width>
993 <height>20</height>
994 </size>
995 </property>
996 </spacer>
997 </item>
998 <item row="0" column="3" colspan="2">
999 <widget class="QLineEdit" name="specOpRadarfrequency"/>
1000 </item>
1001 <item row="4" column="3">
1002 <spacer name="horizontalSpacer_7">
1003 <property name="orientation">
1004 <enum>Qt::Horizontal</enum>
1005 </property>
1006 <property name="sizeHint" stdset="0">
1007 <size>
1008 <width>40</width>
1009 <height>20</height>
1010 </size>
1011 </property>
1012 </spacer>
1013 </item>
1014 <item row="1" column="0">
1015 <widget class="QLabel" name="label_21">
1016 <property name="text">
1017 <string>Profiles</string>
1018 </property>
1019 </widget>
1020 </item>
1021 <item row="1" column="3" colspan="2">
1022 <widget class="QLineEdit" name="specOpProfiles"/>
1023 </item>
1024 <item row="15" column="0">
1025 <widget class="QCheckBox" name="specOpCebRemoveInt">
1026 <property name="text">
1027 <string>Remove Interference</string>
1028 </property>
1029 </widget>
1030 </item>
1031 <item row="15" column="3">
1032 <spacer name="horizontalSpacer_12">
1033 <property name="orientation">
1034 <enum>Qt::Horizontal</enum>
1035 </property>
1036 <property name="sizeHint" stdset="0">
1037 <size>
1038 <width>40</width>
1039 <height>20</height>
1040 </size>
1041 </property>
1042 </spacer>
1043 </item>
1044 <item row="14" column="3">
1045 <widget class="QComboBox" name="specOpComRemoveDC">
1046 <item>
1047 <property name="text">
1048 <string>Mode 1</string>
1049 </property>
1050 </item>
1051 <item>
1052 <property name="text">
1053 <string>Mode 2</string>
1054 </property>
1055 </item>
1056 </widget>
1057 </item>
1058 <item row="3" column="0">
1059 <widget class="QLabel" name="label_70">
1060 <property name="text">
1061 <string>IppFactor</string>
1062 </property>
1063 </widget>
1064 </item>
1065 <item row="3" column="3">
1066 <widget class="QLineEdit" name="specOpippFactor"/>
1067 </item>
1068 <item row="16" column="0">
1069 <widget class="QCheckBox" name="specOpCebgetNoise">
1070 <property name="text">
1071 <string>Get Noise</string>
1072 </property>
1073 </widget>
1074 </item>
1075 <item row="16" column="3">
1076 <widget class="QLineEdit" name="specOpgetNoise"/>
1077 </item>
1078 </layout>
1079 </widget>
1080 <widget class="QWidget" name="tabgraphSpectra">
1081 <attribute name="title">
1082 <string>Graphics</string>
1083 </attribute>
1084 <layout class="QGridLayout" name="gridLayout_9">
1085 <item row="10" column="0">
1086 <widget class="QLabel" name="label_44">
1087 <property name="text">
1088 <string>Coherence Map</string>
1089 </property>
1090 </widget>
1091 </item>
1092 <item row="14" column="2">
1093 <spacer name="verticalSpacer_4">
1094 <property name="orientation">
1095 <enum>Qt::Vertical</enum>
1096 </property>
1097 <property name="sizeHint" stdset="0">
1098 <size>
1099 <width>20</width>
1100 <height>40</height>
1101 </size>
1102 </property>
1103 </spacer>
1104 </item>
1105 <item row="21" column="0">
1106 <widget class="QLabel" name="label_20">
1107 <property name="text">
1108 <string>Tmin, Tmax:</string>
1109 </property>
1110 </widget>
1111 </item>
1112 <item row="13" column="4">
1113 <widget class="QCheckBox" name="specGraphSaveRTInoise">
1114 <property name="text">
1115 <string/>
1116 </property>
1117 </widget>
1118 </item>
1119 <item row="20" column="1" colspan="7">
1120 <widget class="QLineEdit" name="specGgraphmagnitud"/>
1121 </item>
1122 <item row="6" column="4">
1123 <widget class="QCheckBox" name="specGraphSaveSpectra">
1124 <property name="text">
1125 <string/>
1126 </property>
1127 </widget>
1128 </item>
1129 <item row="15" column="1" colspan="7">
1130 <widget class="QLineEdit" name="specGgraphChannelList"/>
1131 </item>
1132 <item row="2" column="0">
1133 <widget class="QLabel" name="label_25">
1134 <property name="text">
1135 <string>Prefix :</string>
1136 </property>
1137 </widget>
1138 </item>
1139 <item row="21" column="1" colspan="7">
1140 <widget class="QLineEdit" name="specGgraphTminTmax"/>
1141 </item>
1142 <item row="27" column="6" colspan="2">
1143 <spacer name="horizontalSpacer_18">
1144 <property name="orientation">
1145 <enum>Qt::Horizontal</enum>
1146 </property>
1147 <property name="sizeHint" stdset="0">
1148 <size>
1149 <width>28</width>
1150 <height>15</height>
1151 </size>
1152 </property>
1153 </spacer>
1154 </item>
1155 <item row="3" column="5">
1156 <spacer name="verticalSpacer_3">
1157 <property name="orientation">
1158 <enum>Qt::Vertical</enum>
1159 </property>
1160 <property name="sizeHint" stdset="0">
1161 <size>
1162 <width>20</width>
1163 <height>40</height>
1164 </size>
1165 </property>
1166 </spacer>
1167 </item>
1168 <item row="9" column="0">
1169 <widget class="QLabel" name="label_42">
1170 <property name="text">
1171 <string>RTI Plot</string>
1172 </property>
1173 </widget>
1174 </item>
1175 <item row="18" column="0">
1176 <widget class="QLabel" name="label_16">
1177 <property name="text">
1178 <string>Height range:</string>
1179 </property>
1180 </widget>
1181 </item>
1182 <item row="19" column="0">
1183 <widget class="QLabel" name="label_17">
1184 <property name="text">
1185 <string>dBs range:</string>
1186 </property>
1187 </widget>
1188 </item>
1189 <item row="20" column="0">
1190 <widget class="QLabel" name="label_18">
1191 <property name="text">
1192 <string>magnitud [0-1]</string>
1193 </property>
1194 </widget>
1195 </item>
1196 <item row="16" column="1" colspan="7">
1197 <widget class="QLineEdit" name="specGgraphFreq"/>
1198 </item>
1199 <item row="18" column="1" colspan="7">
1200 <widget class="QLineEdit" name="specGgraphHeight"/>
1201 </item>
1202 <item row="27" column="0">
1203 <spacer name="horizontalSpacer_16">
1204 <property name="orientation">
1205 <enum>Qt::Horizontal</enum>
1206 </property>
1207 <property name="sizeHint" stdset="0">
1208 <size>
1209 <width>49</width>
1210 <height>15</height>
1211 </size>
1212 </property>
1213 </spacer>
1214 </item>
1215 <item row="0" column="0">
1216 <widget class="QLabel" name="label_24">
1217 <property name="text">
1218 <string>Path :</string>
1219 </property>
1220 </widget>
1221 </item>
1222 <item row="2" column="1" colspan="7">
1223 <widget class="QLineEdit" name="specGraphPrefix"/>
1224 </item>
1225 <item row="19" column="1" colspan="7">
1226 <widget class="QLineEdit" name="specGgraphDbsrange"/>
1227 </item>
1228 <item row="11" column="0">
1229 <widget class="QLabel" name="label_46">
1230 <property name="text">
1231 <string>Power Profile</string>
1232 </property>
1233 </widget>
1234 </item>
1235 <item row="16" column="0">
1236 <widget class="QLabel" name="label_22">
1237 <property name="text">
1238 <string>Freq/Vel:</string>
1239 </property>
1240 </widget>
1241 </item>
1242 <item row="0" column="1" colspan="6">
1243 <widget class="QLineEdit" name="specGraphPath"/>
1244 </item>
1245 <item row="8" column="0">
1246 <widget class="QLabel" name="label_41">
1247 <property name="text">
1248 <string>Cross Spectra Plot</string>
1249 </property>
1250 </widget>
1251 </item>
1252 <item row="0" column="7">
1253 <widget class="QToolButton" name="specGraphToolPath">
1254 <property name="text">
1255 <string>...</string>
1256 </property>
1257 </widget>
1258 </item>
1259 <item row="15" column="0">
1260 <widget class="QLabel" name="label_6">
1261 <property name="text">
1262 <string>Channel List:</string>
1263 </property>
1264 </widget>
1265 </item>
1266 <item row="6" column="0">
1267 <widget class="QLabel" name="label_40">
1268 <property name="text">
1269 <string>Spectra Plot</string>
1270 </property>
1271 </widget>
1272 </item>
1273 <item row="6" column="2">
1274 <widget class="QCheckBox" name="specGraphCebSpectraplot">
1275 <property name="text">
1276 <string/>
1277 </property>
1278 </widget>
1279 </item>
1280 <item row="8" column="2">
1281 <widget class="QCheckBox" name="specGraphCebCrossSpectraplot">
1282 <property name="text">
1283 <string/>
1284 </property>
1285 </widget>
1286 </item>
1287 <item row="9" column="2">
1288 <widget class="QCheckBox" name="specGraphCebRTIplot">
1289 <property name="text">
1290 <string/>
1291 </property>
1292 </widget>
1293 </item>
1294 <item row="10" column="2">
1295 <widget class="QCheckBox" name="specGraphCebCoherencmap">
1296 <property name="text">
1297 <string/>
1298 </property>
1299 </widget>
1300 </item>
1301 <item row="11" column="2">
1302 <widget class="QCheckBox" name="specGraphPowerprofile">
1303 <property name="text">
1304 <string/>
1305 </property>
1306 </widget>
1307 </item>
1308 <item row="8" column="4">
1309 <widget class="QCheckBox" name="specGraphSaveCross">
1310 <property name="text">
1311 <string/>
1312 </property>
1313 </widget>
1314 </item>
1315 <item row="6" column="6">
1316 <widget class="QCheckBox" name="specGraphftpSpectra">
1317 <property name="text">
1318 <string/>
1319 </property>
1320 </widget>
1321 </item>
1322 <item row="4" column="3">
1323 <spacer name="horizontalSpacer">
1324 <property name="orientation">
1325 <enum>Qt::Horizontal</enum>
1326 </property>
1327 <property name="sizeHint" stdset="0">
1328 <size>
1329 <width>40</width>
1330 <height>20</height>
1331 </size>
1332 </property>
1333 </spacer>
1334 </item>
1335 <item row="11" column="4">
1336 <widget class="QCheckBox" name="specGraphSavePowerprofile">
1337 <property name="text">
1338 <string/>
1339 </property>
1340 </widget>
1341 </item>
1342 <item row="10" column="4">
1343 <widget class="QCheckBox" name="specGraphSaveCoherencemap">
1344 <property name="text">
1345 <string/>
1346 </property>
1347 </widget>
1348 </item>
1349 <item row="27" column="4">
1350 <spacer name="horizontalSpacer_17">
1351 <property name="orientation">
1352 <enum>Qt::Horizontal</enum>
1353 </property>
1354 <property name="sizeHint" stdset="0">
1355 <size>
1356 <width>39</width>
1357 <height>15</height>
1358 </size>
1359 </property>
1360 </spacer>
1361 </item>
1362 <item row="23" column="1" colspan="7">
1363 <widget class="QLineEdit" name="specGgraphftpratio"/>
1364 </item>
1365 <item row="3" column="2" rowspan="2">
1366 <widget class="QLabel" name="label_43">
1367 <property name="text">
1368 <string>Show</string>
1369 </property>
1370 </widget>
1371 </item>
1372 <item row="8" column="6">
1373 <widget class="QCheckBox" name="specGraphftpCross">
1374 <property name="text">
1375 <string/>
1376 </property>
1377 </widget>
1378 </item>
1379 <item row="23" column="0">
1380 <widget class="QLabel" name="label_29">
1381 <property name="text">
1382 <string>Wr Period:</string>
1383 </property>
1384 </widget>
1385 </item>
1386 <item row="3" column="4" rowspan="2">
1387 <widget class="QLabel" name="label_47">
1388 <property name="text">
1389 <string>Save</string>
1390 </property>
1391 </widget>
1392 </item>
1393 <item row="9" column="6">
1394 <widget class="QCheckBox" name="specGraphftpRTIplot">
1395 <property name="text">
1396 <string/>
1397 </property>
1398 </widget>
1399 </item>
1400 <item row="10" column="6">
1401 <widget class="QCheckBox" name="specGraphftpCoherencemap">
1402 <property name="text">
1403 <string/>
1404 </property>
1405 </widget>
1406 </item>
1407 <item row="11" column="6">
1408 <widget class="QCheckBox" name="specGraphftpPowerprofile">
1409 <property name="text">
1410 <string/>
1411 </property>
1412 </widget>
1413 </item>
1414 <item row="3" column="6" rowspan="2" colspan="2">
1415 <widget class="QLabel" name="label_19">
1416 <property name="text">
1417 <string>ftp</string>
1418 </property>
1419 </widget>
1420 </item>
1421 <item row="9" column="4">
1422 <widget class="QCheckBox" name="specGraphSaveRTIplot">
1423 <property name="text">
1424 <string/>
1425 </property>
1426 </widget>
1427 </item>
1428 <item row="13" column="0">
1429 <widget class="QLabel" name="label_45">
1430 <property name="text">
1431 <string>RTI Noise</string>
1432 </property>
1433 </widget>
1434 </item>
1435 <item row="13" column="6">
1436 <widget class="QCheckBox" name="specGraphftpRTInoise">
1437 <property name="text">
1438 <string/>
1439 </property>
1440 </widget>
1441 </item>
1442 <item row="13" column="2">
1443 <widget class="QCheckBox" name="specGraphCebRTInoise">
1444 <property name="text">
1445 <string/>
1446 </property>
1447 </widget>
1448 </item>
1449 <item row="22" column="0">
1450 <widget class="QLabel" name="label_48">
1451 <property name="text">
1452 <string>Time Range:</string>
1453 </property>
1454 </widget>
1455 </item>
1456 <item row="22" column="1" colspan="7">
1457 <widget class="QLineEdit" name="specGgraphTimeRange"/>
1458 </item>
1459 </layout>
1460 </widget>
1461 <widget class="QWidget" name="taboutputSpectra">
1462 <attribute name="title">
1463 <string>Output</string>
1464 </attribute>
1465 <layout class="QGridLayout" name="gridLayout_11">
1466 <item row="0" column="0">
1467 <widget class="QLabel" name="label_39">
1468 <property name="text">
1469 <string>Type:</string>
1470 </property>
1471 </widget>
1472 </item>
1473 <item row="0" column="2" colspan="2">
1474 <widget class="QComboBox" name="specOutputComData">
1475 <item>
1476 <property name="text">
1477 <string>.pdata</string>
1478 </property>
1479 </item>
1480 </widget>
1481 </item>
1482 <item row="1" column="0">
1483 <widget class="QLabel" name="label_34">
1484 <property name="text">
1485 <string>Path:</string>
1486 </property>
1487 </widget>
1488 </item>
1489 <item row="1" column="2">
1490 <widget class="QLineEdit" name="specOutputPath"/>
1491 </item>
1492 <item row="4" column="2">
1493 <spacer name="verticalSpacer_5">
1494 <property name="orientation">
1495 <enum>Qt::Vertical</enum>
1496 </property>
1497 <property name="sizeHint" stdset="0">
1498 <size>
1499 <width>20</width>
1500 <height>40</height>
1501 </size>
1502 </property>
1503 </spacer>
1504 </item>
1505 <item row="1" column="3">
1506 <widget class="QToolButton" name="specOutputToolPath">
1507 <property name="text">
1508 <string>...</string>
1509 </property>
1510 </widget>
1511 </item>
1512 <item row="2" column="2">
1513 <widget class="QLineEdit" name="specOutputblocksperfile"/>
1514 </item>
1515 <item row="2" column="0" colspan="2">
1516 <widget class="QLabel" name="label_9">
1517 <property name="text">
1518 <string>Blocks per File: </string>
1519 </property>
1520 </widget>
1521 </item>
1522 <item row="3" column="0">
1523 <widget class="QLabel" name="label_38">
1524 <property name="text">
1525 <string>Profile per Block: </string>
1526 </property>
1527 </widget>
1528 </item>
1529 <item row="3" column="2">
1530 <widget class="QLineEdit" name="specOutputprofileperblock"/>
1531 </item>
1532 </layout>
1533 </widget>
1534 </widget>
1535 </item>
1536 </layout>
1537 </widget>
1538 <widget class="QWidget" name="tabSpectraHeis">
1539 <attribute name="title">
1540 <string>SpectraHeis</string>
1541 </attribute>
1542 <layout class="QGridLayout" name="gridLayout_23">
1543 <item row="1" column="0">
1544 <widget class="QFrame" name="frame_6">
1545 <property name="frameShape">
1546 <enum>QFrame::StyledPanel</enum>
1547 </property>
1548 <property name="frameShadow">
1549 <enum>QFrame::Raised</enum>
1550 </property>
1551 <layout class="QGridLayout" name="gridLayout_22">
1552 <item row="0" column="1">
1553 <widget class="QPushButton" name="specHeisGraphClear">
1554 <property name="text">
1555 <string>Clear</string>
1556 </property>
1557 </widget>
1558 </item>
1559 <item row="0" column="0">
1560 <widget class="QPushButton" name="specHeisOpOk">
1561 <property name="text">
1562 <string>Ok</string>
1563 </property>
1564 </widget>
1565 </item>
1566 </layout>
1567 </widget>
1568 </item>
1569 <item row="0" column="0">
1570 <widget class="QTabWidget" name="tabWidgetSpectraHeis">
1571 <property name="currentIndex">
1572 <number>0</number>
1573 </property>
1574 <widget class="QWidget" name="tabopSpectraHeis">
1575 <attribute name="title">
1576 <string>Operation</string>
1577 </attribute>
1578 <layout class="QGridLayout" name="gridLayout_21">
1579 <item row="0" column="1">
1580 <spacer name="horizontalSpacer_20">
1581 <property name="orientation">
1582 <enum>Qt::Horizontal</enum>
1583 </property>
1584 <property name="sizeHint" stdset="0">
1585 <size>
1586 <width>40</width>
1587 <height>20</height>
1588 </size>
1589 </property>
1590 </spacer>
1591 </item>
1592 <item row="1" column="0">
1593 <widget class="QComboBox" name="specHeisOpCobIncInt">
1594 <item>
1595 <property name="text">
1596 <string>Time Interval</string>
1597 </property>
1598 </item>
1599 </widget>
1600 </item>
1601 <item row="0" column="0">
1602 <widget class="QCheckBox" name="specHeisOpCebIncoherent">
1603 <property name="text">
1604 <string>Incoherent Intergration</string>
1605 </property>
1606 </widget>
1607 </item>
1608 <item row="1" column="1">
1609 <widget class="QLineEdit" name="specHeisOpIncoherent"/>
1610 </item>
1611 <item row="2" column="0">
1612 <spacer name="verticalSpacer_7">
1613 <property name="orientation">
1614 <enum>Qt::Vertical</enum>
1615 </property>
1616 <property name="sizeHint" stdset="0">
1617 <size>
1618 <width>20</width>
1619 <height>40</height>
1620 </size>
1621 </property>
1622 </spacer>
1623 </item>
1624 </layout>
1625 </widget>
1626 <widget class="QWidget" name="tabgraphSpectraHeis">
1627 <attribute name="title">
1628 <string>Graphics</string>
1629 </attribute>
1630 <layout class="QGridLayout" name="gridLayout_20">
1631 <item row="1" column="0">
1632 <widget class="QLabel" name="label_54">
1633 <property name="text">
1634 <string>Prefix</string>
1635 </property>
1636 </widget>
1637 </item>
1638 <item row="0" column="6">
1639 <widget class="QToolButton" name="specHeisGraphToolPath">
1640 <property name="text">
1641 <string>...</string>
1642 </property>
1643 </widget>
1644 </item>
1645 <item row="4" column="2">
1646 <widget class="QCheckBox" name="specHeisGraphCebRTIplot">
1647 <property name="text">
1648 <string/>
1649 </property>
1650 </widget>
1651 </item>
1652 <item row="7" column="0">
1653 <widget class="QLabel" name="label_62">
1654 <property name="text">
1655 <string>ymin - ymax</string>
1656 </property>
1657 </widget>
1658 </item>
1659 <item row="8" column="0">
1660 <widget class="QLabel" name="label_63">
1661 <property name="text">
1662 <string>Tmin - Tmax:</string>
1663 </property>
1664 </widget>
1665 </item>
1666 <item row="9" column="0">
1667 <widget class="QLabel" name="label_64">
1668 <property name="text">
1669 <string>Time Range:</string>
1670 </property>
1671 </widget>
1672 </item>
1673 <item row="10" column="0">
1674 <widget class="QLabel" name="label_65">
1675 <property name="text">
1676 <string>Wr Period</string>
1677 </property>
1678 </widget>
1679 </item>
1680 <item row="11" column="0" colspan="2">
1681 <spacer name="horizontalSpacer_14">
1682 <property name="orientation">
1683 <enum>Qt::Horizontal</enum>
1684 </property>
1685 <property name="sizeHint" stdset="0">
1686 <size>
1687 <width>134</width>
1688 <height>20</height>
1689 </size>
1690 </property>
1691 </spacer>
1692 </item>
1693 <item row="10" column="1" colspan="6">
1694 <widget class="QLineEdit" name="specHeisGgraphftpratio"/>
1695 </item>
1696 <item row="4" column="6">
1697 <widget class="QCheckBox" name="specHeisGraphftpRTIplot">
1698 <property name="text">
1699 <string/>
1700 </property>
1701 </widget>
1702 </item>
1703 <item row="8" column="1" colspan="6">
1704 <widget class="QLineEdit" name="specHeisGgraphTminTmax"/>
1705 </item>
1706 <item row="5" column="0">
1707 <widget class="QLabel" name="label_60">
1708 <property name="text">
1709 <string>Channel List:</string>
1710 </property>
1711 </widget>
1712 </item>
1713 <item row="6" column="0">
1714 <widget class="QLabel" name="label_61">
1715 <property name="text">
1716 <string>xmin - xmax</string>
1717 </property>
1718 </widget>
1719 </item>
1720 <item row="1" column="1" colspan="6">
1721 <widget class="QLineEdit" name="specHeisGraphPrefix"/>
1722 </item>
1723 <item row="2" column="4">
1724 <widget class="QLabel" name="label_56">
1725 <property name="text">
1726 <string>Save</string>
1727 </property>
1728 </widget>
1729 </item>
1730 <item row="2" column="6">
1731 <widget class="QLabel" name="label_57">
1732 <property name="text">
1733 <string>ftp</string>
1734 </property>
1735 </widget>
1736 </item>
1737 <item row="3" column="0">
1738 <widget class="QLabel" name="label_58">
1739 <property name="text">
1740 <string>Spectra Plot</string>
1741 </property>
1742 </widget>
1743 </item>
1744 <item row="3" column="2">
1745 <widget class="QCheckBox" name="specHeisGraphCebSpectraplot">
1746 <property name="text">
1747 <string/>
1748 </property>
1749 </widget>
1750 </item>
1751 <item row="7" column="1" colspan="6">
1752 <widget class="QLineEdit" name="specHeisGgraphYminYmax"/>
1753 </item>
1754 <item row="0" column="0">
1755 <widget class="QLabel" name="label_53">
1756 <property name="text">
1757 <string>Path</string>
1758 </property>
1759 </widget>
1760 </item>
1761 <item row="2" column="2">
1762 <widget class="QLabel" name="label_55">
1763 <property name="text">
1764 <string>Show</string>
1765 </property>
1766 </widget>
1767 </item>
1768 <item row="4" column="4">
1769 <widget class="QCheckBox" name="specHeisGraphSaveRTIplot">
1770 <property name="text">
1771 <string/>
1772 </property>
1773 </widget>
1774 </item>
1775 <item row="2" column="3">
1776 <spacer name="horizontalSpacer_13">
1777 <property name="orientation">
1778 <enum>Qt::Horizontal</enum>
1779 </property>
1780 <property name="sizeHint" stdset="0">
1781 <size>
1782 <width>40</width>
1783 <height>20</height>
1784 </size>
1785 </property>
1786 </spacer>
1787 </item>
1788 <item row="6" column="1" colspan="6">
1789 <widget class="QLineEdit" name="specHeisGgraphXminXmax"/>
1790 </item>
1791 <item row="5" column="1" colspan="6">
1792 <widget class="QLineEdit" name="specHeisGgraphChannelList"/>
1793 </item>
1794 <item row="9" column="1" colspan="6">
1795 <widget class="QLineEdit" name="specHeisGgraphTimeRange"/>
1796 </item>
1797 <item row="11" column="3" colspan="3">
1798 <spacer name="horizontalSpacer_19">
1799 <property name="orientation">
1800 <enum>Qt::Horizontal</enum>
1801 </property>
1802 <property name="sizeHint" stdset="0">
1803 <size>
1804 <width>106</width>
1805 <height>20</height>
1806 </size>
1807 </property>
1808 </spacer>
1809 </item>
1810 <item row="3" column="4">
1811 <widget class="QCheckBox" name="specHeisGraphSaveSpectra">
1812 <property name="text">
1813 <string/>
1814 </property>
1815 </widget>
1816 </item>
1817 <item row="3" column="6">
1818 <widget class="QCheckBox" name="specHeisGraphftpSpectra">
1819 <property name="text">
1820 <string/>
1821 </property>
1822 </widget>
1823 </item>
1824 <item row="4" column="0">
1825 <widget class="QLabel" name="label_59">
1826 <property name="text">
1827 <string>RTI PLot</string>
1828 </property>
1829 </widget>
1830 </item>
1831 <item row="2" column="5">
1832 <spacer name="horizontalSpacer_21">
1833 <property name="orientation">
1834 <enum>Qt::Horizontal</enum>
1835 </property>
1836 <property name="sizeHint" stdset="0">
1837 <size>
1838 <width>40</width>
1839 <height>20</height>
1840 </size>
1841 </property>
1842 </spacer>
1843 </item>
1844 <item row="0" column="1" colspan="5">
1845 <widget class="QLineEdit" name="specHeisGraphPath"/>
1846 </item>
1847 </layout>
1848 </widget>
1849 <widget class="QWidget" name="taboutputSpectraHeis">
1850 <attribute name="title">
1851 <string>Output</string>
1852 </attribute>
1853 <layout class="QGridLayout" name="gridLayout_19">
1854 <item row="1" column="0">
1855 <widget class="QLabel" name="label_67">
1856 <property name="text">
1857 <string>Path:</string>
1858 </property>
1859 </widget>
1860 </item>
1861 <item row="2" column="0" colspan="2">
1862 <widget class="QLabel" name="label_68">
1863 <property name="text">
1864 <string>Blocks per File:</string>
1865 </property>
1866 </widget>
1867 </item>
1868 <item row="0" column="0">
1869 <widget class="QLabel" name="label_66">
1870 <property name="text">
1871 <string>Type:</string>
1872 </property>
1873 </widget>
1874 </item>
1875 <item row="4" column="0">
1876 <spacer name="verticalSpacer_8">
1877 <property name="orientation">
1878 <enum>Qt::Vertical</enum>
1879 </property>
1880 <property name="sizeHint" stdset="0">
1881 <size>
1882 <width>20</width>
1883 <height>40</height>
1884 </size>
1885 </property>
1886 </spacer>
1887 </item>
1888 <item row="1" column="4">
1889 <widget class="QToolButton" name="specHeisOutputToolPath">
1890 <property name="text">
1891 <string>...</string>
1892 </property>
1893 </widget>
1894 </item>
1895 <item row="1" column="3">
1896 <widget class="QLineEdit" name="specHeisOutputPath"/>
1897 </item>
1898 <item row="0" column="3" colspan="2">
1899 <widget class="QComboBox" name="specHeisOutputComdata">
1900 <item>
1901 <property name="text">
1902 <string>.fits</string>
1903 </property>
1904 </item>
1905 </widget>
1906 </item>
1907 <item row="3" column="0" colspan="2">
1908 <widget class="QLabel" name="label_69">
1909 <property name="text">
1910 <string>Metada</string>
1911 </property>
1912 </widget>
1913 </item>
1914 <item row="2" column="3">
1915 <widget class="QLineEdit" name="specHeisOutputblocksperfile"/>
1916 </item>
1917 <item row="3" column="3">
1918 <widget class="QLineEdit" name="specHeisOutputMetada"/>
1919 </item>
1920 <item row="3" column="4">
1921 <widget class="QToolButton" name="specHeisOutputMetadaToolPath">
1922 <property name="text">
1923 <string>...</string>
1924 </property>
1925 </widget>
1926 </item>
1927 </layout>
1928 </widget>
1929 </widget>
1930 </item>
1931 </layout>
1932 </widget>
1933 <widget class="QWidget" name="tabCorrelation">
1934 <attribute name="title">
1935 <string>Correlation</string>
1936 </attribute>
1937 <layout class="QGridLayout" name="gridLayout_13">
1938 <item row="0" column="0">
1939 <widget class="QTabWidget" name="tabWidget_2">
1940 <property name="currentIndex">
1941 <number>0</number>
1942 </property>
1943 <widget class="QWidget" name="tabopCorrelation">
1944 <attribute name="title">
1945 <string>Operation</string>
1946 </attribute>
1947 </widget>
1948 <widget class="QWidget" name="tabopCorrelation">
1949 <attribute name="title">
1950 <string>Graphics</string>
1951 </attribute>
1952 </widget>
1953 </widget>
1954 </item>
1955 </layout>
1956 </widget>
1957 </widget>
1958 <widget class="QTabWidget" name="tabConsole">
1959 <property name="minimumSize">
1960 <size>
1961 <width>0</width>
1962 <height>0</height>
1963 </size>
1964 </property>
1965 <property name="currentIndex">
1966 <number>0</number>
1967 </property>
1968 <widget class="QWidget" name="tab_5">
1969 <attribute name="title">
1970 <string>Console</string>
1971 </attribute>
1972 <layout class="QGridLayout" name="gridLayout_4">
1973 <item row="0" column="0">
1974 <widget class="QTextEdit" name="console"/>
1975 </item>
1976 </layout>
1977 </widget>
1978 </widget>
1979 </widget>
1980 <widget class="QTabWidget" name="tabWidget">
1981 <property name="currentIndex">
1982 <number>0</number>
1983 </property>
1984 <widget class="QWidget" name="tabProjectProperty">
1985 <attribute name="title">
1986 <string>Project Property</string>
1987 </attribute>
1988 <layout class="QGridLayout" name="gridLayout_8">
1989 <item row="0" column="0">
1990 <widget class="QTreeView" name="treeProjectProperties"/>
1991 </item>
1992 </layout>
1993 </widget>
1994 </widget>
1995 </widget>
1996 </item>
1997 </layout>
1998 </widget>
1999 <widget class="QToolBar" name="toolBar">
2000 <property name="windowTitle">
2001 <string>toolBar</string>
2002 </property>
2003 <attribute name="toolBarArea">
2004 <enum>TopToolBarArea</enum>
2005 </attribute>
2006 <attribute name="toolBarBreak">
2007 <bool>false</bool>
2008 </attribute>
2009 <addaction name="actionOpenToolbar"/>
2010 <addaction name="separator"/>
2011 <addaction name="actionCreateToolbar"/>
2012 <addaction name="separator"/>
2013 <addaction name="actionAddPU"/>
2014 <addaction name="separator"/>
2015 <addaction name="actionSaveToolbar"/>
2016 <addaction name="separator"/>
2017 <addaction name="actionStarToolbar"/>
2018 <addaction name="separator"/>
2019 <addaction name="actionPauseToolbar"/>
2020 <addaction name="separator"/>
2021 <addaction name="actionStopToolbar"/>
2022 <addaction name="separator"/>
2023 </widget>
2024 <widget class="QMenuBar" name="menuBar">
2025 <property name="geometry">
2026 <rect>
2027 <x>0</x>
2028 <y>0</y>
2029 <width>1065</width>
2030 <height>25</height>
2031 </rect>
2032 </property>
2033 <widget class="QMenu" name="menuProject">
2034 <property name="title">
2035 <string>Project</string>
2036 </property>
2037 <addaction name="actionOpen"/>
2038 <addaction name="actionCreate"/>
2039 <addaction name="actionSave"/>
2040 <addaction name="actionClose"/>
2041 </widget>
2042 <widget class="QMenu" name="menuRun">
2043 <property name="title">
2044 <string>Run</string>
2045 </property>
2046 <addaction name="actionStart"/>
2047 <addaction name="actionPause"/>
2048 </widget>
2049 <widget class="QMenu" name="menuOptions">
2050 <property name="title">
2051 <string>Options</string>
2052 </property>
2053 <addaction name="actionFTP"/>
2054 </widget>
2055 <widget class="QMenu" name="menuHelp">
2056 <property name="title">
2057 <string>Help</string>
2058 </property>
2059 <addaction name="actionAbout"/>
2060 </widget>
2061 <addaction name="menuProject"/>
2062 <addaction name="menuRun"/>
2063 <addaction name="menuOptions"/>
2064 <addaction name="menuHelp"/>
2065 </widget>
2066 <action name="actionOpen">
2067 <property name="icon">
2068 <iconset>
2069 <normaloff>../Documents/figure/open.png</normaloff>../Documents/figure/open.png</iconset>
2070 </property>
2071 <property name="text">
2072 <string>Open</string>
2073 </property>
2074 </action>
2075 <action name="actionCreate">
2076 <property name="icon">
2077 <iconset>
2078 <normaloff>../Documents/figure/create_class_obj.png</normaloff>../Documents/figure/create_class_obj.png</iconset>
2079 </property>
2080 <property name="text">
2081 <string>Create</string>
2082 </property>
2083 </action>
2084 <action name="actionSave">
2085 <property name="icon">
2086 <iconset>
2087 <normaloff>../Documents/figure/save.gif</normaloff>../Documents/figure/save.gif</iconset>
2088 </property>
2089 <property name="text">
2090 <string>Save</string>
2091 </property>
2092 </action>
2093 <action name="actionClose">
2094 <property name="text">
2095 <string>Close</string>
2096 </property>
2097 </action>
2098 <action name="actionStart">
2099 <property name="icon">
2100 <iconset>
2101 <normaloff>../Documents/figure/startServer.png</normaloff>../Documents/figure/startServer.png</iconset>
2102 </property>
2103 <property name="text">
2104 <string>Start</string>
2105 </property>
2106 </action>
2107 <action name="actionPause">
2108 <property name="text">
2109 <string>Pause</string>
2110 </property>
2111 </action>
2112 <action name="actionAbout">
2113 <property name="text">
2114 <string>About</string>
2115 </property>
2116 </action>
2117 <action name="actionOpenToolbar">
2118 <property name="icon">
2119 <iconset>
2120 <normaloff>../Documents/figure/open.png</normaloff>../Documents/figure/open.png</iconset>
2121 </property>
2122 <property name="text">
2123 <string>openToolbar</string>
2124 </property>
2125 <property name="toolTip">
2126 <string>Open</string>
2127 </property>
2128 </action>
2129 <action name="actionCreateToolbar">
2130 <property name="icon">
2131 <iconset>
2132 <normaloff>../Documents/figure/create_class_obj.png</normaloff>../Documents/figure/create_class_obj.png</iconset>
2133 </property>
2134 <property name="text">
2135 <string>createToolbar</string>
2136 </property>
2137 <property name="toolTip">
2138 <string>Create</string>
2139 </property>
2140 </action>
2141 <action name="actionSaveToolbar">
2142 <property name="icon">
2143 <iconset>
2144 <normaloff>../Documents/figure/save.gif</normaloff>../Documents/figure/save.gif</iconset>
2145 </property>
2146 <property name="text">
2147 <string>saveToolbar</string>
2148 </property>
2149 <property name="toolTip">
2150 <string>Save</string>
2151 </property>
2152 </action>
2153 <action name="actionStarToolbar">
2154 <property name="icon">
2155 <iconset>
2156 <normaloff>../Documents/figure/startServer.png</normaloff>../Documents/figure/startServer.png</iconset>
2157 </property>
2158 <property name="text">
2159 <string>starToolbar</string>
2160 </property>
2161 <property name="toolTip">
2162 <string>Start</string>
2163 </property>
2164 </action>
2165 <action name="actionStopToolbar">
2166 <property name="icon">
2167 <iconset>
2168 <normaloff>../Documents/figure/stopServer.png</normaloff>../Documents/figure/stopServer.png</iconset>
2169 </property>
2170 <property name="text">
2171 <string>stopToolbar</string>
2172 </property>
2173 <property name="toolTip">
2174 <string>Stop</string>
2175 </property>
2176 </action>
2177 <action name="actionPauseToolbar">
2178 <property name="icon">
2179 <iconset>
2180 <normaloff>../workspace/branch_gui_may/gui/figure/pause.png</normaloff>../workspace/branch_gui_may/gui/figure/pause.png</iconset>
2181 </property>
2182 <property name="text">
2183 <string>pauseToolbar</string>
2184 </property>
2185 <property name="toolTip">
2186 <string>Pause</string>
2187 </property>
2188 </action>
2189 <action name="actionAddPU">
2190 <property name="icon">
2191 <iconset>
2192 <normaloff>../addpu.jpg</normaloff>../addpu.jpg</iconset>
2193 </property>
2194 <property name="text">
2195 <string>addPU</string>
2196 </property>
2197 </action>
2198 <action name="actionFTP">
2199 <property name="text">
2200 <string>FTP</string>
2201 </property>
2202 </action>
2203 </widget>
2204 <resources/>
2205 <connections/>
2206 </ui>
This diff has been collapsed as it changes many lines, (2206 lines changed) Show them Hide them
@@ -1,2206 +0,0
1 <?xml version="1.0" encoding="UTF-8"?>
2 <ui version="4.0">
3 <class>MainWindow</class>
4 <widget class="QMainWindow" name="MainWindow">
5 <property name="geometry">
6 <rect>
7 <x>0</x>
8 <y>0</y>
9 <width>1065</width>
10 <height>711</height>
11 </rect>
12 </property>
13 <property name="windowTitle">
14 <string>MainWindow</string>
15 </property>
16 <widget class="QWidget" name="centralWidget">
17 <layout class="QGridLayout" name="gridLayout_16">
18 <item row="1" column="0">
19 <widget class="QSplitter" name="splitter_2">
20 <property name="orientation">
21 <enum>Qt::Horizontal</enum>
22 </property>
23 <widget class="QTreeView" name="treeProjectExplorer"/>
24 <widget class="QSplitter" name="splitter">
25 <property name="orientation">
26 <enum>Qt::Vertical</enum>
27 </property>
28 <widget class="QTabWidget" name="tabWidgetProject">
29 <property name="minimumSize">
30 <size>
31 <width>0</width>
32 <height>278</height>
33 </size>
34 </property>
35 <property name="maximumSize">
36 <size>
37 <width>16777215</width>
38 <height>16777215</height>
39 </size>
40 </property>
41 <property name="currentIndex">
42 <number>0</number>
43 </property>
44 <widget class="QWidget" name="tabProject">
45 <attribute name="title">
46 <string>Project</string>
47 </attribute>
48 <layout class="QGridLayout" name="gridLayout_15">
49 <item row="0" column="0">
50 <widget class="QFrame" name="frame">
51 <property name="frameShape">
52 <enum>QFrame::StyledPanel</enum>
53 </property>
54 <property name="frameShadow">
55 <enum>QFrame::Raised</enum>
56 </property>
57 <layout class="QGridLayout" name="gridLayout_2">
58 <item row="0" column="0">
59 <widget class="QLabel" name="label">
60 <property name="text">
61 <string>Project Name :</string>
62 </property>
63 </widget>
64 </item>
65 <item row="0" column="1" colspan="8">
66 <widget class="QLineEdit" name="proName"/>
67 </item>
68 <item row="1" column="0">
69 <widget class="QLabel" name="label_11">
70 <property name="text">
71 <string>DataType :</string>
72 </property>
73 </widget>
74 </item>
75 <item row="1" column="1" colspan="5">
76 <widget class="QComboBox" name="proComDataType">
77 <item>
78 <property name="text">
79 <string>Voltage</string>
80 </property>
81 </item>
82 <item>
83 <property name="text">
84 <string>Spectra</string>
85 </property>
86 </item>
87 <item>
88 <property name="text">
89 <string>Fits</string>
90 </property>
91 </item>
92 </widget>
93 </item>
94 <item row="1" column="6" colspan="3">
95 <widget class="QLineEdit" name="proDataType"/>
96 </item>
97 <item row="2" column="0">
98 <widget class="QLabel" name="label_15">
99 <property name="text">
100 <string>DataPath :</string>
101 </property>
102 </widget>
103 </item>
104 <item row="2" column="1">
105 <widget class="QToolButton" name="proToolPath">
106 <property name="text">
107 <string>...</string>
108 </property>
109 </widget>
110 </item>
111 <item row="2" column="2" colspan="7">
112 <widget class="QLineEdit" name="proDataPath"/>
113 </item>
114 <item row="3" column="0">
115 <widget class="QLabel" name="label_23">
116 <property name="text">
117 <string>Read Mode:</string>
118 </property>
119 </widget>
120 </item>
121 <item row="3" column="1" colspan="2">
122 <widget class="QComboBox" name="proComReadMode">
123 <item>
124 <property name="text">
125 <string>Off Line</string>
126 </property>
127 </item>
128 <item>
129 <property name="text">
130 <string>On Line</string>
131 </property>
132 </item>
133 </widget>
134 </item>
135 <item row="3" column="5" colspan="2">
136 <widget class="QLabel" name="label_33">
137 <property name="text">
138 <string>Delay:</string>
139 </property>
140 </widget>
141 </item>
142 <item row="3" column="8">
143 <widget class="QLineEdit" name="proDelay"/>
144 </item>
145 <item row="4" column="0">
146 <widget class="QLabel" name="label_32">
147 <property name="text">
148 <string>Walk :</string>
149 </property>
150 </widget>
151 </item>
152 <item row="4" column="1" colspan="8">
153 <widget class="QComboBox" name="proComWalk">
154 <item>
155 <property name="text">
156 <string>Search 0</string>
157 </property>
158 </item>
159 <item>
160 <property name="text">
161 <string>Search 1</string>
162 </property>
163 </item>
164 </widget>
165 </item>
166 <item row="5" column="0" colspan="9">
167 <widget class="QPushButton" name="proLoadButton">
168 <property name="text">
169 <string>Load</string>
170 </property>
171 </widget>
172 </item>
173 <item row="3" column="3">
174 <widget class="QLabel" name="label_10">
175 <property name="text">
176 <string>Set:</string>
177 </property>
178 </widget>
179 </item>
180 <item row="3" column="4">
181 <widget class="QLineEdit" name="proSet"/>
182 </item>
183 </layout>
184 </widget>
185 </item>
186 <item row="1" column="0">
187 <widget class="QFrame" name="frame_2">
188 <property name="frameShape">
189 <enum>QFrame::StyledPanel</enum>
190 </property>
191 <property name="frameShadow">
192 <enum>QFrame::Raised</enum>
193 </property>
194 <layout class="QGridLayout" name="gridLayout_10">
195 <item row="0" column="0">
196 <widget class="QLabel" name="label_27">
197 <property name="text">
198 <string>Star Date:</string>
199 </property>
200 </widget>
201 </item>
202 <item row="0" column="1">
203 <widget class="QComboBox" name="proComStartDate"/>
204 </item>
205 <item row="1" column="0">
206 <widget class="QLabel" name="label_28">
207 <property name="text">
208 <string>End Date:</string>
209 </property>
210 </widget>
211 </item>
212 <item row="1" column="1">
213 <widget class="QComboBox" name="proComEndDate"/>
214 </item>
215 <item row="2" column="0">
216 <widget class="QLabel" name="label_2">
217 <property name="text">
218 <string>Start Time:</string>
219 </property>
220 </widget>
221 </item>
222 <item row="2" column="1">
223 <widget class="QTimeEdit" name="proStartTime"/>
224 </item>
225 <item row="3" column="0">
226 <widget class="QLabel" name="label_3">
227 <property name="text">
228 <string>End Time:</string>
229 </property>
230 </widget>
231 </item>
232 <item row="3" column="1">
233 <widget class="QTimeEdit" name="proEndTime"/>
234 </item>
235 <item row="4" column="0">
236 <widget class="QLabel" name="label_30">
237 <property name="text">
238 <string>Description:</string>
239 </property>
240 </widget>
241 </item>
242 <item row="4" column="1">
243 <widget class="QTextEdit" name="proDescription"/>
244 </item>
245 </layout>
246 </widget>
247 </item>
248 <item row="2" column="0">
249 <widget class="QFrame" name="frame_3">
250 <property name="frameShape">
251 <enum>QFrame::StyledPanel</enum>
252 </property>
253 <property name="frameShadow">
254 <enum>QFrame::Raised</enum>
255 </property>
256 <layout class="QGridLayout" name="gridLayout_14">
257 <item row="0" column="0">
258 <widget class="QPushButton" name="proOk">
259 <property name="text">
260 <string>Ok</string>
261 </property>
262 </widget>
263 </item>
264 <item row="0" column="1">
265 <widget class="QPushButton" name="proClear">
266 <property name="text">
267 <string>Clear</string>
268 </property>
269 </widget>
270 </item>
271 </layout>
272 </widget>
273 </item>
274 </layout>
275 </widget>
276 <widget class="QWidget" name="tabVoltage">
277 <attribute name="title">
278 <string>Voltage</string>
279 </attribute>
280 <layout class="QGridLayout" name="gridLayout_3">
281 <item row="1" column="1">
282 <widget class="QFrame" name="frame_4">
283 <property name="frameShape">
284 <enum>QFrame::StyledPanel</enum>
285 </property>
286 <property name="frameShadow">
287 <enum>QFrame::Raised</enum>
288 </property>
289 <layout class="QGridLayout" name="gridLayout_17">
290 <item row="0" column="0">
291 <widget class="QPushButton" name="volOpOk">
292 <property name="text">
293 <string>Ok</string>
294 </property>
295 </widget>
296 </item>
297 <item row="0" column="1">
298 <widget class="QPushButton" name="volGraphClear">
299 <property name="text">
300 <string>Clear</string>
301 </property>
302 </widget>
303 </item>
304 </layout>
305 </widget>
306 </item>
307 <item row="0" column="1">
308 <widget class="QTabWidget" name="tabWidgetVoltage">
309 <property name="currentIndex">
310 <number>0</number>
311 </property>
312 <widget class="QWidget" name="tabopVoltage">
313 <attribute name="title">
314 <string>Operation</string>
315 </attribute>
316 <layout class="QGridLayout" name="gridLayout">
317 <item row="4" column="4">
318 <widget class="QLineEdit" name="volOpHeights"/>
319 </item>
320 <item row="4" column="0" colspan="3">
321 <widget class="QComboBox" name="volOpComHeights">
322 <item>
323 <property name="text">
324 <string>Value</string>
325 </property>
326 </item>
327 <item>
328 <property name="text">
329 <string>Index</string>
330 </property>
331 </item>
332 </widget>
333 </item>
334 <item row="2" column="0" colspan="3">
335 <widget class="QComboBox" name="volOpComChannels">
336 <item>
337 <property name="text">
338 <string>Value</string>
339 </property>
340 </item>
341 <item>
342 <property name="text">
343 <string>Index</string>
344 </property>
345 </item>
346 </widget>
347 </item>
348 <item row="6" column="0" colspan="3">
349 <widget class="QCheckBox" name="volOpCebProfile">
350 <property name="text">
351 <string>Profile Selector</string>
352 </property>
353 </widget>
354 </item>
355 <item row="7" column="0" colspan="3">
356 <widget class="QComboBox" name="volOpComProfile">
357 <item>
358 <property name="text">
359 <string>Profile List</string>
360 </property>
361 </item>
362 <item>
363 <property name="text">
364 <string>Profile Range List</string>
365 </property>
366 </item>
367 </widget>
368 </item>
369 <item row="8" column="0" colspan="3">
370 <widget class="QCheckBox" name="volOpCebDecodification">
371 <property name="text">
372 <string>Decoder</string>
373 </property>
374 </widget>
375 </item>
376 <item row="11" column="0" colspan="3">
377 <widget class="QCheckBox" name="volOpCebCohInt">
378 <property name="text">
379 <string>Coherent Integration</string>
380 </property>
381 </widget>
382 </item>
383 <item row="7" column="4">
384 <widget class="QLineEdit" name="volOpProfile"/>
385 </item>
386 <item row="5" column="4">
387 <widget class="QLineEdit" name="volOpFilter"/>
388 </item>
389 <item row="6" column="4">
390 <spacer name="horizontalSpacer_4">
391 <property name="orientation">
392 <enum>Qt::Horizontal</enum>
393 </property>
394 <property name="sizeHint" stdset="0">
395 <size>
396 <width>40</width>
397 <height>20</height>
398 </size>
399 </property>
400 </spacer>
401 </item>
402 <item row="8" column="4">
403 <spacer name="horizontalSpacer_6">
404 <property name="orientation">
405 <enum>Qt::Horizontal</enum>
406 </property>
407 <property name="sizeHint" stdset="0">
408 <size>
409 <width>40</width>
410 <height>20</height>
411 </size>
412 </property>
413 </spacer>
414 </item>
415 <item row="3" column="4">
416 <spacer name="horizontalSpacer_5">
417 <property name="orientation">
418 <enum>Qt::Horizontal</enum>
419 </property>
420 <property name="sizeHint" stdset="0">
421 <size>
422 <width>40</width>
423 <height>20</height>
424 </size>
425 </property>
426 </spacer>
427 </item>
428 <item row="2" column="4">
429 <widget class="QLineEdit" name="volOpChannel"/>
430 </item>
431 <item row="9" column="2">
432 <widget class="QLabel" name="label_4">
433 <property name="text">
434 <string>Code:</string>
435 </property>
436 </widget>
437 </item>
438 <item row="1" column="0" colspan="3">
439 <widget class="QCheckBox" name="volOpCebChannels">
440 <property name="text">
441 <string>Select Channels</string>
442 </property>
443 </widget>
444 </item>
445 <item row="3" column="0" colspan="3">
446 <widget class="QCheckBox" name="volOpCebHeights">
447 <property name="text">
448 <string>Select Heights</string>
449 </property>
450 </widget>
451 </item>
452 <item row="5" column="0" colspan="3">
453 <widget class="QCheckBox" name="volOpCebFilter">
454 <property name="text">
455 <string>Filter</string>
456 </property>
457 </widget>
458 </item>
459 <item row="0" column="4">
460 <widget class="QLineEdit" name="volOpRadarfrequency"/>
461 </item>
462 <item row="0" column="0" colspan="3">
463 <widget class="QCheckBox" name="volOpCebRadarfrequency">
464 <property name="text">
465 <string>Radar Frequency</string>
466 </property>
467 </widget>
468 </item>
469 <item row="10" column="2">
470 <widget class="QLabel" name="label_5">
471 <property name="text">
472 <string>Mode:</string>
473 </property>
474 </widget>
475 </item>
476 <item row="1" column="4">
477 <spacer name="horizontalSpacer_3">
478 <property name="orientation">
479 <enum>Qt::Horizontal</enum>
480 </property>
481 <property name="sizeHint" stdset="0">
482 <size>
483 <width>40</width>
484 <height>20</height>
485 </size>
486 </property>
487 </spacer>
488 </item>
489 <item row="11" column="4">
490 <widget class="QLineEdit" name="volOpCohInt"/>
491 </item>
492 <item row="9" column="4">
493 <widget class="QComboBox" name="volOpComCode">
494 <item>
495 <property name="text">
496 <string>Barker 3</string>
497 </property>
498 </item>
499 <item>
500 <property name="text">
501 <string>Barker 4</string>
502 </property>
503 </item>
504 <item>
505 <property name="text">
506 <string>Barker 5</string>
507 </property>
508 </item>
509 <item>
510 <property name="text">
511 <string>Barker 7</string>
512 </property>
513 </item>
514 <item>
515 <property name="text">
516 <string>Barker 11</string>
517 </property>
518 </item>
519 <item>
520 <property name="text">
521 <string>Barker 13</string>
522 </property>
523 </item>
524 <item>
525 <property name="text">
526 <string>Barker 3 + Comp.</string>
527 </property>
528 </item>
529 <item>
530 <property name="text">
531 <string>Barker 4 + Comp.</string>
532 </property>
533 </item>
534 <item>
535 <property name="text">
536 <string>Barker 5 + Comp.</string>
537 </property>
538 </item>
539 <item>
540 <property name="text">
541 <string>Barker 7 + Comp.</string>
542 </property>
543 </item>
544 <item>
545 <property name="text">
546 <string>Barker 11+ Comp.</string>
547 </property>
548 </item>
549 <item>
550 <property name="text">
551 <string>Barker 13+ Comp.</string>
552 </property>
553 </item>
554 <item>
555 <property name="text">
556 <string>None</string>
557 </property>
558 </item>
559 </widget>
560 </item>
561 <item row="10" column="4">
562 <widget class="QComboBox" name="volOpComMode">
563 <item>
564 <property name="text">
565 <string>Time</string>
566 </property>
567 </item>
568 <item>
569 <property name="text">
570 <string>Freq 1</string>
571 </property>
572 </item>
573 </widget>
574 </item>
575 </layout>
576 </widget>
577 <widget class="QWidget" name="tabgraphVoltage">
578 <attribute name="title">
579 <string>Graphics</string>
580 </attribute>
581 <layout class="QGridLayout" name="gridLayout_6">
582 <item row="12" column="3">
583 <spacer name="verticalSpacer_2">
584 <property name="orientation">
585 <enum>Qt::Vertical</enum>
586 </property>
587 <property name="sizeHint" stdset="0">
588 <size>
589 <width>20</width>
590 <height>40</height>
591 </size>
592 </property>
593 </spacer>
594 </item>
595 <item row="9" column="1" colspan="6">
596 <widget class="QLineEdit" name="volGraphfreqrange"/>
597 </item>
598 <item row="2" column="1" colspan="6">
599 <widget class="QLineEdit" name="volGraphPrefix"/>
600 </item>
601 <item row="1" column="5" colspan="2">
602 <widget class="QToolButton" name="volGraphToolPath">
603 <property name="text">
604 <string>...</string>
605 </property>
606 </widget>
607 </item>
608 <item row="1" column="1" colspan="4">
609 <widget class="QLineEdit" name="volGraphPath"/>
610 </item>
611 <item row="6" column="0">
612 <widget class="QLabel" name="label_14">
613 <property name="text">
614 <string>Scope</string>
615 </property>
616 </widget>
617 </item>
618 <item row="3" column="3">
619 <spacer name="verticalSpacer">
620 <property name="orientation">
621 <enum>Qt::Vertical</enum>
622 </property>
623 <property name="sizeHint" stdset="0">
624 <size>
625 <width>20</width>
626 <height>40</height>
627 </size>
628 </property>
629 </spacer>
630 </item>
631 <item row="8" column="0">
632 <widget class="QLabel" name="label_8">
633 <property name="text">
634 <string>Channel List</string>
635 </property>
636 </widget>
637 </item>
638 <item row="4" column="3">
639 <widget class="QLabel" name="label_49">
640 <property name="text">
641 <string>Show</string>
642 </property>
643 </widget>
644 </item>
645 <item row="9" column="0">
646 <widget class="QLabel" name="label_51">
647 <property name="text">
648 <string>Freq/Vel</string>
649 </property>
650 </widget>
651 </item>
652 <item row="6" column="3">
653 <widget class="QCheckBox" name="volGraphCebshow">
654 <property name="text">
655 <string/>
656 </property>
657 </widget>
658 </item>
659 <item row="1" column="0">
660 <widget class="QLabel" name="label_12">
661 <property name="text">
662 <string>Path :</string>
663 </property>
664 </widget>
665 </item>
666 <item row="2" column="0">
667 <widget class="QLabel" name="label_13">
668 <property name="text">
669 <string>Prefix:</string>
670 </property>
671 </widget>
672 </item>
673 <item row="11" column="0">
674 <widget class="QLabel" name="label_52">
675 <property name="text">
676 <string>Height range</string>
677 </property>
678 </widget>
679 </item>
680 <item row="14" column="5" colspan="2">
681 <spacer name="horizontalSpacer_10">
682 <property name="orientation">
683 <enum>Qt::Horizontal</enum>
684 </property>
685 <property name="sizeHint" stdset="0">
686 <size>
687 <width>40</width>
688 <height>12</height>
689 </size>
690 </property>
691 </spacer>
692 </item>
693 <item row="14" column="3">
694 <spacer name="horizontalSpacer_9">
695 <property name="orientation">
696 <enum>Qt::Horizontal</enum>
697 </property>
698 <property name="sizeHint" stdset="0">
699 <size>
700 <width>18</width>
701 <height>12</height>
702 </size>
703 </property>
704 </spacer>
705 </item>
706 <item row="8" column="1" colspan="6">
707 <widget class="QLineEdit" name="volGraphChannelList"/>
708 </item>
709 <item row="11" column="1" colspan="6">
710 <widget class="QLineEdit" name="volGraphHeightrange"/>
711 </item>
712 <item row="4" column="4">
713 <widget class="QLabel" name="label_50">
714 <property name="text">
715 <string>Save</string>
716 </property>
717 </widget>
718 </item>
719 <item row="6" column="4">
720 <widget class="QCheckBox" name="volGraphCebSave">
721 <property name="text">
722 <string/>
723 </property>
724 </widget>
725 </item>
726 </layout>
727 </widget>
728 <widget class="QWidget" name="taboutputVoltage">
729 <attribute name="title">
730 <string>Output</string>
731 </attribute>
732 <layout class="QGridLayout" name="gridLayout_12">
733 <item row="0" column="0">
734 <widget class="QLabel" name="label_36">
735 <property name="text">
736 <string>Type:</string>
737 </property>
738 </widget>
739 </item>
740 <item row="1" column="0">
741 <widget class="QLabel" name="label_37">
742 <property name="text">
743 <string>Path:</string>
744 </property>
745 </widget>
746 </item>
747 <item row="1" column="2">
748 <widget class="QLineEdit" name="volOutputPath"/>
749 </item>
750 <item row="1" column="3">
751 <widget class="QToolButton" name="volOutputToolPath">
752 <property name="text">
753 <string>...</string>
754 </property>
755 </widget>
756 </item>
757 <item row="0" column="2" colspan="2">
758 <widget class="QComboBox" name="volOutputComData">
759 <item>
760 <property name="text">
761 <string>.rawdata</string>
762 </property>
763 </item>
764 </widget>
765 </item>
766 <item row="5" column="2">
767 <spacer name="verticalSpacer_6">
768 <property name="orientation">
769 <enum>Qt::Vertical</enum>
770 </property>
771 <property name="sizeHint" stdset="0">
772 <size>
773 <width>20</width>
774 <height>40</height>
775 </size>
776 </property>
777 </spacer>
778 </item>
779 <item row="3" column="2">
780 <widget class="QLineEdit" name="volOutputblocksperfile"/>
781 </item>
782 <item row="3" column="0">
783 <widget class="QLabel" name="label_7">
784 <property name="text">
785 <string>Blocks per File : </string>
786 </property>
787 </widget>
788 </item>
789 <item row="4" column="0">
790 <widget class="QLabel" name="label_35">
791 <property name="text">
792 <string>Profiles per Block: </string>
793 </property>
794 </widget>
795 </item>
796 <item row="4" column="2">
797 <widget class="QLineEdit" name="volOutputprofilesperblock"/>
798 </item>
799 </layout>
800 </widget>
801 </widget>
802 </item>
803 </layout>
804 </widget>
805 <widget class="QWidget" name="tabSpectra">
806 <attribute name="title">
807 <string>Spectra</string>
808 </attribute>
809 <layout class="QGridLayout" name="gridLayout_7">
810 <item row="1" column="1">
811 <widget class="QFrame" name="frame_5">
812 <property name="frameShape">
813 <enum>QFrame::StyledPanel</enum>
814 </property>
815 <property name="frameShadow">
816 <enum>QFrame::Raised</enum>
817 </property>
818 <layout class="QGridLayout" name="gridLayout_18">
819 <item row="0" column="0">
820 <widget class="QPushButton" name="specOpOk">
821 <property name="text">
822 <string>Ok</string>
823 </property>
824 </widget>
825 </item>
826 <item row="0" column="1">
827 <widget class="QPushButton" name="specGraphClear">
828 <property name="text">
829 <string>Clear</string>
830 </property>
831 </widget>
832 </item>
833 </layout>
834 </widget>
835 </item>
836 <item row="0" column="1">
837 <widget class="QTabWidget" name="tabWidgetSpectra">
838 <property name="currentIndex">
839 <number>0</number>
840 </property>
841 <widget class="QWidget" name="tabopSpectra">
842 <attribute name="title">
843 <string>Operation</string>
844 </attribute>
845 <layout class="QGridLayout" name="gridLayout_5">
846 <item row="4" column="0" colspan="2">
847 <widget class="QCheckBox" name="specOpCebCrossSpectra">
848 <property name="text">
849 <string>Select Cross Spectra</string>
850 </property>
851 </widget>
852 </item>
853 <item row="8" column="0" colspan="2">
854 <widget class="QComboBox" name="specOpComChannel">
855 <item>
856 <property name="text">
857 <string>Value</string>
858 </property>
859 </item>
860 <item>
861 <property name="text">
862 <string>Index</string>
863 </property>
864 </item>
865 </widget>
866 </item>
867 <item row="8" column="3" colspan="2">
868 <widget class="QLineEdit" name="specOpChannel"/>
869 </item>
870 <item row="11" column="0" colspan="2">
871 <widget class="QComboBox" name="specOpComHeights">
872 <item>
873 <property name="text">
874 <string>Value</string>
875 </property>
876 </item>
877 <item>
878 <property name="text">
879 <string>Index</string>
880 </property>
881 </item>
882 </widget>
883 </item>
884 <item row="11" column="3" colspan="2">
885 <widget class="QLineEdit" name="specOpHeights"/>
886 </item>
887 <item row="13" column="3" colspan="2">
888 <widget class="QLineEdit" name="specOpIncoherent"/>
889 </item>
890 <item row="14" column="0" colspan="2">
891 <widget class="QCheckBox" name="specOpCebRemoveDC">
892 <property name="text">
893 <string>Remove DC</string>
894 </property>
895 </widget>
896 </item>
897 <item row="9" column="0">
898 <widget class="QCheckBox" name="specOpCebHeights">
899 <property name="text">
900 <string>Select Heights</string>
901 </property>
902 </widget>
903 </item>
904 <item row="7" column="0">
905 <widget class="QCheckBox" name="specOpCebChannel">
906 <property name="text">
907 <string>Select Channel</string>
908 </property>
909 </widget>
910 </item>
911 <item row="6" column="3" colspan="2">
912 <widget class="QLineEdit" name="specOppairsList"/>
913 </item>
914 <item row="2" column="3" colspan="2">
915 <widget class="QLineEdit" name="specOpnFFTpoints"/>
916 </item>
917 <item row="6" column="0" colspan="2">
918 <widget class="QLabel" name="label_31">
919 <property name="text">
920 <string>x-y pairs</string>
921 </property>
922 </widget>
923 </item>
924 <item row="2" column="0" colspan="2">
925 <widget class="QLabel" name="label_26">
926 <property name="text">
927 <string>nFFTPoints</string>
928 </property>
929 </widget>
930 </item>
931 <item row="12" column="0">
932 <widget class="QCheckBox" name="specOpCebIncoherent">
933 <property name="text">
934 <string>Incoherent Integration</string>
935 </property>
936 </widget>
937 </item>
938 <item row="13" column="0" colspan="2">
939 <widget class="QComboBox" name="specOpCobIncInt">
940 <item>
941 <property name="text">
942 <string>Time Interval</string>
943 </property>
944 </item>
945 <item>
946 <property name="text">
947 <string>Profiles</string>
948 </property>
949 </item>
950 </widget>
951 </item>
952 <item row="12" column="3">
953 <spacer name="horizontalSpacer_2">
954 <property name="orientation">
955 <enum>Qt::Horizontal</enum>
956 </property>
957 <property name="sizeHint" stdset="0">
958 <size>
959 <width>40</width>
960 <height>20</height>
961 </size>
962 </property>
963 </spacer>
964 </item>
965 <item row="0" column="0" colspan="2">
966 <widget class="QCheckBox" name="specOpCebRadarfrequency">
967 <property name="text">
968 <string>Radar Frequency</string>
969 </property>
970 </widget>
971 </item>
972 <item row="9" column="3">
973 <spacer name="horizontalSpacer_11">
974 <property name="orientation">
975 <enum>Qt::Horizontal</enum>
976 </property>
977 <property name="sizeHint" stdset="0">
978 <size>
979 <width>40</width>
980 <height>20</height>
981 </size>
982 </property>
983 </spacer>
984 </item>
985 <item row="7" column="3">
986 <spacer name="horizontalSpacer_8">
987 <property name="orientation">
988 <enum>Qt::Horizontal</enum>
989 </property>
990 <property name="sizeHint" stdset="0">
991 <size>
992 <width>40</width>
993 <height>20</height>
994 </size>
995 </property>
996 </spacer>
997 </item>
998 <item row="0" column="3" colspan="2">
999 <widget class="QLineEdit" name="specOpRadarfrequency"/>
1000 </item>
1001 <item row="4" column="3">
1002 <spacer name="horizontalSpacer_7">
1003 <property name="orientation">
1004 <enum>Qt::Horizontal</enum>
1005 </property>
1006 <property name="sizeHint" stdset="0">
1007 <size>
1008 <width>40</width>
1009 <height>20</height>
1010 </size>
1011 </property>
1012 </spacer>
1013 </item>
1014 <item row="1" column="0">
1015 <widget class="QLabel" name="label_21">
1016 <property name="text">
1017 <string>Profiles</string>
1018 </property>
1019 </widget>
1020 </item>
1021 <item row="1" column="3" colspan="2">
1022 <widget class="QLineEdit" name="specOpProfiles"/>
1023 </item>
1024 <item row="15" column="0">
1025 <widget class="QCheckBox" name="specOpCebRemoveInt">
1026 <property name="text">
1027 <string>Remove Interference</string>
1028 </property>
1029 </widget>
1030 </item>
1031 <item row="15" column="3">
1032 <spacer name="horizontalSpacer_12">
1033 <property name="orientation">
1034 <enum>Qt::Horizontal</enum>
1035 </property>
1036 <property name="sizeHint" stdset="0">
1037 <size>
1038 <width>40</width>
1039 <height>20</height>
1040 </size>
1041 </property>
1042 </spacer>
1043 </item>
1044 <item row="3" column="0">
1045 <widget class="QLabel" name="label_70">
1046 <property name="text">
1047 <string>IppFactor</string>
1048 </property>
1049 </widget>
1050 </item>
1051 <item row="16" column="0">
1052 <widget class="QCheckBox" name="specOpCebgetNoise">
1053 <property name="text">
1054 <string>Get Noise</string>
1055 </property>
1056 </widget>
1057 </item>
1058 <item row="3" column="3" colspan="2">
1059 <widget class="QLineEdit" name="specOpippFactor"/>
1060 </item>
1061 <item row="14" column="3" colspan="2">
1062 <widget class="QComboBox" name="specOpComRemoveDC">
1063 <item>
1064 <property name="text">
1065 <string>Mode 1</string>
1066 </property>
1067 </item>
1068 <item>
1069 <property name="text">
1070 <string>Mode 2</string>
1071 </property>
1072 </item>
1073 </widget>
1074 </item>
1075 <item row="16" column="3" colspan="2">
1076 <widget class="QLineEdit" name="specOpgetNoise"/>
1077 </item>
1078 </layout>
1079 </widget>
1080 <widget class="QWidget" name="tabgraphSpectra">
1081 <attribute name="title">
1082 <string>Graphics</string>
1083 </attribute>
1084 <layout class="QGridLayout" name="gridLayout_9">
1085 <item row="10" column="0">
1086 <widget class="QLabel" name="label_44">
1087 <property name="text">
1088 <string>Coherence Map</string>
1089 </property>
1090 </widget>
1091 </item>
1092 <item row="14" column="2">
1093 <spacer name="verticalSpacer_4">
1094 <property name="orientation">
1095 <enum>Qt::Vertical</enum>
1096 </property>
1097 <property name="sizeHint" stdset="0">
1098 <size>
1099 <width>20</width>
1100 <height>40</height>
1101 </size>
1102 </property>
1103 </spacer>
1104 </item>
1105 <item row="21" column="0">
1106 <widget class="QLabel" name="label_20">
1107 <property name="text">
1108 <string>Tmin, Tmax:</string>
1109 </property>
1110 </widget>
1111 </item>
1112 <item row="13" column="4">
1113 <widget class="QCheckBox" name="specGraphSaveRTInoise">
1114 <property name="text">
1115 <string/>
1116 </property>
1117 </widget>
1118 </item>
1119 <item row="20" column="1" colspan="7">
1120 <widget class="QLineEdit" name="specGgraphmagnitud"/>
1121 </item>
1122 <item row="6" column="4">
1123 <widget class="QCheckBox" name="specGraphSaveSpectra">
1124 <property name="text">
1125 <string/>
1126 </property>
1127 </widget>
1128 </item>
1129 <item row="15" column="1" colspan="7">
1130 <widget class="QLineEdit" name="specGgraphChannelList"/>
1131 </item>
1132 <item row="2" column="0">
1133 <widget class="QLabel" name="label_25">
1134 <property name="text">
1135 <string>Prefix :</string>
1136 </property>
1137 </widget>
1138 </item>
1139 <item row="21" column="1" colspan="7">
1140 <widget class="QLineEdit" name="specGgraphTminTmax"/>
1141 </item>
1142 <item row="27" column="6" colspan="2">
1143 <spacer name="horizontalSpacer_18">
1144 <property name="orientation">
1145 <enum>Qt::Horizontal</enum>
1146 </property>
1147 <property name="sizeHint" stdset="0">
1148 <size>
1149 <width>28</width>
1150 <height>15</height>
1151 </size>
1152 </property>
1153 </spacer>
1154 </item>
1155 <item row="3" column="5">
1156 <spacer name="verticalSpacer_3">
1157 <property name="orientation">
1158 <enum>Qt::Vertical</enum>
1159 </property>
1160 <property name="sizeHint" stdset="0">
1161 <size>
1162 <width>20</width>
1163 <height>40</height>
1164 </size>
1165 </property>
1166 </spacer>
1167 </item>
1168 <item row="9" column="0">
1169 <widget class="QLabel" name="label_42">
1170 <property name="text">
1171 <string>RTI Plot</string>
1172 </property>
1173 </widget>
1174 </item>
1175 <item row="18" column="0">
1176 <widget class="QLabel" name="label_16">
1177 <property name="text">
1178 <string>Height range:</string>
1179 </property>
1180 </widget>
1181 </item>
1182 <item row="19" column="0">
1183 <widget class="QLabel" name="label_17">
1184 <property name="text">
1185 <string>dBs range:</string>
1186 </property>
1187 </widget>
1188 </item>
1189 <item row="20" column="0">
1190 <widget class="QLabel" name="label_18">
1191 <property name="text">
1192 <string>magnitud [0-1]</string>
1193 </property>
1194 </widget>
1195 </item>
1196 <item row="16" column="1" colspan="7">
1197 <widget class="QLineEdit" name="specGgraphFreq"/>
1198 </item>
1199 <item row="18" column="1" colspan="7">
1200 <widget class="QLineEdit" name="specGgraphHeight"/>
1201 </item>
1202 <item row="27" column="0">
1203 <spacer name="horizontalSpacer_16">
1204 <property name="orientation">
1205 <enum>Qt::Horizontal</enum>
1206 </property>
1207 <property name="sizeHint" stdset="0">
1208 <size>
1209 <width>49</width>
1210 <height>15</height>
1211 </size>
1212 </property>
1213 </spacer>
1214 </item>
1215 <item row="0" column="0">
1216 <widget class="QLabel" name="label_24">
1217 <property name="text">
1218 <string>Path :</string>
1219 </property>
1220 </widget>
1221 </item>
1222 <item row="2" column="1" colspan="7">
1223 <widget class="QLineEdit" name="specGraphPrefix"/>
1224 </item>
1225 <item row="19" column="1" colspan="7">
1226 <widget class="QLineEdit" name="specGgraphDbsrange"/>
1227 </item>
1228 <item row="11" column="0">
1229 <widget class="QLabel" name="label_46">
1230 <property name="text">
1231 <string>Power Profile</string>
1232 </property>
1233 </widget>
1234 </item>
1235 <item row="16" column="0">
1236 <widget class="QLabel" name="label_22">
1237 <property name="text">
1238 <string>Freq/Vel:</string>
1239 </property>
1240 </widget>
1241 </item>
1242 <item row="0" column="1" colspan="6">
1243 <widget class="QLineEdit" name="specGraphPath"/>
1244 </item>
1245 <item row="8" column="0">
1246 <widget class="QLabel" name="label_41">
1247 <property name="text">
1248 <string>Cross Spectra Plot</string>
1249 </property>
1250 </widget>
1251 </item>
1252 <item row="0" column="7">
1253 <widget class="QToolButton" name="specGraphToolPath">
1254 <property name="text">
1255 <string>...</string>
1256 </property>
1257 </widget>
1258 </item>
1259 <item row="15" column="0">
1260 <widget class="QLabel" name="label_6">
1261 <property name="text">
1262 <string>Channel List:</string>
1263 </property>
1264 </widget>
1265 </item>
1266 <item row="6" column="0">
1267 <widget class="QLabel" name="label_40">
1268 <property name="text">
1269 <string>Spectra Plot</string>
1270 </property>
1271 </widget>
1272 </item>
1273 <item row="6" column="2">
1274 <widget class="QCheckBox" name="specGraphCebSpectraplot">
1275 <property name="text">
1276 <string/>
1277 </property>
1278 </widget>
1279 </item>
1280 <item row="8" column="2">
1281 <widget class="QCheckBox" name="specGraphCebCrossSpectraplot">
1282 <property name="text">
1283 <string/>
1284 </property>
1285 </widget>
1286 </item>
1287 <item row="9" column="2">
1288 <widget class="QCheckBox" name="specGraphCebRTIplot">
1289 <property name="text">
1290 <string/>
1291 </property>
1292 </widget>
1293 </item>
1294 <item row="10" column="2">
1295 <widget class="QCheckBox" name="specGraphCebCoherencmap">
1296 <property name="text">
1297 <string/>
1298 </property>
1299 </widget>
1300 </item>
1301 <item row="11" column="2">
1302 <widget class="QCheckBox" name="specGraphPowerprofile">
1303 <property name="text">
1304 <string/>
1305 </property>
1306 </widget>
1307 </item>
1308 <item row="8" column="4">
1309 <widget class="QCheckBox" name="specGraphSaveCross">
1310 <property name="text">
1311 <string/>
1312 </property>
1313 </widget>
1314 </item>
1315 <item row="6" column="6">
1316 <widget class="QCheckBox" name="specGraphftpSpectra">
1317 <property name="text">
1318 <string/>
1319 </property>
1320 </widget>
1321 </item>
1322 <item row="4" column="3">
1323 <spacer name="horizontalSpacer">
1324 <property name="orientation">
1325 <enum>Qt::Horizontal</enum>
1326 </property>
1327 <property name="sizeHint" stdset="0">
1328 <size>
1329 <width>40</width>
1330 <height>20</height>
1331 </size>
1332 </property>
1333 </spacer>
1334 </item>
1335 <item row="11" column="4">
1336 <widget class="QCheckBox" name="specGraphSavePowerprofile">
1337 <property name="text">
1338 <string/>
1339 </property>
1340 </widget>
1341 </item>
1342 <item row="10" column="4">
1343 <widget class="QCheckBox" name="specGraphSaveCoherencemap">
1344 <property name="text">
1345 <string/>
1346 </property>
1347 </widget>
1348 </item>
1349 <item row="27" column="4">
1350 <spacer name="horizontalSpacer_17">
1351 <property name="orientation">
1352 <enum>Qt::Horizontal</enum>
1353 </property>
1354 <property name="sizeHint" stdset="0">
1355 <size>
1356 <width>39</width>
1357 <height>15</height>
1358 </size>
1359 </property>
1360 </spacer>
1361 </item>
1362 <item row="23" column="1" colspan="7">
1363 <widget class="QLineEdit" name="specGgraphftpratio"/>
1364 </item>
1365 <item row="3" column="2" rowspan="2">
1366 <widget class="QLabel" name="label_43">
1367 <property name="text">
1368 <string>Show</string>
1369 </property>
1370 </widget>
1371 </item>
1372 <item row="8" column="6">
1373 <widget class="QCheckBox" name="specGraphftpCross">
1374 <property name="text">
1375 <string/>
1376 </property>
1377 </widget>
1378 </item>
1379 <item row="23" column="0">
1380 <widget class="QLabel" name="label_29">
1381 <property name="text">
1382 <string>Wr Period:</string>
1383 </property>
1384 </widget>
1385 </item>
1386 <item row="3" column="4" rowspan="2">
1387 <widget class="QLabel" name="label_47">
1388 <property name="text">
1389 <string>Save</string>
1390 </property>
1391 </widget>
1392 </item>
1393 <item row="9" column="6">
1394 <widget class="QCheckBox" name="specGraphftpRTIplot">
1395 <property name="text">
1396 <string/>
1397 </property>
1398 </widget>
1399 </item>
1400 <item row="10" column="6">
1401 <widget class="QCheckBox" name="specGraphftpCoherencemap">
1402 <property name="text">
1403 <string/>
1404 </property>
1405 </widget>
1406 </item>
1407 <item row="11" column="6">
1408 <widget class="QCheckBox" name="specGraphftpPowerprofile">
1409 <property name="text">
1410 <string/>
1411 </property>
1412 </widget>
1413 </item>
1414 <item row="3" column="6" rowspan="2" colspan="2">
1415 <widget class="QLabel" name="label_19">
1416 <property name="text">
1417 <string>ftp</string>
1418 </property>
1419 </widget>
1420 </item>
1421 <item row="9" column="4">
1422 <widget class="QCheckBox" name="specGraphSaveRTIplot">
1423 <property name="text">
1424 <string/>
1425 </property>
1426 </widget>
1427 </item>
1428 <item row="13" column="0">
1429 <widget class="QLabel" name="label_45">
1430 <property name="text">
1431 <string>RTI Noise</string>
1432 </property>
1433 </widget>
1434 </item>
1435 <item row="13" column="6">
1436 <widget class="QCheckBox" name="specGraphftpRTInoise">
1437 <property name="text">
1438 <string/>
1439 </property>
1440 </widget>
1441 </item>
1442 <item row="13" column="2">
1443 <widget class="QCheckBox" name="specGraphCebRTInoise">
1444 <property name="text">
1445 <string/>
1446 </property>
1447 </widget>
1448 </item>
1449 <item row="22" column="0">
1450 <widget class="QLabel" name="label_48">
1451 <property name="text">
1452 <string>Time Range:</string>
1453 </property>
1454 </widget>
1455 </item>
1456 <item row="22" column="1" colspan="7">
1457 <widget class="QLineEdit" name="specGgraphTimeRange"/>
1458 </item>
1459 </layout>
1460 </widget>
1461 <widget class="QWidget" name="taboutputSpectra">
1462 <attribute name="title">
1463 <string>Output</string>
1464 </attribute>
1465 <layout class="QGridLayout" name="gridLayout_11">
1466 <item row="0" column="0">
1467 <widget class="QLabel" name="label_39">
1468 <property name="text">
1469 <string>Type:</string>
1470 </property>
1471 </widget>
1472 </item>
1473 <item row="0" column="2" colspan="2">
1474 <widget class="QComboBox" name="specOutputComData">
1475 <item>
1476 <property name="text">
1477 <string>.pdata</string>
1478 </property>
1479 </item>
1480 </widget>
1481 </item>
1482 <item row="1" column="0">
1483 <widget class="QLabel" name="label_34">
1484 <property name="text">
1485 <string>Path:</string>
1486 </property>
1487 </widget>
1488 </item>
1489 <item row="1" column="2">
1490 <widget class="QLineEdit" name="specOutputPath"/>
1491 </item>
1492 <item row="4" column="2">
1493 <spacer name="verticalSpacer_5">
1494 <property name="orientation">
1495 <enum>Qt::Vertical</enum>
1496 </property>
1497 <property name="sizeHint" stdset="0">
1498 <size>
1499 <width>20</width>
1500 <height>40</height>
1501 </size>
1502 </property>
1503 </spacer>
1504 </item>
1505 <item row="1" column="3">
1506 <widget class="QToolButton" name="specOutputToolPath">
1507 <property name="text">
1508 <string>...</string>
1509 </property>
1510 </widget>
1511 </item>
1512 <item row="2" column="2">
1513 <widget class="QLineEdit" name="specOutputblocksperfile"/>
1514 </item>
1515 <item row="2" column="0" colspan="2">
1516 <widget class="QLabel" name="label_9">
1517 <property name="text">
1518 <string>Blocks per File: </string>
1519 </property>
1520 </widget>
1521 </item>
1522 <item row="3" column="0">
1523 <widget class="QLabel" name="label_38">
1524 <property name="text">
1525 <string>Profile per Block: </string>
1526 </property>
1527 </widget>
1528 </item>
1529 <item row="3" column="2">
1530 <widget class="QLineEdit" name="specOutputprofileperblock"/>
1531 </item>
1532 </layout>
1533 </widget>
1534 </widget>
1535 </item>
1536 </layout>
1537 </widget>
1538 <widget class="QWidget" name="tabSpectraHeis">
1539 <attribute name="title">
1540 <string>SpectraHeis</string>
1541 </attribute>
1542 <layout class="QGridLayout" name="gridLayout_23">
1543 <item row="1" column="0">
1544 <widget class="QFrame" name="frame_6">
1545 <property name="frameShape">
1546 <enum>QFrame::StyledPanel</enum>
1547 </property>
1548 <property name="frameShadow">
1549 <enum>QFrame::Raised</enum>
1550 </property>
1551 <layout class="QGridLayout" name="gridLayout_22">
1552 <item row="0" column="1">
1553 <widget class="QPushButton" name="specHeisGraphClear">
1554 <property name="text">
1555 <string>Clear</string>
1556 </property>
1557 </widget>
1558 </item>
1559 <item row="0" column="0">
1560 <widget class="QPushButton" name="specHeisOpOk">
1561 <property name="text">
1562 <string>Ok</string>
1563 </property>
1564 </widget>
1565 </item>
1566 </layout>
1567 </widget>
1568 </item>
1569 <item row="0" column="0">
1570 <widget class="QTabWidget" name="tabWidgetSpectraHeis">
1571 <property name="currentIndex">
1572 <number>0</number>
1573 </property>
1574 <widget class="QWidget" name="tabopSpectraHeis">
1575 <attribute name="title">
1576 <string>Operation</string>
1577 </attribute>
1578 <layout class="QGridLayout" name="gridLayout_21">
1579 <item row="0" column="1">
1580 <spacer name="horizontalSpacer_20">
1581 <property name="orientation">
1582 <enum>Qt::Horizontal</enum>
1583 </property>
1584 <property name="sizeHint" stdset="0">
1585 <size>
1586 <width>40</width>
1587 <height>20</height>
1588 </size>
1589 </property>
1590 </spacer>
1591 </item>
1592 <item row="1" column="0">
1593 <widget class="QComboBox" name="specHeisOpCobIncInt">
1594 <item>
1595 <property name="text">
1596 <string>Time Interval</string>
1597 </property>
1598 </item>
1599 </widget>
1600 </item>
1601 <item row="0" column="0">
1602 <widget class="QCheckBox" name="specHeisOpCebIncoherent">
1603 <property name="text">
1604 <string>Incoherent Intergration</string>
1605 </property>
1606 </widget>
1607 </item>
1608 <item row="1" column="1">
1609 <widget class="QLineEdit" name="specHeisOpIncoherent"/>
1610 </item>
1611 <item row="2" column="0">
1612 <spacer name="verticalSpacer_7">
1613 <property name="orientation">
1614 <enum>Qt::Vertical</enum>
1615 </property>
1616 <property name="sizeHint" stdset="0">
1617 <size>
1618 <width>20</width>
1619 <height>40</height>
1620 </size>
1621 </property>
1622 </spacer>
1623 </item>
1624 </layout>
1625 </widget>
1626 <widget class="QWidget" name="tabgraphSpectraHeis">
1627 <attribute name="title">
1628 <string>Graphics</string>
1629 </attribute>
1630 <layout class="QGridLayout" name="gridLayout_20">
1631 <item row="1" column="0">
1632 <widget class="QLabel" name="label_54">
1633 <property name="text">
1634 <string>Prefix</string>
1635 </property>
1636 </widget>
1637 </item>
1638 <item row="0" column="6">
1639 <widget class="QToolButton" name="specHeisGraphToolPath">
1640 <property name="text">
1641 <string>...</string>
1642 </property>
1643 </widget>
1644 </item>
1645 <item row="4" column="2">
1646 <widget class="QCheckBox" name="specHeisGraphCebRTIplot">
1647 <property name="text">
1648 <string/>
1649 </property>
1650 </widget>
1651 </item>
1652 <item row="7" column="0">
1653 <widget class="QLabel" name="label_62">
1654 <property name="text">
1655 <string>ymin - ymax</string>
1656 </property>
1657 </widget>
1658 </item>
1659 <item row="8" column="0">
1660 <widget class="QLabel" name="label_63">
1661 <property name="text">
1662 <string>Tmin - Tmax:</string>
1663 </property>
1664 </widget>
1665 </item>
1666 <item row="9" column="0">
1667 <widget class="QLabel" name="label_64">
1668 <property name="text">
1669 <string>Time Range:</string>
1670 </property>
1671 </widget>
1672 </item>
1673 <item row="10" column="0">
1674 <widget class="QLabel" name="label_65">
1675 <property name="text">
1676 <string>Wr Period</string>
1677 </property>
1678 </widget>
1679 </item>
1680 <item row="11" column="0" colspan="2">
1681 <spacer name="horizontalSpacer_14">
1682 <property name="orientation">
1683 <enum>Qt::Horizontal</enum>
1684 </property>
1685 <property name="sizeHint" stdset="0">
1686 <size>
1687 <width>134</width>
1688 <height>20</height>
1689 </size>
1690 </property>
1691 </spacer>
1692 </item>
1693 <item row="10" column="1" colspan="6">
1694 <widget class="QLineEdit" name="specHeisGgraphftpratio"/>
1695 </item>
1696 <item row="4" column="6">
1697 <widget class="QCheckBox" name="specHeisGraphftpRTIplot">
1698 <property name="text">
1699 <string/>
1700 </property>
1701 </widget>
1702 </item>
1703 <item row="8" column="1" colspan="6">
1704 <widget class="QLineEdit" name="specHeisGgraphTminTmax"/>
1705 </item>
1706 <item row="5" column="0">
1707 <widget class="QLabel" name="label_60">
1708 <property name="text">
1709 <string>Channel List:</string>
1710 </property>
1711 </widget>
1712 </item>
1713 <item row="6" column="0">
1714 <widget class="QLabel" name="label_61">
1715 <property name="text">
1716 <string>xmin - xmax</string>
1717 </property>
1718 </widget>
1719 </item>
1720 <item row="1" column="1" colspan="6">
1721 <widget class="QLineEdit" name="specHeisGraphPrefix"/>
1722 </item>
1723 <item row="2" column="4">
1724 <widget class="QLabel" name="label_56">
1725 <property name="text">
1726 <string>Save</string>
1727 </property>
1728 </widget>
1729 </item>
1730 <item row="2" column="6">
1731 <widget class="QLabel" name="label_57">
1732 <property name="text">
1733 <string>ftp</string>
1734 </property>
1735 </widget>
1736 </item>
1737 <item row="3" column="0">
1738 <widget class="QLabel" name="label_58">
1739 <property name="text">
1740 <string>Spectra Plot</string>
1741 </property>
1742 </widget>
1743 </item>
1744 <item row="3" column="2">
1745 <widget class="QCheckBox" name="specHeisGraphCebSpectraplot">
1746 <property name="text">
1747 <string/>
1748 </property>
1749 </widget>
1750 </item>
1751 <item row="7" column="1" colspan="6">
1752 <widget class="QLineEdit" name="specHeisGgraphYminYmax"/>
1753 </item>
1754 <item row="0" column="0">
1755 <widget class="QLabel" name="label_53">
1756 <property name="text">
1757 <string>Path</string>
1758 </property>
1759 </widget>
1760 </item>
1761 <item row="2" column="2">
1762 <widget class="QLabel" name="label_55">
1763 <property name="text">
1764 <string>Show</string>
1765 </property>
1766 </widget>
1767 </item>
1768 <item row="4" column="4">
1769 <widget class="QCheckBox" name="specHeisGraphSaveRTIplot">
1770 <property name="text">
1771 <string/>
1772 </property>
1773 </widget>
1774 </item>
1775 <item row="2" column="3">
1776 <spacer name="horizontalSpacer_13">
1777 <property name="orientation">
1778 <enum>Qt::Horizontal</enum>
1779 </property>
1780 <property name="sizeHint" stdset="0">
1781 <size>
1782 <width>40</width>
1783 <height>20</height>
1784 </size>
1785 </property>
1786 </spacer>
1787 </item>
1788 <item row="6" column="1" colspan="6">
1789 <widget class="QLineEdit" name="specHeisGgraphXminXmax"/>
1790 </item>
1791 <item row="5" column="1" colspan="6">
1792 <widget class="QLineEdit" name="specHeisGgraphChannelList"/>
1793 </item>
1794 <item row="9" column="1" colspan="6">
1795 <widget class="QLineEdit" name="specHeisGgraphTimeRange"/>
1796 </item>
1797 <item row="11" column="3" colspan="3">
1798 <spacer name="horizontalSpacer_19">
1799 <property name="orientation">
1800 <enum>Qt::Horizontal</enum>
1801 </property>
1802 <property name="sizeHint" stdset="0">
1803 <size>
1804 <width>106</width>
1805 <height>20</height>
1806 </size>
1807 </property>
1808 </spacer>
1809 </item>
1810 <item row="3" column="4">
1811 <widget class="QCheckBox" name="specHeisGraphSaveSpectra">
1812 <property name="text">
1813 <string/>
1814 </property>
1815 </widget>
1816 </item>
1817 <item row="3" column="6">
1818 <widget class="QCheckBox" name="specHeisGraphftpSpectra">
1819 <property name="text">
1820 <string/>
1821 </property>
1822 </widget>
1823 </item>
1824 <item row="4" column="0">
1825 <widget class="QLabel" name="label_59">
1826 <property name="text">
1827 <string>RTI PLot</string>
1828 </property>
1829 </widget>
1830 </item>
1831 <item row="2" column="5">
1832 <spacer name="horizontalSpacer_21">
1833 <property name="orientation">
1834 <enum>Qt::Horizontal</enum>
1835 </property>
1836 <property name="sizeHint" stdset="0">
1837 <size>
1838 <width>40</width>
1839 <height>20</height>
1840 </size>
1841 </property>
1842 </spacer>
1843 </item>
1844 <item row="0" column="1" colspan="5">
1845 <widget class="QLineEdit" name="specHeisGraphPath"/>
1846 </item>
1847 </layout>
1848 </widget>
1849 <widget class="QWidget" name="taboutputSpectraHeis">
1850 <attribute name="title">
1851 <string>Output</string>
1852 </attribute>
1853 <layout class="QGridLayout" name="gridLayout_19">
1854 <item row="1" column="0">
1855 <widget class="QLabel" name="label_67">
1856 <property name="text">
1857 <string>Path:</string>
1858 </property>
1859 </widget>
1860 </item>
1861 <item row="2" column="0" colspan="2">
1862 <widget class="QLabel" name="label_68">
1863 <property name="text">
1864 <string>Blocks per File:</string>
1865 </property>
1866 </widget>
1867 </item>
1868 <item row="0" column="0">
1869 <widget class="QLabel" name="label_66">
1870 <property name="text">
1871 <string>Type:</string>
1872 </property>
1873 </widget>
1874 </item>
1875 <item row="4" column="0">
1876 <spacer name="verticalSpacer_8">
1877 <property name="orientation">
1878 <enum>Qt::Vertical</enum>
1879 </property>
1880 <property name="sizeHint" stdset="0">
1881 <size>
1882 <width>20</width>
1883 <height>40</height>
1884 </size>
1885 </property>
1886 </spacer>
1887 </item>
1888 <item row="1" column="4">
1889 <widget class="QToolButton" name="specHeisOutputToolPath">
1890 <property name="text">
1891 <string>...</string>
1892 </property>
1893 </widget>
1894 </item>
1895 <item row="1" column="3">
1896 <widget class="QLineEdit" name="specHeisOutputPath"/>
1897 </item>
1898 <item row="0" column="3" colspan="2">
1899 <widget class="QComboBox" name="specHeisOutputComdata">
1900 <item>
1901 <property name="text">
1902 <string>.fits</string>
1903 </property>
1904 </item>
1905 </widget>
1906 </item>
1907 <item row="3" column="0" colspan="2">
1908 <widget class="QLabel" name="label_69">
1909 <property name="text">
1910 <string>Metada</string>
1911 </property>
1912 </widget>
1913 </item>
1914 <item row="2" column="3">
1915 <widget class="QLineEdit" name="specHeisOutputblocksperfile"/>
1916 </item>
1917 <item row="3" column="3">
1918 <widget class="QLineEdit" name="specHeisOutputMetada"/>
1919 </item>
1920 <item row="3" column="4">
1921 <widget class="QToolButton" name="specHeisOutputMetadaToolPath">
1922 <property name="text">
1923 <string>...</string>
1924 </property>
1925 </widget>
1926 </item>
1927 </layout>
1928 </widget>
1929 </widget>
1930 </item>
1931 </layout>
1932 </widget>
1933 <widget class="QWidget" name="tabCorrelation">
1934 <attribute name="title">
1935 <string>Correlation</string>
1936 </attribute>
1937 <layout class="QGridLayout" name="gridLayout_13">
1938 <item row="0" column="0">
1939 <widget class="QTabWidget" name="tabWidget_2">
1940 <property name="currentIndex">
1941 <number>0</number>
1942 </property>
1943 <widget class="QWidget" name="tabopCorrelation">
1944 <attribute name="title">
1945 <string>Operation</string>
1946 </attribute>
1947 </widget>
1948 <widget class="QWidget" name="tabopCorrelation">
1949 <attribute name="title">
1950 <string>Graphics</string>
1951 </attribute>
1952 </widget>
1953 </widget>
1954 </item>
1955 </layout>
1956 </widget>
1957 </widget>
1958 <widget class="QTabWidget" name="tabConsole">
1959 <property name="minimumSize">
1960 <size>
1961 <width>0</width>
1962 <height>0</height>
1963 </size>
1964 </property>
1965 <property name="currentIndex">
1966 <number>0</number>
1967 </property>
1968 <widget class="QWidget" name="tab_5">
1969 <attribute name="title">
1970 <string>Console</string>
1971 </attribute>
1972 <layout class="QGridLayout" name="gridLayout_4">
1973 <item row="0" column="0">
1974 <widget class="QTextEdit" name="console"/>
1975 </item>
1976 </layout>
1977 </widget>
1978 </widget>
1979 </widget>
1980 <widget class="QTabWidget" name="tabWidget">
1981 <property name="currentIndex">
1982 <number>0</number>
1983 </property>
1984 <widget class="QWidget" name="tabProjectProperty">
1985 <attribute name="title">
1986 <string>Project Property</string>
1987 </attribute>
1988 <layout class="QGridLayout" name="gridLayout_8">
1989 <item row="0" column="0">
1990 <widget class="QTreeView" name="treeProjectProperties"/>
1991 </item>
1992 </layout>
1993 </widget>
1994 </widget>
1995 </widget>
1996 </item>
1997 </layout>
1998 </widget>
1999 <widget class="QToolBar" name="toolBar">
2000 <property name="windowTitle">
2001 <string>toolBar</string>
2002 </property>
2003 <attribute name="toolBarArea">
2004 <enum>TopToolBarArea</enum>
2005 </attribute>
2006 <attribute name="toolBarBreak">
2007 <bool>false</bool>
2008 </attribute>
2009 <addaction name="actionOpenToolbar"/>
2010 <addaction name="separator"/>
2011 <addaction name="actionCreateToolbar"/>
2012 <addaction name="separator"/>
2013 <addaction name="actionAddPU"/>
2014 <addaction name="separator"/>
2015 <addaction name="actionSaveToolbar"/>
2016 <addaction name="separator"/>
2017 <addaction name="actionStarToolbar"/>
2018 <addaction name="separator"/>
2019 <addaction name="actionPauseToolbar"/>
2020 <addaction name="separator"/>
2021 <addaction name="actionStopToolbar"/>
2022 <addaction name="separator"/>
2023 </widget>
2024 <widget class="QMenuBar" name="menuBar">
2025 <property name="geometry">
2026 <rect>
2027 <x>0</x>
2028 <y>0</y>
2029 <width>1065</width>
2030 <height>25</height>
2031 </rect>
2032 </property>
2033 <widget class="QMenu" name="menuProject">
2034 <property name="title">
2035 <string>Project</string>
2036 </property>
2037 <addaction name="actionOpen"/>
2038 <addaction name="actionCreate"/>
2039 <addaction name="actionSave"/>
2040 <addaction name="actionClose"/>
2041 </widget>
2042 <widget class="QMenu" name="menuRun">
2043 <property name="title">
2044 <string>Run</string>
2045 </property>
2046 <addaction name="actionStart"/>
2047 <addaction name="actionPause"/>
2048 </widget>
2049 <widget class="QMenu" name="menuOptions">
2050 <property name="title">
2051 <string>Options</string>
2052 </property>
2053 <addaction name="actionFTP"/>
2054 </widget>
2055 <widget class="QMenu" name="menuHelp">
2056 <property name="title">
2057 <string>Help</string>
2058 </property>
2059 <addaction name="actionAbout"/>
2060 </widget>
2061 <addaction name="menuProject"/>
2062 <addaction name="menuRun"/>
2063 <addaction name="menuOptions"/>
2064 <addaction name="menuHelp"/>
2065 </widget>
2066 <action name="actionOpen">
2067 <property name="icon">
2068 <iconset>
2069 <normaloff>../Documents/figure/open.png</normaloff>../Documents/figure/open.png</iconset>
2070 </property>
2071 <property name="text">
2072 <string>Open</string>
2073 </property>
2074 </action>
2075 <action name="actionCreate">
2076 <property name="icon">
2077 <iconset>
2078 <normaloff>../Documents/figure/create_class_obj.png</normaloff>../Documents/figure/create_class_obj.png</iconset>
2079 </property>
2080 <property name="text">
2081 <string>Create</string>
2082 </property>
2083 </action>
2084 <action name="actionSave">
2085 <property name="icon">
2086 <iconset>
2087 <normaloff>../Documents/figure/save.gif</normaloff>../Documents/figure/save.gif</iconset>
2088 </property>
2089 <property name="text">
2090 <string>Save</string>
2091 </property>
2092 </action>
2093 <action name="actionClose">
2094 <property name="text">
2095 <string>Close</string>
2096 </property>
2097 </action>
2098 <action name="actionStart">
2099 <property name="icon">
2100 <iconset>
2101 <normaloff>../Documents/figure/startServer.png</normaloff>../Documents/figure/startServer.png</iconset>
2102 </property>
2103 <property name="text">
2104 <string>Start</string>
2105 </property>
2106 </action>
2107 <action name="actionPause">
2108 <property name="text">
2109 <string>Pause</string>
2110 </property>
2111 </action>
2112 <action name="actionAbout">
2113 <property name="text">
2114 <string>About</string>
2115 </property>
2116 </action>
2117 <action name="actionOpenToolbar">
2118 <property name="icon">
2119 <iconset>
2120 <normaloff>../Documents/figure/open.png</normaloff>../Documents/figure/open.png</iconset>
2121 </property>
2122 <property name="text">
2123 <string>openToolbar</string>
2124 </property>
2125 <property name="toolTip">
2126 <string>Open</string>
2127 </property>
2128 </action>
2129 <action name="actionCreateToolbar">
2130 <property name="icon">
2131 <iconset>
2132 <normaloff>../Documents/figure/create_class_obj.png</normaloff>../Documents/figure/create_class_obj.png</iconset>
2133 </property>
2134 <property name="text">
2135 <string>createToolbar</string>
2136 </property>
2137 <property name="toolTip">
2138 <string>Create</string>
2139 </property>
2140 </action>
2141 <action name="actionSaveToolbar">
2142 <property name="icon">
2143 <iconset>
2144 <normaloff>../Documents/figure/save.gif</normaloff>../Documents/figure/save.gif</iconset>
2145 </property>
2146 <property name="text">
2147 <string>saveToolbar</string>
2148 </property>
2149 <property name="toolTip">
2150 <string>Save</string>
2151 </property>
2152 </action>
2153 <action name="actionStarToolbar">
2154 <property name="icon">
2155 <iconset>
2156 <normaloff>../Documents/figure/startServer.png</normaloff>../Documents/figure/startServer.png</iconset>
2157 </property>
2158 <property name="text">
2159 <string>starToolbar</string>
2160 </property>
2161 <property name="toolTip">
2162 <string>Start</string>
2163 </property>
2164 </action>
2165 <action name="actionStopToolbar">
2166 <property name="icon">
2167 <iconset>
2168 <normaloff>../Documents/figure/stopServer.png</normaloff>../Documents/figure/stopServer.png</iconset>
2169 </property>
2170 <property name="text">
2171 <string>stopToolbar</string>
2172 </property>
2173 <property name="toolTip">
2174 <string>Stop</string>
2175 </property>
2176 </action>
2177 <action name="actionPauseToolbar">
2178 <property name="icon">
2179 <iconset>
2180 <normaloff>../workspace/branch_gui_may/gui/figure/pause.png</normaloff>../workspace/branch_gui_may/gui/figure/pause.png</iconset>
2181 </property>
2182 <property name="text">
2183 <string>pauseToolbar</string>
2184 </property>
2185 <property name="toolTip">
2186 <string>Pause</string>
2187 </property>
2188 </action>
2189 <action name="actionAddPU">
2190 <property name="icon">
2191 <iconset>
2192 <normaloff>../addpu.jpg</normaloff>../addpu.jpg</iconset>
2193 </property>
2194 <property name="text">
2195 <string>addPU</string>
2196 </property>
2197 </action>
2198 <action name="actionFTP">
2199 <property name="text">
2200 <string>FTP</string>
2201 </property>
2202 </action>
2203 </widget>
2204 <resources/>
2205 <connections/>
2206 </ui>
@@ -1,300 +0,0
1 <?xml version="1.0" encoding="UTF-8"?>
2 <ui version="4.0">
3 <class>MainWindow</class>
4 <widget class="QMainWindow" name="MainWindow">
5 <property name="geometry">
6 <rect>
7 <x>0</x>
8 <y>0</y>
9 <width>374</width>
10 <height>399</height>
11 </rect>
12 </property>
13 <property name="minimumSize">
14 <size>
15 <width>374</width>
16 <height>399</height>
17 </size>
18 </property>
19 <property name="maximumSize">
20 <size>
21 <width>374</width>
22 <height>399</height>
23 </size>
24 </property>
25 <property name="windowTitle">
26 <string>MainWindow</string>
27 </property>
28 <widget class="QWidget" name="centralWidget">
29 <widget class="QLabel" name="label">
30 <property name="geometry">
31 <rect>
32 <x>9</x>
33 <y>38</y>
34 <width>47</width>
35 <height>17</height>
36 </rect>
37 </property>
38 <property name="text">
39 <string>Server:</string>
40 </property>
41 </widget>
42 <widget class="QLabel" name="label_2">
43 <property name="geometry">
44 <rect>
45 <x>9</x>
46 <y>133</y>
47 <width>77</width>
48 <height>17</height>
49 </rect>
50 </property>
51 <property name="text">
52 <string>User Name:</string>
53 </property>
54 </widget>
55 <widget class="QLabel" name="label_3">
56 <property name="geometry">
57 <rect>
58 <x>9</x>
59 <y>166</y>
60 <width>68</width>
61 <height>17</height>
62 </rect>
63 </property>
64 <property name="text">
65 <string>Password:</string>
66 </property>
67 </widget>
68 <widget class="QLabel" name="label_4">
69 <property name="geometry">
70 <rect>
71 <x>9</x>
72 <y>9</y>
73 <width>101</width>
74 <height>17</height>
75 </rect>
76 </property>
77 <property name="font">
78 <font>
79 <weight>75</weight>
80 <bold>true</bold>
81 </font>
82 </property>
83 <property name="text">
84 <string>Server Details</string>
85 </property>
86 </widget>
87 <widget class="QLabel" name="label_5">
88 <property name="geometry">
89 <rect>
90 <x>9</x>
91 <y>104</y>
92 <width>87</width>
93 <height>17</height>
94 </rect>
95 </property>
96 <property name="font">
97 <font>
98 <weight>75</weight>
99 <bold>true</bold>
100 </font>
101 </property>
102 <property name="text">
103 <string>User Details</string>
104 </property>
105 </widget>
106 <widget class="QLabel" name="label_6">
107 <property name="geometry">
108 <rect>
109 <x>9</x>
110 <y>71</y>
111 <width>47</width>
112 <height>17</height>
113 </rect>
114 </property>
115 <property name="text">
116 <string>Folder:</string>
117 </property>
118 </widget>
119 <widget class="QLineEdit" name="serverFTP">
120 <property name="geometry">
121 <rect>
122 <x>130</x>
123 <y>40</y>
124 <width>231</width>
125 <height>27</height>
126 </rect>
127 </property>
128 </widget>
129 <widget class="QLineEdit" name="folderFTP">
130 <property name="geometry">
131 <rect>
132 <x>130</x>
133 <y>70</y>
134 <width>231</width>
135 <height>27</height>
136 </rect>
137 </property>
138 </widget>
139 <widget class="QLineEdit" name="usernameFTP">
140 <property name="geometry">
141 <rect>
142 <x>130</x>
143 <y>130</y>
144 <width>231</width>
145 <height>27</height>
146 </rect>
147 </property>
148 </widget>
149 <widget class="QLineEdit" name="passwordFTP">
150 <property name="geometry">
151 <rect>
152 <x>130</x>
153 <y>160</y>
154 <width>231</width>
155 <height>27</height>
156 </rect>
157 </property>
158 </widget>
159 <widget class="QPushButton" name="ftpCancelButton">
160 <property name="geometry">
161 <rect>
162 <x>130</x>
163 <y>360</y>
164 <width>111</width>
165 <height>27</height>
166 </rect>
167 </property>
168 <property name="text">
169 <string>Cancel</string>
170 </property>
171 </widget>
172 <widget class="QPushButton" name="ftpOkButton">
173 <property name="geometry">
174 <rect>
175 <x>250</x>
176 <y>360</y>
177 <width>111</width>
178 <height>27</height>
179 </rect>
180 </property>
181 <property name="text">
182 <string>Ok</string>
183 </property>
184 </widget>
185 <widget class="QLabel" name="label_7">
186 <property name="geometry">
187 <rect>
188 <x>10</x>
189 <y>200</y>
190 <width>66</width>
191 <height>17</height>
192 </rect>
193 </property>
194 <property name="font">
195 <font>
196 <weight>75</weight>
197 <bold>true</bold>
198 </font>
199 </property>
200 <property name="text">
201 <string>Others</string>
202 </property>
203 </widget>
204 <widget class="QLabel" name="label_8">
205 <property name="geometry">
206 <rect>
207 <x>10</x>
208 <y>230</y>
209 <width>81</width>
210 <height>17</height>
211 </rect>
212 </property>
213 <property name="text">
214 <string>Ftp_wei:</string>
215 </property>
216 </widget>
217 <widget class="QLabel" name="label_9">
218 <property name="geometry">
219 <rect>
220 <x>10</x>
221 <y>260</y>
222 <width>81</width>
223 <height>17</height>
224 </rect>
225 </property>
226 <property name="text">
227 <string>Exp_code:</string>
228 </property>
229 </widget>
230 <widget class="QLabel" name="label_10">
231 <property name="geometry">
232 <rect>
233 <x>10</x>
234 <y>290</y>
235 <width>81</width>
236 <height>17</height>
237 </rect>
238 </property>
239 <property name="text">
240 <string>Sub_exp:</string>
241 </property>
242 </widget>
243 <widget class="QLabel" name="label_11">
244 <property name="geometry">
245 <rect>
246 <x>10</x>
247 <y>320</y>
248 <width>81</width>
249 <height>17</height>
250 </rect>
251 </property>
252 <property name="text">
253 <string>Plot_pos:</string>
254 </property>
255 </widget>
256 <widget class="QLineEdit" name="weightFTP">
257 <property name="geometry">
258 <rect>
259 <x>130</x>
260 <y>230</y>
261 <width>231</width>
262 <height>27</height>
263 </rect>
264 </property>
265 </widget>
266 <widget class="QLineEdit" name="expcodeFTP">
267 <property name="geometry">
268 <rect>
269 <x>130</x>
270 <y>260</y>
271 <width>231</width>
272 <height>27</height>
273 </rect>
274 </property>
275 </widget>
276 <widget class="QLineEdit" name="subexpFTP">
277 <property name="geometry">
278 <rect>
279 <x>130</x>
280 <y>290</y>
281 <width>231</width>
282 <height>27</height>
283 </rect>
284 </property>
285 </widget>
286 <widget class="QLineEdit" name="plotposFTP">
287 <property name="geometry">
288 <rect>
289 <x>130</x>
290 <y>320</y>
291 <width>231</width>
292 <height>27</height>
293 </rect>
294 </property>
295 </widget>
296 </widget>
297 </widget>
298 <resources/>
299 <connections/>
300 </ui>
@@ -1,112 +0,0
1 <?xml version="1.0" encoding="UTF-8"?>
2 <ui version="4.0">
3 <class>Dialog</class>
4 <widget class="QDialog" name="Dialog">
5 <property name="geometry">
6 <rect>
7 <x>0</x>
8 <y>0</y>
9 <width>652</width>
10 <height>496</height>
11 </rect>
12 </property>
13 <property name="windowTitle">
14 <string>Dialog</string>
15 </property>
16 <layout class="QGridLayout" name="gridLayout">
17 <item row="0" column="0">
18 <layout class="QVBoxLayout" name="verticalLayout_3">
19 <item>
20 <layout class="QVBoxLayout" name="verticalLayout_4">
21 <item>
22 <widget class="QLabel" name="label_3">
23 <property name="font">
24 <font>
25 <family>Cambria</family>
26 <pointsize>22</pointsize>
27 <weight>50</weight>
28 <bold>false</bold>
29 </font>
30 </property>
31 <property name="text">
32 <string>Signal Chain - Ver. 1.0</string>
33 </property>
34 </widget>
35 </item>
36 <item>
37 <widget class="Line" name="line_2">
38 <property name="orientation">
39 <enum>Qt::Horizontal</enum>
40 </property>
41 </widget>
42 </item>
43 <item>
44 <widget class="QLabel" name="label_4">
45 <property name="text">
46 <string/>
47 </property>
48 <property name="pixmap">
49 <pixmap>../../Downloads/IMAGENES/w.jpg</pixmap>
50 </property>
51 <property name="scaledContents">
52 <bool>true</bool>
53 </property>
54 </widget>
55 </item>
56 </layout>
57 </item>
58 <item>
59 <layout class="QHBoxLayout" name="horizontalLayout_3">
60 <item>
61 <layout class="QHBoxLayout" name="horizontalLayout_4">
62 <item>
63 <spacer name="horizontalSpacer_4">
64 <property name="orientation">
65 <enum>Qt::Horizontal</enum>
66 </property>
67 <property name="sizeHint" stdset="0">
68 <size>
69 <width>40</width>
70 <height>20</height>
71 </size>
72 </property>
73 </spacer>
74 </item>
75 <item>
76 <widget class="QPushButton" name="ExitBtn_2">
77 <property name="text">
78 <string>Exit</string>
79 </property>
80 </widget>
81 </item>
82 <item>
83 <widget class="QPushButton" name="ContinueBtn_2">
84 <property name="text">
85 <string>Continue</string>
86 </property>
87 </widget>
88 </item>
89 <item>
90 <spacer name="horizontalSpacer_5">
91 <property name="orientation">
92 <enum>Qt::Horizontal</enum>
93 </property>
94 <property name="sizeHint" stdset="0">
95 <size>
96 <width>40</width>
97 <height>20</height>
98 </size>
99 </property>
100 </spacer>
101 </item>
102 </layout>
103 </item>
104 </layout>
105 </item>
106 </layout>
107 </item>
108 </layout>
109 </widget>
110 <resources/>
111 <connections/>
112 </ui>
@@ -1,170 +0,0
1 <?xml version="1.0" encoding="UTF-8"?>
2 <ui version="4.0">
3 <class>MainWindow</class>
4 <widget class="QMainWindow" name="MainWindow">
5 <property name="geometry">
6 <rect>
7 <x>0</x>
8 <y>0</y>
9 <width>312</width>
10 <height>195</height>
11 </rect>
12 </property>
13 <property name="windowTitle">
14 <string>MainWindow</string>
15 </property>
16 <widget class="QWidget" name="centralWidget">
17 <layout class="QGridLayout" name="gridLayout">
18 <item row="2" column="0">
19 <widget class="QLabel" name="inputLabel">
20 <property name="font">
21 <font>
22 <pointsize>12</pointsize>
23 <weight>50</weight>
24 <bold>false</bold>
25 </font>
26 </property>
27 <property name="text">
28 <string>Input:</string>
29 </property>
30 </widget>
31 </item>
32 <item row="5" column="2" colspan="2">
33 <widget class="QPushButton" name="unitPcancelbut">
34 <property name="font">
35 <font>
36 <weight>50</weight>
37 <bold>false</bold>
38 </font>
39 </property>
40 <property name="text">
41 <string>Cancel</string>
42 </property>
43 </widget>
44 </item>
45 <item row="5" column="0" colspan="2">
46 <widget class="QPushButton" name="unitPokbut">
47 <property name="font">
48 <font>
49 <weight>50</weight>
50 <bold>false</bold>
51 </font>
52 </property>
53 <property name="text">
54 <string>Ok</string>
55 </property>
56 </widget>
57 </item>
58 <item row="3" column="0">
59 <widget class="QLabel" name="typeLabel">
60 <property name="font">
61 <font>
62 <pointsize>12</pointsize>
63 <weight>50</weight>
64 <bold>false</bold>
65 </font>
66 </property>
67 <property name="text">
68 <string>Type:</string>
69 </property>
70 </widget>
71 </item>
72 <item row="0" column="1" colspan="2">
73 <widget class="QLabel" name="nameUP">
74 <property name="font">
75 <font>
76 <pointsize>13</pointsize>
77 <weight>50</weight>
78 <bold>false</bold>
79 </font>
80 </property>
81 <property name="text">
82 <string>Processing Unit</string>
83 </property>
84 </widget>
85 </item>
86 <item row="0" column="3">
87 <spacer name="horizontalSpacer_2">
88 <property name="orientation">
89 <enum>Qt::Horizontal</enum>
90 </property>
91 <property name="sizeHint" stdset="0">
92 <size>
93 <width>40</width>
94 <height>20</height>
95 </size>
96 </property>
97 </spacer>
98 </item>
99 <item row="2" column="1" colspan="3">
100 <widget class="QComboBox" name="comboInputBox">
101 <property name="font">
102 <font>
103 <pointsize>12</pointsize>
104 </font>
105 </property>
106 </widget>
107 </item>
108 <item row="3" column="1" colspan="3">
109 <widget class="QComboBox" name="comboTypeBox">
110 <property name="font">
111 <font>
112 <pointsize>12</pointsize>
113 </font>
114 </property>
115 <item>
116 <property name="text">
117 <string>Voltage</string>
118 </property>
119 </item>
120 <item>
121 <property name="text">
122 <string>Spectra</string>
123 </property>
124 </item>
125 <item>
126 <property name="text">
127 <string>Correlation</string>
128 </property>
129 </item>
130 </widget>
131 </item>
132 <item row="0" column="0">
133 <spacer name="horizontalSpacer">
134 <property name="orientation">
135 <enum>Qt::Horizontal</enum>
136 </property>
137 <property name="sizeHint" stdset="0">
138 <size>
139 <width>40</width>
140 <height>20</height>
141 </size>
142 </property>
143 </spacer>
144 </item>
145 <item row="4" column="0">
146 <spacer name="verticalSpacer">
147 <property name="orientation">
148 <enum>Qt::Vertical</enum>
149 </property>
150 <property name="sizeHint" stdset="0">
151 <size>
152 <width>20</width>
153 <height>40</height>
154 </size>
155 </property>
156 </spacer>
157 </item>
158 <item row="1" column="0" colspan="4">
159 <widget class="Line" name="line">
160 <property name="orientation">
161 <enum>Qt::Horizontal</enum>
162 </property>
163 </widget>
164 </item>
165 </layout>
166 </widget>
167 </widget>
168 <resources/>
169 <connections/>
170 </ui>
@@ -1,247 +0,0
1 <?xml version="1.0" encoding="UTF-8"?>
2 <ui version="4.0">
3 <class>Dialog</class>
4 <widget class="QDialog" name="Dialog">
5 <property name="enabled">
6 <bool>true</bool>
7 </property>
8 <property name="geometry">
9 <rect>
10 <x>0</x>
11 <y>0</y>
12 <width>730</width>
13 <height>295</height>
14 </rect>
15 </property>
16 <property name="minimumSize">
17 <size>
18 <width>730</width>
19 <height>295</height>
20 </size>
21 </property>
22 <property name="maximumSize">
23 <size>
24 <width>730</width>
25 <height>295</height>
26 </size>
27 </property>
28 <property name="windowTitle">
29 <string>Dialog</string>
30 </property>
31 <widget class="QTextEdit" name="dirLabel">
32 <property name="geometry">
33 <rect>
34 <x>0</x>
35 <y>0</y>
36 <width>731</width>
37 <height>71</height>
38 </rect>
39 </property>
40 <property name="readOnly">
41 <bool>true</bool>
42 </property>
43 <property name="html">
44 <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
45 &lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
46 p, li { white-space: pre-wrap; }
47 &lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
48 &lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Cantarell'; font-size:12pt; font-weight:600;&quot;&gt;Select a workspace&lt;/span&gt;&lt;/p&gt;
49 &lt;p align=&quot;justify&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Cantarell';&quot;&gt;Signal Chain stores your projects in a folder called a workspace.&lt;/span&gt;&lt;/p&gt;
50 &lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Cantarell';&quot;&gt;Choose a workspace folder to use for this session.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
51 </property>
52 </widget>
53 <widget class="QLabel" name="dirWork">
54 <property name="geometry">
55 <rect>
56 <x>10</x>
57 <y>90</y>
58 <width>91</width>
59 <height>16</height>
60 </rect>
61 </property>
62 <property name="font">
63 <font>
64 <pointsize>11</pointsize>
65 </font>
66 </property>
67 <property name="text">
68 <string>Workspace :</string>
69 </property>
70 </widget>
71 <widget class="QComboBox" name="dirComBox">
72 <property name="geometry">
73 <rect>
74 <x>110</x>
75 <y>80</y>
76 <width>501</width>
77 <height>31</height>
78 </rect>
79 </property>
80 <property name="palette">
81 <palette>
82 <active>
83 <colorrole role="Button">
84 <brush brushstyle="SolidPattern">
85 <color alpha="255">
86 <red>255</red>
87 <green>255</green>
88 <blue>255</blue>
89 </color>
90 </brush>
91 </colorrole>
92 </active>
93 <inactive>
94 <colorrole role="Button">
95 <brush brushstyle="SolidPattern">
96 <color alpha="255">
97 <red>255</red>
98 <green>255</green>
99 <blue>255</blue>
100 </color>
101 </brush>
102 </colorrole>
103 </inactive>
104 <disabled>
105 <colorrole role="Button">
106 <brush brushstyle="SolidPattern">
107 <color alpha="255">
108 <red>255</red>
109 <green>255</green>
110 <blue>255</blue>
111 </color>
112 </brush>
113 </colorrole>
114 </disabled>
115 </palette>
116 </property>
117 </widget>
118 <widget class="QToolButton" name="dirToolPath">
119 <property name="geometry">
120 <rect>
121 <x>620</x>
122 <y>80</y>
123 <width>101</width>
124 <height>31</height>
125 </rect>
126 </property>
127 <property name="font">
128 <font>
129 <pointsize>11</pointsize>
130 </font>
131 </property>
132 <property name="text">
133 <string>Browse...</string>
134 </property>
135 </widget>
136 <widget class="QWidget" name="">
137 <property name="geometry">
138 <rect>
139 <x>10</x>
140 <y>120</y>
141 <width>711</width>
142 <height>121</height>
143 </rect>
144 </property>
145 <layout class="QHBoxLayout" name="horizontalLayout_3">
146 <item>
147 <spacer name="verticalSpacer">
148 <property name="orientation">
149 <enum>Qt::Vertical</enum>
150 </property>
151 <property name="sizeHint" stdset="0">
152 <size>
153 <width>20</width>
154 <height>40</height>
155 </size>
156 </property>
157 </spacer>
158 </item>
159 <item>
160 <spacer name="verticalSpacer_5">
161 <property name="orientation">
162 <enum>Qt::Vertical</enum>
163 </property>
164 <property name="sizeHint" stdset="0">
165 <size>
166 <width>20</width>
167 <height>40</height>
168 </size>
169 </property>
170 </spacer>
171 </item>
172 <item>
173 <spacer name="verticalSpacer_2">
174 <property name="orientation">
175 <enum>Qt::Vertical</enum>
176 </property>
177 <property name="sizeHint" stdset="0">
178 <size>
179 <width>20</width>
180 <height>40</height>
181 </size>
182 </property>
183 </spacer>
184 </item>
185 <item>
186 <spacer name="verticalSpacer_4">
187 <property name="orientation">
188 <enum>Qt::Vertical</enum>
189 </property>
190 <property name="sizeHint" stdset="0">
191 <size>
192 <width>20</width>
193 <height>40</height>
194 </size>
195 </property>
196 </spacer>
197 </item>
198 <item>
199 <spacer name="verticalSpacer_3">
200 <property name="orientation">
201 <enum>Qt::Vertical</enum>
202 </property>
203 <property name="sizeHint" stdset="0">
204 <size>
205 <width>20</width>
206 <height>40</height>
207 </size>
208 </property>
209 </spacer>
210 </item>
211 </layout>
212 </widget>
213 <widget class="QPushButton" name="dirCancelBtn">
214 <property name="geometry">
215 <rect>
216 <x>490</x>
217 <y>250</y>
218 <width>111</width>
219 <height>31</height>
220 </rect>
221 </property>
222 <property name="text">
223 <string>Cancel</string>
224 </property>
225 </widget>
226 <widget class="QPushButton" name="dirOkBtn">
227 <property name="geometry">
228 <rect>
229 <x>610</x>
230 <y>250</y>
231 <width>111</width>
232 <height>31</height>
233 </rect>
234 </property>
235 <property name="font">
236 <font>
237 <pointsize>11</pointsize>
238 </font>
239 </property>
240 <property name="text">
241 <string>OK</string>
242 </property>
243 </widget>
244 </widget>
245 <resources/>
246 <connections/>
247 </ui>
@@ -1,5 +0,0
1 from ui_project import *
2 from ui_voltage import *
3 from ui_spectra import *
4 from ui_spectra_heis import *
5 from ui_correlation import * No newline at end of file
@@ -1,45 +0,0
1
2 from PyQt4 import QtCore, QtGui
3
4 try:
5 _fromUtf8 = QtCore.QString.fromUtf8
6 except AttributeError:
7 def _fromUtf8(s):
8 return s
9
10 try:
11 _encoding = QtGui.QApplication.UnicodeUTF8
12 def _translate(context, text, disambig):
13 return QtGui.QApplication.translate(context, text, disambig, _encoding)
14 except AttributeError:
15 def _translate(context, text, disambig):
16 return QtGui.QApplication.translate(context, text, disambig)
17
18 class Ui_CorrelationTab(object):
19
20 def setupUi(self):
21
22 self.tabCorrelation = QtGui.QWidget()
23 self.tabCorrelation.setObjectName(_fromUtf8("tabCorrelation"))
24 self.gridLayout_13 = QtGui.QGridLayout(self.tabCorrelation)
25 self.gridLayout_13.setObjectName(_fromUtf8("gridLayout_13"))
26 self.tabWidgetCorrelation = QtGui.QTabWidget(self.tabCorrelation)
27 self.tabWidgetCorrelation.setObjectName(_fromUtf8("tabWidgetCorrelation"))
28 self.tabopCorrelation = QtGui.QWidget()
29 self.tabopCorrelation.setObjectName(_fromUtf8("tabopCorrelation"))
30 self.tabWidgetCorrelation.addTab(self.tabopCorrelation, _fromUtf8(""))
31 self.tabopCorrelation1 = QtGui.QWidget()
32 self.tabopCorrelation1.setObjectName(_fromUtf8("tabopCorrelation1"))
33 self.tabWidgetCorrelation.addTab(self.tabopCorrelation1, _fromUtf8(""))
34 self.gridLayout_13.addWidget(self.tabWidgetCorrelation, 0, 0, 1, 1)
35
36 self.tabWidgetProject.addTab(self.tabCorrelation, _fromUtf8(""))
37
38 self.tabWidgetCorrelation.setCurrentIndex(0)
39
40 def retranslateUi(self):
41
42 self.tabWidgetCorrelation.setTabText(self.tabWidgetCorrelation.indexOf(self.tabopCorrelation), _translate("MainWindow", "Operation", None))
43 self.tabWidgetCorrelation.setTabText(self.tabWidgetCorrelation.indexOf(self.tabopCorrelation1), _translate("MainWindow", "Graphics", None))
44 self.tabWidgetProject.setTabText(self.tabWidgetProject.indexOf(self.tabCorrelation), _translate("MainWindow", "Correlation", None))
45 No newline at end of file
@@ -1,257 +0,0
1
2 from PyQt4 import QtCore, QtGui
3
4 try:
5 _fromUtf8 = QtCore.QString.fromUtf8
6 except AttributeError:
7 def _fromUtf8(s):
8 return s
9
10 try:
11 _encoding = QtGui.QApplication.UnicodeUTF8
12 def _translate(context, text, disambig):
13 return QtGui.QApplication.translate(context, text, disambig, _encoding)
14 except AttributeError:
15 def _translate(context, text, disambig):
16 return QtGui.QApplication.translate(context, text, disambig)
17
18 class Ui_ProjectTab(object):
19
20 def setupUi(self):
21
22 self.tabProject = QtGui.QWidget()
23 self.tabProject.setObjectName(_fromUtf8("tabProject"))
24 self.gridLayout_15 = QtGui.QGridLayout(self.tabProject)
25 self.gridLayout_15.setObjectName(_fromUtf8("gridLayout_15"))
26
27 self.frame = QtGui.QFrame(self.tabProject)
28 self.frame.setFrameShape(QtGui.QFrame.StyledPanel)
29 self.frame.setFrameShadow(QtGui.QFrame.Raised)
30 self.frame.setObjectName(_fromUtf8("frame"))
31
32 self.gridLayout_2 = QtGui.QGridLayout(self.frame)
33 self.gridLayout_2.setObjectName(_fromUtf8("gridLayout_2"))
34
35 self.label = QtGui.QLabel(self.frame)
36 self.label.setObjectName(_fromUtf8("label"))
37 self.gridLayout_2.addWidget(self.label, 0, 0, 1, 1)
38
39 self.proName = QtGui.QLineEdit(self.frame)
40 self.proName.setObjectName(_fromUtf8("proName"))
41 self.gridLayout_2.addWidget(self.proName, 0, 1, 1, 8)
42
43 self.labDatatype = QtGui.QLabel(self.frame)
44 self.labDatatype.setObjectName(_fromUtf8("labDatatype"))
45 self.gridLayout_2.addWidget(self.labDatatype, 1, 0, 1, 1)
46
47 self.proComDataType = QtGui.QComboBox(self.frame)
48 self.proComDataType.setObjectName(_fromUtf8("proComDataType"))
49 self.proComDataType.addItem(_fromUtf8(""))
50 self.proComDataType.addItem(_fromUtf8(""))
51 self.proComDataType.addItem(_fromUtf8(""))
52 self.proComDataType.addItem(_fromUtf8(""))
53 self.gridLayout_2.addWidget(self.proComDataType, 1, 1, 1, 6)
54
55 self.proDataType = QtGui.QLineEdit(self.frame)
56 self.proDataType.setObjectName(_fromUtf8("proDataType"))
57 self.gridLayout_2.addWidget(self.proDataType, 1, 7, 1, 2)
58
59 self.labDatapath = QtGui.QLabel(self.frame)
60 self.labDatapath.setObjectName(_fromUtf8("labDatapath"))
61 self.gridLayout_2.addWidget(self.labDatapath, 2, 0, 1, 1)
62
63 self.proToolPath = QtGui.QToolButton(self.frame)
64 self.proToolPath.setObjectName(_fromUtf8("proToolPath"))
65 self.gridLayout_2.addWidget(self.proToolPath, 2, 1, 1, 1)
66
67 self.proDataPath = QtGui.QLineEdit(self.frame)
68 self.proDataPath.setObjectName(_fromUtf8("proDataPath"))
69 self.gridLayout_2.addWidget(self.proDataPath, 2, 2, 1, 7)
70
71 self.labelWalk = QtGui.QLabel(self.frame)
72 self.labelWalk.setObjectName(_fromUtf8("labelWalk"))
73 self.gridLayout_2.addWidget(self.labelWalk, 3, 0, 1, 1)
74
75 self.proComWalk = QtGui.QComboBox(self.frame)
76 self.proComWalk.setObjectName(_fromUtf8("proComWalk"))
77 self.proComWalk.addItem(_fromUtf8(""))
78 self.proComWalk.addItem(_fromUtf8(""))
79 self.gridLayout_2.addWidget(self.proComWalk, 3, 1, 1, 4)
80
81 self.labExpLabel = QtGui.QLabel(self.frame)
82 self.labExpLabel.setObjectName(_fromUtf8("labExpLabel"))
83 self.gridLayout_2.addWidget(self.labExpLabel, 3, 5, 1, 1)
84
85 self.proExpLabel = QtGui.QLineEdit(self.frame)
86 self.proExpLabel.setObjectName(_fromUtf8("proExpLabel"))
87 self.gridLayout_2.addWidget(self.proExpLabel, 3, 6, 1, 1)
88
89 self.labReadMode = QtGui.QLabel(self.frame)
90 self.labReadMode.setObjectName(_fromUtf8("labReadMode"))
91 self.gridLayout_2.addWidget(self.labReadMode, 4, 0, 1, 1)
92
93 self.proComReadMode = QtGui.QComboBox(self.frame)
94 self.proComReadMode.setObjectName(_fromUtf8("proComReadMode"))
95 self.proComReadMode.addItem(_fromUtf8(""))
96 self.proComReadMode.addItem(_fromUtf8(""))
97 self.gridLayout_2.addWidget(self.proComReadMode, 4, 1, 1, 4)
98
99 self.labDelay = QtGui.QLabel(self.frame)
100 self.labDelay.setObjectName(_fromUtf8("labDelay"))
101 self.gridLayout_2.addWidget(self.labDelay, 4, 5, 1, 1)
102
103 self.proDelay = QtGui.QLineEdit(self.frame)
104 self.proDelay.setObjectName(_fromUtf8("proDelay"))
105 self.gridLayout_2.addWidget(self.proDelay, 4, 6, 1, 1)
106
107 self.labelSet = QtGui.QLabel(self.frame)
108 self.labelSet.setObjectName(_fromUtf8("labelSet"))
109 self.gridLayout_2.addWidget(self.labelSet, 4, 7, 1, 1)
110
111 self.proSet = QtGui.QLineEdit(self.frame)
112 self.proSet.setObjectName(_fromUtf8("proSet"))
113 self.gridLayout_2.addWidget(self.proSet, 4, 8, 1, 1)
114
115
116 self.proLoadButton = QtGui.QPushButton(self.frame)
117 self.proLoadButton.setObjectName(_fromUtf8("proLoadButton"))
118 self.gridLayout_2.addWidget(self.proLoadButton, 5, 0, 1, 9)
119
120 self.frame_data = QtGui.QFrame(self.tabProject)
121 self.frame_data.setFrameShape(QtGui.QFrame.StyledPanel)
122 self.frame_data.setFrameShadow(QtGui.QFrame.Raised)
123 self.frame_data.setObjectName(_fromUtf8("frame_data"))
124
125 self.gridLayout_data = QtGui.QGridLayout(self.frame_data)
126 self.gridLayout_data.setObjectName(_fromUtf8("gridLayout_data"))
127
128 self.labelIPPKm = QtGui.QLabel(self.frame_data)
129 self.labelIPPKm.setObjectName(_fromUtf8("labelIPPKm"))
130 self.gridLayout_data.addWidget(self.labelIPPKm, 6, 0, 1, 1)
131
132 self.proIPPKm = QtGui.QLineEdit(self.frame_data)
133 self.proIPPKm.setObjectName(_fromUtf8("proIPPKm"))
134 self.gridLayout_data.addWidget(self.proIPPKm, 6, 1, 1, 6)
135
136 self.labnTxs = QtGui.QLabel(self.frame_data)
137 self.labnTxs.setObjectName(_fromUtf8("labnTxs"))
138 self.gridLayout_data.addWidget(self.labnTxs, 6, 0, 1, 1)
139
140 self.pronTxs = QtGui.QLineEdit(self.frame_data)
141 self.pronTxs.setObjectName(_fromUtf8("pronTxs"))
142 self.gridLayout_data.addWidget(self.pronTxs, 6, 1, 1, 6)
143
144 self.labByBlock = QtGui.QLabel(self.frame_data)
145 self.labByBlock.setObjectName(_fromUtf8("labByBlock"))
146 self.gridLayout_data.addWidget(self.labByBlock, 6, 7, 1, 1)
147
148 self.proComByBlock = QtGui.QComboBox(self.frame_data)
149 self.proComByBlock.setObjectName(_fromUtf8("proComByBlock"))
150 self.proComByBlock.addItem(_fromUtf8(""))
151 self.proComByBlock.addItem(_fromUtf8(""))
152 self.gridLayout_data.addWidget(self.proComByBlock, 6, 8, 1, 1)
153
154
155 self.frame_2 = QtGui.QFrame(self.tabProject)
156 self.frame_2.setFrameShape(QtGui.QFrame.StyledPanel)
157 self.frame_2.setFrameShadow(QtGui.QFrame.Raised)
158 self.frame_2.setObjectName(_fromUtf8("frame_2"))
159
160 self.gridLayout_10 = QtGui.QGridLayout(self.frame_2)
161 self.gridLayout_10.setObjectName(_fromUtf8("gridLayout_10"))
162
163 self.label_27 = QtGui.QLabel(self.frame_2)
164 self.label_27.setObjectName(_fromUtf8("label_27"))
165 self.gridLayout_10.addWidget(self.label_27, 0, 0, 1, 1)
166 self.proComStartDate = QtGui.QComboBox(self.frame_2)
167 self.proComStartDate.setObjectName(_fromUtf8("proComStartDate"))
168 self.gridLayout_10.addWidget(self.proComStartDate, 0, 1, 1, 1)
169 self.label_28 = QtGui.QLabel(self.frame_2)
170 self.label_28.setObjectName(_fromUtf8("label_28"))
171 self.gridLayout_10.addWidget(self.label_28, 1, 0, 1, 1)
172 self.proComEndDate = QtGui.QComboBox(self.frame_2)
173 self.proComEndDate.setObjectName(_fromUtf8("proComEndDate"))
174 self.gridLayout_10.addWidget(self.proComEndDate, 1, 1, 1, 1)
175 self.label_2 = QtGui.QLabel(self.frame_2)
176 self.label_2.setObjectName(_fromUtf8("label_2"))
177 self.gridLayout_10.addWidget(self.label_2, 2, 0, 1, 1)
178 self.proStartTime = QtGui.QTimeEdit(self.frame_2)
179 self.proStartTime.setObjectName(_fromUtf8("proStartTime"))
180 self.gridLayout_10.addWidget(self.proStartTime, 2, 1, 1, 1)
181 self.label_3 = QtGui.QLabel(self.frame_2)
182 self.label_3.setObjectName(_fromUtf8("label_3"))
183 self.gridLayout_10.addWidget(self.label_3, 3, 0, 1, 1)
184 self.proEndTime = QtGui.QTimeEdit(self.frame_2)
185 self.proEndTime.setObjectName(_fromUtf8("proEndTime"))
186 self.gridLayout_10.addWidget(self.proEndTime, 3, 1, 1, 1)
187 self.label_30 = QtGui.QLabel(self.frame_2)
188 self.label_30.setObjectName(_fromUtf8("label_30"))
189 self.gridLayout_10.addWidget(self.label_30, 4, 0, 1, 1)
190 self.proDescription = QtGui.QTextEdit(self.frame_2)
191 self.proDescription.setObjectName(_fromUtf8("proDescription"))
192 self.gridLayout_10.addWidget(self.proDescription, 4, 1, 1, 1)
193
194 self.frame_3 = QtGui.QFrame(self.tabProject)
195 self.frame_3.setFrameShape(QtGui.QFrame.StyledPanel)
196 self.frame_3.setFrameShadow(QtGui.QFrame.Raised)
197 self.frame_3.setObjectName(_fromUtf8("frame_3"))
198 self.gridLayout_14 = QtGui.QGridLayout(self.frame_3)
199 self.gridLayout_14.setObjectName(_fromUtf8("gridLayout_14"))
200 self.proOk = QtGui.QPushButton(self.frame_3)
201 self.proOk.setObjectName(_fromUtf8("proOk"))
202 self.gridLayout_14.addWidget(self.proOk, 0, 0, 1, 1)
203 self.proClear = QtGui.QPushButton(self.frame_3)
204 self.proClear.setObjectName(_fromUtf8("proClear"))
205 self.gridLayout_14.addWidget(self.proClear, 0, 1, 1, 1)
206
207 self.gridLayout_15.addWidget(self.frame, 0, 0, 8, 1)
208 self.gridLayout_15.addWidget(self.frame_data, 8, 0, 2, 1)
209 self.gridLayout_15.addWidget(self.frame_2, 10, 0, 7, 1)
210 self.gridLayout_15.addWidget(self.frame_3, 17, 0, 2, 1)
211
212 self.tabWidgetProject.addTab(self.tabProject, _fromUtf8(""))
213
214 def retranslateUi(self):
215
216 self.label.setText(_translate("MainWindow", "Project Name :", None))
217 self.labDatatype.setText(_translate("MainWindow", "Data type :", None))
218 self.proComDataType.setItemText(0, _translate("MainWindow", "Voltage", None))
219 self.proComDataType.setItemText(1, _translate("MainWindow", "Spectra", None))
220 self.proComDataType.setItemText(2, _translate("MainWindow", "Fits", None))
221 self.proComDataType.setItemText(3, _translate("MainWindow", "USRP", None))
222 self.labDatapath.setText(_translate("MainWindow", "Data path :", None))
223 self.proToolPath.setText(_translate("MainWindow", "...", None))
224 self.labReadMode.setText(_translate("MainWindow", "Read mode:", None))
225 self.proComReadMode.setItemText(0, _translate("MainWindow", "Offline", None))
226 self.proComReadMode.setItemText(1, _translate("MainWindow", "Online", None))
227 self.labDelay.setText(_translate("MainWindow", "Delay:", None))
228 self.labExpLabel.setText(_translate("MainWindow", "Exp. Label:", None))
229 self.labelWalk.setText(_translate("MainWindow", "Search data :", None))
230 self.proComWalk.setItemText(0, _translate("MainWindow", "On files", None))
231 self.proComWalk.setItemText(1, _translate("MainWindow", "On sub-folders", None))
232 self.proComByBlock.setItemText(0, _translate("MainWindow", "By profile", None))
233 self.proComByBlock.setItemText(1, _translate("MainWindow", "By block", None))
234 self.labByBlock.setText(_translate("MainWindow", "Get data:", None))
235
236
237 self.proLoadButton.setText(_translate("MainWindow", "Load", None))
238 self.labelSet.setText(_translate("MainWindow", "File set:", None))
239 self.labelIPPKm.setText(_translate("MainWindow", "IPP (km):", None))
240 self.labnTxs.setText(_translate("MainWindow", "Number of Txs:", None))
241
242 self.label_27.setText(_translate("MainWindow", "Star Date:", None))
243 self.label_28.setText(_translate("MainWindow", "End Date:", None))
244 self.label_2.setText(_translate("MainWindow", "Start Time:", None))
245 self.label_3.setText(_translate("MainWindow", "End Time:", None))
246 self.label_30.setText(_translate("MainWindow", "Description:", None))
247 self.proOk.setText(_translate("MainWindow", "Ok", None))
248 self.proClear.setText(_translate("MainWindow", "Clear", None))
249
250 self.tabWidgetProject.setTabText(self.tabWidgetProject.indexOf(self.tabProject), _translate("MainWindow", "Project", None))
251
252 self.__setToolTip()
253
254 def __setToolTip(self):
255
256 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>')
257 No newline at end of file
This diff has been collapsed as it changes many lines, (528 lines changed) Show them Hide them
@@ -1,528 +0,0
1 from PyQt4 import QtCore, QtGui
2
3 try:
4 _fromUtf8 = QtCore.QString.fromUtf8
5 except AttributeError:
6 def _fromUtf8(s):
7 return s
8
9 try:
10 _encoding = QtGui.QApplication.UnicodeUTF8
11 def _translate(context, text, disambig):
12 return QtGui.QApplication.translate(context, text, disambig, _encoding)
13 except AttributeError:
14 def _translate(context, text, disambig):
15 return QtGui.QApplication.translate(context, text, disambig)
16
17 class Ui_SpectraTab(object):
18
19 def setupUi(self):
20
21 self.tabSpectra = QtGui.QWidget()
22 self.tabSpectra.setObjectName(_fromUtf8("tabSpectra"))
23 self.gridLayout_7 = QtGui.QGridLayout(self.tabSpectra)
24 self.gridLayout_7.setObjectName(_fromUtf8("gridLayout_7"))
25 self.frame_5 = QtGui.QFrame(self.tabSpectra)
26 self.frame_5.setFrameShape(QtGui.QFrame.StyledPanel)
27 self.frame_5.setFrameShadow(QtGui.QFrame.Raised)
28 self.frame_5.setObjectName(_fromUtf8("frame_5"))
29 self.gridLayout_18 = QtGui.QGridLayout(self.frame_5)
30 self.gridLayout_18.setObjectName(_fromUtf8("gridLayout_18"))
31
32 self.specOpOk = QtGui.QPushButton(self.frame_5)
33 self.specOpOk.setObjectName(_fromUtf8("specOpOk"))
34 self.gridLayout_18.addWidget(self.specOpOk, 0, 0, 1, 1)
35
36 self.specGraphClear = QtGui.QPushButton(self.frame_5)
37 self.specGraphClear.setObjectName(_fromUtf8("specGraphClear"))
38 self.gridLayout_18.addWidget(self.specGraphClear, 0, 1, 1, 1)
39
40 self.gridLayout_7.addWidget(self.frame_5, 1, 1, 1, 1)
41
42 self.tabWidgetSpectra = QtGui.QTabWidget(self.tabSpectra)
43 self.tabWidgetSpectra.setObjectName(_fromUtf8("tabWidgetSpectra"))
44
45 self.tabopSpectra = QtGui.QWidget()
46 self.tabopSpectra.setObjectName(_fromUtf8("tabopSpectra"))
47
48 self.gridLayout_5 = QtGui.QGridLayout(self.tabopSpectra)
49 self.gridLayout_5.setObjectName(_fromUtf8("gridLayout_5"))
50
51
52
53 self.specOpCebRadarfrequency = QtGui.QCheckBox(self.tabopSpectra)
54 self.specOpCebRadarfrequency.setObjectName(_fromUtf8("specOpCebRadarfrequency"))
55 self.gridLayout_5.addWidget(self.specOpCebRadarfrequency, 0, 0, 1, 1)
56
57 self.specOpRadarfrequency = QtGui.QLineEdit(self.tabopSpectra)
58 self.specOpRadarfrequency.setObjectName(_fromUtf8("specOpRadarfrequency"))
59 self.gridLayout_5.addWidget(self.specOpRadarfrequency, 0, 1, 1, 4)
60
61
62 self.specLabProfiles = QtGui.QLabel(self.tabopSpectra)
63 self.specLabProfiles.setObjectName(_fromUtf8("specLabProfiles"))
64 self.gridLayout_5.addWidget(self.specLabProfiles, 1, 0, 1, 1)
65
66 self.specOpProfiles = QtGui.QLineEdit(self.tabopSpectra)
67 self.specOpProfiles.setObjectName(_fromUtf8("specOpProfiles"))
68 self.gridLayout_5.addWidget(self.specOpProfiles, 1, 1, 1, 4)
69
70
71 self.specLabnFFTPoints = QtGui.QLabel(self.tabopSpectra)
72 self.specLabnFFTPoints.setObjectName(_fromUtf8("specLabnFFTPoints"))
73 self.gridLayout_5.addWidget(self.specLabnFFTPoints, 2, 0, 1, 1)
74
75 self.specOpnFFTpoints = QtGui.QLineEdit(self.tabopSpectra)
76 self.specOpnFFTpoints.setObjectName(_fromUtf8("specOpnFFTpoints"))
77 self.gridLayout_5.addWidget(self.specOpnFFTpoints, 2, 1, 1, 4)
78
79
80 self.specLabippFactor = QtGui.QLabel(self.tabopSpectra)
81 self.specLabippFactor.setObjectName(_fromUtf8("specLabippFactor"))
82 self.gridLayout_5.addWidget(self.specLabippFactor, 3, 0, 1, 1)
83
84 self.specOpippFactor = QtGui.QLineEdit(self.tabopSpectra)
85 self.specOpippFactor.setObjectName(_fromUtf8("specOpippFactor"))
86 self.gridLayout_5.addWidget(self.specOpippFactor, 3, 1, 1, 4)
87
88
89 self.specOpCebChannel = QtGui.QCheckBox(self.tabopSpectra)
90 self.specOpCebChannel.setObjectName(_fromUtf8("specOpCebChannel"))
91 self.gridLayout_5.addWidget(self.specOpCebChannel, 4, 0, 1, 1)
92
93 self.specOpComChannel = QtGui.QComboBox(self.tabopSpectra)
94 self.specOpComChannel.setObjectName(_fromUtf8("specOpComChannel"))
95 self.specOpComChannel.addItem(_fromUtf8(""))
96 self.specOpComChannel.addItem(_fromUtf8(""))
97 self.gridLayout_5.addWidget(self.specOpComChannel, 4, 1, 1, 2)
98
99 self.specOpChannel = QtGui.QLineEdit(self.tabopSpectra)
100 self.specOpChannel.setObjectName(_fromUtf8("specOpChannel"))
101 self.gridLayout_5.addWidget(self.specOpChannel, 4, 3, 1, 2)
102
103
104 self.specOpCebCrossSpectra = QtGui.QCheckBox(self.tabopSpectra)
105 self.specOpCebCrossSpectra.setObjectName(_fromUtf8("specOpCebCrossSpectra"))
106 self.gridLayout_5.addWidget(self.specOpCebCrossSpectra, 5, 0, 1, 1)
107
108 self.specOpComCrossSpectra = QtGui.QComboBox(self.tabopSpectra)
109 self.specOpComCrossSpectra.setObjectName(_fromUtf8("specOpComCrossSpectra"))
110 self.specOpComCrossSpectra.addItem(_fromUtf8(""))
111 self.gridLayout_5.addWidget(self.specOpComCrossSpectra, 5, 1, 1, 2)
112
113 self.specOppairsList = QtGui.QLineEdit(self.tabopSpectra)
114 self.specOppairsList.setObjectName(_fromUtf8("specOppairsList"))
115 self.gridLayout_5.addWidget(self.specOppairsList, 5, 3, 1, 2)
116
117
118 self.specOpCebHeights = QtGui.QCheckBox(self.tabopSpectra)
119 self.specOpCebHeights.setObjectName(_fromUtf8("specOpCebHeights"))
120 self.gridLayout_5.addWidget(self.specOpCebHeights, 6, 0, 1, 1)
121
122 self.specOpComHeights = QtGui.QComboBox(self.tabopSpectra)
123 self.specOpComHeights.setObjectName(_fromUtf8("specOpComHeights"))
124 self.specOpComHeights.addItem(_fromUtf8(""))
125 self.specOpComHeights.addItem(_fromUtf8(""))
126 self.gridLayout_5.addWidget(self.specOpComHeights, 6, 1, 1, 2)
127
128 self.specOpHeights = QtGui.QLineEdit(self.tabopSpectra)
129 self.specOpHeights.setObjectName(_fromUtf8("specOpHeights"))
130 self.gridLayout_5.addWidget(self.specOpHeights, 6, 3, 1, 2)
131
132
133 self.specOpCebIncoherent = QtGui.QCheckBox(self.tabopSpectra)
134 self.specOpCebIncoherent.setObjectName(_fromUtf8("specOpCebIncoherent"))
135 self.gridLayout_5.addWidget(self.specOpCebIncoherent, 7, 0, 1, 1)
136
137 self.specOpCobIncInt = QtGui.QComboBox(self.tabopSpectra)
138 self.specOpCobIncInt.setObjectName(_fromUtf8("specOpCobIncInt"))
139 self.specOpCobIncInt.addItem(_fromUtf8(""))
140 self.specOpCobIncInt.addItem(_fromUtf8(""))
141 self.gridLayout_5.addWidget(self.specOpCobIncInt, 7, 1, 1, 2)
142
143 self.specOpIncoherent = QtGui.QLineEdit(self.tabopSpectra)
144 self.specOpIncoherent.setObjectName(_fromUtf8("specOpIncoherent"))
145 self.gridLayout_5.addWidget(self.specOpIncoherent, 7, 3, 1, 2)
146
147
148 self.specOpCebRemoveDC = QtGui.QCheckBox(self.tabopSpectra)
149 self.specOpCebRemoveDC.setObjectName(_fromUtf8("specOpCebRemoveDC"))
150 self.gridLayout_5.addWidget(self.specOpCebRemoveDC, 8, 0, 1, 1)
151
152 self.specOpComRemoveDC = QtGui.QComboBox(self.tabopSpectra)
153 self.specOpComRemoveDC.setObjectName(_fromUtf8("specOpComRemoveDC"))
154 self.specOpComRemoveDC.addItem(_fromUtf8(""))
155 self.specOpComRemoveDC.addItem(_fromUtf8(""))
156 self.gridLayout_5.addWidget(self.specOpComRemoveDC, 8, 1, 1, 2)
157
158
159 self.specOpCebRemoveInt = QtGui.QCheckBox(self.tabopSpectra)
160 self.specOpCebRemoveInt.setObjectName(_fromUtf8("specOpCebRemoveInt"))
161 self.gridLayout_5.addWidget(self.specOpCebRemoveInt, 9, 0, 1, 1)
162
163
164 self.specOpCebgetNoise = QtGui.QCheckBox(self.tabopSpectra)
165 self.specOpCebgetNoise.setObjectName(_fromUtf8("specOpCebgetNoise"))
166 self.gridLayout_5.addWidget(self.specOpCebgetNoise, 10, 0, 1, 1)
167
168 self.specOpgetNoise = QtGui.QLineEdit(self.tabopSpectra)
169 self.specOpgetNoise.setObjectName(_fromUtf8("specOpgetNoise"))
170 self.gridLayout_5.addWidget(self.specOpgetNoise, 10, 1, 1, 4)
171
172 # spacerItem9 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
173 # self.gridLayout_5.addItem(spacerItem9, 12, 3, 1, 1)
174 #
175 # spacerItem10 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
176 # self.gridLayout_5.addItem(spacerItem10, 9, 3, 1, 1)
177 #
178 # spacerItem11 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
179 # self.gridLayout_5.addItem(spacerItem11, 7, 3, 1, 1)
180 #
181 # spacerItem12 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
182 # self.gridLayout_5.addItem(spacerItem12, 4, 3, 1, 1)
183 #
184 # spacerItem13 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
185 # self.gridLayout_5.addItem(spacerItem13, 15, 3, 1, 1)
186
187
188 self.tabWidgetSpectra.addTab(self.tabopSpectra, _fromUtf8(""))
189
190 ################################################################
191 ################################################################
192
193 self.tabgraphSpectra = QtGui.QWidget()
194 self.tabgraphSpectra.setObjectName(_fromUtf8("tabgraphSpectra"))
195 self.gridLayout_9 = QtGui.QGridLayout(self.tabgraphSpectra)
196 self.gridLayout_9.setObjectName(_fromUtf8("gridLayout_9"))
197
198 # spacerItem14 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
199 # self.gridLayout_9.addItem(spacerItem14, 14, 2, 1, 1)
200 xi = 0
201
202 self.label_24 = QtGui.QLabel(self.tabgraphSpectra)
203 self.label_24.setObjectName(_fromUtf8("label_24"))
204 self.gridLayout_9.addWidget(self.label_24, xi, 0, 1, 1)
205
206 self.specGraphPath = QtGui.QLineEdit(self.tabgraphSpectra)
207 self.specGraphPath.setObjectName(_fromUtf8("specGraphPath"))
208 self.gridLayout_9.addWidget(self.specGraphPath, xi, 1, 1, 6)
209
210 self.specGraphToolPath = QtGui.QToolButton(self.tabgraphSpectra)
211 self.specGraphToolPath.setObjectName(_fromUtf8("specGraphToolPath"))
212 self.gridLayout_9.addWidget(self.specGraphToolPath, xi, 7, 1, 1)
213
214 self.label_25 = QtGui.QLabel(self.tabgraphSpectra)
215 self.label_25.setObjectName(_fromUtf8("label_25"))
216 self.gridLayout_9.addWidget(self.label_25, xi+1, 0, 1, 1)
217 self.specGraphPrefix = QtGui.QLineEdit(self.tabgraphSpectra)
218 self.specGraphPrefix.setObjectName(_fromUtf8("specGraphPrefix"))
219 self.gridLayout_9.addWidget(self.specGraphPrefix, xi+1, 1, 1, 7)
220
221 xi = 2
222
223 self.label_40 = QtGui.QLabel(self.tabgraphSpectra)
224 self.label_40.setObjectName(_fromUtf8("label_40"))
225 self.gridLayout_9.addWidget(self.label_40, xi+1, 0, 1, 1)
226 self.label_41 = QtGui.QLabel(self.tabgraphSpectra)
227 self.label_41.setObjectName(_fromUtf8("label_41"))
228 self.gridLayout_9.addWidget(self.label_41, xi+2, 0, 1, 1)
229 self.label_42 = QtGui.QLabel(self.tabgraphSpectra)
230 self.label_42.setObjectName(_fromUtf8("label_42"))
231 self.gridLayout_9.addWidget(self.label_42, xi+3, 0, 1, 1)
232 self.label_44 = QtGui.QLabel(self.tabgraphSpectra)
233 self.label_44.setObjectName(_fromUtf8("label_44"))
234 self.gridLayout_9.addWidget(self.label_44, xi+4, 0, 1, 1)
235 self.label_46 = QtGui.QLabel(self.tabgraphSpectra)
236 self.label_46.setObjectName(_fromUtf8("label_46"))
237 self.gridLayout_9.addWidget(self.label_46, xi+5, 0, 1, 1)
238 self.label_45 = QtGui.QLabel(self.tabgraphSpectra)
239 self.label_45.setObjectName(_fromUtf8("label_45"))
240 self.gridLayout_9.addWidget(self.label_45, xi+6, 0, 1, 1)
241
242 self.label_43 = QtGui.QLabel(self.tabgraphSpectra)
243 self.label_43.setObjectName(_fromUtf8("label_43"))
244 self.gridLayout_9.addWidget(self.label_43, xi, 3, 1, 1)
245 self.specGraphCebSpectraplot = QtGui.QCheckBox(self.tabgraphSpectra)
246 self.specGraphCebSpectraplot.setText(_fromUtf8(""))
247 self.specGraphCebSpectraplot.setObjectName(_fromUtf8("specGraphCebSpectraplot"))
248 self.gridLayout_9.addWidget(self.specGraphCebSpectraplot, xi+1, 3, 1, 1)
249 self.specGraphCebCrossSpectraplot = QtGui.QCheckBox(self.tabgraphSpectra)
250 self.specGraphCebCrossSpectraplot.setText(_fromUtf8(""))
251 self.specGraphCebCrossSpectraplot.setObjectName(_fromUtf8("specGraphCebCrossSpectraplot"))
252 self.gridLayout_9.addWidget(self.specGraphCebCrossSpectraplot, xi+2, 3, 1, 1)
253 self.specGraphCebRTIplot = QtGui.QCheckBox(self.tabgraphSpectra)
254 self.specGraphCebRTIplot.setText(_fromUtf8(""))
255 self.specGraphCebRTIplot.setObjectName(_fromUtf8("specGraphCebRTIplot"))
256 self.gridLayout_9.addWidget(self.specGraphCebRTIplot, xi+3, 3, 1, 1)
257 self.specGraphCebCoherencmap = QtGui.QCheckBox(self.tabgraphSpectra)
258 self.specGraphCebCoherencmap.setText(_fromUtf8(""))
259 self.specGraphCebCoherencmap.setObjectName(_fromUtf8("specGraphCebCoherencmap"))
260 self.gridLayout_9.addWidget(self.specGraphCebCoherencmap, xi+4, 3, 1, 1)
261 self.specGraphPowerprofile = QtGui.QCheckBox(self.tabgraphSpectra)
262 self.specGraphPowerprofile.setText(_fromUtf8(""))
263 self.specGraphPowerprofile.setObjectName(_fromUtf8("specGraphPowerprofile"))
264 self.gridLayout_9.addWidget(self.specGraphPowerprofile, xi+5, 3, 1, 1)
265 self.specGraphCebRTInoise = QtGui.QCheckBox(self.tabgraphSpectra)
266 self.specGraphCebRTInoise.setText(_fromUtf8(""))
267 self.specGraphCebRTInoise.setObjectName(_fromUtf8("specGraphCebRTInoise"))
268 self.gridLayout_9.addWidget(self.specGraphCebRTInoise, xi+6, 3, 1, 1)
269
270 # spacerItem18 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
271 # self.gridLayout_9.addItem(spacerItem18, 4, 3, 1, 1)
272
273 self.label_47 = QtGui.QLabel(self.tabgraphSpectra)
274 self.label_47.setObjectName(_fromUtf8("label_47"))
275 self.gridLayout_9.addWidget(self.label_47, xi, 5, 1, 1)
276 self.specGraphSaveSpectra = QtGui.QCheckBox(self.tabgraphSpectra)
277 self.specGraphSaveSpectra.setText(_fromUtf8(""))
278 self.specGraphSaveSpectra.setObjectName(_fromUtf8("specGraphSaveSpectra"))
279 self.gridLayout_9.addWidget(self.specGraphSaveSpectra, xi+1, 5, 1, 1)
280 self.specGraphSaveCross = QtGui.QCheckBox(self.tabgraphSpectra)
281 self.specGraphSaveCross.setText(_fromUtf8(""))
282 self.specGraphSaveCross.setObjectName(_fromUtf8("specGraphSaveCross"))
283 self.gridLayout_9.addWidget(self.specGraphSaveCross, xi+2, 5, 1, 1)
284 self.specGraphSaveRTIplot = QtGui.QCheckBox(self.tabgraphSpectra)
285 self.specGraphSaveRTIplot.setText(_fromUtf8(""))
286 self.specGraphSaveRTIplot.setObjectName(_fromUtf8("specGraphSaveRTIplot"))
287 self.gridLayout_9.addWidget(self.specGraphSaveRTIplot, xi+3, 5, 1, 1)
288 self.specGraphSaveCoherencemap = QtGui.QCheckBox(self.tabgraphSpectra)
289 self.specGraphSaveCoherencemap.setText(_fromUtf8(""))
290 self.specGraphSaveCoherencemap.setObjectName(_fromUtf8("specGraphSaveCoherencemap"))
291 self.gridLayout_9.addWidget(self.specGraphSaveCoherencemap, xi+4, 5, 1, 1)
292 self.specGraphSavePowerprofile = QtGui.QCheckBox(self.tabgraphSpectra)
293 self.specGraphSavePowerprofile.setText(_fromUtf8(""))
294 self.specGraphSavePowerprofile.setObjectName(_fromUtf8("specGraphSavePowerprofile"))
295 self.gridLayout_9.addWidget(self.specGraphSavePowerprofile, xi+5, 5, 1, 1)
296 self.specGraphSaveRTInoise = QtGui.QCheckBox(self.tabgraphSpectra)
297 self.specGraphSaveRTInoise.setText(_fromUtf8(""))
298 self.specGraphSaveRTInoise.setObjectName(_fromUtf8("specGraphSaveRTInoise"))
299 self.gridLayout_9.addWidget(self.specGraphSaveRTInoise, xi+6, 5, 1, 1)
300
301 self.label_19 = QtGui.QLabel(self.tabgraphSpectra)
302 self.label_19.setObjectName(_fromUtf8("label_19"))
303 self.gridLayout_9.addWidget(self.label_19, xi, 7, 1, 1)
304 self.specGraphftpSpectra = QtGui.QCheckBox(self.tabgraphSpectra)
305 self.specGraphftpSpectra.setText(_fromUtf8(""))
306 self.specGraphftpSpectra.setObjectName(_fromUtf8("specGraphftpSpectra"))
307 self.gridLayout_9.addWidget(self.specGraphftpSpectra, xi+1, 7, 1, 1)
308 self.specGraphftpCross = QtGui.QCheckBox(self.tabgraphSpectra)
309 self.specGraphftpCross.setText(_fromUtf8(""))
310 self.specGraphftpCross.setObjectName(_fromUtf8("specGraphftpCross"))
311 self.gridLayout_9.addWidget(self.specGraphftpCross, xi+2, 7, 1, 1)
312 self.specGraphftpRTIplot = QtGui.QCheckBox(self.tabgraphSpectra)
313 self.specGraphftpRTIplot.setText(_fromUtf8(""))
314 self.specGraphftpRTIplot.setObjectName(_fromUtf8("specGraphftpRTIplot"))
315 self.gridLayout_9.addWidget(self.specGraphftpRTIplot, xi+3, 7, 1, 1)
316 self.specGraphftpCoherencemap = QtGui.QCheckBox(self.tabgraphSpectra)
317 self.specGraphftpCoherencemap.setText(_fromUtf8(""))
318 self.specGraphftpCoherencemap.setObjectName(_fromUtf8("specGraphftpCoherencemap"))
319 self.gridLayout_9.addWidget(self.specGraphftpCoherencemap, xi+4, 7, 1, 1)
320 self.specGraphftpPowerprofile = QtGui.QCheckBox(self.tabgraphSpectra)
321 self.specGraphftpPowerprofile.setText(_fromUtf8(""))
322 self.specGraphftpPowerprofile.setObjectName(_fromUtf8("specGraphftpPowerprofile"))
323 self.gridLayout_9.addWidget(self.specGraphftpPowerprofile, xi+5, 7, 1, 1)
324 self.specGraphftpRTInoise = QtGui.QCheckBox(self.tabgraphSpectra)
325 self.specGraphftpRTInoise.setText(_fromUtf8(""))
326 self.specGraphftpRTInoise.setObjectName(_fromUtf8("specGraphftpRTInoise"))
327 self.gridLayout_9.addWidget(self.specGraphftpRTInoise, xi+6, 7, 1, 1)
328
329 # spacerItem19 = QtGui.QSpacerItem(39, 15, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
330 # self.gridLayout_9.addItem(spacerItem19, 27, 4, 1, 1)
331
332 xi = 11
333
334 self.label_22 = QtGui.QLabel(self.tabgraphSpectra)
335 self.label_22.setObjectName(_fromUtf8("label_22"))
336 self.gridLayout_9.addWidget(self.label_22, xi, 0, 1, 1)
337 self.specGgraphFreq = QtGui.QLineEdit(self.tabgraphSpectra)
338 self.specGgraphFreq.setObjectName(_fromUtf8("specGgraphFreq"))
339 self.gridLayout_9.addWidget(self.specGgraphFreq, xi, 2, 1, 2)
340
341 self.label_16 = QtGui.QLabel(self.tabgraphSpectra)
342 self.label_16.setObjectName(_fromUtf8("label_16"))
343 self.gridLayout_9.addWidget(self.label_16, xi+1, 0, 1, 1)
344 self.specGgraphHeight = QtGui.QLineEdit(self.tabgraphSpectra)
345 self.specGgraphHeight.setObjectName(_fromUtf8("specGgraphHeight"))
346 self.gridLayout_9.addWidget(self.specGgraphHeight, xi+1, 2, 1, 2)
347
348 self.label_17 = QtGui.QLabel(self.tabgraphSpectra)
349 self.label_17.setObjectName(_fromUtf8("label_17"))
350 self.gridLayout_9.addWidget(self.label_17, xi+2, 0, 1, 1)
351 self.specGgraphDbsrange = QtGui.QLineEdit(self.tabgraphSpectra)
352 self.specGgraphDbsrange.setObjectName(_fromUtf8("specGgraphDbsrange"))
353 self.gridLayout_9.addWidget(self.specGgraphDbsrange, xi+2, 2, 1, 2)
354
355 self.specGraphTminTmaxLabel = QtGui.QLabel(self.tabgraphSpectra)
356 self.specGraphTminTmaxLabel.setObjectName(_fromUtf8("specGraphTminTmaxLabel"))
357 self.gridLayout_9.addWidget(self.specGraphTminTmaxLabel, xi+3, 0, 1, 2)
358 self.specGgraphTminTmax = QtGui.QLineEdit(self.tabgraphSpectra)
359 self.specGgraphTminTmax.setObjectName(_fromUtf8("specGgraphTminTmax"))
360 self.gridLayout_9.addWidget(self.specGgraphTminTmax, xi+3, 2, 1, 2)
361
362 self.label_48 = QtGui.QLabel(self.tabgraphSpectra)
363 self.label_48.setObjectName(_fromUtf8("label_48"))
364 self.gridLayout_9.addWidget(self.label_48, xi+4, 0, 1, 2)
365 self.specGgraphTimeRange = QtGui.QLineEdit(self.tabgraphSpectra)
366 self.specGgraphTimeRange.setObjectName(_fromUtf8("specGgraphTimeRange"))
367 self.gridLayout_9.addWidget(self.specGgraphTimeRange, xi+4, 2, 1, 2)
368
369 self.specGraphMagLabel = QtGui.QLabel(self.tabgraphSpectra)
370 self.specGraphMagLabel.setObjectName(_fromUtf8("specGraphMagLabel"))
371 self.gridLayout_9.addWidget(self.specGraphMagLabel, xi, 4, 1, 2)
372 self.specGgraphmagnitud = QtGui.QLineEdit(self.tabgraphSpectra)
373 self.specGgraphmagnitud.setObjectName(_fromUtf8("specGgraphmagnitud"))
374 self.gridLayout_9.addWidget(self.specGgraphmagnitud, xi, 6, 1, 2)
375
376 self.specGraphPhaseLabel = QtGui.QLabel(self.tabgraphSpectra)
377 self.specGraphPhaseLabel.setObjectName(_fromUtf8("specGraphPhaseLabel"))
378 self.gridLayout_9.addWidget(self.specGraphPhaseLabel, xi+1, 4, 1, 2)
379 self.specGgraphPhase = QtGui.QLineEdit(self.tabgraphSpectra)
380 self.specGgraphPhase.setObjectName(_fromUtf8("specGgraphPhase"))
381 self.gridLayout_9.addWidget(self.specGgraphPhase, xi+1, 6, 1, 2)
382
383 self.label_6 = QtGui.QLabel(self.tabgraphSpectra)
384 self.label_6.setObjectName(_fromUtf8("label_6"))
385 self.gridLayout_9.addWidget(self.label_6, xi+2, 4, 1, 1)
386 self.specGgraphChannelList = QtGui.QLineEdit(self.tabgraphSpectra)
387 self.specGgraphChannelList.setObjectName(_fromUtf8("specGgraphChannelList"))
388 self.gridLayout_9.addWidget(self.specGgraphChannelList, xi+2, 6, 1, 2)
389
390 self.label_29 = QtGui.QLabel(self.tabgraphSpectra)
391 self.label_29.setObjectName(_fromUtf8("label_29"))
392 self.gridLayout_9.addWidget(self.label_29, xi+3, 4, 1, 2)
393 self.specGgraphftpratio = QtGui.QLineEdit(self.tabgraphSpectra)
394 self.specGgraphftpratio.setObjectName(_fromUtf8("specGgraphftpratio"))
395 self.gridLayout_9.addWidget(self.specGgraphftpratio, xi+3, 6, 1, 2)
396
397 # spacerItem15 = QtGui.QSpacerItem(28, 15, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
398 # self.gridLayout_9.addItem(spacerItem15, 27, 6, 1, 2)
399 # spacerItem16 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
400 # self.gridLayout_9.addItem(spacerItem16, 3, 5, 1, 1)
401 # spacerItem17 = QtGui.QSpacerItem(49, 15, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
402 # self.gridLayout_9.addItem(spacerItem17, 27, 0, 1, 1)
403
404
405
406 self.tabWidgetSpectra.addTab(self.tabgraphSpectra, _fromUtf8(""))
407 self.taboutputSpectra = QtGui.QWidget()
408 self.taboutputSpectra.setObjectName(_fromUtf8("taboutputSpectra"))
409 self.gridLayout_11 = QtGui.QGridLayout(self.taboutputSpectra)
410 self.gridLayout_11.setObjectName(_fromUtf8("gridLayout_11"))
411 self.label_39 = QtGui.QLabel(self.taboutputSpectra)
412 self.label_39.setObjectName(_fromUtf8("label_39"))
413 self.gridLayout_11.addWidget(self.label_39, 0, 0, 1, 1)
414 self.specOutputComData = QtGui.QComboBox(self.taboutputSpectra)
415 self.specOutputComData.setObjectName(_fromUtf8("specOutputComData"))
416 self.specOutputComData.addItem(_fromUtf8(""))
417 self.gridLayout_11.addWidget(self.specOutputComData, 0, 2, 1, 2)
418 self.label_34 = QtGui.QLabel(self.taboutputSpectra)
419 self.label_34.setObjectName(_fromUtf8("label_34"))
420 self.gridLayout_11.addWidget(self.label_34, 1, 0, 1, 1)
421 self.specOutputPath = QtGui.QLineEdit(self.taboutputSpectra)
422 self.specOutputPath.setObjectName(_fromUtf8("specOutputPath"))
423 self.gridLayout_11.addWidget(self.specOutputPath, 1, 2, 1, 1)
424 spacerItem20 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
425 self.gridLayout_11.addItem(spacerItem20, 4, 2, 1, 1)
426 self.specOutputToolPath = QtGui.QToolButton(self.taboutputSpectra)
427 self.specOutputToolPath.setObjectName(_fromUtf8("specOutputToolPath"))
428 self.gridLayout_11.addWidget(self.specOutputToolPath, 1, 3, 1, 1)
429 self.specOutputblocksperfile = QtGui.QLineEdit(self.taboutputSpectra)
430 self.specOutputblocksperfile.setObjectName(_fromUtf8("specOutputblocksperfile"))
431 self.gridLayout_11.addWidget(self.specOutputblocksperfile, 2, 2, 1, 1)
432 self.label_9 = QtGui.QLabel(self.taboutputSpectra)
433 self.label_9.setObjectName(_fromUtf8("label_9"))
434 self.gridLayout_11.addWidget(self.label_9, 2, 0, 1, 2)
435
436 self.tabWidgetSpectra.addTab(self.taboutputSpectra, _fromUtf8(""))
437 self.gridLayout_7.addWidget(self.tabWidgetSpectra, 0, 1, 1, 1)
438
439 self.tabWidgetProject.addTab(self.tabSpectra, _fromUtf8(""))
440
441 self.tabWidgetSpectra.setCurrentIndex(0)
442
443 def retranslateUi(self):
444
445 self.specOpOk.setText(_translate("MainWindow", "Ok", None))
446 self.specGraphClear.setText(_translate("MainWindow", "Clear", None))
447 self.specOpCebCrossSpectra.setText(_translate("MainWindow", "Select Cross Spectra:", None))
448 self.specOpComChannel.setItemText(0, _translate("MainWindow", "Value", None))
449 self.specOpComChannel.setItemText(1, _translate("MainWindow", "Index", None))
450 self.specOpComHeights.setItemText(0, _translate("MainWindow", "Value", None))
451 self.specOpComHeights.setItemText(1, _translate("MainWindow", "Index", None))
452 self.specOpCebRemoveDC.setText(_translate("MainWindow", "Remove DC:", None))
453 self.specOpCebHeights.setText(_translate("MainWindow", "Select Heights:", None))
454 self.specOpCebChannel.setText(_translate("MainWindow", "Select Channel:", None))
455
456 self.specOpComCrossSpectra.setItemText(0, _translate("MainWindow", "x-y pairs", None))
457
458 self.specLabnFFTPoints.setText(_translate("MainWindow", "Number of FFT points:", None))
459 self.specOpCebIncoherent.setText(_translate("MainWindow", "Incoherent Integration:", None))
460 self.specOpCobIncInt.setItemText(0, _translate("MainWindow", "Time Interval", None))
461 self.specOpCobIncInt.setItemText(1, _translate("MainWindow", "Number of Profiles", None))
462 self.specOpCebRadarfrequency.setText(_translate("MainWindow", "Radar frequency (MHz):", None))
463 self.specLabProfiles.setText(_translate("MainWindow", "Number of Profiles", None))
464 self.specOpCebRemoveInt.setText(_translate("MainWindow", "Remove Interference:", None))
465 self.specLabippFactor.setText(_translate("MainWindow", "Ipp Factor:", None))
466 self.specOpCebgetNoise.setText(_translate("MainWindow", "Set Noise area:", None))
467 self.specOpComRemoveDC.setItemText(0, _translate("MainWindow", "Mode 1", None))
468 self.specOpComRemoveDC.setItemText(1, _translate("MainWindow", "Mode 2", None))
469 self.tabWidgetSpectra.setTabText(self.tabWidgetSpectra.indexOf(self.tabopSpectra), _translate("MainWindow", "Operation", None))
470
471 self.label_44.setText(_translate("MainWindow", "Coherence Map:", None))
472 self.specGraphTminTmaxLabel.setText(_translate("MainWindow", "Time range (hours):", None))
473 self.label_25.setText(_translate("MainWindow", "Prefix:", None))
474 self.label_42.setText(_translate("MainWindow", "RTI Plot:", None))
475 self.label_16.setText(_translate("MainWindow", "Height range:", None))
476 self.label_17.setText(_translate("MainWindow", "dB range:", None))
477 self.specGraphMagLabel.setText(_translate("MainWindow", "Coh. Magnitud:", None))
478 self.label_24.setText(_translate("MainWindow", "Path:", None))
479 self.label_46.setText(_translate("MainWindow", "Power Profile:", None))
480 self.label_22.setText(_translate("MainWindow", "Freq/Vel range:", None))
481 self.label_41.setText(_translate("MainWindow", "Cross Spectra Plot:", None))
482 self.specGraphToolPath.setText(_translate("MainWindow", "...", None))
483 self.label_6.setText(_translate("MainWindow", "Channel List:", None))
484 self.label_40.setText(_translate("MainWindow", "Spectra Plot:", None))
485 self.label_43.setText(_translate("MainWindow", "Show:", None))
486 self.label_29.setText(_translate("MainWindow", "Writing Period:", None))
487 self.label_47.setText(_translate("MainWindow", "Save:", None))
488 self.label_19.setText(_translate("MainWindow", "Ftp:", None))
489 self.label_45.setText(_translate("MainWindow", "Noise:", None))
490 self.label_48.setText(_translate("MainWindow", "Time window (seconds):", None))
491 self.specGraphPhaseLabel.setText(_translate("MainWindow", "Coh. Phase:", None))
492 # self.label_48.hide()
493 # self.specGgraphTimeRange.hide()
494 self.tabWidgetSpectra.setTabText(self.tabWidgetSpectra.indexOf(self.tabgraphSpectra), _translate("MainWindow", "Graphics", None))
495
496 self.label_39.setText(_translate("MainWindow", "Type:", None))
497 self.specOutputComData.setItemText(0, _translate("MainWindow", ".pdata", None))
498 self.label_34.setText(_translate("MainWindow", "Path:", None))
499 self.specOutputToolPath.setText(_translate("MainWindow", "...", None))
500 self.label_9.setText(_translate("MainWindow", "Blocks per File: ", None))
501
502 self.tabWidgetSpectra.setTabText(self.tabWidgetSpectra.indexOf(self.taboutputSpectra), _translate("MainWindow", "Output", None))
503
504 self.tabWidgetProject.setTabText(self.tabWidgetProject.indexOf(self.tabSpectra), _translate("MainWindow", "Spectra", None))
505
506 self.__setToolTip()
507
508 def __setToolTip(self):
509
510 self.specOpnFFTpoints.setToolTip('Number of FFT points used in FFT function. Example: 128')
511 self.specOpProfiles.setToolTip('Number of data points used in FFT function. Example: 128')
512 self.specOpippFactor.setToolTip('This factor is multiplied to IPP value to get velocity and frequency range. Example: 4')
513 self.specOpIncoherent.setToolTip('Example: 10')
514 self.specOpgetNoise.setToolTip('Example:20,180,30,120 (minHei,maxHei,minVel,maxVel)')
515
516 self.specOpChannel.setToolTip('Example: 0,1,2,3')
517 self.specOpHeights.setToolTip('Example: 90,180')
518 self.specOppairsList.setToolTip('Example: (0,1),(2,3)')
519 # tool tip gui specGraph
520
521 self.specGgraphChannelList.setToolTip('Example: 0,3,4')
522 self.specGgraphFreq.setToolTip('Example: -20,20')
523 self.specGgraphHeight.setToolTip('Example: 100,400')
524 self.specGgraphDbsrange.setToolTip('Example: 30,170')
525
526 self.specGraphPrefix.setToolTip('Example: EXPERIMENT_NAME')
527
528 No newline at end of file
@@ -1,252 +0,0
1 from PyQt4 import QtCore, QtGui
2
3 try:
4 _fromUtf8 = QtCore.QString.fromUtf8
5 except AttributeError:
6 def _fromUtf8(s):
7 return s
8
9 try:
10 _encoding = QtGui.QApplication.UnicodeUTF8
11 def _translate(context, text, disambig):
12 return QtGui.QApplication.translate(context, text, disambig, _encoding)
13 except AttributeError:
14 def _translate(context, text, disambig):
15 return QtGui.QApplication.translate(context, text, disambig)
16
17 class Ui_SpectraHeisTab(object):
18
19 def setupUi(self):
20
21 self.tabSpectraHeis = QtGui.QWidget()
22 self.tabSpectraHeis.setObjectName(_fromUtf8("tabSpectraHeis"))
23 self.gridLayout_23 = QtGui.QGridLayout(self.tabSpectraHeis)
24 self.gridLayout_23.setObjectName(_fromUtf8("gridLayout_23"))
25 self.frame_6 = QtGui.QFrame(self.tabSpectraHeis)
26 self.frame_6.setFrameShape(QtGui.QFrame.StyledPanel)
27 self.frame_6.setFrameShadow(QtGui.QFrame.Raised)
28 self.frame_6.setObjectName(_fromUtf8("frame_6"))
29 self.gridLayout_22 = QtGui.QGridLayout(self.frame_6)
30 self.gridLayout_22.setObjectName(_fromUtf8("gridLayout_22"))
31 self.specHeisGraphClear = QtGui.QPushButton(self.frame_6)
32 self.specHeisGraphClear.setObjectName(_fromUtf8("specHeisGraphClear"))
33 self.gridLayout_22.addWidget(self.specHeisGraphClear, 0, 1, 1, 1)
34 self.specHeisOpOk = QtGui.QPushButton(self.frame_6)
35 self.specHeisOpOk.setObjectName(_fromUtf8("specHeisOpOk"))
36 self.gridLayout_22.addWidget(self.specHeisOpOk, 0, 0, 1, 1)
37 self.gridLayout_23.addWidget(self.frame_6, 1, 0, 1, 1)
38 self.tabWidgetSpectraHeis = QtGui.QTabWidget(self.tabSpectraHeis)
39 self.tabWidgetSpectraHeis.setObjectName(_fromUtf8("tabWidgetSpectraHeis"))
40 self.tabopSpectraHeis = QtGui.QWidget()
41 self.tabopSpectraHeis.setObjectName(_fromUtf8("tabopSpectraHeis"))
42 self.gridLayout_21 = QtGui.QGridLayout(self.tabopSpectraHeis)
43 self.gridLayout_21.setObjectName(_fromUtf8("gridLayout_21"))
44 spacerItem21 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
45 self.gridLayout_21.addItem(spacerItem21, 0, 1, 1, 1)
46 self.specHeisOpCobIncInt = QtGui.QComboBox(self.tabopSpectraHeis)
47 self.specHeisOpCobIncInt.setObjectName(_fromUtf8("specHeisOpCobIncInt"))
48 self.specHeisOpCobIncInt.addItem(_fromUtf8(""))
49 self.gridLayout_21.addWidget(self.specHeisOpCobIncInt, 1, 0, 1, 1)
50 self.specHeisOpCebIncoherent = QtGui.QCheckBox(self.tabopSpectraHeis)
51 self.specHeisOpCebIncoherent.setObjectName(_fromUtf8("specHeisOpCebIncoherent"))
52 self.gridLayout_21.addWidget(self.specHeisOpCebIncoherent, 0, 0, 1, 1)
53 self.specHeisOpIncoherent = QtGui.QLineEdit(self.tabopSpectraHeis)
54 self.specHeisOpIncoherent.setObjectName(_fromUtf8("specHeisOpIncoherent"))
55 self.gridLayout_21.addWidget(self.specHeisOpIncoherent, 1, 1, 1, 1)
56 spacerItem22 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
57 self.gridLayout_21.addItem(spacerItem22, 2, 0, 1, 1)
58 self.tabWidgetSpectraHeis.addTab(self.tabopSpectraHeis, _fromUtf8(""))
59 self.tabgraphSpectraHeis = QtGui.QWidget()
60 self.tabgraphSpectraHeis.setObjectName(_fromUtf8("tabgraphSpectraHeis"))
61 self.gridLayout_20 = QtGui.QGridLayout(self.tabgraphSpectraHeis)
62 self.gridLayout_20.setObjectName(_fromUtf8("gridLayout_20"))
63 self.label_54 = QtGui.QLabel(self.tabgraphSpectraHeis)
64 self.label_54.setObjectName(_fromUtf8("label_54"))
65 self.gridLayout_20.addWidget(self.label_54, 1, 0, 1, 1)
66 self.specHeisGraphToolPath = QtGui.QToolButton(self.tabgraphSpectraHeis)
67 self.specHeisGraphToolPath.setObjectName(_fromUtf8("specHeisGraphToolPath"))
68 self.gridLayout_20.addWidget(self.specHeisGraphToolPath, 0, 6, 1, 1)
69 self.specHeisGraphCebRTIplot = QtGui.QCheckBox(self.tabgraphSpectraHeis)
70 self.specHeisGraphCebRTIplot.setText(_fromUtf8(""))
71 self.specHeisGraphCebRTIplot.setObjectName(_fromUtf8("specHeisGraphCebRTIplot"))
72 self.gridLayout_20.addWidget(self.specHeisGraphCebRTIplot, 4, 2, 1, 1)
73 self.label_62 = QtGui.QLabel(self.tabgraphSpectraHeis)
74 self.label_62.setObjectName(_fromUtf8("label_62"))
75 self.gridLayout_20.addWidget(self.label_62, 7, 0, 1, 1)
76 self.label_63 = QtGui.QLabel(self.tabgraphSpectraHeis)
77 self.label_63.setObjectName(_fromUtf8("label_63"))
78 self.gridLayout_20.addWidget(self.label_63, 8, 0, 1, 1)
79 self.label_64 = QtGui.QLabel(self.tabgraphSpectraHeis)
80 self.label_64.setObjectName(_fromUtf8("label_64"))
81 self.gridLayout_20.addWidget(self.label_64, 9, 0, 1, 1)
82 self.label_65 = QtGui.QLabel(self.tabgraphSpectraHeis)
83 self.label_65.setObjectName(_fromUtf8("label_65"))
84 self.gridLayout_20.addWidget(self.label_65, 10, 0, 1, 1)
85 spacerItem23 = QtGui.QSpacerItem(134, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
86 self.gridLayout_20.addItem(spacerItem23, 11, 0, 1, 2)
87 self.specHeisGgraphftpratio = QtGui.QLineEdit(self.tabgraphSpectraHeis)
88 self.specHeisGgraphftpratio.setObjectName(_fromUtf8("specHeisGgraphftpratio"))
89 self.gridLayout_20.addWidget(self.specHeisGgraphftpratio, 10, 1, 1, 6)
90 self.specHeisGraphftpRTIplot = QtGui.QCheckBox(self.tabgraphSpectraHeis)
91 self.specHeisGraphftpRTIplot.setText(_fromUtf8(""))
92 self.specHeisGraphftpRTIplot.setObjectName(_fromUtf8("specHeisGraphftpRTIplot"))
93 self.gridLayout_20.addWidget(self.specHeisGraphftpRTIplot, 4, 6, 1, 1)
94 self.specHeisGgraphTminTmax = QtGui.QLineEdit(self.tabgraphSpectraHeis)
95 self.specHeisGgraphTminTmax.setObjectName(_fromUtf8("specHeisGgraphTminTmax"))
96 self.gridLayout_20.addWidget(self.specHeisGgraphTminTmax, 8, 1, 1, 6)
97 self.label_60 = QtGui.QLabel(self.tabgraphSpectraHeis)
98 self.label_60.setObjectName(_fromUtf8("label_60"))
99 self.gridLayout_20.addWidget(self.label_60, 5, 0, 1, 1)
100 self.label_61 = QtGui.QLabel(self.tabgraphSpectraHeis)
101 self.label_61.setObjectName(_fromUtf8("label_61"))
102 self.gridLayout_20.addWidget(self.label_61, 6, 0, 1, 1)
103 self.specHeisGraphPrefix = QtGui.QLineEdit(self.tabgraphSpectraHeis)
104 self.specHeisGraphPrefix.setObjectName(_fromUtf8("specHeisGraphPrefix"))
105 self.gridLayout_20.addWidget(self.specHeisGraphPrefix, 1, 1, 1, 6)
106 self.label_56 = QtGui.QLabel(self.tabgraphSpectraHeis)
107 self.label_56.setObjectName(_fromUtf8("label_56"))
108 self.gridLayout_20.addWidget(self.label_56, 2, 4, 1, 1)
109 self.label_57 = QtGui.QLabel(self.tabgraphSpectraHeis)
110 self.label_57.setObjectName(_fromUtf8("label_57"))
111 self.gridLayout_20.addWidget(self.label_57, 2, 6, 1, 1)
112 self.label_58 = QtGui.QLabel(self.tabgraphSpectraHeis)
113 self.label_58.setObjectName(_fromUtf8("label_58"))
114 self.gridLayout_20.addWidget(self.label_58, 3, 0, 1, 1)
115 self.specHeisGraphCebSpectraplot = QtGui.QCheckBox(self.tabgraphSpectraHeis)
116 self.specHeisGraphCebSpectraplot.setText(_fromUtf8(""))
117 self.specHeisGraphCebSpectraplot.setObjectName(_fromUtf8("specHeisGraphCebSpectraplot"))
118 self.gridLayout_20.addWidget(self.specHeisGraphCebSpectraplot, 3, 2, 1, 1)
119 self.specHeisGgraphYminYmax = QtGui.QLineEdit(self.tabgraphSpectraHeis)
120 self.specHeisGgraphYminYmax.setObjectName(_fromUtf8("specHeisGgraphYminYmax"))
121 self.gridLayout_20.addWidget(self.specHeisGgraphYminYmax, 7, 1, 1, 6)
122 self.label_53 = QtGui.QLabel(self.tabgraphSpectraHeis)
123 self.label_53.setObjectName(_fromUtf8("label_53"))
124 self.gridLayout_20.addWidget(self.label_53, 0, 0, 1, 1)
125 self.label_55 = QtGui.QLabel(self.tabgraphSpectraHeis)
126 self.label_55.setObjectName(_fromUtf8("label_55"))
127 self.gridLayout_20.addWidget(self.label_55, 2, 2, 1, 1)
128 self.specHeisGraphSaveRTIplot = QtGui.QCheckBox(self.tabgraphSpectraHeis)
129 self.specHeisGraphSaveRTIplot.setText(_fromUtf8(""))
130 self.specHeisGraphSaveRTIplot.setObjectName(_fromUtf8("specHeisGraphSaveRTIplot"))
131 self.gridLayout_20.addWidget(self.specHeisGraphSaveRTIplot, 4, 4, 1, 1)
132 spacerItem24 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
133 self.gridLayout_20.addItem(spacerItem24, 2, 3, 1, 1)
134 self.specHeisGgraphXminXmax = QtGui.QLineEdit(self.tabgraphSpectraHeis)
135 self.specHeisGgraphXminXmax.setObjectName(_fromUtf8("specHeisGgraphXminXmax"))
136 self.gridLayout_20.addWidget(self.specHeisGgraphXminXmax, 6, 1, 1, 6)
137 self.specHeisGgraphChannelList = QtGui.QLineEdit(self.tabgraphSpectraHeis)
138 self.specHeisGgraphChannelList.setObjectName(_fromUtf8("specHeisGgraphChannelList"))
139 self.gridLayout_20.addWidget(self.specHeisGgraphChannelList, 5, 1, 1, 6)
140 self.specHeisGgraphTimeRange = QtGui.QLineEdit(self.tabgraphSpectraHeis)
141 self.specHeisGgraphTimeRange.setObjectName(_fromUtf8("specHeisGgraphTimeRange"))
142 self.gridLayout_20.addWidget(self.specHeisGgraphTimeRange, 9, 1, 1, 6)
143 spacerItem25 = QtGui.QSpacerItem(106, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
144 self.gridLayout_20.addItem(spacerItem25, 11, 3, 1, 3)
145 self.specHeisGraphSaveSpectra = QtGui.QCheckBox(self.tabgraphSpectraHeis)
146 self.specHeisGraphSaveSpectra.setText(_fromUtf8(""))
147 self.specHeisGraphSaveSpectra.setObjectName(_fromUtf8("specHeisGraphSaveSpectra"))
148 self.gridLayout_20.addWidget(self.specHeisGraphSaveSpectra, 3, 4, 1, 1)
149 self.specHeisGraphftpSpectra = QtGui.QCheckBox(self.tabgraphSpectraHeis)
150 self.specHeisGraphftpSpectra.setText(_fromUtf8(""))
151 self.specHeisGraphftpSpectra.setObjectName(_fromUtf8("specHeisGraphftpSpectra"))
152 self.gridLayout_20.addWidget(self.specHeisGraphftpSpectra, 3, 6, 1, 1)
153 self.label_59 = QtGui.QLabel(self.tabgraphSpectraHeis)
154 self.label_59.setObjectName(_fromUtf8("label_59"))
155 self.gridLayout_20.addWidget(self.label_59, 4, 0, 1, 1)
156 spacerItem26 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
157 self.gridLayout_20.addItem(spacerItem26, 2, 5, 1, 1)
158 self.specHeisGraphPath = QtGui.QLineEdit(self.tabgraphSpectraHeis)
159 self.specHeisGraphPath.setObjectName(_fromUtf8("specHeisGraphPath"))
160 self.gridLayout_20.addWidget(self.specHeisGraphPath, 0, 1, 1, 5)
161 self.tabWidgetSpectraHeis.addTab(self.tabgraphSpectraHeis, _fromUtf8(""))
162 self.taboutputSpectraHeis = QtGui.QWidget()
163 self.taboutputSpectraHeis.setObjectName(_fromUtf8("taboutputSpectraHeis"))
164 self.gridLayout_19 = QtGui.QGridLayout(self.taboutputSpectraHeis)
165 self.gridLayout_19.setObjectName(_fromUtf8("gridLayout_19"))
166 self.label_67 = QtGui.QLabel(self.taboutputSpectraHeis)
167 self.label_67.setObjectName(_fromUtf8("label_67"))
168 self.gridLayout_19.addWidget(self.label_67, 1, 0, 1, 1)
169 self.label_68 = QtGui.QLabel(self.taboutputSpectraHeis)
170 self.label_68.setObjectName(_fromUtf8("label_68"))
171 self.gridLayout_19.addWidget(self.label_68, 2, 0, 1, 2)
172 self.label_66 = QtGui.QLabel(self.taboutputSpectraHeis)
173 self.label_66.setObjectName(_fromUtf8("label_66"))
174 self.gridLayout_19.addWidget(self.label_66, 0, 0, 1, 1)
175 spacerItem27 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
176 self.gridLayout_19.addItem(spacerItem27, 4, 0, 1, 1)
177 self.specHeisOutputToolPath = QtGui.QToolButton(self.taboutputSpectraHeis)
178 self.specHeisOutputToolPath.setObjectName(_fromUtf8("specHeisOutputToolPath"))
179 self.gridLayout_19.addWidget(self.specHeisOutputToolPath, 1, 4, 1, 1)
180 self.specHeisOutputPath = QtGui.QLineEdit(self.taboutputSpectraHeis)
181 self.specHeisOutputPath.setObjectName(_fromUtf8("specHeisOutputPath"))
182 self.gridLayout_19.addWidget(self.specHeisOutputPath, 1, 3, 1, 1)
183 self.specHeisOutputComdata = QtGui.QComboBox(self.taboutputSpectraHeis)
184 self.specHeisOutputComdata.setObjectName(_fromUtf8("specHeisOutputComdata"))
185 self.specHeisOutputComdata.addItem(_fromUtf8(""))
186 self.gridLayout_19.addWidget(self.specHeisOutputComdata, 0, 3, 1, 2)
187 self.label_69 = QtGui.QLabel(self.taboutputSpectraHeis)
188 self.label_69.setObjectName(_fromUtf8("label_69"))
189 self.gridLayout_19.addWidget(self.label_69, 3, 0, 1, 2)
190 self.specHeisOutputblocksperfile = QtGui.QLineEdit(self.taboutputSpectraHeis)
191 self.specHeisOutputblocksperfile.setObjectName(_fromUtf8("specHeisOutputblocksperfile"))
192 self.gridLayout_19.addWidget(self.specHeisOutputblocksperfile, 2, 3, 1, 1)
193 self.specHeisOutputMetada = QtGui.QLineEdit(self.taboutputSpectraHeis)
194 self.specHeisOutputMetada.setObjectName(_fromUtf8("specHeisOutputMetada"))
195 self.gridLayout_19.addWidget(self.specHeisOutputMetada, 3, 3, 1, 1)
196 self.specHeisOutputMetadaToolPath = QtGui.QToolButton(self.taboutputSpectraHeis)
197 self.specHeisOutputMetadaToolPath.setObjectName(_fromUtf8("specHeisOutputMetadaToolPath"))
198 self.gridLayout_19.addWidget(self.specHeisOutputMetadaToolPath, 3, 4, 1, 1)
199 self.tabWidgetSpectraHeis.addTab(self.taboutputSpectraHeis, _fromUtf8(""))
200 self.gridLayout_23.addWidget(self.tabWidgetSpectraHeis, 0, 0, 1, 1)
201
202 self.tabWidgetProject.addTab(self.tabSpectraHeis, _fromUtf8(""))
203
204 self.tabWidgetSpectraHeis.setCurrentIndex(0)
205
206 def retranslateUi(self):
207
208 self.specHeisGraphClear.setText(_translate("MainWindow", "Clear", None))
209 self.specHeisOpOk.setText(_translate("MainWindow", "Ok", None))
210 self.specHeisOpCobIncInt.setItemText(0, _translate("MainWindow", "Time Interval", None))
211 self.specHeisOpCebIncoherent.setText(_translate("MainWindow", "Incoherent Intergration", None))
212
213 self.tabWidgetSpectraHeis.setTabText(self.tabWidgetSpectraHeis.indexOf(self.tabopSpectraHeis), _translate("MainWindow", "Operation", None))
214 self.label_54.setText(_translate("MainWindow", "Prefix", None))
215 self.specHeisGraphToolPath.setText(_translate("MainWindow", "...", None))
216 self.label_62.setText(_translate("MainWindow", "Intensity range (dB)", None))
217 self.label_63.setText(_translate("MainWindow", "Time range (hours):", None))
218 self.label_64.setText(_translate("MainWindow", "Time interval:", None))
219 self.label_65.setText(_translate("MainWindow", "Wr Period", None))
220 self.label_60.setText(_translate("MainWindow", "Channel List:", None))
221 self.label_61.setText(_translate("MainWindow", "Frequency range", None))
222 self.label_56.setText(_translate("MainWindow", "Save", None))
223 self.label_57.setText(_translate("MainWindow", "ftp", None))
224 self.label_58.setText(_translate("MainWindow", "Spectra Plot", None))
225 self.label_53.setText(_translate("MainWindow", "Path", None))
226 self.label_55.setText(_translate("MainWindow", "Show", None))
227 self.label_59.setText(_translate("MainWindow", "RTI Plot", None))
228
229 self.tabWidgetSpectraHeis.setTabText(self.tabWidgetSpectraHeis.indexOf(self.tabgraphSpectraHeis), _translate("MainWindow", "Graphics", None))
230 self.label_67.setText(_translate("MainWindow", "Path:", None))
231 self.label_68.setText(_translate("MainWindow", "Blocks per file:", None))
232 self.label_66.setText(_translate("MainWindow", "Type:", None))
233
234 self.tabWidgetSpectraHeis.setTabText(self.tabWidgetSpectraHeis.indexOf(self.taboutputSpectraHeis), _translate("MainWindow", "Output", None))
235 self.specHeisOutputToolPath.setText(_translate("MainWindow", "...", None))
236 self.specHeisOutputComdata.setItemText(0, _translate("MainWindow", ".fits", None))
237 self.label_69.setText(_translate("MainWindow", "Metadata file:", None))
238 self.specHeisOutputMetadaToolPath.setText(_translate("MainWindow", "...", None))
239
240 self.tabWidgetProject.setTabText(self.tabWidgetProject.indexOf(self.tabSpectraHeis), _translate("MainWindow", "SpectraHeis", None))
241
242 self.__setToolTip()
243
244 def __setToolTip(self):
245
246 self.specHeisOpIncoherent.setToolTip('Example: 10')
247
248 self.specHeisGgraphChannelList.setToolTip('Example: 0,2,3')
249 self.specHeisGgraphXminXmax.setToolTip('Example (Hz): -1000, 1000')
250 self.specHeisGgraphYminYmax.setToolTip('Example (dB): 5, 35')
251 self.specHeisGgraphTminTmax.setToolTip('Example (hours): 0, 24')
252 self.specHeisGgraphTimeRange.setToolTip('Example (hours): 8') No newline at end of file
@@ -1,414 +0,0
1
2 from PyQt4 import QtCore, QtGui
3
4 try:
5 _fromUtf8 = QtCore.QString.fromUtf8
6 except AttributeError:
7 def _fromUtf8(s):
8 return s
9
10 try:
11 _encoding = QtGui.QApplication.UnicodeUTF8
12 def _translate(context, text, disambig):
13 return QtGui.QApplication.translate(context, text, disambig, _encoding)
14 except AttributeError:
15 def _translate(context, text, disambig):
16 return QtGui.QApplication.translate(context, text, disambig)
17
18 class Ui_VoltageTab(object):
19
20 def setupUi(self):
21
22 self.tabVoltage = QtGui.QWidget()
23 self.tabVoltage.setObjectName(_fromUtf8("tabVoltage"))
24
25 self.gridLayout_3 = QtGui.QGridLayout(self.tabVoltage)
26 self.gridLayout_3.setObjectName(_fromUtf8("gridLayout_3"))
27
28 self.frame_4 = QtGui.QFrame(self.tabVoltage)
29 self.frame_4.setFrameShape(QtGui.QFrame.StyledPanel)
30 self.frame_4.setFrameShadow(QtGui.QFrame.Raised)
31 self.frame_4.setObjectName(_fromUtf8("frame_4"))
32
33 self.gridLayout_17 = QtGui.QGridLayout(self.frame_4)
34 self.gridLayout_17.setObjectName(_fromUtf8("gridLayout_17"))
35 self.volOpOk = QtGui.QPushButton(self.frame_4)
36 self.volOpOk.setObjectName(_fromUtf8("volOpOk"))
37 self.gridLayout_17.addWidget(self.volOpOk, 0, 0, 1, 1)
38 self.volGraphClear = QtGui.QPushButton(self.frame_4)
39 self.volGraphClear.setObjectName(_fromUtf8("volGraphClear"))
40 self.gridLayout_17.addWidget(self.volGraphClear, 0, 1, 1, 1)
41 self.gridLayout_3.addWidget(self.frame_4, 1, 1, 1, 1)
42
43
44 self.tabWidgetVoltage = QtGui.QTabWidget(self.tabVoltage)
45 self.tabWidgetVoltage.setObjectName(_fromUtf8("tabWidgetVoltage"))
46 self.tabopVoltage = QtGui.QWidget()
47 self.tabopVoltage.setObjectName(_fromUtf8("tabopVoltage"))
48 self.gridLayout = QtGui.QGridLayout(self.tabopVoltage)
49 self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
50
51 self.volOpCebRadarfrequency = QtGui.QCheckBox(self.tabopVoltage)
52 self.volOpCebRadarfrequency.setObjectName(_fromUtf8("volOpCebRadarfrequency"))
53 self.gridLayout.addWidget(self.volOpCebRadarfrequency, 0, 0, 1, 1)
54
55 self.volOpRadarfrequency = QtGui.QLineEdit(self.tabopVoltage)
56 self.volOpRadarfrequency.setObjectName(_fromUtf8("volOpRadarfrequency"))
57 self.gridLayout.addWidget(self.volOpRadarfrequency, 0, 1, 1, 4)
58
59 self.volOpCebChannels = QtGui.QCheckBox(self.tabopVoltage)
60 self.volOpCebChannels.setObjectName(_fromUtf8("volOpCebChannels"))
61 self.gridLayout.addWidget(self.volOpCebChannels, 1, 0, 1, 1)
62
63 self.volOpComChannels = QtGui.QComboBox(self.tabopVoltage)
64 self.volOpComChannels.setObjectName(_fromUtf8("volOpComChannels"))
65 self.volOpComChannels.addItem(_fromUtf8(""))
66 self.volOpComChannels.addItem(_fromUtf8(""))
67 self.gridLayout.addWidget(self.volOpComChannels, 1, 1, 1, 2)
68
69 self.volOpChannel = QtGui.QLineEdit(self.tabopVoltage)
70 self.volOpChannel.setObjectName(_fromUtf8("volOpChannel"))
71 self.gridLayout.addWidget(self.volOpChannel, 1, 3, 1, 2)
72
73
74 self.volOpCebHeights = QtGui.QCheckBox(self.tabopVoltage)
75 self.volOpCebHeights.setObjectName(_fromUtf8("volOpCebHeights"))
76 self.gridLayout.addWidget(self.volOpCebHeights, 3, 0, 1, 1)
77
78 self.volOpComHeights = QtGui.QComboBox(self.tabopVoltage)
79 self.volOpComHeights.setObjectName(_fromUtf8("volOpComHeights"))
80 self.volOpComHeights.addItem(_fromUtf8(""))
81 self.volOpComHeights.addItem(_fromUtf8(""))
82 self.gridLayout.addWidget(self.volOpComHeights, 3, 1, 1, 2)
83
84 self.volOpHeights = QtGui.QLineEdit(self.tabopVoltage)
85 self.volOpHeights.setObjectName(_fromUtf8("volOpHeights"))
86 self.gridLayout.addWidget(self.volOpHeights, 3, 3, 1, 2)
87
88 self.volOpCebSplitter = QtGui.QCheckBox(self.tabopVoltage)
89 self.volOpCebSplitter.setObjectName(_fromUtf8("volOpCebSplitter"))
90 self.gridLayout.addWidget(self.volOpCebSplitter, 5, 0, 1, 1)
91
92 self.volOpSplitter = QtGui.QLineEdit(self.tabopVoltage)
93 self.volOpSplitter.setObjectName(_fromUtf8("volOpSplitter"))
94 self.gridLayout.addWidget(self.volOpSplitter, 5, 1, 1, 4)
95
96 self.volOpCebProfile = QtGui.QCheckBox(self.tabopVoltage)
97 self.volOpCebProfile.setObjectName(_fromUtf8("volOpCebProfile"))
98 self.gridLayout.addWidget(self.volOpCebProfile, 6, 0, 1, 1)
99
100 self.volOpComProfile = QtGui.QComboBox(self.tabopVoltage)
101 self.volOpComProfile.setObjectName(_fromUtf8("volOpComProfile"))
102 self.volOpComProfile.addItem(_fromUtf8(""))
103 self.volOpComProfile.addItem(_fromUtf8(""))
104 self.volOpComProfile.addItem(_fromUtf8(""))
105 self.gridLayout.addWidget(self.volOpComProfile, 6, 1, 1, 2)
106
107 self.volOpProfile = QtGui.QLineEdit(self.tabopVoltage)
108 self.volOpProfile.setObjectName(_fromUtf8("volOpProfile"))
109 self.gridLayout.addWidget(self.volOpProfile, 6, 3, 1, 2)
110
111 self.volOpCebCombiner = QtGui.QCheckBox(self.tabopVoltage)
112 self.volOpCebCombiner.setObjectName(_fromUtf8("volOpCebCombiner"))
113 self.gridLayout.addWidget(self.volOpCebCombiner, 7, 0, 1, 1)
114
115 self.volOpCombiner = QtGui.QLineEdit(self.tabopVoltage)
116 self.volOpCombiner.setObjectName(_fromUtf8("volOpCombiner"))
117 self.gridLayout.addWidget(self.volOpCombiner, 7, 1, 1, 4)
118
119 self.volOpCebFilter = QtGui.QCheckBox(self.tabopVoltage)
120 self.volOpCebFilter.setObjectName(_fromUtf8("volOpCebFilter"))
121 self.gridLayout.addWidget(self.volOpCebFilter, 8, 0, 1, 1)
122
123 self.volOpFilter = QtGui.QLineEdit(self.tabopVoltage)
124 self.volOpFilter.setObjectName(_fromUtf8("volOpFilter"))
125 self.gridLayout.addWidget(self.volOpFilter, 8, 1, 1, 4)
126
127 # spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
128 # self.gridLayout.addItem(spacerItem, 6, 4, 1, 1)
129 # spacerItem1 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
130 # self.gridLayout.addItem(spacerItem1, 8, 4, 1, 1)
131 # spacerItem2 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
132 # self.gridLayout.addItem(spacerItem2, 3, 4, 1, 1)
133
134
135
136 # spacerItem3 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
137 # self.gridLayout.addItem(spacerItem3, 1, 4, 1, 1)
138
139
140 self.volOpCebDecodification = QtGui.QCheckBox(self.tabopVoltage)
141 self.volOpCebDecodification.setObjectName(_fromUtf8("volOpCebDecodification"))
142 self.gridLayout.addWidget(self.volOpCebDecodification, 9, 0, 1, 1)
143
144 self.volLabCodeMode = QtGui.QLabel(self.tabopVoltage)
145 self.volLabCodeMode.setObjectName(_fromUtf8("volLabCodeMode"))
146 self.gridLayout.addWidget(self.volLabCodeMode, 9, 1, 1, 1)
147
148 self.volOpComMode = QtGui.QComboBox(self.tabopVoltage)
149 self.volOpComMode.setObjectName(_fromUtf8("volOpComMode"))
150 self.volOpComMode.addItem(_fromUtf8(""))
151 self.volOpComMode.addItem(_fromUtf8(""))
152 self.gridLayout.addWidget(self.volOpComMode, 9, 2, 1, 3)
153
154 self.volLabCodeType = QtGui.QLabel(self.tabopVoltage)
155 self.volLabCodeType.setObjectName(_fromUtf8("volLabCodeType"))
156 self.gridLayout.addWidget(self.volLabCodeType, 10, 1, 1, 1)
157
158 self.volOpComCode = QtGui.QComboBox(self.tabopVoltage)
159 self.volOpComCode.setObjectName(_fromUtf8("volOpComCode"))
160 self.volOpComCode.addItem(_fromUtf8(""))
161 self.volOpComCode.addItem(_fromUtf8(""))
162 self.volOpComCode.addItem(_fromUtf8(""))
163 self.volOpComCode.addItem(_fromUtf8(""))
164 self.volOpComCode.addItem(_fromUtf8(""))
165 self.volOpComCode.addItem(_fromUtf8(""))
166 self.volOpComCode.addItem(_fromUtf8(""))
167 self.volOpComCode.addItem(_fromUtf8(""))
168 self.volOpComCode.addItem(_fromUtf8(""))
169 self.volOpComCode.addItem(_fromUtf8(""))
170 self.volOpComCode.addItem(_fromUtf8(""))
171 self.volOpComCode.addItem(_fromUtf8(""))
172 self.volOpComCode.addItem(_fromUtf8(""))
173 self.volOpComCode.addItem(_fromUtf8(""))
174 self.gridLayout.addWidget(self.volOpComCode, 10, 2, 1, 3)
175
176 self.volLabCode = QtGui.QLabel(self.tabopVoltage)
177 self.volLabCode.setObjectName(_fromUtf8("volLabCode"))
178 self.gridLayout.addWidget(self.volLabCode, 11, 1, 1, 1)
179
180 self.volOpCode = QtGui.QLineEdit(self.tabopVoltage)
181 self.volOpCode.setObjectName(_fromUtf8("volOpCode"))
182 self.gridLayout.addWidget(self.volOpCode, 11, 2, 1, 3)
183
184 self.volOpCebFlip = QtGui.QCheckBox(self.tabopVoltage)
185 self.volOpCebFlip.setObjectName(_fromUtf8("volOpCebFlip"))
186 self.gridLayout.addWidget(self.volOpCebFlip, 12, 0, 1, 1)
187
188 self.volOpFlip = QtGui.QLineEdit(self.tabopVoltage)
189 self.volOpFlip.setObjectName(_fromUtf8("volOpFlip"))
190 self.gridLayout.addWidget(self.volOpFlip, 13, 1, 1, 4)
191
192 self.volOpCebCohInt = QtGui.QCheckBox(self.tabopVoltage)
193 self.volOpCebCohInt.setObjectName(_fromUtf8("volOpCebCohInt"))
194 self.gridLayout.addWidget(self.volOpCebCohInt, 13, 0, 1, 1)
195
196 self.volOpCohInt = QtGui.QLineEdit(self.tabopVoltage)
197 self.volOpCohInt.setObjectName(_fromUtf8("volOpCohInt"))
198 self.gridLayout.addWidget(self.volOpCohInt, 13, 1, 1, 4)
199
200 self.volOpCebAdjustHei = QtGui.QCheckBox(self.tabopVoltage)
201 self.volOpCebAdjustHei.setObjectName(_fromUtf8("volOpCebAdjustHei"))
202 self.gridLayout.addWidget(self.volOpCebAdjustHei, 14, 0, 1, 1)
203
204 self.volOpAdjustHei = QtGui.QLineEdit(self.tabopVoltage)
205 self.volOpAdjustHei.setObjectName(_fromUtf8("volOpAdjustHei"))
206 self.gridLayout.addWidget(self.volOpAdjustHei, 14, 1, 1, 4)
207
208 self.tabWidgetVoltage.addTab(self.tabopVoltage, _fromUtf8(""))
209
210 self.tabgraphVoltage = QtGui.QWidget()
211 self.tabgraphVoltage.setObjectName(_fromUtf8("tabgraphVoltage"))
212 self.gridLayout_6 = QtGui.QGridLayout(self.tabgraphVoltage)
213 self.gridLayout_6.setObjectName(_fromUtf8("gridLayout_6"))
214 spacerItem4 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
215 self.gridLayout_6.addItem(spacerItem4, 12, 3, 1, 1)
216 self.volGraphIntensityRange = QtGui.QLineEdit(self.tabgraphVoltage)
217 self.volGraphIntensityRange.setObjectName(_fromUtf8("volGraphIntensityRange"))
218 self.gridLayout_6.addWidget(self.volGraphIntensityRange, 9, 1, 1, 6)
219 self.volGraphPrefix = QtGui.QLineEdit(self.tabgraphVoltage)
220 self.volGraphPrefix.setObjectName(_fromUtf8("volGraphPrefix"))
221 self.gridLayout_6.addWidget(self.volGraphPrefix, 2, 1, 1, 6)
222 self.volGraphToolPath = QtGui.QToolButton(self.tabgraphVoltage)
223 self.volGraphToolPath.setObjectName(_fromUtf8("volGraphToolPath"))
224 self.gridLayout_6.addWidget(self.volGraphToolPath, 1, 5, 1, 2)
225 self.volGraphPath = QtGui.QLineEdit(self.tabgraphVoltage)
226 self.volGraphPath.setObjectName(_fromUtf8("volGraphPath"))
227 self.gridLayout_6.addWidget(self.volGraphPath, 1, 1, 1, 4)
228 self.label_14 = QtGui.QLabel(self.tabgraphVoltage)
229 self.label_14.setObjectName(_fromUtf8("label_14"))
230 self.gridLayout_6.addWidget(self.label_14, 6, 0, 1, 1)
231 spacerItem5 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
232 self.gridLayout_6.addItem(spacerItem5, 3, 3, 1, 1)
233 self.label_8 = QtGui.QLabel(self.tabgraphVoltage)
234 self.label_8.setObjectName(_fromUtf8("label_8"))
235 self.gridLayout_6.addWidget(self.label_8, 8, 0, 1, 1)
236 self.label_49 = QtGui.QLabel(self.tabgraphVoltage)
237 self.label_49.setObjectName(_fromUtf8("label_49"))
238 self.gridLayout_6.addWidget(self.label_49, 4, 3, 1, 1)
239 self.label_51 = QtGui.QLabel(self.tabgraphVoltage)
240 self.label_51.setObjectName(_fromUtf8("label_51"))
241 self.gridLayout_6.addWidget(self.label_51, 9, 0, 1, 1)
242 self.volGraphCebshow = QtGui.QCheckBox(self.tabgraphVoltage)
243 self.volGraphCebshow.setText(_fromUtf8(""))
244 self.volGraphCebshow.setObjectName(_fromUtf8("volGraphCebshow"))
245 self.gridLayout_6.addWidget(self.volGraphCebshow, 6, 3, 1, 1)
246 self.label_12 = QtGui.QLabel(self.tabgraphVoltage)
247 self.label_12.setObjectName(_fromUtf8("label_12"))
248 self.gridLayout_6.addWidget(self.label_12, 1, 0, 1, 1)
249 self.label_13 = QtGui.QLabel(self.tabgraphVoltage)
250 self.label_13.setObjectName(_fromUtf8("label_13"))
251 self.gridLayout_6.addWidget(self.label_13, 2, 0, 1, 1)
252 self.label_52 = QtGui.QLabel(self.tabgraphVoltage)
253 self.label_52.setObjectName(_fromUtf8("label_52"))
254
255 self.gridLayout_6.addWidget(self.label_52, 11, 0, 1, 1)
256 spacerItem6 = QtGui.QSpacerItem(40, 12, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
257 self.gridLayout_6.addItem(spacerItem6, 14, 5, 1, 2)
258 spacerItem7 = QtGui.QSpacerItem(18, 12, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
259 self.gridLayout_6.addItem(spacerItem7, 14, 3, 1, 1)
260
261 self.volLabScopeType = QtGui.QLabel(self.tabgraphVoltage)
262 self.volLabScopeType.setObjectName(_fromUtf8("volLabScopeType"))
263 self.gridLayout_6.addWidget(self.volLabScopeType, 7, 0, 1, 1)
264
265 self.volComScopeType = QtGui.QComboBox(self.tabgraphVoltage)
266 self.volComScopeType.setObjectName(_fromUtf8("volComScopeType"))
267 self.volComScopeType.addItem(_fromUtf8(""))
268 self.volComScopeType.addItem(_fromUtf8(""))
269 self.gridLayout_6.addWidget(self.volComScopeType, 7, 1, 1, 6)
270
271 self.volGraphChannelList = QtGui.QLineEdit(self.tabgraphVoltage)
272 self.volGraphChannelList.setObjectName(_fromUtf8("volGraphChannelList"))
273 self.gridLayout_6.addWidget(self.volGraphChannelList, 8, 1, 1, 6)
274
275
276 self.volGraphHeightrange = QtGui.QLineEdit(self.tabgraphVoltage)
277 self.volGraphHeightrange.setObjectName(_fromUtf8("volGraphHeightrange"))
278 self.gridLayout_6.addWidget(self.volGraphHeightrange, 11, 1, 1, 6)
279 self.label_50 = QtGui.QLabel(self.tabgraphVoltage)
280 self.label_50.setObjectName(_fromUtf8("label_50"))
281 self.gridLayout_6.addWidget(self.label_50, 4, 4, 1, 1)
282 self.volGraphCebSave = QtGui.QCheckBox(self.tabgraphVoltage)
283 self.volGraphCebSave.setText(_fromUtf8(""))
284 self.volGraphCebSave.setObjectName(_fromUtf8("volGraphCebSave"))
285 self.gridLayout_6.addWidget(self.volGraphCebSave, 6, 4, 1, 1)
286 self.tabWidgetVoltage.addTab(self.tabgraphVoltage, _fromUtf8(""))
287
288 self.taboutputVoltage = QtGui.QWidget()
289 self.taboutputVoltage.setObjectName(_fromUtf8("taboutputVoltage"))
290 self.gridLayout_12 = QtGui.QGridLayout(self.taboutputVoltage)
291 self.gridLayout_12.setObjectName(_fromUtf8("gridLayout_12"))
292 self.label_36 = QtGui.QLabel(self.taboutputVoltage)
293 self.label_36.setObjectName(_fromUtf8("label_36"))
294 self.gridLayout_12.addWidget(self.label_36, 0, 0, 1, 1)
295 self.label_37 = QtGui.QLabel(self.taboutputVoltage)
296 self.label_37.setObjectName(_fromUtf8("label_37"))
297 self.gridLayout_12.addWidget(self.label_37, 1, 0, 1, 1)
298 self.volOutputPath = QtGui.QLineEdit(self.taboutputVoltage)
299 self.volOutputPath.setObjectName(_fromUtf8("volOutputPath"))
300 self.gridLayout_12.addWidget(self.volOutputPath, 1, 2, 1, 1)
301 self.volOutputToolPath = QtGui.QToolButton(self.taboutputVoltage)
302 self.volOutputToolPath.setObjectName(_fromUtf8("volOutputToolPath"))
303 self.gridLayout_12.addWidget(self.volOutputToolPath, 1, 3, 1, 1)
304 self.volOutputComData = QtGui.QComboBox(self.taboutputVoltage)
305 self.volOutputComData.setObjectName(_fromUtf8("volOutputComData"))
306 self.volOutputComData.addItem(_fromUtf8(""))
307 self.gridLayout_12.addWidget(self.volOutputComData, 0, 2, 1, 2)
308 spacerItem8 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
309 self.gridLayout_12.addItem(spacerItem8, 5, 2, 1, 1)
310 self.volOutputblocksperfile = QtGui.QLineEdit(self.taboutputVoltage)
311 self.volOutputblocksperfile.setObjectName(_fromUtf8("volOutputblocksperfile"))
312 self.gridLayout_12.addWidget(self.volOutputblocksperfile, 3, 2, 1, 1)
313 self.label_7 = QtGui.QLabel(self.taboutputVoltage)
314 self.label_7.setObjectName(_fromUtf8("label_7"))
315 self.gridLayout_12.addWidget(self.label_7, 3, 0, 1, 1)
316 self.label_35 = QtGui.QLabel(self.taboutputVoltage)
317 self.label_35.setObjectName(_fromUtf8("label_35"))
318 self.gridLayout_12.addWidget(self.label_35, 4, 0, 1, 1)
319 self.volOutputprofilesperblock = QtGui.QLineEdit(self.taboutputVoltage)
320 self.volOutputprofilesperblock.setObjectName(_fromUtf8("volOutputprofilesperblock"))
321 self.gridLayout_12.addWidget(self.volOutputprofilesperblock, 4, 2, 1, 1)
322 self.tabWidgetVoltage.addTab(self.taboutputVoltage, _fromUtf8(""))
323 self.gridLayout_3.addWidget(self.tabWidgetVoltage, 0, 1, 1, 1)
324
325 self.tabWidgetProject.addTab(self.tabVoltage, _fromUtf8(""))
326
327 self.tabWidgetVoltage.setCurrentIndex(0)
328
329 def retranslateUi(self):
330
331 self.volOpOk.setText(_translate("MainWindow", "Ok", None))
332 self.volGraphClear.setText(_translate("MainWindow", "Clear", None))
333 self.volOpComHeights.setItemText(0, _translate("MainWindow", "Value", None))
334 self.volOpComHeights.setItemText(1, _translate("MainWindow", "Index", None))
335 self.volOpComChannels.setItemText(0, _translate("MainWindow", "Value", None))
336 self.volOpComChannels.setItemText(1, _translate("MainWindow", "Index", None))
337 self.volOpCebProfile.setText(_translate("MainWindow", "Select Profiles", None))
338 self.volOpComProfile.setItemText(0, _translate("MainWindow", "Profile List", None))
339 self.volOpComProfile.setItemText(1, _translate("MainWindow", "Profile Range", None))
340 self.volOpComProfile.setItemText(2, _translate("MainWindow", "List of Profile Ranges", None))
341 self.volOpCebDecodification.setText(_translate("MainWindow", "Decoder:", None))
342 self.volOpCebCohInt.setText(_translate("MainWindow", "Coherent Integration:", None))
343 self.volOpCebFlip.setText(_translate("MainWindow", "Flip:", None))
344 self.volLabCodeType.setText(_translate("MainWindow", "Code type:", None))
345 self.volOpCebChannels.setText(_translate("MainWindow", "Select Channels:", None))
346 self.volOpCebHeights.setText(_translate("MainWindow", "Select Heights:", None))
347 self.volOpCebFilter.setText(_translate("MainWindow", "Range Window Filter:", None))
348 self.volOpCebSplitter.setText(_translate("MainWindow", "Split Profiles: ", None))
349 self.volOpCebCombiner.setText(_translate("MainWindow", "Combine Profiles: ", None))
350 self.volOpCebRadarfrequency.setText(_translate("MainWindow", "Radar frequency (MHz):", None))
351 self.volLabCodeMode.setText(_translate("MainWindow", "Mode:", None))
352 self.volLabCode.setText(_translate("MainWindow", "Code:", None))
353 self.volOpComCode.setItemText(0, _translate("MainWindow", "Read from header", None))
354 self.volOpComCode.setItemText(1, _translate("MainWindow", "Barker 3", None))
355 self.volOpComCode.setItemText(2, _translate("MainWindow", "Barker 4", None))
356 self.volOpComCode.setItemText(3, _translate("MainWindow", "Barker 5", None))
357 self.volOpComCode.setItemText(4, _translate("MainWindow", "Barker 7", None))
358 self.volOpComCode.setItemText(5, _translate("MainWindow", "Barker 11", None))
359 self.volOpComCode.setItemText(6, _translate("MainWindow", "Barker 13", None))
360 self.volOpComCode.setItemText(7, _translate("MainWindow", "Barker 3 + Comp.", None))
361 self.volOpComCode.setItemText(8, _translate("MainWindow", "Barker 4 + Comp.", None))
362 self.volOpComCode.setItemText(9, _translate("MainWindow", "Barker 5 + Comp.", None))
363 self.volOpComCode.setItemText(10, _translate("MainWindow", "Barker 7 + Comp.", None))
364 self.volOpComCode.setItemText(11, _translate("MainWindow", "Barker 11+ Comp.", None))
365 self.volOpComCode.setItemText(12, _translate("MainWindow", "Barker 13+ Comp.", None))
366 self.volOpComCode.setItemText(13, _translate("MainWindow", "User defined", None))
367 self.volOpComMode.setItemText(0, _translate("MainWindow", "Time", None))
368 self.volOpComMode.setItemText(1, _translate("MainWindow", "Frequency", None))
369 self.volOpCebAdjustHei.setText(_translate("MainWindow", "Calibrate H0:", None))
370
371 self.tabWidgetVoltage.setTabText(self.tabWidgetVoltage.indexOf(self.tabopVoltage), _translate("MainWindow", "Operation", None))
372
373 self.volGraphToolPath.setText(_translate("MainWindow", "...", None))
374 self.label_14.setText(_translate("MainWindow", "Scope:", None))
375 self.label_8.setText(_translate("MainWindow", "Channel List:", None))
376 self.label_49.setText(_translate("MainWindow", "Show:", None))
377 self.label_51.setText(_translate("MainWindow", "Amplitude/Intensity:", None))
378 self.label_12.setText(_translate("MainWindow", "Path :", None))
379 self.label_13.setText(_translate("MainWindow", "Figure name:", None))
380 self.label_52.setText(_translate("MainWindow", "Height range:", None))
381 self.label_50.setText(_translate("MainWindow", "Save:", None))
382
383 self.volLabScopeType.setText(_translate("MainWindow", "Scope type:", None))
384 self.volComScopeType.setItemText(0, _translate("MainWindow", "I&Q", None))
385 self.volComScopeType.setItemText(1, _translate("MainWindow", "Power", None))
386
387 self.tabWidgetVoltage.setTabText(self.tabWidgetVoltage.indexOf(self.tabgraphVoltage), _translate("MainWindow", "Graphics", None))
388
389 self.label_36.setText(_translate("MainWindow", "Type:", None))
390 self.label_37.setText(_translate("MainWindow", "Path:", None))
391 self.volOutputToolPath.setText(_translate("MainWindow", "...", None))
392 self.volOutputComData.setItemText(0, _translate("MainWindow", ".rawdata", None))
393 self.label_7.setText(_translate("MainWindow", "Blocks per File: ", None))
394 self.label_35.setText(_translate("MainWindow", "Profiles per Block: ", None))
395 self.tabWidgetVoltage.setTabText(self.tabWidgetVoltage.indexOf(self.taboutputVoltage), _translate("MainWindow", "Output", None))
396
397 self.tabWidgetProject.setTabText(self.tabWidgetProject.indexOf(self.tabVoltage), _translate("MainWindow", "Voltage", None))
398
399 self.__setToolTip()
400
401 def __setToolTip(self):
402
403 self.volOpChannel.setToolTip('Example: 1,2,3,4,5')
404 self.volOpHeights.setToolTip('Example: 90,180')
405 self.volOpFilter.setToolTip('Example: 2')
406 self.volOpProfile.setToolTip('Example:0,127')
407 self.volOpCohInt.setToolTip('Example: 128')
408 self.volOpFlip.setToolTip('ChannelList where flip will be applied. Example: 0,2,3')
409 self.volOpOk.setToolTip('If you have finished, please Ok ')
410 # tool tip gui volGraph
411 self.volGraphIntensityRange.setToolTip('Height range. Example: 50,100')
412 self.volGraphHeightrange.setToolTip('Amplitude. Example: 0,10000')
413
414 No newline at end of file
1 NO CONTENT: file was removed
@@ -1,114 +0,0
1 '''
2 Created on Jul 15, 2014
3
4 @author: Miguel Urco
5 '''
6 from .serializer import DynamicSerializer
7
8 DEFAULT_SERIALIZER = None #'cPickle', 'msgpack', "yaml"
9
10 from schainpy.model.data.jrodata import *
11
12 CLASSNAME_KEY = 'classname__'
13
14 def isObject(myObj):
15
16 return hasattr(myObj,'__dict__')
17
18 def isDictFormat(thisValue):
19
20 if type(thisValue) != type({}):
21 return False
22
23 if CLASSNAME_KEY not in list(thisValue.keys()):
24 return False
25
26 return True
27
28 def obj2Dict(myObj, keyList=[]):
29
30 if not keyList:
31 keyList = list(myObj.__dict__.keys())
32
33 myDict = {}
34
35 myDict[CLASSNAME_KEY] = myObj.__class__.__name__
36
37 for thisKey, thisValue in list(myObj.__dict__.items()):
38
39 if thisKey not in keyList:
40 continue
41
42 if not isObject(thisValue):
43 myDict[thisKey] = thisValue
44 continue
45
46 ## If this value is another class instance
47 myDict[thisKey] = obj2Dict(thisValue)
48
49 return myDict
50
51 def dict2Obj(myDict):
52 '''
53 '''
54
55 if CLASSNAME_KEY not in list(myDict.keys()):
56 return None
57
58 className = eval(myDict[CLASSNAME_KEY])
59
60 myObj = className()
61
62 for thisKey, thisValue in list(myDict.items()):
63
64 if thisKey == CLASSNAME_KEY:
65 continue
66
67 if not isDictFormat(thisValue):
68 setattr(myObj, thisKey, thisValue)
69 continue
70
71 myNewObj = dict2Obj(thisValue)
72 setattr(myObj, thisKey, myNewObj)
73
74 return myObj
75
76 def dict2Serial(myDict, serializer=DEFAULT_SERIALIZER):
77
78 SERIALIZER = DynamicSerializer(serializer)
79
80 mySerial = SERIALIZER.dumps(myDict)
81
82 return mySerial
83
84 def serial2Dict(mySerial, serializer=DEFAULT_SERIALIZER):
85
86 SERIALIZER = DynamicSerializer(serializer)
87
88 myDict = SERIALIZER.loads(mySerial)
89
90 return myDict
91
92 def obj2Serial(myObj, serializer=DEFAULT_SERIALIZER, **kwargs):
93
94 SERIALIZER = DynamicSerializer(serializer)
95
96 myDict = obj2Dict(myObj, **kwargs)
97 mySerial = dict2Serial(myDict, serializer)
98
99 return mySerial
100
101 def serial2Obj(mySerial, metadataDict = {}, serializer=DEFAULT_SERIALIZER):
102
103 SERIALIZER = DynamicSerializer(serializer)
104
105 myDataDict = serial2Dict(mySerial, serializer)
106
107 if not metadataDict:
108 myObj = dict2Obj(myDataDict)
109 return myObj
110
111 metadataDict.update(myDataDict)
112 myObj = dict2Obj(metadataDict)
113
114 return myObj No newline at end of file
@@ -1,108 +0,0
1 '''
2 Created on Jul 17, 2014
3
4 @author: roj-idl71
5 '''
6
7 DEFAULT_SERIALIZER = None
8
9 try:
10 import pickle
11 DEFAULT_SERIALIZER = 'cPickle'
12 except:
13 pass
14
15 try:
16 import msgpack_numpy
17 DEFAULT_SERIALIZER = 'msgpack'
18 except:
19 pass
20
21 # import jsonpickle
22 # import yaml
23
24 class Serializer(object):
25
26 def __init__(self):
27
28 self.serializer = None
29
30 def dumps(self, obj, **kwargs):
31
32 return self.serializer.dumps(obj, **kwargs)
33
34 def loads(self, obj, **kwargs):
35 return self.serializer.loads(obj, **kwargs)
36
37 class cPickleSerializer(Serializer):
38
39 def __init__(self):
40 self.serializer = cPickle
41
42 def dumps(self, obj, **kwargs):
43 return self.serializer.dumps(obj, 2)
44
45 def loads(self, obj, **kwargs):
46 return self.serializer.loads(obj)
47
48 class msgpackSerializer(Serializer):
49
50 def __init__(self):
51
52 self.serializer = msgpack_numpy
53
54 def dumps(self, obj, **kwargs):
55 return self.serializer.packb(obj)
56
57 def loads(self, obj, **kwargs):
58 return self.serializer.unpackb(obj)
59
60 # class jsonpickleSerializer(Serializer):
61 #
62 # def __init__(self):
63 #
64 # self.serializer = jsonpickle
65 #
66 # def dumps(self, obj, **kwargs):
67 # return self.serializer.encode(obj, **kwargs)
68 #
69 # def loads(self, obj, **kwargs):
70 # return self.serializer.decode(obj, **kwargs)
71 #
72 # class yamlSerializer(Serializer):
73 #
74 # def __init__(self):
75 #
76 # self.serializer = yaml
77 #
78 # def dumps(self, obj, **kwargs):
79 # return self.serializer.dump(obj, **kwargs)
80 #
81 # def loads(self, obj, **kwargs):
82 # return self.serializer.load(obj, **kwargs)
83
84 class DynamicSerializer(Serializer):
85
86 def __init__(self, module = None):
87
88 if not DEFAULT_SERIALIZER:
89 raise ImportError("Install a python serializer like cPickle or msgpack")
90
91 if not module:
92 module == DEFAULT_SERIALIZER
93
94 if module == 'cPickle':
95 self.serializer = cPickleSerializer()
96 #
97 # if module == 'jsonpickle':
98 # self.serializer = jsonpickleSerializer()
99 #
100 # if module == 'yaml':
101 # self.serializer = yamlSerializer()
102
103 if module == 'msgpack':
104 self.serializer = msgpackSerializer()
105
106
107 if __name__ == '__main__':
108 pass No newline at end of file
This diff has been collapsed as it changes many lines, (815 lines changed) Show them Hide them
@@ -1,815 +0,0
1 '''
2 The DynamicObject module supports dynamic loading of YAML
3 defined objects into Python class objects. Object can
4 be sub-classed to allow direct binding of methods having
5 matching signatures.
6
7 $Id$
8 '''
9
10 import urllib.request, urllib.parse, urllib.error
11 import os
12 import re
13 import yaml # YAML Ain't Markup Language
14 import numpy as np
15 import copy
16 import inspect
17 import PrecisionTime
18 import time
19 import sys
20 import datetime
21 import collections
22
23 # Replacement Loader for PyYAML to keep dictionaries in-order:
24 import OrderedYAML
25 #OrderedYAML.collections
26
27 class Object(object):
28 """ Loads a YAML defined python class dynamically using the supplied URI,
29 which may be a file, directory, web hyper-link, or hyper-linked directory. """
30
31 # Dictionary containing all known Object class names and corresponding class objects
32 dynamicClasses = collections.OrderedDict()
33
34 def __init__(self, object_uri=None, revision=None, recursive=False):
35 if isinstance(object_uri, file):
36 # URI is a yaml file - read it.
37 self.yaml = file.read()
38 elif object_uri == None:
39 self.yaml = None
40 elif isinstance(object_uri, str):
41 if object_uri.endswith('.yml'):
42 # URI is a web hyper-linked yaml file - read it.
43 self.yaml = urllib.request.urlopen(object_uri).read()
44 else:
45 # URI is a (hyper-linked?) directory - try reading it.
46 #print "URI is a directory."
47 try:
48 self.files = self.__parseLink(object_uri, recursive)
49 except IOError:
50 # URI is a local directory - get a list of YAML files in it
51 self.files = self.__getYamlFiles(object_uri, recursive)
52
53 # For each YAML file found, create a new DynamicObject of it:
54 self.yaml = []
55 for fn in self.files:
56 self.yaml.append(Object(fn))
57 else:
58 print("Invalid URI supplied: %s"%(object_uri,))
59
60 def __parseLink(self, object_uri, recursive):
61 """ Returns a listing of all YAML files located in the
62 hyper-link directory given by page. """
63 page = urllib.request.urlopen(object_uri).read()
64 #print "URI is a URL directory: %s"%(object_uri,)
65 pattern = re.compile(r'<a href="[^"]*">')
66
67 # List of files contained in the directory at the given URL, ignoring
68 # any "?" / GET query-string locations given:
69 files = [x[9:-2] for x in pattern.findall(page) if not x[9:-2].startswith('?')]
70 #print files
71
72 yamlFiles = []
73 dirs = []
74 for fn in files:
75 if not fn.startswith('/'): # Ignore absolute paths...
76 path = os.path.join(object_uri, fn)
77 #print path
78
79 # Keep list of YAML files found...
80 if fn.endswith('.yml'):
81 yamlFiles.append(path)
82
83 # Keep list of directories found...
84 elif recursive and fn.endswith('/'):
85 dirs.append(path)
86
87 if recursive:
88 #print dirs
89 for path in dirs:
90 yamlFiles += self.__parseLink(path,recursive)
91
92 return yamlFiles
93
94 def __getYamlFiles(self, local_dir, recursive):
95 """ Returns a listing of all YAML files located in the given
96 directory, recursing if requested. """
97 yamlFiles = []
98 dirs = []
99 for fn in os.listdir(local_dir):
100 path = os.path.join(local_dir, fn)
101
102 # List of YAML files found...
103 if fn.endswith('.yml'):
104 yamlFiles.append(path)
105
106 # List of directories found...
107 elif recursive and os.path.isdir(path):
108 dirs.append(path)
109
110 # Recurse if desired:
111 if recursive:
112 for path in dirs:
113 yamlFiles += self.__getYamlFiles(path,recursive)
114
115 return yamlFiles
116
117 def equals(self, obj, compare_time_created=True):
118 """ Returns True iff self has identical attributes
119 (numerically) to obj (no extras) """
120
121 if not isinstance(obj, Object): return False
122
123 self_keys = list(self.__dict__.keys())
124 obj_keys = list(obj.__dict__.keys())
125 if not self_keys == obj_keys:
126 return False
127 for key in self_keys:
128 obj_keys.remove(key)
129
130 self_value, obj_value = self.__dict__[key], obj.__dict__[key]
131 if isinstance(self_value, Object):
132 if not self_value.equals(obj_value, compare_time_created):
133 return False
134 elif isinstance(self_value, np.ndarray):
135 m1 = list(map(repr,self_value.flat))
136 m2 = list(map(repr,obj_value.flat))
137 ret = m1 == m2
138 if not ret:
139 return False
140 else:
141 if not self_value == obj_value:
142 # Return False iff the different times are important
143 return key == '__time_created' and not compare_time_created
144
145 return obj_keys == [] # no more keys --> the objects are identical
146
147 def sizeof(self):
148 """ Recursively computes the size in bytes of the given Dynamic Object """
149 sz = 0
150 values = list(self.__dict__.values())
151 for val in values:
152 if isinstance(val, Object): sz += val.sizeof()
153 elif isinstance(val, np.ndarray): sz += val.nbytes
154 elif hasattr(val, 'dtype') and hasattr(val.dtype, 'itemsize'): sz += val.dtype.itemsize
155 else: sz += sys.getsizeof(val)
156 return sz
157
158 # Automatic methods for accessing meta-data
159 getters = ['__object_name', '__revision_number', '__revision_id', '__revision_source', '__revision_tag', '__time_created']
160 def getObjectName(self): return self.__class__.meta_attributes['__object_name']
161 def getRevisionNumber(self): return self.__class__.meta_attributes['__revision_number']
162 def getRevisionId(self): return self.__class__.meta_attributes['__revision_id']
163 def getRevisionSource(self): return self.__class__.meta_attributes['__revision_source']
164 def getRevisionTag(self): return self.__class__.meta_attributes['__revision_tag']
165 def getTimeCreated(self): return getattr(self, "__time_created")
166
167 """
168 __getters = [('ObjectName', getObjectName), ('RevisionNumber', getRevisionNumber),
169 ('RevisionId', getRevisionId), ('RevisionSource', getRevisionSource),
170 ('RevisionTag', getRevisionTag)]
171 def __repr__(self):
172 meta_atts = repr([(x[0], x[1](self)) for x in Object.__getters])
173 atts = repr(self.__dict__)
174 return "Object(%s, %s)"%(atts, meta_atts)
175 """
176
177
178 class SignatureException(Exception):
179 """ Exception thrown when a data or method signature is unknown or invalid
180 for a particular Object. """
181 def __init__(self, value): self.value = value
182 def __str__(self): return repr(self.value)
183
184 class _IDLTag(object):
185 """ IDLTag (aka Interface Definition Language Tag) is an abstract helper class
186 used by the Factory to define built-in tags used
187 specifically for our IDL """
188 def __init__(self, yamlString):
189 self.yamlString = yamlString
190 def __repr__(self):
191 return self.yamlString
192
193 class _Reference(_IDLTag):
194 """ Helper class for Factory: Objects can be composed
195 of other objects, requiring a Reference to the other object. """
196 def __repr__(self):
197 return "Ref(%s)"%(self.yamlString,)
198
199 class _Method(_IDLTag):
200 """ Helper class for Factory: Objects have methods
201 associated with them - this tag tells the Factory that a method
202 signature follows (in dict format) """
203 def __repr__(self):
204 return "Method(%r)"%(self.yamlString,)
205
206 class Binary(Object):
207 def __init__(self, binary_type, value=None):
208 self.binary_type = binary_type
209 self.value = value
210
211 import Lookup
212
213 class BuiltinDtype(_IDLTag):
214 """ Helper class for Factory: Object parameters each
215 have a certain data type (either dtype.xxxx for numpy compatible data
216 types, or one of the generic python data types (i.e. int, bool, str...)
217
218 __addYamlConstructor in Factory registers all of the tags
219 listed as keys in the dtypes dictionary."""
220
221 def __init__(self, yamlString, tag=None):
222 self.tag = tag[1:]
223 super(BuiltinDtype, self).__init__(yamlString)
224 #print self.tag
225 try: self.dtype = Lookup.numpy_dtypes[self.tag]
226 except KeyError: self.dtype = Lookup.builtin_objects[self.tag]
227
228 def __repr__(self):
229 return "_BuiltinType(%s,%s)"%(self.yamlString, self.tag)
230
231 # Register hexadecimal representation of numpy dtypes in YAML
232
233 class _Parameter:
234 """ Helper class for Factory: Contains the name, default
235 value, and length (if an array) of an object initialization parameter. """
236
237 def __init__(self, name, hasDefault=False, default=None, length=None, classType=None):
238 self.name = name
239 self.hasDefault = hasDefault
240 self.default = default
241 self.length = length
242 if isinstance(classType, None.__class__) and not isinstance(default, None.__class__):
243 self.classType = default.__class__
244 else:
245 self.classType = classType
246
247 class _UnresolvedType:
248 """ Used to indicate a data type which has not yet been parsed (i.e. for
249 recursive data-types. """
250
251 def __init__(self, yamlObject):
252 # Either the name of the class we couldn't resolve, or a dictionary
253 # containing the name and a default value
254 self.yamlObject = yamlObject
255
256 class UnresolvedTypeException(Exception):
257 """ Raised when a !ref tag is used, but the reference cannot be resolved """
258 pass
259
260 def get_class(kls):
261 """ Returns a pointer to the class instance with the name kls
262 Function acquired from http://stackoverflow.com/questions/452969/ """
263 parts = kls.split('.')
264 module = ".".join(parts[:-1])
265 m = __import__( module )
266 for comp in parts[1:]:
267 m = getattr(m, comp)
268 return m
269
270 # Aliased constructor & representer adders for easily swapping between Ordered and non-Ordered:
271 def add_constructor(tag, constructor):
272 #yaml.add_constructor(tag, constructor)
273 OrderedYAML.Loader.add_constructor(tag, constructor)
274 def add_representer(cls, representer):
275 #yaml.add_representer(cls, representer)
276 OrderedYAML.Dumper.add_representer(cls, representer)
277
278 # Implicit constructor for _Reference objects using the !ref tag:
279 def __ref_constructor(loader, node):
280 if isinstance(node, yaml.nodes.MappingNode):
281 return _Reference(loader.construct_mapping(node))
282 else:
283 return _Reference(loader.construct_scalar(node))
284 add_constructor('!ref', __ref_constructor)
285
286 # Method constructor using !method tag:
287 def __method_constructor(loader, node):
288 if isinstance(node, yaml.nodes.MappingNode):
289 return _Method(loader.construct_mapping(node))
290 else:
291 return _Method(loader.construct_scalar(node))
292 add_constructor('!method', __method_constructor)
293
294 # Generic constructor for any _BuiltinDtype
295 def __dtype_constructor(loader, node):
296 if isinstance(node, yaml.nodes.SequenceNode):
297 ret = BuiltinDtype(loader.construct_sequence(node), tag=node.tag)
298 elif isinstance(node, yaml.nodes.MappingNode):
299 ret = BuiltinDtype(loader.construct_mapping(node), tag=node.tag)
300 else:
301 ret = BuiltinDtype(loader.construct_scalar(node), tag=node.tag)
302 return ret
303
304 # Register YAML constructors for each builtin type:
305 for dtype in list(Lookup.numpy_dtypes.keys()) + list(Lookup.builtin_objects.keys()):
306 add_constructor('!%s'%(dtype,), __dtype_constructor)
307
308 class FactoryLoader(OrderedYAML.Loader):
309 """ A YAML Loader specifically designed to load YAML object definitions
310 (as opposed to actual instances of the objects) """
311
312 def construct_yaml_timestamp(self, node):
313 """ Make empty timestamps (None/null) acceptable, otherwise parse the timestamp """
314 if node.value == '':
315 name = 'YAML_DEFN_LOADED_INCORRECTLY' # in case we forget to fix the name...
316 return _Parameter(name, hasDefault=False, classType=datetime.datetime)
317 else:
318 return yaml.constructor.SafeConstructor.construct_yaml_timestamp(self, node)
319
320 # Override default timestamp constructor:
321 FactoryLoader.add_constructor(
322 'tag:yaml.org,2002:timestamp',
323 FactoryLoader.construct_yaml_timestamp
324 )
325
326 import DynamicYAML
327 class Factory:
328 """ Load a YAML defined python class and create a class with initialization
329 provided by this factory. This is intended as an abstract class to be sub-classed
330 to enable complex initialization on object instantiation.
331
332 Factory subclasses should override __buildClass()."""
333
334 def __init__(self, dynamic_object=None, yaml=None, typeCheck='strong', parse=True, revision_dict=None):
335 if revision_dict != None: self.revision_dict = revision_dict # Remember for when we build each individual class
336 else:
337 self.revision_dict = {\
338 "__revision_number": 0,
339 "__revision_id": 'unknown',
340 "__revision_source": 'unknown',
341 "__revision_tag": 'unknown'}
342 if parse:
343 if dynamic_object:
344 self.parse(dynamic_object, typeCheck=typeCheck)
345 else:
346 dyno = Object()
347 dyno.yaml = yaml
348 self.parse(dyno, typeCheck=typeCheck)
349
350 def parse(self, dynamic_object, typeCheck='strong'):
351 """
352 Initializer for a Factory, converting the given dynamic_object
353 containing a (text) YAML object definition into the corresponding class-type
354 with initializer.
355
356 typeCheck parameter can be one of 'strong' or 'cast':
357 'strong': Class initializer should raise a TypeError when given
358 anything but the correct type
359 'cast': Class initializer should attempt to cast any input to the correct type
360 """
361
362 # Remember what kind of type-checking to do:
363 if typeCheck not in ['strong', 'cast']:
364 raise Exception('Incorrect input for typeCheck: %s\nExpected "strong" or "cast"'%(typeCheck))
365 self.typeCheck = typeCheck
366
367 # Get a list of the objects to build:
368 if isinstance(dynamic_object.yaml, list):
369 objects = dynamic_object.yaml
370 else:
371 objects = [dynamic_object]
372
373 # Generate a dictionary of classes from the DynamicObjects given:
374 self.classes = dict()
375 for obj in objects:
376
377 # This loader breaks nothing anymore #everything currently
378 loader = FactoryLoader(obj.yaml)
379 #loader = yaml.Loader(obj.yaml)
380
381 # Dictionary with method and data signatures for the current object:
382 objDefn = []
383 while loader.check_data():
384 objDefn.append(loader.get_data())
385 loader.dispose()
386
387 # Parse the dictionary into a class definition:
388 objClass = self.__buildClass(objDefn)
389 self.classes.update(objClass)
390
391 def parseMethodSignature(self, sigName, methDict):
392 """ Returns the python method corresponding to the given signature
393 (given signature should be in the loaded YAML dict format.
394
395 Override this method for recognizing complex method signatures. """
396
397 raise SignatureException("Object abstract base class doesn't support any method signatures.")
398
399 def parseDataSignature(self, sigName, sig):
400 """ Returns the Parameter object corresponding to the given signature.
401
402 This method should be overridden for recognizing complex data signatures
403 (don't forget to call super(sig) for built-in data types though!) """
404
405 # Is the object an array with explicit default elements?:
406 if isinstance(sig.yamlString, list):
407 #length = len(sig.yamlString)
408 if 'dtype' in sig.tag:
409 default = np.array(sig.yamlString, dtype=sig.dtype)
410 elif 'binary' == sig.tag:
411 default = Binary(sig.yamlString["type"])
412 else:
413 default = sig.yamlString
414 return _Parameter(sigName, True, default, length=None)
415
416 # Is the object an array with length and default value given?:
417 if isinstance(sig.yamlString, dict) and "len" in list(sig.yamlString.keys()):
418 length = sig.yamlString["len"]
419
420 # Shape is given as something like [[],[]], not [2,2] - convert
421 if isinstance(length, list):
422
423 def get_shape(lst):
424 """ Gets the shape of a list recursively filled with empty lists """
425 if lst == []: return [0]
426 return [len(lst)] + get_shape(lst[0])
427
428 if len(length) > 0:
429 if isinstance(length[0], list):
430 length = get_shape(length)
431 else:
432 pass
433 else:
434 length = [0] # convert [] to [0] (numpy interprets [] as [1] for shapes)
435
436
437 if 'complex' in sig.tag:
438 imag = sig.yamlString["default"]["imag"]
439 real = sig.yamlString["default"]["real"]
440 default = sig.dtype(real) + sig.dtype(imag*1j)
441 elif 'binary' == sig.tag:
442 default = Binary(sig.yamlString["type"])
443 else:
444 default = sig.dtype(sig.yamlString["default"])
445
446 return _Parameter(sigName, True, default, length)
447
448 # The object is singular, with a given value:
449 if 'complex' in sig.tag:
450 imag = sig.yamlString["imag"]
451 real = sig.yamlString["real"]
452 default = sig.dtype(real) + sig.dtype(imag*1j)
453 return _Parameter(sigName, True, default)
454 elif 'binary' == sig.tag:
455 default = Binary(sig.yamlString["type"])
456 return _Parameter(sigName, False, default, classType=Binary)
457 elif 'timestamp' in sig.tag:
458 if isinstance(sig.yamlString, dict):
459 if sig.tag in ['timestamp_picosecond', 'timestamp_ps']:
460 try: s = sig.yamlString['second']
461 except KeyError: s = sig.yamlString['s']
462 try: ps = sig.yamlString['picosecond']
463 except KeyError: ps = sig.yamlString['ps']
464 return _Parameter(sigName, True, PrecisionTime.psTime(s, ps))
465 elif sig.tag in ['timestamp_nanosecond', 'timestamp_ns']:
466 try: s = sig.yamlString['second']
467 except KeyError: s = sig.yamlString['s']
468 try: ns = sig.yamlString['nanosecond']
469 except KeyError: ns = sig.yamlString['ns']
470 return _Parameter(sigName, True, PrecisionTime.nsTime(s, ns))
471 else:
472 if sig.tag in ['timestamp_picosecond', 'timestamp_ps']:
473 return _Parameter(sigName, False, classType=PrecisionTime.psTime)
474 elif sig.tag in ['timestamp_nanosecond', 'timestamp_ns']:
475 return _Parameter(sigName, False, classType=PrecisionTime.nsTime)
476 else:
477 default = sig.dtype(sig.yamlString)
478 return _Parameter(sigName, True, default) # not binary
479
480
481
482 def __parsePythonType(self, sigName, sig):
483 """ Returns a _Parameter object, similar to parseDataSignature, but
484 for a basic python type. """
485
486 if isinstance(sig, collections.OrderedDict):
487 default = dict(sig) # Type-check user-defined !!maps as dicts, not OrderedDicts.
488 else:
489 default = sig # The signature sig is the default value itself
490 return _Parameter(sigName, True, default)
491
492 def __parseReferenceSignature(self, sigName, ref_object, objClasses):
493 """ Takes a reference object ref_object to be named sigName, and
494 produces a _Parameter object with default value of None. """
495
496 # List of names of classes we've created so far:
497 #print [x for x in objClasses]
498 names = list(objClasses.keys())
499
500 if ref_object.yamlString in names:
501 defaultType = objClasses[ref_object.yamlString]
502 return _Parameter(sigName, classType=defaultType)
503 else:
504 try:
505 # Try to find the class type in globals:
506 className = objClasses[str(ref_object.yamlString)]
507 defaultType = get_class(className)
508 except (ValueError, KeyError):
509 defaultType = _UnresolvedType(ref_object.yamlString)
510 #raise NameError("Invalid reference to module %s"%(className,))
511
512 return _Parameter(sigName, classType=defaultType)
513
514 def __buildInitializer(self, className, classData):
515 """ Constructs the initializer for an object which expects parameters
516 listed in classData as input upon initialization. """
517
518 # Type of type-checking to use:
519 strong = (self.typeCheck == 'strong')
520 #cast = (self.typeCheck == 'cast')
521
522 def typeCheck(param, arg):
523 """
524 Checks to see if the type of arg matches that of the corresponding param,
525 casting arg to the correct type if desired.
526 """
527 if isinstance(arg, param.classType): return arg
528 if isinstance(arg, np.ndarray) and arg.dtype.type == param.classType:
529 if not param.hasDefault: return arg
530 if param.default.shape == (): return arg
531 if param.default.shape[-1] == 0: return arg
532 if arg.shape == param.default.shape: return arg
533 if isinstance(arg, None.__class__): return arg
534 if strong:
535 raise TypeError("Incorrect input type on strong type-checking."+\
536 " Expected %s - got %s"%(param.classType,arg.__class__))
537 else:
538 # If the parameter corresponding to the given argument has a non-NoneType default
539 # value, then attempt to cast the argument into the correct parameter type
540 if param.hasDefault and param.default != None:
541 if isinstance(param.default, np.ndarray):
542 return np.array(arg, dtype=param.default.dtype)
543 else:
544 return param.default.__class__(arg)
545 else:
546 return param.classType(arg)
547
548 """
549 attributes = {"__object_name": className,
550 "__revision_number": self.svn_revision_number,
551 "__revision_id": 'unknown',
552 "__revision_source": 'unknown',
553 "__revision_tag": 'unknown'}
554 """
555 attributes = {} # Create new attributes dict for this particular class object
556 attributes.update(self.revision_dict) # Revision info now passed into the factory
557 attributes['__object_name'] = className
558
559 def init(_self, *args, **kwargs):
560 """ Dynamically generated initializer. """
561
562 # meta-data goes in the class, not the objects (commented the following out):
563 """
564 # Initialize automatic class data
565 for attr,value in attributes.items():
566 try:
567 value = kwargs[attr] # Are we given a value to over-ride with?
568 del kwargs[attr] # Ignore the meta attribute later
569 except KeyError:
570 pass
571 setattr(_self, attr, value)
572 """
573
574 # Set default values first (assume no parameters):
575 for param in classData:
576 if param.length:
577 if isinstance(param.length, int): param.length = [param.length]
578 default = np.empty(param.length, dtype=param.classType)
579 if param.hasDefault:
580 # Initialize array with default array value given:
581 flatIter = default.flat
582 for i in range(len(flatIter)):
583 flatIter[i] = copy.deepcopy(param.default)
584 else:
585 # Initialize to None if no default given:
586 default.fill(None)
587 else:
588 default = param.default
589 setattr(_self, param.name, copy.deepcopy(default))
590
591 # Set attributes given by standard args:
592 for i in range(len(args)):
593 arg = typeCheck(classData[i], args[i])
594 setattr(_self, classData[i].name, arg)
595
596 # Set named attributes (given by dictionary kwargs):
597 for key,value in list(kwargs.items()):
598
599 try: keyIndex = [param.name for param in classData].index(key)
600 except ValueError:
601 raise TypeError("'%s' is an invalid keyword argument"%(key,))
602 arg = typeCheck(classData[keyIndex],value)
603 #setattr(_self, key, value)
604 setattr(_self, key, arg)
605
606
607 # Object instantiation / creation time (if not already present):
608 if '__time_created' not in kwargs:
609 setattr(_self, "__time_created", np.float64(time.time()))
610
611 return init, attributes
612
613 def __findClass(self, className, localClasses):
614 """ Looks for the given className first in the given dictionary of localClasses
615 then in the global definitions, returning the corresponding class object. Raises
616 a KeyError if the class cannot be found. """
617
618 # If class definition was in the YAML file, extend that one:
619 if className in list(localClasses.keys()):
620 return localClasses[className]
621
622 # Else try finding the class definition in our global scope:
623 try: classObj = get_class(className)
624 except KeyError:
625 raise KeyError("Class '%s' not found in given YAML scope or global scope."%(className,))
626 return classObj
627
628 def __buildClass(self, objDefn):
629 """ Takes an object definition list / dictionary objDefn (loaded from a YAML
630 object definition file) and creates a class, dynamically binding
631 method and data signatures to the new class.
632
633 This method only performs a basic binding of method and data signatures to
634 the new class. Object(s) having more complex initialization requirements
635 should be given their own Factory subclass, overriding this
636 and other methods."""
637
638 # objDefn is a list of dictionaries found in the YAML file - build each one...
639 objClasses = dict()
640 objClassesRev = dict()
641
642 # A list of all _Parameter objects created, used to resolve recursive
643 # or "tangled" data structures
644 allClassData = []
645
646 for document in objDefn:
647 # Each document can contain multiple objects - build each one.
648 # (NOTE: objects can cross reference each other in the same document
649 # need to resolve Reference objects as last step)
650 for objClassName in list(document.keys()):
651
652 # The dictionary containing method & data signatures:
653 objDict = document[objClassName]
654
655 # Extract data / attribute definitions (signatures) from the YAML dictionary
656 # as well as method signatures and which classes this class extends:
657 classData = []
658 classMethods = dict()
659 classBases = [Object]
660
661 # List structured documents result in a list of dicts each with one key:
662 if isinstance(objDict, list): keys = [list(param.keys())[0] for param in objDict]
663 # Otherwise the parameter names are just the keys of the dict
664 else: keys = list(objDict.keys()) # if key not found, raises AttributeError
665
666 for sigName in keys:
667 #print sigName
668 sig = objDict[sigName]
669 #for f in _BuiltinDtype.python_dtypes: print f.__class__
670 if sigName == '__extends':
671 if isinstance(sig, str):
672 sig = [sig]
673 if isinstance(sig, list):
674 for className in sig:
675 newBase = self.__findClass(className, objClasses)
676
677 # Remove Object extension if newBase extends it already:
678 if Object in classBases and Object in inspect.getmro(newBase):
679 classBases.remove(Object)
680 classBases += [newBase]
681 else:
682 raise TypeError("Incorrect format for extending classes - %s"%(sig,))
683 elif isinstance(sig, BuiltinDtype):
684 classData.append(self.parseDataSignature(sigName, sig))
685 elif isinstance(sig, Lookup.python_dtypes):
686 classData.append(self.__parsePythonType(sigName, sig))
687 elif isinstance(sig, _Reference):
688 classData.append(self.__parseReferenceSignature(sigName, sig, objClasses))
689 elif isinstance(sig, _Method):
690 classMethods[sigName] = self.parseMethodSignature(sigName, sig.yamlString)
691 elif isinstance(sig, (PrecisionTime.nsTime, PrecisionTime.psTime)):
692 classData.append(_Parameter(sigName, True, sig))
693 elif isinstance(sig, _Parameter): # sig is already a parameter (we skipped a step)
694 sig.name = sigName # we didn't know the name during load time - fill that in now
695 classData.append(sig)
696 else:
697 msg = "Factory abstract base class doesn't " +\
698 "support the following signature: %r \"%s\""%(sig.__class__,str(sig))
699 print(sig.__class__)
700 raise SignatureException(msg)
701
702 # Built-in attribute for all Dynamic Objects:
703 classData.append(_Parameter('__time_created', classType=np.float64))
704
705 # Turn the object data / attributes into a usable __init__ method:
706 classMethods["__init__"], meta_attributes = self.__buildInitializer(objClassName, classData)
707
708 # Keep a record of the _Parameters created for later type resolution
709 allClassData.extend(classData)
710
711 """
712 __automaticMethods = {
713 "getObjectName": lambda _self: getattr(_self, '__object_name'),
714 "getRevisionNumber": lambda _self: getattr(_self, '__revision_number'),
715 "getRevisionId": lambda _self: getattr(_self, '__revision_id'),
716 "getRevisionSource": lambda _self: getattr(_self, '__revision_source'),
717 "getRevisionTag": lambda _self: getattr(_self, '__revision_tag')
718 }
719 classMethods.update(__automaticMethods)
720 """
721
722 # Put the method signatures into a namespace for the new class,
723 # then dynamically build the class from this namespace.
724 classNamespace = classMethods
725 classNamespace["meta_attributes"] = meta_attributes
726 cls = type(str(objClassName), tuple(classBases), classNamespace)
727 objClasses[objClassName] = cls
728 objClassesRev['%s.%s'%(objClassName,cls.meta_attributes["__revision_number"])] = cls
729
730 # Create and register a constructor (loading) and representer (dumping) for the new class cls
731 def construct_dynamic_object(loader, node):
732 kwargs = loader.construct_mapping(node)
733 # Remove revision control from loaded objects (info is in the class object!)
734 for arg in list(kwargs.keys()):
735 if arg in getattr(Object, 'getters') and arg != '__time_created':
736 del kwargs[arg]
737 return cls(**kwargs)
738 revision = cls.meta_attributes["__revision_number"]
739 DynamicYAML.Loader.add_constructor('!%s.%s'%(str(objClassName),revision), construct_dynamic_object)
740
741 represent_dynamic_object = DynamicYAML.Dumper.represent_dynamic_object
742 DynamicYAML.Dumper.add_representer(cls, represent_dynamic_object)
743
744 def findClass(className):
745 """ Search for the most recently added class object with given className """
746 try:
747 return objClasses[className] # Look for reference to object in same YAML defn file:
748 except KeyError:
749 # Now look for reference to class object loaded from any YAML defn file, loading the
750 # most recent version / revision (number) of the definition
751 for dynClass in list(Object.dynamicClasses.keys())[::-1]:
752 if dynClass.startswith(className):
753 return Object.dynamicClasses[dynClass]
754
755 # Still unresolved - raise exception:
756 allDynamicClasses = repr(list(objClasses.keys()) + list(Object.dynamicClasses.keys()))
757 raise UnresolvedTypeException("Cannot resolve type '%s': Name not found in %s"%(className,allDynamicClasses))
758
759
760 def resolve(param):
761
762 # Reference is just a string - that's the class name:
763 if isinstance(param.classType.yamlObject, str):
764 className = str(param.classType.yamlObject)
765 param.classType = findClass(className)
766 return
767
768 # Reference is a dict containing class name and / or default values:
769 if not isinstance(param.classType.yamlObject, dict):
770 raise UnresolvedTypeException("Cannot resolve reference of type '%s'"%(param.classType.yamlObject.__class__,))
771
772 # Definitely a dict:
773 refDict = param.classType.yamlObject
774
775 # Determine the name of the class being referenced
776 try:
777 className = refDict["type"]
778 except KeyError:
779 raise KeyError("No 'type' key in reference dictionary for parameter '%s'"%(param.name,))
780
781 # Determine the class object corresponding to the class name
782 param.classType = findClass(className)
783
784 try:
785 defaultParams = refDict["default"]
786 except KeyError:
787 defaultParams = None
788
789 if defaultParams != None:
790 for sub_param in defaultParams:
791 if isinstance(sub_param.classType, _UnresolvedType):
792 resolve(sub_param)
793 param.default = param.classType( **defaultParams ) # Create the default object
794 param.hasDefault = True
795 else:
796 param.hasDefault = False # for good measure
797
798 # Is it an object array?:
799 if "len" in list(refDict.keys()):
800 param.length = refDict["len"]
801
802 # Resolve any unresolved data-types:
803 for param in allClassData:
804 if isinstance(param.classType, _UnresolvedType):
805 resolve(param)
806
807 Object.dynamicClasses.update(objClassesRev)
808 return objClasses
809
810 def load_defn(yaml):
811 """ Shortcut for producing a single DynamicObject class object from
812 the provided yaml definition in string format """
813 return list(Factory(yaml=yaml).classes.values())[0]
814
815
@@ -1,69 +0,0
1 #
2 # rps 6/9/2014
3 # mit haystack obs
4 #
5 # wrapper for Karl's code
6
7 import DynamicObject # used for serial/deserial of complex python objects
8 import Serializer # used for serial/deserial of complex python
9
10 #
11 class DynamicSerializer:
12 #
13 #------------------------------------------------------
14 #
15 def __init__(self,which='yaml'):
16 #
17 # choices are: yaml, msgpack, hdf5, json
18 #
19 self.err_f = False
20 self.whichList = ['yaml', 'msgpack', 'hdf5', 'json'] # from Serialzer.py
21 self.err_f,self.serializer = self.initSerializer(which)
22 #
23 #------------------------------------------------------
24 #
25 def initSerializer(self,which):
26 #
27 # calls REU student code that works but hasn't been walked-through
28 # it's a dynamic serializer not strictly a yaml serializer
29 #
30 err_f = False
31 match_f = False
32 serializer = None
33 ii = 0
34 while ii < len(self.whichList):
35 if (self.whichList[ii] == which):
36 match_f = True
37 break
38 ii = ii + 1
39 # end while
40 if not match_f:
41 err_f = True
42 else:
43 serializer = which
44 serializer = Serializer.serializers[serializer]()
45
46 return err_f,serializer
47 # end initSerializer
48 #
49 # --------------------------------------------------
50 #
51 def loads(self,element): # borrows name from json module (json - to - python)
52 retval = self.serializer.fromSerial(element) # de-serialize
53 return retval
54 # end loads
55 #
56 # --------------------------------------------------
57 #
58 def dumps(self,element): # borrows name from json module (python - to - json)
59 retval = self.serializer.toSerial(element) # serialize
60 return retval
61 # end dumps
62 #
63 # --------------------------------------------------
64 #
65 # end class DynamicSerializer
66
67 if __name__ == "__main__":
68 DynamicSerializer()
69 print("DynamicSerializer ran") No newline at end of file
@@ -1,220 +0,0
1 '''
2 Module containing YAML Loader and Dumper for DynamicObjects
3 as well as built-in data types (numpy, PrecisionTime, datetime, Binary, ...)
4
5 $Id$
6 '''
7
8 import yaml
9 import OrderedYAML
10 import DynamicObject
11 import binascii
12 import numpy as np
13 import PrecisionTime
14 import Lookup
15 import pysvn
16
17 def load_defn(source, rev='head', repo=""):
18 """ Import YAML definition(s) from given 'source' SVN location
19 with specific revision number 'rev'. Returns a dict of the object
20 names -> class object instances.
21
22 NOTE: Object defns with same name & revision number will conflict /
23 cause issues (regardless of svn location). """
24 client = pysvn.Client()
25
26 if rev == 'head':
27 #yaml = client.cat(source)
28 rev = client.info(repo).revision.number
29
30 if source.startswith('http'):
31 yaml = client.cat("%s?p=%d"%(source, rev))
32 else:
33 pysvn_rev = pysvn.Revision(pysvn.opt_revision_kind.number, rev)
34 yaml = client.cat(source, pysvn_rev)
35
36 revision_dict = {\
37 "__revision_number": rev,
38 "__revision_id": 'unknown',
39 "__revision_source": source,
40 "__revision_tag": 'unknown'}
41
42 return DynamicObject.Factory(yaml=yaml, revision_dict=revision_dict).classes
43
44 class Loader(OrderedYAML.Loader):
45
46 def __init__(self, stream):
47 OrderedYAML.Loader.__init__(self, stream)
48
49 def construct_object(self, node, deep=False):
50 """ Unresolved tags on mapping nodes come from un-imported YAML definitions - import it """
51 resolved = node.tag in self.yaml_constructors
52 resolved = resolved or any([node.tag.startswith(x) for x in self.yaml_multi_constructors])
53 if isinstance(node, yaml.nodes.MappingNode) and not resolved:
54 data = self.construct_mapping(self, node)
55 self.constructed_objects[node] = data
56 del self.recursive_objects[node]
57 if '__revision_source' in data:
58 # TODO: Handle password authentication
59 client = pysvn.Client()
60 source = data['__revision_source']
61 if source.startswith('http'):
62 rev = data['__revision_number']
63 defn = client.cat("%s?p=%d"%(source, rev))
64 else:
65 rev = pysvn.Revision(pysvn.opt_revision_kind.number, data['__revision_number'])
66 defn = client.cat(source, revision=rev)
67 DynamicObject.Factory(yaml=defn) # Register the object
68
69 constructor = self.yaml_constructors["%s.%s"%(data['__revision_name'], data['__revision_number'])]
70 return constructor(node)
71 else:
72 raise Exception("Cannot load object with tag '%s' - cannot find YAML object definition (no __revision_source included)")
73 else:
74 return yaml.Loader.construct_object(self, node, deep=deep)
75
76 class Dumper(OrderedYAML.Dumper):
77
78 def __init__(self, stream, *args, **kwargs):
79 OrderedYAML.Dumper.__init__(self, stream, *args, **kwargs)
80
81 def represent_dynamic_object(self, obj):
82 """
83 Override the !!python/object:__main__.xxx syntax with
84 !ObjectName.zzz where zzz is the revision number of the Object obj
85 """
86
87 state = {}
88 state.update(list(obj.__dict__.items()))
89 state.update(list(obj.__class__.meta_attributes.items()))
90 name = obj.getObjectName() # obj.__class__.__name__
91 revision = obj.getRevisionNumber()
92 return self.represent_mapping('!%s.%s' % (name, revision), state)
93
94 # Dtypes to be stored as hex in YAML streams / strings
95 hex_dtypes = ['float', 'complex', 'half', 'single', 'double']
96
97 # Register hex constructors for the numpy / built-in dtypes:
98 dtypes = Lookup.numpy_dtypes
99
100 # Inverse lookup for accessing tags given a class instance:
101 cls_dtypes = dict([(v,k) for (k,v) in list(dtypes.items())])
102
103 # Representer for numpy arrays:
104 def ndarray_representer(dumper, obj):
105 #if isinstance(obj, np.ndarray):
106 tag = 'dtype.'+obj.dtype.type.__name__
107 hexlify = any([x in tag for x in hex_dtypes])
108 np_ary = obj
109 #hex_ary = np.empty(np_ary.shape, dtype=yaml.nodes.ScalarNode)
110 np_flat, hex_flat = np_ary.flat, [] #hex_ary.flat
111 hex_flat.append(dumper.represent_sequence('tag:yaml.org,2002:seq', list(np_ary.shape), flow_style=True))
112 if hexlify:
113 lst = []
114 for i in range(len(np_flat)):
115 value = '%s'%(np_flat[i],)
116 node = dumper.represent_scalar('tag:yaml.org,2002:str', value, style='')
117 lst.append(node)
118 hex_flat.append(yaml.nodes.SequenceNode('tag:yaml.org,2002:seq', lst, flow_style=True))
119 lst = []
120 for i in range(len(np_flat)):
121 if hexlify: value = '%s'%(binascii.hexlify(np_flat[i]),)
122 else: value = '%s'%(np_flat[i],)
123 node = dumper.represent_scalar('tag:yaml.org,2002:str', value, style='')
124 if hexlify: lst.append(node)
125 else: hex_flat.append(node)
126 if hexlify: hex_flat.append(yaml.nodes.SequenceNode('tag:yaml.org,2002:seq', lst, flow_style=True))
127 return yaml.nodes.SequenceNode('!%s'%(tag,), hex_flat, flow_style=True)
128 Dumper.add_representer(np.ndarray, ndarray_representer)
129
130 # Constructor for ndarrays with arbitrary (specified) dtype:
131 def ndarray_constructor(loader, node, dtype, hexlify=False):
132 shape = loader.construct_sequence(node.value.pop(0))
133 np_ary = np.empty(shape, dtype=dtype)
134 np_flat = np_ary.flat # Flat iterator
135 if hexlify:
136 node.value[1].tag = node.tag
137 node = node.value[1] # only look at hexlified values
138 for i in range(len(node.value)):
139 # Over-ride the 'tag:yaml.org,2002:str' tag with correct data type
140 node.value[i].tag = node.tag
141 value = loader.construct_object(node.value[i])
142 #if hexlify:
143 # value = binascii.unhexlify(value)
144 # value = np.frombuffer(value, dtype=dtype)
145 np_flat[i] = value
146 return np_ary
147
148 class __dtype_con:
149
150 def __init__(self, tag):
151 # Whether or not to convert to hex:
152 hexlify = any([x in tag for x in hex_dtypes])
153 dtype = dtypes[tag]
154
155 # Mutable list containing constructor & representer info
156 self.fncn_attributes = [tag, hexlify, dtype]
157
158 def dtype_constructor(loader, node):
159 tag, hexlify, dtype = self.fncn_attributes
160 if isinstance(node, yaml.nodes.SequenceNode):
161 return ndarray_constructor(loader, node, dtype, hexlify=hexlify)
162 else: # isinstance(node, yaml.nodes.ScalarNode):
163 value = loader.construct_scalar(node)
164 dtype = dtypes[node.tag[1:]]
165 if hexlify:
166 value = binascii.unhexlify(value)
167 value = np.frombuffer(value, dtype=dtype)[0]
168 else:
169 value = dtype(value)
170 return value
171
172 def dtype_representer(dumper, obj):
173 tag, hexlify, dtype = self.fncn_attributes
174 if isinstance(obj, float): obj = np.float64(obj)
175 if hexlify: value = '%s'%(binascii.hexlify(obj),)
176 else: value = '%s'%(obj,)
177 try: tag = '!%s'%(cls_dtypes[obj.__class__]) # 'dtype.'+obj.__class__.__name__ # bullshit...
178 except KeyError: tag = ''
179 node = dumper.represent_scalar(tag, value, style='')
180 return node
181
182 self.dtype_constructor = dtype_constructor
183 self.dtype_representer = dtype_representer
184
185 keys = [x for x in list(dtypes.keys()) if x != 'dtype.int' and x != 'dtype.bool']
186 print(keys)
187
188 n = len(keys)
189 print(n)
190 i=0
191
192 for tag in keys:
193 dtype = __dtype_con(tag)
194 dtype_constructor = dtype.dtype_constructor
195 dtype_representer = dtype.dtype_representer
196 Loader.add_constructor('!%s'%(tag,), dtype_constructor)
197 Dumper.add_representer(dtypes[tag], dtype_representer)
198
199 # Precision time constructors & representers:
200 def ns_rep(dumper, obj):
201 state = {'second': obj.__dict__['second'], 'nanosecond': obj.__dict__['nanosecond']}
202 return dumper.represent_mapping('!timestamp_ns', state)
203 def ps_rep(dumper, obj):
204 state = {'second': obj.__dict__['second'], 'picosecond': obj.__dict__['picosecond']}
205 return dumper.represent_mapping('!timestamp_ps', state)
206 def ns_con(loader, node): return PrecisionTime.nsTime(**loader.construct_mapping(node))
207 def ps_con(loader, node): return PrecisionTime.psTime(**loader.construct_mapping(node))
208
209 Dumper.add_representer(PrecisionTime.nsTime, ns_rep)
210 Dumper.add_representer(PrecisionTime.psTime, ps_rep)
211 Loader.add_constructor('!timestamp_ns', ns_con)
212 Loader.add_constructor('!timestamp_nanosecond', ns_con)
213 Loader.add_constructor('!timestamp_ps', ps_con)
214 Loader.add_constructor('!timestamp_picosecond', ps_con)
215
216 # Binary object constructor & representer:
217 def bin_rep(dumper, obj): return dumper.represent_mapping('!binary', obj.__dict__)
218 def bin_con(loader, node): return DynamicObject.Binary(**loader.construct_mapping(node))
219 Dumper.add_representer(DynamicObject.Binary, bin_rep)
220 Loader.add_constructor('!binary', bin_con)
@@ -1,61 +0,0
1 '''
2 Helper module for DynamicObject module - contains dictionaries
3 of data types built-in to our YAML IDL, converting backing and forth between
4 strings / YAML tags and python class instances.
5
6 $Id$
7 '''
8
9 import datetime
10 import numpy as np
11 import PrecisionTime
12 import DynamicObject
13 Binary = DynamicObject.Binary
14 import platform
15 import collections
16
17 # Implicit Types:
18 python_dtypes = tuple([bool,int,int,float,str,datetime.datetime,list,
19 set,dict,tuple,str])
20
21 # Numpy Data-types:
22 numpy_dtypes = {'dtype.bool': bool, 'dtype.int': np.int, 'dtype.int8': np.int8,
23 'dtype.int16': np.int16, 'dtype.int32': np.int32, 'dtype.int64': np.int64,
24 'dtype.uint8': np.uint8, 'dtype.uint16': np.uint16, 'dtype.uint32': np.uint32,
25 'dtype.uint64': np.uint64, 'dtype.float': np.float, 'dtype.float16': np.float16,
26 'dtype.float32': np.float32, 'dtype.float64': np.float64, 'dtype.complex': np.complex,
27 'dtype.complex64': np.complex64, 'dtype.complex128': np.complex128,
28 'dtype.byte': np.byte, 'dtype.short': np.short, 'dtype.intc': np.intc,
29 'dtype.longlong': np.longlong, 'dtype.intp': np.intp, 'dtype.ubyte': np.ubyte,
30 'dtype.ushort': np.ushort, 'dtype.uintc': np.uintc, 'dtype.uint': np.uint,
31 'dtype.uintc': np.uintc, 'dtype.uint': np.uint, 'dtype.ulonglong': np.ulonglong,
32 'dtype.uintp': np.uintp, 'dtype.half': np.half, 'dtype.single': np.single,
33 'dtype.double': np.double, 'dtype.longfloat': np.longfloat,
34 'dtype.csingle': np.csingle, 'dtype.clongfloat': np.clongfloat, 'dtype.long': np.long}
35
36 if platform.architecture()[0] != '32bit': # 64bit - certain numpy types exist
37 numpy_dtypes.update({'dtype.float128': np.float128, 'dtype.complex256': np.complex256})
38 bit32 = False
39 else:
40 bit32 = True
41 #else: # 32 bit - fix 32 bit integer issue.
42 # np.int32 = np.int
43 # bit32 = True
44
45 # Built-in objects:
46 builtin_objects = {'binary': Binary, 'nsTime': PrecisionTime.nsTime, 'psTime': PrecisionTime.psTime,
47 'timestamp_ns': PrecisionTime.nsTime, 'timestamp_ps': PrecisionTime.psTime,
48 'timestamp_nanosecond': PrecisionTime.nsTime, 'timestamp_picosecond': PrecisionTime.psTime,
49 'datetime': datetime.datetime, 'Binary': Binary}
50
51 builtin_objects_simple = {'nsTime': PrecisionTime.nsTime, 'psTime': PrecisionTime.psTime,
52 'binary': Binary, 'datetime': datetime.datetime,
53 'Binary': Binary}
54
55 # Inverse lookup for accessing tags given a class instance:
56 cls_dtypes = dict([(v,k) for (k,v) in list(numpy_dtypes.items())])
57 obj_dtypes = dict([(v,k) for (k,v) in list(builtin_objects_simple.items())])
58
59 # Pointer to the list of all Object classes created, as located in the Object module / class:
60 dynamicClasses = DynamicObject.Object.dynamicClasses
61
@@ -1,89 +0,0
1 '''
2 A YAML Loader and Dumper which provide ordered dictionaries in place
3 of dictionaries (to keep the order of attributes as
4 found in the original YAML object file).
5
6 This module is modified from a submission on pyyaml.org:
7 http://pyyaml.org/attachment/ticket/161/use_ordered_dict.py
8
9 $Id$
10 '''
11
12 import yaml
13 import collections
14
15 class Loader(yaml.loader.Loader):
16 """ YAML Loader producing OrderedDicts in place of dicts """
17
18 def __init__(self, stream):
19 yaml.loader.Loader.__init__(self, stream)
20
21 def construct_ordered_mapping(self, node, deep=False):
22 """ Replacement mapping constructor producing an OrderedDict """
23 if not isinstance(node, yaml.MappingNode):
24 raise yaml.constructor.ConstructorError(None, None,
25 "expected a mapping node, but found %s" % node.id,
26 node.start_mark)
27 mapping = collections.OrderedDict()
28 for key_node, value_node in node.value:
29 key = self.construct_object(key_node, deep=deep)
30 if not isinstance(key, collections.Hashable):
31 raise yaml.constructor.ConstructorError("while constructing a mapping", node.start_mark,
32 "found unhashable key", key_node.start_mark)
33 value = self.construct_object(value_node, deep=deep)
34 mapping[key] = value
35 return mapping
36 # yaml.constructor.BaseConstructor.construct_mapping = construct_ordered_mapping
37
38 def construct_mapping(self, node, deep=False):
39 return self.construct_ordered_mapping(node, deep=deep)
40
41 def construct_yaml_map_with_ordered_dict(self, node):
42 data = collections.OrderedDict()
43 yield data
44 value = self.construct_mapping(node)
45 data.update(value)
46
47 class Dumper(yaml.dumper.Dumper):
48 """ YAML Dumper producing documents from OrderedDicts """
49
50 def __init__(self, stream, *args, **kwargs):
51 yaml.dumper.Dumper.__init__(self, stream, *args, **kwargs)
52
53 def represent_ordered_mapping(self, tag, mapping, flow_style=None):
54 """ Replacement mapping representer for OrderedDicts """
55 value = []
56 node = yaml.MappingNode(tag, value, flow_style=flow_style)
57 if self.alias_key is not None:
58 self.represented_objects[self.alias_key] = node
59 best_style = True
60 if hasattr(mapping, 'items'):
61 mapping = list(mapping.items())
62 for item_key, item_value in mapping:
63 node_key = self.represent_data(item_key)
64 node_value = self.represent_data(item_value)
65 if not (isinstance(node_key, yaml.ScalarNode) and not node_key.style):
66 best_style = False
67 if not (isinstance(node_value, yaml.ScalarNode) and not node_value.style):
68 best_style = False
69 value.append((node_key, node_value))
70 if flow_style is None:
71 if self.default_flow_style is not None:
72 node.flow_style = self.default_flow_style
73 else:
74 node.flow_style = best_style
75 return node
76 # yaml.representer.BaseRepresenter.represent_mapping = represent_ordered_mapping
77
78 def represent_mapping(self, tag, mapping, flow_style=None):
79 return self.represent_ordered_mapping(tag, mapping, flow_style=flow_style)
80
81 # Loader.add_constructor(
82 # u'tag:yaml.org,2002:map',
83 # Loader.construct_yaml_map_with_ordered_dict
84 # )
85 #
86 # Dumper.add_representer(
87 # collections.OrderedDict,
88 # yaml.representer.SafeRepresenter.represent_dict
89 # )
@@ -1,210 +0,0
1 #!/usr/local/midas/bin/python
2
3 """PrecisionTime.py is a collection of python classes to manipulate times with high
4 precision using integer logic.
5
6 Written by "Bill Rideout":mailto:wrideout@haystack.mit.edu May 24, 2007
7
8 $Id$
9 """
10 import types
11
12 class nsTime:
13 """nsTime is a class to handle times given as UT second (integer) and nanosecond (integer)
14
15 If nanosecond > 1E9, seconds will be added to second
16 """
17
18 def __init__(self, second, nanosecond):
19 self.second = int(second)
20 if self.second < 0:
21 raise ValueError('seconds must be greater than 0, not %i' % (self.second))
22 nanosecond = int(nanosecond)
23 if nanosecond < 0:
24 raise ValueError('nanoseconds must be greater 0, not %i' % (nanosecond))
25 addSec = nanosecond / 1000000000
26 if addSec > 0:
27 self.second += addSec
28 self.nanosecond = nanosecond % 1000000000
29 self.totalNS = int(self.nanosecond) + int(self.second) * 1000000000
30
31
32 def __add__(self, other):
33 """__add__ another nsTime to this one and return a new one as result
34 """
35 nsResult = self.nanosecond + other.nanosecond
36 addSec = int(nsResult / 1000000000)
37 newSec = self.second + other.second + addSec
38 newNS = nsResult % 1000000000
39 return(nsTime(newSec, newNS))
40
41
42 def increase(self, other):
43 """increase adds other to self, changing self (rather than creating a new object)
44 """
45 nsResult = self.nanosecond + other.nanosecond
46 addSec = int(nsResult / 1000000000)
47 self.second = self.second + other.second + addSec
48 self.nanosecond = nsResult % 1000000000
49 self.totalNS = int(self.nanosecond) + int(self.second) * 1000000000
50
51
52 def __sub__(self, other):
53 """__sub__ another nsTime from this one and return a new one as result
54 """
55 nsResult = self.nanosecond - other.nanosecond
56 if nsResult < 0:
57 addSec = 1
58 nsResult += 1000000000
59 else:
60 addSec = 0
61 newSec = (self.second - other.second) - addSec
62 return(nsTime(newSec, nsResult))
63
64
65 def multiply(self, factor):
66 """multiply this nsTime times an integer
67 """
68 if type(factor) not in (int, int):
69 raise ValueError('Illegal type %s passed into nsTime.multiply' % (str(type(factor))))
70 newTotalNS = self.totalNS * factor
71 newSeconds = int(newTotalNS / 1000000000)
72 newNanoseconds = int(newTotalNS - (newSeconds * 1000000000))
73 return(nsTime(newSeconds, newNanoseconds))
74
75
76 def integerDivision(self, other):
77 """integerDivision returns the total number of other nsTimes that fit in self
78 """
79 return(int(self.totalNS / other.totalNS))
80
81 def getUnixTime(self):
82 """ getUnixTime() returns a Unix style time as a float. """
83 return(float(self.second) + float(self.nanosecond)/1.0e9)
84
85 def __mod__(self, other):
86 """__mod__ implements self % other.
87 """
88 if type(other) in (int, int):
89 return self.totalNS % other
90 else:
91 return self.totalNS % other.totalNS
92
93 def __eq__(self, other):
94 """ equality of two nsTime objects """
95 if not (hasattr(other, 'second') and hasattr(other, 'nanosecond')): return False
96 return self.__cmp__(other) == 0
97
98 def __cmp__(self, other):
99 """compare two nsTime objects
100 """
101 result = cmp(self.second, other.second)
102 if result != 0:
103 return(result)
104
105 return(cmp(self.nanosecond, other.nanosecond))
106
107
108 def __str__(self):
109 return '%d.%09d' % (self.second, self.nanosecond)
110
111
112 class psTime:
113 """psTime is a class to handle times given as UT second (integer) and picosecond (integer)
114
115 If picosecond > 1E12, seconds will be added to second
116 """
117
118 def __init__(self, second, picosecond):
119 self.second = int(second)
120 if self.second < 0:
121 raise ValueError('seconds must be greater than 0, not %i' % (self.second))
122 picosecond = int(picosecond)
123 if picosecond < 0:
124 raise ValueError('picoseconds must be greater 0, not %i' % (picosecond))
125 addSec = picosecond / 1000000000000
126 if addSec > 0:
127 self.second += addSec
128 self.picosecond = picosecond % 1000000000000
129 self.totalPS = int(self.picosecond) + int(self.second) * 1000000000000
130
131
132 def __add__(self, other):
133 """__add__ another psTime to this one and return a new one as result
134 """
135 psResult = self.picosecond + other.picosecond
136 addSec = int(psResult / 1000000000000)
137 newSec = self.second + other.second + addSec
138 newPS = psResult % 1000000000000
139 return(psTime(newSec, newPS))
140
141
142 def increase(self, other):
143 """increase adds other to self, changing self (rather than creating a new object)
144 """
145 psResult = self.picosecond + other.picosecond
146 addSec = int(psResult / 1000000000000)
147 self.second = self.second + other.second + addSec
148 self.picosecond = psResult % 1000000000000
149 self.totalPS = int(self.picosecond) + int(self.second) * 1000000000000
150
151
152 def __sub__(self, other):
153 """__sub__ another psTime from this one and return a new one as result
154 """
155 psResult = self.picosecond - other.picosecond
156 if psResult < 0:
157 addSec = 1
158 psResult += 1000000000000
159 else:
160 addSec = 0
161 newSec = (self.second - other.second) - addSec
162 return(psTime(newSec, psResult))
163
164
165 def multiply(self, factor):
166 """multiply this psTime times an integer
167 """
168 if type(factor) not in (int, int):
169 raise ValueError('Illegal type %s passed into psTime.multiply' % (str(type(factor))))
170 newTotalPS = self.totalPS * factor
171 newSeconds = int(newTotalPS / 1000000000000)
172 newPicoseconds = int(newTotalPS - (newSeconds * 1000000000000))
173 return(psTime(newSeconds, newPicoseconds))
174
175
176 def integerDivision(self, other):
177 """integerDivision returns the total number of other psTimes that fit in self
178 """
179 return(int(self.totalPS / other.totalPS))
180
181 def getUnixTime(self):
182 """ getUnixTime() returns a Unix style time as a float. """
183 return(float(self.second) + float(self.picosecond)/1.0e12)
184
185 def __mod__(self, other):
186 """__mod__ implements self % other.
187 """
188 if type(other) in (int, int):
189 return self.totalPS % other
190 else:
191 return self.totalPS % other.totalPS
192
193 def __eq__(self, other):
194 """ equality of two psTime objects """
195 if not (hasattr(other, 'second') and hasattr(other, 'picosecond')): return False
196 return self.__cmp__(other) == 0
197
198 def __cmp__(self, other):
199 """compare two psTime objects
200 """
201 result = cmp(self.second, other.second)
202 if result != 0:
203 return(result)
204
205 return(cmp(self.picosecond, other.picosecond))
206
207
208 def __str__(self):
209 return '%d.%12d' % (self.second, self.picosecond)
210
@@ -1,372 +0,0
1 '''
2 Module containing classes with serialization and de-serialization services.
3
4 $Id$
5 '''
6
7 import Lookup
8 import numpy as np
9 import zlib
10 import binascii
11 import yaml
12 import DynamicObject
13 import DynamicYAML
14 import PrecisionTime
15 import datetime
16 import re
17 import os
18 #import json
19 import jsonpickle
20 import jpickle
21 import h5py
22 import msgpack
23
24 class CompressionException(Exception): pass
25
26 class Serializer:
27 """ Base class for pickle-like serialization
28 of DynamicObjects (with compression available) """
29
30 def __init__(self):
31 pass
32
33 def dump(self, obj, file_name, compression=None):
34 """ Dumps obj to file_name, serializing the obj with toSerial() """
35 string = self.dumps(obj, compression)
36 open(file_name, 'w').write(string)
37
38 def dumps(self, obj, compression=None):
39 """ Returns serialized string representing obj, using toSerial() to serialize """
40 if compression == 'gzip':
41 return zlib.compress(self.toSerial(obj))
42 elif compression in [None, '']:
43 return self.toSerial(obj)
44 else:
45 raise CompressionException("Invalid decompression type '%r'"%(compression,))
46
47 def load(self, file_name, compression=None):
48 """ Returns the Object located in file_name, using fromSerial() to deserialize """
49 string = open(file_name, 'r').read()
50 return self.loads(string, compression)
51
52 def loads(self, string, compression=None):
53 """ Returns the Object serialized as the given string """
54 if compression == 'gzip':
55 return self.fromSerial(zlib.decompress(string))
56 elif compression in [None, '']:
57 return self.fromSerial(string)
58 else:
59 raise CompressionException("Invalid compression type '%r'"%(compression,))
60
61 def fromSerial(self, string):
62 """ Deserializes the given string """
63 return string
64
65 def toSerial(self, obj):
66 """ Serializes the given object """
67 return repr(obj)
68
69 class YAMLSerializer(Serializer):
70 """ Serializes a Object to/from YAML format """
71
72 def __init__(self):
73 Serializer.__init__(self)
74
75 def fromSerial(self, string):
76 loader = DynamicYAML.Loader
77 return yaml.load(string, Loader=loader)
78
79 def toSerial(self, obj):
80 dumper = DynamicYAML.Dumper
81 return yaml.dump(obj, Dumper=dumper)
82
83 # Regular expression taken from yaml.constructor.py
84 timestamp_regexp_str = str(\
85 r'^(?P<year>[0-9][0-9][0-9][0-9])'
86 r'-(?P<month>[0-9][0-9]?)'
87 r'-(?P<day>[0-9][0-9]?)'
88 r'(?:(?:[Tt]|[ \t]+)'
89 r'(?P<hour>[0-9][0-9]?)'
90 r':(?P<minute>[0-9][0-9])'
91 r':(?P<second>[0-9][0-9])'
92 r'(?:\.(?P<fraction>[0-9]*))?'
93 r'(?:[ \t]*(?P<tz>Z|(?P<tz_sign>[-+])(?P<tz_hour>[0-9][0-9]?)'
94 r'(?::(?P<tz_minute>[0-9][0-9]))?))?)?$')
95 timestamp_regexp = re.compile(timestamp_regexp_str, re.X)
96
97 def construct_timestamp(value):
98 """ Taken & modified from yaml.constructor.py """
99
100 match = timestamp_regexp.match(value)
101 #print "&%s&"%(value,)
102 #print timestamp_regexp_str
103 values = match.groupdict()
104 year = int(values['year'])
105 month = int(values['month'])
106 day = int(values['day'])
107 if not values['hour']:
108 return datetime.date(year, month, day)
109 hour = int(values['hour'])
110 minute = int(values['minute'])
111 second = int(values['second'])
112 fraction = 0
113 if values['fraction']:
114 fraction = values['fraction'][:6]
115 while len(fraction) < 6:
116 fraction += '0'
117 fraction = int(fraction)
118 delta = None
119 if values['tz_sign']:
120 tz_hour = int(values['tz_hour'])
121 tz_minute = int(values['tz_minute'] or 0)
122 delta = datetime.timedelta(hours=tz_hour, minutes=tz_minute)
123 if values['tz_sign'] == '-':
124 delta = -delta
125 data = datetime.datetime(year, month, day, hour, minute, second, fraction)
126 if delta:
127 data -= delta
128 return data
129
130 class MessagePackSerializer(Serializer):
131 """ Serializes a Object to/from MessagePack format """
132
133 def __fromSerial(self, msg_dict):
134 if not isinstance(msg_dict, (dict, list, tuple)):
135 return msg_dict # msg_dict is a value - return it
136 if isinstance(msg_dict, dict) and '__meta_attributes' in msg_dict:
137 meta_attr = msg_dict['__meta_attributes']
138 msg_dict.pop('__meta_attributes')
139 if 'type' in meta_attr:
140 if meta_attr['type'] == 'datetime':
141 return construct_timestamp(str(msg_dict['ts']))
142 elif meta_attr['type'] == 'nsTime':
143 msg_dict.pop('totalNS')
144 elif meta_attr['type'] == 'psTime':
145 msg_dict.pop('totalPS')
146 try: dtype = Lookup.cls_dtypes[meta_attr['type']]
147 except KeyError: dtype = Lookup.builtin_objects[meta_attr['type']]
148 return dtype(**msg_dict)
149 else:
150 for key in list(msg_dict.keys()):
151 msg_dict[key] = self.__fromSerial(msg_dict[key])
152 cls = Lookup.dynamicClasses['%s.%s'%(meta_attr['__object_name'],meta_attr['__revision_number'])]
153 return cls(**msg_dict)
154 elif msg_dict == ():
155 return []
156 elif isinstance(msg_dict[0], str) and msg_dict[1] in Lookup.numpy_dtypes and\
157 isinstance(msg_dict, tuple) and len(msg_dict) == 2:
158 value = binascii.unhexlify(msg_dict[0])
159 return np.frombuffer(value, dtype=Lookup.numpy_dtypes[msg_dict[1]])[0]
160
161 tup = isinstance(msg_dict, tuple)
162 if tup and len(msg_dict) > 1 and msg_dict[0] in list(Lookup.numpy_dtypes.keys()):
163 msg_flat = list(msg_dict)
164 dtypeName = msg_flat.pop(0)
165 dtype = Lookup.numpy_dtypes[dtypeName]
166 shape = msg_flat.pop(0)
167 obj = np.empty(shape, dtype=dtype)
168 np_flat = obj.flat
169 for i in range(len(np_flat)):
170 if isinstance(msg_flat[i], float):
171 value = msg_flat[i]
172 else:
173 value = self.__fromSerial((msg_flat[i], dtypeName))
174 np_flat[i] = value
175 return obj
176 else:
177 return msg_dict
178
179 def fromSerial(self, string):
180 msg_dict = msgpack.unpackb(string)
181 return self.__fromSerial(msg_dict)
182
183 def __toSerial(self, obj):
184
185 if isinstance(obj, (PrecisionTime.nsTime, PrecisionTime.psTime, DynamicObject.Binary, datetime.datetime)):
186 msg_dict = {}
187 if isinstance(obj, datetime.datetime):
188 msg_dict['ts'] = obj.isoformat(' ')
189 else:
190 msg_dict.update(obj.__dict__)
191 msg_dict['__meta_attributes'] = {'type': obj.__class__.__name__}
192 return msg_dict
193 elif isinstance(obj, DynamicObject.Object):
194 msg_dict = {}
195 for key, value in list(obj.__dict__.items()):
196 msg_dict[key] = self.__toSerial(value)
197
198 msg_dict['__meta_attributes'] = obj.__class__.meta_attributes
199 return msg_dict
200 elif isinstance(obj, np.ndarray):
201 np_flat = obj.flat
202 msg_flat = []
203 msg_flat.append(Lookup.cls_dtypes[obj.dtype.type]) # dtype is first element
204 msg_flat.append(obj.shape) # shape of array is second element
205 for i in range(len(np_flat)):
206 toSer = self.__toSerial(np_flat[i])
207 if isinstance(toSer, tuple):
208 msg_flat.append(toSer[0])
209 else:
210 msg_flat.append(toSer)
211 return list(msg_flat)
212
213 is_builtin = obj.__class__ in list(Lookup.numpy_dtypes.values())
214 #is_python = isinstance(obj, Lookup.python_dtypes)
215 if is_builtin: # and not is_python:
216 try:
217 #print obj.__class__
218 msg_dict = (binascii.hexlify(obj), Lookup.cls_dtypes[obj.__class__])
219 return msg_dict
220 except TypeError: # numpy dtype is a built-in python type... force the hexlify:
221 if not Lookup.bit32:
222 if obj.__class__ == int: return (binascii.hexlify(np.int64(obj)), 'dtype.int64')
223 elif obj.__class__ == float: return (binascii.hexlify(np.float64(obj)), 'dtype.float64')
224 else:
225 #print np.int32(obj).__class__, obj.__class__
226 if obj.__class__ == int: return (binascii.hexlify(np.int32(obj)), 'dtype.int32')
227 elif obj.__class__ == float: return (binascii.hexlify(np.float32(obj)), 'dtype.float32')
228 raise
229 else:
230 return obj
231
232 def toSerial(self, obj):
233 #if Lookup.bit32 and np.int32 != np.int: np.int32 = np.int
234 toSer = self.__toSerial(obj)
235 #print toSer
236 value = msgpack.packb(toSer)
237 return value
238
239 class HDF5Serializer(Serializer):
240 """ Serializes a Object to/from HDF5 format """
241
242 tmp_num = 0
243
244 def __fromSerial(self, grp):
245
246 if isinstance(grp, h5py.Dataset):
247 return grp.value
248
249 elif isinstance(grp, h5py.Group) and '__type' in list(grp.keys()):
250 typ = grp['__type'].value
251 if typ == 'datetime':
252 return construct_timestamp(str(grp['ts'].value))
253 elif typ == '_null':
254 return None
255 elif typ == 'tuple':
256 return tuple(grp['tuple'])
257 elif typ == 'empty_list':
258 return []
259 try: cls = Lookup.builtin_objects_simple[typ]
260 except KeyError: cls = Lookup.dynamicClasses[typ]
261 args = []
262 for key in list(grp.keys()):
263 fromSer = self.__fromSerial(grp[key])
264 args.append((key, fromSer))
265 kwargs = dict(args)
266 kwargs.pop('__type')
267 return cls(**kwargs)
268 #else:
269 # return grp.value
270
271
272 def fromSerial(self, string):
273 HDF5Serializer.tmp_num += 1
274 fn = 'tmp%d.hdf5'%(HDF5Serializer.tmp_num-1,)
275 fp = open(fn, 'wb')
276 fp.write(string)
277 fp.flush(), fp.close()
278
279 root = h5py.File(fn, driver='core')
280 try:
281 fromSer = self.__fromSerial(root['dataset'])
282 except:
283 root.flush(), root.close()
284 os.remove(fn)
285 raise
286
287 root.flush(), root.close()
288 os.remove(fn)
289
290 return fromSer
291
292 def __toSerial(self, obj, grp, name):
293
294 if isinstance(obj, datetime.datetime):
295 sub_grp = grp.create_group(name)
296 sub_grp['__type'] = 'datetime'
297 sub_grp['ts'] = obj.isoformat(' ')
298
299 elif isinstance(obj, tuple(Lookup.builtin_objects_simple.values())):
300 sub_grp = grp.create_group(name)
301 sub_grp['__type'] = Lookup.obj_dtypes[obj.__class__]
302 for key, value in list(obj.__dict__.items()):
303 if value != None and key not in ['totalNS', 'totalPS']:
304 sub_grp[key] = value
305
306 elif obj == None:
307 sub_grp = grp.create_group(name)
308 sub_grp['__type'] = '_null'
309
310 elif isinstance(obj, DynamicObject.Object):
311 # Create the new group and assign unique identifier for this type of DynamicObject
312 sub_grp = grp.create_group(name)
313 tag = '%s.%s'%(obj.getObjectName(), obj.getRevisionNumber())
314 sub_grp['__type'] = tag
315 # Put all of the DynamicObject's attributes into the new h5py group
316 for key, value in list(obj.__dict__.items()):
317 self.__toSerial(value, sub_grp, key)
318
319 elif isinstance(obj, tuple):
320 sub_grp = grp.create_group(name)
321 sub_grp['__type'] = 'tuple'
322 sub_grp['tuple'] = obj
323
324 elif isinstance(obj, list) and len(obj) == 0:
325 sub_grp = grp.create_group(name)
326 sub_grp['__type'] = 'empty_list'
327
328 else:
329 grp[name] = obj
330
331 def toSerial(self, obj):
332 HDF5Serializer.tmp_num += 1
333 fn = 'tmp%d.hdf5'%(HDF5Serializer.tmp_num,)
334 root = h5py.File(fn, driver='core')
335 try:
336 self.__toSerial(obj, root, 'dataset')
337 except:
338 root.flush(), root.close()
339 os.remove(fn)
340 raise
341 root.flush(), root.close()
342
343 fp = open(fn, 'rb')
344 msg = fp.read()
345 fp.close()
346 os.remove(fn)
347
348 return msg
349
350 # Alias for the standard json serializer:
351 class jsonSerializer(Serializer):
352 def fromSerial(self, string):
353 #return json.loads(string)
354 return jsonpickle.decode(string)
355 def toSerial(self, string):
356 #return json.dumps(string)
357 return jsonpickle.encode(string, max_depth=500)
358
359 # Dict mapping from .serializer type to corresponding class object:
360 serializers = {'yaml': YAMLSerializer,
361 'msgpack': MessagePackSerializer,
362 'hdf5': HDF5Serializer,
363 'json': jsonSerializer}
364
365 instances = {'yaml': YAMLSerializer(),
366 'msgpack': MessagePackSerializer(),
367 'hdf5': HDF5Serializer(),
368 'json': jsonSerializer()}
369
370 serial_types = dict([(v,u) for u,v in list(serializers.items())])
371
372 compression_types = ['gzip', '']
1 NO CONTENT: file was removed
@@ -1,186 +0,0
1
2 #
3 # when Serializer is imported alone, fault indicates this package is
4 # dependent on lookup, but don't import Lookup, instead:
5 #
6 import DynamicObject # dependent on pysvn
7 import Serializer # dependent on Dynamic Object
8
9 import msgpack
10 import redis
11
12 import numpy as np
13
14 class NamedObject():
15
16 #---------------------------------------------
17 @staticmethod
18 def indexListMatch(list_of_lists, name, value, name2=None, value2=None, unique_f=False):
19 #
20 # for each list's <element> attribute compare with value
21 # if match, return True plus list
22 # else return False plus empty list
23 #
24 # search needs to be named part of class for object else .<value> is unrecognized
25 #
26 # unique_f finds non-uniqueness
27
28
29 index = [] # return empty indices
30 list_data = [] # return empty list
31 ii = 0
32 for theList in list_of_lists:
33
34 cmd0 = "theList.%s == value" % (name)
35 cmd1 = "isInlist(theList.%s,value)" % name
36 # if name is valid then
37 # match name against value
38 # match name (as list) against value
39 if (eval(cmd0) or eval(cmd1)):
40 if (name2 != None):
41 cmd2 = "theList.%s == value2" % name2
42 cmd3 = "isInlist(theList.%s,value2)" % name2
43 if (eval(cmd2) or eval(cmd3)):
44 if (unique_f):
45 index = index + [ii]
46 list_data = list_data + [theList] # save list of lists if non-unique
47 # don't exit on match, may be non-unique
48 else:
49 list_data = theList # save the list
50 index = [ii]
51 break
52 else:
53 if (unique_f):
54 index = index + [ii]
55 list_data = list_data + [theList] # list of lists if non-unique
56 else:
57 list_data = theList
58 index = [ii]
59 break # exit on match
60 #endif
61 ii = ii + 1
62 #end for
63
64 return index, list_data # return indices of matches and list (or list of lists)
65
66 #end indexListMatch
67
68 #---------------------------------------------
69 @staticmethod
70 def namedListMatch(list_of_lists, name, value, name2=None, value2=None, unique_f=None):
71 #
72 # for each list's <element> attribute compare with value
73 # if match, return True plus list
74 # else return False plus empty list
75 #
76 # search needs to be named part of class for object else .<value> is unrecognized
77 #
78 # unique_f finds non-uniqueness ('None' is same as False)
79
80 match_f = False
81 list_data = [] # initialize
82
83 for theList in list_of_lists:
84
85 cmd0 = "theList.%s == value" % (name)
86 cmd1 = "isInlist(theList.%s,value)" % name
87 # if name is valid then
88 # match name against value
89 # match name (as list) against value
90 if (eval(cmd0) or eval(cmd1)):
91 if (name2 != None):
92 cmd2 = "theList.%s == value2" % name2
93 cmd3 = "isInlist(theList.%s,value2)" % name2
94 if (eval(cmd2) or eval(cmd3)):
95 match_f = True
96 if (unique_f):
97 list_data = list_data + [theList] # save list of lists if non-unique
98 # don't exit on match, may be non-unique
99 else:
100 list_data = theList # save the list
101 break
102 else:
103 match_f = True
104 if (unique_f):
105 list_data = list_data + [theList] # list of lists if non-unique
106 else:
107 list_data = theList
108 break # exit on match
109 #endif
110 #end for
111
112 return match_f, list_data # return match, and list (or list of lists)
113
114 #end namedListMatch
115
116 #---------------------------------------------
117 @staticmethod
118 def combineLists(object):
119 #
120 # used for dumping elements in list of lists for debugging
121 #
122 ret_list =[]
123 ii = 0
124 while ii < len(object):
125 ret_list = ret_list + [object[ii].list] # not a real list, so can't use built-in list iterator
126 ii = ii + 1
127 return ret_list
128
129 # end combineLists
130
131
132
133 class StateListObject(NamedObject):
134 def __init__(self, concurrent=None, hierarchical=None, history=None, state=None):
135 self.concurrent = concurrent
136 self.hierarchical = hierarchical
137 self.history = history
138 self.state = state
139 self.list = [self.concurrent, self.hierarchical, self.history, self.state ]
140 #end class StateListObject
141
142 source_object = "my test string"
143
144 serializer = "yaml"
145 #
146 # python versioning issue (ver 2.7 -> else path)
147 #
148 if isinstance(serializer,Serializer.Serializer):
149 serial_type = Serializer.serial_types[serializer]
150 else:
151 serial_type = serializer
152 serializer = Serializer.serializers[serializer]()
153
154
155
156 datastr = serializer.toSerial(source_object)
157
158 dest_object = serializer.fromSerial(datastr)
159
160 print("dest_object=",dest_object)
161
162 myObject = StateListObject(hierarchical="yes",state=np.array([1,2,3.0]))
163
164 datastr = serializer.toSerial(myObject)
165
166 packed = msgpack.packb(datastr)
167
168 try:
169 r= redis.StrictRedis(host='localhost',port=6379,db=0)
170 except Exception as eobj:
171 print("is the redis server running?",eobj)
172 else:
173
174 r.set('baz',packed) # converts to string
175 x = r.get('baz')
176
177 unpacked = msgpack.unpackb(x)
178
179 dest_object = serializer.fromSerial(unpacked)
180
181 print("val1=",dest_object.hierarchical)
182 val2 = dest_object.state
183 print("val2=",val2)
184 # can numpy array be used as array?
185 print(val2.shape)
186
@@ -1,175 +0,0
1 '''
2 Created on Jul 16, 2014
3
4 @author: roj-idl71
5 '''
6 """
7 Dependencies:
8
9 pip install tabulate simplejson python-cjson ujson yajl msgpack-python
10
11 """
12
13 from timeit import timeit
14 from tabulate import tabulate
15
16 setup = '''d = {
17 'words': """
18 Lorem ipsum dolor sit amet, consectetur adipiscing
19 elit. Mauris adipiscing adipiscing placerat.
20 Vestibulum augue augue,
21 pellentesque quis sollicitudin id, adipiscing.
22 """,
23 'boolean' : False,
24 'list': range(10),
25 'dict': dict((str(i),'a') for i in xrange(10)),
26 'int': 100,
27 'float': 100.123456,
28 }'''
29
30 setup = '''import numpy;
31 import datetime;
32 d = {
33 'words': """
34 Lorem ipsum dolor sit amet, consectetur adipiscing
35 elit. Mauris adipiscing adipiscing placerat.
36 Vestibulum augue augue,
37 pellentesque quis sollicitudin id, adipiscing.
38 """,
39 'boolean' : False,
40 'list': range(10),
41 'dict': dict((str(i),'a') for i in xrange(10)),
42 'int': 100,
43 'float': 100.123456,
44 'datetime' : datetime.datetime(2001,1,1,10,10,10)
45 }'''
46
47
48 setup_pickle = '%s ; import pickle ; src = pickle.dumps(d)' % setup
49 setup_pickle2 = '%s ; import pickle ; src = pickle.dumps(d, 2)' % setup
50 setup_cpickle = '%s ; import cPickle ; src = cPickle.dumps(d)' % setup
51 setup_cpickle2 = '%s ; import cPickle ; src = cPickle.dumps(d, 2)' % setup
52 setup_json = '%s ; import json; src = json.dumps(d)' % setup
53 setup_ujson = '%s ; import ujson; src = ujson.encode(d)' % setup
54 setup_cjson = '%s ; import cjson; src = cjson.encode(d)' % setup
55 setup_simplejson = '%s ; import simplejson; src = simplejson.dump(d)' % setup
56 setup_jsonpickle = '%s ; import jsonpickle; src = jsonpickle.encode(d)' % setup
57 setup_yaml = '%s ; import yaml; src = yaml.dump(d)' % setup
58 setup_msgpack = '%s ; import msgpack; src = msgpack.dumps(d)' % setup
59 setup_msgpack_np = '%s; import msgpack_numpy as msgpack; src = msgpack.dumps(d)' % setup
60
61 tests = [
62 # (title, setup, enc_test, dec_test, result)
63 ('cPickle (binary)', 'import cPickle; %s' % setup_cpickle2, 'cPickle.dumps(d, 2)', 'r = cPickle.loads(src)', 'print r'),
64 ('cPickle (ascii)', 'import cPickle; %s' % setup_cpickle, 'cPickle.dumps(d, 0)', 'r = cPickle.loads(src)', 'print r'),
65 ('pickle (binary)', 'import pickle; %s' % setup_pickle2, 'pickle.dumps(d, 2)', 'r = pickle.loads(src)', 'print r'),
66 ('pickle (ascii)', 'import pickle; %s' % setup_pickle, 'pickle.dumps(d, 0)', 'r = pickle.loads(src)', 'print r'),
67 ('jsonpickle', 'import jsonpickle; %s' % setup_jsonpickle, 'jsonpickle.encode(d)', 'r = jsonpickle.decode(src)', 'print r'),
68 # ('msgpack-numpy-python', '%s' % setup_msgpack_np, 'msgpack.dumps(d)', 'r = msgpack.loads(src)', 'print r'),
69 ('ujson', 'import ujson; %s' % setup_ujson, 'ujson.encode(d)', 'r = ujson.decode(src)', 'print r'),
70 # ('msgpack-python', 'import msgpack; %s' % setup_msgpack, 'msgpack.dumps(d)', 'r = msgpack.loads(src)', 'print r'),
71 # ('json', 'import json; %s' % setup_json, 'json.dumps(d)', 'r = json.loads(src)', 'print r'),
72 # ('python-cjson-1.0.5', 'import cjson; %s' % setup_cjson, 'cjson.encode(d)', 'r = cjson.decode(src)', 'print r'),
73 # ('simplejson-3.3.1', 'import simplejson; %s' % setup_json, 'simplejson.dumps(d)', 'r = simplejson.loads(src)', 'print r'),
74 ('yaml', 'import yaml; %s' % setup_yaml, 'yaml.dump(d)', 'r = yaml.load(src)', 'print r'),
75 ]
76
77 loops = 1
78 enc_table = []
79 dec_table = []
80
81 print "Running tests (%d loops each)" % loops
82
83 for title, mod, enc, dec, msg in tests:
84 print title
85
86 ### Getting the package size
87 exec mod
88 size = len("".join(src))
89
90 print " [Encode]", enc
91 result = timeit(enc, mod, number=loops)
92 enc_table.append([title, result, size])
93
94 print " [Decode]", dec
95 result = timeit(dec, mod, number=loops)
96 dec_table.append([title, result])
97
98 print " Result"
99 result = timeit(msg, mod+';'+dec, number=1)
100
101 enc_table.sort(key=lambda x: x[1])
102 enc_table.insert(0, ['Package', 'Seconds', 'Size'])
103
104 dec_table.sort(key=lambda x: x[1])
105 dec_table.insert(0, ['Package', 'Seconds'])
106
107 print "\nEncoding Test (%d loops)" % loops
108 print tabulate(enc_table, headers="firstrow")
109
110 print "\nDecoding Test (%d loops)" % loops
111 print tabulate(dec_table, headers="firstrow")
112
113 """
114 OUTPUT:
115
116 Running tests (15000 loops each)
117 pickle (ascii)
118 [Encode] pickle.dumps(d, 0)
119 [Decode] pickle.loads(src)
120 pickle (binary)
121 [Encode] pickle.dumps(d, 2)
122 [Decode] pickle.loads(src)
123 cPickle (ascii)
124 [Encode] cPickle.dumps(d, 0)
125 [Decode] cPickle.loads(src)
126 cPickle (binary)
127 [Encode] cPickle.dumps(d, 2)
128 [Decode] cPickle.loads(src)
129 json
130 [Encode] json.dumps(d)
131 [Decode] json.loads(src)
132 simplejson-3.3.1
133 [Encode] simplejson.dumps(d)
134 [Decode] simplejson.loads(src)
135 python-cjson-1.0.5
136 [Encode] cjson.encode(d)
137 [Decode] cjson.decode(src)
138 ujson-1.33
139 [Encode] ujson.dumps(d)
140 [Decode] ujson.loads(src)
141 yajl 0.3.5
142 [Encode] yajl.dumps(d)
143 [Decode] yajl.loads(src)
144 msgpack-python-0.3.0
145 [Encode] msgpack.dumps(d)
146 [Decode] msgpack.loads(src)
147
148 Encoding Test (15000 loops)
149 Package Seconds
150 -------------------- ---------
151 ujson-1.33 0.232215
152 msgpack-python-0.3.0 0.241945
153 cPickle (binary) 0.305273
154 yajl 0.3.5 0.634148
155 python-cjson-1.0.5 0.680604
156 json 0.780438
157 simplejson-3.3.1 1.04763
158 cPickle (ascii) 1.62062
159 pickle (ascii) 14.0497
160 pickle (binary) 15.4712
161
162 Decoding Test (15000 loops)
163 Package Seconds
164 -------------------- ---------
165 msgpack-python-0.3.0 0.240885
166 cPickle (binary) 0.393152
167 ujson-1.33 0.396875
168 python-cjson-1.0.5 0.694321
169 yajl 0.3.5 0.748369
170 simplejson-3.3.1 0.780531
171 cPickle (ascii) 1.38561
172 json 1.65921
173 pickle (binary) 5.20554
174 pickle (ascii) 17.8767
175 """ No newline at end of file
@@ -1,11 +0,0
1 #Use this script in order to find the slowest module or function in your python code.
2 #Reference: http://lukauskas.co.uk/articles/2014/02/12/how-to-make-python-faster-without-trying-that-much/
3
4 #!/bin/sh
5
6 script = "testRawData.py"
7 output = "profile.pdf"
8
9 python -m cProfile -o profile.pstats $script
10
11 gprof2dot -f pstats profile.pstats | dot -Tpdf -o $output No newline at end of file
@@ -1,147 +0,0
1 '''
2 Created on Jul 11, 2014
3
4 @author: roj-idl71
5 '''
6 import time
7 from gevent import sleep
8
9 import zerorpc
10 from schainpy.model import *
11 from schainpy.serializer.DataTranslate import serial2Obj, serial2Dict
12 # import schainpy.model.io.jroIO_usrp
13
14 def createObjVolt():
15 '''
16 This function creates a processing object "VoltProc" with some operations.
17 such as: "CohInt", "Scope", etc
18 These class are found inside schainpy.model.proc and schainpy.model.graphics
19 '''
20 procObj = VoltageProc()
21
22 opObj = CohInt()
23 procObj.addOperation(opObj, 1)
24
25 opObj = Scope()
26 procObj.addOperation(opObj, 2)
27
28 return procObj
29
30 def createObjSpec():
31 '''
32 This function creates a processing object "SpecProc" with some operation objects
33 such as: "IncohInt", "SpectraPlot", "RTIPlot", etc
34 These class are found inside schainpy.model.proc and schainpy.model.graphics
35 '''
36
37 procObj = SpectraProc()
38
39 opObj = IncohInt()
40 procObj.addOperation(opObj, objId = 1)
41
42 opObj = SpectraPlot()
43 procObj.addOperation(opObj, objId = 2)
44
45 opObj = RTIPlot()
46 procObj.addOperation(opObj, objId = 3)
47
48 opObj = SpectraPlot()
49 procObj.addOperation(opObj, objId = 4)
50
51 opObj = RTIPlot()
52 procObj.addOperation(opObj, objId = 5)
53
54 return procObj
55
56 def processingSpec(procObj, dataInObj):
57
58 procObj.setInput(dataInObj)
59 procObj.run(nFFTPoints = 16)
60
61 procObj.call(opType = "external",
62 opId = 1,
63 n=1)
64
65 procObj.call(opType = "external",
66 opId = 2,
67 id=191,
68 zmin=-100,
69 zmax=-40)
70
71 procObj.call(opType = "external",
72 opId = 3,
73 id=192,
74 zmin=-100,
75 zmax=-40,
76 timerange=10*60)
77
78 # procObj.call(opType = "self",
79 # opName = "selectChannels",
80 # channelList = [0,1])
81 #
82 # procObj.call(opType = "self",
83 # opName = "selectHeights",
84 # minHei = 300,
85 # maxHei = 400)
86 #
87 # procObj.call(opType = "external",
88 # opId = 4,
89 # id=193,
90 # zmin=-100,
91 # zmax=-40)
92 #
93 # procObj.call(opType = "external",
94 # opId = 5,
95 # id=194,
96 # zmin=-100,
97 # zmax=-40,
98 # timerange=10*60)
99
100 def printSpeed(deltaTime, mySerial):
101
102 ####################
103 size = len(mySerial)/1024.
104 vel = 1.0*size / deltaTime
105
106 print("Index [", replayerObj.getProfileIndex(), "]: ", end=' ')
107 print("Total time %5.2f ms, Data size %5.2f KB, Speed %5.2f MB/s" %(deltaTime, size, vel))
108 ####################
109
110 if __name__ == '__main__':
111
112 procObj = createObjSpec()
113
114 replayerObj = zerorpc.Client()
115 replayerObj.connect("tcp://127.0.0.1:4242")
116
117 serializer = replayerObj.getSerializer()
118
119 ini = time.time()
120 mySerialMetadata = replayerObj.getSerialMetaData()
121 deltaTime = (time.time() - ini)*1024
122
123 printSpeed(deltaTime, mySerialMetadata)
124
125 myMetaDict = serial2Dict(mySerialMetadata,
126 serializer = serializer)
127 # print myMetaDict
128 while True:
129 ini = time.time()
130 mySerialData = replayerObj.getSerialData()
131 deltaTime = (time.time() - ini)*1024
132
133 if not mySerialData:
134 print("No more data")
135 break
136
137 # myDataDict = SERIALIZER.loads(mySerialData)
138 # print myDataDict
139 # continue
140
141 printSpeed(deltaTime, mySerialData)
142
143 dataInObj = serial2Obj(mySerialData,
144 metadataDict=myMetaDict,
145 serializer = serializer)
146 processingSpec(procObj, dataInObj)
147 sleep(1e-1) No newline at end of file
@@ -1,13 +0,0
1 '''
2 Created on Jul 11, 2014
3
4 @author: roj-idl71
5 '''
6
7 import zerorpc
8
9 if __name__ == '__main__':
10 c = zerorpc.Client()
11 c.connect("tcp://127.0.0.1:4242")
12 c.load("file2") # AAAHH! The previously loaded model gets overwritten here!
13 print(c.getModelName()) No newline at end of file
@@ -1,33 +0,0
1 '''
2 Created on Jul 11, 2014
3
4 @author: roj-idl71
5 '''
6 # import sys
7 import datetime
8 import zerorpc
9
10 from schainpy.model.io.jrodataIO import USRPReaderAPI
11 # from schainpy.serializer.DataTranslate import serial2Obj
12
13 if __name__ == '__main__':
14
15 replayerObj = USRPReaderAPI(serializer='msgpack')
16
17 replayerObj.setup(path='/Volumes/DATA/haystack/passive_radar/',
18 startDate=datetime.date(2000,1,1),
19 endDate=datetime.date(2015,1,1),
20 startTime=datetime.time(0,0,0),
21 endTime=datetime.time(23,59,59),
22 online=1,
23 nSamples=500,
24 channelList = [0,1,2,3,4,5,6,7])
25
26 replayerObj.start()
27
28 print("Initializing 'zerorpc' server")
29 s = zerorpc.Server(replayerObj)
30 s.bind("tcp://0.0.0.0:4242")
31 s.run()
32
33 print("End") No newline at end of file
1 NO CONTENT: file was removed
@@ -1,177 +0,0
1 '''
2 Created on Jul 15, 2014
3
4 @author: roj-idl71
5 '''
6
7 import sys
8 import yaml
9 import numpy
10 import jsonpickle
11
12 # import schainpy.serializer.DynamicSerializer as DynamicSerializer
13
14
15
16 def isNotClassVar(myObj):
17
18 return not hasattr(myObj,'__dict__')
19
20 def isDictFormat(thisValue):
21
22 if type(thisValue) != type({}):
23 return False
24
25 if '__name__' not in list(thisValue.keys()):
26 return False
27
28 return True
29
30 def obj2Dict(myObj):
31
32 myDict = {}
33
34 myDict['__name__'] = myObj.__class__.__name__
35
36 for thisKey, thisValue in list(myObj.__dict__.items()):
37
38 if isNotClassVar(thisValue):
39 myDict[thisKey] = thisValue
40 continue
41
42 ## If this value is another class instance
43 myNewDict = obj2Dict(thisValue)
44 myDict[thisKey] = myNewDict
45
46 return myDict
47
48 def dict2Obj(myDict):
49 '''
50 '''
51
52 if '__name__' not in list(myDict.keys()):
53 return None
54
55 className = eval(myDict['__name__'])
56
57 myObj = className()
58
59 for thisKey, thisValue in list(myDict.items()):
60
61 if thisKey == '__name__':
62 continue
63
64 if not isDictFormat(thisValue):
65 setattr(myObj, thisKey, thisValue)
66 continue
67
68 myNewObj = dict2Obj(thisValue)
69 setattr(myObj, thisKey, myNewObj)
70
71 return myObj
72
73 class myTestClass3(object):
74
75 def __init__(self):
76 '''
77 '''
78 self.y1 = 'y1'
79 self.y2 = 'y2'
80
81 class myTestClass2(object):
82
83 def __init__(self):
84 '''
85 '''
86 self.x1 = 'x1'
87 self.x2 = 'x2'
88 self.otherObj = myTestClass3()
89
90
91 class myTestClass(object):
92
93 flagNoData = True
94 value1 = 1
95 value2 = 2
96 myObj = None
97
98 def __init__(self):
99
100 '''
101 '''
102 self.flagNoData = True
103 self.value1 = 1
104 self.value2 = 2
105 self.myObj = myTestClass2()
106
107 def get_dtype(self):
108
109 '''
110 '''
111 return self.value1
112
113 def set_dtype(self, value):
114
115 '''
116 '''
117
118 self.value1 = value
119
120 dtype = property(get_dtype, set_dtype)
121
122 def myMsgPackTest():
123
124 import msgpack
125 import msgpack_numpy as m
126 import numpy as np
127
128 x = np.random.rand(5)
129 x_enc = m.encode(x)
130 x_rec = m.decode(x_enc)
131
132 print(x_rec)
133 #
134 # x_enc = msgpack.packb(x, default=m.encoder)
135 # x_rec = msgpack.unpackb(x_enc, object_hook=m.decoder)
136
137 if __name__ == '__main__':
138
139 myMsgPackTest()
140
141 sys.exit()
142
143 serializerObj = DynamicSerializer.DynamicSerializer('json')
144 serializerObj = jsonpickle
145
146 myTestObj = myTestClass()
147
148 myTestObj.flagNoData = False
149 myTestObj.value1 = [1+3.4j,4,'5',]
150 myTestObj.value2 = {'x2': numpy.complex(1,2),'x1': 'x1'}
151 # myTestObj.myObj.x2 = numpy.arange(15, dtype=numpy.complex)
152
153 myDict = obj2Dict(myTestObj)
154
155 myNewObj = dict2Obj(myDict)
156
157 # print myDict
158 # print myTestObj.__dict__
159 # print myNewObj.__dict__
160
161 # sys.exit()
162 print(myDict)
163
164 newSerial = serializerObj.encode(myDict)
165 # print newSerial
166
167 newDict = serializerObj.decode(newSerial)
168 print(newDict)
169
170 myNewObj = dict2Obj(newDict)
171
172 print()
173 print()
174 print(50*'###')
175 print(myTestObj.__dict__)
176 print(myNewObj.__dict__)
177 No newline at end of file
@@ -1,46 +0,0
1 '''
2 Created on Jul 15, 2014
3
4 @author: roj-idl71
5 '''
6
7 import sys
8 import pickle
9
10 from schainpy.model.data.jrodata import Voltage
11 # from schainpy.model.io.jrodataIO import USRPReaderMP
12 from schainpy.serializer.DynamicSerializer import DynamicSerializer
13 from schainpy.serializer.DataTranslate import obj2Dict, dict2Obj
14
15
16 if __name__ == "__main__":
17
18 serializerObj = DynamicSerializer('yaml')
19
20 myTestObj = Voltage()
21
22 myDict = obj2Dict(myTestObj)
23
24 myNewObj = dict2Obj(myDict)
25
26 # print myDict
27 # print myTestObj.__dict__
28 # print myNewObj.__dict__
29 #
30 # print
31 # print '#############################'
32 # print
33 # newValue = serializerObj.dumps(myDict)
34 # print newValue
35 #
36 # newValue = serializerObj.loads(newValue)
37 # print newValue
38
39
40 print('###########CPICKLE##################')
41 print(myDict)
42 newSerialized = pickle.dumps(myDict, 2)
43 # print newValue
44
45 newDict = pickle.loads(newSerialized)
46 print(newDict) No newline at end of file
General Comments 0
You need to be logged in to leave comments. Login now