193 lines
3.7 KiB
Python
Executable File
193 lines
3.7 KiB
Python
Executable File
from org.csstudio.opibuilder.scriptUtil import PVUtil, ConsoleUtil, ScriptUtil
|
|
from org.eclipse.gef import EditPartListener
|
|
from org.csstudio.utility.pv import PVFactory
|
|
|
|
pv_cbs = PVFactory.createPV("loc://atca_iop_cbs")
|
|
pv_cbs_3 = PVFactory.createPV("loc://atca_iop_cbs3")
|
|
pv_cbs_3_rt = PVFactory.createPV("loc://atca_iop_rt_cbs3")
|
|
pv_cbs_3_sm = PVFactory.createPV("loc://atca_iop_sm_cbs3")
|
|
pv_sel_slot = PVFactory.createPV("loc://atca_iop_sel_slot")
|
|
pv_fir_fixed = PVFactory.createPV("loc://atca_iop_fir_fixed")
|
|
pv_board_order = PVFactory.createPV("loc://atca_iop_order")
|
|
|
|
val_cbs = "0.000"
|
|
val_cbs3 = "0.000"
|
|
val_cbs3_rt = "0.000"
|
|
val_cbs3_sm = "0.000"
|
|
val_sel_slot = 0
|
|
val_fir_fixed = 0
|
|
val_order = "0.000"
|
|
|
|
try:
|
|
pv_cbs.start();
|
|
val_cbs = PVUtil.getString(pv_cbs)
|
|
|
|
if val_cbs == "0.000":
|
|
pv_cbs.setValue("TEST-PTYP");
|
|
except:
|
|
pass
|
|
|
|
|
|
try:
|
|
pv_cbs_3.start();
|
|
val_cbs3 = PVUtil.getString(pv_cbs_3)
|
|
|
|
if val_cbs3 == "0.000":
|
|
pv_cbs_3.setValue("ATCA");
|
|
except:
|
|
pass
|
|
|
|
try:
|
|
pv_cbs_3_rt.start();
|
|
val_cbs3_rt = PVUtil.getString(pv_cbs_3_rt)
|
|
|
|
if val_cbs3_rt == "0.000":
|
|
pv_cbs_3_rt.setValue("MT01");
|
|
except:
|
|
pass
|
|
|
|
try:
|
|
pv_cbs_3_sm.start();
|
|
val_cbs3_sm = PVUtil.getString(pv_cbs_3_sm)
|
|
|
|
if val_cbs3_sm == "0.000":
|
|
pv_cbs_3_sm.setValue("SM01");
|
|
except:
|
|
pass
|
|
|
|
try:
|
|
pv_sel_slot.start();
|
|
val_sel_slot = PVUtil.getDouble(pv_sel_slot)
|
|
|
|
if val_sel_slot == 0:
|
|
pv_sel_slot.setValue(13);
|
|
except:
|
|
pass
|
|
|
|
try:
|
|
pv_fir_fixed.start();
|
|
val_fir_fixed = PVUtil.getDouble(pv_fir_fixed)
|
|
|
|
if val_fir_fixed == 0:
|
|
pv_fir_fixed.setValue(10);
|
|
except:
|
|
pass
|
|
|
|
try:
|
|
pv_board_order.start();
|
|
val_order = PVUtil.getString(pv_board_order)
|
|
|
|
if val_order == "0.000":
|
|
pv_board_order.setValue("Physical");
|
|
except:
|
|
pass
|
|
|
|
val_acq_type = "0.000"
|
|
val_adc_scale = 0
|
|
|
|
pv_acq_type = PVFactory.createPV("loc://atca_iop_fir_type")
|
|
pv_adc_scale = PVFactory.createPV("loc://atca_iop_dr_use_scale")
|
|
|
|
try:
|
|
pv_acq_type.start();
|
|
val_acq_type = PVUtil.getString(pv_acq_type)
|
|
|
|
if val_acq_type == "0.000":
|
|
pv_acq_type.setValue("CA");
|
|
except:
|
|
pass
|
|
|
|
|
|
try:
|
|
pv_adc_scale.start();
|
|
val_adc_scale = PVUtil.getDouble(pv_adc_scale)
|
|
|
|
if val_sel_slot == 0:
|
|
val_adc_scale.setValue(1);
|
|
except:
|
|
pass
|
|
|
|
pv_channel = []
|
|
pv_update = []
|
|
pv_amp = []
|
|
pv_signal = []
|
|
|
|
for i in range (0, 48):
|
|
ch_number = ""
|
|
if i < 10:
|
|
ch_number = "0" + str(i)
|
|
else:
|
|
ch_number = str(i)
|
|
# ConsoleUtil.writeWarning("i = " + str(i));
|
|
pv_channel.append(PVFactory.createPV("loc://atca_iop_channel" + ch_number))
|
|
pv_update.append(PVFactory.createPV("loc://update" + ch_number))
|
|
pv_amp.append(PVFactory.createPV("loc://amp" + ch_number))
|
|
pv_signal.append(PVFactory.createPV("loc://wf" + ch_number))
|
|
|
|
for i in range (0, 48):
|
|
|
|
val_channel = 0
|
|
val_update = 0
|
|
val_amp = 0
|
|
val_signal = "0.000"
|
|
|
|
try:
|
|
pv_channel[i].start()
|
|
val_channel = PVUtil.getDouble(pv_channel[i])
|
|
|
|
if val_channel == 0:
|
|
pv_channel[i].setValue(i)
|
|
except:
|
|
pass
|
|
|
|
try:
|
|
pv_update[i].start()
|
|
val_update = PVUtil.getDouble(pv_update[i])
|
|
|
|
if val_update == 0:
|
|
pv_update[i].setValue(100)
|
|
except:
|
|
pass
|
|
|
|
try:
|
|
pv_amp[i].start()
|
|
val_amp = PVUtil.getDouble(pv_amp[i])
|
|
|
|
if val_amp == 0:
|
|
pv_amp[i].setValue(10)
|
|
except:
|
|
pass
|
|
|
|
|
|
try:
|
|
pv_signal[i].start()
|
|
val_signal = PVUtil.getString(pv_signal[i])
|
|
|
|
if val_signal == "0.000":
|
|
pv_signal[i].setValue("sin")
|
|
except:
|
|
pass
|
|
|
|
class OPICloseListener(EditPartListener):
|
|
def partDeactivated(self, editpart):
|
|
|
|
ScriptUtil.executeSystemCommand("pkill -9 testAO-wave", 1);
|
|
|
|
pv_cbs.stop();
|
|
pv_cbs_3.stop();
|
|
pv_cbs_3_rt.stop();
|
|
pv_cbs_3_sm.stop();
|
|
pv_sel_slot.stop();
|
|
pv_fir_fixed.stop();
|
|
pv_acq_type.stop();
|
|
pv_adc_scale.stop();
|
|
pv_board_order.stop();
|
|
|
|
for i in range (0, 8):
|
|
pv_channel[i].stop()
|
|
pv_update[i].stop()
|
|
pv_amp[i].stop()
|
|
pv_signal[i].stop()
|
|
|
|
widget.addEditPartListener(OPICloseListener())
|