From 3daa0e6dcf0c57fb4e2df5d99938456a3468e9cb Mon Sep 17 00:00:00 2001 From: nmarks99 Date: Thu, 24 Jul 2025 09:36:20 -0500 Subject: [PATCH] StreamDevice support for CAEN N8031 power suppply --- ipApp/Db/caen_N8031.db | 719 +++++ ipApp/Db/caen_N8031.proto | 128 + ipApp/Db/caen_N8031_settings.req | 8 + ipApp/op/ui/caen_N8031.ui | 4314 ++++++++++++++++++++++++++++++ 4 files changed, 5169 insertions(+) create mode 100644 ipApp/Db/caen_N8031.db create mode 100644 ipApp/Db/caen_N8031.proto create mode 100644 ipApp/Db/caen_N8031_settings.req create mode 100644 ipApp/op/ui/caen_N8031.ui diff --git a/ipApp/Db/caen_N8031.db b/ipApp/Db/caen_N8031.db new file mode 100644 index 0000000..e53f5d8 --- /dev/null +++ b/ipApp/Db/caen_N8031.db @@ -0,0 +1,719 @@ +record(fanout, "$(P)$(R)ReadAll") { + field(PINI, 1) + field(LNK0, "$(P)$(R)ReadVoltages.PROC") + field(LNK1, "$(P)$(R)ReadCurrents.PROC") + field(LNK2, "$(P)$(R)ReadPowerStates.PROC") + field(LNK3, "$(P)$(R)ReadRampUpRates.PROC") + field(LNK4, "$(P)$(R)ReadRampDownRates.PROC") + field(LNK5, "$(P)$(R)ReadPowerDownModes.PROC") + field(LNK6, "$(P)$(R)ReadIMonRanges.PROC") +} +record(bo, "$(P)$(R)ReadVoltages") { + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto read_voltages($(P)$(R)) $(PORT)") +} +record(bo, "$(P)$(R)ReadCurrents") { + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto read_currents($(P)$(R)) $(PORT)") +} +record(bo, "$(P)$(R)ReadPowerStates") { + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto read_power_states($(P)$(R)) $(PORT)") +} +record(bo, "$(P)$(R)ReadRampUpRates") { + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto read_ramp_up_rates($(P)$(R)) $(PORT)") +} +record(bo, "$(P)$(R)ReadRampDownRates") { + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto read_ramp_down_rates($(P)$(R)) $(PORT)") +} +record(bo, "$(P)$(R)ReadPowerDownModes") { + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto read_power_down_modes($(P)$(R)) $(PORT)") +} +record(bo, "$(P)$(R)ReadIMonRanges") { + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto read_imon_ranges($(P)$(R)) $(PORT)") +} +record(seq, "$(P)$(R)sync_all") { + field(PINI, 1) + field(DLY0, 1) + field(DOL0, 1) + field(LNK0, "$(P)$(R)current_sync.PROC") + field(DOL1, 1) + field(LNK1, "$(P)$(R)voltage_sync.PROC") + field(DOL2, 1) + field(LNK2, "$(P)$(R)power_sync.PROC") + field(DOL3, 1) + field(LNK3, "$(P)$(R)ramp_up_sync.PROC") + field(DOL4, 1) + field(LNK4, "$(P)$(R)ramp_down_sync.PROC") + field(DOL5, 1) + field(LNK5, "$(P)$(R)power_down_mode_sync.PROC") + field(DOL6, 1) + field(LNK6, "$(P)$(R)imon_range_sync.PROC") +} +record(seq, "$(P)$(R)current_sync") { + field(DOL0, "$(P)$(R)CH0:Current_RBV.VAL") + field(LNK0, "$(P)$(R)CH0:Current.VAL NPP") + field(DOL1, "$(P)$(R)CH1:Current_RBV.VAL") + field(LNK1, "$(P)$(R)CH1:Current.VAL NPP") + field(DOL2, "$(P)$(R)CH2:Current_RBV.VAL") + field(LNK2, "$(P)$(R)CH2:Current.VAL NPP") + field(DOL3, "$(P)$(R)CH3:Current_RBV.VAL") + field(LNK3, "$(P)$(R)CH3:Current.VAL NPP") + field(DOL4, "$(P)$(R)CH4:Current_RBV.VAL") + field(LNK4, "$(P)$(R)CH4:Current.VAL NPP") + field(DOL5, "$(P)$(R)CH5:Current_RBV.VAL") + field(LNK5, "$(P)$(R)CH5:Current.VAL NPP") + field(DOL6, "$(P)$(R)CH6:Current_RBV.VAL") + field(LNK6, "$(P)$(R)CH6:Current.VAL NPP") + field(DOL7, "$(P)$(R)CH7:Current_RBV.VAL") + field(LNK7, "$(P)$(R)CH7:Current.VAL NPP") +} +record(seq, "$(P)$(R)voltage_sync") { + field(DOL0, "$(P)$(R)CH0:Voltage_RBV.VAL") + field(LNK0, "$(P)$(R)CH0:Voltage.VAL NPP") + field(DOL1, "$(P)$(R)CH1:Voltage_RBV.VAL") + field(LNK1, "$(P)$(R)CH1:Voltage.VAL NPP") + field(DOL2, "$(P)$(R)CH2:Voltage_RBV.VAL") + field(LNK2, "$(P)$(R)CH2:Voltage.VAL NPP") + field(DOL3, "$(P)$(R)CH3:Voltage_RBV.VAL") + field(LNK3, "$(P)$(R)CH3:Voltage.VAL NPP") + field(DOL4, "$(P)$(R)CH4:Voltage_RBV.VAL") + field(LNK4, "$(P)$(R)CH4:Voltage.VAL NPP") + field(DOL5, "$(P)$(R)CH5:Voltage_RBV.VAL") + field(LNK5, "$(P)$(R)CH5:Voltage.VAL NPP") + field(DOL6, "$(P)$(R)CH6:Voltage_RBV.VAL") + field(LNK6, "$(P)$(R)CH6:Voltage.VAL NPP") + field(DOL7, "$(P)$(R)CH7:Voltage_RBV.VAL") + field(LNK7, "$(P)$(R)CH7:Voltage.VAL NPP") +} +record(seq, "$(P)$(R)power_sync") { + field(DOL0, "$(P)$(R)CH0:Power_RBV.VAL") + field(LNK0, "$(P)$(R)CH0:Power.VAL NPP") + field(DOL1, "$(P)$(R)CH1:Power_RBV.VAL") + field(LNK1, "$(P)$(R)CH1:Power.VAL NPP") + field(DOL2, "$(P)$(R)CH2:Power_RBV.VAL") + field(LNK2, "$(P)$(R)CH2:Power.VAL NPP") + field(DOL3, "$(P)$(R)CH3:Power_RBV.VAL") + field(LNK3, "$(P)$(R)CH3:Power.VAL NPP") + field(DOL4, "$(P)$(R)CH4:Power_RBV.VAL") + field(LNK4, "$(P)$(R)CH4:Power.VAL NPP") + field(DOL5, "$(P)$(R)CH5:Power_RBV.VAL") + field(LNK5, "$(P)$(R)CH5:Power.VAL NPP") + field(DOL6, "$(P)$(R)CH6:Power_RBV.VAL") + field(LNK6, "$(P)$(R)CH6:Power.VAL NPP") + field(DOL7, "$(P)$(R)CH7:Power_RBV.VAL") + field(LNK7, "$(P)$(R)CH7:Power.VAL NPP") +} +record(seq, "$(P)$(R)ramp_up_sync") { + field(DOL0, "$(P)$(R)CH0:RampUpRate_RBV.VAL") + field(LNK0, "$(P)$(R)CH0:RampUpRate.VAL NPP") + field(DOL1, "$(P)$(R)CH1:RampUpRate_RBV.VAL") + field(LNK1, "$(P)$(R)CH1:RampUpRate.VAL NPP") + field(DOL2, "$(P)$(R)CH2:RampUpRate_RBV.VAL") + field(LNK2, "$(P)$(R)CH2:RampUpRate.VAL NPP") + field(DOL3, "$(P)$(R)CH3:RampUpRate_RBV.VAL") + field(LNK3, "$(P)$(R)CH3:RampUpRate.VAL NPP") + field(DOL4, "$(P)$(R)CH4:RampUpRate_RBV.VAL") + field(LNK4, "$(P)$(R)CH4:RampUpRate.VAL NPP") + field(DOL5, "$(P)$(R)CH5:RampUpRate_RBV.VAL") + field(LNK5, "$(P)$(R)CH5:RampUpRate.VAL NPP") + field(DOL6, "$(P)$(R)CH6:RampUpRate_RBV.VAL") + field(LNK6, "$(P)$(R)CH6:RampUpRate.VAL NPP") + field(DOL7, "$(P)$(R)CH7:RampUpRate_RBV.VAL") + field(LNK7, "$(P)$(R)CH7:RampUpRate.VAL NPP") +} +record(seq, "$(P)$(R)ramp_down_sync") { + field(DOL0, "$(P)$(R)CH0:RampDownRate_RBV.VAL") + field(LNK0, "$(P)$(R)CH0:RampDownRate.VAL NPP") + field(DOL1, "$(P)$(R)CH1:RampDownRate_RBV.VAL") + field(LNK1, "$(P)$(R)CH1:RampDownRate.VAL NPP") + field(DOL2, "$(P)$(R)CH2:RampDownRate_RBV.VAL") + field(LNK2, "$(P)$(R)CH2:RampDownRate.VAL NPP") + field(DOL3, "$(P)$(R)CH3:RampDownRate_RBV.VAL") + field(LNK3, "$(P)$(R)CH3:RampDownRate.VAL NPP") + field(DOL4, "$(P)$(R)CH4:RampDownRate_RBV.VAL") + field(LNK4, "$(P)$(R)CH4:RampDownRate.VAL NPP") + field(DOL5, "$(P)$(R)CH5:RampDownRate_RBV.VAL") + field(LNK5, "$(P)$(R)CH5:RampDownRate.VAL NPP") + field(DOL6, "$(P)$(R)CH6:RampDownRate_RBV.VAL") + field(LNK6, "$(P)$(R)CH6:RampDownRate.VAL NPP") + field(DOL7, "$(P)$(R)CH7:RampDownRate_RBV.VAL") + field(LNK7, "$(P)$(R)CH7:RampDownRate.VAL NPP") +} +record(seq, "$(P)$(R)power_down_mode_sync") { + field(DOL0, "$(P)$(R)CH0:PowerDownMode_RBV.VAL") + field(LNK0, "$(P)$(R)CH0:PowerDownMode.VAL NPP") + field(DOL1, "$(P)$(R)CH1:PowerDownMode_RBV.VAL") + field(LNK1, "$(P)$(R)CH1:PowerDownMode.VAL NPP") + field(DOL2, "$(P)$(R)CH2:PowerDownMode_RBV.VAL") + field(LNK2, "$(P)$(R)CH2:PowerDownMode.VAL NPP") + field(DOL3, "$(P)$(R)CH3:PowerDownMode_RBV.VAL") + field(LNK3, "$(P)$(R)CH3:PowerDownMode.VAL NPP") + field(DOL4, "$(P)$(R)CH4:PowerDownMode_RBV.VAL") + field(LNK4, "$(P)$(R)CH4:PowerDownMode.VAL NPP") + field(DOL5, "$(P)$(R)CH5:PowerDownMode_RBV.VAL") + field(LNK5, "$(P)$(R)CH5:PowerDownMode.VAL NPP") + field(DOL6, "$(P)$(R)CH6:PowerDownMode_RBV.VAL") + field(LNK6, "$(P)$(R)CH6:PowerDownMode.VAL NPP") + field(DOL7, "$(P)$(R)CH7:PowerDownMode_RBV.VAL") + field(LNK7, "$(P)$(R)CH7:PowerDownMode.VAL NPP") +} +record(seq, "$(P)$(R)imon_range_sync") { + field(DOL0, "$(P)$(R)CH0:IMonRange_RBV.VAL") + field(LNK0, "$(P)$(R)CH0:IMonRange.VAL NPP") + field(DOL1, "$(P)$(R)CH1:IMonRange_RBV.VAL") + field(LNK1, "$(P)$(R)CH1:IMonRange.VAL NPP") + field(DOL2, "$(P)$(R)CH2:IMonRange_RBV.VAL") + field(LNK2, "$(P)$(R)CH2:IMonRange.VAL NPP") + field(DOL3, "$(P)$(R)CH3:IMonRange_RBV.VAL") + field(LNK3, "$(P)$(R)CH3:IMonRange.VAL NPP") + field(DOL4, "$(P)$(R)CH4:IMonRange_RBV.VAL") + field(LNK4, "$(P)$(R)CH4:IMonRange.VAL NPP") + field(DOL5, "$(P)$(R)CH5:IMonRange_RBV.VAL") + field(LNK5, "$(P)$(R)CH5:IMonRange.VAL NPP") + field(DOL6, "$(P)$(R)CH6:IMonRange_RBV.VAL") + field(LNK6, "$(P)$(R)CH6:IMonRange.VAL NPP") + field(DOL7, "$(P)$(R)CH7:IMonRange_RBV.VAL") + field(LNK7, "$(P)$(R)CH7:IMonRange.VAL NPP") +} + + +record(ai, "$(P)$(R)CH0:Voltage_RBV") { + field(EGU, "Volts") + field(PREC, 2) +} +record(ai, "$(P)$(R)CH1:Voltage_RBV") { + field(EGU, "Volts") + field(PREC, 2) +} +record(ai, "$(P)$(R)CH2:Voltage_RBV") { + field(EGU, "Volts") + field(PREC, 2) +} +record(ai, "$(P)$(R)CH3:Voltage_RBV") { + field(EGU, "Volts") + field(PREC, 2) +} +record(ai, "$(P)$(R)CH4:Voltage_RBV") { + field(EGU, "Volts") + field(PREC, 2) +} +record(ai, "$(P)$(R)CH5:Voltage_RBV") { + field(EGU, "Volts") + field(PREC, 2) +} +record(ai, "$(P)$(R)CH6:Voltage_RBV") { + field(EGU, "Volts") + field(PREC, 2) +} +record(ai, "$(P)$(R)CH7:Voltage_RBV") { + field(EGU, "Volts") + field(PREC, 2) +} + +record(ai, "$(P)$(R)CH0:Current_RBV") { + field(EGU, "uA") + field(PREC, 3) +} +record(ai, "$(P)$(R)CH1:Current_RBV") { + field(EGU, "uA") + field(PREC, 3) +} +record(ai, "$(P)$(R)CH2:Current_RBV") { + field(EGU, "uA") + field(PREC, 3) +} +record(ai, "$(P)$(R)CH3:Current_RBV") { + field(EGU, "uA") + field(PREC, 3) +} +record(ai, "$(P)$(R)CH4:Current_RBV") { + field(EGU, "uA") + field(PREC, 3) +} +record(ai, "$(P)$(R)CH5:Current_RBV") { + field(EGU, "uA") + field(PREC, 3) +} +record(ai, "$(P)$(R)CH6:Current_RBV") { + field(EGU, "uA") + field(PREC, 3) +} +record(ai, "$(P)$(R)CH7:Current_RBV") { + field(EGU, "uA") + field(PREC, 3) +} + +record(bi, "$(P)$(R)CH0:Power_RBV") { + field(ZNAM, "OFF") + field(ONAM, "ON") +} +record(bi, "$(P)$(R)CH1:Power_RBV") { + field(ZNAM, "OFF") + field(ONAM, "ON") +} +record(bi, "$(P)$(R)CH2:Power_RBV") { + field(ZNAM, "OFF") + field(ONAM, "ON") +} +record(bi, "$(P)$(R)CH3:Power_RBV") { + field(ZNAM, "OFF") + field(ONAM, "ON") +} +record(bi, "$(P)$(R)CH4:Power_RBV") { + field(ZNAM, "OFF") + field(ONAM, "ON") +} +record(bi, "$(P)$(R)CH5:Power_RBV") { + field(ZNAM, "OFF") + field(ONAM, "ON") +} +record(bi, "$(P)$(R)CH6:Power_RBV") { + field(ZNAM, "OFF") + field(ONAM, "ON") +} +record(bi, "$(P)$(R)CH7:Power_RBV") { + field(ZNAM, "OFF") + field(ONAM, "ON") +} + +record(longin, "$(P)$(R)CH0:RampUpRate_RBV") { + field(EGU, "Volt/s") +} +record(longin, "$(P)$(R)CH1:RampUpRate_RBV") { + field(EGU, "Volt/s") +} +record(longin, "$(P)$(R)CH2:RampUpRate_RBV") { + field(EGU, "Volt/s") +} +record(longin, "$(P)$(R)CH3:RampUpRate_RBV") { + field(EGU, "Volt/s") +} +record(longin, "$(P)$(R)CH4:RampUpRate_RBV") { + field(EGU, "Volt/s") +} +record(longin, "$(P)$(R)CH5:RampUpRate_RBV") { + field(EGU, "Volt/s") +} +record(longin, "$(P)$(R)CH6:RampUpRate_RBV") { + field(EGU, "Volt/s") +} +record(longin, "$(P)$(R)CH7:RampUpRate_RBV") { + field(EGU, "Volt/s") +} + +record(longin, "$(P)$(R)CH0:RampDownRate_RBV") { + field(EGU, "Volt/s") +} +record(longin, "$(P)$(R)CH1:RampDownRate_RBV") { + field(EGU, "Volt/s") +} +record(longin, "$(P)$(R)CH2:RampDownRate_RBV") { + field(EGU, "Volt/s") +} +record(longin, "$(P)$(R)CH3:RampDownRate_RBV") { + field(EGU, "Volt/s") +} +record(longin, "$(P)$(R)CH4:RampDownRate_RBV") { + field(EGU, "Volt/s") +} +record(longin, "$(P)$(R)CH5:RampDownRate_RBV") { + field(EGU, "Volt/s") +} +record(longin, "$(P)$(R)CH6:RampDownRate_RBV") { + field(EGU, "Volt/s") +} +record(longin, "$(P)$(R)CH7:RampDownRate_RBV") { + field(EGU, "Volt/s") +} + +record(bi, "$(P)$(R)CH0:PowerDownMode_RBV") { + field(ZNAM, "RAMP") + field(ONAM, "KILL") +} +record(bi, "$(P)$(R)CH1:PowerDownMode_RBV") { + field(ZNAM, "RAMP") + field(ONAM, "KILL") +} +record(bi, "$(P)$(R)CH2:PowerDownMode_RBV") { + field(ZNAM, "RAMP") + field(ONAM, "KILL") +} +record(bi, "$(P)$(R)CH3:PowerDownMode_RBV") { + field(ZNAM, "RAMP") + field(ONAM, "KILL") +} +record(bi, "$(P)$(R)CH4:PowerDownMode_RBV") { + field(ZNAM, "RAMP") + field(ONAM, "KILL") +} +record(bi, "$(P)$(R)CH5:PowerDownMode_RBV") { + field(ZNAM, "RAMP") + field(ONAM, "KILL") +} +record(bi, "$(P)$(R)CH6:PowerDownMode_RBV") { + field(ZNAM, "RAMP") + field(ONAM, "KILL") +} +record(bi, "$(P)$(R)CH7:PowerDownMode_RBV") { + field(ZNAM, "RAMP") + field(ONAM, "KILL") +} + +record(bi, "$(P)$(R)CH0:IMonRange_RBV") { + field(ZNAM, "HIGH") + field(ONAM, "LOW") +} +record(bi, "$(P)$(R)CH1:IMonRange_RBV") { + field(ZNAM, "HIGH") + field(ONAM, "LOW") +} +record(bi, "$(P)$(R)CH2:IMonRange_RBV") { + field(ZNAM, "HIGH") + field(ONAM, "LOW") +} +record(bi, "$(P)$(R)CH3:IMonRange_RBV") { + field(ZNAM, "HIGH") + field(ONAM, "LOW") +} +record(bi, "$(P)$(R)CH4:IMonRange_RBV") { + field(ZNAM, "HIGH") + field(ONAM, "LOW") +} +record(bi, "$(P)$(R)CH5:IMonRange_RBV") { + field(ZNAM, "HIGH") + field(ONAM, "LOW") +} +record(bi, "$(P)$(R)CH6:IMonRange_RBV") { + field(ZNAM, "HIGH") + field(ONAM, "LOW") +} +record(bi, "$(P)$(R)CH7:IMonRange_RBV") { + field(ZNAM, "HIGH") + field(ONAM, "LOW") +} + +record(bo, "$(P)$(R)CH0:Power") { + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_power(0) $(PORT)") + field(ZNAM, "OFF") + field(ONAM, "ON") +} +record(bo, "$(P)$(R)CH1:Power") { + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_power(1) $(PORT)") + field(ZNAM, "OFF") + field(ONAM, "ON") +} +record(bo, "$(P)$(R)CH2:Power") { + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_power(2) $(PORT)") + field(ZNAM, "OFF") + field(ONAM, "ON") +} +record(bo, "$(P)$(R)CH3:Power") { + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_power(3) $(PORT)") + field(ZNAM, "OFF") + field(ONAM, "ON") +} +record(bo, "$(P)$(R)CH4:Power") { + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_power(4) $(PORT)") + field(ZNAM, "OFF") + field(ONAM, "ON") +} +record(bo, "$(P)$(R)CH5:Power") { + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_power(5) $(PORT)") + field(ZNAM, "OFF") + field(ONAM, "ON") +} +record(bo, "$(P)$(R)CH6:Power") { + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_power(6) $(PORT)") + field(ZNAM, "OFF") + field(ONAM, "ON") +} +record(bo, "$(P)$(R)CH7:Power") { + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_power(7) $(PORT)") + field(ZNAM, "OFF") + field(ONAM, "ON") +} + +record(ao, "$(P)$(R)CH0:Voltage") { + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_voltage(0) $(PORT)") + field(PREC, 2) +} +record(ao, "$(P)$(R)CH1:Voltage") { + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_voltage(1) $(PORT)") + field(PREC, 2) +} +record(ao, "$(P)$(R)CH2:Voltage") { + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_voltage(2) $(PORT)") + field(PREC, 2) +} +record(ao, "$(P)$(R)CH3:Voltage") { + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_voltage(3) $(PORT)") + field(PREC, 2) +} +record(ao, "$(P)$(R)CH4:Voltage") { + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_voltage(4) $(PORT)") + field(PREC, 2) +} +record(ao, "$(P)$(R)CH5:Voltage") { + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_voltage(5) $(PORT)") + field(PREC, 2) +} +record(ao, "$(P)$(R)CH6:Voltage") { + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_voltage(6) $(PORT)") + field(PREC, 2) +} +record(ao, "$(P)$(R)CH7:Voltage") { + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_voltage(7) $(PORT)") + field(PREC, 2) +} + +record(ao, "$(P)$(R)CH0:Current") { + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_current(0) $(PORT)") + field(PREC, 3) +} +record(ao, "$(P)$(R)CH1:Current") { + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_current(1) $(PORT)") + field(PREC, 3) +} +record(ao, "$(P)$(R)CH2:Current") { + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_current(2) $(PORT)") + field(PREC, 3) +} +record(ao, "$(P)$(R)CH3:Current") { + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_current(3) $(PORT)") + field(PREC, 3) +} +record(ao, "$(P)$(R)CH4:Current") { + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_current(4) $(PORT)") + field(PREC, 3) +} +record(ao, "$(P)$(R)CH5:Current") { + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_current(5) $(PORT)") + field(PREC, 3) +} +record(ao, "$(P)$(R)CH6:Current") { + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_current(6) $(PORT)") + field(PREC, 3) +} +record(ao, "$(P)$(R)CH7:Current") { + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_current(7) $(PORT)") + field(PREC, 3) +} + +record(longout, "$(P)$(R)CH0:RampUpRate") { + field(EGU, "Volt/sec") + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_ramp_up(0) $(PORT)") +} +record(longout, "$(P)$(R)CH1:RampUpRate") { + field(EGU, "Volt/sec") + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_ramp_up(1) $(PORT)") +} +record(longout, "$(P)$(R)CH2:RampUpRate") { + field(EGU, "Volt/sec") + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_ramp_up(2) $(PORT)") +} +record(longout, "$(P)$(R)CH3:RampUpRate") { + field(EGU, "Volt/sec") + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_ramp_up(3) $(PORT)") +} +record(longout, "$(P)$(R)CH4:RampUpRate") { + field(EGU, "Volt/sec") + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_ramp_up(4) $(PORT)") +} +record(longout, "$(P)$(R)CH5:RampUpRate") { + field(EGU, "Volt/sec") + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_ramp_up(5) $(PORT)") +} +record(longout, "$(P)$(R)CH6:RampUpRate") { + field(EGU, "Volt/sec") + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_ramp_up(6) $(PORT)") +} +record(longout, "$(P)$(R)CH7:RampUpRate") { + field(EGU, "Volt/sec") + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_ramp_up(7) $(PORT)") +} + +record(longout, "$(P)$(R)CH0:RampDownRate") { + field(EGU, "Volt/sec") + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_ramp_down(0) $(PORT)") +} +record(longout, "$(P)$(R)CH1:RampDownRate") { + field(EGU, "Volt/sec") + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_ramp_down(1) $(PORT)") +} +record(longout, "$(P)$(R)CH2:RampDownRate") { + field(EGU, "Volt/sec") + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_ramp_down(2) $(PORT)") +} +record(longout, "$(P)$(R)CH3:RampDownRate") { + field(EGU, "Volt/sec") + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_ramp_down(3) $(PORT)") +} +record(longout, "$(P)$(R)CH4:RampDownRate") { + field(EGU, "Volt/sec") + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_ramp_down(4) $(PORT)") +} +record(longout, "$(P)$(R)CH5:RampDownRate") { + field(EGU, "Volt/sec") + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_ramp_down(5) $(PORT)") +} +record(longout, "$(P)$(R)CH6:RampDownRate") { + field(EGU, "Volt/sec") + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_ramp_down(6) $(PORT)") +} +record(longout, "$(P)$(R)CH7:RampDownRate") { + field(EGU, "Volt/sec") + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_ramp_down(7) $(PORT)") +} + +record(bo, "$(P)$(R)CH0:PowerDownMode") { + field(VAL, 1) + field(ZNAM, "RAMP") + field(ONAM, "KILL") + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_power_down_mode(0) $(PORT)") +} +record(bo, "$(P)$(R)CH1:PowerDownMode") { + field(ZNAM, "RAMP") + field(ONAM, "KILL") + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_power_down_mode(1) $(PORT)") +} +record(bo, "$(P)$(R)CH2:PowerDownMode") { + field(ZNAM, "RAMP") + field(ONAM, "KILL") + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_power_down_mode(2) $(PORT)") +} +record(bo, "$(P)$(R)CH3:PowerDownMode") { + field(ZNAM, "RAMP") + field(ONAM, "KILL") + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_power_down_mode(3) $(PORT)") +} +record(bo, "$(P)$(R)CH4:PowerDownMode") { + field(ZNAM, "RAMP") + field(ONAM, "KILL") + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_power_down_mode(4) $(PORT)") +} +record(bo, "$(P)$(R)CH5:PowerDownMode") { + field(ZNAM, "RAMP") + field(ONAM, "KILL") + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_power_down_mode(5) $(PORT)") +} +record(bo, "$(P)$(R)CH6:PowerDownMode") { + field(ZNAM, "RAMP") + field(ONAM, "KILL") + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_power_down_mode(6) $(PORT)") +} +record(bo, "$(P)$(R)CH7:PowerDownMode") { + field(ZNAM, "RAMP") + field(ONAM, "KILL") + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_power_down_mode(7) $(PORT)") +} + +record(bo, "$(P)$(R)CH0:IMonRange") { + field(ZNAM, "HIGH") + field(ONAM, "LOW") + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_imon_range(0) $(PORT)") +} +record(bo, "$(P)$(R)CH1:IMonRange") { + field(ZNAM, "HIGH") + field(ONAM, "LOW") + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_imon_range(1) $(PORT)") +} +record(bo, "$(P)$(R)CH2:IMonRange") { + field(ZNAM, "HIGH") + field(ONAM, "LOW") + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_imon_range(2) $(PORT)") +} +record(bo, "$(P)$(R)CH3:IMonRange") { + field(ZNAM, "HIGH") + field(ONAM, "LOW") + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_imon_range(3) $(PORT)") +} +record(bo, "$(P)$(R)CH4:IMonRange") { + field(ZNAM, "HIGH") + field(ONAM, "LOW") + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_imon_range(4) $(PORT)") +} +record(bo, "$(P)$(R)CH5:IMonRange") { + field(ZNAM, "HIGH") + field(ONAM, "LOW") + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_imon_range(5) $(PORT)") +} +record(bo, "$(P)$(R)CH6:IMonRange") { + field(ZNAM, "HIGH") + field(ONAM, "LOW") + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_imon_range(6) $(PORT)") +} +record(bo, "$(P)$(R)CH7:IMonRange") { + field(ZNAM, "HIGH") + field(ONAM, "LOW") + field(DTYP, "stream") + field(OUT, "@caen_N8031.proto set_imon_range(7) $(PORT)") +} + +record(stringout, "$(P)$(R)CH0:Name") {} +record(stringout, "$(P)$(R)CH1:Name") {} +record(stringout, "$(P)$(R)CH2:Name") {} +record(stringout, "$(P)$(R)CH3:Name") {} +record(stringout, "$(P)$(R)CH4:Name") {} +record(stringout, "$(P)$(R)CH5:Name") {} +record(stringout, "$(P)$(R)CH6:Name") {} +record(stringout, "$(P)$(R)CH7:Name") {} diff --git a/ipApp/Db/caen_N8031.proto b/ipApp/Db/caen_N8031.proto new file mode 100644 index 0000000..a6b9486 --- /dev/null +++ b/ipApp/Db/caen_N8031.proto @@ -0,0 +1,128 @@ +OutTerminator = CR LF; +InTerminator = CR LF; + +read_voltages { + out "$CMD:MON,CH:8,PAR:VMON"; + in + "#CMD:OK,VAL:" + "%(\$1CH0:Voltage_RBV)f;" + "%(\$1CH1:Voltage_RBV)f;" + "%(\$1CH2:Voltage_RBV)f;" + "%(\$1CH3:Voltage_RBV)f;" + "%(\$1CH4:Voltage_RBV)f;" + "%(\$1CH5:Voltage_RBV)f;" + "%(\$1CH6:Voltage_RBV)f;" + "%(\$1CH7:Voltage_RBV)f"; +} + +read_currents { + out "$CMD:MON,CH:8,PAR:IMON"; + in + "#CMD:OK,VAL:" + "%(\$1CH0:Current_RBV)f;" + "%(\$1CH1:Current_RBV)f;" + "%(\$1CH2:Current_RBV)f;" + "%(\$1CH3:Current_RBV)f;" + "%(\$1CH4:Current_RBV)f;" + "%(\$1CH5:Current_RBV)f;" + "%(\$1CH6:Current_RBV)f;" + "%(\$1CH7:Current_RBV)f"; +} + +read_power_states { + out "$CMD:MON,CH:8,PAR:PW"; + in + "#CMD:OK,VAL:" + "%(\$1CH0:Power_RBV){OFF|ON};" + "%(\$1CH1:Power_RBV){OFF|ON};" + "%(\$1CH2:Power_RBV){OFF|ON};" + "%(\$1CH3:Power_RBV){OFF|ON};" + "%(\$1CH4:Power_RBV){OFF|ON};" + "%(\$1CH5:Power_RBV){OFF|ON};" + "%(\$1CH6:Power_RBV){OFF|ON};" + "%(\$1CH7:Power_RBV){OFF|ON}"; +} + +read_ramp_up_rates { + out "$CMD:MON,CH:8,PAR:RUP"; + in + "#CMD:OK,VAL:" + "%(\$1CH0:RampUpRate_RBV)d;" + "%(\$1CH1:RampUpRate_RBV)d;" + "%(\$1CH2:RampUpRate_RBV)d;" + "%(\$1CH3:RampUpRate_RBV)d;" + "%(\$1CH4:RampUpRate_RBV)d;" + "%(\$1CH5:RampUpRate_RBV)d;" + "%(\$1CH6:RampUpRate_RBV)d;" + "%(\$1CH7:RampUpRate_RBV)d"; +} + +read_ramp_down_rates { + out "$CMD:MON,CH:8,PAR:RDWN"; + in + "#CMD:OK,VAL:" + "%(\$1CH0:RampDownRate_RBV)d;" + "%(\$1CH1:RampDownRate_RBV)d;" + "%(\$1CH2:RampDownRate_RBV)d;" + "%(\$1CH3:RampDownRate_RBV)d;" + "%(\$1CH4:RampDownRate_RBV)d;" + "%(\$1CH5:RampDownRate_RBV)d;" + "%(\$1CH6:RampDownRate_RBV)d;" + "%(\$1CH7:RampDownRate_RBV)d"; +} + +read_power_down_modes { + out "$CMD:MON,CH:8,PAR:PDWN"; + in + "#CMD:OK,VAL:" + "%(\$1CH0:PowerDownMode_RBV){RAMP|KILL};" + "%(\$1CH1:PowerDownMode_RBV){RAMP|KILL};" + "%(\$1CH2:PowerDownMode_RBV){RAMP|KILL};" + "%(\$1CH3:PowerDownMode_RBV){RAMP|KILL};" + "%(\$1CH4:PowerDownMode_RBV){RAMP|KILL};" + "%(\$1CH5:PowerDownMode_RBV){RAMP|KILL};" + "%(\$1CH6:PowerDownMode_RBV){RAMP|KILL};" + "%(\$1CH7:PowerDownMode_RBV){RAMP|KILL}"; +} + +read_imon_ranges { + out "$CMD:MON,CH:8,PAR:IMRANGE"; + in + "#CMD:OK,VAL:" + "%(\$1CH0:IMonRange_RBV){HIGH|LOW};" + "%(\$1CH1:IMonRange_RBV){HIGH|LOW};" + "%(\$1CH2:IMonRange_RBV){HIGH|LOW};" + "%(\$1CH3:IMonRange_RBV){HIGH|LOW};" + "%(\$1CH4:IMonRange_RBV){HIGH|LOW};" + "%(\$1CH5:IMonRange_RBV){HIGH|LOW};" + "%(\$1CH6:IMonRange_RBV){HIGH|LOW};" + "%(\$1CH7:IMonRange_RBV){HIGH|LOW}"; +} + +set_power { + out "$CMD:SET,CH:\$1,PAR:PW,VAL:%{OFF|ON}"; +} + +set_voltage { + out "$CMD:SET,CH:\$1,PAR:VSET,VAL:%f"; +} + +set_current { + out "$CMD:SET,CH:\$1,PAR:VSET,VAL:%f"; +} + +set_ramp_up { + out "$CMD:SET,CH:\$1,PAR:RUP,VAL:%d"; +} + +set_ramp_down { + out "$CMD:SET,CH:\$1,PAR:RDWN,VAL:%d"; +} + +set_power_down_mode { + out "$CMD:SET,CH:\$1,PAR:PDWN,VAL:%{RAMP|KILL}"; +} + +set_imon_range { + out "$CMD:SET,CH:\$1,PAR:IMRANGE,VAL:%{HIGH|LOW}"; +} diff --git a/ipApp/Db/caen_N8031_settings.req b/ipApp/Db/caen_N8031_settings.req new file mode 100644 index 0000000..8ccae73 --- /dev/null +++ b/ipApp/Db/caen_N8031_settings.req @@ -0,0 +1,8 @@ +$(P)$(R)CH0:Name.VAL +$(P)$(R)CH1:Name.VAL +$(P)$(R)CH2:Name.VAL +$(P)$(R)CH3:Name.VAL +$(P)$(R)CH4:Name.VAL +$(P)$(R)CH5:Name.VAL +$(P)$(R)CH6:Name.VAL +$(P)$(R)CH7:Name.VAL diff --git a/ipApp/op/ui/caen_N8031.ui b/ipApp/op/ui/caen_N8031.ui new file mode 100644 index 0000000..b4028e4 --- /dev/null +++ b/ipApp/op/ui/caen_N8031.ui @@ -0,0 +1,4314 @@ + + + MainWindow + + + + 0 + 0 + 1198 + 484 + + + + + + + QWidget#centralWidget {background: rgba(196, 196, 196, 255);} + +caTable { + background: cornsilk; + alternate-background-color: wheat; +} + +caLineEdit { + border-radius: 1px; + background: lightyellow; + color: black; + } + + caLabel { + border-radius: 1px; + background: lightyellow; + color: black; + } + +caTextEntry { + color: rgb(127, 0, 63); + background-color: cornsilk; + selection-color: #0a214c; + selection-background-color: wheat; + border: 1px groove black; + border-radius: 1px; + padding: 1px; +} + +caTextEntry:focus { + padding: 0px; + border: 2px groove darkred; + border-radius: 1px; +} + +/* when font specified, no font sizing is done any more, font: 10pt; is not bad */ +QPushButton { + border-color: #00b; + border-radius: 2px; + padding: 3px; + border-width: 1px; + + background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, + stop:0 rgba(224, 239, 255, 255), + stop:0.5 rgba(199, 215, 230, 255), + stop:1 rgba(184, 214, 236, 255)); +} +QPushButton:hover { + background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, + stop:0 rgba(201, 226, 255, 255), + stop:0.5 rgba(177, 204, 230, 255), + stop:1 rgba(163, 205, 236, 255)); +} +QPushButton:pressed { + background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, + stop:0 rgba(174, 219, 255, 255), + stop:0.5 rgba(165, 199, 230, 255), + stop:1 rgba(134, 188, 236, 255)); +} + +QPushButton:disabled { + background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, + stop:0 rgba(174, 219, 255, 255), + stop:0.5 rgba(165, 199, 230, 255), + stop:1 rgba(134, 188, 236, 255)); +} + + +caChoice > QPushButton { +text-align: left; +background-color: rgba(87, 202, 228,255); +border: 3px gray; +} + +caChoice > QPushButton:pressed { +background-color: rgba(87, 202, 228,200); +border: 3px gray; +} + +caChoice > QPushButton:checked { +background-color: rgba(87, 202, 228,200); +border: 3px gray; +} + +caChoice > QPushButton:default { +background-color: lightgray; +border: 3px gray; +} + +caMenu{ + background: lightyellow; +} + + + + + + + + + + + + + + 530 + 180 + 100 + 20 + + + + $(P)$(R)CH3:Voltage_RBV + + + Qt::AlignCenter + + + $(P)$(R)CH3:Voltage_RBV.VAL + + + + 0 + 0 + 255 + + + + + 196 + 196 + 196 + + + + caLineEdit::Static + + + caLineEdit::Channel + + + caLineEdit::Channel + + + 1.000000000000000 + + + 0.000000000000000 + + + caLineEdit::WidthAndHeight + + + caLineEdit::decimal + + + + + + 405 + 180 + 100 + 20 + + + + $(P)$(R)CH2:Voltage_RBV + + + Qt::AlignCenter + + + $(P)$(R)CH2:Voltage_RBV.VAL + + + + 0 + 0 + 255 + + + + + 196 + 196 + 196 + + + + caLineEdit::Static + + + caLineEdit::Channel + + + caLineEdit::Channel + + + 1.000000000000000 + + + 0.000000000000000 + + + caLineEdit::WidthAndHeight + + + caLineEdit::decimal + + + + + + 145 + 180 + 100 + 20 + + + + + + + $(P)$(R)CH0:Voltage_RBV + + + Qt::AlignCenter + + + $(P)$(R)CH0:Voltage_RBV.VAL + + + + 0 + 0 + 255 + + + + + 196 + 196 + 196 + + + + caLineEdit::Static + + + caLineEdit::Channel + + + caLineEdit::Channel + + + 1.000000000000000 + + + 0.000000000000000 + + + caLineEdit::WidthAndHeight + + + caLineEdit::decimal + + + + + + 655 + 180 + 100 + 20 + + + + $(P)$(R)CH4:Voltage_RBV + + + Qt::AlignCenter + + + $(P)$(R)CH4:Voltage_RBV.VAL + + + + 0 + 0 + 255 + + + + + 196 + 196 + 196 + + + + caLineEdit::Static + + + caLineEdit::Channel + + + caLineEdit::Channel + + + 1.000000000000000 + + + 0.000000000000000 + + + caLineEdit::WidthAndHeight + + + caLineEdit::decimal + + + + + + 145 + 200 + 100 + 25 + + + + $(P)$(R)CH0:Voltage.VAL + + + + 115 + 223 + 255 + + + + caLineEdit::Static + + + + + + 405 + 200 + 100 + 25 + + + + $(P)$(R)CH2:Voltage.VAL + + + + 115 + 223 + 255 + + + + caLineEdit::Static + + + + + + 530 + 200 + 100 + 25 + + + + $(P)$(R)CH3:Voltage.VAL + + + + 115 + 223 + 255 + + + + caLineEdit::Static + + + + + + 655 + 200 + 100 + 25 + + + + $(P)$(R)CH4:Voltage.VAL + + + + 115 + 223 + 255 + + + + caLineEdit::Static + + + + + + 5 + 2 + 326 + 30 + + + + + 18 + 75 + true + + + + CAEN N8031 Power Supply + + + Qt::AlignAbsolute|Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + ESimpleLabel::WidthAndHeight + + + + 255 + 255 + 255 + + + + + 0 + 0 + 0 + + + + QFrame::NoFrame + + + + + + 0 + 0 + 1431 + 35 + + + + 0 + + + + 0 + 53 + 132 + + + + caFrame::Filled + + + + 5 + + + 10 + + + 2 + + + 0 + + + 2 + + + + + + + 905 + 180 + 100 + 20 + + + + $(P)$(R)CH6:Voltage_RBV + + + Qt::AlignCenter + + + $(P)$(R)CH6:Voltage_RBV.VAL + + + + 0 + 0 + 255 + + + + + 196 + 196 + 196 + + + + caLineEdit::Static + + + caLineEdit::Channel + + + caLineEdit::Channel + + + 1.000000000000000 + + + 0.000000000000000 + + + caLineEdit::WidthAndHeight + + + caLineEdit::decimal + + + + + + 275 + 200 + 100 + 25 + + + + $(P)$(R)CH1:Voltage.VAL + + + + 115 + 223 + 255 + + + + caLineEdit::Static + + + + + + 1030 + 200 + 100 + 25 + + + + $(P)$(R)CH7:Voltage.VAL + + + + 115 + 223 + 255 + + + + caLineEdit::Static + + + + + + 905 + 200 + 100 + 25 + + + + $(P)$(R)CH6:Voltage.VAL + + + + 115 + 223 + 255 + + + + caLineEdit::Static + + + + + + 780 + 180 + 100 + 20 + + + + $(P)$(R)CH5:Voltage_RBV + + + Qt::AlignCenter + + + $(P)$(R)CH5:Voltage_RBV.VAL + + + + 0 + 0 + 255 + + + + + 196 + 196 + 196 + + + + caLineEdit::Static + + + caLineEdit::Channel + + + caLineEdit::Channel + + + 1.000000000000000 + + + 0.000000000000000 + + + caLineEdit::WidthAndHeight + + + caLineEdit::decimal + + + + + + 1030 + 180 + 100 + 20 + + + + $(P)$(R)CH7:Voltage_RBV + + + Qt::AlignCenter + + + $(P)$(R)CH7:Voltage_RBV.VAL + + + + 0 + 0 + 255 + + + + + 196 + 196 + 196 + + + + caLineEdit::Static + + + caLineEdit::Channel + + + caLineEdit::Channel + + + 1.000000000000000 + + + 0.000000000000000 + + + caLineEdit::WidthAndHeight + + + caLineEdit::decimal + + + + + + 275 + 180 + 100 + 20 + + + + + + + $(P)$(R)CH1:Voltage_RBV + + + Qt::AlignCenter + + + $(P)$(R)CH1:Voltage_RBV.VAL + + + + 0 + 0 + 255 + + + + + 196 + 196 + 196 + + + + caLineEdit::Static + + + caLineEdit::Channel + + + caLineEdit::Channel + + + 1.000000000000000 + + + 0.000000000000000 + + + caLineEdit::WidthAndHeight + + + caLineEdit::decimal + + + + + + 780 + 200 + 100 + 25 + + + + $(P)$(R)CH5:Voltage.VAL + + + + 115 + 223 + 255 + + + + caLineEdit::Static + + + + + + 530 + 245 + 100 + 25 + + + + $(P)$(R)CH3:Current_RBV + + + Qt::AlignCenter + + + $(P)$(R)CH3:Current_RBV.VAL + + + + 0 + 0 + 255 + + + + + 196 + 196 + 196 + + + + caLineEdit::Static + + + caLineEdit::Channel + + + caLineEdit::Channel + + + 1.000000000000000 + + + 0.000000000000000 + + + caLineEdit::WidthAndHeight + + + caLineEdit::decimal + + + + + + 905 + 245 + 100 + 25 + + + + $(P)$(R)CH6:Current_RBV.VAL + + + Qt::AlignCenter + + + $(P)$(R)CH6:Current_RBV.VAL + + + + 0 + 0 + 255 + + + + + 196 + 196 + 196 + + + + caLineEdit::Static + + + caLineEdit::Channel + + + caLineEdit::Channel + + + 1.000000000000000 + + + 0.000000000000000 + + + caLineEdit::WidthAndHeight + + + caLineEdit::decimal + + + + + + 1030 + 245 + 100 + 25 + + + + $(P)$(R)CH7:Current_RBV + + + Qt::AlignCenter + + + $(P)$(R)CH7:Current_RBV.VAL + + + + 0 + 0 + 255 + + + + + 196 + 196 + 196 + + + + caLineEdit::Static + + + caLineEdit::Channel + + + caLineEdit::Channel + + + 1.000000000000000 + + + 0.000000000000000 + + + caLineEdit::WidthAndHeight + + + caLineEdit::decimal + + + + + + 780 + 245 + 100 + 25 + + + + $(P)$(R)CH5:Current_RBV + + + Qt::AlignCenter + + + $(P)$(R)CH5:Current_RBV.VAL + + + + 0 + 0 + 255 + + + + + 196 + 196 + 196 + + + + caLineEdit::Static + + + caLineEdit::Channel + + + caLineEdit::Channel + + + 1.000000000000000 + + + 0.000000000000000 + + + caLineEdit::WidthAndHeight + + + caLineEdit::decimal + + + + + + 275 + 245 + 100 + 25 + + + + + + + $(P)$(R)CH1:Current_RBV + + + Qt::AlignCenter + + + $(P)$(R)CH1:Current_RBV.VAL + + + + 0 + 0 + 255 + + + + + 196 + 196 + 196 + + + + caLineEdit::Static + + + caLineEdit::Channel + + + caLineEdit::Channel + + + 1.000000000000000 + + + 0.000000000000000 + + + caLineEdit::WidthAndHeight + + + caLineEdit::decimal + + + + + + 405 + 245 + 100 + 25 + + + + $(P)$(R)CH2:Current_RBV + + + Qt::AlignCenter + + + $(P)$(R)CH2:Current_RBV.VAL + + + + 0 + 0 + 255 + + + + + 196 + 196 + 196 + + + + caLineEdit::Static + + + caLineEdit::Channel + + + caLineEdit::Channel + + + 1.000000000000000 + + + 0.000000000000000 + + + caLineEdit::WidthAndHeight + + + caLineEdit::decimal + + + + + + 655 + 245 + 100 + 25 + + + + $(P)$(R)CH4:Current_RBV + + + Qt::AlignCenter + + + $(P)$(R)CH4:Current_RBV.VAL + + + + 0 + 0 + 255 + + + + + 196 + 196 + 196 + + + + caLineEdit::Static + + + caLineEdit::Channel + + + caLineEdit::Channel + + + 1.000000000000000 + + + 0.000000000000000 + + + caLineEdit::WidthAndHeight + + + caLineEdit::decimal + + + + + + 145 + 245 + 100 + 25 + + + + + + + $(P)$(R)CH0:Current_RBV + + + Qt::AlignCenter + + + $(P)$(R)CH0:Current_RBV.VAL + + + + 0 + 0 + 255 + + + + + 196 + 196 + 196 + + + + caLineEdit::Static + + + caLineEdit::Channel + + + caLineEdit::Channel + + + 1.000000000000000 + + + 0.000000000000000 + + + caLineEdit::WidthAndHeight + + + caLineEdit::decimal + + + + + + 50 + 40 + 100 + 20 + + + + $(P)$(R)ReadAll.SCAN + + + caMenu::Static + + + + 0 + 0 + 0 + + + + + 115 + 223 + 255 + + + + + + + 5 + 40 + 40 + 20 + + + + READ + + + EPushButton::WidthAndHeight + + + $(P)$(R)ReadAll.PROC + + + READ + + + + 0 + 0 + 0 + + + + + 115 + 223 + 255 + + + + 1 + + + caMessageButton::Static + + + + + + 60 + 200 + 75 + 25 + + + + Voltage: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 60 + 245 + 75 + 25 + + + + Current: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 1140 + 200 + 50 + 25 + + + + $(P)$(R)CH7:Voltage_RBV.EGU + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + $(P)$(R)CH7:Voltage_RBV.EGU + + + + 0 + 0 + 255 + + + + + 196 + 196 + 196 + + + + caLineEdit::Static + + + caLineEdit::Channel + + + caLineEdit::Channel + + + 1.000000000000000 + + + 0.000000000000000 + + + caLineEdit::WidthAndHeight + + + caLineEdit::decimal + + + + + + 1140 + 245 + 50 + 25 + + + + $(P)$(R)CH7:Current_RBV.EGU + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + $(P)$(R)CH7:Current_RBV.EGU + + + + 0 + 0 + 255 + + + + + 196 + 196 + 196 + + + + caLineEdit::Static + + + caLineEdit::Channel + + + caLineEdit::Channel + + + 1.000000000000000 + + + 0.000000000000000 + + + caLineEdit::WidthAndHeight + + + caLineEdit::decimal + + + + + + 145 + 80 + 100 + 20 + + + + + 11 + 75 + true + + + + 0 + + + Qt::AlignCenter + + + + 255 + 0 + 0 + + + + caLabel::IfNotZero + + + + + + $(P)$(R)CH0:Power_RBV + + + + + + 145 + 80 + 100 + 20 + + + + + 11 + 75 + true + + + + 0 + + + Qt::AlignCenter + + + + 0 + 0 + 0 + + + + caLabel::IfZero + + + + + + $(P)$(R)CH0:Power_RBV + + + + + + 275 + 80 + 100 + 20 + + + + + 11 + 75 + true + + + + 1 + + + Qt::AlignCenter + + + + 255 + 0 + 0 + + + + caLabel::IfNotZero + + + + + + $(P)$(R)CH1:Power_RBV + + + + + + 275 + 80 + 100 + 20 + + + + + 11 + 75 + true + + + + 1 + + + Qt::AlignCenter + + + + 0 + 0 + 0 + + + + caLabel::IfZero + + + + + + $(P)$(R)CH1:Power_RBV + + + + + + 405 + 80 + 100 + 20 + + + + + 11 + 75 + true + + + + 2 + + + Qt::AlignCenter + + + + 255 + 0 + 0 + + + + caLabel::IfNotZero + + + + + + $(P)$(R)CH2:Power_RBV + + + + + + 405 + 80 + 100 + 20 + + + + + 11 + 75 + true + + + + 2 + + + Qt::AlignCenter + + + + 0 + 0 + 0 + + + + caLabel::IfZero + + + + + + $(P)$(R)CH2:Power_RBV + + + + + + 530 + 80 + 100 + 20 + + + + + 11 + 75 + true + + + + 3 + + + Qt::AlignCenter + + + + 255 + 0 + 0 + + + + caLabel::IfNotZero + + + + + + $(P)$(R)CH3:Power_RBV + + + + + + 530 + 80 + 100 + 20 + + + + + 11 + 75 + true + + + + 3 + + + Qt::AlignCenter + + + + 0 + 0 + 0 + + + + caLabel::IfZero + + + + + + $(P)$(R)CH3:Power_RBV + + + + + + 655 + 80 + 100 + 20 + + + + + 11 + 75 + true + + + + 4 + + + Qt::AlignCenter + + + + 255 + 0 + 0 + + + + caLabel::IfNotZero + + + + + + $(P)$(R)CH4:Power_RBV + + + + + + 655 + 80 + 100 + 20 + + + + + 11 + 75 + true + + + + 4 + + + Qt::AlignCenter + + + + 0 + 0 + 0 + + + + caLabel::IfZero + + + + + + $(P)$(R)CH4:Power_RBV + + + + + + 780 + 80 + 100 + 20 + + + + + 11 + 75 + true + + + + 5 + + + Qt::AlignCenter + + + + 255 + 0 + 0 + + + + caLabel::IfNotZero + + + + + + $(P)$(R)CH5:Power_RBV + + + + + + 780 + 80 + 100 + 20 + + + + + 11 + 75 + true + + + + 5 + + + Qt::AlignCenter + + + + 0 + 0 + 0 + + + + caLabel::IfZero + + + + + + $(P)$(R)CH5:Power_RBV + + + + + + 905 + 80 + 100 + 20 + + + + + 11 + 75 + true + + + + 6 + + + Qt::AlignCenter + + + + 255 + 0 + 0 + + + + caLabel::IfNotZero + + + + + + $(P)$(R)CH6:Power_RBV + + + + + + 905 + 80 + 100 + 20 + + + + + 11 + 75 + true + + + + 6 + + + Qt::AlignCenter + + + + 0 + 0 + 0 + + + + caLabel::IfZero + + + + + + $(P)$(R)CH6:Power_RBV + + + + + + 1030 + 80 + 100 + 20 + + + + + 11 + 75 + true + + + + 7 + + + Qt::AlignCenter + + + + 255 + 0 + 0 + + + + caLabel::IfNotZero + + + + + + $(P)$(R)CH7:Power_RBV + + + + + + 1030 + 80 + 100 + 20 + + + + + 11 + 75 + true + + + + 7 + + + Qt::AlignCenter + + + + 0 + 0 + 0 + + + + caLabel::IfZero + + + + + + $(P)$(R)CH7:Power_RBV + + + + + + 655 + 145 + 100 + 25 + + + + $(P)$(R)CH4:Power + + + caChoice::Column + + + 1 + + + + + + 530 + 145 + 100 + 25 + + + + $(P)$(R)CH3:Power + + + caChoice::Column + + + 1 + + + + + + 405 + 145 + 100 + 25 + + + + $(P)$(R)CH2:Power + + + caChoice::Column + + + 1 + + + + + + 275 + 145 + 100 + 25 + + + + $(P)$(R)CH1:Power + + + caChoice::Column + + + 1 + + + + + + 145 + 145 + 100 + 25 + + + + $(P)$(R)CH0:Power + + + caChoice::Column + + + 1 + + + + + + 780 + 145 + 100 + 25 + + + + $(P)$(R)CH5:Power + + + caChoice::Column + + + 1 + + + + + + 905 + 145 + 100 + 25 + + + + $(P)$(R)CH6:Power + + + caChoice::Column + + + 1 + + + + + + 1030 + 145 + 100 + 25 + + + + $(P)$(R)CH7:Power + + + caChoice::Column + + + 1 + + + + + + 1030 + 305 + 100 + 25 + + + + $(P)$(R)CH7:RampUpRate.VAL + + + + 115 + 223 + 255 + + + + caLineEdit::Static + + + + + + 905 + 305 + 100 + 25 + + + + $(P)$(R)CH6:RampUpRate.VAL + + + + 115 + 223 + 255 + + + + caLineEdit::Static + + + + + + 146 + 305 + 100 + 25 + + + + $(P)$(R)CH0:RampUpRate.VAL + + + + 115 + 223 + 255 + + + + caLineEdit::Static + + + + + + 780 + 305 + 100 + 25 + + + + $(P)$(R)CH5:RampUpRate.VAL + + + + 115 + 223 + 255 + + + + caLineEdit::Static + + + + + + 275 + 305 + 100 + 25 + + + + $(P)$(R)CH1:RampUpRate.VAL + + + + 115 + 223 + 255 + + + + caLineEdit::Static + + + + + + 655 + 305 + 100 + 25 + + + + $(P)$(R)CH4:RampUpRate.VAL + + + + 115 + 223 + 255 + + + + caLineEdit::Static + + + + + + 405 + 305 + 100 + 25 + + + + $(P)$(R)CH2:RampUpRate.VAL + + + + 115 + 223 + 255 + + + + caLineEdit::Static + + + + + + 530 + 305 + 100 + 25 + + + + $(P)$(R)CH3:RampUpRate.VAL + + + + 115 + 223 + 255 + + + + caLineEdit::Static + + + + + + 905 + 360 + 100 + 25 + + + + $(P)$(R)CH6:RampDownRate.VAL + + + + 115 + 223 + 255 + + + + caLineEdit::Static + + + + + + 780 + 360 + 100 + 25 + + + + $(P)$(R)CH5:RampDownRate.VAL + + + + 115 + 223 + 255 + + + + caLineEdit::Static + + + + + + 275 + 360 + 100 + 25 + + + + $(P)$(R)CH1:RampDownRate.VAL + + + + 115 + 223 + 255 + + + + caLineEdit::Static + + + + + + 405 + 360 + 100 + 25 + + + + $(P)$(R)CH2:RampDownRate.VAL + + + + 115 + 223 + 255 + + + + caLineEdit::Static + + + + + + 146 + 360 + 100 + 25 + + + + $(P)$(R)CH0:RampDownRate.VAL + + + + 115 + 223 + 255 + + + + caLineEdit::Static + + + + + + 530 + 360 + 100 + 25 + + + + $(P)$(R)CH3:RampDownRate.VAL + + + + 115 + 223 + 255 + + + + caLineEdit::Static + + + + + + 1030 + 360 + 100 + 25 + + + + $(P)$(R)CH7:RampDownRate.VAL + + + + 115 + 223 + 255 + + + + caLineEdit::Static + + + + + + 655 + 360 + 100 + 25 + + + + $(P)$(R)CH4:RampDownRate.VAL + + + + 115 + 223 + 255 + + + + caLineEdit::Static + + + + + + 40 + 305 + 96 + 25 + + + + Ramp up rate: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 20 + 360 + 116 + 25 + + + + Ramp down rate: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 1140 + 305 + 50 + 25 + + + + $(P)$(R)CH7:RampUpRate.EGU + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + $(P)$(R)CH7:RampUpRate.EGU + + + + 0 + 0 + 255 + + + + + 196 + 196 + 196 + + + + caLineEdit::Static + + + caLineEdit::Channel + + + caLineEdit::Channel + + + 1.000000000000000 + + + 0.000000000000000 + + + caLineEdit::WidthAndHeight + + + caLineEdit::decimal + + + + + + 1140 + 360 + 50 + 25 + + + + $(P)$(R)CH7:RampDownRate.EGU + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + $(P)$(R)CH7:RampDownRate.EGU + + + + 0 + 0 + 255 + + + + + 196 + 196 + 196 + + + + caLineEdit::Static + + + caLineEdit::Channel + + + caLineEdit::Channel + + + 1.000000000000000 + + + 0.000000000000000 + + + caLineEdit::WidthAndHeight + + + caLineEdit::decimal + + + + + + 530 + 340 + 100 + 20 + + + + $(P)$(R)CH3:RampDownRate_RBV + + + Qt::AlignCenter + + + $(P)$(R)CH3:RampDownRate_RBV.VAL + + + + 0 + 0 + 255 + + + + + 196 + 196 + 196 + + + + caLineEdit::Static + + + caLineEdit::Channel + + + caLineEdit::Channel + + + 1.000000000000000 + + + 0.000000000000000 + + + caLineEdit::WidthAndHeight + + + caLineEdit::decimal + + + + + + 1030 + 285 + 100 + 20 + + + + $(P)$(R)CH7:RampUpRate_RBV + + + Qt::AlignCenter + + + $(P)$(R)CH7:RampUpRate_RBV.VAL + + + + 0 + 0 + 255 + + + + + 196 + 196 + 196 + + + + caLineEdit::Static + + + caLineEdit::Channel + + + caLineEdit::Channel + + + 1.000000000000000 + + + 0.000000000000000 + + + caLineEdit::WidthAndHeight + + + caLineEdit::decimal + + + + + + 905 + 340 + 100 + 20 + + + + $(P)$(R)CH6:RampDownRate_RBV.VAL + + + Qt::AlignCenter + + + $(P)$(R)CH6:RampDownRate_RBV.VAL + + + + 0 + 0 + 255 + + + + + 196 + 196 + 196 + + + + caLineEdit::Static + + + caLineEdit::Channel + + + caLineEdit::Channel + + + 1.000000000000000 + + + 0.000000000000000 + + + caLineEdit::WidthAndHeight + + + caLineEdit::decimal + + + + + + 275 + 285 + 100 + 20 + + + + + + + $(P)$(R)CH1:RampUpRate_RBV + + + Qt::AlignCenter + + + $(P)$(R)CH1:RampUpRate_RBV.VAL + + + + 0 + 0 + 255 + + + + + 196 + 196 + 196 + + + + caLineEdit::Static + + + caLineEdit::Channel + + + caLineEdit::Channel + + + 1.000000000000000 + + + 0.000000000000000 + + + caLineEdit::WidthAndHeight + + + caLineEdit::decimal + + + + + + 145 + 285 + 100 + 20 + + + + + + + $(P)$(R)CH0:RampUpRate_RBV + + + Qt::AlignCenter + + + $(P)$(R)CH0:RampUpRate_RBV.VAL + + + + 0 + 0 + 255 + + + + + 196 + 196 + 196 + + + + caLineEdit::Static + + + caLineEdit::Channel + + + caLineEdit::Channel + + + 1.000000000000000 + + + 0.000000000000000 + + + caLineEdit::WidthAndHeight + + + caLineEdit::decimal + + + + + + 655 + 285 + 100 + 20 + + + + $(P)$(R)CH4:RampUpRate_RBV + + + Qt::AlignCenter + + + $(P)$(R)CH4:RampUpRate_RBV.VAL + + + + 0 + 0 + 255 + + + + + 196 + 196 + 196 + + + + caLineEdit::Static + + + caLineEdit::Channel + + + caLineEdit::Channel + + + 1.000000000000000 + + + 0.000000000000000 + + + caLineEdit::WidthAndHeight + + + caLineEdit::decimal + + + + + + 780 + 340 + 100 + 20 + + + + $(P)$(R)CH5:RampDownRate_RBV + + + Qt::AlignCenter + + + $(P)$(R)CH5:RampDownRate_RBV.VAL + + + + 0 + 0 + 255 + + + + + 196 + 196 + 196 + + + + caLineEdit::Static + + + caLineEdit::Channel + + + caLineEdit::Channel + + + 1.000000000000000 + + + 0.000000000000000 + + + caLineEdit::WidthAndHeight + + + caLineEdit::decimal + + + + + + 780 + 285 + 100 + 20 + + + + $(P)$(R)CH5:RampUpRate_RBV + + + Qt::AlignCenter + + + $(P)$(R)CH5:RampUpRate_RBV.VAL + + + + 0 + 0 + 255 + + + + + 196 + 196 + 196 + + + + caLineEdit::Static + + + caLineEdit::Channel + + + caLineEdit::Channel + + + 1.000000000000000 + + + 0.000000000000000 + + + caLineEdit::WidthAndHeight + + + caLineEdit::decimal + + + + + + 530 + 285 + 100 + 20 + + + + $(P)$(R)CH3:RampUpRate_RBV + + + Qt::AlignCenter + + + $(P)$(R)CH3:RampUpRate_RBV.VAL + + + + 0 + 0 + 255 + + + + + 196 + 196 + 196 + + + + caLineEdit::Static + + + caLineEdit::Channel + + + caLineEdit::Channel + + + 1.000000000000000 + + + 0.000000000000000 + + + caLineEdit::WidthAndHeight + + + caLineEdit::decimal + + + + + + 905 + 285 + 100 + 20 + + + + $(P)$(R)CH6:RampUpRate_RBV + + + Qt::AlignCenter + + + $(P)$(R)CH6:RampUpRate_RBV.VAL + + + + 0 + 0 + 255 + + + + + 196 + 196 + 196 + + + + caLineEdit::Static + + + caLineEdit::Channel + + + caLineEdit::Channel + + + 1.000000000000000 + + + 0.000000000000000 + + + caLineEdit::WidthAndHeight + + + caLineEdit::decimal + + + + + + 405 + 340 + 100 + 20 + + + + $(P)$(R)CH2:RampDownRate_RBV + + + Qt::AlignCenter + + + $(P)$(R)CH2:RampDownRate_RBV.VAL + + + + 0 + 0 + 255 + + + + + 196 + 196 + 196 + + + + caLineEdit::Static + + + caLineEdit::Channel + + + caLineEdit::Channel + + + 1.000000000000000 + + + 0.000000000000000 + + + caLineEdit::WidthAndHeight + + + caLineEdit::decimal + + + + + + 145 + 340 + 100 + 20 + + + + + + + $(P)$(R)CH0:RampDownRate_RBV + + + Qt::AlignCenter + + + $(P)$(R)CH0:RampDownRate_RBV.VAL + + + + 0 + 0 + 255 + + + + + 196 + 196 + 196 + + + + caLineEdit::Static + + + caLineEdit::Channel + + + caLineEdit::Channel + + + 1.000000000000000 + + + 0.000000000000000 + + + caLineEdit::WidthAndHeight + + + caLineEdit::decimal + + + + + + 275 + 340 + 100 + 20 + + + + + + + $(P)$(R)CH1:RampDownRate_RBV + + + Qt::AlignCenter + + + $(P)$(R)CH1:RampDownRate_RBV.VAL + + + + 0 + 0 + 255 + + + + + 196 + 196 + 196 + + + + caLineEdit::Static + + + caLineEdit::Channel + + + caLineEdit::Channel + + + 1.000000000000000 + + + 0.000000000000000 + + + caLineEdit::WidthAndHeight + + + caLineEdit::decimal + + + + + + 1030 + 340 + 100 + 20 + + + + $(P)$(R)CH7:RampDownRate_RBV + + + Qt::AlignCenter + + + $(P)$(R)CH7:RampDownRate_RBV.VAL + + + + 0 + 0 + 255 + + + + + 196 + 196 + 196 + + + + caLineEdit::Static + + + caLineEdit::Channel + + + caLineEdit::Channel + + + 1.000000000000000 + + + 0.000000000000000 + + + caLineEdit::WidthAndHeight + + + caLineEdit::decimal + + + + + + 405 + 285 + 100 + 20 + + + + $(P)$(R)CH2:RampUpRate_RBV + + + Qt::AlignCenter + + + $(P)$(R)CH2:RampUpRate_RBV.VAL + + + + 0 + 0 + 255 + + + + + 196 + 196 + 196 + + + + caLineEdit::Static + + + caLineEdit::Channel + + + caLineEdit::Channel + + + 1.000000000000000 + + + 0.000000000000000 + + + caLineEdit::WidthAndHeight + + + caLineEdit::decimal + + + + + + 655 + 340 + 100 + 20 + + + + $(P)$(R)CH4:RampDownRate_RBV + + + Qt::AlignCenter + + + $(P)$(R)CH4:RampDownRate_RBV.VAL + + + + 0 + 0 + 255 + + + + + 196 + 196 + 196 + + + + caLineEdit::Static + + + caLineEdit::Channel + + + caLineEdit::Channel + + + 1.000000000000000 + + + 0.000000000000000 + + + caLineEdit::WidthAndHeight + + + caLineEdit::decimal + + + + + + 530 + 410 + 100 + 25 + + + + $(P)$(R)CH3:PowerDownMode + + + caChoice::Column + + + 1 + + + + + + 655 + 410 + 100 + 25 + + + + $(P)$(R)CH4:PowerDownMode + + + caChoice::Column + + + 1 + + + + + + 145 + 410 + 100 + 25 + + + + $(P)$(R)CH0:PowerDownMode + + + caChoice::Column + + + 1 + + + + + + 275 + 410 + 100 + 25 + + + + $(P)$(R)CH1:PowerDownMode + + + caChoice::Column + + + 1 + + + + + + 1030 + 410 + 100 + 25 + + + + $(P)$(R)CH7:PowerDownMode + + + caChoice::Column + + + 1 + + + + + + 405 + 410 + 100 + 25 + + + + $(P)$(R)CH2:PowerDownMode + + + caChoice::Column + + + 1 + + + + + + 905 + 410 + 100 + 25 + + + + $(P)$(R)CH6:PowerDownMode + + + caChoice::Column + + + 1 + + + + + + 780 + 410 + 100 + 25 + + + + $(P)$(R)CH5:PowerDownMode + + + caChoice::Column + + + 1 + + + + + + 5 + 410 + 131 + 25 + + + + Power down mode: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 905 + 445 + 100 + 25 + + + + $(P)$(R)CH6:IMonRange + + + caChoice::Column + + + 1 + + + + + + 1030 + 445 + 100 + 25 + + + + $(P)$(R)CH7:IMonRange + + + caChoice::Column + + + 1 + + + + + + 145 + 445 + 100 + 25 + + + + $(P)$(R)CH0:IMonRange + + + caChoice::Column + + + 1 + + + + + + 780 + 445 + 100 + 25 + + + + $(P)$(R)CH5:IMonRange + + + caChoice::Column + + + 1 + + + + + + 655 + 445 + 100 + 25 + + + + $(P)$(R)CH4:IMonRange + + + caChoice::Column + + + 1 + + + + + + 530 + 445 + 100 + 25 + + + + $(P)$(R)CH3:IMonRange + + + caChoice::Column + + + 1 + + + + + + 275 + 445 + 100 + 25 + + + + $(P)$(R)CH1:IMonRange + + + caChoice::Column + + + 1 + + + + + + 405 + 445 + 100 + 25 + + + + $(P)$(R)CH2:IMonRange + + + caChoice::Column + + + 1 + + + + + + 15 + 445 + 121 + 25 + + + + IMon Range: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 145 + 110 + 100 + 25 + + + + $(P)$(R)CH0:Name + + + + 115 + 223 + 255 + + + + caLineEdit::Static + + + + + + 655 + 110 + 100 + 25 + + + + $(P)$(R)CH4:Name + + + + 115 + 223 + 255 + + + + caLineEdit::Static + + + + + + 1030 + 110 + 100 + 25 + + + + $(P)$(R)CH7:Name + + + + 115 + 223 + 255 + + + + caLineEdit::Static + + + + + + 905 + 110 + 100 + 25 + + + + $(P)$(R)CH6:Name + + + + 115 + 223 + 255 + + + + caLineEdit::Static + + + + + + 530 + 110 + 100 + 25 + + + + $(P)$(R)CH3:Name + + + + 115 + 223 + 255 + + + + caLineEdit::Static + + + + + + 405 + 110 + 100 + 25 + + + + $(P)$(R)CH2:Name + + + + 115 + 223 + 255 + + + + caLineEdit::Static + + + + + + 780 + 110 + 100 + 25 + + + + $(P)$(R)CH5:Name + + + + 115 + 223 + 255 + + + + caLineEdit::Static + + + + + + 275 + 110 + 100 + 25 + + + + $(P)$(R)CH1:Name + + + + 115 + 223 + 255 + + + + caLineEdit::Static + + + caframe_8 + caLineEdit_17 + caLineEdit_15 + caLineEdit_14 + caLineEdit_16 + catextentry_4 + catextentry_5 + catextentry_6 + catextentry_7 + caLabel_45 + caLineEdit_18 + catextentry_8 + catextentry_9 + catextentry_10 + caLineEdit_19 + caLineEdit_20 + caLineEdit_21 + catextentry_11 + caLineEdit_22 + caLineEdit_23 + caLineEdit_24 + caLineEdit_25 + caLineEdit_26 + caLineEdit_27 + caLineEdit_28 + caLineEdit_29 + caMenu_3 + caMessageButton_3 + label_9 + label_10 + caLineEdit_30 + caLineEdit_31 + calabel + calabel_2 + calabel_3 + calabel_4 + calabel_5 + calabel_6 + calabel_7 + calabel_8 + calabel_9 + calabel_10 + calabel_11 + calabel_12 + calabel_13 + calabel_14 + calabel_15 + calabel_16 + cachoice + cachoice_2 + cachoice_3 + cachoice_4 + cachoice_5 + cachoice_6 + cachoice_7 + cachoice_8 + catextentry_27 + catextentry_22 + catextentry_25 + catextentry_21 + catextentry_24 + catextentry_20 + catextentry_23 + catextentry_26 + catextentry_28 + catextentry_29 + catextentry_30 + catextentry_31 + catextentry_32 + catextentry_33 + catextentry_34 + catextentry_35 + label_11 + label_12 + caLineEdit_32 + caLineEdit_33 + caLineEdit_34 + caLineEdit_35 + caLineEdit_36 + caLineEdit_37 + caLineEdit_38 + caLineEdit_39 + caLineEdit_40 + caLineEdit_41 + caLineEdit_42 + caLineEdit_43 + caLineEdit_44 + caLineEdit_45 + caLineEdit_46 + caLineEdit_47 + caLineEdit_48 + caLineEdit_49 + cachoice_9 + cachoice_10 + cachoice_11 + cachoice_12 + cachoice_13 + cachoice_14 + cachoice_15 + cachoice_16 + label_13 + cachoice_17 + cachoice_18 + cachoice_19 + cachoice_20 + cachoice_21 + cachoice_22 + cachoice_23 + cachoice_24 + label_14 + catextentry_12 + catextentry_13 + catextentry_14 + catextentry_15 + catextentry_16 + catextentry_17 + catextentry_18 + catextentry_19 + + + + + caMenu + QComboBox +
caMenu
+
+ + caChoice + QWidget +
caChoice
+
+ + caTextEntry + caLineEdit +
caTextEntry
+
+ + caMessageButton + QPushButton +
caMessageButton
+
+ + caFrame + QFrame +
caFrame
+ 1 +
+ + caLabel + QLabel +
caLabel
+
+ + caLineEdit + QLineEdit +
caLineEdit
+
+
+ + +