diff --git a/src/analysis.py b/src/analysis.py index 71ab73e..d81a95a 100644 --- a/src/analysis.py +++ b/src/analysis.py @@ -92,9 +92,9 @@ class AnalysisProcedure(QObject): self.n_turns = 0 # self.t_stepsize = 0.000000019750043 #0.00000002 self.rf_freq = 50.6328 # 10**6 - self.rf_sample = 3.0 # 10**6 + self.rf_sample = 3036 # 10**6 self.pulse_stepsize = 1 / (self.rf_freq * 10**6) - self.t_stepsize = 1 / (self.rf_sample * 10**9) + self.t_stepsize = 1 / (self.rf_sample * 10**6) self.t_interval = math.ceil(self.pulse_stepsize / self.t_stepsize) self.correlation_peak_diff = 0.0 @@ -175,12 +175,13 @@ class AnalysisProcedure(QObject): mess = 'Sampling rate changed to 2.5 MHz for oscilloscope data' self.parent.trigger_log_message.emit( MsgSeverity.INFO.name, _pymodule, utils.line_no(), mess, {}) - else: - self.rf_sample = float(self.input_data['freqsampling']) + #else: + # self.rf_sample = float(self.input_data['freqsampling']) try: self.accelerator = self.input_data['accelerator'] - + print (f'Accelerator: {self.accelerator}', flush=True) + self.harmonic_no = float( self.input_data[self.accelerator]['harmonic']) self.dt_cable = float( @@ -192,14 +193,13 @@ class AnalysisProcedure(QObject): # 'minimumCurrent']) - self.reverse_input_singal = bool( - self.input_data[self.accelerator]['reverseInput']) - self.reverse_output_singal = bool( - self.input_data[self.accelerator]['reverseOutput']) + self.reverse_output_signal = bool( + self.input_data[self.accelerator_peak_search]['reverseOutput']) + self.reverse_input_signal = bool( + self.input_data[self.accelerator_peak_search]['reverseInput']) + - - - print (f'Accelerator: {self.accelerator}', flush=True) + if self.injector_2 in self.accelerator: self.mod_freq = float( self.input_data[self.accelerator]['freqmod']) # * 10**9 GHz @@ -212,8 +212,8 @@ class AnalysisProcedure(QObject): self.logger.info(f'Simulation {self.simulation}') self.logger.info( f'RF Frequency (10**6 Hz) {self.rf_freq}') - self.logger.info( - f'RF Sampling (10**9 Hz) {self.rf_sample}') + #self.logger.info( + # f'RF Sampling (10**9 Hz) {self.rf_sample}') self.logger.info(f'Harmonic No. {self.harmonic_no}') self.logger.info(f'dT Cable {self.dt_cable}') self.logger.info(f'dN Pickup {self.dn_pickup}') @@ -448,6 +448,17 @@ class AnalysisProcedure(QObject): self.check_status_list(_pymodule, 'getScalarList', pv_list, status_list, utils.line_no()) + # + pv_rf_sample = self.settings.data['PV'][self.accelerator]['samplingFreq'] + if not self.simulation: + self.rf_sample = self.cafe.getCache(pv_rf_sample) + + self.t_stepsize = 1 / (self.rf_sample * 10**6) + self.t_interval = math.ceil(self.pulse_stepsize / self.t_stepsize) + + + print(f'rf_sample = {self.rf_sample}', flush = True) + # Retrieve pv_entry_current = self.settings.data['PV'][self.accelerator]['IEntry'] diff --git a/src/gui.py b/src/gui.py index 8847d91..03c48e2 100644 --- a/src/gui.py +++ b/src/gui.py @@ -66,7 +66,7 @@ class AppGui(QWidget): self.current_wgt = self.accelerator_current_group_qtabwidget( widget_type='QStackedWidget') self.gui_frame.measurement_layout.addWidget( - self.current_wgt, 1, 1, 1, 1, alignment=Qt.AlignTop) + self.current_wgt, 1, 1, 1, 1, alignment=Qt.AlignTop|Qt.AlignCenter) self.current_wgt.setCurrentIndex(self.parent.default_idx) self.current_wgt.currentChanged.emit(self.parent.default_idx) @@ -132,8 +132,8 @@ class AppGui(QWidget): accel_wgt_dict[accel] = self.daq_group(accel) accel_tab_widget.addWidget(accel_wgt_dict[accel]) - accel_tab_widget.setFixedWidth(320) - accel_tab_widget.setFixedHeight(160) + accel_tab_widget.setFixedWidth(380) + #accel_tab_widget.setFixedHeight(160) return accel_tab_widget def daq_group(self, accel): @@ -146,26 +146,34 @@ class AppGui(QWidget): pv_daq.append(self.settings.data['PV'][accel]['daqTrigger']) pv_daq.append(self.settings.data['PV'][accel]['daqReady']) pv_daq.append(self.settings.data['PV'][accel]['daqErrorCount']) + pv_daq.append(self.settings.data['PV'][accel]['daqWindow']) + pv_daq.append(self.settings.data['PV'][accel]['samplingFreq']) + pv_daq.append(self.settings.data['PV'][accel]['samplingNum']) self.cafe.openPrepare() self.cafe.open(pv_daq) self.cafe.openNowAndWait(1.0) + vbox.addWidget(QLabel('DAQ Trigger:'), 0, 0) vbox.addWidget(QLabel('DAQ Count:'), 1, 0) - vbox.addWidget(QLabel('Error Count:'), 2, 0) + vbox.addWidget(QLabel('Read Error Count:'), 2, 0) + vbox.addWidget(QLabel('DAQ Window:'), 3, 0) + vbox.addWidget(QLabel('Sampling Freq:'), 4, 0) + vbox.addWidget(QLabel('No Samples:'), 5, 0) pv_widget = [None] * len(pv_daq) for i, pv in enumerate(pv_daq): - pv_widget[i] = CAQLabel(self, pv_name=pv) + pv_widget[i] = CAQLabel(self, pv_name=pv, show_units=True) vbox.addWidget(pv_widget[i], i, 1) - fwidth = 40 if 'ERR-CNT' not in pv else 60 + #fwidth = 100 if 'ERR-CNT' not in pv else 100 + fwidth = 120 if 'SMP' in pv or 'WINDOW' in pv else 60 pv_widget[i].setFixedWidth(fwidth) vbox.setContentsMargins(9, 19, 9, 9) vbox.setSpacing(5) vbox.setAlignment(Qt.AlignTop | Qt.AlignHCenter) - group_box.setFixedWidth(220) - group_box.setFixedHeight(140) + group_box.setFixedWidth(260) + group_box.setFixedHeight(240) group_box.setFont(self.font_gui) group_box.setAlignment(int(Qt.AlignTop | Qt.AlignHCenter)) group_box.setLayout(vbox) @@ -232,7 +240,7 @@ class AppGui(QWidget): vbox.setContentsMargins(9, 19, 9, 9) vbox.setSpacing(5) vbox.setAlignment(Qt.AlignTop | Qt.AlignHCenter) - group_box.setFixedWidth(220) + group_box.setFixedWidth(260) group_box.setFixedHeight(100) group_box.setFont(self.font_gui) group_box.setAlignment(int(Qt.AlignTop | Qt.AlignHCenter)) diff --git a/tina.json b/tina.json index a1b55a3..a83cef9 100755 --- a/tina.json +++ b/tina.json @@ -18,6 +18,9 @@ "daqTrigger": "ZWSGA-CECL-TCINJ:TRG-SINGLE:PROC", "daqReady": "ZWSGA-CECL-TCINJ:SCOPE-ACQ-CNT", "daqErrorCount": "ZWSGA-CECL-TCINJ:ERR-CNT", + "samplingFreq": "ZWSGA-CECL-TCINJ:SCOPE-SMP-FREQ", + "samplingNum": "ZWSGA-CECL-TCINJ:SCOPE-SMP-NUM", + "daqWindow": "ZWSGA-CECL-TCINJ:SCOPE-ACQ-WINDOW", "wfEntry": "ZWSGA-CECL-TCINJ:SCOPE-CH0", "wfExit": "ZWSGA-CECL-TCINJ:SCOPE-CH1", "IEntry": "ENTRY:IST:1", @@ -27,6 +30,9 @@ "daqTrigger": "ZWSGA-CECL-TCRING:TRG-SINGLE.PROC", "daqReady": "ZWSGA-CECL-TCRING:SCOPE-ACQ-CNT", "daqErrorCount": "ZWSGA-CECL-TCRING:ERR-CNT", + "samplingFreq": "ZWSGA-CECL-TCRING:SCOPE-SMP-FREQ", + "samplingNum": "ZWSGA-CECL-TCRING:SCOPE-SMP-NUM", + "daqWindow": "ZWSGA-CECL-TCRING:SCOPE-ACQ-WINDOW", "wfEntry": "ZWSGA-CECL-TCRING:SCOPE-CH0", "wfExit": "ZWSGA-CECL-TCRING:SCOPE-CH1", "IEntry": "MNC3:IST:2", @@ -72,7 +78,7 @@ "peakDistance": {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"Min peak distance: ", "value" : 10 }}, "correlationPeakDifference": {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"Min dcorr(peak1-peak2):", "value" : 0.01}}, "minimumCurrent": {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"Inj2 I_min (mA):", "value" : "0.100"}}, - "reverseInput": {"flag": 1, "data":{ "widget": "QCheckBox", "text" :"Reverse Input Polarity: ", "value" : 0, "orientation":"RightToLeft"}}, + "reverseInput": {"flag": 1, "data":{ "widget": "QCheckBox", "text" :"Reverse Input Polarity: ", "value" : 1, "orientation":"RightToLeft"}}, "reverseOutput": {"flag": 1, "data":{ "widget": "QCheckBox", "text" :"Reverse Output Polarity: ", "value" : 1, "orientation":"RightToLeft"}} }, " Cyclotron ": { @@ -80,16 +86,14 @@ "peakDistance": {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"Min peak distance: ", "value" : 10 }}, "correlationPeakDifference": {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"Min dcorr(peak1-peak2):", "value" : 0.005 }}, "minimumCurrent": {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"Inj2 I_min (mA):", "value" : "0.100"}}, - "reverseInput": {"flag": 1, "data":{ "widget": "QCheckBox", "text" :"Reverse Input Polarity: ", "value" : 0, "orientation":"RightToLeft"}}, + "reverseInput": {"flag": 1, "data":{ "widget": "QCheckBox", "text" :"Reverse Input Polarity: ", "value" : 1, "orientation":"RightToLeft"}}, "reverseOutput": {"flag": 1, "data":{ "widget": "QCheckBox", "text" :"Reverse Output Polarity: ", "value" : 1, "orientation":"RightToLeft"}} } }, "Parameters":{ - "freqrf" : {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"RF Freq (10^6/s):", "value" : 50.6328 }}, - "freqsampling" : {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"Sampling Freq (GHz):", "value" : 3.036 }}, - + "freqrf" : {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"RF Freq (10^6/s):", "value" : 50.6328 }}, "drawLine" : {"flag" : 1, "data":{ "widget": "QHLine", "text" : "None", "value" : "None"}}, "accelerator" : {"flag" : 1, "data":{ "widget": "QTabWidget", "text" : "Accelerator: ", "link" : "QTabAccelerator", "value" : 1, diff --git a/tina.sh b/tina.sh index 17b3187..10b0f22 100755 --- a/tina.sh +++ b/tina.sh @@ -1,5 +1,5 @@ #!/bin/bash -cd /hipa/bd/applications/tina/1.2.0 +cd /hipa/bd/applications/tina/1.3.0 # For use if script is sourced rather than executed appNameDefault="tina.sh"