inserted code for actual measurement

This commit is contained in:
2024-09-24 10:34:51 +02:00
parent 19712a1801
commit 7572c9ca64
5 changed files with 269 additions and 57 deletions

View File

@@ -1,6 +1,7 @@
""" """
Analysis class Analysis class
""" """
from collections import OrderedDict
from datetime import datetime from datetime import datetime
import inspect import inspect
import logging import logging
@@ -8,6 +9,7 @@ import math
import os import os
from statistics import mean from statistics import mean
import time import time
import timeit
import matplotlib import matplotlib
@@ -44,7 +46,9 @@ class AnalysisProcedure(QObject):
self.settings = self.parent.settings self.settings = self.parent.settings
self.cafe = self.parent.cafe self.cafe = self.parent.cafe
self.cyca = self.parent.cyca self.cyca = self.parent.cyca
self.check_status = self.parent.check_status
self.check_status_list = self.parent.check_status_list
self.daq_timeout = 10
self.logging = self.parent.logging self.logging = self.parent.logging
self.logger = self.logging.getLogger(__name__) self.logger = self.logging.getLogger(__name__)
self.logger.debug("Logging activated in analysis procedure") self.logger.debug("Logging activated in analysis procedure")
@@ -52,6 +56,9 @@ class AnalysisProcedure(QObject):
self.abort = False self.abort = False
self.trigger_abort.connect(self.receive_abort) self.trigger_abort.connect(self.receive_abort)
#Hold PV names and their values
self.pv_value_dict = OrderedDict()
self.pv_dict = {}
#Package the data as so: #Package the data as so:
self.all_data = {} self.all_data = {}
self.all_data['Input data'] = {} self.all_data['Input data'] = {}
@@ -76,7 +83,7 @@ class AnalysisProcedure(QObject):
self.N_turns = None self.N_turns = None
#self.t_stepsize = 0.000000019750043 #0.00000002 #self.t_stepsize = 0.000000019750043 #0.00000002
self.rf_freq = 50.6328 #10**6 self.rf_freq = 50.6328 #10**6
self.rf_sample =2.5 #10**6 self.rf_sample =3.0 #10**6
self.pulse_stepsize = 1/(self.rf_freq*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**9)
self.t_interval = math.ceil(self.pulse_stepsize/self.t_stepsize) self.t_interval = math.ceil(self.pulse_stepsize/self.t_stepsize)
@@ -120,27 +127,22 @@ class AnalysisProcedure(QObject):
self.simulation = bool(self.input_data['simulation']) self.simulation = bool(self.input_data['simulation'])
print("INPUT:", self.input_data)
self.rf_freq = float(self.input_data['freqrf']) self.rf_freq = float(self.input_data['freqrf'])
self.rf_sample = float(self.input_data['freqsampling'])
#2.5 MHz if oscilloscpe
if self.simulation:
self.rf_sample = 2.5
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'])
try: try:
self.accelerator = self.input_data['accelerator'] self.accelerator = self.input_data['accelerator']
print("self.accelerator -1 ", self.accelerator, flush=True)
except KeyError as ex:
self.logger.debug("KeyError {0}".format(ex))
print("self.accelerator-2", self.accelerator, flush=True)
try:
self.accelerator = self.input_data['qtabdata']
print("self.accelerator-3", self.accelerator, flush=True)
except KeyError as ex:
self.logger.debug("KeyError {0}".format(ex))
try:
print("self.accelerator-F", self.accelerator, flush=True)
self.harmonic_no = float( self.harmonic_no = float(
self.input_data[self.accelerator]['harmonic']) self.input_data[self.accelerator]['harmonic'])
self.dTcable = float( self.dTcable = float(
@@ -154,13 +156,10 @@ class AnalysisProcedure(QObject):
self.duty_cycle = float( self.duty_cycle = float(
self.input_data[self.accelerator]['dutycycle']) # * 0.01 self.input_data[self.accelerator]['dutycycle']) # * 0.01
print("logging info level==>", self.logger.getEffectiveLevel(),
flush=True)
self.loglevel = self.input_data['loggingLevel'] self.loglevel = self.input_data['loggingLevel']
self.logger.setLevel(self.logging.getLevelName(self.loglevel)) self.logger.setLevel(self.logging.getLevelName(self.loglevel))
print("logging info level==>", self.logger.getEffectiveLevel(),
flush=True)
self.logger.info("INPUT PARAMETERS") self.logger.info("INPUT PARAMETERS")
self.logger.info("Accelerator: {0}".format(self.accelerator)) self.logger.info("Accelerator: {0}".format(self.accelerator))
@@ -231,7 +230,7 @@ class AnalysisProcedure(QObject):
input_data = all_data['Input_data'] input_data = all_data['Input_data']
#Read the input parameters #Read the input parameters
self.initialize_input_parameters(input_data) self.initialize_input_parameters(input_data)
print("initiliaze", flush=True)
ambient_data = all_data['Ambient_data'] ambient_data = all_data['Ambient_data']
self.raw_data = all_data['Raw_data'] self.raw_data = all_data['Raw_data']
@@ -259,6 +258,19 @@ class AnalysisProcedure(QObject):
self.time_stamp = datetime.fromtimestamp( self.time_stamp = datetime.fromtimestamp(
time_in_seconds).strftime('%a %d-%m-%Y %H:%M:%S') time_in_seconds).strftime('%a %d-%m-%Y %H:%M:%S')
ambient_data = {
'Time in seconds': int(time_in_seconds),
'Time stamp': self.time_stamp,
}
self.logger.debug("{0}".format(ambient_data))
#if self.simulation:
# return ambient_data
#EPICS... #EPICS...
handles = self.cafe.getHandles()[0] handles = self.cafe.getHandles()[0]
status = self.cafe.attachContext(handles[0]) status = self.cafe.attachContext(handles[0])
@@ -274,20 +286,62 @@ class AnalysisProcedure(QObject):
"Scan will not be initiated!"), _options) "Scan will not be initiated!"), _options)
if self.abort: if self.abort:
self.aborting(_line()) self.aborting(utils.line_no())
return {} return {}
self.parent.trigger_progressbar.emit(PROGRESS_THREAD_ERROR) self.parent.trigger_progressbar.emit(PROGRESS_THREAD_ERROR)
return {} return {}
ambient_data = { pv_list = []
'Time in seconds': int(time_in_seconds),
'Time stamp': self.time_stamp, for key, value in self.settings.data['PV'][self.accelerator].items():
} self.pv_value_dict[key] = OrderedDict()
self.pv_value_dict[key][value] =0
self.pv_dict[key] = value
pv_list.append(value)
self.logger.debug("{0}".format(ambient_data)) self.cafe.openPrepare()
handle_list = self.cafe.open(pv_list)
self.cafe.openNowAndWait(1.0)
self.cafe.setGetActionWhenMonitorPolicyAllHandles(
self.cyca.GET_FROM_CACHE)
value_list, status, status_list = self.cafe.getScalarList(handle_list)
if self.debug:
for pv, val, stat in zip(pv_list, value_list, status_list):
print(pv, val, stat)
if status != self.cyca.ICAFE_NORMAL:
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()):
self.pv_value_dict[dict_key] = value_list[i]
if self.debug:
print ("EPICS PVS==>", self.pv_value_dict, flush=True)
print ("No of turns", self.pv_value_dict['nturns'])
return ambient_data return ambient_data
@@ -310,7 +364,7 @@ class AnalysisProcedure(QObject):
#sys.exit() #sys.exit()
self.y1_pulse = (y1_peaks[1]['peak_heights']) self.y1_pulse = (y1_peaks[1]['peak_heights'])
self.y2_pulse = (y2_peaks[1]['peak_heights']) self.y2_pulse = (y2_peaks[1]['peak_heights'])
print(type(self.y1_pulse), flush=True)
def measure(self): def measure(self):
@@ -344,7 +398,58 @@ class AnalysisProcedure(QObject):
self.y2_sample.append(float(val[2])) self.y2_sample.append(float(val[2]))
t_inc += self.t_stepsize t_inc += self.t_stepsize
if self.simulation: if not self.simulation:
#start DAQ
#Set
pv_daq_start = self.pv_dict['daqStart']
pv_daq_state = self.pv_dict['daqState']
pv_wf_entry = self.pv_dict['wfEntry']
pv_wf_exit = self.pv_dict['wfExit']
pv_wf = [pv_wf_entry, pv_wf_exit]
stat = self.cafe.set(pv_daq_start, 1)
self.check_status(_pymodule, "set", pv_daq_start, stat,
utils.line_no())
#Monitor DAQ State
start = time.time()
finished = False
while (time.time() - start) < self.daq_timeout:
value = self.cafe.getCache(pv_daq_state)
if value is None:
stat = self.cafe.getStatus(pv_daq_state)
self.check_status(_pymodule, "getCache", pv_daq_state, stat,
utils.line_no())
elif value == "DONE":
finished = True
break
if self.abort:
self.aborting(utils.line_no())
return None
time.sleep(1.0)
if not finished:
mess = ("DAQ not completed. Exceeded allowed " +
"time limit of {0}s".format(self.daq_timeout))
self.parent.trigger_log_message.emit(
MsgSeverity.ERROR.name, _pymodule, utils.line_no(),
mess, {})
return None
#Read WF from EPICS and fill sample y1_sample, y2_sample
(self.y1_sample, self.y2_sample), status, status_list = self.cafe.getCompoundList(
pv_wf, cacheFlag=True)
if status != self.cyca.ICAFE_NORMAL:
self.check_status_list(_pymodule, "getCompoundListCache",
pv_wf, status_list, utils.line_no())
return None
else:
self.parent.trigger_progressbar.emit(20) self.parent.trigger_progressbar.emit(20)
print("open File", flush=True) print("open File", flush=True)
file = open('/hipa/bd/data/measurements/tina/20240710-223007_2000.txt','r') file = open('/hipa/bd/data/measurements/tina/20240710-223007_2000.txt','r')
@@ -361,6 +466,7 @@ class AnalysisProcedure(QObject):
print("close File", flush=True) print("close File", flush=True)
self.parent.trigger_progressbar.emit(60) self.parent.trigger_progressbar.emit(60)
extract_raw_data() extract_raw_data()
self.extract_peak_data() self.extract_peak_data()

