progressbar argument must be an int

This commit is contained in:
2024-09-24 11:54:03 +02:00
parent 7572c9ca64
commit 297b62311a
2 changed files with 48 additions and 43 deletions

View File

@@ -7,6 +7,7 @@ import inspect
import logging
import math
import os
import pandas as pd
from statistics import mean
import time
import timeit
@@ -48,6 +49,7 @@ class AnalysisProcedure(QObject):
self.cyca = self.parent.cyca
self.check_status = self.parent.check_status
self.check_status_list = self.parent.check_status_list
self.trigger_progressbar = self.parent.trigger_progressbar
self.daq_timeout = 10
self.logging = self.parent.logging
self.logger = self.logging.getLogger(__name__)
@@ -93,24 +95,29 @@ class AnalysisProcedure(QObject):
self.mod_freq = 500 #GHz
self.duty_cycle = 1 # percentage
#Turn off DEBUG for MATLAB
mat_logger = logging.getLogger('matplotlib')
mat_logger.setLevel(logging.ERROR)
#self.trigger_progressbar.emit(70)
@Slot()
def receive_abort(self):
"""
Set abort variable to interrupt measurement
"""
self.abort = True
self.parent.trigger_progressbar.emit(PROGRESS_THREAD_ABORTING)
self.trigger_progressbar.emit(int(PROGRESS_THREAD_ABORTING))
def aborting(self, line_no):
self.abort = False
#mess = "Measurement aborted"
self.parent.trigger_progressbar.emit(PROGRESS_THREAD_ABORTED)
self.trigger_progressbar.emit(int(PROGRESS_THREAD_ABORTED))
self.parent.trigger_log_message.emit(
MsgSeverity.WARN.name, _pymodule, line_no,
("Measurement procedure aborted in analysis thread"), {} )
#########INITIALIZE THE INPUTS FOM THE GUI#######################
@@ -138,11 +145,10 @@ class AnalysisProcedure(QObject):
MsgSeverity.INFO.name, _pymodule, utils.line_no(), mess, {})
else:
self.rf_sample = float(self.input_data['freqsampling'])
try:
self.accelerator = self.input_data['accelerator']
self.accelerator = self.input_data['accelerator']
self.harmonic_no = float(
self.input_data[self.accelerator]['harmonic'])
self.dTcable = float(
@@ -192,13 +198,13 @@ class AnalysisProcedure(QObject):
#Step 1 - Collect ambient data relate to the machine
self.all_data['Ambient data'] = self.collect_ambient_data()
self.parent.trigger_progressbar.emit(PROGRESS_THREAD_START)
self.trigger_progressbar.emit(int(PROGRESS_THREAD_START))
#Step 2 - Perform measurement and return data for processing
self.all_data['Raw data'] = self.measure()
if self.all_data['Raw data'] is None:
self.parent.trigger_progressbar.emit(PROGRESS_THREAD_ERROR)
self.trigger_progressbar.emit(int(PROGRESS_THREAD_ERROR))
return None
#Step 3 - Process the raw data
@@ -207,7 +213,7 @@ class AnalysisProcedure(QObject):
#Step 4 - Provide plots
self.all_data['Figure data'] = self.make_figs()
self.parent.trigger_progressbar.emit(PROGRESS_THREAD_END)
self.trigger_progressbar.emit(int(PROGRESS_THREAD_END))
return self.all_data
def load_hdf_file(self, hdf_filename_loaded):
@@ -246,7 +252,7 @@ class AnalysisProcedure(QObject):
self.all_data['Processed data'] = self.process(from_hdf5=True)
self.all_data['Figure data'] = self.make_figs()
self.parent.trigger_progressbar.emit(PROGRESS_THREAD_END)
self.trigger_progressbar.emit(PROGRESS_THREAD_END)
return(self.all_data)
@@ -283,13 +289,13 @@ class AnalysisProcedure(QObject):
self.parent.trigger_log_message.emit(
MsgSeverity.ERROR.name, _pymodule, utils.line_no(),
("Cannot attach CA context in thread " +
"Scan will not be initiated!"), _options)
"Measurement will not be initiated!"), _options)
if self.abort:
self.aborting(utils.line_no())
return {}
self.parent.trigger_progressbar.emit(PROGRESS_THREAD_ERROR)
self.trigger_progressbar.emit(PROGRESS_THREAD_ERROR)
return {}
@@ -319,20 +325,6 @@ class AnalysisProcedure(QObject):
self.check_status_list(_pymodule, "getScalarList",
pv_list, status_list, utils.line_no())
'''
if status != self.cyca.ICAFE_NORMAL:
_options = {}
for pv, stat in zip(pv_list, status_list):
if stat != self.cyca.ICAFE_NORMAL:
_mess = ("Error in 'get' for pv " + pv + ".")
_options['statusCode'] = (
str(stat) + " " + self.cafe.getStatusCodeAsString(stat))
_options['statusInfo'] = self.cafe.getStatusInfo(stat)
self.parent.trigger_log_message.emit(
MsgSeverity.ERROR.name, _pymodule, utils.line_no(),
_mess, _options)
'''
#Put values in dictionary for inspection
for i, (dict_key) in enumerate(self.pv_value_dict.keys()):
@@ -415,7 +407,12 @@ class AnalysisProcedure(QObject):
start = time.time()
finished = False
while (time.time() - start) < self.daq_timeout:
icount = 0
while (time.time() - start) < self.daq_timeout:
if self.abort:
self.aborting(utils.line_no())
return None
value = self.cafe.getCache(pv_daq_state)
if value is None:
stat = self.cafe.getStatus(pv_daq_state)
@@ -423,12 +420,12 @@ class AnalysisProcedure(QObject):
utils.line_no())
elif value == "DONE":
finished = True
break
if self.abort:
self.aborting(utils.line_no())
return None
break
time.sleep(1.0)
icount += 1
progress = int(100*icount/self.daq_timeout)
print("progress", progress, flush=True)
self.trigger_progressbar.emit(progress)
if not finished:
mess = ("DAQ not completed. Exceeded allowed " +
@@ -447,13 +444,18 @@ class AnalysisProcedure(QObject):
return None
series = pd.Series(self.y1_sample)
self.y1_sample = (series * (-1)).tolist()
self.t_sample = [None] * len(self.y1_sample)
self.t_sample[0] = 0
for i in range(1, len(self.y1_sample)):
self.t_sample[i] += self.t_stepsize
else:
self.parent.trigger_progressbar.emit(20)
self.trigger_progressbar.emit(20)
print("open File", flush=True)
file = open('/hipa/bd/data/measurements/tina/20240710-223007_2000.txt','r')
self.parent.trigger_progressbar.emit(40)
self.trigger_progressbar.emit(40)
if self.abort:
file.close()
self.aborting(utils.line_no())
@@ -464,17 +466,16 @@ class AnalysisProcedure(QObject):
self.aborting(utils.line_no())
return None
print("close File", flush=True)
self.parent.trigger_progressbar.emit(60)
self.trigger_progressbar.emit(60)
extract_raw_data()
self.extract_peak_data()
if self.abort:
self.aborting(utils.line_no())
return None
#extract_peak_data()
self.parent.trigger_progressbar.emit(70)
self.trigger_progressbar.emit(70)
#Fill Raw data here
rawdata = {
@@ -501,7 +502,7 @@ class AnalysisProcedure(QObject):
self.aborting(utils.line_no())
return None
self.parent.trigger_progressbar.emit(80)
self.trigger_progressbar.emit(95)
if from_hdf5:
self.unpack_hdf_data()

View File

@@ -33,6 +33,8 @@ _appname = "Tina"
class StartMain(BaseWindow):
trigger_log_message = Signal(str, str, int, str, dict)
trigger_progressbar = Signal(int)
trigger_progressbar_str = Signal(int, str)
ring_cyclotron = 'Cyclotron'
injector_2 = 'Injector'
@@ -53,6 +55,8 @@ class StartMain(BaseWindow):
#self.from_hdf = False in base class
self.message = ""
self.gui = AppGui(self)
def prepare_results_message(self):
"""Prepare results message