progressbar argument must be an int
This commit is contained in:
@@ -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()
|
||||
|
||||
|
||||
4
tina.py
4
tina.py
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user