View File

@@ -6,8 +6,8 @@ from qtpy.QtCore import __version__ as QT_VERSION_STR
from qtpy.QtCore import QEventLoop, Qt, QTimer, Slot from qtpy.QtCore import QEventLoop, Qt, QTimer, Slot
from qtpy.QtWidgets import ( from qtpy.QtWidgets import (
QApplication, QGridLayout, QGroupBox, QHBoxLayout, QLabel, QMessageBox, QApplication, QGridLayout, QGroupBox, QHBoxLayout, QLabel, QMessageBox,
QPushButton, QTabBar, QTabWidget, QTableWidgetItem, QTextEdit, QVBoxLayout, QPushButton, QStackedWidget, QTabBar, QTabWidget, QTableWidgetItem,
QWidget) QTextEdit, QVBoxLayout, QWidget)
from common.packages import elog from common.packages import elog
@@ -30,10 +30,14 @@ class AppGui(QWidget):
self.parent = parent self.parent = parent
self.cafe = self.parent.cafe self.cafe = self.parent.cafe
self.cyca = self.parent.cyca self.cyca = self.parent.cyca
self.settings = self.parent.settings
self.check_status = self.parent.check_status self.check_status = self.parent.check_status
self.check_status_list = self.parent.check_status_list self.check_status_list = self.parent.check_status_list
self.elog_enum = self.parent.elog_enum self.elog_enum = self.parent.elog_enum
self.accelerator_list = [self.parent.injector_2,
self.parent.ring_cyclotron]
self.send_to_log_window = self.parent.send_to_log_window self.send_to_log_window = self.parent.send_to_log_window
self.show_log_message = self.parent.show_log_message self.show_log_message = self.parent.show_log_message
self.statusbar = self.parent.statusbar self.statusbar = self.parent.statusbar
@@ -52,3 +56,81 @@ class AppGui(QWidget):
self.gui_frame.measurement_tab_wgt.setFixedHeight(460) self.gui_frame.measurement_tab_wgt.setFixedHeight(460)
self.gui_frame.operator_wgt.setFixedHeight(640) self.gui_frame.operator_wgt.setFixedHeight(640)
self.gui_frame.expert_wgt.setFixedHeight(240) self.gui_frame.expert_wgt.setFixedHeight(240)
self.daq_wgt = self.daq_group_qtabwidget(widget_type="QStackedWidget")
self.gui_frame.measurement_layout.addWidget(
self.daq_wgt, 0, 1, 1, 1, alignment=Qt.AlignTop)
self.daq_wgt.setCurrentIndex(self.parent.default_idx)
self.daq_wgt.currentChanged.emit(self.parent.default_idx)
self.gui_frame.line_sender_dict[
'accelerator'].currentChanged.connect(self.cb_accelerator)
def cb_accelerator(self, idx):
self.daq_wgt.setCurrentIndex(idx)
def daq_group_qtabwidget(self, widget_type="QStackedWidget"):
accel_wgt_dict = {}
if "QTabWidget" in widget_type:
accel_tab_widget = QTabWidget()
accel_tab_widget.setFont(self.font_gui)
accel_tab_widget.setStyleSheet("QTabBar {font-size: 10pt;}")
accel_tab_widget.tabBar().setShape(QTabBar.TriangularNorth)
for i, accel in enumerate(self.accelerator_list):
accel_wgt_dict[accel] = self.daq_group(accel)
accel_tab_widget.addTab(accel_wgt_dict[accel], accel)
color = self.settings.data['Parameters']['accelerator'][data][
'color'][i]
accel_tab_widget.tabBar().setTabTextColor(i, QColor(color))
else:
accel_tab_widget = QStackedWidget()
for i, accel in enumerate(self.accelerator_list):
accel_wgt_dict[accel] = self.daq_group(accel)
accel_tab_widget.addWidget(accel_wgt_dict[accel])
accel_tab_widget.setFixedWidth(300)
accel_tab_widget.setFixedHeight(160)
return accel_tab_widget
def daq_group(self, accel):
group_box = QGroupBox("{0} DAQ".format(accel))
obj_name = "CYCLOTRON" if self.parent.ring_cyclotron in accel else \
"INJECTOR"
group_box.setObjectName(obj_name)
vbox = QGridLayout()
pv_daq = []
pv_daq.append(self.settings.data['PV'][accel]['daqStart'])
pv_daq.append(self.settings.data['PV'][accel]['daqState'])
self.cafe.openPrepare()
self.cafe.open(pv_daq)
self.cafe.openNowAndWait(1.0)
pv1 = CAQLabel(self, pv_name=pv_daq[0])
pv2 = CAQLabel(self, pv_name=pv_daq[1])
vbox.addWidget(QLabel('Start/Stop Status:'), 0, 0)
vbox.addWidget(QLabel('Acquisition State:'), 1, 0)
vbox.addWidget(pv1, 0, 1)
vbox.addWidget(pv2, 1, 1)
vbox.setContentsMargins(9, 19, 9, 9)
vbox.setSpacing(5)
vbox.setAlignment(Qt.AlignTop | Qt.AlignHCenter)
group_box.setFixedWidth(268)
group_box.setFixedHeight(100)
group_box.setFont(self.font_gui)
group_box.setAlignment(int(Qt.AlignTop | Qt.AlignHCenter))
group_box.setLayout(vbox)
qw = QWidget()
grid = QGridLayout()
grid.addWidget(group_box, 0, 0)
qw.setLayout(grid)
return qw

