diff --git a/cfg/addons/ahtwo_cfg.py b/cfg/addons/ahtwo_cfg.py index 39d892da..d3c40cbb 100644 --- a/cfg/addons/ahtwo_cfg.py +++ b/cfg/addons/ahtwo_cfg.py @@ -12,11 +12,18 @@ Mod('cap_io', Mod('cap', 'frappy_psi.ahcapbridge.AH2700', 'capacitance', + acquisition_key='averexp', io='cap_io', loss_module = 'loss', freq_module = 'freq', ) +Mod('capvolt', + 'frappy_psi.ahcapbridge.Voltage', + 'excitation voltage', + cap = 'cap', +) + Mod('cap2_io', 'frappy_psi.ahcapbridge.IO', '', uri='linse-leiden-ts:3001' @@ -25,6 +32,7 @@ Mod('cap2_io', Mod('cap2', 'frappy_psi.ahcapbridge.AH2550', 'capacitance', + acquisition_key='averexp', io='cap2_io', loss_module = 'loss2', ) diff --git a/cfg/addons/leidenexp_cfg.py b/cfg/addons/leidenexp_cfg.py new file mode 100644 index 00000000..24edcbad --- /dev/null +++ b/cfg/addons/leidenexp_cfg.py @@ -0,0 +1,230 @@ +Node('leidenexp.psi.ch', + '''Leiden Dilution''', +) + +ah2550_uri = 'linse-leiden-ts:3001' # capacitance bridge AH 2550 +ah2700_uri = 'linse-leiden-ts:3002' # capacitance bridge AH 2700 +sourcemeter_uri = 'linse-leiden-ts:3006' # k2601b used for HC experiment as heater +srbridge_uri = 'linse-leiden-ts:3008' # Stanford Research Resistance Bridge + +# ls370 on port 3004: see ~/sea/tcl/leiden.config + +Mod('sea_main', + 'frappy_psi.sea.SeaClient', + 'main sea connection for leiden.config', + config = 'leiden.config', + service = 'main', +) + +for name in ['T3K', 'Tstill', 'T50mK', 'Tmxhigh', 'Tmxcx', 'Tblueo', + 'Tpt50', 'Tpt3high', 'Tpt3low', 'Twhite', 'Tgreen']: + mname = name.replace('T','T_') + kwds = {} + if name == 'Tmxlow': + kwds['meaning'] = ['temperature', 20] + Mod(mname, + 'frappy_psi.sea.SeaReadable', '', + io='sea_main', + sea_object='tt', + rel_paths=[name], + value=Param(unit='K'), + extra_modules = ['raw'], + **kwds + ) + Mod(name.replace('T', 'R_'), + 'frappy_psi.sea.SeaReadable', '', + io='sea_main', + value=Param(unit='Ohm'), + single_module=f'{mname}.raw' + ) + +# "if not " means disabled, "if <title>" means enabled + +if not 'calibsetup': + Mod('cmn', + 'frappy_psi.sea.SeaReadable', '', + io = 'sea_main', + sea_object = 'cmn', + extra_modules = ['u1', 'u2', 'temp'], + ) + + Mod('T_cmn', + 'frappy_psi.sea.SeaReadable', '', + io='sea_main', + value=Param(unit='K'), + single_module='cmn.temp', + ) + + Mod('V_fixp', + 'frappy_psi.sea.SeaReadable', '', + io='sea_main', + value=Param(unit='V'), + single_module='cmn.u2', + ) + + Mod('V_cmn', + 'frappy_psi.sea.SeaReadable', '', + io='sea_main', + value=Param(unit='V'), + single_module='cmn.u1', + ) + + Mod('drive_cmn', + 'frappy_psi.picontrol.PIctrl', + 'controlled cmn temperature', + input_module = 'T_cmn', + output_module = 'mix_htr', + output_min = 0, + output_max = 3e-2, + p = 2, + itime = 120, + ) + + Mod('drive_fixp', + 'frappy_psi.picontrol.PI', + 'controlled fixpoint voltage', + value=Param(unit='V'), + input_module = 'V_fixp', + output_module = 'drive_mix', + output_min = 0.0, + output_max = 0.01, + p = 1, + itime = 120, + ) + +if 'sr_bridge': + IO('io_sr', srbridge_uri) + + Mod('res1', + 'frappy_psi.bridge.Resistance', + 'please add description', + io='io_sr', + port=1, + ) + + Mod('T_res1', + 'frappy_psi.softcal.Sensor', + '', + rawsensor='res1', + calcurve='RCW575a', + ) + + Mod('res2', + 'frappy_psi.bridge.Resistance', + 'please add description', + io='io_sr', + port=3, + ) + + Mod('T_res2', + 'frappy_psi.softcal.Sensor', + '', + rawsensor='res2', + calcurve='RC550a', + ) + + Mod('phase1', + 'frappy_psi.bridge.Phase', + 'please add description', + resistance='res1', + ) + + Mod('phase2', + 'frappy_psi.bridge.Phase', + 'please add description', + resistance='res2', + ) + + Mod('dev1', + 'frappy_psi.bridge.Deviation', + 'please add description', + resistance='res1', + ) + + Mod('dev2', + 'frappy_psi.bridge.Deviation', + 'please add description', + resistance='res2', + ) + + +if 'keihley 2601b': + IO('io_sm', sourcemeter_uri) + + Mod('source', + 'frappy_psi.k2601b.SourceMeter' + '', + description = "keithley sourcemeter", + mode = 2, + vlimit = 0.5, + ilimit = .0005, + io = 'io_sm', + ) + + Mod('hvolt', + 'frappy_psi.k2601b.Voltage' + '', + description = "Heater Voltage", + active = False, + limit = 1.0, + target = 0.0, + sourcemeter = 'source', + io = 'io_sm', + ) + + Mod('hcur', + 'frappy_psi.k2601b.Current' + '', + description = "Heater Current Source", + active = True, + limit = 0.0001, + target = 0.0, + sourcemeter = 'source', + io = 'io_sm', + ) + + Mod('hres', + 'frappy_psi.k2601b.Resistivity' + '', + description = "Heater Resistance", + io = 'io_sm', + ) + + Mod('hpow', + 'frappy_psi.k2601b.Power' + '', + description = "Heater Power", + io = 'io_sm', + ) + + +if 'cap ah2700': + # TODO: adapt names (cap...) to your experiment + + IO('io_ah2700', ah2700_uri) + + Mod('cap', + 'frappy_psi.ahcapbridge.AH2700', + 'capacitance', + acquisition_key='averexp', + io='io_ah2700', + loss_module = 'loss', + freq_module = 'freq', + ) + + Mod('capvolt', + 'frappy_psi.ahcapbridge.Voltage', + 'excitation voltage', + cap = 'cap', + ) + +if not 'cap_ah2550': + IO('io_ah2550', ah2550_uri) + + Mod('cap2', + 'frappy_psi.ahcapbridge.AH2550', + 'capacitance', + acquisition_key='averexp', + io='io_ah2550', + loss_module = 'loss2', + ) diff --git a/cfg/ah2550test_cfg.py b/cfg/ah2550test_cfg.py new file mode 100644 index 00000000..179b3b04 --- /dev/null +++ b/cfg/ah2550test_cfg.py @@ -0,0 +1,18 @@ +Node('AH2550Test.psi.ch', + 'AH2550 capacitance bridge test', + 'tcp://5000', +) + +Mod('io', + 'frappy_psi.ahcapbridge.IO', '', + uri='linse-leiden-ts:3001', + timeout=1, + end_of_line=('\r\n', '\r') +) + +Mod('cap', + 'frappy_psi.ahcapbridge.AH2550', + 'capacitance', + io='io', + loss_module = 'loss', +) diff --git a/cfg/main/leiden_cfg.py b/cfg/main/leiden_cfg.py index 69288cd3..2d305f83 100644 --- a/cfg/main/leiden_cfg.py +++ b/cfg/main/leiden_cfg.py @@ -1,98 +1,61 @@ Node('leiden.psi.ch', - '''Leiden Dilution''', + 'Leiden Dilution, basic config', + 'tcp://5000', + secondary = ['ws://8051'] ) -ah2700_uri = 'linse-leiden-ts:3002' # used in cfg/addons/ahtwo_cfg.pt -ls370_uri = 'linse-leiden-ts:3004' # used in ~/sea/tcl/leiden.config -tcs_uri = 'linse-leiden-ts:3005' -#nanov_uri = 'linse-leiden-ts:3006' # used in ~/sea/tcl/leiden.config -k2601b_uri = 'linse-leiden-ts:3006' # used for HC experiment as heater -dilhtr_uri = 'linse-leiden-ts:3007' -srbridge_uri = 'linse-leiden-ts:3008' +IO('io_tcs', 'linse-leiden-ts:3005') +IO('io_htr', 'linse-leiden-ts:3007') +IO('io_ghs', 'linse-521e-ts:3001') +IO('io_pfeiffer', 'linse-521e-ts:3002') -Mod('sea_main', +# ah2700: linse-leiden-ts:3002, see leidenexp_cfg.py) +# ls370: 'linse-leiden-ts:3004, see ~/sea/tcl/leiden.config +# nanovolt: linse-leiden-ts:3006, see ~/sea/tcl/leiden.config +# k2601b: linse-leiden-ts:3006, see leidenexp_cfg.py ( used for HC experiment as heater) +# SR bridge: linse-leiden-ts:3008, see leidenexp_cfg.py + +Mod('sea_conn', # do not use sea_main, as this is used in addons/leidenexp_cfg.py 'frappy_psi.sea.SeaClient', 'main sea connection for leiden.config', config = 'leiden.config', service = 'main', ) -for name in ['T3K', 'Tstill', 'T50mK', 'Tmxlow', 'Tmxhigh', 'Tmxcx', 'Tblueo', - 'Tpt50', 'Tpt3high', 'Tpt3low', 'Twhite', 'Tgreen']: - mname = name.replace('T','T_') - Mod(mname, - 'frappy_psi.sea.SeaReadable', '', - io='sea_main', - sea_object='tt', - rel_paths=[name], - value=Param(unit='K'), - extra_modules = ['raw'], - ) - Mod(name.replace('T', 'R_'), - 'frappy_psi.sea.SeaReadable', '', - io='sea_main', - value=Param(unit='Ohm'), - single_module=f'{mname}.raw' - ) +Mod('T_mix', + 'frappy_psi.sea.SeaReadable', '', + io='sea_conn', + sea_object='tt', + rel_paths=['Tmix'], + value=Param(unit='K'), + extra_modules = ['raw'], + meaning = ['temperature', 20], +) -#Mod('cmn', -# 'frappy_psi.sea.SeaReadable', '', -# io = 'sea_main', -# sea_object = 'cmn', -# extra_modules = ['u1', 'u2', 'temp'], -#) - -#Mod('T_cmn', -# 'frappy_psi.sea.SeaReadable', '', -# io='sea_main', -# value=Param(unit='K'), -# single_module='cmn.temp', -#) - -#Mod('V_fixp', -# 'frappy_psi.sea.SeaReadable', '', -# io='sea_main', -# value=Param(unit='V'), -# single_module='cmn.u2', -#) - -#Mod('V_cmn', -# 'frappy_psi.sea.SeaReadable', '', -# io='sea_main', -# value=Param(unit='V'), -# single_module='cmn.u1', -#) - - -Mod('tcs_io', - 'frappy_psi.tcs.IO', - 'tcs communication', - uri=tcs_uri, - ) +Mod('R_mix', + 'frappy_psi.sea.SeaReadable', '', + io='sea_conn', + value=Param(unit='Ohm'), + single_module='T_mix.raw' +) Mod('still_htr', 'frappy_psi.tcs.Heater', 'still heater', - io='tcs_io', + io='io_tcs', channel=2, ) -Mod('mix_io', - 'frappy_psi.dilhtr.IO', - 'dilhtr communication', - uri=dilhtr_uri, - ) - Mod('mix_htr', 'frappy_psi.dilhtr.WrappedHeater', 'mixing chamber heater', - io='mix_io', + io='io_htr', ) Mod('drive_mix', 'frappy_psi.picontrol.PIctrl', 'controlled mix ch. temperature', - input_module = 'T_mxlow', + input_module = 'T_mix', output_module = 'mix_htr', output_min = 0, output_max = 0.02, @@ -100,125 +63,65 @@ Mod('drive_mix', itime = 60, ) -#Mod('drive_cmn', -# 'frappy_psi.picontrol.PIctrl', -# 'controlled cmn temperature', -# input_module = 'T_cmn', -# output_module = 'mix_htr', -# output_min = 0, -# output_max = 3e-2, -# p = 2, -# itime = 120, -# ) - -#Mod('drive_fixp', -# 'frappy_psi.picontrol.PI', -# 'controlled fixpoint voltage', -# value=Param(unit='V'), -# input_module = 'V_fixp', -# output_module = 'drive_mix', -# output_min = 0.0, -# output_max = 0.01, -# p = 1, -# itime = 120, -# ) - -Mod('simio', - 'frappy_psi.bridge.BridgeIO', - 'communication to sim900', - uri=srbridge_uri, +for name in [ + 'A0', 'A1', 'A10', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7', 'A8', 'A9', + 'AUX1', 'He3', 'He4', 'S1', 'S2', 'S3', 'S4', 'S5', + 'V0', 'V1', 'V2', 'V3', 'V4', 'V5', 'V6', 'V7', 'V8', 'V9', + 'V10', 'V11', 'V12', 'V13', 'V14', 'V15', 'V16', 'V17', + 'auto', 'bypass', 'circulation', 'gate18', 'ledtest', 'mixcompr', 'recovery', 'reset', 'start']: + Mod(name, + 'frappy_psi.leidenghs.Valve', + f'switch or valve {name}', + io='io_ghs', + key=name, ) -Mod('res1', - 'frappy_psi.bridge.Resistance', - 'please add description', - io='simio', - port=1, +Mod('p0', + 'frappy_psi.leidenghs.Pressure', + 'test pressure p0', + io='io_ghs', + addr='p0', + scale=2**12 / 1e4, ) -Mod('res2', - 'frappy_psi.bridge.Resistance', - 'please add description', - io='simio', - port=3, +for pname in ['p2', 'p3', 'p4', 'p5']: + Mod(pname, + 'frappy_psi.leidenghs.Pressure', + 'pressure {pname}', + io='io_ghs', + addr=pname, ) -Mod('phase1', - 'frappy_psi.bridge.Phase', - 'please add description', - resistance='res1', +Mod('p6', + 'frappy_psi.leidenghs.PressureLimit', + 'test pressure with limits p6', + io='io_ghs', + addr='p6', + offset=0, ) -Mod('phase2', - 'frappy_psi.bridge.Phase', - 'please add description', - resistance='res2', +Mod('p7', + 'frappy_psi.leidenghs.PressureLimit', + 'test pressure with limits p7', + io='io_ghs', + addr='p7', + offset=0, ) - -Mod('dev1', - 'frappy_psi.bridge.Deviation', - 'please add description', - resistance='res1', +Mod('flow', + 'frappy_psi.leidenghs.PressureLimit', + 'condense flow', + io='io_ghs', + addr='flow', + offset=0, + value=Param(unit='ln/min'), + scale = 2**15 / 1e2, ) -Mod('dev2', - 'frappy_psi.bridge.Deviation', - 'please add description', - resistance='res2', +for pname, addr in [('p8', 4), ('p9', 3), ('p10', 2)]: + Mod(pname, + 'frappy_psi.pfeiffer.Pressure', + f'pressure reading {pname}', + io = 'io_pfeiffer', + channel = addr, ) - - -Mod('vsource_io', - 'frappy_psi.k2601b.K2601bIO', - 'source meter', -# uri = '129.129.156.90:5025', - uri = k2601b_uri, -) - - -Mod('source', - 'frappy_psi.k2601b.SourceMeter' - '', - description = "keithley sourcemeter", - mode = 2, - vlimit = 0.5, - ilimit = .0005, - io = 'vsource_io', -) - -Mod('hvolt', - 'frappy_psi.k2601b.Voltage' - '', - description = "Heater Voltage", - active = False, - limit = 1.0, - target = 0.0, - sourcemeter = 'source', - io = 'vsource_io', -) - -Mod('hcur', - 'frappy_psi.k2601b.Current' - '', - description = "Heater Current Source", - active = True, - limit = 0.0001, - target = 0.0, - sourcemeter = 'source', - io = 'vsource_io', -) - -Mod('hres', - 'frappy_psi.k2601b.Resistivity' - '', - description = "Heater Resistance", - io = 'vsource_io', -) - -Mod('hpow', - 'frappy_psi.k2601b.Power' - '', - description = "Heater Power", - io = 'vsource_io', -) diff --git a/cfg/sea/leiden.config.json b/cfg/sea/leiden.config.json index 729e6525..c95f0bd9 100644 --- a/cfg/sea/leiden.config.json +++ b/cfg/sea/leiden.config.json @@ -55,22 +55,22 @@ {"path": "T50mK/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt T50mK/curve/points", "visibility": 3}, {"path": "T50mK/alarm", "type": "float", "readonly": false, "cmd": "tt T50mK/alarm"}, {"path": "T50mK/raw", "type": "float"}, -{"path": "Tmxlow", "type": "float", "kids": 14}, -{"path": "Tmxlow/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "tt Tmxlow/active"}, -{"path": "Tmxlow/autorange", "type": "bool", "readonly": false, "cmd": "tt Tmxlow/autorange", "description": "autorange (common for all channels)"}, -{"path": "Tmxlow/range", "type": "text", "readonly": false, "cmd": "tt Tmxlow/range", "description": "resistance range in Ohm"}, -{"path": "Tmxlow/range_num", "type": "int"}, -{"path": "Tmxlow/excitation", "type": "text", "readonly": false, "cmd": "tt Tmxlow/excitation", "description": "excitation with unit, i.e. 2uV or 3pA"}, -{"path": "Tmxlow/excitation_num", "type": "int"}, -{"path": "Tmxlow/excitation_mode", "type": "enum", "enum": {"voltage": 0, "current": 1, "off": 2}}, -{"path": "Tmxlow/pause", "type": "int", "readonly": false, "cmd": "tt Tmxlow/pause", "description": "pause time [sec] after channel change"}, -{"path": "Tmxlow/filter", "type": "int", "readonly": false, "cmd": "tt Tmxlow/filter", "description": "filter average time [sec]"}, -{"path": "Tmxlow/dwell", "type": "int", "readonly": false, "cmd": "tt Tmxlow/dwell", "description": "dwell time [sec]. Total time per channel: pause + filter + dwell"}, -{"path": "Tmxlow/status", "type": "text"}, -{"path": "Tmxlow/curve", "type": "text", "readonly": false, "cmd": "tt Tmxlow/curve", "kids": 1}, -{"path": "Tmxlow/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt Tmxlow/curve/points", "visibility": 3}, -{"path": "Tmxlow/alarm", "type": "float", "readonly": false, "cmd": "tt Tmxlow/alarm"}, -{"path": "Tmxlow/raw", "type": "float"}, +{"path": "Tmix", "type": "float", "kids": 14}, +{"path": "Tmix/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "tt Tmix/active"}, +{"path": "Tmix/autorange", "type": "bool", "readonly": false, "cmd": "tt Tmix/autorange", "description": "autorange (common for all channels)"}, +{"path": "Tmix/range", "type": "text", "readonly": false, "cmd": "tt Tmix/range", "description": "resistance range in Ohm"}, +{"path": "Tmix/range_num", "type": "int"}, +{"path": "Tmix/excitation", "type": "text", "readonly": false, "cmd": "tt Tmix/excitation", "description": "excitation with unit, i.e. 2uV or 3pA"}, +{"path": "Tmix/excitation_num", "type": "int"}, +{"path": "Tmix/excitation_mode", "type": "enum", "enum": {"voltage": 0, "current": 1, "off": 2}}, +{"path": "Tmix/pause", "type": "int", "readonly": false, "cmd": "tt Tmix/pause", "description": "pause time [sec] after channel change"}, +{"path": "Tmix/filter", "type": "int", "readonly": false, "cmd": "tt Tmix/filter", "description": "filter average time [sec]"}, +{"path": "Tmix/dwell", "type": "int", "readonly": false, "cmd": "tt Tmix/dwell", "description": "dwell time [sec]. Total time per channel: pause + filter + dwell"}, +{"path": "Tmix/status", "type": "text"}, +{"path": "Tmix/curve", "type": "text", "readonly": false, "cmd": "tt Tmix/curve", "kids": 1}, +{"path": "Tmix/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt Tmix/curve/points", "visibility": 3}, +{"path": "Tmix/alarm", "type": "float", "readonly": false, "cmd": "tt Tmix/alarm"}, +{"path": "Tmix/raw", "type": "float"}, {"path": "Tmxhigh", "type": "float", "kids": 14}, {"path": "Tmxhigh/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "tt Tmxhigh/active"}, {"path": "Tmxhigh/autorange", "type": "bool", "readonly": false, "cmd": "tt Tmxhigh/autorange", "description": "autorange (common for all channels)"}, diff --git a/frappy_psi/ahcapbridge.py b/frappy_psi/ahcapbridge.py index b9d733f9..36f51f3f 100644 --- a/frappy_psi/ahcapbridge.py +++ b/frappy_psi/ahcapbridge.py @@ -349,6 +349,21 @@ class Freq(Writable): self.cap.write_freq(target) +class Voltage(Writable): + cap = Attached() + value = Parameter('', FloatRange(unit='V'), default=0) + + def initModule(self): + super().initModule() + self.cap.addCallback('voltage', self.update_voltage) # auto update status + + def update_voltage(self, voltage): + self.value = voltage + + def write_target(self, target): + self.cap.write_voltage(target) + + class AH2550(AHBase): PATTERN = { 'averexp': re.compile(r'AVERAGE_AVEREXP *([0-9]*)'), diff --git a/frappy_psi/leidenghs.py b/frappy_psi/leidenghs.py index e917ffe2..b3a06a42 100644 --- a/frappy_psi/leidenghs.py +++ b/frappy_psi/leidenghs.py @@ -35,6 +35,7 @@ class IO(StringIO): _key_status = None _pressure = None _pressure_limits = None + pollinterval = Parameter('poll interval', FloatRange(0.1,10), default=0.5) def initModule(self): self.modules = [] @@ -87,32 +88,33 @@ class Base(HasIO): self.read_value() -KEY_MAP = {'mix': 1, # mixture compressor +KEY_MAP = {'mixcompr': 1, # mixture compressor 'bypass': 2, - '15': 3, - '16': 4, + 'V15': 3, + 'V16': 4, + 'AUX1': 5, 'gate18': 6, - '4': 7, - '5': 9, + 'V4': 7, + 'V5': 9, 'reset': 10, - '9': 12, - '14': 13, - '13': 15, + 'V9': 12, + 'V14': 13, + 'V13': 15, 'ledtest': 16, - '12': 18, - '10': 19, - '11': 21, + 'V12': 18, + 'V10': 19, + 'V11': 21, 'A0': 22, - '7': 24, + 'V7': 24, 'S3': 25, - '6': 27, - '17': 28, - '8': 30, - '1': 31, + 'V6': 27, + 'V17': 28, + 'V8': 30, + 'V1': 31, 'S2': 33, - '3': 34, - '2': 36, - '0': 37, + 'V3': 34, + 'V2': 36, + 'V0': 37, 'S1': 39, 'A9': 40, 'A8': 42, @@ -122,6 +124,7 @@ KEY_MAP = {'mix': 1, # mixture compressor 'start': 48, 'A5': 49, 'A7': 51, + 'A1': 52, 'auto': 54, 'A4': 55, 'A6': 57, @@ -148,22 +151,27 @@ class Valve(Base, Writable): state = self.read_value() if state != target: self.change('DEVMAN', self.key.value) + self.target = target self.io.doPoll() self.read_value() def read_value(self): if self.io._key_status is None: self.io.doPoll() - return self.get_key(self.key.value) + value = self.get_key(self.key.value) + if not self.value and not self.target and value: + self.log.info('valve is on, was it a ghost? %r %r %r', self.value, self.target, value) + return value -PRESSURE_MAP = {'P1': 0, - 'P2': 1, - 'P3': 2, - 'P4': 3, - 'P5': 4, - 'P6': 5, - 'P7': 6, + +PRESSURE_MAP = {'p0': 0, + 'p2': 1, + 'p3': 2, + 'p4': 3, + 'p5': 4, + 'p6': 5, + 'p7': 6, 'flow': 7, } @@ -187,7 +195,7 @@ class PressureLimit(Pressure, Readable): ioClass = IO - value = Parameter('pressure values for sensors with limit', datatype=FloatRange(unit='mbar')) + value = Parameter('pressure values for sensors with limit', datatype=FloatRange(unit='mbar', fmtstr='%.1f')) offset = Property('address of pressure sensor', datatype=EnumType({'P6': 0, 'P7': 2})) limit_low = Parameter('low pressure limit', datatype=FloatRange(0, 2000, unit='mbar'), readonly=False) limit_high = Parameter('high pressure limit', datatype=FloatRange(0, 2000, unit='mbar'), readonly=False) diff --git a/frappy_psi/pfeiffer.py b/frappy_psi/pfeiffer.py index 5a9e09f8..c53d0107 100644 --- a/frappy_psi/pfeiffer.py +++ b/frappy_psi/pfeiffer.py @@ -43,7 +43,7 @@ class IO(StringIO): class Pressure(HasIO, Readable): value = Parameter(unit='mbar') - channel = Property('channel number', IntRange(1, 2), default=1) + channel = Property('channel number', IntRange(1, 8), default=1) STATUS_MAP = { '0': (IDLE, ''), diff --git a/frappy_psi/picontrol.py b/frappy_psi/picontrol.py index ab55d397..73e84c16 100644 --- a/frappy_psi/picontrol.py +++ b/frappy_psi/picontrol.py @@ -290,6 +290,7 @@ class PI(HasConvergence, PImixin): return self.input_module.read_status() def write_target(self, target): + self._overflow = 0 super().write_target(target) self.convergence_start()