##// END OF EJS Templates
Signal Chain GUI v2.1
Miguel Valdez -
r596:bf27846f03e1
parent child
Show More

The requested changes are too big and content was truncated. Show full diff

@@ -50,6 +50,13 class ParameterConf():
50
50
51 value = self.value
51 value = self.value
52
52
53 if self.format == 'str':
54 self.__formated_value = str(value)
55 return self.__formated_value
56
57 if value == '':
58 raise ValueError, "%s: This parameter value is empty" %self.name
59
53 if self.format == 'bool':
60 if self.format == 'bool':
54 value = int(value)
61 value = int(value)
55
62
@@ -65,14 +72,7 class ParameterConf():
65 Example:
72 Example:
66 value = (0,1,2)
73 value = (0,1,2)
67 """
74 """
68 value = value.replace('(', '')
75 intList = ast.literal_eval(value)
69 value = value.replace(')', '')
70
71 value = value.replace('[', '')
72 value = value.replace(']', '')
73
74 strList = value.split(',')
75 intList = [int(x) for x in strList]
76
76
77 self.__formated_value = intList
77 self.__formated_value = intList
78
78
@@ -84,14 +84,7 class ParameterConf():
84 value = (0.5, 1.4, 2.7)
84 value = (0.5, 1.4, 2.7)
85 """
85 """
86
86
87 value = value.replace('(', '')
87 floatList = ast.literal_eval(value)
88 value = value.replace(')', '')
89
90 value = value.replace('[', '')
91 value = value.replace(']', '')
92
93 strList = value.split(',')
94 floatList = [float(x) for x in strList]
95
88
96 self.__formated_value = floatList
89 self.__formated_value = floatList
97
90
@@ -121,17 +114,7 class ParameterConf():
121 value = (0,1),(1,2)
114 value = (0,1),(1,2)
122 """
115 """
123
116
124 value = value.replace('(', '')
117 pairList = ast.literal_eval(value)
125 value = value.replace(')', '')
126
127 value = value.replace('[', '')
128 value = value.replace(']', '')
129
130 strList = value.split(',')
131 intList = [int(item) for item in strList]
132 pairList = []
133 for i in range(len(intList)/2):
134 pairList.append((intList[i*2], intList[i*2 + 1]))
135
118
136 self.__formated_value = pairList
119 self.__formated_value = pairList
137
120
@@ -153,10 +136,14 class ParameterConf():
153 self.__formated_value = format_func(value)
136 self.__formated_value = format_func(value)
154
137
155 return self.__formated_value
138 return self.__formated_value
139
140 def updateId(self, new_id):
156
141
142 self.id = str(new_id)
143
157 def setup(self, id, name, value, format='str'):
144 def setup(self, id, name, value, format='str'):
158
145
159 self.id = id
146 self.id = str(id)
160 self.name = name
147 self.name = name
161 self.value = str(value)
148 self.value = str(value)
162 self.format = str.lower(format)
149 self.format = str.lower(format)
@@ -212,7 +199,19 class OperationConf():
212 def __getNewId(self):
199 def __getNewId(self):
213
200
214 return int(self.id)*10 + len(self.parmConfObjList) + 1
201 return int(self.id)*10 + len(self.parmConfObjList) + 1
215
202
203 def updateId(self, new_id):
204
205 self.id = str(new_id)
206
207 n = 1
208 for parmObj in self.parmConfObjList:
209
210 idParm = str(int(new_id)*10 + n)
211 parmObj.updateId(idParm)
212
213 n += 1
214
216 def getElementName(self):
215 def getElementName(self):
217
216
218 return self.ELEMENTNAME
217 return self.ELEMENTNAME
@@ -251,7 +250,7 class OperationConf():
251
250
252 def setup(self, id, name, priority, type):
251 def setup(self, id, name, priority, type):
253
252
254 self.id = id
253 self.id = str(id)
255 self.name = name
254 self.name = name
256 self.type = type
255 self.type = type
257 self.priority = priority
256 self.priority = priority
@@ -387,7 +386,30 class ProcUnitConf():
387 def getId(self):
386 def getId(self):
388
387
389 return self.id
388 return self.id
390
389
390 def updateId(self, new_id, parentId=parentId):
391
392
393 new_id = int(parentId)*10 + (int(self.id) % 10)
394 new_inputId = int(parentId)*10 + (int(self.inputId) % 10)
395
396 #If this proc unit has not inputs
397 if self.inputId == '0':
398 new_inputId = 0
399
400 n = 1
401 for opConfObj in self.opConfObjList:
402
403 idOp = str(int(new_id)*10 + n)
404 opConfObj.updateId(idOp)
405
406 n += 1
407
408 self.parentId = str(parentId)
409 self.id = str(new_id)
410 self.inputId = str(new_inputId)
411
412
391 def getInputId(self):
413 def getInputId(self):
392
414
393 return self.inputId
415 return self.inputId
@@ -420,8 +442,21 class ProcUnitConf():
420 return self.procUnitObj
442 return self.procUnitObj
421
443
422 def setup(self, id, name, datatype, inputId, parentId=None):
444 def setup(self, id, name, datatype, inputId, parentId=None):
445
446 #Compatible with old signal chain version
447 if datatype==None and name==None:
448 raise ValueError, "datatype or name should be defined"
423
449
424 self.id = id
450 if name==None:
451 if 'Proc' in datatype:
452 name = datatype
453 else:
454 name = '%sProc' %(datatype)
455
456 if datatype==None:
457 datatype = name.replace('Proc','')
458
459 self.id = str(id)
425 self.name = name
460 self.name = name
426 self.datatype = datatype
461 self.datatype = datatype
427 self.inputId = inputId
462 self.inputId = inputId
@@ -479,6 +514,12 class ProcUnitConf():
479 self.datatype = upElement.get('datatype')
514 self.datatype = upElement.get('datatype')
480 self.inputId = upElement.get('inputId')
515 self.inputId = upElement.get('inputId')
481
516
517 if self.ELEMENTNAME == "ReadUnit":
518 self.datatype = self.datatype.replace("Reader", "")
519
520 if self.ELEMENTNAME == "ProcUnit":
521 self.datatype = self.datatype.replace("Proc", "")
522
482 if self.inputId == 'None':
523 if self.inputId == 'None':
483 self.inputId = '0'
524 self.inputId = '0'
484
525
@@ -583,7 +624,20 class ReadUnitConf(ProcUnitConf):
583 return self.ELEMENTNAME
624 return self.ELEMENTNAME
584
625
585 def setup(self, id, name, datatype, path, startDate="", endDate="", startTime="", endTime="", parentId=None, **kwargs):
626 def setup(self, id, name, datatype, path, startDate="", endDate="", startTime="", endTime="", parentId=None, **kwargs):
627
628 #Compatible with old signal chain version
629 if datatype==None and name==None:
630 raise ValueError, "datatype or name should be defined"
631
632 if name==None:
633 if 'Reader' in datatype:
634 name = datatype
635 else:
636 name = '%sReader' %(datatype)
586
637
638 if datatype==None:
639 datatype = name.replace('Reader','')
640
587 self.id = id
641 self.id = id
588 self.name = name
642 self.name = name
589 self.datatype = datatype
643 self.datatype = datatype
@@ -601,6 +655,10 class ReadUnitConf(ProcUnitConf):
601
655
602 def update(self, datatype, path, startDate, endDate, startTime, endTime, parentId=None, name=None, **kwargs):
656 def update(self, datatype, path, startDate, endDate, startTime, endTime, parentId=None, name=None, **kwargs):
603
657
658 #Compatible with old signal chain version
659 if datatype==None and name==None:
660 raise ValueError, "datatype or name should be defined"
661
604 if name==None:
662 if name==None:
605 if 'Reader' in datatype:
663 if 'Reader' in datatype:
606 name = datatype
664 name = datatype
@@ -618,7 +676,7 class ReadUnitConf(ProcUnitConf):
618 self.startTime = startTime
676 self.startTime = startTime
619 self.endTime = endTime
677 self.endTime = endTime
620
678
621 self.inputId = None
679 self.inputId = '0'
622 self.parentId = parentId
680 self.parentId = parentId
623
681
624 self.updateRunOperation(**kwargs)
682 self.updateRunOperation(**kwargs)
@@ -678,9 +736,7 class Project():
678 #data_q = dataq
736 #data_q = dataq
679
737
680 if control==None:
738 if control==None:
681 control = {}
739 control = {'stop':False,'pause':False}
682 control['stop'] = False
683 control['pause'] = False
684
740
685 self.control = control
741 self.control = control
686
742
@@ -698,9 +754,30 class Project():
698
754
699 return self.id
755 return self.id
700
756
757 def updateId(self, new_id):
758
759 self.id = str(new_id)
760
761 keyList = self.procUnitConfObjDict.keys()
762 keyList.sort()
763
764 n = 1
765 newProcUnitConfObjDict = {}
766
767 for procKey in keyList:
768
769 procUnitConfObj = self.procUnitConfObjDict[procKey]
770 idProcUnit = str(int(self.id)*10 + n)
771 procUnitConfObj.updateId(idProcUnit, parentId = self.id)
772
773 newProcUnitConfObjDict[idProcUnit] = procUnitConfObj
774 n += 1
775
776 self.procUnitConfObjDict = newProcUnitConfObjDict
777
701 def setup(self, id, name, description):
778 def setup(self, id, name, description):
702
779
703 self.id = id
780 self.id = str(id)
704 self.name = name
781 self.name = name
705 self.description = description
782 self.description = description
706
783
@@ -710,19 +787,6 class Project():
710 self.description = description
787 self.description = description
711
788
712 def addReadUnit(self, datatype=None, name=None, **kwargs):
789 def addReadUnit(self, datatype=None, name=None, **kwargs):
713
714 #Compatible with old signal chain version
715 if datatype==None and name==None:
716 raise ValueError, "datatype or name should be defined"
717
718 if name==None:
719 if 'Reader' in datatype:
720 name = datatype
721 else:
722 name = '%sReader' %(datatype)
723
724 if datatype==None:
725 datatype = name.replace('Reader','')
726
790
727 idReadUnit = self.__getNewId()
791 idReadUnit = self.__getNewId()
728
792
@@ -735,19 +799,6 class Project():
735
799
736 def addProcUnit(self, inputId='0', datatype=None, name=None):
800 def addProcUnit(self, inputId='0', datatype=None, name=None):
737
801
738 #Compatible with old signal chain version
739 if datatype==None and name==None:
740 raise ValueError, "datatype or name should be defined"
741
742 if name==None:
743 if 'Proc' in datatype:
744 name = datatype
745 else:
746 name = '%sProc' %(datatype)
747
748 if datatype==None:
749 datatype = name.replace('Proc','')
750
751 idProcUnit = self.__getNewId()
802 idProcUnit = self.__getNewId()
752
803
753 procUnitConfObj = ProcUnitConf()
804 procUnitConfObj = ProcUnitConf()
@@ -951,7 +1002,34 class Project():
951 self.createObjects()
1002 self.createObjects()
952 self.connectObjects()
1003 self.connectObjects()
953 self.run()
1004 self.run()
1005
1006 class ControllerThread(threading.Thread, Project):
1007
1008 def __init__(self, filename):
1009
1010 threading.Thread.__init__(self)
1011 Project.__init__(self)
1012
1013 self.setDaemon(True)
1014
1015 self.filename = filename
1016 self.control = {'stop':False, 'pause':False}
954
1017
1018 def stop(self):
1019 self.control['stop'] = True
1020
1021 def pause(self):
1022 self.control['pause'] = not(self.control['pause'])
1023
1024 def run(self):
1025 self.control['stop'] = False
1026 self.control['pause'] = False
1027
1028 self.readXml(self.filename)
1029 self.createObjects()
1030 self.connectObjects()
1031 Project.run(self)
1032
955 if __name__ == '__main__':
1033 if __name__ == '__main__':
956
1034
957 desc = "Segundo Test"
1035 desc = "Segundo Test"
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
@@ -12,7 +12,8 Classes to save parameters from Windows.
12 class ProjectParms():
12 class ProjectParms():
13
13
14 parmsOk = False
14 parmsOk = False
15 project_name = None
15 name = None
16 description = None
16 datatype = None
17 datatype = None
17 ext = None
18 ext = None
18 dpath = None
19 dpath = None
@@ -30,23 +31,24 class ProjectParms():
30 def __init__(self):
31 def __init__(self):
31
32
32 self.parmsOk = True
33 self.parmsOk = True
34 self.description = ''
33 self.expLabel = ''
35 self.expLabel = ''
34 self.set = None
36 self.set = ''
35 self.ippKm = None
37 self.ippKm = ''
36 self.walk = None
38 self.walk = None
37 self.delay = None
39 self.delay = ''
38
40
39 def getDatatypeIndex(self):
41 def getDatatypeIndex(self):
40
42
41 indexDatatype = None
43 indexDatatype = None
42
44
43 if self.datatype.lower() == 'voltage':
45 if 'voltage' in self.datatype.lower():
44 indexDatatype = 0
46 indexDatatype = 0
45 if self.datatype.lower() == 'spectra':
47 if 'spectra' in self.datatype.lower():
46 indexDatatype = 1
48 indexDatatype = 1
47 if self.datatype.lower() == 'fits':
49 if 'fits' in self.datatype.lower():
48 indexDatatype = 2
50 indexDatatype = 2
49 if self.datatype.lower() == 'usrp':
51 if 'usrp' in self.datatype.lower():
50 indexDatatype = 3
52 indexDatatype = 3
51
53
52 return indexDatatype
54 return indexDatatype
@@ -70,7 +72,7 class ProjectParms():
70 startDate=None, endDate=None, startTime=None, endTime=None,
72 startDate=None, endDate=None, startTime=None, endTime=None,
71 delay=None, walk=None, set=None, ippKm=None, parmsOk=True):
73 delay=None, walk=None, set=None, ippKm=None, parmsOk=True):
72
74
73 project_name = project_name
75 name = project_name
74 datatype = datatype
76 datatype = datatype
75 ext = ext
77 ext = ext
76 dpath = dpath
78 dpath = dpath
@@ -84,4 +86,8 class ProjectParms():
84 set = set
86 set = set
85 ippKm = ippKm
87 ippKm = ippKm
86
88
87 self.parmsOk = parmsOk No newline at end of file
89 self.parmsOk = parmsOk
90
91 def isValid(self):
92
93 return self.parmsOk No newline at end of file
@@ -59,7 +59,7 class Ui_EnvWindow(object):
59 def setupUi(self, MainWindow):
59 def setupUi(self, MainWindow):
60
60
61 MainWindow.setObjectName(_fromUtf8("MainWindow"))
61 MainWindow.setObjectName(_fromUtf8("MainWindow"))
62 MainWindow.resize(1203, 711)
62 MainWindow.resize(1200, 800)
63
63
64 self.centralWidget = QtGui.QWidget(MainWindow)
64 self.centralWidget = QtGui.QWidget(MainWindow)
65 self.centralWidget.setObjectName(_fromUtf8("centralWidget"))
65 self.centralWidget.setObjectName(_fromUtf8("centralWidget"))
@@ -62,15 +62,15 class Ui_ProjectTab(object):
62 self.gridLayout_2.addWidget(self.label_23, 3, 0, 1, 1)
62 self.gridLayout_2.addWidget(self.label_23, 3, 0, 1, 1)
63 self.proComReadMode = QtGui.QComboBox(self.frame)
63 self.proComReadMode = QtGui.QComboBox(self.frame)
64 self.proComReadMode.setObjectName(_fromUtf8("proComReadMode"))
64 self.proComReadMode.setObjectName(_fromUtf8("proComReadMode"))
65 self.proComReadMode.addItem(_fromUtf8("------"))
65 self.proComReadMode.addItem(_fromUtf8(""))
66 self.proComReadMode.addItem(_fromUtf8(""))
66 self.proComReadMode.addItem(_fromUtf8(""))
67 self.gridLayout_2.addWidget(self.proComReadMode, 3, 1, 1, 4)
67 self.gridLayout_2.addWidget(self.proComReadMode, 3, 1, 1, 2)
68 self.label_33 = QtGui.QLabel(self.frame)
68 self.label_33 = QtGui.QLabel(self.frame)
69 self.label_33.setObjectName(_fromUtf8("label_33"))
69 self.label_33.setObjectName(_fromUtf8("label_33"))
70 self.gridLayout_2.addWidget(self.label_33, 3, 5, 1, 2)
70 self.gridLayout_2.addWidget(self.label_33, 3, 5, 1, 1)
71 self.proDelay = QtGui.QLineEdit(self.frame)
71 self.proDelay = QtGui.QLineEdit(self.frame)
72 self.proDelay.setObjectName(_fromUtf8("proDelay"))
72 self.proDelay.setObjectName(_fromUtf8("proDelay"))
73 self.gridLayout_2.addWidget(self.proDelay, 3, 8, 1, 1)
73 self.gridLayout_2.addWidget(self.proDelay, 3, 6, 1, 1)
74 self.label_32 = QtGui.QLabel(self.frame)
74 self.label_32 = QtGui.QLabel(self.frame)
75 self.label_32.setObjectName(_fromUtf8("label_32"))
75 self.label_32.setObjectName(_fromUtf8("label_32"))
76 self.gridLayout_2.addWidget(self.label_32, 4, 0, 1, 1)
76 self.gridLayout_2.addWidget(self.label_32, 4, 0, 1, 1)
@@ -82,12 +82,20 class Ui_ProjectTab(object):
82 self.proLoadButton = QtGui.QPushButton(self.frame)
82 self.proLoadButton = QtGui.QPushButton(self.frame)
83 self.proLoadButton.setObjectName(_fromUtf8("proLoadButton"))
83 self.proLoadButton.setObjectName(_fromUtf8("proLoadButton"))
84 self.gridLayout_2.addWidget(self.proLoadButton, 5, 0, 1, 9)
84 self.gridLayout_2.addWidget(self.proLoadButton, 5, 0, 1, 9)
85 self.label_10 = QtGui.QLabel(self.frame)
85 self.labelSet = QtGui.QLabel(self.frame)
86 self.label_10.setObjectName(_fromUtf8("label_10"))
86 self.labelSet.setObjectName(_fromUtf8("labelSet"))
87 self.gridLayout_2.addWidget(self.label_10, 3, 3, 1, 1)
87 self.gridLayout_2.addWidget(self.labelSet, 3, 7, 1, 1)
88 self.proSet = QtGui.QLineEdit(self.frame)
88 self.proSet = QtGui.QLineEdit(self.frame)
89 self.proSet.setObjectName(_fromUtf8("proSet"))
89 self.proSet.setObjectName(_fromUtf8("proSet"))
90 self.gridLayout_2.addWidget(self.proSet, 3, 4, 1, 1)
90 self.gridLayout_2.addWidget(self.proSet, 3, 8, 1, 1)
91 self.labelIPPKm = QtGui.QLabel(self.frame)
92 self.labelIPPKm.setObjectName(_fromUtf8("labelIPPKm"))
93 self.gridLayout_2.addWidget(self.labelIPPKm, 3, 7, 1, 1)
94 self.proIPPKm = QtGui.QLineEdit(self.frame)
95 self.proIPPKm.setObjectName(_fromUtf8("proIPPKm"))
96 self.gridLayout_2.addWidget(self.proIPPKm, 3, 8, 1, 1)
97
98
91 self.gridLayout_15.addWidget(self.frame, 0, 0, 1, 1)
99 self.gridLayout_15.addWidget(self.frame, 0, 0, 1, 1)
92 self.frame_2 = QtGui.QFrame(self.tabProject)
100 self.frame_2 = QtGui.QFrame(self.tabProject)
93 self.frame_2.setFrameShape(QtGui.QFrame.StyledPanel)
101 self.frame_2.setFrameShape(QtGui.QFrame.StyledPanel)
@@ -160,7 +168,8 class Ui_ProjectTab(object):
160 self.proComWalk.setItemText(0, _translate("MainWindow", "On Files", None))
168 self.proComWalk.setItemText(0, _translate("MainWindow", "On Files", None))
161 self.proComWalk.setItemText(1, _translate("MainWindow", "On Folder", None))
169 self.proComWalk.setItemText(1, _translate("MainWindow", "On Folder", None))
162 self.proLoadButton.setText(_translate("MainWindow", "Load", None))
170 self.proLoadButton.setText(_translate("MainWindow", "Load", None))
163 self.label_10.setText(_translate("MainWindow", "Set:", None))
171 self.labelSet.setText(_translate("MainWindow", "Set:", None))
172 self.labelIPPKm.setText(_translate("MainWindow", "IPP (km):", None))
164 self.label_27.setText(_translate("MainWindow", "Star Date:", None))
173 self.label_27.setText(_translate("MainWindow", "Star Date:", None))
165 self.label_28.setText(_translate("MainWindow", "End Date:", None))
174 self.label_28.setText(_translate("MainWindow", "End Date:", None))
166 self.label_2.setText(_translate("MainWindow", "Start Time:", None))
175 self.label_2.setText(_translate("MainWindow", "Start Time:", None))
@@ -67,6 +67,7 class Ui_VoltageTab(object):
67 self.volOpComProfile.setObjectName(_fromUtf8("volOpComProfile"))
67 self.volOpComProfile.setObjectName(_fromUtf8("volOpComProfile"))
68 self.volOpComProfile.addItem(_fromUtf8(""))
68 self.volOpComProfile.addItem(_fromUtf8(""))
69 self.volOpComProfile.addItem(_fromUtf8(""))
69 self.volOpComProfile.addItem(_fromUtf8(""))
70 self.volOpComProfile.addItem(_fromUtf8(""))
70 self.gridLayout.addWidget(self.volOpComProfile, 7, 0, 1, 3)
71 self.gridLayout.addWidget(self.volOpComProfile, 7, 0, 1, 3)
71 self.volOpCebDecodification = QtGui.QCheckBox(self.tabopVoltage)
72 self.volOpCebDecodification = QtGui.QCheckBox(self.tabopVoltage)
72 self.volOpCebDecodification.setObjectName(_fromUtf8("volOpCebDecodification"))
73 self.volOpCebDecodification.setObjectName(_fromUtf8("volOpCebDecodification"))
@@ -86,9 +87,6 class Ui_VoltageTab(object):
86 self.volOpChannel = QtGui.QLineEdit(self.tabopVoltage)
87 self.volOpChannel = QtGui.QLineEdit(self.tabopVoltage)
87 self.volOpChannel.setObjectName(_fromUtf8("volOpChannel"))
88 self.volOpChannel.setObjectName(_fromUtf8("volOpChannel"))
88 self.gridLayout.addWidget(self.volOpChannel, 2, 4, 1, 1)
89 self.gridLayout.addWidget(self.volOpChannel, 2, 4, 1, 1)
89 self.label_4 = QtGui.QLabel(self.tabopVoltage)
90 self.label_4.setObjectName(_fromUtf8("label_4"))
91 self.gridLayout.addWidget(self.label_4, 9, 2, 1, 1)
92 self.volOpCebChannels = QtGui.QCheckBox(self.tabopVoltage)
90 self.volOpCebChannels = QtGui.QCheckBox(self.tabopVoltage)
93 self.volOpCebChannels.setObjectName(_fromUtf8("volOpCebChannels"))
91 self.volOpCebChannels.setObjectName(_fromUtf8("volOpCebChannels"))
94 self.gridLayout.addWidget(self.volOpCebChannels, 1, 0, 1, 3)
92 self.gridLayout.addWidget(self.volOpCebChannels, 1, 0, 1, 3)
@@ -104,9 +102,6 class Ui_VoltageTab(object):
104 self.volOpCebRadarfrequency = QtGui.QCheckBox(self.tabopVoltage)
102 self.volOpCebRadarfrequency = QtGui.QCheckBox(self.tabopVoltage)
105 self.volOpCebRadarfrequency.setObjectName(_fromUtf8("volOpCebRadarfrequency"))
103 self.volOpCebRadarfrequency.setObjectName(_fromUtf8("volOpCebRadarfrequency"))
106 self.gridLayout.addWidget(self.volOpCebRadarfrequency, 0, 0, 1, 3)
104 self.gridLayout.addWidget(self.volOpCebRadarfrequency, 0, 0, 1, 3)
107 self.label_5 = QtGui.QLabel(self.tabopVoltage)
108 self.label_5.setObjectName(_fromUtf8("label_5"))
109 self.gridLayout.addWidget(self.label_5, 10, 2, 1, 1)
110 spacerItem3 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
105 spacerItem3 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
111 self.gridLayout.addItem(spacerItem3, 1, 4, 1, 1)
106 self.gridLayout.addItem(spacerItem3, 1, 4, 1, 1)
112 self.volOpCebFlip = QtGui.QCheckBox(self.tabopVoltage)
107 self.volOpCebFlip = QtGui.QCheckBox(self.tabopVoltage)
@@ -122,7 +117,21 class Ui_VoltageTab(object):
122 self.volOpCohInt = QtGui.QLineEdit(self.tabopVoltage)
117 self.volOpCohInt = QtGui.QLineEdit(self.tabopVoltage)
123 self.volOpCohInt.setObjectName(_fromUtf8("volOpCohInt"))
118 self.volOpCohInt.setObjectName(_fromUtf8("volOpCohInt"))
124 self.gridLayout.addWidget(self.volOpCohInt, 12, 4, 1, 1)
119 self.gridLayout.addWidget(self.volOpCohInt, 12, 4, 1, 1)
125
120
121 self.volLabCodeMode = QtGui.QLabel(self.tabopVoltage)
122 self.volLabCodeMode.setObjectName(_fromUtf8("volLabCodeMode"))
123 self.gridLayout.addWidget(self.volLabCodeMode, 8, 2, 1, 1)
124 self.volLabCodeType = QtGui.QLabel(self.tabopVoltage)
125 self.volLabCodeType.setObjectName(_fromUtf8("volLabCodeType"))
126 self.gridLayout.addWidget(self.volLabCodeType, 9, 2, 1, 1)
127 self.volLabCode = QtGui.QLabel(self.tabopVoltage)
128 self.volLabCode.setObjectName(_fromUtf8("volLabCode"))
129 self.gridLayout.addWidget(self.volLabCode, 10, 2, 1, 1)
130 self.volOpComMode = QtGui.QComboBox(self.tabopVoltage)
131 self.volOpComMode.setObjectName(_fromUtf8("volOpComMode"))
132 self.volOpComMode.addItem(_fromUtf8(""))
133 self.volOpComMode.addItem(_fromUtf8(""))
134 self.gridLayout.addWidget(self.volOpComMode, 8, 4, 1, 1)
126 self.volOpComCode = QtGui.QComboBox(self.tabopVoltage)
135 self.volOpComCode = QtGui.QComboBox(self.tabopVoltage)
127 self.volOpComCode.setObjectName(_fromUtf8("volOpComCode"))
136 self.volOpComCode.setObjectName(_fromUtf8("volOpComCode"))
128 self.volOpComCode.addItem(_fromUtf8(""))
137 self.volOpComCode.addItem(_fromUtf8(""))
@@ -138,14 +147,12 class Ui_VoltageTab(object):
138 self.volOpComCode.addItem(_fromUtf8(""))
147 self.volOpComCode.addItem(_fromUtf8(""))
139 self.volOpComCode.addItem(_fromUtf8(""))
148 self.volOpComCode.addItem(_fromUtf8(""))
140 self.volOpComCode.addItem(_fromUtf8(""))
149 self.volOpComCode.addItem(_fromUtf8(""))
150 self.volOpComCode.addItem(_fromUtf8(""))
141 self.gridLayout.addWidget(self.volOpComCode, 9, 4, 1, 1)
151 self.gridLayout.addWidget(self.volOpComCode, 9, 4, 1, 1)
142 self.volOpComMode = QtGui.QComboBox(self.tabopVoltage)
143 self.volOpComMode.setObjectName(_fromUtf8("volOpComMode"))
144 self.volOpComMode.addItem(_fromUtf8(""))
145 self.volOpComMode.addItem(_fromUtf8(""))
146 self.gridLayout.addWidget(self.volOpComMode, 10, 4, 1, 1)
147 self.tabWidgetVoltage.addTab(self.tabopVoltage, _fromUtf8(""))
152 self.tabWidgetVoltage.addTab(self.tabopVoltage, _fromUtf8(""))
148
153 self.volOpCode = QtGui.QLineEdit(self.tabopVoltage)
154 self.volOpCode.setObjectName(_fromUtf8("volOpCode"))
155 self.gridLayout.addWidget(self.volOpCode, 10, 4, 1, 1)
149
156
150 self.tabgraphVoltage = QtGui.QWidget()
157 self.tabgraphVoltage = QtGui.QWidget()
151 self.tabgraphVoltage.setObjectName(_fromUtf8("tabgraphVoltage"))
158 self.tabgraphVoltage.setObjectName(_fromUtf8("tabgraphVoltage"))
@@ -262,41 +269,44 class Ui_VoltageTab(object):
262 self.volOpComChannels.setItemText(1, _translate("MainWindow", "Index", None))
269 self.volOpComChannels.setItemText(1, _translate("MainWindow", "Index", None))
263 self.volOpCebProfile.setText(_translate("MainWindow", "Profile Selector", None))
270 self.volOpCebProfile.setText(_translate("MainWindow", "Profile Selector", None))
264 self.volOpComProfile.setItemText(0, _translate("MainWindow", "Profile List", None))
271 self.volOpComProfile.setItemText(0, _translate("MainWindow", "Profile List", None))
265 self.volOpComProfile.setItemText(1, _translate("MainWindow", "Profile Range List", None))
272 self.volOpComProfile.setItemText(1, _translate("MainWindow", "Profile Range", None))
273 self.volOpComProfile.setItemText(2, _translate("MainWindow", "List of Profile Ranges", None))
266 self.volOpCebDecodification.setText(_translate("MainWindow", "Decoder", None))
274 self.volOpCebDecodification.setText(_translate("MainWindow", "Decoder", None))
267 self.volOpCebCohInt.setText(_translate("MainWindow", "Coherent Integration", None))
275 self.volOpCebCohInt.setText(_translate("MainWindow", "Coherent Integration", None))
268 self.volOpCebFlip.setText(_translate("MainWindow", "Flip", None))
276 self.volOpCebFlip.setText(_translate("MainWindow", "Flip", None))
269 self.label_4.setText(_translate("MainWindow", "Code:", None))
277 self.volLabCodeType.setText(_translate("MainWindow", "Code type:", None))
270 self.volOpCebChannels.setText(_translate("MainWindow", "Select Channels", None))
278 self.volOpCebChannels.setText(_translate("MainWindow", "Select Channels", None))
271 self.volOpCebHeights.setText(_translate("MainWindow", "Select Heights", None))
279 self.volOpCebHeights.setText(_translate("MainWindow", "Select Heights", None))
272 self.volOpCebFilter.setText(_translate("MainWindow", "Filter", None))
280 self.volOpCebFilter.setText(_translate("MainWindow", "Filter", None))
273 self.volOpCebRadarfrequency.setText(_translate("MainWindow", "Radar Frequency", None))
281 self.volOpCebRadarfrequency.setText(_translate("MainWindow", "Radar Frequency", None))
274 self.label_5.setText(_translate("MainWindow", "Mode:", None))
282 self.volLabCodeMode.setText(_translate("MainWindow", "Mode:", None))
275 self.volOpComCode.setItemText(0, _translate("MainWindow", "Barker 3", None))
283 self.volLabCode.setText(_translate("MainWindow", "Code:", None))
276 self.volOpComCode.setItemText(1, _translate("MainWindow", "Barker 4", None))
284 self.volOpComCode.setItemText(0, _translate("MainWindow", "Read from header", None))
277 self.volOpComCode.setItemText(2, _translate("MainWindow", "Barker 5", None))
285 self.volOpComCode.setItemText(1, _translate("MainWindow", "Barker 3", None))
278 self.volOpComCode.setItemText(3, _translate("MainWindow", "Barker 7", None))
286 self.volOpComCode.setItemText(2, _translate("MainWindow", "Barker 4", None))
279 self.volOpComCode.setItemText(4, _translate("MainWindow", "Barker 11", None))
287 self.volOpComCode.setItemText(3, _translate("MainWindow", "Barker 5", None))
280 self.volOpComCode.setItemText(5, _translate("MainWindow", "Barker 13", None))
288 self.volOpComCode.setItemText(4, _translate("MainWindow", "Barker 7", None))
281 self.volOpComCode.setItemText(6, _translate("MainWindow", "Barker 3 + Comp.", None))
289 self.volOpComCode.setItemText(5, _translate("MainWindow", "Barker 11", None))
282 self.volOpComCode.setItemText(7, _translate("MainWindow", "Barker 4 + Comp.", None))
290 self.volOpComCode.setItemText(6, _translate("MainWindow", "Barker 13", None))
283 self.volOpComCode.setItemText(8, _translate("MainWindow", "Barker 5 + Comp.", None))
291 self.volOpComCode.setItemText(7, _translate("MainWindow", "Barker 3 + Comp.", None))
284 self.volOpComCode.setItemText(9, _translate("MainWindow", "Barker 7 + Comp.", None))
292 self.volOpComCode.setItemText(8, _translate("MainWindow", "Barker 4 + Comp.", None))
285 self.volOpComCode.setItemText(10, _translate("MainWindow", "Barker 11+ Comp.", None))
293 self.volOpComCode.setItemText(9, _translate("MainWindow", "Barker 5 + Comp.", None))
286 self.volOpComCode.setItemText(11, _translate("MainWindow", "Barker 13+ Comp.", None))
294 self.volOpComCode.setItemText(10, _translate("MainWindow", "Barker 7 + Comp.", None))
287 self.volOpComCode.setItemText(12, _translate("MainWindow", "Read from header", None))
295 self.volOpComCode.setItemText(11, _translate("MainWindow", "Barker 11+ Comp.", None))
296 self.volOpComCode.setItemText(12, _translate("MainWindow", "Barker 13+ Comp.", None))
297 self.volOpComCode.setItemText(13, _translate("MainWindow", "User defined", None))
288 self.volOpComMode.setItemText(0, _translate("MainWindow", "Time", None))
298 self.volOpComMode.setItemText(0, _translate("MainWindow", "Time", None))
289 self.volOpComMode.setItemText(1, _translate("MainWindow", "Freq 1", None))
299 self.volOpComMode.setItemText(1, _translate("MainWindow", "Frequency", None))
290 self.tabWidgetVoltage.setTabText(self.tabWidgetVoltage.indexOf(self.tabopVoltage), _translate("MainWindow", "Operation", None))
300 self.tabWidgetVoltage.setTabText(self.tabWidgetVoltage.indexOf(self.tabopVoltage), _translate("MainWindow", "Operation", None))
291
301
292 self.volGraphToolPath.setText(_translate("MainWindow", "...", None))
302 self.volGraphToolPath.setText(_translate("MainWindow", "...", None))
293 self.label_14.setText(_translate("MainWindow", "Scope", None))
303 self.label_14.setText(_translate("MainWindow", "Scope", None))
294 self.label_8.setText(_translate("MainWindow", "Channel List", None))
304 self.label_8.setText(_translate("MainWindow", "Channel List", None))
295 self.label_49.setText(_translate("MainWindow", "Show", None))
305 self.label_49.setText(_translate("MainWindow", "Show", None))
296 self.label_51.setText(_translate("MainWindow", "Freq/Vel", None))
306 self.label_51.setText(_translate("MainWindow", "Height range", None))
297 self.label_12.setText(_translate("MainWindow", "Path :", None))
307 self.label_12.setText(_translate("MainWindow", "Path :", None))
298 self.label_13.setText(_translate("MainWindow", "Prefix:", None))
308 self.label_13.setText(_translate("MainWindow", "Figure name:", None))
299 self.label_52.setText(_translate("MainWindow", "Height range", None))
309 self.label_52.setText(_translate("MainWindow", "Amplitude", None))
300 self.label_50.setText(_translate("MainWindow", "Save", None))
310 self.label_50.setText(_translate("MainWindow", "Save", None))
301 self.tabWidgetVoltage.setTabText(self.tabWidgetVoltage.indexOf(self.tabgraphVoltage), _translate("MainWindow", "Graphics", None))
311 self.tabWidgetVoltage.setTabText(self.tabWidgetVoltage.indexOf(self.tabgraphVoltage), _translate("MainWindow", "Graphics", None))
302
312
@@ -225,8 +225,8 class Figure(Operation):
225 return
225 return
226
226
227 # store png plot to FTP server according to RT-Web format
227 # store png plot to FTP server according to RT-Web format
228 name = self.getNameToFtp(thisDatetime, self.FTP_WEI, self.EXP_CODE, self.SUB_EXP_CODE, self.PLOT_CODE, self.PLOT_POS)
228 ftp_filename = self.getNameToFtp(thisDatetime, self.FTP_WEI, self.EXP_CODE, self.SUB_EXP_CODE, self.PLOT_CODE, self.PLOT_POS)
229 ftp_filename = os.path.join(figpath, name)
229 # ftp_filename = os.path.join(figpath, name)
230 self.saveFigure(figpath, ftp_filename)
230 self.saveFigure(figpath, ftp_filename)
231
231
232 def getNameToFtp(self, thisDatetime, FTP_WEI, EXP_CODE, SUB_EXP_CODE, PLOT_CODE, PLOT_POS):
232 def getNameToFtp(self, thisDatetime, FTP_WEI, EXP_CODE, SUB_EXP_CODE, PLOT_CODE, PLOT_POS):
@@ -129,6 +129,9 class USRPReader(ProcessingUnit):
129
129
130 channelNameList = digitalReadObj.get_channels()
130 channelNameList = digitalReadObj.get_channels()
131
131
132 if not channelNameList:
133 return []
134
132 metadata_dict = digitalReadObj.get_rf_file_metadata(channelNameList[0])
135 metadata_dict = digitalReadObj.get_rf_file_metadata(channelNameList[0])
133
136
134 sample_rate = metadata_dict['sample_rate'][0]
137 sample_rate = metadata_dict['sample_rate'][0]
@@ -206,6 +206,9 class VoltageProc(ProcessingUnit):
206 self.dataOut.data = data
206 self.dataOut.data = data
207 self.dataOut.heightList = self.dataOut.heightList[minIndex:maxIndex]
207 self.dataOut.heightList = self.dataOut.heightList[minIndex:maxIndex]
208
208
209 if self.dataOut.nHeights <= 1:
210 raise ValueError, "selectHeights: Too few heights. Current number of heights is %d" %(self.dataOut.nHeights)
211
209 return 1
212 return 1
210
213
211
214
@@ -218,7 +221,11 class VoltageProc(ProcessingUnit):
218
221
219 newdelta = deltaHeight * window
222 newdelta = deltaHeight * window
220 r = self.dataOut.nHeights % window
223 r = self.dataOut.nHeights % window
224 newheights = (self.dataOut.nHeights-r)/window
221
225
226 if newheights <= 1:
227 raise ValueError, "filterByHeights: Too few heights. Current number of heights is %d and window is %d" %(self.dataOut.nHeights, window)
228
222 if self.dataOut.flagDataAsBlock:
229 if self.dataOut.flagDataAsBlock:
223 """
230 """
224 Si la data es obtenida por bloques, dimension = [nChannels, nProfiles, nHeis]
231 Si la data es obtenida por bloques, dimension = [nChannels, nProfiles, nHeis]
@@ -232,8 +239,8 class VoltageProc(ProcessingUnit):
232 buffer = buffer.reshape(self.dataOut.nChannels,self.dataOut.nHeights/window,window)
239 buffer = buffer.reshape(self.dataOut.nChannels,self.dataOut.nHeights/window,window)
233 buffer = numpy.sum(buffer,2)
240 buffer = numpy.sum(buffer,2)
234
241
235 self.dataOut.data = buffer.copy()
242 self.dataOut.data = buffer
236 self.dataOut.heightList = numpy.arange(self.dataOut.heightList[0],newdelta*(self.dataOut.nHeights-r)/window,newdelta)
243 self.dataOut.heightList = self.dataOut.heightList[0] + numpy.arange( newheights )*newdelta
237 self.dataOut.windowOfFilter = window
244 self.dataOut.windowOfFilter = window
238
245
239 def setH0(self, h0, deltaHeight = None):
246 def setH0(self, h0, deltaHeight = None):
@@ -619,7 +626,7 class Decoder(Operation):
619
626
620 return self.datadecTime
627 return self.datadecTime
621
628
622 def run(self, dataOut, code=None, nCode=None, nBaud=None, mode = 0, times=None, osamp=None):
629 def run(self, dataOut, code=None, nCode=None, nBaud=None, mode = 0, osamp=None):
623
630
624 if not self.isConfig:
631 if not self.isConfig:
625
632
@@ -654,9 +661,6 class Decoder(Operation):
654 dataOut.code = self.code
661 dataOut.code = self.code
655 dataOut.nCode = self.nCode
662 dataOut.nCode = self.nCode
656 dataOut.nBaud = self.nBaud
663 dataOut.nBaud = self.nBaud
657 dataOut.radarControllerHeaderObj.code = self.code
658 dataOut.radarControllerHeaderObj.nCode = self.nCode
659 dataOut.radarControllerHeaderObj.nBaud = self.nBaud
660
664
661 dataOut.data = datadec
665 dataOut.data = datadec
662
666
@@ -785,14 +789,18 class ProfileSelector(Operation):
785 dataOut.data = dataOut.data[:,profileList,:]
789 dataOut.data = dataOut.data[:,profileList,:]
786 dataOut.nProfiles = len(profileList)
790 dataOut.nProfiles = len(profileList)
787 dataOut.profileIndex = dataOut.nProfiles - 1
791 dataOut.profileIndex = dataOut.nProfiles - 1
788 else:
792
793 if profileRangeList != None:
789 minIndex = profileRangeList[0]
794 minIndex = profileRangeList[0]
790 maxIndex = profileRangeList[1]
795 maxIndex = profileRangeList[1]
791
796
792 dataOut.data = dataOut.data[:,minIndex:maxIndex+1,:]
797 dataOut.data = dataOut.data[:,minIndex:maxIndex+1,:]
793 dataOut.nProfiles = maxIndex - minIndex + 1
798 dataOut.nProfiles = maxIndex - minIndex + 1
794 dataOut.profileIndex = dataOut.nProfiles - 1
799 dataOut.profileIndex = dataOut.nProfiles - 1
795
800
801 if rangeList != None:
802 raise ValueError, "Profile Selector: Not implemented for rangeList yet"
803
796 dataOut.flagNoData = False
804 dataOut.flagNoData = False
797
805
798 return True
806 return True
@@ -865,7 +873,7 class ProfileSelector(Operation):
865 self.incIndex()
873 self.incIndex()
866 return 1
874 return 1
867
875
868 raise ValueError, "ProfileSelector needs profileList or profileRangeList"
876 raise ValueError, "ProfileSelector needs profileList, profileRangeList or rangeList parameter"
869
877
870 return 0
878 return 0
871
879
General Comments 0
You need to be logged in to leave comments. Login now