View File

@@ -14,7 +14,19 @@
"addDateToDir" : 0 "addDateToDir" : 0
}, },
"header" : ["SHIFT", "INJ2", "IP2", "IW2", "PK1", "PK2", "SINQ", "UCN"], "header" : ["SHIFT", "INJ2", "IP2", "IW2", "PK1", "PK2", "SINQ", "UCN"],
"PVnturns" : {"Injector": "PV-INJ:NTURNS", "Cyclotron": "PV-CYC:NTURNS"}, "PV" : {"Injector": {"nturns": "PV-INJ:NTURNS",
"daqStart": "PV-INJ:DAQ-START",
"daqState": "PV-INJ:DAQ-STATE",
"wfEntry": "PV-INJ:WF-ENTRY",
"wfExit": "PV-INJ:WF-EXIT"
},
"Cyclotron": {"nturns": "PV-CYC:NTURNS",
"daqStart": "PV-CYC:DAQ-START",
"daqState": "PV-CYC:DAQ-STATE",
"wfEntry": "PV-CYC:WF-ENTRY",
"wfExit": "PV-CYC:WF-EXIT"
}
},
"HIPA": ["Injector", "Ring"], "HIPA": ["Injector", "Ring"],
"HIPA2": {"test": ["Injector", "Ring"]}, "HIPA2": {"test": ["Injector", "Ring"]},
"QTabAccelerator":{ "QTabAccelerator":{
@@ -35,18 +47,18 @@
"facility": {"flag": 0, "data" : {"widget": "QComboBox", "text" : "Facility:", "facility": {"flag": 0, "data" : {"widget": "QComboBox", "text" : "Facility:",
"link": ["HIPA"],"layout" : "Horizontal"}}, "link": ["HIPA"],"layout" : "Horizontal"}},
"freqrf" : {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"RF Freq (10^6/s):", "value" : 50.6328 }}, "freqrf" : {"flag": 1, "data":{ "widget": "QLineEdit", "text" :"RF Freq (10^6/s):", "value" : 50.6328 }},
"freqsampling" : {"flag": 1, "data":{ "widget": "QLineRead", "text" :"Sampling Freq (GHz):", "value" : 2.5 }}, "freqsampling" : {"flag": 1, "data":{ "widget": "QLineRead", "text" :"Sampling Freq (GHz):", "value" : 3.0 }},
"drawLine" : {"flag" : 1, "data":{ "widget": "QHLine", "text" : "None", "value" : "None"}}, "drawLine" : {"flag" : 1, "data":{ "widget": "QHLine", "text" : "None", "value" : "None"}},
"accelerator" : {"flag" : 1, "data":{ "widget": "QTabWidget", "text" : "Accelerator: ", "accelerator" : {"flag" : 1, "data":{ "widget": "QTabWidget", "text" : "Accelerator: ",
"link" : "QTabAccelerator", "value" : 1, "link" : "QTabAccelerator", "value" : 1,
"color" : ["#0080aa", "#0000ff"]}} "color" : ["#008b8b", "#0047ab" ]}}
}, },
"Expert":{ "Expert":{
"debug": {"flag" : 1, "data":{ "widget": "None", "text" : "Debug", "value" : 0}}, "debug": {"flag" : 1, "data":{ "widget": "None", "text" : "Debug", "value" : 0}},
"simulation": {"flag" : 1, "data":{ "widget": "None", "text" : "Simulation", "value" : 1}} "simulation": {"flag" : 1, "data":{ "widget": "None", "text" : "Oscilloscope", "value" : 1}}
}, },
"GUI": { "GUI": {
"resultsTabTitle" : "Plots", "resultsTabTitle" : "Plots",

42
tina.py
View File

@@ -13,7 +13,6 @@ from qtpy.QtWidgets import QApplication, QMessageBox
from apps4ops.bdbase.base import BaseWindow from apps4ops.bdbase.base import BaseWindow
from apps4ops.bdbase import h5_storage, utils from apps4ops.bdbase import h5_storage, utils
#from apps4ops.bdbase.utils import _line
from apps4ops.bdbase.enumkind import Facility, MsgSeverity, UserMode from apps4ops.bdbase.enumkind import Facility, MsgSeverity, UserMode
from apps4ops.bdbase.helpbrowser import HelpBrowser from apps4ops.bdbase.helpbrowser import HelpBrowser
from apps4ops.hipa.sendeloghipa import QSendToELOG from apps4ops.hipa.sendeloghipa import QSendToELOG
@@ -46,8 +45,11 @@ class StartMain(BaseWindow):
self.appname = _appname self.appname = _appname
self.source_file = _abspath #required for HDF self.source_file = _abspath #required for HDF
self.elog_enum = ElogHIPA() self.elog_enum = ElogHIPA()
self.message_elog = None
self.accelerator = self.ring_cyclotron #default self.default_idx = self.settings.data['Parameters']['accelerator'][
'data']['value']
self.accelerator = self.ring_cyclotron if self.default_idx else \
self.injector_2
#self.from_hdf = False in base class #self.from_hdf = False in base class
self.message = "" self.message = ""
self.gui = AppGui(self) self.gui = AppGui(self)
@@ -61,6 +63,7 @@ class StartMain(BaseWindow):
delay = self.all_data["Processed data"]["delay"] delay = self.all_data["Processed data"]["delay"]
except KeyError: except KeyError:
self.message = "" self.message = ""
self.message_elog = ""
return return
try: try:
@@ -74,13 +77,22 @@ class StartMain(BaseWindow):
_mess = "Reanalysis from HDF5. " if self.from_hdf else "" _mess = "Reanalysis from HDF5. " if self.from_hdf else ""
self.message = (_mess + self.message_elog = (
_mess +
''' '''
The number of turns measured in the {0} = {1} ({2:.2f}) No. turns measured in the {0} = {1} ({2:.2f}) <br>
lag = {3}, delay = {4:.3f} (\u00B5s) lag = {3}, delay = {4:.3f} \u00B5s<br>'''.format(
'''.format(self.accelerator, int(self.no_turns), self.no_turns, self.accelerator, int(self.no_turns), self.no_turns,
lag_full, delay*10**6)) lag_full, delay*10**6))
self.message = (
_mess +
'''
No. turns measured in the {0} = {1} ({2:.2f})
lag = {3}, delay = {4:.3f} \u00B5s'''.format(
self.accelerator, int(self.no_turns), self.no_turns,
lag_full, delay*10**6))
@@ -244,14 +256,14 @@ class StartMain(BaseWindow):
ortIdx=self.ort_idx, ortIdx=self.ort_idx,
effektIdx=self.effekt_idx, effektIdx=self.effekt_idx,
title=self.title, title=self.title,
message=self.message, message=self.message_elog,
attachFile=self.attach_files) attachFile=self.attach_files)
time.sleep(0.5) time.sleep(0.5)
self.prepare_elog_message() self.prepare_elog_message()
print(self.message, flush=True) print(self.message_elog, flush=True)
if not self.all_data: if not self.all_data:
QSendToELOG(self, logbook=self.logbook, QSendToELOG(self, logbook=self.logbook,
@@ -262,7 +274,7 @@ class StartMain(BaseWindow):
ortIdx=self.ort_idx, ortIdx=self.ort_idx,
effektIdx=self.effekt_idx, effektIdx=self.effekt_idx,
title=self.title, title=self.title,
message=self.message, message=self.message_elog,
attachFile=self.attach_files) attachFile=self.attach_files)
return return
@@ -303,7 +315,7 @@ class StartMain(BaseWindow):
debug = True debug = True
dry_run = False dry_run = False
nturns = int(self.no_turns) nturns = int(self.no_turns)
pv = self.settings.data["PVnturns"]["Cyclotron"] pv = self.settings.data["PV"]["Cyclotron"]["nturns"]
dict_bunch[pv] = nturns dict_bunch[pv] = nturns
if not dry_run: if not dry_run:
status, status_list = self.send_to_epics(dict_bunch) status, status_list = self.send_to_epics(dict_bunch)
@@ -372,7 +384,7 @@ if __name__ == "__main__":
app = QApplication(sys.argv) app = QApplication(sys.argv)
splash = BaseWindow.initialize_application( splash = BaseWindow.initialize_application(
app, appname=_appname, delay=20, facility=Facility.HIPA) app, appname=_appname, delay=5, facility=Facility.HIPA)
myapp = StartMain() myapp = StartMain()

View File

@@ -30,19 +30,19 @@ if [ "$1" ]; then
echo "Using default version $PYTHON_VERSION" echo "Using default version $PYTHON_VERSION"
elif [ "$1" == "3.7" -o "$1" == "37" ]; then elif [ "$1" == "3.7" -o "$1" == "37" ]; then
PYTHON_VERSION=3.7 PYTHON_VERSION=3.7
PYTHON_PATH=.:/opt/gfa/cafe/python/pycafe/cafe-1.20.0-gcc-7.3.0/lib/${_EPICS_HOST_ARCH}:/hipa/bd/applications/deps/apps4ops/v1.11.0 PYTHON_PATH=.:/opt/gfa/cafe/python/pycafe/cafe-1.20.0-gcc-7.3.0/lib/${_EPICS_HOST_ARCH}:/hipa/bd/applications/deps/apps4ops/v1.12.0
module unload gcc module unload gcc
module load gcc/7.3.0 module load gcc/7.3.0
elif [ "$1" == "3.8" -o "$1" == "38" ]; then elif [ "$1" == "3.8" -o "$1" == "38" ]; then
PYTHON_VERSION=3.8 PYTHON_VERSION=3.8
PYTHON_PATH=.:/opt/gfa/cafe/python/pycafe/cafe-1.19.3/lib/${_EPICS_HOST_ARCH}:/hipa/bd/applications/deps/apps4ops/v1.11.0 PYTHON_PATH=.:/opt/gfa/cafe/python/pycafe/cafe-1.19.3/lib/${_EPICS_HOST_ARCH}:/hipa/bd/applications/deps/apps4ops/v1.12.0
module unload gcc module unload gcc
module load gcc/7.5.0 module load gcc/7.5.0
elif [ "$1" == "3.10" -o "$1" == "310" ]; then elif [ "$1" == "3.10" -o "$1" == "310" ]; then
PYTHON_VERSION=3.10 PYTHON_VERSION=3.10
PYTHON_PATH=.:/opt/gfa/cafe/python/pycafe/cafe-1.20.0-gcc-7.5.0/lib/${_EPICS_HOST_ARCH}:/hipa/bd/applications/deps/apps4ops/v1.11.0 PYTHON_PATH=.:/opt/gfa/cafe/python/pycafe/cafe-1.20.0-gcc-7.5.0/lib/${_EPICS_HOST_ARCH}:/hipa/bd/applications/deps/apps4ops/v1.12.0
module unload gcc module unload gcc
module load gcc/7.5.0 module load gcc/7.5.0
else else