Merge branch 'wip' of gitlab.psi.ch:samenv/frappy into wip

This commit is contained in:
l_samenv 2022-06-29 11:51:01 +02:00
commit 3769ddca75
78 changed files with 1992 additions and 1464 deletions

View File

@ -218,7 +218,7 @@ max-branches=50
max-statements=150
# Maximum number of parents for a class (see R0901).
max-parents=15
max-parents=25
# Maximum number of attributes for a class (see R0902).
max-attributes=50

View File

@ -38,7 +38,7 @@ doc:
$(MAKE) -C doc html
lint:
pylint -j 0 -f colorized -r n --rcfile=.pylintrc secop secop_* test
pylint -f colorized -r n --rcfile=.pylintrc secop secop_* test
isort:
@find test -name '*.py' -print0 | xargs -0 isort -e -m 2 -w 80 -ns __init__.py

111
cfg/main/jtccr.cfg Normal file
View File

@ -0,0 +1,111 @@
[NODE]
description = CCR with JT-stage
id = jtccr.config.sea.psi.ch
[sea_main]
class = secop_psi.sea.SeaClient
description = main sea connection for jtccr.config
config = jtccr.config
service = main
[tt]
class = secop_psi.sea.SeaDrivable
io = sea_main
sea_object = tt
[T_ccr]
class = secop_psi.sea.SeaReadable
io = sea_main
sea_object = tt
rel_paths = ccr
[jtccr]
class = secop_psi.sea.SeaWritable
io = sea_main
sea_object = jtccr
extra_modules = v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,vm
[v1]
class = secop_psi.sea.SeaWritable
io = sea_main
single_module = jtccr.v1
[v2]
class = secop_psi.sea.SeaWritable
io = sea_main
single_module = jtccr.v2
[v3]
class = secop_psi.sea.SeaWritable
io = sea_main
single_module = jtccr.v3
[v4]
class = secop_psi.sea.SeaWritable
io = sea_main
single_module = jtccr.v4
[v5]
class = secop_psi.sea.SeaWritable
io = sea_main
single_module = jtccr.v5
[v6]
class = secop_psi.sea.SeaWritable
io = sea_main
single_module = jtccr.v6
[v7]
class = secop_psi.sea.SeaWritable
io = sea_main
single_module = jtccr.v7
[v8]
class = secop_psi.sea.SeaWritable
io = sea_main
single_module = jtccr.v8
[v9]
class = secop_psi.sea.SeaWritable
io = sea_main
single_module = jtccr.v9
[v10]
class = secop_psi.sea.SeaWritable
io = sea_main
single_module = jtccr.v10
[vm]
class = secop_psi.sea.SeaWritable
io = sea_main
single_module = jtccr.vm
[p1]
class = secop_psi.sea.SeaReadable
io = sea_main
sea_object = p1
[p2]
class = secop_psi.sea.SeaReadable
io = sea_main
sea_object = p2
[p3]
class = secop_psi.sea.SeaReadable
io = sea_main
sea_object = p3
[p4]
class = secop_psi.sea.SeaReadable
io = sea_main
sea_object = p4
[pressreg]
class = secop_psi.sea.SeaReadable
io = sea_main
sea_object = pressreg
[epc]
class = secop_psi.sea.SeaReadable
io = sea_main
sea_object = epc

View File

@ -39,7 +39,7 @@ io = sea_main
sea_object = hemot
[mf]
class = secop_psi.sea.SeaReadable
class = secop_psi.sea.SeaDrivable
io = sea_main
sea_object = mf

View File

@ -45,7 +45,7 @@ io = sea_main
sea_object = hefill
[mf]
class = secop_psi.sea.SeaReadable
class = secop_psi.sea.SeaDrivable
io = sea_main
sea_object = mf
@ -57,7 +57,7 @@ sea_object = lev
[om_io]
description = dom motor IO
class = secop_psi.phytron.PhytronIO
uri = ma6-ts.psi.ch:3001
uri = ma6-ts.psi.ch:3003
[om]
description = stick rotation, typically used for omega

View File

@ -45,7 +45,7 @@ io = sea_main
sea_object = ln2fill
[mf]
class = secop_psi.sea.SeaReadable
class = secop_psi.sea.SeaDrivable
io = sea_main
sea_object = mf

View File

@ -21,11 +21,13 @@ description = IPS for magnet and levels
uri = mb11-ts:3003
[T_stat]
class = secop_psi.mercury.TemperatureLoop
class = secop_psi.mercury.TemperatureAutoFlow
description = static heat exchanger temperature
output_module = htr_stat
slot = DB6.T1,DB1.H1
needle_valve = p_stat
slot = DB6.T1
io = itc1
tolerance = 0.1
[htr_stat]
class = secop_psi.mercury.HeaterOutput
@ -37,8 +39,11 @@ io = itc1
class = secop_psi.mercury.PressureLoop
description = static needle valve pressure
output_module = pos_stat
settling_time = 60
slot = DB5.P1,DB3.G1
io = itc1
tolerance = 1
value.unit = mbar_flow
[pos_stat]
class = secop_psi.mercury.ValvePos
@ -47,11 +52,13 @@ slot = DB5.P1,DB3.G1
io = itc1
[T_dyn]
class = secop_psi.mercury.TemperatureLoop
class = secop_psi.mercury.TemperatureAutoFlow
description = dynamic heat exchanger temperature
output_module = htr_dyn
slot = DB7.T1,DB2.H1
needle_valve = p_dyn
slot = DB7.T1
io = itc1
tolerance = 0.1
[htr_dyn]
class = secop_psi.mercury.HeaterOutput
@ -63,8 +70,11 @@ io = itc1
class = secop_psi.mercury.PressureLoop
description = dynamic needle valve pressure
output_module = pos_dyn
settling_time = 60
slot = DB8.P1,DB4.G1
io = itc1
tolerance = 1
value.unit = mbar_flow
[pos_dyn]
class = secop_psi.mercury.ValvePos
@ -88,8 +98,9 @@ io = ips
class = secop_psi.mercury.TemperatureLoop
description = neck heater 1 temperature
output_module = htr_neck1
slot = MB1.T1,MB0.H1
slot = MB1.T1
io = itc2
tolerance = 1
[htr_neck1]
class = secop_psi.mercury.HeaterOutput
@ -101,8 +112,9 @@ io = itc2
class = secop_psi.mercury.TemperatureLoop
description = neck heater 2 temperature
output_module = htr_neck2
slot = DB6.T1,DB1.H1
slot = DB6.T1
io = itc2
tolerance = 1
[htr_neck2]
class = secop_psi.mercury.HeaterOutput
@ -114,8 +126,9 @@ io = itc2
class = secop_psi.mercury.TemperatureLoop
description = static needle valve temperature
output_module = htr_nvs
slot = DB7.T1,DB2.H1
slot = DB7.T1
io = itc2
tolerance = 0.1
[htr_nvs]
class = secop_psi.mercury.HeaterOutput
@ -127,8 +140,9 @@ io = itc2
class = secop_psi.mercury.TemperatureLoop
description = dynamic needle valve heater temperature
output_module = htr_nvd
slot = DB8.T1,DB3.H1
slot = DB8.T1
io = itc2
tolerance = 0.1
[htr_nvd]
class = secop_psi.mercury.HeaterOutput
@ -149,15 +163,15 @@ slot = GRPZ
io = ips
target.max = 11
#[om_io]
#description = dom motor IO
#class = secop_psi.phytron.PhytronIO
#uri = mb11-ts.psi.ch:3004
[om_io]
description = dom motor IO
class = secop_psi.phytron.PhytronIO
uri = mb11-ts.psi.ch:3004
#[om]
#description = stick rotation, typically used for omega
#class = secop_psi.phytron.Motor
#io = om_io
#sign = -1
#encoder_mode = NO
[om]
description = stick rotation, typically used for omega
class = secop_psi.phytron.Motor
io = om_io
sign = -1
encoder_mode = NO

View File

@ -1,20 +0,0 @@
[sea_main]
class = secop_psi.sea.SeaClient
description = SEA connection to ccr2ht_focus-be-filter
config = ccr2ht.config
service = main
[tt]
class = secop_psi.sea.SeaDrivable
io = sea_main
sea_object = tt
[cc]
class = secop_psi.sea.SeaReadable
io = sea_main
sea_object = cc
[table]
class = secop_psi.sea.SeaReadable
io = sea_main
sea_object = table

View File

@ -1,7 +0,0 @@
["current", [{"path": "", "type": "float", "kids": 6},
{"path": "send", "type": "text", "readonly": false, "cmd": "current send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "i1", "type": "float"},
{"path": "i2", "type": "float"},
{"path": "i3", "type": "float"},
{"path": "i4", "type": "float"}]]

343
cfg/sea/dil3.stick.json Normal file
View File

@ -0,0 +1,343 @@
{"ts": {"base": "/ts", "params": [
{"path": "", "type": "float", "readonly": false, "cmd": "run ts", "description": "ts", "kids": 19},
{"path": "send", "type": "text", "readonly": false, "cmd": "ts send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "is_running", "type": "int", "readonly": false, "cmd": "ts is_running", "visibility": 3},
{"path": "set", "type": "float", "readonly": false, "cmd": "ts set", "visibility": 3},
{"path": "target", "type": "float"},
{"path": "running", "type": "int"},
{"path": "tolerance", "type": "float", "readonly": false, "cmd": "ts tolerance"},
{"path": "maxwait", "type": "float", "readonly": false, "cmd": "ts maxwait"},
{"path": "settle", "type": "float", "readonly": false, "cmd": "ts settle"},
{"path": "log", "type": "text", "readonly": false, "cmd": "ts log", "visibility": 3, "kids": 4},
{"path": "log/mean", "type": "float", "visibility": 3},
{"path": "log/m2", "type": "float", "visibility": 3},
{"path": "log/stddev", "type": "float", "visibility": 3},
{"path": "log/n", "type": "float", "visibility": 3},
{"path": "ramp", "type": "float", "readonly": false, "cmd": "ts ramp", "description": "ramp [K/min]"},
{"path": "heaterselect", "type": "enum", "enum": {"sample": 0, "mix": 1, "mix(temporarely)": 2}, "readonly": false, "cmd": "ts heaterselect"},
{"path": "control", "type": "enum", "enum": {"off": 0, "sample": 6, "mix": 5, "samplehtr": 8}, "readonly": false, "cmd": "ts control", "description": "click off to reload list"},
{"path": "heatermode", "type": "enum", "enum": {"disabled": -1, "off": 0, "on": 1}, "readonly": false, "cmd": "ts heatermode"},
{"path": "heaterrange", "type": "enum", "enum": {"2uW": 1, "20uW": 2, "200uW": 3, "2mW": 4, "20mW": 5}, "readonly": false, "cmd": "ts heaterrange"},
{"path": "autoheater", "type": "bool", "readonly": false, "cmd": "ts autoheater", "description": "automatic heater range", "kids": 12},
{"path": "autoheater/wlp0", "type": "float", "readonly": false, "cmd": "ts autoheater/wlp0", "description": "weak link base temperature (used for auto heater)"},
{"path": "autoheater/wlp1", "type": "float", "readonly": false, "cmd": "ts autoheater/wlp1", "description": "weak link temperature at 1 uW (used for auto heater)"},
{"path": "autoheater/wlp2", "type": "float", "readonly": false, "cmd": "ts autoheater/wlp2", "description": "weak link temperature at 10 uW (used for auto heater)"},
{"path": "autoheater/wlp3", "type": "float", "readonly": false, "cmd": "ts autoheater/wlp3", "description": "weak link temperature at 100 uW (used for auto heater)"},
{"path": "autoheater/wlp4", "type": "float", "readonly": false, "cmd": "ts autoheater/wlp4", "description": "weak link temperature at 1 mW (used for auto heater)"},
{"path": "autoheater/mxp0", "type": "float", "readonly": false, "cmd": "ts autoheater/mxp0", "description": "weak link base temperature (used for auto heater)"},
{"path": "autoheater/mxp1", "type": "float", "readonly": false, "cmd": "ts autoheater/mxp1", "description": "mix.ch. temperature at 1 uW (used for auto heater)"},
{"path": "autoheater/mxp2", "type": "float", "readonly": false, "cmd": "ts autoheater/mxp2", "description": "mix.ch. temperature at 10 uW (used for auto heater)"},
{"path": "autoheater/mxp3", "type": "float", "readonly": false, "cmd": "ts autoheater/mxp3", "description": "mix.ch. temperature at 100 uW (used for auto heater)"},
{"path": "autoheater/mxp4", "type": "float", "readonly": false, "cmd": "ts autoheater/mxp4", "description": "mix.ch. temperature at 1 mW (used for auto heater)"},
{"path": "autoheater/switchdown", "type": "float", "readonly": false, "cmd": "ts autoheater/switchdown", "description": "percentage for auto heater switch down"},
{"path": "autoheater/switchup", "type": "float", "readonly": false, "cmd": "ts autoheater/switchup", "description": "when the calculated power is above this percentage, use higher range"},
{"path": "autoprop", "type": "bool", "readonly": false, "cmd": "ts autoprop", "description": "change prop value depending on actual power", "kids": 2},
{"path": "autoprop/prop", "type": "float", "readonly": false, "cmd": "ts autoprop/prop", "description": "prop value (maximum prop value when autheater is on)"},
{"path": "autoprop/integ", "type": "float", "readonly": false, "cmd": "ts autoprop/integ", "description": "integral value [sec], deriv is set to 0 on change"},
{"path": "instructions", "type": "text"},
{"path": "auto", "type": "enum", "enum": {"off": 0, "cool_vti": 1, "pipe_pump": 11, "pipes_ready": 12, "ready_for_sorbpump": 2, "sorb_pump": 3, "condense": 4, "circulate": 5, "remove_only": 60, "remove_and_warmup": 62, "remove_and_condense": 61, "remove_and_sorbpump": 63, "finished": 7}, "readonly": false, "cmd": "ts auto", "kids": 21},
{"path": "auto/usetrap", "type": "enum", "enum": {"trap_A": 0, "trap_B": 1}, "readonly": false, "cmd": "ts auto/usetrap"},
{"path": "auto/hasturbo", "type": "bool"},
{"path": "auto/pipes_pumped", "type": "bool", "readonly": false, "cmd": "ts auto/pipes_pumped"},
{"path": "auto/cool_crit", "type": "text", "readonly": false, "cmd": "ts auto/cool_crit", "description": "criterium for transition to ready_for_sorbpump"},
{"path": "auto/pumptime1", "type": "float", "readonly": false, "cmd": "ts auto/pumptime1", "description": "pump time [sec] while sorb at 40"},
{"path": "auto/pumptime2", "type": "float", "readonly": false, "cmd": "ts auto/pumptime2", "description": "pump time [sec] while sorb cools down"},
{"path": "auto/pumptime_remaining", "type": "float", "description": "remeaining pump time [min]"},
{"path": "auto/condensep", "type": "float", "readonly": false, "cmd": "ts auto/condensep"},
{"path": "auto/dumptarget", "type": "float", "readonly": false, "cmd": "ts auto/dumptarget"},
{"path": "auto/condenseflow", "type": "float", "readonly": false, "cmd": "ts auto/condenseflow", "description": "VTI flow for condensing and min. flow for cooling"},
{"path": "auto/circulateflow", "type": "float", "readonly": false, "cmd": "ts auto/circulateflow", "description": "VTI flow for circulating (may be changed during circulation)"},
{"path": "auto/onekstate", "type": "enum", "enum": {"normal": 0, "fill": 1, "optimize": 2}, "readonly": false, "cmd": "ts auto/onekstate"},
{"path": "auto/oneklimit", "type": "float", "readonly": false, "cmd": "ts auto/oneklimit"},
{"path": "auto/minflow", "type": "float", "readonly": false, "cmd": "ts auto/minflow", "description": "minimum VTI flow (optimize stops at this value)"},
{"path": "auto/p1low", "type": "float", "readonly": false, "cmd": "ts auto/p1low", "description": "p1 value indicating a negligible mixture amount"},
{"path": "auto/p2low", "type": "float", "readonly": false, "cmd": "ts auto/p2low", "description": "p2 value indicating a good vacuum"},
{"path": "auto/warmup_t", "type": "float", "readonly": false, "cmd": "ts auto/warmup_t", "description": "VTI temperature to reach when remove_and_warmup"},
{"path": "auto/vti_t", "type": "float", "readonly": false, "cmd": "ts auto/vti_t", "description": "VTI temperature to reach when remove_only"},
{"path": "auto/xgas", "type": "enum", "enum": {"pump": 0, "add": 1, "empty": 2, "filled": 3}, "readonly": false, "cmd": "ts auto/xgas"},
{"path": "auto/xgas_pulse", "type": "float", "readonly": false, "cmd": "ts auto/xgas_pulse", "description": "opening time for xgas capillary [sec]"},
{"path": "auto/removephase", "type": "enum", "enum": {"raw_remove": 0, "wait_p1_low": 1, "wait_v6_open": 2, "wait_a_little": 3, "wait_v6_closed": 4, "wait_t_warmup": 5}, "readonly": false, "cmd": "ts auto/removephase"}]},
"treg": {"base": "/treg", "params": [
{"path": "", "type": "int", "kids": 10},
{"path": "send", "type": "text", "readonly": false, "cmd": "treg send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "autoscan", "type": "bool", "readonly": false, "cmd": "treg autoscan", "kids": 4},
{"path": "autoscan/synchronized", "type": "bool", "readonly": false, "cmd": "treg autoscan/synchronized"},
{"path": "autoscan/interval", "type": "text", "readonly": false, "cmd": "treg autoscan/interval"},
{"path": "autoscan/pause", "type": "text", "readonly": false, "cmd": "treg autoscan/pause"},
{"path": "autoscan/dwell", "type": "text", "readonly": false, "cmd": "treg autoscan/dwell"},
{"path": "sample", "type": "float", "kids": 14},
{"path": "sample/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "treg sample/active"},
{"path": "sample/autorange", "type": "bool", "readonly": false, "cmd": "treg sample/autorange", "description": "autorange (common for all channels)"},
{"path": "sample/range", "type": "text", "readonly": false, "cmd": "treg sample/range", "description": "resistance range in Ohm"},
{"path": "sample/range_num", "type": "int"},
{"path": "sample/excitation", "type": "text", "readonly": false, "cmd": "treg sample/excitation", "description": "excitation with unit, i.e. 2uV or 3pA"},
{"path": "sample/excitation_num", "type": "int"},
{"path": "sample/excitation_mode", "type": "enum", "enum": {"voltage": 0, "current": 1, "off": 2}},
{"path": "sample/pause", "type": "int", "readonly": false, "cmd": "treg sample/pause", "description": "pause time [sec] after channel change"},
{"path": "sample/filter", "type": "int", "readonly": false, "cmd": "treg sample/filter", "description": "filter average time [sec]"},
{"path": "sample/dwell", "type": "int", "readonly": false, "cmd": "treg sample/dwell", "description": "dwell time [sec]. Total time per channel: pause + filter + dwell"},
{"path": "sample/status", "type": "text"},
{"path": "sample/curve", "type": "text", "readonly": false, "cmd": "treg sample/curve", "kids": 1},
{"path": "sample/curve/points", "type": "floatvarar", "readonly": false, "cmd": "treg sample/curve/points", "visibility": 3},
{"path": "sample/alarm", "type": "float", "readonly": false, "cmd": "treg sample/alarm"},
{"path": "sample/raw", "type": "float"},
{"path": "mix", "type": "float", "kids": 14},
{"path": "mix/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "treg mix/active"},
{"path": "mix/autorange", "type": "bool", "readonly": false, "cmd": "treg mix/autorange", "description": "autorange (common for all channels)"},
{"path": "mix/range", "type": "text", "readonly": false, "cmd": "treg mix/range", "description": "resistance range in Ohm"},
{"path": "mix/range_num", "type": "int"},
{"path": "mix/excitation", "type": "text", "readonly": false, "cmd": "treg mix/excitation", "description": "excitation with unit, i.e. 2uV or 3pA"},
{"path": "mix/excitation_num", "type": "int"},
{"path": "mix/excitation_mode", "type": "enum", "enum": {"voltage": 0, "current": 1, "off": 2}},
{"path": "mix/pause", "type": "int", "readonly": false, "cmd": "treg mix/pause", "description": "pause time [sec] after channel change"},
{"path": "mix/filter", "type": "int", "readonly": false, "cmd": "treg mix/filter", "description": "filter average time [sec]"},
{"path": "mix/dwell", "type": "int", "readonly": false, "cmd": "treg mix/dwell", "description": "dwell time [sec]. Total time per channel: pause + filter + dwell"},
{"path": "mix/status", "type": "text"},
{"path": "mix/curve", "type": "text", "readonly": false, "cmd": "treg mix/curve", "kids": 1},
{"path": "mix/curve/points", "type": "floatvarar", "readonly": false, "cmd": "treg mix/curve/points", "visibility": 3},
{"path": "mix/alarm", "type": "float", "readonly": false, "cmd": "treg mix/alarm"},
{"path": "mix/raw", "type": "float"},
{"path": "samplehtr", "type": "float", "kids": 14},
{"path": "samplehtr/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "treg samplehtr/active"},
{"path": "samplehtr/autorange", "type": "bool", "readonly": false, "cmd": "treg samplehtr/autorange", "description": "autorange (common for all channels)"},
{"path": "samplehtr/range", "type": "text", "readonly": false, "cmd": "treg samplehtr/range", "description": "resistance range in Ohm"},
{"path": "samplehtr/range_num", "type": "int"},
{"path": "samplehtr/excitation", "type": "text", "readonly": false, "cmd": "treg samplehtr/excitation", "description": "excitation with unit, i.e. 2uV or 3pA"},
{"path": "samplehtr/excitation_num", "type": "int"},
{"path": "samplehtr/excitation_mode", "type": "enum", "enum": {"voltage": 0, "current": 1, "off": 2}},
{"path": "samplehtr/pause", "type": "int", "readonly": false, "cmd": "treg samplehtr/pause", "description": "pause time [sec] after channel change"},
{"path": "samplehtr/filter", "type": "int", "readonly": false, "cmd": "treg samplehtr/filter", "description": "filter average time [sec]"},
{"path": "samplehtr/dwell", "type": "int", "readonly": false, "cmd": "treg samplehtr/dwell", "description": "dwell time [sec]. Total time per channel: pause + filter + dwell"},
{"path": "samplehtr/status", "type": "text"},
{"path": "samplehtr/curve", "type": "text", "readonly": false, "cmd": "treg samplehtr/curve", "kids": 1},
{"path": "samplehtr/curve/points", "type": "floatvarar", "readonly": false, "cmd": "treg samplehtr/curve/points", "visibility": 3},
{"path": "samplehtr/alarm", "type": "float", "readonly": false, "cmd": "treg samplehtr/alarm"},
{"path": "samplehtr/raw", "type": "float"},
{"path": "set", "type": "float", "readonly": false, "cmd": "treg set", "kids": 18},
{"path": "set/mode", "type": "enum", "enum": {"disabled": -1, "off": 0, "controlling": 1, "manual": 2}, "readonly": false, "cmd": "treg set/mode"},
{"path": "set/reg", "type": "float"},
{"path": "set/ramp", "type": "float", "readonly": false, "cmd": "treg set/ramp", "description": "maximum ramp in K/min (0: ramp off)"},
{"path": "set/wramp", "type": "float", "readonly": false, "cmd": "treg set/wramp"},
{"path": "set/smooth", "type": "float", "readonly": false, "cmd": "treg set/smooth", "description": "smooth time (minutes)"},
{"path": "set/channel", "type": "text", "readonly": false, "cmd": "treg set/channel"},
{"path": "set/limit", "type": "float", "readonly": false, "cmd": "treg set/limit"},
{"path": "set/resist", "type": "float", "readonly": false, "cmd": "treg set/resist"},
{"path": "set/maxheater", "type": "text", "readonly": false, "cmd": "treg set/maxheater", "description": "maximum heater limit, units should be given without space: W, mW, A, mA"},
{"path": "set/linearpower", "type": "float", "readonly": false, "cmd": "treg set/linearpower", "description": "when not 0, it is the maximum effective power, and the power is linear to the heater output"},
{"path": "set/maxpowerlim", "type": "float", "description": "the maximum power limit (before any booster or converter)"},
{"path": "set/maxpower", "type": "float", "readonly": false, "cmd": "treg set/maxpower", "description": "maximum power [W]"},
{"path": "set/maxcurrent", "type": "float", "description": "the maximum current before any booster or converter"},
{"path": "set/manualpower", "type": "float", "readonly": false, "cmd": "treg set/manualpower"},
{"path": "set/power", "type": "float"},
{"path": "set/prop", "type": "float", "readonly": false, "cmd": "treg set/prop", "description": "bigger means more gain"},
{"path": "set/integ", "type": "float", "readonly": false, "cmd": "treg set/integ", "description": "[sec] bigger means slower"},
{"path": "set/deriv", "type": "float", "readonly": false, "cmd": "treg set/deriv"},
{"path": "analog2", "type": "float", "readonly": false, "cmd": "treg analog2"},
{"path": "remote", "type": "bool"},
{"path": "display", "type": "text", "readonly": false, "cmd": "treg display"}]},
"tmon": {"base": "/tmon", "params": [
{"path": "", "type": "int", "kids": 12},
{"path": "send", "type": "text", "readonly": false, "cmd": "tmon send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "autoscan", "type": "bool", "readonly": false, "cmd": "tmon autoscan", "kids": 4},
{"path": "autoscan/synchronized", "type": "bool", "readonly": false, "cmd": "tmon autoscan/synchronized"},
{"path": "autoscan/interval", "type": "text", "readonly": false, "cmd": "tmon autoscan/interval"},
{"path": "autoscan/pause", "type": "text", "readonly": false, "cmd": "tmon autoscan/pause"},
{"path": "autoscan/dwell", "type": "text", "readonly": false, "cmd": "tmon autoscan/dwell"},
{"path": "sorb", "type": "float", "kids": 14},
{"path": "sorb/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "tmon sorb/active"},
{"path": "sorb/autorange", "type": "bool", "readonly": false, "cmd": "tmon sorb/autorange", "description": "autorange (common for all channels)"},
{"path": "sorb/range", "type": "text", "readonly": false, "cmd": "tmon sorb/range", "description": "resistance range in Ohm"},
{"path": "sorb/range_num", "type": "int"},
{"path": "sorb/excitation", "type": "text", "readonly": false, "cmd": "tmon sorb/excitation", "description": "excitation with unit, i.e. 2uV or 3pA"},
{"path": "sorb/excitation_num", "type": "int"},
{"path": "sorb/excitation_mode", "type": "enum", "enum": {"voltage": 0, "current": 1, "off": 2}},
{"path": "sorb/pause", "type": "int", "readonly": false, "cmd": "tmon sorb/pause", "description": "pause time [sec] after channel change"},
{"path": "sorb/filter", "type": "int", "readonly": false, "cmd": "tmon sorb/filter", "description": "filter average time [sec]"},
{"path": "sorb/dwell", "type": "int", "readonly": false, "cmd": "tmon sorb/dwell", "description": "dwell time [sec]. Total time per channel: pause + filter + dwell"},
{"path": "sorb/status", "type": "text"},
{"path": "sorb/curve", "type": "text", "readonly": false, "cmd": "tmon sorb/curve", "kids": 1},
{"path": "sorb/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tmon sorb/curve/points", "visibility": 3},
{"path": "sorb/alarm", "type": "float", "readonly": false, "cmd": "tmon sorb/alarm"},
{"path": "sorb/raw", "type": "float"},
{"path": "onek", "type": "float", "kids": 14},
{"path": "onek/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "tmon onek/active"},
{"path": "onek/autorange", "type": "bool", "readonly": false, "cmd": "tmon onek/autorange", "description": "autorange (common for all channels)"},
{"path": "onek/range", "type": "text", "readonly": false, "cmd": "tmon onek/range", "description": "resistance range in Ohm"},
{"path": "onek/range_num", "type": "int"},
{"path": "onek/excitation", "type": "text", "readonly": false, "cmd": "tmon onek/excitation", "description": "excitation with unit, i.e. 2uV or 3pA"},
{"path": "onek/excitation_num", "type": "int"},
{"path": "onek/excitation_mode", "type": "enum", "enum": {"voltage": 0, "current": 1, "off": 2}},
{"path": "onek/pause", "type": "int", "readonly": false, "cmd": "tmon onek/pause", "description": "pause time [sec] after channel change"},
{"path": "onek/filter", "type": "int", "readonly": false, "cmd": "tmon onek/filter", "description": "filter average time [sec]"},
{"path": "onek/dwell", "type": "int", "readonly": false, "cmd": "tmon onek/dwell", "description": "dwell time [sec]. Total time per channel: pause + filter + dwell"},
{"path": "onek/status", "type": "text"},
{"path": "onek/curve", "type": "text", "readonly": false, "cmd": "tmon onek/curve", "kids": 1},
{"path": "onek/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tmon onek/curve/points", "visibility": 3},
{"path": "onek/alarm", "type": "float", "readonly": false, "cmd": "tmon onek/alarm"},
{"path": "onek/raw", "type": "float"},
{"path": "stillt", "type": "float", "kids": 14},
{"path": "stillt/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "tmon stillt/active"},
{"path": "stillt/autorange", "type": "bool", "readonly": false, "cmd": "tmon stillt/autorange", "description": "autorange (common for all channels)"},
{"path": "stillt/range", "type": "text", "readonly": false, "cmd": "tmon stillt/range", "description": "resistance range in Ohm"},
{"path": "stillt/range_num", "type": "int"},
{"path": "stillt/excitation", "type": "text", "readonly": false, "cmd": "tmon stillt/excitation", "description": "excitation with unit, i.e. 2uV or 3pA"},
{"path": "stillt/excitation_num", "type": "int"},
{"path": "stillt/excitation_mode", "type": "enum", "enum": {"voltage": 0, "current": 1, "off": 2}},
{"path": "stillt/pause", "type": "int", "readonly": false, "cmd": "tmon stillt/pause", "description": "pause time [sec] after channel change"},
{"path": "stillt/filter", "type": "int", "readonly": false, "cmd": "tmon stillt/filter", "description": "filter average time [sec]"},
{"path": "stillt/dwell", "type": "int", "readonly": false, "cmd": "tmon stillt/dwell", "description": "dwell time [sec]. Total time per channel: pause + filter + dwell"},
{"path": "stillt/status", "type": "text"},
{"path": "stillt/curve", "type": "text", "readonly": false, "cmd": "tmon stillt/curve", "kids": 1},
{"path": "stillt/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tmon stillt/curve/points", "visibility": 3},
{"path": "stillt/alarm", "type": "float", "readonly": false, "cmd": "tmon stillt/alarm"},
{"path": "stillt/raw", "type": "float"},
{"path": "sample", "type": "float", "kids": 14},
{"path": "sample/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "tmon sample/active"},
{"path": "sample/autorange", "type": "bool", "readonly": false, "cmd": "tmon sample/autorange", "description": "autorange (common for all channels)"},
{"path": "sample/range", "type": "text", "readonly": false, "cmd": "tmon sample/range", "description": "resistance range in Ohm"},
{"path": "sample/range_num", "type": "int"},
{"path": "sample/excitation", "type": "text", "readonly": false, "cmd": "tmon sample/excitation", "description": "excitation with unit, i.e. 2uV or 3pA"},
{"path": "sample/excitation_num", "type": "int"},
{"path": "sample/excitation_mode", "type": "enum", "enum": {"voltage": 0, "current": 1, "off": 2}},
{"path": "sample/pause", "type": "int", "readonly": false, "cmd": "tmon sample/pause", "description": "pause time [sec] after channel change"},
{"path": "sample/filter", "type": "int", "readonly": false, "cmd": "tmon sample/filter", "description": "filter average time [sec]"},
{"path": "sample/dwell", "type": "int", "readonly": false, "cmd": "tmon sample/dwell", "description": "dwell time [sec]. Total time per channel: pause + filter + dwell"},
{"path": "sample/status", "type": "text"},
{"path": "sample/curve", "type": "text", "readonly": false, "cmd": "tmon sample/curve", "kids": 1},
{"path": "sample/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tmon sample/curve/points", "visibility": 3},
{"path": "sample/alarm", "type": "float", "readonly": false, "cmd": "tmon sample/alarm"},
{"path": "sample/raw", "type": "float"},
{"path": "samplehtr", "type": "float", "kids": 14},
{"path": "samplehtr/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "tmon samplehtr/active"},
{"path": "samplehtr/autorange", "type": "bool", "readonly": false, "cmd": "tmon samplehtr/autorange", "description": "autorange (common for all channels)"},
{"path": "samplehtr/range", "type": "text", "readonly": false, "cmd": "tmon samplehtr/range", "description": "resistance range in Ohm"},
{"path": "samplehtr/range_num", "type": "int"},
{"path": "samplehtr/excitation", "type": "text", "readonly": false, "cmd": "tmon samplehtr/excitation", "description": "excitation with unit, i.e. 2uV or 3pA"},
{"path": "samplehtr/excitation_num", "type": "int"},
{"path": "samplehtr/excitation_mode", "type": "enum", "enum": {"voltage": 0, "current": 1, "off": 2}},
{"path": "samplehtr/pause", "type": "int", "readonly": false, "cmd": "tmon samplehtr/pause", "description": "pause time [sec] after channel change"},
{"path": "samplehtr/filter", "type": "int", "readonly": false, "cmd": "tmon samplehtr/filter", "description": "filter average time [sec]"},
{"path": "samplehtr/dwell", "type": "int", "readonly": false, "cmd": "tmon samplehtr/dwell", "description": "dwell time [sec]. Total time per channel: pause + filter + dwell"},
{"path": "samplehtr/status", "type": "text"},
{"path": "samplehtr/curve", "type": "text", "readonly": false, "cmd": "tmon samplehtr/curve", "kids": 1},
{"path": "samplehtr/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tmon samplehtr/curve/points", "visibility": 3},
{"path": "samplehtr/alarm", "type": "float", "readonly": false, "cmd": "tmon samplehtr/alarm"},
{"path": "samplehtr/raw", "type": "float"},
{"path": "mix", "type": "float", "kids": 14},
{"path": "mix/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "tmon mix/active"},
{"path": "mix/autorange", "type": "bool", "readonly": false, "cmd": "tmon mix/autorange", "description": "autorange (common for all channels)"},
{"path": "mix/range", "type": "text", "readonly": false, "cmd": "tmon mix/range", "description": "resistance range in Ohm"},
{"path": "mix/range_num", "type": "int"},
{"path": "mix/excitation", "type": "text", "readonly": false, "cmd": "tmon mix/excitation", "description": "excitation with unit, i.e. 2uV or 3pA"},
{"path": "mix/excitation_num", "type": "int"},
{"path": "mix/excitation_mode", "type": "enum", "enum": {"voltage": 0, "current": 1, "off": 2}},
{"path": "mix/pause", "type": "int", "readonly": false, "cmd": "tmon mix/pause", "description": "pause time [sec] after channel change"},
{"path": "mix/filter", "type": "int", "readonly": false, "cmd": "tmon mix/filter", "description": "filter average time [sec]"},
{"path": "mix/dwell", "type": "int", "readonly": false, "cmd": "tmon mix/dwell", "description": "dwell time [sec]. Total time per channel: pause + filter + dwell"},
{"path": "mix/status", "type": "text"},
{"path": "mix/curve", "type": "text", "readonly": false, "cmd": "tmon mix/curve", "kids": 1},
{"path": "mix/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tmon mix/curve/points", "visibility": 3},
{"path": "mix/alarm", "type": "float", "readonly": false, "cmd": "tmon mix/alarm"},
{"path": "mix/raw", "type": "float"},
{"path": "analog2", "type": "float", "readonly": false, "cmd": "tmon analog2"},
{"path": "remote", "type": "bool"},
{"path": "display", "type": "text", "readonly": false, "cmd": "tmon display"}]},
"dil": {"base": "/dil", "params": [
{"path": "", "type": "float", "kids": 60},
{"path": "Tset", "type": "float"},
{"path": "TsorbSet", "type": "float", "readonly": false, "cmd": "dil TsorbSet"},
{"path": "Tmix", "type": "float"},
{"path": "T1K", "type": "float"},
{"path": "Tsorb", "type": "float"},
{"path": "Pmix", "type": "float", "readonly": false, "cmd": "dil Pmix"},
{"path": "Pmax", "type": "float"},
{"path": "HtrRange", "type": "int", "readonly": false, "cmd": "dil HtrRange"},
{"path": "Pstill", "type": "float", "readonly": false, "cmd": "dil Pstill"},
{"path": "Psorb", "type": "float", "readonly": false, "cmd": "dil Psorb"},
{"path": "G1", "type": "float"},
{"path": "G2", "type": "float"},
{"path": "G3", "type": "float"},
{"path": "P1", "type": "float"},
{"path": "P2", "type": "float"},
{"path": "V6", "type": "float", "readonly": false, "cmd": "dil V6"},
{"path": "V12A", "type": "float", "readonly": false, "cmd": "dil V12A"},
{"path": "V1K", "type": "float", "readonly": false, "cmd": "dil V1K"},
{"path": "v6pos", "type": "float"},
{"path": "V9", "type": "int", "readonly": false, "cmd": "dil V9", "visibility": 3},
{"path": "V8", "type": "int", "readonly": false, "cmd": "dil V8", "visibility": 3},
{"path": "V7", "type": "int", "readonly": false, "cmd": "dil V7", "visibility": 3},
{"path": "V11A", "type": "int", "readonly": false, "cmd": "dil V11A", "visibility": 3},
{"path": "V13A", "type": "int", "readonly": false, "cmd": "dil V13A", "visibility": 3},
{"path": "V13B", "type": "int", "readonly": false, "cmd": "dil V13B", "visibility": 3},
{"path": "V11B", "type": "int", "readonly": false, "cmd": "dil V11B", "visibility": 3},
{"path": "V12B", "type": "int", "readonly": false, "cmd": "dil V12B", "visibility": 3},
{"path": "He4", "type": "int", "readonly": false, "cmd": "dil He4", "visibility": 3},
{"path": "V1", "type": "int", "readonly": false, "cmd": "dil V1", "visibility": 3},
{"path": "V5", "type": "int", "readonly": false, "cmd": "dil V5", "visibility": 3},
{"path": "V4", "type": "int", "readonly": false, "cmd": "dil V4", "visibility": 3},
{"path": "V3", "type": "int", "readonly": false, "cmd": "dil V3", "visibility": 3},
{"path": "V14", "type": "int", "readonly": false, "cmd": "dil V14", "visibility": 3},
{"path": "V10", "type": "int", "readonly": false, "cmd": "dil V10", "visibility": 3},
{"path": "V2", "type": "int", "readonly": false, "cmd": "dil V2", "visibility": 3},
{"path": "V2A", "type": "int", "readonly": false, "cmd": "dil V2A", "visibility": 3},
{"path": "V1A", "type": "int", "readonly": false, "cmd": "dil V1A", "visibility": 3},
{"path": "V5A", "type": "int", "readonly": false, "cmd": "dil V5A", "visibility": 3},
{"path": "V4A", "type": "int", "readonly": false, "cmd": "dil V4A", "visibility": 3},
{"path": "V3A", "type": "int", "readonly": false, "cmd": "dil V3A", "visibility": 3},
{"path": "Roots", "type": "int", "readonly": false, "cmd": "dil Roots", "visibility": 3},
{"path": "Aux", "type": "int", "readonly": false, "cmd": "dil Aux", "visibility": 3},
{"path": "He3", "type": "int", "readonly": false, "cmd": "dil He3", "visibility": 3},
{"path": "closedelay", "type": "float", "readonly": false, "cmd": "dil closedelay", "visibility": 3},
{"path": "extVersion", "type": "int", "readonly": false, "cmd": "dil extVersion", "visibility": 3},
{"path": "pumpoff", "type": "int"},
{"path": "upperN2", "type": "float"},
{"path": "lowerN2", "type": "float"},
{"path": "maxtry", "type": "int", "readonly": false, "cmd": "dil maxtry", "visibility": 3},
{"path": "upperLimit", "type": "float", "readonly": false, "cmd": "dil upperLimit"},
{"path": "lowerLimit", "type": "float", "readonly": false, "cmd": "dil lowerLimit", "visibility": 3},
{"path": "tolerance", "type": "float", "readonly": false, "cmd": "dil tolerance"},
{"path": "maxwait", "type": "int", "readonly": false, "cmd": "dil maxwait"},
{"path": "settle", "type": "int", "readonly": false, "cmd": "dil settle"},
{"path": "targetValue", "type": "float"},
{"path": "is_running", "type": "int", "visibility": 3},
{"path": "verbose", "type": "int", "readonly": false, "cmd": "dil verbose", "visibility": 3},
{"path": "driver", "type": "text", "visibility": 3},
{"path": "creationCmd", "type": "text", "visibility": 3},
{"path": "status", "type": "text", "readonly": false, "cmd": "dil status", "visibility": 3}]},
"sorb": {"base": "/sorb", "params": [
{"path": "", "type": "float", "readonly": false, "cmd": "run sorb", "description": "sorb", "kids": 28},
{"path": "send", "type": "text", "readonly": false, "cmd": "sorb send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "is_running", "type": "int", "readonly": false, "cmd": "sorb is_running", "visibility": 3},
{"path": "mode", "type": "enum", "enum": {"off": 0, "on": 1}, "readonly": false, "cmd": "sorb mode"},
{"path": "reg", "type": "float"},
{"path": "output", "type": "float", "readonly": false, "cmd": "sorb output"},
{"path": "ramptime", "type": "float", "readonly": false, "cmd": "sorb ramptime", "description": "time for ramping [sec] deltax = 1 or a factor 10"},
{"path": "ramptol", "type": "float", "readonly": false, "cmd": "sorb ramptol", "description": "log of max. deviation when ramping"},
{"path": "smoothtime", "type": "float", "readonly": false, "cmd": "sorb smoothtime", "description": "time for smoothing ramp near setpoint"},
{"path": "invar", "type": "text", "readonly": false, "cmd": "sorb invar", "visibility": 3},
{"path": "outvar", "type": "text", "readonly": false, "cmd": "sorb outvar", "visibility": 3},
{"path": "prop", "type": "float", "readonly": false, "cmd": "sorb prop", "description": "smaller means more sensitive. a change of 'prop' on input -> a change of 100 % or a factor 10 on output"},
{"path": "int", "type": "float", "readonly": false, "cmd": "sorb int", "description": "integration time (sec)"},
{"path": "outmin", "type": "float", "readonly": false, "cmd": "sorb outmin", "description": "output for maximal decrease of input var."},
{"path": "outmax", "type": "float", "readonly": false, "cmd": "sorb outmax", "description": "output for maximal increase of input var."},
{"path": "inpfunction", "type": "enum", "enum": {"linear": 0, "logarithmic": 1}, "readonly": false, "cmd": "sorb inpfunction"},
{"path": "inplinear", "type": "float", "readonly": false, "cmd": "sorb inplinear", "description": "function gets linear below about this value"},
{"path": "outfunction", "type": "enum", "enum": {"linear": 0, "exponential": 1}, "readonly": false, "cmd": "sorb outfunction"},
{"path": "outlinear", "type": "float", "readonly": false, "cmd": "sorb outlinear", "description": "function gets linear below about this value"},
{"path": "precision", "type": "float", "readonly": false, "cmd": "sorb precision"},
{"path": "deadband", "type": "float", "readonly": false, "cmd": "sorb deadband"},
{"path": "maxdelta", "type": "float", "readonly": false, "cmd": "sorb maxdelta"},
{"path": "set", "type": "float", "readonly": false, "cmd": "sorb set"},
{"path": "target", "type": "float"},
{"path": "running", "type": "int"},
{"path": "tolerance", "type": "float", "readonly": false, "cmd": "sorb tolerance"},
{"path": "maxwait", "type": "float", "readonly": false, "cmd": "sorb maxwait"},
{"path": "settle", "type": "float", "readonly": false, "cmd": "sorb settle"}]}}

343
cfg/sea/dil4.stick.json Normal file
View File

@ -0,0 +1,343 @@
{"ts": {"base": "/ts", "params": [
{"path": "", "type": "float", "readonly": false, "cmd": "run ts", "description": "ts", "kids": 19},
{"path": "send", "type": "text", "readonly": false, "cmd": "ts send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "is_running", "type": "int", "readonly": false, "cmd": "ts is_running", "visibility": 3},
{"path": "set", "type": "float", "readonly": false, "cmd": "ts set", "visibility": 3},
{"path": "target", "type": "float"},
{"path": "running", "type": "int"},
{"path": "tolerance", "type": "float", "readonly": false, "cmd": "ts tolerance"},
{"path": "maxwait", "type": "float", "readonly": false, "cmd": "ts maxwait"},
{"path": "settle", "type": "float", "readonly": false, "cmd": "ts settle"},
{"path": "log", "type": "text", "readonly": false, "cmd": "ts log", "visibility": 3, "kids": 4},
{"path": "log/mean", "type": "float", "visibility": 3},
{"path": "log/m2", "type": "float", "visibility": 3},
{"path": "log/stddev", "type": "float", "visibility": 3},
{"path": "log/n", "type": "float", "visibility": 3},
{"path": "ramp", "type": "float", "readonly": false, "cmd": "ts ramp", "description": "ramp [K/min]"},
{"path": "heaterselect", "type": "enum", "enum": {"sample": 0, "mix": 1, "mix(temporarely)": 2}, "readonly": false, "cmd": "ts heaterselect"},
{"path": "control", "type": "enum", "enum": {"off": 0, "sample": 6, "mix": 5, "samplehtr": 8}, "readonly": false, "cmd": "ts control", "description": "click off to reload list"},
{"path": "heatermode", "type": "enum", "enum": {"disabled": -1, "off": 0, "on": 1}, "readonly": false, "cmd": "ts heatermode"},
{"path": "heaterrange", "type": "enum", "enum": {"2uW": 1, "20uW": 2, "200uW": 3, "2mW": 4, "20mW": 5}, "readonly": false, "cmd": "ts heaterrange"},
{"path": "autoheater", "type": "bool", "readonly": false, "cmd": "ts autoheater", "description": "automatic heater range", "kids": 12},
{"path": "autoheater/wlp0", "type": "float", "readonly": false, "cmd": "ts autoheater/wlp0", "description": "weak link base temperature (used for auto heater)"},
{"path": "autoheater/wlp1", "type": "float", "readonly": false, "cmd": "ts autoheater/wlp1", "description": "weak link temperature at 1 uW (used for auto heater)"},
{"path": "autoheater/wlp2", "type": "float", "readonly": false, "cmd": "ts autoheater/wlp2", "description": "weak link temperature at 10 uW (used for auto heater)"},
{"path": "autoheater/wlp3", "type": "float", "readonly": false, "cmd": "ts autoheater/wlp3", "description": "weak link temperature at 100 uW (used for auto heater)"},
{"path": "autoheater/wlp4", "type": "float", "readonly": false, "cmd": "ts autoheater/wlp4", "description": "weak link temperature at 1 mW (used for auto heater)"},
{"path": "autoheater/mxp0", "type": "float", "readonly": false, "cmd": "ts autoheater/mxp0", "description": "weak link base temperature (used for auto heater)"},
{"path": "autoheater/mxp1", "type": "float", "readonly": false, "cmd": "ts autoheater/mxp1", "description": "mix.ch. temperature at 1 uW (used for auto heater)"},
{"path": "autoheater/mxp2", "type": "float", "readonly": false, "cmd": "ts autoheater/mxp2", "description": "mix.ch. temperature at 10 uW (used for auto heater)"},
{"path": "autoheater/mxp3", "type": "float", "readonly": false, "cmd": "ts autoheater/mxp3", "description": "mix.ch. temperature at 100 uW (used for auto heater)"},
{"path": "autoheater/mxp4", "type": "float", "readonly": false, "cmd": "ts autoheater/mxp4", "description": "mix.ch. temperature at 1 mW (used for auto heater)"},
{"path": "autoheater/switchdown", "type": "float", "readonly": false, "cmd": "ts autoheater/switchdown", "description": "percentage for auto heater switch down"},
{"path": "autoheater/switchup", "type": "float", "readonly": false, "cmd": "ts autoheater/switchup", "description": "when the calculated power is above this percentage, use higher range"},
{"path": "autoprop", "type": "bool", "readonly": false, "cmd": "ts autoprop", "description": "change prop value depending on actual power", "kids": 2},
{"path": "autoprop/prop", "type": "float", "readonly": false, "cmd": "ts autoprop/prop", "description": "prop value (maximum prop value when autheater is on)"},
{"path": "autoprop/integ", "type": "float", "readonly": false, "cmd": "ts autoprop/integ", "description": "integral value [sec], deriv is set to 0 on change"},
{"path": "instructions", "type": "text"},
{"path": "auto", "type": "enum", "enum": {"off": 0, "cool_vti": 1, "pipe_pump": 11, "pipes_ready": 12, "ready_for_sorbpump": 2, "sorb_pump": 3, "condense": 4, "circulate": 5, "remove_only": 60, "remove_and_warmup": 62, "remove_and_condense": 61, "remove_and_sorbpump": 63, "finished": 7}, "readonly": false, "cmd": "ts auto", "kids": 21},
{"path": "auto/usetrap", "type": "enum", "enum": {"trap_A": 0, "trap_B": 1}, "readonly": false, "cmd": "ts auto/usetrap"},
{"path": "auto/hasturbo", "type": "bool"},
{"path": "auto/pipes_pumped", "type": "bool", "readonly": false, "cmd": "ts auto/pipes_pumped"},
{"path": "auto/cool_crit", "type": "text", "readonly": false, "cmd": "ts auto/cool_crit", "description": "criterium for transition to ready_for_sorbpump"},
{"path": "auto/pumptime1", "type": "float", "readonly": false, "cmd": "ts auto/pumptime1", "description": "pump time [sec] while sorb at 40"},
{"path": "auto/pumptime2", "type": "float", "readonly": false, "cmd": "ts auto/pumptime2", "description": "pump time [sec] while sorb cools down"},
{"path": "auto/pumptime_remaining", "type": "float", "description": "remeaining pump time [min]"},
{"path": "auto/condensep", "type": "float", "readonly": false, "cmd": "ts auto/condensep"},
{"path": "auto/dumptarget", "type": "float", "readonly": false, "cmd": "ts auto/dumptarget"},
{"path": "auto/condenseflow", "type": "float", "readonly": false, "cmd": "ts auto/condenseflow", "description": "VTI flow for condensing and min. flow for cooling"},
{"path": "auto/circulateflow", "type": "float", "readonly": false, "cmd": "ts auto/circulateflow", "description": "VTI flow for circulating (may be changed during circulation)"},
{"path": "auto/onekstate", "type": "enum", "enum": {"normal": 0, "fill": 1, "optimize": 2}, "readonly": false, "cmd": "ts auto/onekstate"},
{"path": "auto/oneklimit", "type": "float", "readonly": false, "cmd": "ts auto/oneklimit"},
{"path": "auto/minflow", "type": "float", "readonly": false, "cmd": "ts auto/minflow", "description": "minimum VTI flow (optimize stops at this value)"},
{"path": "auto/p1low", "type": "float", "readonly": false, "cmd": "ts auto/p1low", "description": "p1 value indicating a negligible mixture amount"},
{"path": "auto/p2low", "type": "float", "readonly": false, "cmd": "ts auto/p2low", "description": "p2 value indicating a good vacuum"},
{"path": "auto/warmup_t", "type": "float", "readonly": false, "cmd": "ts auto/warmup_t", "description": "VTI temperature to reach when remove_and_warmup"},
{"path": "auto/vti_t", "type": "float", "readonly": false, "cmd": "ts auto/vti_t", "description": "VTI temperature to reach when remove_only"},
{"path": "auto/xgas", "type": "enum", "enum": {"pump": 0, "add": 1, "empty": 2, "filled": 3}, "readonly": false, "cmd": "ts auto/xgas"},
{"path": "auto/xgas_pulse", "type": "float", "readonly": false, "cmd": "ts auto/xgas_pulse", "description": "opening time for xgas capillary [sec]"},
{"path": "auto/removephase", "type": "enum", "enum": {"raw_remove": 0, "wait_p1_low": 1, "wait_v6_open": 2, "wait_a_little": 3, "wait_v6_closed": 4, "wait_t_warmup": 5}, "readonly": false, "cmd": "ts auto/removephase"}]},
"treg": {"base": "/treg", "params": [
{"path": "", "type": "int", "kids": 10},
{"path": "send", "type": "text", "readonly": false, "cmd": "treg send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "autoscan", "type": "bool", "readonly": false, "cmd": "treg autoscan", "kids": 4},
{"path": "autoscan/synchronized", "type": "bool", "readonly": false, "cmd": "treg autoscan/synchronized"},
{"path": "autoscan/interval", "type": "text", "readonly": false, "cmd": "treg autoscan/interval"},
{"path": "autoscan/pause", "type": "text", "readonly": false, "cmd": "treg autoscan/pause"},
{"path": "autoscan/dwell", "type": "text", "readonly": false, "cmd": "treg autoscan/dwell"},
{"path": "sample", "type": "float", "kids": 14},
{"path": "sample/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "treg sample/active"},
{"path": "sample/autorange", "type": "bool", "readonly": false, "cmd": "treg sample/autorange", "description": "autorange (common for all channels)"},
{"path": "sample/range", "type": "text", "readonly": false, "cmd": "treg sample/range", "description": "resistance range in Ohm"},
{"path": "sample/range_num", "type": "int"},
{"path": "sample/excitation", "type": "text", "readonly": false, "cmd": "treg sample/excitation", "description": "excitation with unit, i.e. 2uV or 3pA"},
{"path": "sample/excitation_num", "type": "int"},
{"path": "sample/excitation_mode", "type": "enum", "enum": {"voltage": 0, "current": 1, "off": 2}},
{"path": "sample/pause", "type": "int", "readonly": false, "cmd": "treg sample/pause", "description": "pause time [sec] after channel change"},
{"path": "sample/filter", "type": "int", "readonly": false, "cmd": "treg sample/filter", "description": "filter average time [sec]"},
{"path": "sample/dwell", "type": "int", "readonly": false, "cmd": "treg sample/dwell", "description": "dwell time [sec]. Total time per channel: pause + filter + dwell"},
{"path": "sample/status", "type": "text"},
{"path": "sample/curve", "type": "text", "readonly": false, "cmd": "treg sample/curve", "kids": 1},
{"path": "sample/curve/points", "type": "floatvarar", "readonly": false, "cmd": "treg sample/curve/points", "visibility": 3},
{"path": "sample/alarm", "type": "float", "readonly": false, "cmd": "treg sample/alarm"},
{"path": "sample/raw", "type": "float"},
{"path": "mix", "type": "float", "kids": 14},
{"path": "mix/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "treg mix/active"},
{"path": "mix/autorange", "type": "bool", "readonly": false, "cmd": "treg mix/autorange", "description": "autorange (common for all channels)"},
{"path": "mix/range", "type": "text", "readonly": false, "cmd": "treg mix/range", "description": "resistance range in Ohm"},
{"path": "mix/range_num", "type": "int"},
{"path": "mix/excitation", "type": "text", "readonly": false, "cmd": "treg mix/excitation", "description": "excitation with unit, i.e. 2uV or 3pA"},
{"path": "mix/excitation_num", "type": "int"},
{"path": "mix/excitation_mode", "type": "enum", "enum": {"voltage": 0, "current": 1, "off": 2}},
{"path": "mix/pause", "type": "int", "readonly": false, "cmd": "treg mix/pause", "description": "pause time [sec] after channel change"},
{"path": "mix/filter", "type": "int", "readonly": false, "cmd": "treg mix/filter", "description": "filter average time [sec]"},
{"path": "mix/dwell", "type": "int", "readonly": false, "cmd": "treg mix/dwell", "description": "dwell time [sec]. Total time per channel: pause + filter + dwell"},
{"path": "mix/status", "type": "text"},
{"path": "mix/curve", "type": "text", "readonly": false, "cmd": "treg mix/curve", "kids": 1},
{"path": "mix/curve/points", "type": "floatvarar", "readonly": false, "cmd": "treg mix/curve/points", "visibility": 3},
{"path": "mix/alarm", "type": "float", "readonly": false, "cmd": "treg mix/alarm"},
{"path": "mix/raw", "type": "float"},
{"path": "samplehtr", "type": "float", "kids": 14},
{"path": "samplehtr/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "treg samplehtr/active"},
{"path": "samplehtr/autorange", "type": "bool", "readonly": false, "cmd": "treg samplehtr/autorange", "description": "autorange (common for all channels)"},
{"path": "samplehtr/range", "type": "text", "readonly": false, "cmd": "treg samplehtr/range", "description": "resistance range in Ohm"},
{"path": "samplehtr/range_num", "type": "int"},
{"path": "samplehtr/excitation", "type": "text", "readonly": false, "cmd": "treg samplehtr/excitation", "description": "excitation with unit, i.e. 2uV or 3pA"},
{"path": "samplehtr/excitation_num", "type": "int"},
{"path": "samplehtr/excitation_mode", "type": "enum", "enum": {"voltage": 0, "current": 1, "off": 2}},
{"path": "samplehtr/pause", "type": "int", "readonly": false, "cmd": "treg samplehtr/pause", "description": "pause time [sec] after channel change"},
{"path": "samplehtr/filter", "type": "int", "readonly": false, "cmd": "treg samplehtr/filter", "description": "filter average time [sec]"},
{"path": "samplehtr/dwell", "type": "int", "readonly": false, "cmd": "treg samplehtr/dwell", "description": "dwell time [sec]. Total time per channel: pause + filter + dwell"},
{"path": "samplehtr/status", "type": "text"},
{"path": "samplehtr/curve", "type": "text", "readonly": false, "cmd": "treg samplehtr/curve", "kids": 1},
{"path": "samplehtr/curve/points", "type": "floatvarar", "readonly": false, "cmd": "treg samplehtr/curve/points", "visibility": 3},
{"path": "samplehtr/alarm", "type": "float", "readonly": false, "cmd": "treg samplehtr/alarm"},
{"path": "samplehtr/raw", "type": "float"},
{"path": "set", "type": "float", "readonly": false, "cmd": "treg set", "kids": 18},
{"path": "set/mode", "type": "enum", "enum": {"disabled": -1, "off": 0, "controlling": 1, "manual": 2}, "readonly": false, "cmd": "treg set/mode"},
{"path": "set/reg", "type": "float"},
{"path": "set/ramp", "type": "float", "readonly": false, "cmd": "treg set/ramp", "description": "maximum ramp in K/min (0: ramp off)"},
{"path": "set/wramp", "type": "float", "readonly": false, "cmd": "treg set/wramp"},
{"path": "set/smooth", "type": "float", "readonly": false, "cmd": "treg set/smooth", "description": "smooth time (minutes)"},
{"path": "set/channel", "type": "text", "readonly": false, "cmd": "treg set/channel"},
{"path": "set/limit", "type": "float", "readonly": false, "cmd": "treg set/limit"},
{"path": "set/resist", "type": "float", "readonly": false, "cmd": "treg set/resist"},
{"path": "set/maxheater", "type": "text", "readonly": false, "cmd": "treg set/maxheater", "description": "maximum heater limit, units should be given without space: W, mW, A, mA"},
{"path": "set/linearpower", "type": "float", "readonly": false, "cmd": "treg set/linearpower", "description": "when not 0, it is the maximum effective power, and the power is linear to the heater output"},
{"path": "set/maxpowerlim", "type": "float", "description": "the maximum power limit (before any booster or converter)"},
{"path": "set/maxpower", "type": "float", "readonly": false, "cmd": "treg set/maxpower", "description": "maximum power [W]"},
{"path": "set/maxcurrent", "type": "float", "description": "the maximum current before any booster or converter"},
{"path": "set/manualpower", "type": "float", "readonly": false, "cmd": "treg set/manualpower"},
{"path": "set/power", "type": "float"},
{"path": "set/prop", "type": "float", "readonly": false, "cmd": "treg set/prop", "description": "bigger means more gain"},
{"path": "set/integ", "type": "float", "readonly": false, "cmd": "treg set/integ", "description": "[sec] bigger means slower"},
{"path": "set/deriv", "type": "float", "readonly": false, "cmd": "treg set/deriv"},
{"path": "analog2", "type": "float", "readonly": false, "cmd": "treg analog2"},
{"path": "remote", "type": "bool"},
{"path": "display", "type": "text", "readonly": false, "cmd": "treg display"}]},
"tmon": {"base": "/tmon", "params": [
{"path": "", "type": "int", "kids": 12},
{"path": "send", "type": "text", "readonly": false, "cmd": "tmon send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "autoscan", "type": "bool", "readonly": false, "cmd": "tmon autoscan", "kids": 4},
{"path": "autoscan/synchronized", "type": "bool", "readonly": false, "cmd": "tmon autoscan/synchronized"},
{"path": "autoscan/interval", "type": "text", "readonly": false, "cmd": "tmon autoscan/interval"},
{"path": "autoscan/pause", "type": "text", "readonly": false, "cmd": "tmon autoscan/pause"},
{"path": "autoscan/dwell", "type": "text", "readonly": false, "cmd": "tmon autoscan/dwell"},
{"path": "sorb", "type": "float", "kids": 14},
{"path": "sorb/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "tmon sorb/active"},
{"path": "sorb/autorange", "type": "bool", "readonly": false, "cmd": "tmon sorb/autorange", "description": "autorange (common for all channels)"},
{"path": "sorb/range", "type": "text", "readonly": false, "cmd": "tmon sorb/range", "description": "resistance range in Ohm"},
{"path": "sorb/range_num", "type": "int"},
{"path": "sorb/excitation", "type": "text", "readonly": false, "cmd": "tmon sorb/excitation", "description": "excitation with unit, i.e. 2uV or 3pA"},
{"path": "sorb/excitation_num", "type": "int"},
{"path": "sorb/excitation_mode", "type": "enum", "enum": {"voltage": 0, "current": 1, "off": 2}},
{"path": "sorb/pause", "type": "int", "readonly": false, "cmd": "tmon sorb/pause", "description": "pause time [sec] after channel change"},
{"path": "sorb/filter", "type": "int", "readonly": false, "cmd": "tmon sorb/filter", "description": "filter average time [sec]"},
{"path": "sorb/dwell", "type": "int", "readonly": false, "cmd": "tmon sorb/dwell", "description": "dwell time [sec]. Total time per channel: pause + filter + dwell"},
{"path": "sorb/status", "type": "text"},
{"path": "sorb/curve", "type": "text", "readonly": false, "cmd": "tmon sorb/curve", "kids": 1},
{"path": "sorb/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tmon sorb/curve/points", "visibility": 3},
{"path": "sorb/alarm", "type": "float", "readonly": false, "cmd": "tmon sorb/alarm"},
{"path": "sorb/raw", "type": "float"},
{"path": "onek", "type": "float", "kids": 14},
{"path": "onek/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "tmon onek/active"},
{"path": "onek/autorange", "type": "bool", "readonly": false, "cmd": "tmon onek/autorange", "description": "autorange (common for all channels)"},
{"path": "onek/range", "type": "text", "readonly": false, "cmd": "tmon onek/range", "description": "resistance range in Ohm"},
{"path": "onek/range_num", "type": "int"},
{"path": "onek/excitation", "type": "text", "readonly": false, "cmd": "tmon onek/excitation", "description": "excitation with unit, i.e. 2uV or 3pA"},
{"path": "onek/excitation_num", "type": "int"},
{"path": "onek/excitation_mode", "type": "enum", "enum": {"voltage": 0, "current": 1, "off": 2}},
{"path": "onek/pause", "type": "int", "readonly": false, "cmd": "tmon onek/pause", "description": "pause time [sec] after channel change"},
{"path": "onek/filter", "type": "int", "readonly": false, "cmd": "tmon onek/filter", "description": "filter average time [sec]"},
{"path": "onek/dwell", "type": "int", "readonly": false, "cmd": "tmon onek/dwell", "description": "dwell time [sec]. Total time per channel: pause + filter + dwell"},
{"path": "onek/status", "type": "text"},
{"path": "onek/curve", "type": "text", "readonly": false, "cmd": "tmon onek/curve", "kids": 1},
{"path": "onek/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tmon onek/curve/points", "visibility": 3},
{"path": "onek/alarm", "type": "float", "readonly": false, "cmd": "tmon onek/alarm"},
{"path": "onek/raw", "type": "float"},
{"path": "stillt", "type": "float", "kids": 14},
{"path": "stillt/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "tmon stillt/active"},
{"path": "stillt/autorange", "type": "bool", "readonly": false, "cmd": "tmon stillt/autorange", "description": "autorange (common for all channels)"},
{"path": "stillt/range", "type": "text", "readonly": false, "cmd": "tmon stillt/range", "description": "resistance range in Ohm"},
{"path": "stillt/range_num", "type": "int"},
{"path": "stillt/excitation", "type": "text", "readonly": false, "cmd": "tmon stillt/excitation", "description": "excitation with unit, i.e. 2uV or 3pA"},
{"path": "stillt/excitation_num", "type": "int"},
{"path": "stillt/excitation_mode", "type": "enum", "enum": {"voltage": 0, "current": 1, "off": 2}},
{"path": "stillt/pause", "type": "int", "readonly": false, "cmd": "tmon stillt/pause", "description": "pause time [sec] after channel change"},
{"path": "stillt/filter", "type": "int", "readonly": false, "cmd": "tmon stillt/filter", "description": "filter average time [sec]"},
{"path": "stillt/dwell", "type": "int", "readonly": false, "cmd": "tmon stillt/dwell", "description": "dwell time [sec]. Total time per channel: pause + filter + dwell"},
{"path": "stillt/status", "type": "text"},
{"path": "stillt/curve", "type": "text", "readonly": false, "cmd": "tmon stillt/curve", "kids": 1},
{"path": "stillt/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tmon stillt/curve/points", "visibility": 3},
{"path": "stillt/alarm", "type": "float", "readonly": false, "cmd": "tmon stillt/alarm"},
{"path": "stillt/raw", "type": "float"},
{"path": "sample", "type": "float", "kids": 14},
{"path": "sample/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "tmon sample/active"},
{"path": "sample/autorange", "type": "bool", "readonly": false, "cmd": "tmon sample/autorange", "description": "autorange (common for all channels)"},
{"path": "sample/range", "type": "text", "readonly": false, "cmd": "tmon sample/range", "description": "resistance range in Ohm"},
{"path": "sample/range_num", "type": "int"},
{"path": "sample/excitation", "type": "text", "readonly": false, "cmd": "tmon sample/excitation", "description": "excitation with unit, i.e. 2uV or 3pA"},
{"path": "sample/excitation_num", "type": "int"},
{"path": "sample/excitation_mode", "type": "enum", "enum": {"voltage": 0, "current": 1, "off": 2}},
{"path": "sample/pause", "type": "int", "readonly": false, "cmd": "tmon sample/pause", "description": "pause time [sec] after channel change"},
{"path": "sample/filter", "type": "int", "readonly": false, "cmd": "tmon sample/filter", "description": "filter average time [sec]"},
{"path": "sample/dwell", "type": "int", "readonly": false, "cmd": "tmon sample/dwell", "description": "dwell time [sec]. Total time per channel: pause + filter + dwell"},
{"path": "sample/status", "type": "text"},
{"path": "sample/curve", "type": "text", "readonly": false, "cmd": "tmon sample/curve", "kids": 1},
{"path": "sample/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tmon sample/curve/points", "visibility": 3},
{"path": "sample/alarm", "type": "float", "readonly": false, "cmd": "tmon sample/alarm"},
{"path": "sample/raw", "type": "float"},
{"path": "samplehtr", "type": "float", "kids": 14},
{"path": "samplehtr/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "tmon samplehtr/active"},
{"path": "samplehtr/autorange", "type": "bool", "readonly": false, "cmd": "tmon samplehtr/autorange", "description": "autorange (common for all channels)"},
{"path": "samplehtr/range", "type": "text", "readonly": false, "cmd": "tmon samplehtr/range", "description": "resistance range in Ohm"},
{"path": "samplehtr/range_num", "type": "int"},
{"path": "samplehtr/excitation", "type": "text", "readonly": false, "cmd": "tmon samplehtr/excitation", "description": "excitation with unit, i.e. 2uV or 3pA"},
{"path": "samplehtr/excitation_num", "type": "int"},
{"path": "samplehtr/excitation_mode", "type": "enum", "enum": {"voltage": 0, "current": 1, "off": 2}},
{"path": "samplehtr/pause", "type": "int", "readonly": false, "cmd": "tmon samplehtr/pause", "description": "pause time [sec] after channel change"},
{"path": "samplehtr/filter", "type": "int", "readonly": false, "cmd": "tmon samplehtr/filter", "description": "filter average time [sec]"},
{"path": "samplehtr/dwell", "type": "int", "readonly": false, "cmd": "tmon samplehtr/dwell", "description": "dwell time [sec]. Total time per channel: pause + filter + dwell"},
{"path": "samplehtr/status", "type": "text"},
{"path": "samplehtr/curve", "type": "text", "readonly": false, "cmd": "tmon samplehtr/curve", "kids": 1},
{"path": "samplehtr/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tmon samplehtr/curve/points", "visibility": 3},
{"path": "samplehtr/alarm", "type": "float", "readonly": false, "cmd": "tmon samplehtr/alarm"},
{"path": "samplehtr/raw", "type": "float"},
{"path": "mix", "type": "float", "kids": 14},
{"path": "mix/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "tmon mix/active"},
{"path": "mix/autorange", "type": "bool", "readonly": false, "cmd": "tmon mix/autorange", "description": "autorange (common for all channels)"},
{"path": "mix/range", "type": "text", "readonly": false, "cmd": "tmon mix/range", "description": "resistance range in Ohm"},
{"path": "mix/range_num", "type": "int"},
{"path": "mix/excitation", "type": "text", "readonly": false, "cmd": "tmon mix/excitation", "description": "excitation with unit, i.e. 2uV or 3pA"},
{"path": "mix/excitation_num", "type": "int"},
{"path": "mix/excitation_mode", "type": "enum", "enum": {"voltage": 0, "current": 1, "off": 2}},
{"path": "mix/pause", "type": "int", "readonly": false, "cmd": "tmon mix/pause", "description": "pause time [sec] after channel change"},
{"path": "mix/filter", "type": "int", "readonly": false, "cmd": "tmon mix/filter", "description": "filter average time [sec]"},
{"path": "mix/dwell", "type": "int", "readonly": false, "cmd": "tmon mix/dwell", "description": "dwell time [sec]. Total time per channel: pause + filter + dwell"},
{"path": "mix/status", "type": "text"},
{"path": "mix/curve", "type": "text", "readonly": false, "cmd": "tmon mix/curve", "kids": 1},
{"path": "mix/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tmon mix/curve/points", "visibility": 3},
{"path": "mix/alarm", "type": "float", "readonly": false, "cmd": "tmon mix/alarm"},
{"path": "mix/raw", "type": "float"},
{"path": "analog2", "type": "float", "readonly": false, "cmd": "tmon analog2"},
{"path": "remote", "type": "bool"},
{"path": "display", "type": "text", "readonly": false, "cmd": "tmon display"}]},
"dil": {"base": "/dil", "params": [
{"path": "", "type": "float", "kids": 60},
{"path": "Tset", "type": "float"},
{"path": "TsorbSet", "type": "float", "readonly": false, "cmd": "dil TsorbSet"},
{"path": "Tmix", "type": "float"},
{"path": "T1K", "type": "float"},
{"path": "Tsorb", "type": "float"},
{"path": "Pmix", "type": "float", "readonly": false, "cmd": "dil Pmix"},
{"path": "Pmax", "type": "float"},
{"path": "HtrRange", "type": "int", "readonly": false, "cmd": "dil HtrRange"},
{"path": "Pstill", "type": "float", "readonly": false, "cmd": "dil Pstill"},
{"path": "Psorb", "type": "float", "readonly": false, "cmd": "dil Psorb"},
{"path": "G1", "type": "float"},
{"path": "G2", "type": "float"},
{"path": "G3", "type": "float"},
{"path": "P1", "type": "float"},
{"path": "P2", "type": "float"},
{"path": "V6", "type": "float", "readonly": false, "cmd": "dil V6"},
{"path": "V12A", "type": "float", "readonly": false, "cmd": "dil V12A"},
{"path": "V1K", "type": "float", "readonly": false, "cmd": "dil V1K"},
{"path": "v6pos", "type": "float"},
{"path": "V9", "type": "int", "readonly": false, "cmd": "dil V9", "visibility": 3},
{"path": "V8", "type": "int", "readonly": false, "cmd": "dil V8", "visibility": 3},
{"path": "V7", "type": "int", "readonly": false, "cmd": "dil V7", "visibility": 3},
{"path": "V11A", "type": "int", "readonly": false, "cmd": "dil V11A", "visibility": 3},
{"path": "V13A", "type": "int", "readonly": false, "cmd": "dil V13A", "visibility": 3},
{"path": "V13B", "type": "int", "readonly": false, "cmd": "dil V13B", "visibility": 3},
{"path": "V11B", "type": "int", "readonly": false, "cmd": "dil V11B", "visibility": 3},
{"path": "V12B", "type": "int", "readonly": false, "cmd": "dil V12B", "visibility": 3},
{"path": "He4", "type": "int", "readonly": false, "cmd": "dil He4", "visibility": 3},
{"path": "V1", "type": "int", "readonly": false, "cmd": "dil V1", "visibility": 3},
{"path": "V5", "type": "int", "readonly": false, "cmd": "dil V5", "visibility": 3},
{"path": "V4", "type": "int", "readonly": false, "cmd": "dil V4", "visibility": 3},
{"path": "V3", "type": "int", "readonly": false, "cmd": "dil V3", "visibility": 3},
{"path": "V14", "type": "int", "readonly": false, "cmd": "dil V14", "visibility": 3},
{"path": "V10", "type": "int", "readonly": false, "cmd": "dil V10", "visibility": 3},
{"path": "V2", "type": "int", "readonly": false, "cmd": "dil V2", "visibility": 3},
{"path": "V2A", "type": "int", "readonly": false, "cmd": "dil V2A", "visibility": 3},
{"path": "V1A", "type": "int", "readonly": false, "cmd": "dil V1A", "visibility": 3},
{"path": "V5A", "type": "int", "readonly": false, "cmd": "dil V5A", "visibility": 3},
{"path": "V4A", "type": "int", "readonly": false, "cmd": "dil V4A", "visibility": 3},
{"path": "V3A", "type": "int", "readonly": false, "cmd": "dil V3A", "visibility": 3},
{"path": "Roots", "type": "int", "readonly": false, "cmd": "dil Roots", "visibility": 3},
{"path": "Aux", "type": "int", "readonly": false, "cmd": "dil Aux", "visibility": 3},
{"path": "He3", "type": "int", "readonly": false, "cmd": "dil He3", "visibility": 3},
{"path": "closedelay", "type": "float", "readonly": false, "cmd": "dil closedelay", "visibility": 3},
{"path": "extVersion", "type": "int", "readonly": false, "cmd": "dil extVersion", "visibility": 3},
{"path": "pumpoff", "type": "int"},
{"path": "upperN2", "type": "float"},
{"path": "lowerN2", "type": "float"},
{"path": "maxtry", "type": "int", "readonly": false, "cmd": "dil maxtry", "visibility": 3},
{"path": "upperLimit", "type": "float", "readonly": false, "cmd": "dil upperLimit"},
{"path": "lowerLimit", "type": "float", "readonly": false, "cmd": "dil lowerLimit", "visibility": 3},
{"path": "tolerance", "type": "float", "readonly": false, "cmd": "dil tolerance"},
{"path": "maxwait", "type": "int", "readonly": false, "cmd": "dil maxwait"},
{"path": "settle", "type": "int", "readonly": false, "cmd": "dil settle"},
{"path": "targetValue", "type": "float"},
{"path": "is_running", "type": "int", "visibility": 3},
{"path": "verbose", "type": "int", "readonly": false, "cmd": "dil verbose", "visibility": 3},
{"path": "driver", "type": "text", "visibility": 3},
{"path": "creationCmd", "type": "text", "visibility": 3},
{"path": "status", "type": "text", "readonly": false, "cmd": "dil status", "visibility": 3}]},
"sorb": {"base": "/sorb", "params": [
{"path": "", "type": "float", "readonly": false, "cmd": "run sorb", "description": "sorb", "kids": 28},
{"path": "send", "type": "text", "readonly": false, "cmd": "sorb send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "is_running", "type": "int", "readonly": false, "cmd": "sorb is_running", "visibility": 3},
{"path": "mode", "type": "enum", "enum": {"off": 0, "on": 1}, "readonly": false, "cmd": "sorb mode"},
{"path": "reg", "type": "float"},
{"path": "output", "type": "float", "readonly": false, "cmd": "sorb output"},
{"path": "ramptime", "type": "float", "readonly": false, "cmd": "sorb ramptime", "description": "time for ramping [sec] deltax = 1 or a factor 10"},
{"path": "ramptol", "type": "float", "readonly": false, "cmd": "sorb ramptol", "description": "log of max. deviation when ramping"},
{"path": "smoothtime", "type": "float", "readonly": false, "cmd": "sorb smoothtime", "description": "time for smoothing ramp near setpoint"},
{"path": "invar", "type": "text", "readonly": false, "cmd": "sorb invar", "visibility": 3},
{"path": "outvar", "type": "text", "readonly": false, "cmd": "sorb outvar", "visibility": 3},
{"path": "prop", "type": "float", "readonly": false, "cmd": "sorb prop", "description": "smaller means more sensitive. a change of 'prop' on input -> a change of 100 % or a factor 10 on output"},
{"path": "int", "type": "float", "readonly": false, "cmd": "sorb int", "description": "integration time (sec)"},
{"path": "outmin", "type": "float", "readonly": false, "cmd": "sorb outmin", "description": "output for maximal decrease of input var."},
{"path": "outmax", "type": "float", "readonly": false, "cmd": "sorb outmax", "description": "output for maximal increase of input var."},
{"path": "inpfunction", "type": "enum", "enum": {"linear": 0, "logarithmic": 1}, "readonly": false, "cmd": "sorb inpfunction"},
{"path": "inplinear", "type": "float", "readonly": false, "cmd": "sorb inplinear", "description": "function gets linear below about this value"},
{"path": "outfunction", "type": "enum", "enum": {"linear": 0, "exponential": 1}, "readonly": false, "cmd": "sorb outfunction"},
{"path": "outlinear", "type": "float", "readonly": false, "cmd": "sorb outlinear", "description": "function gets linear below about this value"},
{"path": "precision", "type": "float", "readonly": false, "cmd": "sorb precision"},
{"path": "deadband", "type": "float", "readonly": false, "cmd": "sorb deadband"},
{"path": "maxdelta", "type": "float", "readonly": false, "cmd": "sorb maxdelta"},
{"path": "set", "type": "float", "readonly": false, "cmd": "sorb set"},
{"path": "target", "type": "float"},
{"path": "running", "type": "int"},
{"path": "tolerance", "type": "float", "readonly": false, "cmd": "sorb tolerance"},
{"path": "maxwait", "type": "float", "readonly": false, "cmd": "sorb maxwait"},
{"path": "settle", "type": "float", "readonly": false, "cmd": "sorb settle"}]}}

View File

@ -1,17 +0,0 @@
["f", [{"path": "", "type": "float", "description": "frequency@I,q [Hz]", "kids": 16},
{"path": "status_text", "type": "text"},
{"path": "status_code", "type": "enum", "enum": {"DISABLED": 0, "IDLE": 100, "WARN": 200, "UNSTABLE": 270, "ERROR": 400}, "description": "current status of the Module"},
{"path": "basefreq", "type": "float", "readonly": false, "cmd": "f basefreq", "description": "base frequency [Hz]"},
{"path": "nr", "type": "int", "description": "number of records"},
{"path": "freq", "type": "float", "readonly": false, "cmd": "f freq", "description": "target frequency [Hz]"},
{"path": "amp", "type": "float", "readonly": false, "cmd": "f amp", "description": "amplitude [dBm]"},
{"path": "control", "type": "bool", "readonly": false, "cmd": "f control", "description": "control loop on?"},
{"path": "time", "type": "float", "readonly": false, "cmd": "f time", "description": "pulse start time [nsec]"},
{"path": "size", "type": "float", "readonly": false, "cmd": "f size", "description": "pulse length (starting from time) [nsec]"},
{"path": "pulselen", "type": "float", "description": "adjusted pulse length (integer number of periods) [nsec]"},
{"path": "maxstep", "type": "float", "readonly": false, "cmd": "f maxstep", "description": "max frequency step [Hz]"},
{"path": "minstep", "type": "float", "readonly": false, "cmd": "f minstep", "description": "min frequency step for slope calculation [Hz]"},
{"path": "slope", "type": "float", "readonly": false, "cmd": "f slope", "description": "inphase/frequency slope"},
{"path": "plot", "type": "bool", "readonly": false, "cmd": "f plot", "description": "create plot images"},
{"path": "save", "type": "bool", "readonly": false, "cmd": "f save", "description": "save data"},
{"path": "pollinterval", "type": "float", "readonly": false, "cmd": "f pollinterval", "description": "sleeptime between polls"}]]

View File

@ -1,14 +0,0 @@
["fn", [{"path": "", "type": "float", "kids": 13},
{"path": "send", "type": "text", "readonly": false, "cmd": "fn send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "remote", "type": "bool", "readonly": false, "cmd": "fn remote"},
{"path": "waveform", "type": "text", "readonly": false, "cmd": "fn waveform"},
{"path": "freq", "type": "float", "readonly": false, "cmd": "fn freq"},
{"path": "volt", "type": "float", "readonly": false, "cmd": "fn volt"},
{"path": "offset", "type": "float", "readonly": false, "cmd": "fn offset"},
{"path": "width", "type": "float", "readonly": false, "cmd": "fn width"},
{"path": "burstfreq", "type": "float", "readonly": false, "cmd": "fn burstfreq"},
{"path": "burstvolt", "type": "float", "readonly": false, "cmd": "fn burstvolt"},
{"path": "burstcycles", "type": "int", "readonly": false, "cmd": "fn burstcycles"},
{"path": "burstperiod", "type": "float", "readonly": false, "cmd": "fn burstperiod"},
{"path": "burst", "type": "enum", "enum": {"continuous": 0, "burst": 1, "off": 2}, "readonly": false, "cmd": "fn burst"}]]

View File

@ -1,19 +0,0 @@
[NODE]
description = FOCUS CryoTel Be-filter
id = focus-be-filter.addon.sea.psi.ch
[sea_addons]
class = secop_psi.sea.SeaClient
description = addons sea connection for focus-be-filter.addon
config = focus-be-filter.addon
service = addons
[cryo]
class = secop_psi.sea.SeaReadable
io = sea_addons
sea_object = cryo
[addonlock_focus-be-filter]
class = secop_psi.sea.SeaWritable
io = sea_addons
sea_object = addonlock_focus-be-filter

View File

@ -1,17 +0,0 @@
["hefill", [{"path": "", "type": "enum", "enum": {"watching": 0, "fill": 1, "inactive": 2}, "readonly": false, "cmd": "hefill", "kids": 16},
{"path": "send", "type": "text", "readonly": false, "cmd": "hefill send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "state", "type": "text"},
{"path": "readlevel", "type": "text", "readonly": false, "cmd": "hefill readlevel", "visibility": 3},
{"path": "lowlevel", "type": "float", "readonly": false, "cmd": "hefill lowlevel"},
{"path": "highlevel", "type": "float", "readonly": false, "cmd": "hefill highlevel"},
{"path": "smooth", "type": "float"},
{"path": "minfillminutes", "type": "float", "readonly": false, "cmd": "hefill minfillminutes"},
{"path": "maxfillminutes", "type": "float", "readonly": false, "cmd": "hefill maxfillminutes"},
{"path": "minholdhours", "type": "float", "readonly": false, "cmd": "hefill minholdhours"},
{"path": "maxholdhours", "type": "float", "readonly": false, "cmd": "hefill maxholdhours"},
{"path": "tolerance", "type": "float", "readonly": false, "cmd": "hefill tolerance"},
{"path": "badreadingminutes", "type": "float", "readonly": false, "cmd": "hefill badreadingminutes"},
{"path": "tubecoolingminutes", "type": "float", "readonly": false, "cmd": "hefill tubecoolingminutes"},
{"path": "vessellimit", "type": "float", "readonly": false, "cmd": "hefill vessellimit"},
{"path": "vext", "type": "float"}]]

View File

@ -1,49 +0,0 @@
[NODE]
description = orange cryostat with 70 mm sample space (FOCUS)
id = ill4.config.sea.psi.ch
[sea_main]
class = secop_psi.sea.SeaClient
description = main sea connection for ill4.config
config = ill4.config
service = main
[tt]
class = secop_psi.sea.SeaDrivable
iodev = sea_main
sea_object = tt
[cc]
class = secop_psi.sea.SeaReadable
iodev = sea_main
sea_object = cc
[nv]
class = secop_psi.sea.SeaWritable
iodev = sea_main
sea_object = nv
[ln2fill]
class = secop_psi.sea.SeaWritable
iodev = sea_main
sea_object = ln2fill
[hefill]
class = secop_psi.sea.SeaWritable
iodev = sea_main
sea_object = hefill
[hepump]
class = secop_psi.sea.SeaWritable
iodev = sea_main
sea_object = hepump
[hemot]
class = secop_psi.sea.SeaDrivable
iodev = sea_main
sea_object = hemot
[table]
class = secop_psi.sea.SeaReadable
iodev = sea_main
sea_object = table

339
cfg/sea/jtccr.config.json Normal file
View File

@ -0,0 +1,339 @@
{"tt": {"base": "/tt", "params": [
{"path": "", "type": "float", "readonly": false, "cmd": "run tt", "description": "tt", "kids": 16},
{"path": "send", "type": "text", "readonly": false, "cmd": "tt send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "is_running", "type": "int", "readonly": false, "cmd": "tt is_running", "visibility": 3},
{"path": "mainloop", "type": "text", "readonly": false, "cmd": "tt mainloop", "visibility": 3},
{"path": "target", "type": "float"},
{"path": "running", "type": "int"},
{"path": "tolerance", "type": "float", "readonly": false, "cmd": "tt tolerance"},
{"path": "maxwait", "type": "float", "readonly": false, "cmd": "tt maxwait"},
{"path": "settle", "type": "float", "readonly": false, "cmd": "tt settle"},
{"path": "log", "type": "text", "readonly": false, "cmd": "tt log", "visibility": 3, "kids": 4},
{"path": "log/mean", "type": "float", "visibility": 3},
{"path": "log/m2", "type": "float", "visibility": 3},
{"path": "log/stddev", "type": "float", "visibility": 3},
{"path": "log/n", "type": "float", "visibility": 3},
{"path": "dblctrl", "type": "bool", "readonly": false, "cmd": "tt dblctrl", "visibility": 3, "kids": 9},
{"path": "dblctrl/tshift", "type": "float", "readonly": false, "cmd": "tt dblctrl/tshift", "visibility": 3},
{"path": "dblctrl/mode", "type": "enum", "enum": {"disabled": -1, "inactive": 0, "stable": 1, "up": 2, "down": 3}, "readonly": false, "cmd": "tt dblctrl/mode", "visibility": 3},
{"path": "dblctrl/shift_up", "type": "float", "visibility": 3},
{"path": "dblctrl/shift_lo", "type": "float", "visibility": 3},
{"path": "dblctrl/t_min", "type": "float", "visibility": 3},
{"path": "dblctrl/t_max", "type": "float", "visibility": 3},
{"path": "dblctrl/int2", "type": "float", "readonly": false, "cmd": "tt dblctrl/int2", "visibility": 3},
{"path": "dblctrl/prop_up", "type": "float", "readonly": false, "cmd": "tt dblctrl/prop_up", "visibility": 3},
{"path": "dblctrl/prop_lo", "type": "float", "readonly": false, "cmd": "tt dblctrl/prop_lo", "visibility": 3},
{"path": "main", "type": "float", "kids": 4},
{"path": "main/curve", "type": "text", "readonly": false, "cmd": "tt main/curve", "kids": 1},
{"path": "main/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt main/curve/points", "visibility": 3},
{"path": "main/alarm", "type": "float", "readonly": false, "cmd": "tt main/alarm"},
{"path": "main/stddev", "type": "float"},
{"path": "main/raw", "type": "float"},
{"path": "ccr", "type": "float", "kids": 4},
{"path": "ccr/curve", "type": "text", "readonly": false, "cmd": "tt ccr/curve", "kids": 1},
{"path": "ccr/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt ccr/curve/points", "visibility": 3},
{"path": "ccr/alarm", "type": "float", "readonly": false, "cmd": "tt ccr/alarm"},
{"path": "ccr/stddev", "type": "float"},
{"path": "ccr/raw", "type": "float"},
{"path": "set", "type": "float", "readonly": false, "cmd": "tt set", "kids": 18},
{"path": "set/mode", "type": "enum", "enum": {"disabled": -1, "off": 0, "controlling": 1, "manual": 2}, "readonly": false, "cmd": "tt set/mode"},
{"path": "set/reg", "type": "float"},
{"path": "set/ramp", "type": "float", "readonly": false, "cmd": "tt set/ramp", "description": "maximum ramp in K/min (0: ramp off)"},
{"path": "set/wramp", "type": "float", "readonly": false, "cmd": "tt set/wramp"},
{"path": "set/smooth", "type": "float", "readonly": false, "cmd": "tt set/smooth", "description": "smooth time (minutes)"},
{"path": "set/channel", "type": "text", "readonly": false, "cmd": "tt set/channel"},
{"path": "set/limit", "type": "float", "readonly": false, "cmd": "tt set/limit"},
{"path": "set/resist", "type": "float", "readonly": false, "cmd": "tt set/resist"},
{"path": "set/maxheater", "type": "text", "readonly": false, "cmd": "tt set/maxheater", "description": "maximum heater limit, units should be given without space: W, mW, A, mA"},
{"path": "set/linearpower", "type": "float", "readonly": false, "cmd": "tt set/linearpower", "description": "when not 0, it is the maximum effective power, and the power is linear to the heater output"},
{"path": "set/maxpowerlim", "type": "float", "description": "the maximum power limit (before any booster or converter)"},
{"path": "set/maxpower", "type": "float", "readonly": false, "cmd": "tt set/maxpower", "description": "maximum power [W]"},
{"path": "set/maxcurrent", "type": "float", "description": "the maximum current before any booster or converter"},
{"path": "set/manualpower", "type": "float", "readonly": false, "cmd": "tt set/manualpower"},
{"path": "set/power", "type": "float"},
{"path": "set/prop", "type": "float", "readonly": false, "cmd": "tt set/prop", "description": "bigger means more gain"},
{"path": "set/integ", "type": "float", "readonly": false, "cmd": "tt set/integ", "description": "bigger means faster"},
{"path": "set/deriv", "type": "float", "readonly": false, "cmd": "tt set/deriv"},
{"path": "display", "type": "text", "readonly": false, "cmd": "tt display"},
{"path": "remote", "type": "bool"}]},
"jtccr": {"base": "/jtccr", "params": [
{"path": "", "type": "enum", "enum": {"manual": 0, "high_pressure": 1, "circulating": 2, "warmup": 3}, "readonly": false, "cmd": "jtccr", "kids": 21},
{"path": "send", "type": "text", "readonly": false, "cmd": "jtccr send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "p1max", "type": "float", "readonly": false, "cmd": "jtccr p1max", "description": "go to circulating mode when p1 above this value"},
{"path": "p2min", "type": "float", "readonly": false, "cmd": "jtccr p2min", "description": "stop compressor when p2 is below this value"},
{"path": "p2max", "type": "float", "readonly": false, "cmd": "jtccr p2max", "description": "start compressor when p2 is above this value"},
{"path": "pdifmax", "type": "float", "readonly": false, "cmd": "jtccr pdifmax", "description": "maximum pressure difference for compressor"},
{"path": "pdifmargin", "type": "float", "readonly": false, "cmd": "jtccr pdifmargin", "description": "safety margin for pressure difference"},
{"path": "p3margin", "type": "float", "readonly": false, "cmd": "jtccr p3margin", "description": "start compressor when p3 is below pressreg setpoint plus this value"},
{"path": "plow", "type": "float", "readonly": false, "cmd": "jtccr plow", "description": "pressure below 5 K"},
{"path": "v1", "type": "bool", "readonly": false, "cmd": "jtccr v1"},
{"path": "v2", "type": "bool", "readonly": false, "cmd": "jtccr v2"},
{"path": "v3", "type": "bool", "readonly": false, "cmd": "jtccr v3"},
{"path": "v4", "type": "bool", "readonly": false, "cmd": "jtccr v4"},
{"path": "v5", "type": "bool", "readonly": false, "cmd": "jtccr v5"},
{"path": "v6", "type": "bool", "readonly": false, "cmd": "jtccr v6"},
{"path": "v7", "type": "bool", "readonly": false, "cmd": "jtccr v7"},
{"path": "v8", "type": "bool", "readonly": false, "cmd": "jtccr v8"},
{"path": "v9", "type": "bool", "readonly": false, "cmd": "jtccr v9"},
{"path": "v10", "type": "bool", "readonly": false, "cmd": "jtccr v10"},
{"path": "vm", "type": "enum", "enum": {"close": 0, "open": 1, "undefined": 5}, "readonly": false, "cmd": "jtccr vm"},
{"path": "verbose", "type": "bool", "readonly": false, "cmd": "jtccr verbose"}]},
"p1": {"base": "/p1", "params": [
{"path": "", "type": "float", "kids": 2},
{"path": "send", "type": "text", "readonly": false, "cmd": "p1 send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3}]},
"p2": {"base": "/p2", "params": [
{"path": "", "type": "float", "kids": 2},
{"path": "send", "type": "text", "readonly": false, "cmd": "p2 send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3}]},
"p3": {"base": "/p3", "params": [
{"path": "", "type": "float", "kids": 2},
{"path": "send", "type": "text", "readonly": false, "cmd": "p3 send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3}]},
"p4": {"base": "/p4", "params": [
{"path": "", "type": "float", "kids": 2},
{"path": "send", "type": "text", "readonly": false, "cmd": "p4 send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3}]},
"pressreg": {"base": "/pressreg", "params": [
{"path": "", "type": "float", "kids": 3},
{"path": "send", "type": "text", "readonly": false, "cmd": "pressreg send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "setpoint", "type": "float", "readonly": false, "cmd": "pressreg setpoint"}]},
"epc": {"base": "/epc", "params": [
{"path": "", "type": "none", "kids": 5},
{"path": "send", "type": "text", "readonly": false, "cmd": "epc send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "port1", "type": "bool", "readonly": false, "cmd": "epc port1"},
{"path": "port2", "type": "bool", "readonly": false, "cmd": "epc port2"},
{"path": "port3", "type": "bool", "readonly": false, "cmd": "epc port3"}]},
"v": {"base": "/v", "params": [
{"path": "", "type": "bool", "kids": 120},
{"path": "send", "type": "text", "readonly": false, "cmd": "v send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "autodevice", "type": "bool", "readonly": false, "cmd": "v autodevice"},
{"path": "fav", "type": "bool", "readonly": false, "cmd": "v fav"},
{"path": "f", "type": "float", "visibility": 3},
{"path": "fs", "type": "enum", "enum": {"ok": 0, "no_sens": 1}, "readonly": false, "cmd": "v fs", "visibility": 3},
{"path": "mav", "type": "bool", "readonly": false, "cmd": "v mav"},
{"path": "fm", "type": "enum", "enum": {"idle": 0, "opening": 1, "closing": 2, "opened": 3, "closed": 4, "no_motor": 5}},
{"path": "fa", "type": "enum", "enum": {"fixed": 0, "controlled": 1, "automatic": 2, "offline": 3}, "readonly": false, "cmd": "v fa"},
{"path": "mp", "type": "float", "readonly": false, "cmd": "v mp"},
{"path": "msp", "type": "float"},
{"path": "mmp", "type": "float"},
{"path": "mc", "type": "float", "readonly": false, "cmd": "v mc"},
{"path": "mfc", "type": "float", "readonly": false, "cmd": "v mfc"},
{"path": "moc", "type": "float", "readonly": false, "cmd": "v moc"},
{"path": "mtc", "type": "float", "readonly": false, "cmd": "v mtc"},
{"path": "mtl", "type": "float"},
{"path": "mft", "type": "float", "readonly": false, "cmd": "v mft"},
{"path": "mt", "type": "float"},
{"path": "mo", "type": "float"},
{"path": "mcr", "type": "float"},
{"path": "mot", "type": "float"},
{"path": "mw", "type": "float", "readonly": false, "cmd": "v mw", "description": "correction pulse after automatic open"},
{"path": "hav", "type": "bool", "readonly": false, "cmd": "v hav"},
{"path": "h", "type": "float", "visibility": 3},
{"path": "hr", "type": "float", "visibility": 3},
{"path": "hc", "type": "float", "visibility": 3},
{"path": "hu", "type": "float", "visibility": 3},
{"path": "hh", "type": "float", "readonly": false, "cmd": "v hh", "visibility": 3},
{"path": "hl", "type": "float", "readonly": false, "cmd": "v hl", "visibility": 3},
{"path": "htf", "type": "float", "readonly": false, "cmd": "v htf", "description": "meas. period in fast mode", "visibility": 3},
{"path": "hts", "type": "float", "readonly": false, "cmd": "v hts", "description": "meas. period in slow mode", "visibility": 3},
{"path": "hd", "type": "float", "readonly": false, "cmd": "v hd", "visibility": 3},
{"path": "hwr", "type": "float", "readonly": false, "cmd": "v hwr", "visibility": 3},
{"path": "hem", "type": "float", "readonly": false, "cmd": "v hem", "description": "sensor length in mm from top to empty pos.", "visibility": 3},
{"path": "hfu", "type": "float", "readonly": false, "cmd": "v hfu", "description": "sensor length in mm from top to full pos.", "visibility": 3},
{"path": "hcd", "type": "enum", "enum": {"stop": 0, "fill": 1, "off": 2, "auto": 3, "manual": 7}, "readonly": false, "cmd": "v hcd", "visibility": 3},
{"path": "hv", "type": "enum", "enum": {"fill_valve_off": 0, "filling": 1, "no_fill_valve": 2, "timeout": 3, "timeout1": 4}, "visibility": 3},
{"path": "hsf", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}, "visibility": 3},
{"path": "ha", "type": "bool", "readonly": false, "cmd": "v ha", "visibility": 3},
{"path": "hm", "type": "bool", "visibility": 3},
{"path": "hf", "type": "enum", "enum": {"slow": 0, "fast": 1}, "readonly": false, "cmd": "v hf", "visibility": 3},
{"path": "hbe", "type": "bool", "readonly": false, "cmd": "v hbe", "visibility": 3},
{"path": "hmf", "type": "float", "visibility": 3},
{"path": "hms", "type": "float", "visibility": 3},
{"path": "hit", "type": "float", "readonly": false, "cmd": "v hit", "visibility": 3},
{"path": "hft", "type": "int", "readonly": false, "cmd": "v hft", "visibility": 3},
{"path": "hea", "type": "enum", "enum": {"0": 0, "1": 1, "6": 2}, "readonly": false, "cmd": "v hea"},
{"path": "hch", "type": "int", "readonly": false, "cmd": "v hch", "visibility": 3},
{"path": "hwr0", "type": "float", "readonly": false, "cmd": "v hwr0", "visibility": 3},
{"path": "hem0", "type": "float", "readonly": false, "cmd": "v hem0", "description": "sensor length in mm from top to empty pos.", "visibility": 3},
{"path": "hfu0", "type": "float", "readonly": false, "cmd": "v hfu0", "description": "sensor length in mm from top to full pos.", "visibility": 3},
{"path": "hd0", "type": "float", "readonly": false, "cmd": "v hd0", "description": "external sensor drive current (mA)", "visibility": 3},
{"path": "h0", "type": "float", "visibility": 3},
{"path": "hs0", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}, "visibility": 3},
{"path": "h1", "type": "float", "visibility": 3},
{"path": "hs1", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}, "visibility": 3},
{"path": "h2", "type": "float", "visibility": 3},
{"path": "hs2", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}, "visibility": 3},
{"path": "h3", "type": "float", "visibility": 3},
{"path": "hs3", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}, "visibility": 3},
{"path": "h4", "type": "float", "visibility": 3},
{"path": "hs4", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}, "visibility": 3},
{"path": "h5", "type": "float", "visibility": 3},
{"path": "hs5", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}, "visibility": 3},
{"path": "hfb", "type": "float", "visibility": 3},
{"path": "nav", "type": "bool", "readonly": false, "cmd": "v nav"},
{"path": "nu", "type": "float"},
{"path": "nl", "type": "float"},
{"path": "nth", "type": "float", "readonly": false, "cmd": "v nth"},
{"path": "ntc", "type": "float", "readonly": false, "cmd": "v ntc"},
{"path": "ntm", "type": "float", "readonly": false, "cmd": "v ntm"},
{"path": "ns", "type": "enum", "enum": {"sens_ok": 0, "no_sens": 1, "short_circuit": 2, "upside_down": 3, "sens_warm": 4, "empty": 5}},
{"path": "na", "type": "bool", "readonly": false, "cmd": "v na"},
{"path": "nv", "type": "enum", "enum": {"fill_valve_off": 0, "filling": 1, "no_fill_valve": 2, "timeout": 3, "timeout1": 4, "boost": 5}},
{"path": "nc", "type": "enum", "enum": {"stop": 0, "fill": 1, "off": 2, "auto": 3}, "readonly": false, "cmd": "v nc"},
{"path": "nfb", "type": "float"},
{"path": "cda", "type": "float"},
{"path": "cdb", "type": "float"},
{"path": "cba", "type": "float"},
{"path": "cbb", "type": "float"},
{"path": "cvs", "type": "int"},
{"path": "csp", "type": "int"},
{"path": "cdv", "type": "text", "readonly": false, "cmd": "v cdv"},
{"path": "cic", "type": "text", "readonly": false, "cmd": "v cic"},
{"path": "cin", "type": "text"},
{"path": "cds", "type": "enum", "enum": {"local": 0, "remote": 1, "loading": 2, "by_code": 3, "by_touch": 4}, "readonly": false, "cmd": "v cds"},
{"path": "timing", "type": "bool", "readonly": false, "cmd": "v timing"},
{"path": "tc", "type": "float", "visibility": 3},
{"path": "tn", "type": "float", "visibility": 3},
{"path": "th", "type": "float", "visibility": 3},
{"path": "tf", "type": "float", "visibility": 3},
{"path": "tm", "type": "float", "visibility": 3},
{"path": "tv", "type": "float", "visibility": 3},
{"path": "tq", "type": "float", "visibility": 3},
{"path": "bdl", "type": "float", "readonly": false, "cmd": "v bdl"},
{"path": "v1", "type": "enum", "enum": {"valve_off": 0, "valve_on": 1, "no_valve": 2, "timeout": 3, "timeout1": 4, "boost": 5}},
{"path": "vc1", "type": "enum", "enum": {"valve_off": 0, "valve_on": 1}, "readonly": false, "cmd": "v vc1"},
{"path": "v2", "type": "enum", "enum": {"valve_off": 0, "valve_on": 1, "no_valve": 2, "timeout": 3, "timeout1": 4, "boost": 5}},
{"path": "vc2", "type": "enum", "enum": {"valve_off": 0, "valve_on": 1}, "readonly": false, "cmd": "v vc2"},
{"path": "v3", "type": "enum", "enum": {"valve_off": 0, "valve_on": 1, "no_valve": 2, "timeout": 3, "timeout1": 4, "boost": 5}},
{"path": "vc3", "type": "enum", "enum": {"valve_off": 0, "valve_on": 1}, "readonly": false, "cmd": "v vc3"},
{"path": "v4", "type": "enum", "enum": {"valve_off": 0, "valve_on": 1, "no_valve": 2, "timeout": 3, "timeout1": 4, "boost": 5}},
{"path": "vc4", "type": "enum", "enum": {"valve_off": 0, "valve_on": 1}, "readonly": false, "cmd": "v vc4"},
{"path": "v5", "type": "enum", "enum": {"valve_off": 0, "valve_on": 1, "no_valve": 2, "timeout": 3, "timeout1": 4, "boost": 5}},
{"path": "vc5", "type": "enum", "enum": {"valve_off": 0, "valve_on": 1}, "readonly": false, "cmd": "v vc5"},
{"path": "v6", "type": "enum", "enum": {"valve_off": 0, "valve_on": 1, "no_valve": 2, "timeout": 3, "timeout1": 4, "boost": 5}},
{"path": "vc6", "type": "enum", "enum": {"valve_off": 0, "valve_on": 1}, "readonly": false, "cmd": "v vc6"},
{"path": "v7", "type": "enum", "enum": {"valve_off": 0, "valve_on": 1, "no_valve": 2, "timeout": 3, "timeout1": 4, "boost": 5}},
{"path": "vc7", "type": "enum", "enum": {"valve_off": 0, "valve_on": 1}, "readonly": false, "cmd": "v vc7"},
{"path": "v8", "type": "enum", "enum": {"valve_off": 0, "valve_on": 1, "no_valve": 2, "timeout": 3, "timeout1": 4, "boost": 5}},
{"path": "vc8", "type": "enum", "enum": {"valve_off": 0, "valve_on": 1}, "readonly": false, "cmd": "v vc8"},
{"path": "v9", "type": "enum", "enum": {"valve_off": 0, "valve_on": 1, "no_valve": 2, "timeout": 3, "timeout1": 4, "boost": 5}},
{"path": "vc9", "type": "enum", "enum": {"valve_off": 0, "valve_on": 1}, "readonly": false, "cmd": "v vc9"},
{"path": "v10", "type": "enum", "enum": {"valve_off": 0, "valve_on": 1, "no_valve": 2, "timeout": 3, "timeout1": 4, "boost": 5}},
{"path": "vc10", "type": "enum", "enum": {"valve_off": 0, "valve_on": 1}, "readonly": false, "cmd": "v vc10"},
{"path": "v11", "type": "enum", "enum": {"valve_off": 0, "valve_on": 1, "no_valve": 2, "timeout": 3, "timeout1": 4, "boost": 5}},
{"path": "vc11", "type": "enum", "enum": {"valve_off": 0, "valve_on": 1}, "readonly": false, "cmd": "v vc11"},
{"path": "v12", "type": "enum", "enum": {"valve_off": 0, "valve_on": 1, "no_valve": 2, "timeout": 3, "timeout1": 4, "boost": 5}},
{"path": "vc12", "type": "enum", "enum": {"valve_off": 0, "valve_on": 1}, "readonly": false, "cmd": "v vc12"}]},
"cc": {"base": "/cc", "params": [
{"path": "", "type": "bool", "kids": 96},
{"path": "send", "type": "text", "readonly": false, "cmd": "cc send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "autodevice", "type": "bool", "readonly": false, "cmd": "cc autodevice"},
{"path": "fav", "type": "bool", "readonly": false, "cmd": "cc fav"},
{"path": "f", "type": "float", "visibility": 3},
{"path": "fs", "type": "enum", "enum": {"ok": 0, "no_sens": 1}, "readonly": false, "cmd": "cc fs", "visibility": 3},
{"path": "mav", "type": "bool", "readonly": false, "cmd": "cc mav"},
{"path": "fm", "type": "enum", "enum": {"idle": 0, "opening": 1, "closing": 2, "opened": 3, "closed": 4, "no_motor": 5}, "visibility": 3},
{"path": "fa", "type": "enum", "enum": {"fixed": 0, "controlled": 1, "automatic": 2, "offline": 3}, "readonly": false, "cmd": "cc fa", "visibility": 3},
{"path": "mp", "type": "float", "readonly": false, "cmd": "cc mp", "visibility": 3},
{"path": "msp", "type": "float", "visibility": 3},
{"path": "mmp", "type": "float", "visibility": 3},
{"path": "mc", "type": "float", "readonly": false, "cmd": "cc mc", "visibility": 3},
{"path": "mfc", "type": "float", "readonly": false, "cmd": "cc mfc", "visibility": 3},
{"path": "moc", "type": "float", "readonly": false, "cmd": "cc moc", "visibility": 3},
{"path": "mtc", "type": "float", "readonly": false, "cmd": "cc mtc", "visibility": 3},
{"path": "mtl", "type": "float", "visibility": 3},
{"path": "mft", "type": "float", "readonly": false, "cmd": "cc mft", "visibility": 3},
{"path": "mt", "type": "float", "visibility": 3},
{"path": "mo", "type": "float", "visibility": 3},
{"path": "mcr", "type": "float", "visibility": 3},
{"path": "mot", "type": "float", "visibility": 3},
{"path": "mw", "type": "float", "readonly": false, "cmd": "cc mw", "description": "correction pulse after automatic open", "visibility": 3},
{"path": "hav", "type": "bool", "readonly": false, "cmd": "cc hav"},
{"path": "h", "type": "float", "visibility": 3},
{"path": "hr", "type": "float", "visibility": 3},
{"path": "hc", "type": "float", "visibility": 3},
{"path": "hu", "type": "float", "visibility": 3},
{"path": "hh", "type": "float", "readonly": false, "cmd": "cc hh", "visibility": 3},
{"path": "hl", "type": "float", "readonly": false, "cmd": "cc hl", "visibility": 3},
{"path": "htf", "type": "float", "readonly": false, "cmd": "cc htf", "description": "meas. period in fast mode", "visibility": 3},
{"path": "hts", "type": "float", "readonly": false, "cmd": "cc hts", "description": "meas. period in slow mode", "visibility": 3},
{"path": "hd", "type": "float", "readonly": false, "cmd": "cc hd", "visibility": 3},
{"path": "hwr", "type": "float", "readonly": false, "cmd": "cc hwr", "visibility": 3},
{"path": "hem", "type": "float", "readonly": false, "cmd": "cc hem", "description": "sensor length in mm from top to empty pos.", "visibility": 3},
{"path": "hfu", "type": "float", "readonly": false, "cmd": "cc hfu", "description": "sensor length in mm from top to full pos.", "visibility": 3},
{"path": "hcd", "type": "enum", "enum": {"stop": 0, "fill": 1, "off": 2, "auto": 3, "manual": 7}, "readonly": false, "cmd": "cc hcd", "visibility": 3},
{"path": "hv", "type": "enum", "enum": {"fill_valve_off": 0, "filling": 1, "no_fill_valve": 2, "timeout": 3, "timeout1": 4}, "visibility": 3},
{"path": "hsf", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}, "visibility": 3},
{"path": "ha", "type": "bool", "readonly": false, "cmd": "cc ha", "visibility": 3},
{"path": "hm", "type": "bool", "visibility": 3},
{"path": "hf", "type": "enum", "enum": {"slow": 0, "fast": 1}, "readonly": false, "cmd": "cc hf", "visibility": 3},
{"path": "hbe", "type": "bool", "readonly": false, "cmd": "cc hbe", "visibility": 3},
{"path": "hmf", "type": "float", "visibility": 3},
{"path": "hms", "type": "float", "visibility": 3},
{"path": "hit", "type": "float", "readonly": false, "cmd": "cc hit", "visibility": 3},
{"path": "hft", "type": "int", "readonly": false, "cmd": "cc hft", "visibility": 3},
{"path": "hea", "type": "enum", "enum": {"0": 0, "1": 1, "6": 2}, "readonly": false, "cmd": "cc hea"},
{"path": "hch", "type": "int", "readonly": false, "cmd": "cc hch", "visibility": 3},
{"path": "hwr0", "type": "float", "readonly": false, "cmd": "cc hwr0", "visibility": 3},
{"path": "hem0", "type": "float", "readonly": false, "cmd": "cc hem0", "description": "sensor length in mm from top to empty pos.", "visibility": 3},
{"path": "hfu0", "type": "float", "readonly": false, "cmd": "cc hfu0", "description": "sensor length in mm from top to full pos.", "visibility": 3},
{"path": "hd0", "type": "float", "readonly": false, "cmd": "cc hd0", "description": "external sensor drive current (mA)", "visibility": 3},
{"path": "h0", "type": "float", "visibility": 3},
{"path": "hs0", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}, "visibility": 3},
{"path": "h1", "type": "float", "visibility": 3},
{"path": "hs1", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}, "visibility": 3},
{"path": "h2", "type": "float", "visibility": 3},
{"path": "hs2", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}, "visibility": 3},
{"path": "h3", "type": "float", "visibility": 3},
{"path": "hs3", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}, "visibility": 3},
{"path": "h4", "type": "float", "visibility": 3},
{"path": "hs4", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}, "visibility": 3},
{"path": "h5", "type": "float", "visibility": 3},
{"path": "hs5", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}, "visibility": 3},
{"path": "hfb", "type": "float", "visibility": 3},
{"path": "nav", "type": "bool", "readonly": false, "cmd": "cc nav"},
{"path": "nu", "type": "float", "visibility": 3},
{"path": "nl", "type": "float", "visibility": 3},
{"path": "nth", "type": "float", "readonly": false, "cmd": "cc nth", "visibility": 3},
{"path": "ntc", "type": "float", "readonly": false, "cmd": "cc ntc", "visibility": 3},
{"path": "ntm", "type": "float", "readonly": false, "cmd": "cc ntm", "visibility": 3},
{"path": "ns", "type": "enum", "enum": {"sens_ok": 0, "no_sens": 1, "short_circuit": 2, "upside_down": 3, "sens_warm": 4, "empty": 5}, "visibility": 3},
{"path": "na", "type": "bool", "readonly": false, "cmd": "cc na", "visibility": 3},
{"path": "nv", "type": "enum", "enum": {"fill_valve_off": 0, "filling": 1, "no_fill_valve": 2, "timeout": 3, "timeout1": 4, "boost": 5}, "visibility": 3},
{"path": "nc", "type": "enum", "enum": {"stop": 0, "fill": 1, "off": 2, "auto": 3}, "readonly": false, "cmd": "cc nc", "visibility": 3},
{"path": "nfb", "type": "float", "visibility": 3},
{"path": "cda", "type": "float"},
{"path": "cdb", "type": "float"},
{"path": "cba", "type": "float"},
{"path": "cbb", "type": "float"},
{"path": "cvs", "type": "int"},
{"path": "csp", "type": "int"},
{"path": "cdv", "type": "text", "readonly": false, "cmd": "cc cdv"},
{"path": "cic", "type": "text", "readonly": false, "cmd": "cc cic"},
{"path": "cin", "type": "text"},
{"path": "cds", "type": "enum", "enum": {"local": 0, "remote": 1, "loading": 2, "by_code": 3, "by_touch": 4}, "readonly": false, "cmd": "cc cds"},
{"path": "timing", "type": "bool", "readonly": false, "cmd": "cc timing"},
{"path": "tc", "type": "float", "visibility": 3},
{"path": "tn", "type": "float", "visibility": 3},
{"path": "th", "type": "float", "visibility": 3},
{"path": "tf", "type": "float", "visibility": 3},
{"path": "tm", "type": "float", "visibility": 3},
{"path": "tv", "type": "float", "visibility": 3},
{"path": "tq", "type": "float", "visibility": 3},
{"path": "bdl", "type": "float", "readonly": false, "cmd": "cc bdl"}]}}

View File

@ -1,7 +0,0 @@
["lambdawatch", [{"path": "", "type": "float", "kids": 6},
{"path": "send", "type": "text", "readonly": false, "cmd": "lambdawatch send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "safefield", "type": "float", "readonly": false, "cmd": "lambdawatch safefield"},
{"path": "maxfield", "type": "float", "readonly": false, "cmd": "lambdawatch maxfield"},
{"path": "safetemp", "type": "float", "readonly": false, "cmd": "lambdawatch safetemp"},
{"path": "coiltemp", "type": "text", "readonly": false, "cmd": "lambdawatch coiltemp"}]]

View File

@ -1,15 +0,0 @@
["ln2fill", [{"path": "", "type": "enum", "enum": {"watching": 0, "fill": 1, "inactive": 2}, "readonly": false, "cmd": "ln2fill", "kids": 14},
{"path": "send", "type": "text", "readonly": false, "cmd": "ln2fill send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "state", "type": "text"},
{"path": "readlevel", "type": "text", "readonly": false, "cmd": "ln2fill readlevel", "visibility": 3},
{"path": "lowlevel", "type": "float", "readonly": false, "cmd": "ln2fill lowlevel"},
{"path": "highlevel", "type": "float", "readonly": false, "cmd": "ln2fill highlevel"},
{"path": "smooth", "type": "float"},
{"path": "minfillminutes", "type": "float", "readonly": false, "cmd": "ln2fill minfillminutes"},
{"path": "maxfillminutes", "type": "float", "readonly": false, "cmd": "ln2fill maxfillminutes"},
{"path": "minholdhours", "type": "float", "readonly": false, "cmd": "ln2fill minholdhours"},
{"path": "maxholdhours", "type": "float", "readonly": false, "cmd": "ln2fill maxholdhours"},
{"path": "tolerance", "type": "float", "readonly": false, "cmd": "ln2fill tolerance"},
{"path": "badreadingminutes", "type": "float", "readonly": false, "cmd": "ln2fill badreadingminutes"},
{"path": "tubecoolingminutes", "type": "float", "readonly": false, "cmd": "ln2fill tubecoolingminutes"}]]

View File

@ -1,39 +0,0 @@
["lnv", [{"path": "", "type": "enum", "enum": {"off": 5, "fixed": 0, "controlling": 1, "close": 3, "open": 4}, "readonly": false, "cmd": "lnv", "kids": 12},
{"path": "send", "type": "text", "readonly": false, "cmd": "lnv send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "set", "type": "float", "readonly": false, "cmd": "lnv set"},
{"path": "flowmax", "type": "float", "readonly": false, "cmd": "lnv flowmax"},
{"path": "prop", "type": "float", "readonly": false, "cmd": "lnv prop"},
{"path": "int", "type": "float", "readonly": false, "cmd": "lnv int"},
{"path": "minpulse", "type": "enum", "enum": {"micro": 1, "short": 10, "long": 100}, "readonly": false, "cmd": "lnv minpulse", "description": "micro: 1 ms, short: 10 ms, long: 100 ms"},
{"path": "tolerance", "type": "float", "readonly": false, "cmd": "lnv tolerance"},
{"path": "speed", "type": "float"},
{"path": "flow", "type": "float"},
{"path": "pos", "type": "float", "kids": 2},
{"path": "pos/norm", "type": "float", "readonly": false, "cmd": "lnv pos/norm"},
{"path": "pos/max", "type": "float", "readonly": false, "cmd": "lnv pos/max"},
{"path": "autoflow", "type": "none", "kids": 24},
{"path": "autoflow/suspended", "type": "bool", "readonly": false, "cmd": "lnv autoflow/suspended"},
{"path": "autoflow/prop", "type": "float", "readonly": false, "cmd": "lnv autoflow/prop"},
{"path": "autoflow/flowstd", "type": "float", "readonly": false, "cmd": "lnv autoflow/flowstd"},
{"path": "autoflow/flowlim", "type": "float", "readonly": false, "cmd": "lnv autoflow/flowlim"},
{"path": "autoflow/smooth", "type": "float", "readonly": false, "cmd": "lnv autoflow/smooth"},
{"path": "autoflow/difSize", "type": "float", "readonly": false, "cmd": "lnv autoflow/difSize"},
{"path": "autoflow/difRange", "type": "float", "readonly": false, "cmd": "lnv autoflow/difRange"},
{"path": "autoflow/flowSize", "type": "float", "readonly": false, "cmd": "lnv autoflow/flowSize"},
{"path": "autoflow/convTime", "type": "float", "readonly": false, "cmd": "lnv autoflow/convTime"},
{"path": "autoflow/Tmin", "type": "float", "readonly": false, "cmd": "lnv autoflow/Tmin"},
{"path": "autoflow/script", "type": "text", "readonly": false, "cmd": "lnv autoflow/script"},
{"path": "autoflow/getTemp", "type": "text", "readonly": false, "cmd": "lnv autoflow/getTemp"},
{"path": "autoflow/getTset", "type": "text", "readonly": false, "cmd": "lnv autoflow/getTset"},
{"path": "autoflow/getFlow", "type": "text", "readonly": false, "cmd": "lnv autoflow/getFlow"},
{"path": "autoflow/difBuf", "type": "text"},
{"path": "autoflow/flowBuf", "type": "text"},
{"path": "autoflow/flowset", "type": "float"},
{"path": "autoflow/flowmin", "type": "float"},
{"path": "autoflow/flowmax", "type": "float"},
{"path": "autoflow/difmin", "type": "float"},
{"path": "autoflow/difmax", "type": "float"},
{"path": "autoflow/setmin", "type": "float"},
{"path": "autoflow/setmax", "type": "float"},
{"path": "autoflow/flowtarget", "type": "float"}]]

View File

@ -1,29 +0,0 @@
["lpr", [{"path": "", "type": "float", "readonly": false, "cmd": "run lpr", "description": "lpr", "kids": 28},
{"path": "send", "type": "text", "readonly": false, "cmd": "lpr send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "is_running", "type": "int", "visibility": 3},
{"path": "mode", "type": "enum", "enum": {"off": 0, "on": 1}, "readonly": false, "cmd": "lpr mode"},
{"path": "reg", "type": "float"},
{"path": "output", "type": "float", "readonly": false, "cmd": "lpr output"},
{"path": "ramptime", "type": "float", "readonly": false, "cmd": "lpr ramptime", "description": "time for ramping [sec] deltax = 1 or a factor 10"},
{"path": "ramptol", "type": "float", "readonly": false, "cmd": "lpr ramptol", "description": "log of max. deviation when ramping"},
{"path": "smoothtime", "type": "float", "readonly": false, "cmd": "lpr smoothtime", "description": "time for smoothing ramp near setpoint"},
{"path": "invar", "type": "text", "readonly": false, "cmd": "lpr invar", "visibility": 3},
{"path": "outvar", "type": "text", "readonly": false, "cmd": "lpr outvar", "visibility": 3},
{"path": "prop", "type": "float", "readonly": false, "cmd": "lpr prop", "description": "smaller means more sensitive. a change of 'prop' on input -> a change of 100 % or a factor 10 on output"},
{"path": "int", "type": "float", "readonly": false, "cmd": "lpr int", "description": "integration time (sec)"},
{"path": "outmin", "type": "float", "readonly": false, "cmd": "lpr outmin", "description": "output for maximal decrease of input var."},
{"path": "outmax", "type": "float", "readonly": false, "cmd": "lpr outmax", "description": "output for maximal increase of input var."},
{"path": "inpfunction", "type": "enum", "enum": {"linear": 0, "logarithmic": 1}, "readonly": false, "cmd": "lpr inpfunction"},
{"path": "inplinear", "type": "float", "readonly": false, "cmd": "lpr inplinear", "description": "function gets linear below about this value"},
{"path": "outfunction", "type": "enum", "enum": {"linear": 0, "exponential": 1}, "readonly": false, "cmd": "lpr outfunction"},
{"path": "outlinear", "type": "float", "readonly": false, "cmd": "lpr outlinear", "description": "function gets linear below about this value"},
{"path": "precision", "type": "float", "readonly": false, "cmd": "lpr precision"},
{"path": "deadband", "type": "float", "readonly": false, "cmd": "lpr deadband"},
{"path": "maxdelta", "type": "float", "readonly": false, "cmd": "lpr maxdelta"},
{"path": "set", "type": "float", "readonly": false, "cmd": "lpr set"},
{"path": "target", "type": "float"},
{"path": "running", "type": "int"},
{"path": "tolerance", "type": "float", "readonly": false, "cmd": "lpr tolerance"},
{"path": "maxwait", "type": "float", "readonly": false, "cmd": "lpr maxwait"},
{"path": "settle", "type": "float", "readonly": false, "cmd": "lpr settle"}]]

View File

@ -30,7 +30,7 @@
{"path": "tm/alarm", "type": "float", "readonly": false, "cmd": "tt tm/alarm"},
{"path": "tm/stddev", "type": "float"},
{"path": "tm/raw", "type": "float"},
{"path": "ts", "type": "float", "visibility": 3, "kids": 4},
{"path": "ts", "type": "float", "kids": 4},
{"path": "ts/curve", "type": "text", "readonly": false, "cmd": "tt ts/curve", "visibility": 3, "kids": 1},
{"path": "ts/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt ts/curve/points", "visibility": 3},
{"path": "ts/alarm", "type": "float", "readonly": false, "cmd": "tt ts/alarm", "visibility": 3},

View File

@ -1,119 +0,0 @@
[node ma11_dil4_ultrasound_sr.psi.ch]
description = ma11_dil4_ultrasound_sr over SEA
[interface tcp]
type = tcp
bindport = 10767
[module seaconn]
class = secop_psi.sea.SeaClient
description = a SEA connection
uri = tcp://samenv.psi.ch:8645
[module tt]
class = secop_psi.sea.SeaDrivable
io = seaconn
json_descr = tt.ma11.config
remote_paths = .
[module nv]
class = secop_psi.sea.SeaReadable
io = seaconn
json_descr = nv.ma11.config
remote_paths = .
[module ln2fill]
class = secop_psi.sea.SeaReadable
io = seaconn
json_descr = ln2fill.ma11.config
remote_paths = .
[module hefill]
class = secop_psi.sea.SeaReadable
io = seaconn
json_descr = hefill.ma11.config
remote_paths = .
[module tcoil]
class = secop_psi.sea.SeaReadable
io = seaconn
json_descr = tcoil.ma11.config
remote_paths = .
[module table]
class = secop_psi.sea.SeaReadable
io = seaconn
json_descr = table.ma11.config
remote_paths = .
[module lnv]
class = secop_psi.sea.SeaReadable
io = seaconn
json_descr = lnv.ma11.config
remote_paths = .
[module lpr]
class = secop_psi.sea.SeaDrivable
io = seaconn
json_descr = lpr.ma11.config
remote_paths = .
[module lambdawatch]
class = secop_psi.sea.SeaReadable
io = seaconn
json_descr = lambdawatch.ma11.config
remote_paths = .
[module ts]
class = secop_psi.sea.SeaDrivable
io = seaconn
json_descr = ts.dil4.stick
remote_paths = .
[module treg]
class = secop_psi.sea.SeaReadable
io = seaconn
json_descr = treg.dil4.stick
remote_paths = .
[module tmon]
class = secop_psi.sea.SeaReadable
io = seaconn
json_descr = tmon.dil4.stick
remote_paths = .
[module sorb]
class = secop_psi.sea.SeaDrivable
io = seaconn
json_descr = sorb.dil4.stick
remote_paths = .
[module ultrasound]
class = secop_psi.sea.SeaReadable
io = seaconn
json_descr = ultrasound.ultrasound.addon
remote_paths = .
[module fn]
class = secop_psi.sea.SeaReadable
io = seaconn
json_descr = fn.ultrasound.addon
remote_paths = .
[module mirror]
class = secop_psi.sea.SeaReadable
io = seaconn
json_descr = mirror.ultrasound.addon
remote_paths = .
[module f]
class = secop_psi.sea.SeaReadable
io = seaconn
json_descr = f.ultrasound.addon
remote_paths = .
[module pars]
class = secop_psi.sea.SeaReadable
io = seaconn
json_descr = pars.ultrasound.addon
remote_paths = .

View File

@ -1,35 +0,0 @@
["mf", [{"path": "", "type": "float", "readonly": false, "cmd": "run mf", "kids": 8},
{"path": "send", "type": "text", "readonly": false, "cmd": "mf send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "is_running", "type": "int", "visibility": 3},
{"path": "statustext", "type": "text"},
{"path": "ramp", "type": "float", "readonly": false, "cmd": "mf ramp"},
{"path": "persistent_mode", "type": "enum", "enum": {"off": 0, "on": 1}, "readonly": false, "cmd": "mf persistent_mode", "description": "hidden mode -1: completely off"},
{"path": "gen", "type": "none", "kids": 13},
{"path": "gen/persistent_delay", "type": "float", "readonly": false, "cmd": "mf gen/persistent_delay", "description": "timeout for going automatically into persistent mode"},
{"path": "gen/tolerance", "type": "float", "readonly": false, "cmd": "mf gen/tolerance"},
{"path": "gen/wait_switch_on", "type": "float", "readonly": false, "cmd": "mf gen/wait_switch_on"},
{"path": "gen/wait_switch_off", "type": "float", "readonly": false, "cmd": "mf gen/wait_switch_off"},
{"path": "gen/wait_stable_leads", "type": "float", "readonly": false, "cmd": "mf gen/wait_stable_leads"},
{"path": "gen/wait_stable_field", "type": "float", "readonly": false, "cmd": "mf gen/wait_stable_field"},
{"path": "gen/expectend", "type": "text"},
{"path": "gen/trained_pos", "type": "float", "readonly": false, "cmd": "mf gen/trained_pos"},
{"path": "gen/trained_neg", "type": "float", "readonly": false, "cmd": "mf gen/trained_neg"},
{"path": "gen/profile", "type": "text", "readonly": false, "cmd": "mf gen/profile", "description": "syntax: <field1>:<ramp1> <field2>:<ramp2> ... (<ramp2> is the ramp limit from <field1> to <field2>)"},
{"path": "gen/profile_training", "type": "text", "readonly": false, "cmd": "mf gen/profile_training", "description": "syntax: <field1>:<ramp1> <field2>:<ramp2> ... (<ramp2> is the ramp limit from <field1> to <field2>)"},
{"path": "gen/limit", "type": "float", "readonly": false, "cmd": "mf gen/limit"},
{"path": "gen/bipolar", "type": "bool", "readonly": false, "cmd": "mf gen/bipolar"},
{"path": "ips", "type": "float", "kids": 13},
{"path": "ips/ramp_slow", "type": "float", "readonly": false, "cmd": "mf ips/ramp_slow", "description": "ramp rate for coils Tesla/min."},
{"path": "ips/ramp_fast", "type": "float", "description": "ramp rate for leads Tesla/min."},
{"path": "ips/set_field", "type": "float", "readonly": false, "cmd": "mf ips/set_field"},
{"path": "ips/heater", "type": "bool", "readonly": false, "cmd": "mf ips/heater"},
{"path": "ips/ramp_state", "type": "enum", "enum": {"hold": 0, "to_zero": 1, "to_set": 2, "clamp": 3}, "readonly": false, "cmd": "mf ips/ramp_state"},
{"path": "ips/leads_set", "type": "float", "description": "calculated current in the leads, converted to Tesla"},
{"path": "ips/show_internals", "type": "bool", "readonly": false, "cmd": "mf ips/show_internals"},
{"path": "ips/leads_meas", "type": "float", "description": "measured current in the leads, converted to Tesla"},
{"path": "ips/volt", "type": "float"},
{"path": "ips/symode", "type": "text"},
{"path": "ips/engineering_password", "type": "text", "readonly": false, "cmd": "mf ips/engineering_password"},
{"path": "ips/atob", "type": "float", "readonly": false, "cmd": "mf ips/atob", "description": "Amp/Tesla"},
{"path": "ips/inductance", "type": "float", "readonly": false, "cmd": "mf ips/inductance", "description": "henries"}]]

View File

@ -1,3 +0,0 @@
["mirror", [{"path": "", "type": "text", "readonly": false, "cmd": "mirror", "kids": 2},
{"path": "send", "type": "text", "readonly": false, "cmd": "mirror send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3}]]

View File

@ -1,51 +0,0 @@
["nv", [{"path": "", "type": "enum", "enum": {"fixed": 0, "controlled": 1, "automatic": 2, "close": 3, "open": 4}, "readonly": false, "cmd": "nv", "kids": 11},
{"path": "send", "type": "text", "readonly": false, "cmd": "nv send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "motstat", "type": "enum", "enum": {"idle": 0, "opening": 1, "closing": 2, "opened": 3, "closed": 4, "no_motor": 5}},
{"path": "flow", "type": "float"},
{"path": "set", "type": "float", "readonly": false, "cmd": "nv set"},
{"path": "flowmax", "type": "float", "readonly": false, "cmd": "nv flowmax"},
{"path": "flowp", "type": "float"},
{"path": "span", "type": "float"},
{"path": "ctrl", "type": "none", "kids": 13},
{"path": "ctrl/regtext", "type": "text"},
{"path": "ctrl/prop_o", "type": "float", "readonly": false, "cmd": "nv ctrl/prop_o", "description": "prop [sec/mbar] when opening. above 4 mbar a 10 times lower value is used"},
{"path": "ctrl/prop_c", "type": "float", "readonly": false, "cmd": "nv ctrl/prop_c", "description": "prop [sec/mbar] when closing. above 4 mbar a 10 times lower value is used"},
{"path": "ctrl/deriv_o", "type": "float", "readonly": false, "cmd": "nv ctrl/deriv_o", "description": "convergence target time [sec] when opening"},
{"path": "ctrl/deriv_c", "type": "float", "readonly": false, "cmd": "nv ctrl/deriv_c", "description": "convergence target time [sec] when closing"},
{"path": "ctrl/minpulse_o", "type": "float", "readonly": false, "cmd": "nv ctrl/minpulse_o", "description": "minimum close pulse [sec]"},
{"path": "ctrl/minpulse_c", "type": "float", "readonly": false, "cmd": "nv ctrl/minpulse_c", "description": "standard close pulse [sec]"},
{"path": "ctrl/hystpulse_o", "type": "float", "readonly": false, "cmd": "nv ctrl/hystpulse_o", "description": "motor pulse to overcome hysteresis when opening"},
{"path": "ctrl/hystpulse_c", "type": "float", "readonly": false, "cmd": "nv ctrl/hystpulse_c", "description": "motor pulse to overcome hysteresis when closing"},
{"path": "ctrl/tol", "type": "float", "readonly": false, "cmd": "nv ctrl/tol", "description": "valid below 3 mbar"},
{"path": "ctrl/tolhigh", "type": "float", "readonly": false, "cmd": "nv ctrl/tolhigh", "description": "valid above 4 mbar"},
{"path": "ctrl/openpulse", "type": "float", "readonly": false, "cmd": "nv ctrl/openpulse", "description": "time to open from completely closed to a significant opening"},
{"path": "ctrl/adjust_minpulse", "type": "bool", "readonly": false, "cmd": "nv ctrl/adjust_minpulse", "description": "adjust minpulse automatically"},
{"path": "autoflow", "type": "none", "kids": 24},
{"path": "autoflow/suspended", "type": "bool", "readonly": false, "cmd": "nv autoflow/suspended"},
{"path": "autoflow/prop", "type": "float", "readonly": false, "cmd": "nv autoflow/prop"},
{"path": "autoflow/flowstd", "type": "float", "readonly": false, "cmd": "nv autoflow/flowstd"},
{"path": "autoflow/flowlim", "type": "float", "readonly": false, "cmd": "nv autoflow/flowlim"},
{"path": "autoflow/smooth", "type": "float", "readonly": false, "cmd": "nv autoflow/smooth"},
{"path": "autoflow/difSize", "type": "float", "readonly": false, "cmd": "nv autoflow/difSize"},
{"path": "autoflow/difRange", "type": "float", "readonly": false, "cmd": "nv autoflow/difRange"},
{"path": "autoflow/flowSize", "type": "float", "readonly": false, "cmd": "nv autoflow/flowSize"},
{"path": "autoflow/convTime", "type": "float", "readonly": false, "cmd": "nv autoflow/convTime"},
{"path": "autoflow/Tmin", "type": "float", "readonly": false, "cmd": "nv autoflow/Tmin"},
{"path": "autoflow/script", "type": "text", "readonly": false, "cmd": "nv autoflow/script"},
{"path": "autoflow/getTemp", "type": "text", "readonly": false, "cmd": "nv autoflow/getTemp"},
{"path": "autoflow/getTset", "type": "text", "readonly": false, "cmd": "nv autoflow/getTset"},
{"path": "autoflow/getFlow", "type": "text", "readonly": false, "cmd": "nv autoflow/getFlow"},
{"path": "autoflow/difBuf", "type": "text"},
{"path": "autoflow/flowBuf", "type": "text"},
{"path": "autoflow/flowset", "type": "float"},
{"path": "autoflow/flowmin", "type": "float"},
{"path": "autoflow/flowmax", "type": "float"},
{"path": "autoflow/difmin", "type": "float"},
{"path": "autoflow/difmax", "type": "float"},
{"path": "autoflow/setmin", "type": "float"},
{"path": "autoflow/setmax", "type": "float"},
{"path": "autoflow/flowtarget", "type": "float"},
{"path": "calib", "type": "none", "kids": 2},
{"path": "calib/ln_per_min_per_mbar", "type": "float", "readonly": false, "cmd": "nv calib/ln_per_min_per_mbar"},
{"path": "calib/mbar_offset", "type": "float", "readonly": false, "cmd": "nv calib/mbar_offset"}]]

View File

@ -1,51 +0,0 @@
["nv", [{"path": "", "type": "enum", "enum": {"fixed": 0, "controlled": 1, "automatic": 2, "close": 3, "open": 4}, "readonly": false, "cmd": "nv", "kids": 11},
{"path": "send", "type": "text", "readonly": false, "cmd": "nv send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "motstat", "type": "enum", "enum": {"idle": 0, "opening": 1, "closing": 2, "opened": 3, "closed": 4, "no_motor": 5}},
{"path": "flow", "type": "float"},
{"path": "set", "type": "float", "readonly": false, "cmd": "nv set"},
{"path": "flowmax", "type": "float", "readonly": false, "cmd": "nv flowmax"},
{"path": "flowp", "type": "float"},
{"path": "span", "type": "float"},
{"path": "ctrl", "type": "none", "kids": 13},
{"path": "ctrl/regtext", "type": "text"},
{"path": "ctrl/prop_o", "type": "float", "readonly": false, "cmd": "nv ctrl/prop_o", "description": "prop [sec/mbar] when opening. above 4 mbar a 10 times lower value is used"},
{"path": "ctrl/prop_c", "type": "float", "readonly": false, "cmd": "nv ctrl/prop_c", "description": "prop [sec/mbar] when closing. above 4 mbar a 10 times lower value is used"},
{"path": "ctrl/deriv_o", "type": "float", "readonly": false, "cmd": "nv ctrl/deriv_o", "description": "convergence target time [sec] when opening"},
{"path": "ctrl/deriv_c", "type": "float", "readonly": false, "cmd": "nv ctrl/deriv_c", "description": "convergence target time [sec] when closing"},
{"path": "ctrl/minpulse_o", "type": "float", "readonly": false, "cmd": "nv ctrl/minpulse_o", "description": "minimum close pulse [sec]"},
{"path": "ctrl/minpulse_c", "type": "float", "readonly": false, "cmd": "nv ctrl/minpulse_c", "description": "standard close pulse [sec]"},
{"path": "ctrl/hystpulse_o", "type": "float", "readonly": false, "cmd": "nv ctrl/hystpulse_o", "description": "motor pulse to overcome hysteresis when opening"},
{"path": "ctrl/hystpulse_c", "type": "float", "readonly": false, "cmd": "nv ctrl/hystpulse_c", "description": "motor pulse to overcome hysteresis when closing"},
{"path": "ctrl/tol", "type": "float", "readonly": false, "cmd": "nv ctrl/tol", "description": "valid below 3 mbar"},
{"path": "ctrl/tolhigh", "type": "float", "readonly": false, "cmd": "nv ctrl/tolhigh", "description": "valid above 4 mbar"},
{"path": "ctrl/openpulse", "type": "float", "readonly": false, "cmd": "nv ctrl/openpulse", "description": "time to open from completely closed to a significant opening"},
{"path": "ctrl/adjust_minpulse", "type": "bool", "readonly": false, "cmd": "nv ctrl/adjust_minpulse", "description": "adjust minpulse automatically"},
{"path": "autoflow", "type": "none", "kids": 24},
{"path": "autoflow/suspended", "type": "bool", "readonly": false, "cmd": "nv autoflow/suspended"},
{"path": "autoflow/prop", "type": "float", "readonly": false, "cmd": "nv autoflow/prop"},
{"path": "autoflow/flowstd", "type": "float", "readonly": false, "cmd": "nv autoflow/flowstd"},
{"path": "autoflow/flowlim", "type": "float", "readonly": false, "cmd": "nv autoflow/flowlim"},
{"path": "autoflow/smooth", "type": "float", "readonly": false, "cmd": "nv autoflow/smooth"},
{"path": "autoflow/difSize", "type": "float", "readonly": false, "cmd": "nv autoflow/difSize"},
{"path": "autoflow/difRange", "type": "float", "readonly": false, "cmd": "nv autoflow/difRange"},
{"path": "autoflow/flowSize", "type": "float", "readonly": false, "cmd": "nv autoflow/flowSize"},
{"path": "autoflow/convTime", "type": "float", "readonly": false, "cmd": "nv autoflow/convTime"},
{"path": "autoflow/Tmin", "type": "float", "readonly": false, "cmd": "nv autoflow/Tmin"},
{"path": "autoflow/script", "type": "text", "readonly": false, "cmd": "nv autoflow/script"},
{"path": "autoflow/getTemp", "type": "text", "readonly": false, "cmd": "nv autoflow/getTemp"},
{"path": "autoflow/getTset", "type": "text", "readonly": false, "cmd": "nv autoflow/getTset"},
{"path": "autoflow/getFlow", "type": "text", "readonly": false, "cmd": "nv autoflow/getFlow"},
{"path": "autoflow/difBuf", "type": "text"},
{"path": "autoflow/flowBuf", "type": "text"},
{"path": "autoflow/flowset", "type": "float"},
{"path": "autoflow/flowmin", "type": "float"},
{"path": "autoflow/flowmax", "type": "float"},
{"path": "autoflow/difmin", "type": "float"},
{"path": "autoflow/difmax", "type": "float"},
{"path": "autoflow/setmin", "type": "float"},
{"path": "autoflow/setmax", "type": "float"},
{"path": "autoflow/flowtarget", "type": "float"},
{"path": "calib", "type": "none", "kids": 2},
{"path": "calib/ln_per_min_per_mbar", "type": "float", "readonly": false, "cmd": "nv calib/ln_per_min_per_mbar"},
{"path": "calib/mbar_offset", "type": "float", "readonly": false, "cmd": "nv calib/mbar_offset"}]]

View File

@ -1,23 +0,0 @@
[node ori1.psi.ch]
description = ori1 over SEA
[interface tcp]
type = tcp
bindport = 10767
[module seaconn]
class = secop_psi.sea.SeaClient
description = a SEA connection
uri = tcp://samenv.psi.ch:8642
[module tt]
class = secop_psi.sea.SeaDrivable
io = seaconn
json_descr = tt.ori1.config
remote_paths = .
[module nv]
class = secop_psi.sea.SeaReadable
io = seaconn
json_descr = nv.ori1.config
remote_paths = .

View File

@ -1,5 +0,0 @@
["pars", [{"path": "", "type": "none", "kids": 4},
{"path": "timestamp", "type": "text", "readonly": false, "cmd": "pars timestamp", "description": "unix timestamp"},
{"path": "temperature", "type": "float", "readonly": false, "cmd": "pars temperature", "description": "T [K]"},
{"path": "mf", "type": "float", "readonly": false, "cmd": "pars mf", "description": "field [T]"},
{"path": "sr", "type": "float", "readonly": false, "cmd": "pars sr", "description": "rotaion angle [deg]"}]]

View File

@ -1,6 +0,0 @@
["pdyn", [{"path": "", "type": "float", "kids": 5},
{"path": "send", "type": "text", "readonly": false, "cmd": "pdyn send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "set", "type": "float", "readonly": false, "cmd": "pdyn set"},
{"path": "control", "type": "enum", "enum": {"OFF": 0, "ON": 1}, "readonly": false, "cmd": "pdyn control"},
{"path": "pos", "type": "float"}]]

View File

@ -1,6 +0,0 @@
["pdyn", [{"path": "", "type": "float", "kids": 5},
{"path": "send", "type": "text", "readonly": false, "cmd": "pdyn send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "set", "type": "float", "readonly": false, "cmd": "pdyn set"},
{"path": "control", "type": "enum", "enum": {"OFF": 0, "ON": 1}, "readonly": false, "cmd": "pdyn control"},
{"path": "pos", "type": "float"}]]

View File

@ -1,6 +0,0 @@
["pstat", [{"path": "", "type": "float", "kids": 5},
{"path": "send", "type": "text", "readonly": false, "cmd": "pstat send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "set", "type": "float", "readonly": false, "cmd": "pstat set"},
{"path": "control", "type": "enum", "enum": {"OFF": 0, "ON": 1}, "readonly": false, "cmd": "pstat control"},
{"path": "pos", "type": "float"}]]

View File

@ -1,6 +0,0 @@
["pstat", [{"path": "", "type": "float", "kids": 5},
{"path": "send", "type": "text", "readonly": false, "cmd": "pstat send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "set", "type": "float", "readonly": false, "cmd": "pstat set"},
{"path": "control", "type": "enum", "enum": {"OFF": 0, "ON": 1}, "readonly": false, "cmd": "pstat control"},
{"path": "pos", "type": "float"}]]

View File

@ -1,6 +0,0 @@
["pv", [{"path": "", "type": "float", "kids": 5},
{"path": "send", "type": "text", "readonly": false, "cmd": "pv send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "sp1", "type": "text"},
{"path": "sp2", "type": "text"},
{"path": "sps", "type": "text"}]]

View File

@ -1,3 +0,0 @@
["secop", [{"path": "", "type": "text", "readonly": false, "cmd": "secop", "kids": 2},
{"path": "send", "type": "text", "readonly": false, "cmd": "secop send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3}]]

View File

@ -1,29 +0,0 @@
["sorb", [{"path": "", "type": "float", "readonly": false, "cmd": "run sorb", "description": "sorb", "kids": 28},
{"path": "send", "type": "text", "readonly": false, "cmd": "sorb send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "is_running", "type": "int", "visibility": 3},
{"path": "mode", "type": "enum", "enum": {"off": 0, "on": 1}, "readonly": false, "cmd": "sorb mode"},
{"path": "reg", "type": "float"},
{"path": "output", "type": "float", "readonly": false, "cmd": "sorb output"},
{"path": "ramptime", "type": "float", "readonly": false, "cmd": "sorb ramptime", "description": "time for ramping [sec] deltax = 1 or a factor 10"},
{"path": "ramptol", "type": "float", "readonly": false, "cmd": "sorb ramptol", "description": "log of max. deviation when ramping"},
{"path": "smoothtime", "type": "float", "readonly": false, "cmd": "sorb smoothtime", "description": "time for smoothing ramp near setpoint"},
{"path": "invar", "type": "text", "readonly": false, "cmd": "sorb invar", "visibility": 3},
{"path": "outvar", "type": "text", "readonly": false, "cmd": "sorb outvar", "visibility": 3},
{"path": "prop", "type": "float", "readonly": false, "cmd": "sorb prop", "description": "smaller means more sensitive. a change of 'prop' on input -> a change of 100 % or a factor 10 on output"},
{"path": "int", "type": "float", "readonly": false, "cmd": "sorb int", "description": "integration time (sec)"},
{"path": "outmin", "type": "float", "readonly": false, "cmd": "sorb outmin", "description": "output for maximal decrease of input var."},
{"path": "outmax", "type": "float", "readonly": false, "cmd": "sorb outmax", "description": "output for maximal increase of input var."},
{"path": "inpfunction", "type": "enum", "enum": {"linear": 0, "logarithmic": 1}, "readonly": false, "cmd": "sorb inpfunction"},
{"path": "inplinear", "type": "float", "readonly": false, "cmd": "sorb inplinear", "description": "function gets linear below about this value"},
{"path": "outfunction", "type": "enum", "enum": {"linear": 0, "exponential": 1}, "readonly": false, "cmd": "sorb outfunction"},
{"path": "outlinear", "type": "float", "readonly": false, "cmd": "sorb outlinear", "description": "function gets linear below about this value"},
{"path": "precision", "type": "float", "readonly": false, "cmd": "sorb precision"},
{"path": "deadband", "type": "float", "readonly": false, "cmd": "sorb deadband"},
{"path": "maxdelta", "type": "float", "readonly": false, "cmd": "sorb maxdelta"},
{"path": "set", "type": "float", "readonly": false, "cmd": "sorb set"},
{"path": "target", "type": "float"},
{"path": "running", "type": "int"},
{"path": "tolerance", "type": "float", "readonly": false, "cmd": "sorb tolerance"},
{"path": "maxwait", "type": "float", "readonly": false, "cmd": "sorb maxwait"},
{"path": "settle", "type": "float", "readonly": false, "cmd": "sorb settle"}]]

View File

@ -1,18 +0,0 @@
["table", [{"path": "", "type": "none", "kids": 17},
{"path": "send", "type": "text", "readonly": false, "cmd": "table send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "fix_tt_set_prop", "type": "bool", "readonly": false, "cmd": "table fix_tt_set_prop"},
{"path": "val_tt_set_prop", "type": "float"},
{"path": "tbl_tt_set_prop", "type": "text", "readonly": false, "cmd": "table tbl_tt_set_prop", "description": "enter value pair separated with colon T1:par1 T2:par2 ..."},
{"path": "fix_tt_set_integ", "type": "bool", "readonly": false, "cmd": "table fix_tt_set_integ"},
{"path": "val_tt_set_integ", "type": "float"},
{"path": "tbl_tt_set_integ", "type": "text", "readonly": false, "cmd": "table tbl_tt_set_integ", "description": "enter value pair separated with colon T1:par1 T2:par2 ..."},
{"path": "fix_tt_dblctrl_int2", "type": "bool", "readonly": false, "cmd": "table fix_tt_dblctrl_int2"},
{"path": "val_tt_dblctrl_int2", "type": "float"},
{"path": "tbl_tt_dblctrl_int2", "type": "text", "readonly": false, "cmd": "table tbl_tt_dblctrl_int2", "description": "enter value pair separated with colon T1:par1 T2:par2 ..."},
{"path": "fix_tt_dblctrl_prop_up", "type": "bool", "readonly": false, "cmd": "table fix_tt_dblctrl_prop_up"},
{"path": "val_tt_dblctrl_prop_up", "type": "float"},
{"path": "tbl_tt_dblctrl_prop_up", "type": "text", "readonly": false, "cmd": "table tbl_tt_dblctrl_prop_up", "description": "enter value pair separated with colon T1:par1 T2:par2 ..."},
{"path": "fix_tt_dblctrl_prop_lo", "type": "bool", "readonly": false, "cmd": "table fix_tt_dblctrl_prop_lo"},
{"path": "val_tt_dblctrl_prop_lo", "type": "float"},
{"path": "tbl_tt_dblctrl_prop_lo", "type": "text", "readonly": false, "cmd": "table tbl_tt_dblctrl_prop_lo", "description": "enter value pair separated with colon T1:par1 T2:par2 ..."}]]

View File

@ -1,42 +0,0 @@
["tcoil", [{"path": "", "type": "float", "kids": 11},
{"path": "send", "type": "text", "readonly": false, "cmd": "tcoil send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "excitation", "type": "float", "readonly": false, "cmd": "tcoil excitation", "visibility": 3},
{"path": "td", "type": "float", "visibility": 3, "kids": 3},
{"path": "td/enable", "type": "bool", "readonly": false, "cmd": "tcoil td/enable"},
{"path": "td/r", "type": "float"},
{"path": "td/curve", "type": "text", "readonly": false, "cmd": "tcoil td/curve", "kids": 3},
{"path": "td/curve/adjust", "type": "text", "readonly": false, "cmd": "tcoil td/curve/adjust"},
{"path": "td/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tcoil td/curve/points"},
{"path": "td/curve/cpoints", "type": "floatvarar", "readonly": false, "cmd": "tcoil td/curve/cpoints"},
{"path": "tc", "type": "float", "visibility": 3, "kids": 3},
{"path": "tc/enable", "type": "bool", "readonly": false, "cmd": "tcoil tc/enable"},
{"path": "tc/r", "type": "float"},
{"path": "tc/curve", "type": "text", "readonly": false, "cmd": "tcoil tc/curve", "kids": 3},
{"path": "tc/curve/adjust", "type": "text", "readonly": false, "cmd": "tcoil tc/curve/adjust"},
{"path": "tc/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tcoil tc/curve/points"},
{"path": "tc/curve/cpoints", "type": "floatvarar", "readonly": false, "cmd": "tcoil tc/curve/cpoints"},
{"path": "tb", "type": "float", "visibility": 3, "kids": 3},
{"path": "tb/enable", "type": "bool", "readonly": false, "cmd": "tcoil tb/enable"},
{"path": "tb/r", "type": "float"},
{"path": "tb/curve", "type": "text", "readonly": false, "cmd": "tcoil tb/curve", "kids": 3},
{"path": "tb/curve/adjust", "type": "text", "readonly": false, "cmd": "tcoil tb/curve/adjust"},
{"path": "tb/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tcoil tb/curve/points"},
{"path": "tb/curve/cpoints", "type": "floatvarar", "readonly": false, "cmd": "tcoil tb/curve/cpoints"},
{"path": "ta", "type": "float", "visibility": 3, "kids": 3},
{"path": "ta/enable", "type": "bool", "readonly": false, "cmd": "tcoil ta/enable"},
{"path": "ta/r", "type": "float"},
{"path": "ta/curve", "type": "text", "readonly": false, "cmd": "tcoil ta/curve", "kids": 3},
{"path": "ta/curve/adjust", "type": "text", "readonly": false, "cmd": "tcoil ta/curve/adjust"},
{"path": "ta/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tcoil ta/curve/points"},
{"path": "ta/curve/cpoints", "type": "floatvarar", "readonly": false, "cmd": "tcoil ta/curve/cpoints"},
{"path": "ref", "type": "float", "visibility": 3, "kids": 3},
{"path": "ref/enable", "type": "bool", "readonly": false, "cmd": "tcoil ref/enable"},
{"path": "ref/r", "type": "float"},
{"path": "ref/curve", "type": "text", "readonly": false, "cmd": "tcoil ref/curve", "kids": 3},
{"path": "ref/curve/adjust", "type": "text", "readonly": false, "cmd": "tcoil ref/curve/adjust"},
{"path": "ref/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tcoil ref/curve/points"},
{"path": "ref/curve/cpoints", "type": "floatvarar", "readonly": false, "cmd": "tcoil ref/curve/cpoints"},
{"path": "ext", "type": "float", "visibility": 3},
{"path": "com", "type": "float", "visibility": 3},
{"path": "gnd", "type": "float", "visibility": 3}]]

View File

@ -1,4 +0,0 @@
["tcoil", [{"path": "", "type": "float", "kids": 3},
{"path": "send", "type": "text", "readonly": false, "cmd": "tcoil send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "raw", "type": "float"}]]

View File

@ -1,17 +0,0 @@
[node test_secop4.psi.ch]
description = test_secop4 over SEA
[interface tcp]
type = tcp
bindport = 10767
[module seaconn]
class = secop_psi.sea.SeaClient
description = a SEA connection
uri = tcp://samenv.psi.ch:8642
[module secop]
class = secop_psi.sea.SeaReadable
io = seaconn
json_descr = secop.test_secop4.config
remote_paths = .

View File

@ -1,107 +0,0 @@
["tmon", [{"path": "", "type": "int", "kids": 12},
{"path": "send", "type": "text", "readonly": false, "cmd": "tmon send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "autoscan", "type": "bool", "readonly": false, "cmd": "tmon autoscan", "kids": 4},
{"path": "autoscan/synchronized", "type": "bool", "readonly": false, "cmd": "tmon autoscan/synchronized"},
{"path": "autoscan/interval", "type": "text", "readonly": false, "cmd": "tmon autoscan/interval"},
{"path": "autoscan/pause", "type": "text", "readonly": false, "cmd": "tmon autoscan/pause"},
{"path": "autoscan/dwell", "type": "text", "readonly": false, "cmd": "tmon autoscan/dwell"},
{"path": "sorb", "type": "float", "kids": 14},
{"path": "sorb/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "tmon sorb/active"},
{"path": "sorb/autorange", "type": "bool", "readonly": false, "cmd": "tmon sorb/autorange", "description": "autorange (common for all channels)"},
{"path": "sorb/range", "type": "text", "readonly": false, "cmd": "tmon sorb/range", "description": "resistance range in Ohm"},
{"path": "sorb/range_num", "type": "int"},
{"path": "sorb/excitation", "type": "text", "readonly": false, "cmd": "tmon sorb/excitation", "description": "excitation with unit, i.e. 2uV or 3pA"},
{"path": "sorb/excitation_num", "type": "int"},
{"path": "sorb/excitation_mode", "type": "enum", "enum": {"voltage": 0, "current": 1, "off": 2}},
{"path": "sorb/pause", "type": "int", "readonly": false, "cmd": "tmon sorb/pause", "description": "pause time [sec] after channel change"},
{"path": "sorb/filter", "type": "int", "readonly": false, "cmd": "tmon sorb/filter", "description": "filter average time [sec]"},
{"path": "sorb/dwell", "type": "int", "readonly": false, "cmd": "tmon sorb/dwell", "description": "dwell time [sec]. Total time per channel: pause + filter + dwell"},
{"path": "sorb/status", "type": "text"},
{"path": "sorb/curve", "type": "text", "readonly": false, "cmd": "tmon sorb/curve", "kids": 1},
{"path": "sorb/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tmon sorb/curve/points", "visibility": 3},
{"path": "sorb/alarm", "type": "float", "readonly": false, "cmd": "tmon sorb/alarm"},
{"path": "sorb/raw", "type": "float"},
{"path": "onek", "type": "float", "kids": 14},
{"path": "onek/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "tmon onek/active"},
{"path": "onek/autorange", "type": "bool", "readonly": false, "cmd": "tmon onek/autorange", "description": "autorange (common for all channels)"},
{"path": "onek/range", "type": "text", "readonly": false, "cmd": "tmon onek/range", "description": "resistance range in Ohm"},
{"path": "onek/range_num", "type": "int"},
{"path": "onek/excitation", "type": "text", "readonly": false, "cmd": "tmon onek/excitation", "description": "excitation with unit, i.e. 2uV or 3pA"},
{"path": "onek/excitation_num", "type": "int"},
{"path": "onek/excitation_mode", "type": "enum", "enum": {"voltage": 0, "current": 1, "off": 2}},
{"path": "onek/pause", "type": "int", "readonly": false, "cmd": "tmon onek/pause", "description": "pause time [sec] after channel change"},
{"path": "onek/filter", "type": "int", "readonly": false, "cmd": "tmon onek/filter", "description": "filter average time [sec]"},
{"path": "onek/dwell", "type": "int", "readonly": false, "cmd": "tmon onek/dwell", "description": "dwell time [sec]. Total time per channel: pause + filter + dwell"},
{"path": "onek/status", "type": "text"},
{"path": "onek/curve", "type": "text", "readonly": false, "cmd": "tmon onek/curve", "kids": 1},
{"path": "onek/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tmon onek/curve/points", "visibility": 3},
{"path": "onek/alarm", "type": "float", "readonly": false, "cmd": "tmon onek/alarm"},
{"path": "onek/raw", "type": "float"},
{"path": "stillt", "type": "float", "kids": 14},
{"path": "stillt/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "tmon stillt/active"},
{"path": "stillt/autorange", "type": "bool", "readonly": false, "cmd": "tmon stillt/autorange", "description": "autorange (common for all channels)"},
{"path": "stillt/range", "type": "text", "readonly": false, "cmd": "tmon stillt/range", "description": "resistance range in Ohm"},
{"path": "stillt/range_num", "type": "int"},
{"path": "stillt/excitation", "type": "text", "readonly": false, "cmd": "tmon stillt/excitation", "description": "excitation with unit, i.e. 2uV or 3pA"},
{"path": "stillt/excitation_num", "type": "int"},
{"path": "stillt/excitation_mode", "type": "enum", "enum": {"voltage": 0, "current": 1, "off": 2}},
{"path": "stillt/pause", "type": "int", "readonly": false, "cmd": "tmon stillt/pause", "description": "pause time [sec] after channel change"},
{"path": "stillt/filter", "type": "int", "readonly": false, "cmd": "tmon stillt/filter", "description": "filter average time [sec]"},
{"path": "stillt/dwell", "type": "int", "readonly": false, "cmd": "tmon stillt/dwell", "description": "dwell time [sec]. Total time per channel: pause + filter + dwell"},
{"path": "stillt/status", "type": "text"},
{"path": "stillt/curve", "type": "text", "readonly": false, "cmd": "tmon stillt/curve", "kids": 1},
{"path": "stillt/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tmon stillt/curve/points", "visibility": 3},
{"path": "stillt/alarm", "type": "float", "readonly": false, "cmd": "tmon stillt/alarm"},
{"path": "stillt/raw", "type": "float"},
{"path": "sample", "type": "float", "kids": 14},
{"path": "sample/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "tmon sample/active"},
{"path": "sample/autorange", "type": "bool", "readonly": false, "cmd": "tmon sample/autorange", "description": "autorange (common for all channels)"},
{"path": "sample/range", "type": "text", "readonly": false, "cmd": "tmon sample/range", "description": "resistance range in Ohm"},
{"path": "sample/range_num", "type": "int"},
{"path": "sample/excitation", "type": "text", "readonly": false, "cmd": "tmon sample/excitation", "description": "excitation with unit, i.e. 2uV or 3pA"},
{"path": "sample/excitation_num", "type": "int"},
{"path": "sample/excitation_mode", "type": "enum", "enum": {"voltage": 0, "current": 1, "off": 2}},
{"path": "sample/pause", "type": "int", "readonly": false, "cmd": "tmon sample/pause", "description": "pause time [sec] after channel change"},
{"path": "sample/filter", "type": "int", "readonly": false, "cmd": "tmon sample/filter", "description": "filter average time [sec]"},
{"path": "sample/dwell", "type": "int", "readonly": false, "cmd": "tmon sample/dwell", "description": "dwell time [sec]. Total time per channel: pause + filter + dwell"},
{"path": "sample/status", "type": "text"},
{"path": "sample/curve", "type": "text", "readonly": false, "cmd": "tmon sample/curve", "kids": 1},
{"path": "sample/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tmon sample/curve/points", "visibility": 3},
{"path": "sample/alarm", "type": "float", "readonly": false, "cmd": "tmon sample/alarm"},
{"path": "sample/raw", "type": "float"},
{"path": "samplehtr", "type": "float", "kids": 14},
{"path": "samplehtr/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "tmon samplehtr/active"},
{"path": "samplehtr/autorange", "type": "bool", "readonly": false, "cmd": "tmon samplehtr/autorange", "description": "autorange (common for all channels)"},
{"path": "samplehtr/range", "type": "text", "readonly": false, "cmd": "tmon samplehtr/range", "description": "resistance range in Ohm"},
{"path": "samplehtr/range_num", "type": "int"},
{"path": "samplehtr/excitation", "type": "text", "readonly": false, "cmd": "tmon samplehtr/excitation", "description": "excitation with unit, i.e. 2uV or 3pA"},
{"path": "samplehtr/excitation_num", "type": "int"},
{"path": "samplehtr/excitation_mode", "type": "enum", "enum": {"voltage": 0, "current": 1, "off": 2}},
{"path": "samplehtr/pause", "type": "int", "readonly": false, "cmd": "tmon samplehtr/pause", "description": "pause time [sec] after channel change"},
{"path": "samplehtr/filter", "type": "int", "readonly": false, "cmd": "tmon samplehtr/filter", "description": "filter average time [sec]"},
{"path": "samplehtr/dwell", "type": "int", "readonly": false, "cmd": "tmon samplehtr/dwell", "description": "dwell time [sec]. Total time per channel: pause + filter + dwell"},
{"path": "samplehtr/status", "type": "text"},
{"path": "samplehtr/curve", "type": "text", "readonly": false, "cmd": "tmon samplehtr/curve", "kids": 1},
{"path": "samplehtr/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tmon samplehtr/curve/points", "visibility": 3},
{"path": "samplehtr/alarm", "type": "float", "readonly": false, "cmd": "tmon samplehtr/alarm"},
{"path": "samplehtr/raw", "type": "float"},
{"path": "mix", "type": "float", "kids": 14},
{"path": "mix/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "tmon mix/active"},
{"path": "mix/autorange", "type": "bool", "readonly": false, "cmd": "tmon mix/autorange", "description": "autorange (common for all channels)"},
{"path": "mix/range", "type": "text", "readonly": false, "cmd": "tmon mix/range", "description": "resistance range in Ohm"},
{"path": "mix/range_num", "type": "int"},
{"path": "mix/excitation", "type": "text", "readonly": false, "cmd": "tmon mix/excitation", "description": "excitation with unit, i.e. 2uV or 3pA"},
{"path": "mix/excitation_num", "type": "int"},
{"path": "mix/excitation_mode", "type": "enum", "enum": {"voltage": 0, "current": 1, "off": 2}},
{"path": "mix/pause", "type": "int", "readonly": false, "cmd": "tmon mix/pause", "description": "pause time [sec] after channel change"},
{"path": "mix/filter", "type": "int", "readonly": false, "cmd": "tmon mix/filter", "description": "filter average time [sec]"},
{"path": "mix/dwell", "type": "int", "readonly": false, "cmd": "tmon mix/dwell", "description": "dwell time [sec]. Total time per channel: pause + filter + dwell"},
{"path": "mix/status", "type": "text"},
{"path": "mix/curve", "type": "text", "readonly": false, "cmd": "tmon mix/curve", "kids": 1},
{"path": "mix/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tmon mix/curve/points", "visibility": 3},
{"path": "mix/alarm", "type": "float", "readonly": false, "cmd": "tmon mix/alarm"},
{"path": "mix/raw", "type": "float"},
{"path": "analog2", "type": "float", "readonly": false, "cmd": "tmon analog2"},
{"path": "remote", "type": "bool"},
{"path": "display", "type": "text", "readonly": false, "cmd": "tmon display"}]]

View File

@ -1,4 +0,0 @@
["tneck1", [{"path": "", "type": "float", "kids": 3},
{"path": "send", "type": "text", "readonly": false, "cmd": "tneck1 send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "raw", "type": "float"}]]

View File

@ -1,8 +0,0 @@
["tneck1", [{"path": "", "type": "float", "kids": 7},
{"path": "send", "type": "text", "readonly": false, "cmd": "tneck1 send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "raw", "type": "float"},
{"path": "set", "type": "float", "readonly": false, "cmd": "tneck1 set"},
{"path": "control", "type": "enum", "enum": {"OFF": 0, "ON": 1}, "readonly": false, "cmd": "tneck1 control"},
{"path": "htr", "type": "float"},
{"path": "pow", "type": "float"}]]

View File

@ -1,4 +0,0 @@
["tneck2", [{"path": "", "type": "float", "kids": 3},
{"path": "send", "type": "text", "readonly": false, "cmd": "tneck2 send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "raw", "type": "float"}]]

View File

@ -1,8 +0,0 @@
["tneck2", [{"path": "", "type": "float", "kids": 7},
{"path": "send", "type": "text", "readonly": false, "cmd": "tneck2 send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "raw", "type": "float"},
{"path": "set", "type": "float", "readonly": false, "cmd": "tneck2 set"},
{"path": "control", "type": "enum", "enum": {"OFF": 0, "ON": 1}, "readonly": false, "cmd": "tneck2 control"},
{"path": "htr", "type": "float"},
{"path": "pow", "type": "float"}]]

View File

@ -1,4 +0,0 @@
["tnvd", [{"path": "", "type": "float", "kids": 3},
{"path": "send", "type": "text", "readonly": false, "cmd": "tnvd send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "raw", "type": "float"}]]

View File

@ -1,8 +0,0 @@
["tnvd", [{"path": "", "type": "float", "kids": 7},
{"path": "send", "type": "text", "readonly": false, "cmd": "tnvd send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "raw", "type": "float"},
{"path": "set", "type": "float", "readonly": false, "cmd": "tnvd set"},
{"path": "control", "type": "enum", "enum": {"OFF": 0, "ON": 1}, "readonly": false, "cmd": "tnvd control"},
{"path": "htr", "type": "float"},
{"path": "pow", "type": "float"}]]

View File

@ -1,4 +0,0 @@
["tnvs", [{"path": "", "type": "float", "kids": 3},
{"path": "send", "type": "text", "readonly": false, "cmd": "tnvs send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "raw", "type": "float"}]]

View File

@ -1,8 +0,0 @@
["tnvs", [{"path": "", "type": "float", "kids": 7},
{"path": "send", "type": "text", "readonly": false, "cmd": "tnvs send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "raw", "type": "float"},
{"path": "set", "type": "float", "readonly": false, "cmd": "tnvs set"},
{"path": "control", "type": "enum", "enum": {"OFF": 0, "ON": 1}, "readonly": false, "cmd": "tnvs control"},
{"path": "htr", "type": "float"},
{"path": "pow", "type": "float"}]]

View File

@ -1,78 +0,0 @@
["treg", [{"path": "", "type": "int", "kids": 10},
{"path": "send", "type": "text", "readonly": false, "cmd": "treg send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "autoscan", "type": "bool", "readonly": false, "cmd": "treg autoscan", "kids": 4},
{"path": "autoscan/synchronized", "type": "bool", "readonly": false, "cmd": "treg autoscan/synchronized"},
{"path": "autoscan/interval", "type": "text", "readonly": false, "cmd": "treg autoscan/interval"},
{"path": "autoscan/pause", "type": "text", "readonly": false, "cmd": "treg autoscan/pause"},
{"path": "autoscan/dwell", "type": "text", "readonly": false, "cmd": "treg autoscan/dwell"},
{"path": "sample", "type": "float", "kids": 14},
{"path": "sample/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "treg sample/active"},
{"path": "sample/autorange", "type": "bool", "readonly": false, "cmd": "treg sample/autorange", "description": "autorange (common for all channels)"},
{"path": "sample/range", "type": "text", "readonly": false, "cmd": "treg sample/range", "description": "resistance range in Ohm"},
{"path": "sample/range_num", "type": "int"},
{"path": "sample/excitation", "type": "text", "readonly": false, "cmd": "treg sample/excitation", "description": "excitation with unit, i.e. 2uV or 3pA"},
{"path": "sample/excitation_num", "type": "int"},
{"path": "sample/excitation_mode", "type": "enum", "enum": {"voltage": 0, "current": 1, "off": 2}},
{"path": "sample/pause", "type": "int", "readonly": false, "cmd": "treg sample/pause", "description": "pause time [sec] after channel change"},
{"path": "sample/filter", "type": "int", "readonly": false, "cmd": "treg sample/filter", "description": "filter average time [sec]"},
{"path": "sample/dwell", "type": "int", "readonly": false, "cmd": "treg sample/dwell", "description": "dwell time [sec]. Total time per channel: pause + filter + dwell"},
{"path": "sample/status", "type": "text"},
{"path": "sample/curve", "type": "text", "readonly": false, "cmd": "treg sample/curve", "kids": 1},
{"path": "sample/curve/points", "type": "floatvarar", "readonly": false, "cmd": "treg sample/curve/points", "visibility": 3},
{"path": "sample/alarm", "type": "float", "readonly": false, "cmd": "treg sample/alarm"},
{"path": "sample/raw", "type": "float"},
{"path": "mix", "type": "float", "kids": 14},
{"path": "mix/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "treg mix/active"},
{"path": "mix/autorange", "type": "bool", "readonly": false, "cmd": "treg mix/autorange", "description": "autorange (common for all channels)"},
{"path": "mix/range", "type": "text", "readonly": false, "cmd": "treg mix/range", "description": "resistance range in Ohm"},
{"path": "mix/range_num", "type": "int"},
{"path": "mix/excitation", "type": "text", "readonly": false, "cmd": "treg mix/excitation", "description": "excitation with unit, i.e. 2uV or 3pA"},
{"path": "mix/excitation_num", "type": "int"},
{"path": "mix/excitation_mode", "type": "enum", "enum": {"voltage": 0, "current": 1, "off": 2}},
{"path": "mix/pause", "type": "int", "readonly": false, "cmd": "treg mix/pause", "description": "pause time [sec] after channel change"},
{"path": "mix/filter", "type": "int", "readonly": false, "cmd": "treg mix/filter", "description": "filter average time [sec]"},
{"path": "mix/dwell", "type": "int", "readonly": false, "cmd": "treg mix/dwell", "description": "dwell time [sec]. Total time per channel: pause + filter + dwell"},
{"path": "mix/status", "type": "text"},
{"path": "mix/curve", "type": "text", "readonly": false, "cmd": "treg mix/curve", "kids": 1},
{"path": "mix/curve/points", "type": "floatvarar", "readonly": false, "cmd": "treg mix/curve/points", "visibility": 3},
{"path": "mix/alarm", "type": "float", "readonly": false, "cmd": "treg mix/alarm"},
{"path": "mix/raw", "type": "float"},
{"path": "samplehtr", "type": "float", "kids": 14},
{"path": "samplehtr/active", "type": "enum", "enum": {"inactive": 0, "active": 1}, "readonly": false, "cmd": "treg samplehtr/active"},
{"path": "samplehtr/autorange", "type": "bool", "readonly": false, "cmd": "treg samplehtr/autorange", "description": "autorange (common for all channels)"},
{"path": "samplehtr/range", "type": "text", "readonly": false, "cmd": "treg samplehtr/range", "description": "resistance range in Ohm"},
{"path": "samplehtr/range_num", "type": "int"},
{"path": "samplehtr/excitation", "type": "text", "readonly": false, "cmd": "treg samplehtr/excitation", "description": "excitation with unit, i.e. 2uV or 3pA"},
{"path": "samplehtr/excitation_num", "type": "int"},
{"path": "samplehtr/excitation_mode", "type": "enum", "enum": {"voltage": 0, "current": 1, "off": 2}},
{"path": "samplehtr/pause", "type": "int", "readonly": false, "cmd": "treg samplehtr/pause", "description": "pause time [sec] after channel change"},
{"path": "samplehtr/filter", "type": "int", "readonly": false, "cmd": "treg samplehtr/filter", "description": "filter average time [sec]"},
{"path": "samplehtr/dwell", "type": "int", "readonly": false, "cmd": "treg samplehtr/dwell", "description": "dwell time [sec]. Total time per channel: pause + filter + dwell"},
{"path": "samplehtr/status", "type": "text"},
{"path": "samplehtr/curve", "type": "text", "readonly": false, "cmd": "treg samplehtr/curve", "kids": 1},
{"path": "samplehtr/curve/points", "type": "floatvarar", "readonly": false, "cmd": "treg samplehtr/curve/points", "visibility": 3},
{"path": "samplehtr/alarm", "type": "float", "readonly": false, "cmd": "treg samplehtr/alarm"},
{"path": "samplehtr/raw", "type": "float"},
{"path": "set", "type": "float", "readonly": false, "cmd": "treg set", "kids": 18},
{"path": "set/mode", "type": "enum", "enum": {"disabled": -1, "off": 0, "controlling": 1, "manual": 2}, "readonly": false, "cmd": "treg set/mode"},
{"path": "set/reg", "type": "float"},
{"path": "set/ramp", "type": "float", "readonly": false, "cmd": "treg set/ramp", "description": "maximum ramp in K/min (0: ramp off)"},
{"path": "set/wramp", "type": "float", "readonly": false, "cmd": "treg set/wramp"},
{"path": "set/smooth", "type": "float", "readonly": false, "cmd": "treg set/smooth", "description": "smooth time (minutes)"},
{"path": "set/channel", "type": "text", "readonly": false, "cmd": "treg set/channel"},
{"path": "set/limit", "type": "float", "readonly": false, "cmd": "treg set/limit"},
{"path": "set/resist", "type": "float", "readonly": false, "cmd": "treg set/resist"},
{"path": "set/maxheater", "type": "text", "readonly": false, "cmd": "treg set/maxheater", "description": "maximum heater limit, units should be given without space: W, mW, A, mA"},
{"path": "set/linearpower", "type": "float", "readonly": false, "cmd": "treg set/linearpower", "description": "when not 0, it is the maximum effective power, and the power is linear to the heater output"},
{"path": "set/maxpowerlim", "type": "float", "description": "the maximum power limit (before any booster or converter)"},
{"path": "set/maxpower", "type": "float", "readonly": false, "cmd": "treg set/maxpower", "description": "maximum power [W]"},
{"path": "set/maxcurrent", "type": "float", "description": "the maximum current before any booster or converter"},
{"path": "set/manualpower", "type": "float", "readonly": false, "cmd": "treg set/manualpower"},
{"path": "set/power", "type": "float"},
{"path": "set/prop", "type": "float", "readonly": false, "cmd": "treg set/prop", "description": "bigger means more gain"},
{"path": "set/integ", "type": "float", "readonly": false, "cmd": "treg set/integ", "description": "[sec] bigger means slower"},
{"path": "set/deriv", "type": "float", "readonly": false, "cmd": "treg set/deriv"},
{"path": "analog2", "type": "float", "readonly": false, "cmd": "treg analog2"},
{"path": "remote", "type": "bool"},
{"path": "display", "type": "text", "readonly": false, "cmd": "treg display"}]]

View File

@ -1,58 +0,0 @@
["ts", [{"path": "", "type": "float", "readonly": false, "cmd": "run ts", "description": "ts", "kids": 19},
{"path": "send", "type": "text", "readonly": false, "cmd": "ts send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "is_running", "type": "int", "visibility": 3},
{"path": "set", "type": "float", "readonly": false, "cmd": "ts set", "visibility": 3},
{"path": "target", "type": "float"},
{"path": "running", "type": "int"},
{"path": "tolerance", "type": "float", "readonly": false, "cmd": "ts tolerance"},
{"path": "maxwait", "type": "float", "readonly": false, "cmd": "ts maxwait"},
{"path": "settle", "type": "float", "readonly": false, "cmd": "ts settle"},
{"path": "log", "type": "text", "readonly": false, "cmd": "ts log", "visibility": 3, "kids": 4},
{"path": "log/mean", "type": "float", "visibility": 3},
{"path": "log/m2", "type": "float", "visibility": 3},
{"path": "log/stddev", "type": "float", "visibility": 3},
{"path": "log/n", "type": "float", "visibility": 3},
{"path": "ramp", "type": "float", "readonly": false, "cmd": "ts ramp", "description": "ramp [K/min]"},
{"path": "heaterselect", "type": "enum", "enum": {"sample": 0, "mix": 1, "mix(temporarely)": 2}, "readonly": false, "cmd": "ts heaterselect"},
{"path": "control", "type": "enum", "enum": {"off": 0, "sample": 6, "mix": 5}, "readonly": false, "cmd": "ts control", "description": "click off to reload list"},
{"path": "heatermode", "type": "enum", "enum": {"disabled": -1, "off": 0, "on": 1}, "readonly": false, "cmd": "ts heatermode"},
{"path": "heaterrange", "type": "enum", "enum": {"2uW": 1, "20uW": 2, "200uW": 3, "2mW": 4, "20mW": 5}, "readonly": false, "cmd": "ts heaterrange"},
{"path": "autoheater", "type": "bool", "readonly": false, "cmd": "ts autoheater", "description": "automatic heater range", "kids": 12},
{"path": "autoheater/wlp0", "type": "float", "readonly": false, "cmd": "ts autoheater/wlp0", "description": "weak link base temperature (used for auto heater)", "visibility": 3},
{"path": "autoheater/wlp1", "type": "float", "readonly": false, "cmd": "ts autoheater/wlp1", "description": "weak link temperature at 1 uW (used for auto heater)", "visibility": 3},
{"path": "autoheater/wlp2", "type": "float", "readonly": false, "cmd": "ts autoheater/wlp2", "description": "weak link temperature at 10 uW (used for auto heater)", "visibility": 3},
{"path": "autoheater/wlp3", "type": "float", "readonly": false, "cmd": "ts autoheater/wlp3", "description": "weak link temperature at 100 uW (used for auto heater)", "visibility": 3},
{"path": "autoheater/wlp4", "type": "float", "readonly": false, "cmd": "ts autoheater/wlp4", "description": "weak link temperature at 1 mW (used for auto heater)", "visibility": 3},
{"path": "autoheater/mxp0", "type": "float", "readonly": false, "cmd": "ts autoheater/mxp0", "description": "weak link base temperature (used for auto heater)"},
{"path": "autoheater/mxp1", "type": "float", "readonly": false, "cmd": "ts autoheater/mxp1", "description": "mix.ch. temperature at 1 uW (used for auto heater)"},
{"path": "autoheater/mxp2", "type": "float", "readonly": false, "cmd": "ts autoheater/mxp2", "description": "mix.ch. temperature at 10 uW (used for auto heater)"},
{"path": "autoheater/mxp3", "type": "float", "readonly": false, "cmd": "ts autoheater/mxp3", "description": "mix.ch. temperature at 100 uW (used for auto heater)"},
{"path": "autoheater/mxp4", "type": "float", "readonly": false, "cmd": "ts autoheater/mxp4", "description": "mix.ch. temperature at 1 mW (used for auto heater)"},
{"path": "autoheater/switchdown", "type": "float", "readonly": false, "cmd": "ts autoheater/switchdown", "description": "percentage for auto heater switch down"},
{"path": "autoheater/switchup", "type": "float", "readonly": false, "cmd": "ts autoheater/switchup", "description": "when the calculated power is above this percentage, use higher range"},
{"path": "autoprop", "type": "bool", "readonly": false, "cmd": "ts autoprop", "description": "change prop value depending on actual power", "kids": 2},
{"path": "autoprop/prop", "type": "float", "readonly": false, "cmd": "ts autoprop/prop", "description": "prop value (maximum prop value when autheater is on)"},
{"path": "autoprop/integ", "type": "float", "readonly": false, "cmd": "ts autoprop/integ", "description": "integral value [sec], deriv is set to 0 on change"},
{"path": "instructions", "type": "text"},
{"path": "auto", "type": "enum", "enum": {"off": 0, "cool_vti": 1, "pipe_pump": 11, "pipes_ready": 12, "ready_for_sorbpump": 2, "sorb_pump": 3, "condense": 4, "circulate": 5, "remove_only": 60, "remove_and_warmup": 62, "remove_and_condense": 61, "remove_and_sorbpump": 63, "finished": 7}, "readonly": false, "cmd": "ts auto", "kids": 20},
{"path": "auto/usetrap", "type": "enum", "enum": {"trap_A": 0, "trap_B": 1}, "readonly": false, "cmd": "ts auto/usetrap"},
{"path": "auto/hasturbo", "type": "bool"},
{"path": "auto/pipes_pumped", "type": "bool", "readonly": false, "cmd": "ts auto/pipes_pumped"},
{"path": "auto/cool_crit", "type": "text", "readonly": false, "cmd": "ts auto/cool_crit", "description": "criterium for transition to ready_for_sorbpump"},
{"path": "auto/pumptime1", "type": "float", "readonly": false, "cmd": "ts auto/pumptime1", "description": "pump time [sec] while sorb at 40"},
{"path": "auto/pumptime2", "type": "float", "readonly": false, "cmd": "ts auto/pumptime2", "description": "pump time [sec] while sorb cools down"},
{"path": "auto/condensep", "type": "float", "readonly": false, "cmd": "ts auto/condensep"},
{"path": "auto/dumptarget", "type": "float", "readonly": false, "cmd": "ts auto/dumptarget"},
{"path": "auto/condenseflow", "type": "float", "readonly": false, "cmd": "ts auto/condenseflow", "description": "VTI flow for condensing and min. flow for cooling"},
{"path": "auto/circulateflow", "type": "float", "readonly": false, "cmd": "ts auto/circulateflow", "description": "VTI flow for circulating (may be changed during circulation)"},
{"path": "auto/onekstate", "type": "enum", "enum": {"normal": 0, "fill": 1, "optimize": 2}, "readonly": false, "cmd": "ts auto/onekstate"},
{"path": "auto/oneklimit", "type": "float", "readonly": false, "cmd": "ts auto/oneklimit"},
{"path": "auto/minflow", "type": "float", "readonly": false, "cmd": "ts auto/minflow", "description": "minimum VTI flow (optimize stops at this value)"},
{"path": "auto/p1low", "type": "float", "readonly": false, "cmd": "ts auto/p1low", "description": "p1 value indicating a negligible mixture amount"},
{"path": "auto/p2low", "type": "float", "readonly": false, "cmd": "ts auto/p2low", "description": "p2 value indicating a good vacuum"},
{"path": "auto/warmup_t", "type": "float", "readonly": false, "cmd": "ts auto/warmup_t", "description": "VTI temperature to reach when remove_and_warmup"},
{"path": "auto/vti_t", "type": "float", "readonly": false, "cmd": "ts auto/vti_t", "description": "VTI temperature to reach when remove_only"},
{"path": "auto/xgas", "type": "enum", "enum": {"pump": 0, "add": 1, "empty": 2}, "readonly": false, "cmd": "ts auto/xgas"},
{"path": "auto/xgas_pulse", "type": "float", "readonly": false, "cmd": "ts auto/xgas_pulse", "description": "opening time for xgas capillary [sec]"},
{"path": "auto/removephase", "type": "enum", "enum": {"raw_remove": 0, "wait_p1_low": 1, "wait_v6_open": 2, "wait_a_little": 3, "wait_v6_closed": 4, "wait_t_warmup": 5}, "readonly": false, "cmd": "ts auto/removephase"}]]

View File

@ -1,8 +0,0 @@
["ts", [{"path": "", "type": "float", "kids": 7},
{"path": "send", "type": "text", "readonly": false, "cmd": "ts send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "raw", "type": "float"},
{"path": "set", "type": "float", "readonly": false, "cmd": "ts set"},
{"path": "control", "type": "enum", "enum": {"OFF": 0, "ON": 1}, "readonly": false, "cmd": "ts control"},
{"path": "htr", "type": "float"},
{"path": "pow", "type": "float"}]]

View File

@ -1,8 +0,0 @@
["ts", [{"path": "", "type": "float", "kids": 7},
{"path": "send", "type": "text", "readonly": false, "cmd": "ts send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "raw", "type": "float"},
{"path": "set", "type": "float", "readonly": false, "cmd": "ts set"},
{"path": "control", "type": "enum", "enum": {"OFF": 0, "ON": 1}, "readonly": false, "cmd": "ts control"},
{"path": "htr", "type": "float"},
{"path": "pow", "type": "float"}]]

View File

@ -1,58 +0,0 @@
["tt", [{"path": "", "type": "float", "readonly": false, "cmd": "run tt", "description": "tt", "kids": 37},
{"path": "send", "type": "text", "readonly": false, "cmd": "tt send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "is_running", "type": "int", "visibility": 3},
{"path": "set", "type": "float", "readonly": false, "cmd": "tt set"},
{"path": "target", "type": "float"},
{"path": "running", "type": "int"},
{"path": "tolerance", "type": "float", "readonly": false, "cmd": "tt tolerance"},
{"path": "maxwait", "type": "float", "readonly": false, "cmd": "tt maxwait"},
{"path": "settle", "type": "float", "readonly": false, "cmd": "tt settle"},
{"path": "log", "type": "text", "readonly": false, "cmd": "tt log", "visibility": 3, "kids": 4},
{"path": "log/mean", "type": "float", "visibility": 3},
{"path": "log/m2", "type": "float", "visibility": 3},
{"path": "log/stddev", "type": "float", "visibility": 3},
{"path": "log/n", "type": "float", "visibility": 3},
{"path": "t1", "type": "float", "kids": 3},
{"path": "t1/raw", "type": "float"},
{"path": "t1/curve", "type": "text", "readonly": false, "cmd": "tt t1/curve", "kids": 1},
{"path": "t1/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt t1/curve/points"},
{"path": "t1/valid", "type": "bool"},
{"path": "t2", "type": "float", "kids": 3},
{"path": "t2/raw", "type": "float"},
{"path": "t2/curve", "type": "text", "readonly": false, "cmd": "tt t2/curve", "kids": 1},
{"path": "t2/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt t2/curve/points"},
{"path": "t2/valid", "type": "bool"},
{"path": "t3", "type": "float", "kids": 3},
{"path": "t3/raw", "type": "float"},
{"path": "t3/curve", "type": "text", "readonly": false, "cmd": "tt t3/curve", "kids": 1},
{"path": "t3/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt t3/curve/points"},
{"path": "t3/valid", "type": "bool"},
{"path": "t4", "type": "float", "kids": 3},
{"path": "t4/raw", "type": "float"},
{"path": "t4/curve", "type": "text", "readonly": false, "cmd": "tt t4/curve", "kids": 1},
{"path": "t4/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt t4/curve/points"},
{"path": "t4/valid", "type": "bool"},
{"path": "tref", "type": "float"},
{"path": "tout", "type": "float"},
{"path": "ctrlmode", "type": "enum", "enum": {"ok": 0, "off": 1, "illegal_channel": 2, "no_sensor": 3, "no_flow": 4, "above_alarm": 5, "bad_vacuum": 6}, "readonly": false, "cmd": "tt ctrlmode"},
{"path": "ramp", "type": "float", "readonly": false, "cmd": "tt ramp"},
{"path": "smooth", "type": "float", "readonly": false, "cmd": "tt smooth"},
{"path": "prop", "type": "float", "readonly": false, "cmd": "tt prop"},
{"path": "int", "type": "float", "readonly": false, "cmd": "tt int"},
{"path": "powerset", "type": "float", "readonly": false, "cmd": "tt powerset"},
{"path": "power", "type": "float"},
{"path": "resist", "type": "float"},
{"path": "maxpower", "type": "float", "readonly": false, "cmd": "tt maxpower"},
{"path": "maxheater", "type": "float", "readonly": false, "cmd": "tt maxheater"},
{"path": "output", "type": "float", "readonly": false, "cmd": "tt output"},
{"path": "manualpower", "type": "bool", "readonly": false, "cmd": "tt manualpower"},
{"path": "ctrlchan", "type": "int", "readonly": false, "cmd": "tt ctrlchan"},
{"path": "interlock_state", "type": "enum", "enum": {"ok": 0, "no_waterflow": 1, "no_vacuum": 2, "no_water_no_vacuum": 3}},
{"path": "interlock_mask", "type": "enum", "enum": {"no_check": 0, "check_water_only": 1, "check_vacuum_only": 2, "check_all": 3}, "readonly": false, "cmd": "tt interlock_mask"},
{"path": "sramp", "type": "float"},
{"path": "slope", "type": "float"},
{"path": "v_htr", "type": "float"},
{"path": "i_htr", "type": "float"},
{"path": "htr", "type": "float"},
{"path": "powerprop", "type": "float"}]]

View File

@ -1,71 +0,0 @@
["tt", [{"path": "", "type": "float", "readonly": false, "cmd": "run tt", "description": "tt", "kids": 19},
{"path": "send", "type": "text", "readonly": false, "cmd": "tt send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "is_running", "type": "int", "visibility": 3},
{"path": "target", "type": "float"},
{"path": "running", "type": "int"},
{"path": "tolerance", "type": "float", "readonly": false, "cmd": "tt tolerance"},
{"path": "maxwait", "type": "float", "readonly": false, "cmd": "tt maxwait"},
{"path": "settle", "type": "float", "readonly": false, "cmd": "tt settle"},
{"path": "log", "type": "text", "readonly": false, "cmd": "tt log", "visibility": 3, "kids": 4},
{"path": "log/mean", "type": "float", "visibility": 3},
{"path": "log/m2", "type": "float", "visibility": 3},
{"path": "log/stddev", "type": "float", "visibility": 3},
{"path": "log/n", "type": "float", "visibility": 3},
{"path": "dblctrl", "type": "bool", "readonly": false, "cmd": "tt dblctrl", "kids": 9},
{"path": "dblctrl/tshift", "type": "float", "readonly": false, "cmd": "tt dblctrl/tshift"},
{"path": "dblctrl/mode", "type": "enum", "enum": {"disabled": -1, "inactive": 0, "stable": 1, "up": 2, "down": 3}, "readonly": false, "cmd": "tt dblctrl/mode"},
{"path": "dblctrl/shift_up", "type": "float"},
{"path": "dblctrl/shift_lo", "type": "float"},
{"path": "dblctrl/t_min", "type": "float"},
{"path": "dblctrl/t_max", "type": "float"},
{"path": "dblctrl/int2", "type": "float", "readonly": false, "cmd": "tt dblctrl/int2"},
{"path": "dblctrl/prop_up", "type": "float", "readonly": false, "cmd": "tt dblctrl/prop_up"},
{"path": "dblctrl/prop_lo", "type": "float", "readonly": false, "cmd": "tt dblctrl/prop_lo"},
{"path": "tm", "type": "float", "kids": 4},
{"path": "tm/curve", "type": "text", "readonly": false, "cmd": "tt tm/curve", "kids": 1},
{"path": "tm/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt tm/curve/points", "visibility": 3},
{"path": "tm/alarm", "type": "float", "readonly": false, "cmd": "tt tm/alarm"},
{"path": "tm/stddev", "type": "float"},
{"path": "tm/raw", "type": "float"},
{"path": "ts", "type": "float", "visibility": 3, "kids": 4},
{"path": "ts/curve", "type": "text", "readonly": false, "cmd": "tt ts/curve", "visibility": 3, "kids": 1},
{"path": "ts/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt ts/curve/points", "visibility": 3},
{"path": "ts/alarm", "type": "float", "readonly": false, "cmd": "tt ts/alarm", "visibility": 3},
{"path": "ts/stddev", "type": "float", "visibility": 3},
{"path": "ts/raw", "type": "float", "visibility": 3},
{"path": "tm_pt", "type": "float", "kids": 4},
{"path": "tm_pt/curve", "type": "text", "readonly": false, "cmd": "tt tm_pt/curve", "kids": 1},
{"path": "tm_pt/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt tm_pt/curve/points", "visibility": 3},
{"path": "tm_pt/alarm", "type": "float", "readonly": false, "cmd": "tt tm_pt/alarm"},
{"path": "tm_pt/stddev", "type": "float"},
{"path": "tm_pt/raw", "type": "float"},
{"path": "ts_2", "type": "float", "visibility": 3, "kids": 4},
{"path": "ts_2/curve", "type": "text", "readonly": false, "cmd": "tt ts_2/curve", "visibility": 3, "kids": 1},
{"path": "ts_2/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt ts_2/curve/points", "visibility": 3},
{"path": "ts_2/alarm", "type": "float", "readonly": false, "cmd": "tt ts_2/alarm", "visibility": 3},
{"path": "ts_2/stddev", "type": "float", "visibility": 3},
{"path": "ts_2/raw", "type": "float", "visibility": 3},
{"path": "set", "type": "float", "readonly": false, "cmd": "tt set", "kids": 18},
{"path": "set/mode", "type": "enum", "enum": {"disabled": -1, "off": 0, "controlling": 1, "manual": 2}, "readonly": false, "cmd": "tt set/mode"},
{"path": "set/reg", "type": "float"},
{"path": "set/ramp", "type": "float", "readonly": false, "cmd": "tt set/ramp", "description": "maximum ramp in K/min (0: ramp off)"},
{"path": "set/wramp", "type": "float", "readonly": false, "cmd": "tt set/wramp"},
{"path": "set/smooth", "type": "float", "readonly": false, "cmd": "tt set/smooth", "description": "smooth time (minutes)"},
{"path": "set/channel", "type": "text", "readonly": false, "cmd": "tt set/channel"},
{"path": "set/limit", "type": "float", "readonly": false, "cmd": "tt set/limit"},
{"path": "set/resist", "type": "float", "readonly": false, "cmd": "tt set/resist"},
{"path": "set/maxheater", "type": "text", "readonly": false, "cmd": "tt set/maxheater", "description": "maximum heater limit, units should be given without space: W, mW, A, mA"},
{"path": "set/linearpower", "type": "float", "readonly": false, "cmd": "tt set/linearpower", "description": "when not 0, it is the maximum effective power, and the power is linear to the heater output"},
{"path": "set/maxpowerlim", "type": "float", "description": "the maximum power limit (before any booster or converter)"},
{"path": "set/maxpower", "type": "float", "readonly": false, "cmd": "tt set/maxpower", "description": "maximum power [W]"},
{"path": "set/maxcurrent", "type": "float", "description": "the maximum current before any booster or converter"},
{"path": "set/manualpower", "type": "float", "readonly": false, "cmd": "tt set/manualpower"},
{"path": "set/power", "type": "float"},
{"path": "set/prop", "type": "float", "readonly": false, "cmd": "tt set/prop", "description": "bigger means more gain"},
{"path": "set/integ", "type": "float", "readonly": false, "cmd": "tt set/integ", "description": "bigger means faster"},
{"path": "set/deriv", "type": "float", "readonly": false, "cmd": "tt set/deriv"},
{"path": "display", "type": "text", "readonly": false, "cmd": "tt display"},
{"path": "dout", "type": "int", "readonly": false, "cmd": "tt dout"},
{"path": "dinp", "type": "int"},
{"path": "remote", "type": "bool"}]]

View File

@ -1,65 +0,0 @@
["tt", [{"path": "", "type": "float", "readonly": false, "cmd": "run tt", "description": "tt", "kids": 18},
{"path": "send", "type": "text", "readonly": false, "cmd": "tt send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "is_running", "type": "int", "visibility": 3},
{"path": "target", "type": "float"},
{"path": "running", "type": "int"},
{"path": "tolerance", "type": "float", "readonly": false, "cmd": "tt tolerance"},
{"path": "maxwait", "type": "float", "readonly": false, "cmd": "tt maxwait"},
{"path": "settle", "type": "float", "readonly": false, "cmd": "tt settle"},
{"path": "log", "type": "text", "readonly": false, "cmd": "tt log", "visibility": 3, "kids": 4},
{"path": "log/mean", "type": "float", "visibility": 3},
{"path": "log/m2", "type": "float", "visibility": 3},
{"path": "log/stddev", "type": "float", "visibility": 3},
{"path": "log/n", "type": "float", "visibility": 3},
{"path": "dblctrl", "type": "bool", "readonly": false, "cmd": "tt dblctrl", "kids": 9},
{"path": "dblctrl/tshift", "type": "float", "readonly": false, "cmd": "tt dblctrl/tshift"},
{"path": "dblctrl/mode", "type": "enum", "enum": {"disabled": -1, "inactive": 0, "stable": 1, "up": 2, "down": 3}, "readonly": false, "cmd": "tt dblctrl/mode"},
{"path": "dblctrl/shift_up", "type": "float"},
{"path": "dblctrl/shift_lo", "type": "float"},
{"path": "dblctrl/t_min", "type": "float"},
{"path": "dblctrl/t_max", "type": "float"},
{"path": "dblctrl/int2", "type": "float", "readonly": false, "cmd": "tt dblctrl/int2"},
{"path": "dblctrl/prop_up", "type": "float", "readonly": false, "cmd": "tt dblctrl/prop_up"},
{"path": "dblctrl/prop_lo", "type": "float", "readonly": false, "cmd": "tt dblctrl/prop_lo"},
{"path": "tm", "type": "float", "kids": 4},
{"path": "tm/curve", "type": "text", "readonly": false, "cmd": "tt tm/curve", "kids": 1},
{"path": "tm/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt tm/curve/points", "visibility": 3},
{"path": "tm/alarm", "type": "float", "readonly": false, "cmd": "tt tm/alarm"},
{"path": "tm/stddev", "type": "float"},
{"path": "tm/raw", "type": "float"},
{"path": "ts", "type": "float", "kids": 4},
{"path": "ts/curve", "type": "text", "readonly": false, "cmd": "tt ts/curve", "kids": 1},
{"path": "ts/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt ts/curve/points", "visibility": 3},
{"path": "ts/alarm", "type": "float", "readonly": false, "cmd": "tt ts/alarm"},
{"path": "ts/stddev", "type": "float"},
{"path": "ts/raw", "type": "float"},
{"path": "ts_2", "type": "float", "visibility": 3, "kids": 4},
{"path": "ts_2/curve", "type": "text", "readonly": false, "cmd": "tt ts_2/curve", "visibility": 3, "kids": 1},
{"path": "ts_2/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt ts_2/curve/points", "visibility": 3},
{"path": "ts_2/alarm", "type": "float", "readonly": false, "cmd": "tt ts_2/alarm", "visibility": 3},
{"path": "ts_2/stddev", "type": "float", "visibility": 3},
{"path": "ts_2/raw", "type": "float", "visibility": 3},
{"path": "set", "type": "float", "readonly": false, "cmd": "tt set", "kids": 18},
{"path": "set/mode", "type": "enum", "enum": {"disabled": -1, "off": 0, "controlling": 1, "manual": 2}, "readonly": false, "cmd": "tt set/mode"},
{"path": "set/reg", "type": "float"},
{"path": "set/ramp", "type": "float", "readonly": false, "cmd": "tt set/ramp", "description": "maximum ramp in K/min (0: ramp off)"},
{"path": "set/wramp", "type": "float", "readonly": false, "cmd": "tt set/wramp"},
{"path": "set/smooth", "type": "float", "readonly": false, "cmd": "tt set/smooth", "description": "smooth time (minutes)"},
{"path": "set/channel", "type": "text", "readonly": false, "cmd": "tt set/channel"},
{"path": "set/limit", "type": "float", "readonly": false, "cmd": "tt set/limit"},
{"path": "set/resist", "type": "float", "readonly": false, "cmd": "tt set/resist"},
{"path": "set/maxheater", "type": "text", "readonly": false, "cmd": "tt set/maxheater", "description": "maximum heater limit, units should be given without space: W, mW, A, mA"},
{"path": "set/linearpower", "type": "float", "readonly": false, "cmd": "tt set/linearpower", "description": "when not 0, it is the maximum effective power, and the power is linear to the heater output"},
{"path": "set/maxpowerlim", "type": "float", "description": "the maximum power limit (before any booster or converter)"},
{"path": "set/maxpower", "type": "float", "readonly": false, "cmd": "tt set/maxpower", "description": "maximum power [W]"},
{"path": "set/maxcurrent", "type": "float", "description": "the maximum current before any booster or converter"},
{"path": "set/manualpower", "type": "float", "readonly": false, "cmd": "tt set/manualpower"},
{"path": "set/power", "type": "float"},
{"path": "set/prop", "type": "float", "readonly": false, "cmd": "tt set/prop", "description": "bigger means more gain"},
{"path": "set/integ", "type": "float", "readonly": false, "cmd": "tt set/integ", "description": "bigger means faster"},
{"path": "set/deriv", "type": "float", "readonly": false, "cmd": "tt set/deriv"},
{"path": "display", "type": "text", "readonly": false, "cmd": "tt display"},
{"path": "dout", "type": "int", "readonly": false, "cmd": "tt dout"},
{"path": "dinp", "type": "int"},
{"path": "remote", "type": "bool"}]]

View File

@ -1,8 +0,0 @@
["tvd", [{"path": "", "type": "float", "kids": 7},
{"path": "send", "type": "text", "readonly": false, "cmd": "tvd send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "raw", "type": "float"},
{"path": "set", "type": "float", "readonly": false, "cmd": "tvd set"},
{"path": "control", "type": "enum", "enum": {"OFF": 0, "ON": 1}, "readonly": false, "cmd": "tvd control"},
{"path": "htr", "type": "float"},
{"path": "pow", "type": "float"}]]

View File

@ -1,8 +0,0 @@
["tvd", [{"path": "", "type": "float", "kids": 7},
{"path": "send", "type": "text", "readonly": false, "cmd": "tvd send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "raw", "type": "float"},
{"path": "set", "type": "float", "readonly": false, "cmd": "tvd set"},
{"path": "control", "type": "enum", "enum": {"OFF": 0, "ON": 1}, "readonly": false, "cmd": "tvd control"},
{"path": "htr", "type": "float"},
{"path": "pow", "type": "float"}]]

View File

@ -1,8 +0,0 @@
["tvs", [{"path": "", "type": "float", "kids": 7},
{"path": "send", "type": "text", "readonly": false, "cmd": "tvs send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "raw", "type": "float"},
{"path": "set", "type": "float", "readonly": false, "cmd": "tvs set"},
{"path": "control", "type": "enum", "enum": {"OFF": 0, "ON": 1}, "readonly": false, "cmd": "tvs control"},
{"path": "htr", "type": "float"},
{"path": "pow", "type": "float"}]]

View File

@ -1,8 +0,0 @@
["tvs", [{"path": "", "type": "float", "kids": 7},
{"path": "send", "type": "text", "readonly": false, "cmd": "tvs send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "raw", "type": "float"},
{"path": "set", "type": "float", "readonly": false, "cmd": "tvs set"},
{"path": "control", "type": "enum", "enum": {"OFF": 0, "ON": 1}, "readonly": false, "cmd": "tvs control"},
{"path": "htr", "type": "float"},
{"path": "pow", "type": "float"}]]

View File

@ -1,3 +0,0 @@
["ultrasound", [{"path": "", "type": "text", "readonly": false, "cmd": "ultrasound", "kids": 2},
{"path": "send", "type": "text", "readonly": false, "cmd": "ultrasound send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3}]]

287
cfg/sea/variox.config.json1 Normal file
View File

@ -0,0 +1,287 @@
{"tt": {"base": "/tt", "params": [
{"path": "", "type": "float", "readonly": false, "cmd": "run tt", "description": "tt", "kids": 17},
{"path": "send", "type": "text", "readonly": false, "cmd": "tt send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "is_running", "type": "int", "readonly": false, "cmd": "tt is_running", "visibility": 3},
{"path": "mainloop", "type": "text", "readonly": false, "cmd": "tt mainloop", "visibility": 3},
{"path": "target", "type": "float"},
{"path": "running", "type": "int"},
{"path": "tolerance", "type": "float", "readonly": false, "cmd": "tt tolerance"},
{"path": "maxwait", "type": "float", "readonly": false, "cmd": "tt maxwait"},
{"path": "settle", "type": "float", "readonly": false, "cmd": "tt settle"},
{"path": "log", "type": "text", "readonly": false, "cmd": "tt log", "visibility": 3, "kids": 4},
{"path": "log/mean", "type": "float", "visibility": 3},
{"path": "log/m2", "type": "float", "visibility": 3},
{"path": "log/stddev", "type": "float", "visibility": 3},
{"path": "log/n", "type": "float", "visibility": 3},
{"path": "dblctrl", "type": "bool", "readonly": false, "cmd": "tt dblctrl", "kids": 9},
{"path": "dblctrl/tshift", "type": "float", "readonly": false, "cmd": "tt dblctrl/tshift"},
{"path": "dblctrl/mode", "type": "enum", "enum": {"disabled": -1, "inactive": 0, "stable": 1, "up": 2, "down": 3}, "readonly": false, "cmd": "tt dblctrl/mode"},
{"path": "dblctrl/shift_up", "type": "float"},
{"path": "dblctrl/shift_lo", "type": "float"},
{"path": "dblctrl/t_min", "type": "float"},
{"path": "dblctrl/t_max", "type": "float"},
{"path": "dblctrl/int2", "type": "float", "readonly": false, "cmd": "tt dblctrl/int2"},
{"path": "dblctrl/prop_up", "type": "float", "readonly": false, "cmd": "tt dblctrl/prop_up"},
{"path": "dblctrl/prop_lo", "type": "float", "readonly": false, "cmd": "tt dblctrl/prop_lo"},
{"path": "tm", "type": "float", "kids": 4},
{"path": "tm/curve", "type": "text", "readonly": false, "cmd": "tt tm/curve", "kids": 1},
{"path": "tm/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt tm/curve/points", "visibility": 3},
{"path": "tm/alarm", "type": "float", "readonly": false, "cmd": "tt tm/alarm"},
{"path": "tm/stddev", "type": "float"},
{"path": "tm/raw", "type": "float"},
{"path": "ts", "type": "float", "visibility": 3, "kids": 4},
{"path": "ts/curve", "type": "text", "readonly": false, "cmd": "tt ts/curve", "visibility": 3, "kids": 1},
{"path": "ts/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt ts/curve/points", "visibility": 3},
{"path": "ts/alarm", "type": "float", "readonly": false, "cmd": "tt ts/alarm", "visibility": 3},
{"path": "ts/stddev", "type": "float", "visibility": 3},
{"path": "ts/raw", "type": "float", "visibility": 3},
{"path": "ts_2", "type": "float", "visibility": 3, "kids": 4},
{"path": "ts_2/curve", "type": "text", "readonly": false, "cmd": "tt ts_2/curve", "visibility": 3, "kids": 1},
{"path": "ts_2/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt ts_2/curve/points", "visibility": 3},
{"path": "ts_2/alarm", "type": "float", "readonly": false, "cmd": "tt ts_2/alarm", "visibility": 3},
{"path": "ts_2/stddev", "type": "float", "visibility": 3},
{"path": "ts_2/raw", "type": "float", "visibility": 3},
{"path": "set", "type": "float", "readonly": false, "cmd": "tt set", "kids": 18},
{"path": "set/mode", "type": "enum", "enum": {"disabled": -1, "off": 0, "controlling": 1, "manual": 2}, "readonly": false, "cmd": "tt set/mode"},
{"path": "set/reg", "type": "float"},
{"path": "set/ramp", "type": "float", "readonly": false, "cmd": "tt set/ramp", "description": "maximum ramp in K/min (0: ramp off)"},
{"path": "set/wramp", "type": "float", "readonly": false, "cmd": "tt set/wramp"},
{"path": "set/smooth", "type": "float", "readonly": false, "cmd": "tt set/smooth", "description": "smooth time (minutes)"},
{"path": "set/channel", "type": "text", "readonly": false, "cmd": "tt set/channel"},
{"path": "set/limit", "type": "float", "readonly": false, "cmd": "tt set/limit"},
{"path": "set/resist", "type": "float", "readonly": false, "cmd": "tt set/resist"},
{"path": "set/maxheater", "type": "text", "readonly": false, "cmd": "tt set/maxheater", "description": "maximum heater limit, units should be given without space: W, mW, A, mA"},
{"path": "set/linearpower", "type": "float", "readonly": false, "cmd": "tt set/linearpower", "description": "when not 0, it is the maximum effective power, and the power is linear to the heater output"},
{"path": "set/maxpowerlim", "type": "float", "description": "the maximum power limit (before any booster or converter)"},
{"path": "set/maxpower", "type": "float", "readonly": false, "cmd": "tt set/maxpower", "description": "maximum power [W]"},
{"path": "set/maxcurrent", "type": "float", "description": "the maximum current before any booster or converter"},
{"path": "set/manualpower", "type": "float", "readonly": false, "cmd": "tt set/manualpower"},
{"path": "set/power", "type": "float"},
{"path": "set/prop", "type": "float", "readonly": false, "cmd": "tt set/prop", "description": "bigger means more gain"},
{"path": "set/integ", "type": "float", "readonly": false, "cmd": "tt set/integ", "description": "bigger means faster"},
{"path": "set/deriv", "type": "float", "readonly": false, "cmd": "tt set/deriv"},
{"path": "display", "type": "text", "readonly": false, "cmd": "tt display"},
{"path": "remote", "type": "bool"}]},
"cc": {"base": "/cc", "params": [
{"path": "", "type": "bool", "kids": 96},
{"path": "send", "type": "text", "readonly": false, "cmd": "cc send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "autodevice", "type": "bool", "readonly": false, "cmd": "cc autodevice"},
{"path": "fav", "type": "bool", "readonly": false, "cmd": "cc fav"},
{"path": "f", "type": "float"},
{"path": "fs", "type": "enum", "enum": {"ok": 0, "no_sens": 1}, "readonly": false, "cmd": "cc fs"},
{"path": "mav", "type": "bool", "readonly": false, "cmd": "cc mav"},
{"path": "fm", "type": "enum", "enum": {"idle": 0, "opening": 1, "closing": 2, "opened": 3, "closed": 4, "no_motor": 5}},
{"path": "fa", "type": "enum", "enum": {"fixed": 0, "controlled": 1, "automatic": 2, "offline": 3}, "readonly": false, "cmd": "cc fa"},
{"path": "mp", "type": "float", "readonly": false, "cmd": "cc mp"},
{"path": "msp", "type": "float"},
{"path": "mmp", "type": "float"},
{"path": "mc", "type": "float", "readonly": false, "cmd": "cc mc"},
{"path": "mfc", "type": "float", "readonly": false, "cmd": "cc mfc"},
{"path": "moc", "type": "float", "readonly": false, "cmd": "cc moc"},
{"path": "mtc", "type": "float", "readonly": false, "cmd": "cc mtc"},
{"path": "mtl", "type": "float"},
{"path": "mft", "type": "float", "readonly": false, "cmd": "cc mft"},
{"path": "mt", "type": "float"},
{"path": "mo", "type": "float"},
{"path": "mcr", "type": "float"},
{"path": "mot", "type": "float"},
{"path": "mw", "type": "float", "readonly": false, "cmd": "cc mw", "description": "correction pulse after automatic open"},
{"path": "hav", "type": "bool", "readonly": false, "cmd": "cc hav"},
{"path": "h", "type": "float"},
{"path": "hr", "type": "float"},
{"path": "hc", "type": "float"},
{"path": "hu", "type": "float"},
{"path": "hh", "type": "float", "readonly": false, "cmd": "cc hh"},
{"path": "hl", "type": "float", "readonly": false, "cmd": "cc hl"},
{"path": "htf", "type": "float", "readonly": false, "cmd": "cc htf", "description": "meas. period in fast mode"},
{"path": "hts", "type": "float", "readonly": false, "cmd": "cc hts", "description": "meas. period in slow mode"},
{"path": "hd", "type": "float", "readonly": false, "cmd": "cc hd"},
{"path": "hwr", "type": "float", "readonly": false, "cmd": "cc hwr"},
{"path": "hem", "type": "float", "readonly": false, "cmd": "cc hem", "description": "sensor length in mm from top to empty pos."},
{"path": "hfu", "type": "float", "readonly": false, "cmd": "cc hfu", "description": "sensor length in mm from top to full pos."},
{"path": "hcd", "type": "enum", "enum": {"stop": 0, "fill": 1, "off": 2, "auto": 3, "manual": 7}, "readonly": false, "cmd": "cc hcd"},
{"path": "hv", "type": "enum", "enum": {"fill_valve_off": 0, "filling": 1, "no_fill_valve": 2, "timeout": 3, "timeout1": 4}},
{"path": "hsf", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}},
{"path": "ha", "type": "bool", "readonly": false, "cmd": "cc ha"},
{"path": "hm", "type": "bool"},
{"path": "hf", "type": "enum", "enum": {"slow": 0, "fast": 1}, "readonly": false, "cmd": "cc hf"},
{"path": "hbe", "type": "bool", "readonly": false, "cmd": "cc hbe"},
{"path": "hmf", "type": "float"},
{"path": "hms", "type": "float"},
{"path": "hit", "type": "float", "readonly": false, "cmd": "cc hit"},
{"path": "hft", "type": "int", "readonly": false, "cmd": "cc hft"},
{"path": "hea", "type": "enum", "enum": {"0": 0, "1": 1, "6": 2}, "readonly": false, "cmd": "cc hea"},
{"path": "hch", "type": "int", "readonly": false, "cmd": "cc hch", "visibility": 3},
{"path": "hwr0", "type": "float", "readonly": false, "cmd": "cc hwr0", "visibility": 3},
{"path": "hem0", "type": "float", "readonly": false, "cmd": "cc hem0", "description": "sensor length in mm from top to empty pos.", "visibility": 3},
{"path": "hfu0", "type": "float", "readonly": false, "cmd": "cc hfu0", "description": "sensor length in mm from top to full pos.", "visibility": 3},
{"path": "hd0", "type": "float", "readonly": false, "cmd": "cc hd0", "description": "external sensor drive current (mA)", "visibility": 3},
{"path": "h0", "type": "float", "visibility": 3},
{"path": "hs0", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}, "visibility": 3},
{"path": "h1", "type": "float", "visibility": 3},
{"path": "hs1", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}, "visibility": 3},
{"path": "h2", "type": "float", "visibility": 3},
{"path": "hs2", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}, "visibility": 3},
{"path": "h3", "type": "float", "visibility": 3},
{"path": "hs3", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}, "visibility": 3},
{"path": "h4", "type": "float", "visibility": 3},
{"path": "hs4", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}, "visibility": 3},
{"path": "h5", "type": "float", "visibility": 3},
{"path": "hs5", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}, "visibility": 3},
{"path": "hfb", "type": "float"},
{"path": "nav", "type": "bool", "readonly": false, "cmd": "cc nav"},
{"path": "nu", "type": "float"},
{"path": "nl", "type": "float"},
{"path": "nth", "type": "float", "readonly": false, "cmd": "cc nth"},
{"path": "ntc", "type": "float", "readonly": false, "cmd": "cc ntc"},
{"path": "ntm", "type": "float", "readonly": false, "cmd": "cc ntm"},
{"path": "ns", "type": "enum", "enum": {"sens_ok": 0, "no_sens": 1, "short_circuit": 2, "upside_down": 3, "sens_warm": 4, "empty": 5}},
{"path": "na", "type": "bool", "readonly": false, "cmd": "cc na"},
{"path": "nv", "type": "enum", "enum": {"fill_valve_off": 0, "filling": 1, "no_fill_valve": 2, "timeout": 3, "timeout1": 4, "boost": 5}},
{"path": "nc", "type": "enum", "enum": {"stop": 0, "fill": 1, "off": 2, "auto": 3}, "readonly": false, "cmd": "cc nc"},
{"path": "nfb", "type": "float"},
{"path": "cda", "type": "float"},
{"path": "cdb", "type": "float"},
{"path": "cba", "type": "float"},
{"path": "cbb", "type": "float"},
{"path": "cvs", "type": "int"},
{"path": "csp", "type": "int"},
{"path": "cdv", "type": "text", "readonly": false, "cmd": "cc cdv"},
{"path": "cic", "type": "text", "readonly": false, "cmd": "cc cic"},
{"path": "cin", "type": "text"},
{"path": "cds", "type": "enum", "enum": {"local": 0, "remote": 1, "loading": 2, "by_code": 3, "by_touch": 4}, "readonly": false, "cmd": "cc cds"},
{"path": "timing", "type": "bool", "readonly": false, "cmd": "cc timing"},
{"path": "tc", "type": "float", "visibility": 3},
{"path": "tn", "type": "float", "visibility": 3},
{"path": "th", "type": "float", "visibility": 3},
{"path": "tf", "type": "float", "visibility": 3},
{"path": "tm", "type": "float", "visibility": 3},
{"path": "tv", "type": "float", "visibility": 3},
{"path": "tq", "type": "float", "visibility": 3},
{"path": "bdl", "type": "float", "readonly": false, "cmd": "cc bdl"}]},
"nv": {"base": "/nv", "params": [
{"path": "", "type": "enum", "enum": {"fixed": 0, "controlled": 1, "automatic": 2, "close": 3, "open": 4}, "readonly": false, "cmd": "nv", "kids": 11},
{"path": "send", "type": "text", "readonly": false, "cmd": "nv send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "motstat", "type": "enum", "enum": {"idle": 0, "opening": 1, "closing": 2, "opened": 3, "closed": 4, "no_motor": 5}},
{"path": "flow", "type": "float"},
{"path": "set", "type": "float", "readonly": false, "cmd": "nv set"},
{"path": "flowmax", "type": "float", "readonly": false, "cmd": "nv flowmax"},
{"path": "flowp", "type": "float"},
{"path": "span", "type": "float"},
{"path": "ctrl", "type": "none", "kids": 13},
{"path": "ctrl/regtext", "type": "text"},
{"path": "ctrl/prop_o", "type": "float", "readonly": false, "cmd": "nv ctrl/prop_o", "description": "prop [sec/mbar] when opening. above 4 mbar a 10 times lower value is used"},
{"path": "ctrl/prop_c", "type": "float", "readonly": false, "cmd": "nv ctrl/prop_c", "description": "prop [sec/mbar] when closing. above 4 mbar a 10 times lower value is used"},
{"path": "ctrl/deriv_o", "type": "float", "readonly": false, "cmd": "nv ctrl/deriv_o", "description": "convergence target time [sec] when opening"},
{"path": "ctrl/deriv_c", "type": "float", "readonly": false, "cmd": "nv ctrl/deriv_c", "description": "convergence target time [sec] when closing"},
{"path": "ctrl/minpulse_o", "type": "float", "readonly": false, "cmd": "nv ctrl/minpulse_o", "description": "minimum close pulse [sec]"},
{"path": "ctrl/minpulse_c", "type": "float", "readonly": false, "cmd": "nv ctrl/minpulse_c", "description": "standard close pulse [sec]"},
{"path": "ctrl/hystpulse_o", "type": "float", "readonly": false, "cmd": "nv ctrl/hystpulse_o", "description": "motor pulse to overcome hysteresis when opening"},
{"path": "ctrl/hystpulse_c", "type": "float", "readonly": false, "cmd": "nv ctrl/hystpulse_c", "description": "motor pulse to overcome hysteresis when closing"},
{"path": "ctrl/tol", "type": "float", "readonly": false, "cmd": "nv ctrl/tol", "description": "valid below 3 mbar"},
{"path": "ctrl/tolhigh", "type": "float", "readonly": false, "cmd": "nv ctrl/tolhigh", "description": "valid above 4 mbar"},
{"path": "ctrl/openpulse", "type": "float", "readonly": false, "cmd": "nv ctrl/openpulse", "description": "time to open from completely closed to a significant opening"},
{"path": "ctrl/adjust_minpulse", "type": "bool", "readonly": false, "cmd": "nv ctrl/adjust_minpulse", "description": "adjust minpulse automatically"},
{"path": "autoflow", "type": "none", "kids": 24},
{"path": "autoflow/suspended", "type": "bool", "readonly": false, "cmd": "nv autoflow/suspended"},
{"path": "autoflow/prop", "type": "float", "readonly": false, "cmd": "nv autoflow/prop"},
{"path": "autoflow/flowstd", "type": "float", "readonly": false, "cmd": "nv autoflow/flowstd"},
{"path": "autoflow/flowlim", "type": "float", "readonly": false, "cmd": "nv autoflow/flowlim"},
{"path": "autoflow/smooth", "type": "float", "readonly": false, "cmd": "nv autoflow/smooth"},
{"path": "autoflow/difSize", "type": "float", "readonly": false, "cmd": "nv autoflow/difSize"},
{"path": "autoflow/difRange", "type": "float", "readonly": false, "cmd": "nv autoflow/difRange"},
{"path": "autoflow/flowSize", "type": "float", "readonly": false, "cmd": "nv autoflow/flowSize"},
{"path": "autoflow/convTime", "type": "float", "readonly": false, "cmd": "nv autoflow/convTime"},
{"path": "autoflow/Tmin", "type": "float", "readonly": false, "cmd": "nv autoflow/Tmin"},
{"path": "autoflow/script", "type": "text", "readonly": false, "cmd": "nv autoflow/script"},
{"path": "autoflow/getTemp", "type": "text", "readonly": false, "cmd": "nv autoflow/getTemp"},
{"path": "autoflow/getTset", "type": "text", "readonly": false, "cmd": "nv autoflow/getTset"},
{"path": "autoflow/getFlow", "type": "text", "readonly": false, "cmd": "nv autoflow/getFlow"},
{"path": "autoflow/difBuf", "type": "text"},
{"path": "autoflow/flowBuf", "type": "text"},
{"path": "autoflow/flowset", "type": "float"},
{"path": "autoflow/flowmin", "type": "float"},
{"path": "autoflow/flowmax", "type": "float"},
{"path": "autoflow/difmin", "type": "float"},
{"path": "autoflow/difmax", "type": "float"},
{"path": "autoflow/setmin", "type": "float"},
{"path": "autoflow/setmax", "type": "float"},
{"path": "autoflow/flowtarget", "type": "float"},
{"path": "calib", "type": "none", "kids": 2},
{"path": "calib/ln_per_min_per_mbar", "type": "float", "readonly": false, "cmd": "nv calib/ln_per_min_per_mbar"},
{"path": "calib/mbar_offset", "type": "float", "readonly": false, "cmd": "nv calib/mbar_offset"}]},
"ln2fill": {"base": "/ln2fill", "params": [
{"path": "", "type": "enum", "enum": {"no fill valve": 2}, "readonly": false, "cmd": "ln2fill", "kids": 3},
{"path": "send", "type": "text", "readonly": false, "cmd": "ln2fill send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "state", "type": "text"}]},
"hefill": {"base": "/hefill", "params": [
{"path": "", "type": "enum", "enum": {"watching": 0, "fill": 1, "inactive": 2, "manualfill": 3}, "readonly": false, "cmd": "hefill", "kids": 6},
{"path": "send", "type": "text", "readonly": false, "cmd": "hefill send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "fast", "type": "enum", "enum": {"slow": 0, "fast": 1}, "readonly": false, "cmd": "cc hf"},
{"path": "state", "type": "text"},
{"path": "hefull", "type": "float", "readonly": false, "cmd": "cc hh"},
{"path": "helow", "type": "float", "readonly": false, "cmd": "cc hl"}]},
"hepump": {"base": "/hepump", "params": [
{"path": "", "type": "enum", "enum": {"xds35_auto": 0, "xds35_manual": 1, "sv65": 2, "other": 3, "no": -1}, "readonly": false, "cmd": "hepump", "description": "xds35: scroll pump, sv65: leybold", "kids": 10},
{"path": "send", "type": "text", "readonly": false, "cmd": "hepump send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "running", "type": "bool", "readonly": false, "cmd": "hepump running"},
{"path": "eco", "type": "bool", "readonly": false, "cmd": "hepump eco"},
{"path": "auto", "type": "bool", "readonly": false, "cmd": "hepump auto"},
{"path": "valve", "type": "enum", "enum": {"closed": 0, "closing": 1, "opening": 2, "opened": 3, "undefined": 4}, "readonly": false, "cmd": "hepump valve"},
{"path": "eco_t_lim", "type": "float", "readonly": false, "cmd": "hepump eco_t_lim", "description": "switch off eco mode when T_set < eco_t_lim and T < eco_t_lim * 2"},
{"path": "calib", "type": "float", "readonly": false, "cmd": "hepump calib", "visibility": 3},
{"path": "health", "type": "float"}]},
"hemot": {"base": "/hepump/hemot", "params": [
{"path": "", "type": "float", "readonly": false, "cmd": "run hemot", "kids": 30},
{"path": "send", "type": "text", "readonly": false, "cmd": "hemot send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "is_running", "type": "int", "readonly": false, "cmd": "hemot is_running", "visibility": 3},
{"path": "pos", "type": "float"},
{"path": "encoder", "type": "float"},
{"path": "zero", "type": "float", "readonly": false, "cmd": "hemot zero"},
{"path": "lowerlimit", "type": "float", "readonly": false, "cmd": "hemot lowerlimit"},
{"path": "upperlimit", "type": "float", "readonly": false, "cmd": "hemot upperlimit"},
{"path": "disablelimits", "type": "bool", "readonly": false, "cmd": "hemot disablelimits"},
{"path": "verbose", "type": "bool", "readonly": false, "cmd": "hemot verbose"},
{"path": "target", "type": "float"},
{"path": "runstate", "type": "enum", "enum": {"idle": 0, "running": 1, "finished": 2, "error": 3}},
{"path": "precision", "type": "float", "readonly": false, "cmd": "hemot precision"},
{"path": "maxencdif", "type": "float", "readonly": false, "cmd": "hemot maxencdif"},
{"path": "id", "type": "float", "readonly": false, "cmd": "hemot id"},
{"path": "pump_number", "type": "float", "readonly": false, "cmd": "hemot pump_number"},
{"path": "init", "type": "float", "readonly": false, "cmd": "hemot init"},
{"path": "maxspeed", "type": "float", "readonly": false, "cmd": "hemot maxspeed"},
{"path": "acceleration", "type": "float", "readonly": false, "cmd": "hemot acceleration"},
{"path": "maxcurrent", "type": "float", "readonly": false, "cmd": "hemot maxcurrent"},
{"path": "standbycurrent", "type": "float", "readonly": false, "cmd": "hemot standbycurrent"},
{"path": "freewheeling", "type": "bool", "readonly": false, "cmd": "hemot freewheeling"},
{"path": "output0", "type": "bool", "readonly": false, "cmd": "hemot output0"},
{"path": "output1", "type": "bool", "readonly": false, "cmd": "hemot output1"},
{"path": "input3", "type": "bool"},
{"path": "pullup", "type": "float", "readonly": false, "cmd": "hemot pullup"},
{"path": "nopumpfeedback", "type": "bool", "readonly": false, "cmd": "hemot nopumpfeedback"},
{"path": "eeprom", "type": "enum", "enum": {"ok": 0, "dirty": 1, "save": 2, "load": 3}, "readonly": false, "cmd": "hemot eeprom"},
{"path": "customadr", "type": "text", "readonly": false, "cmd": "hemot customadr"},
{"path": "custompar", "type": "float", "readonly": false, "cmd": "hemot custompar"}]},
"nvflow": {"base": "/nvflow", "params": [
{"path": "", "type": "float", "kids": 7},
{"path": "send", "type": "text", "readonly": false, "cmd": "nvflow send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "stddev", "type": "float"},
{"path": "nsamples", "type": "int", "readonly": false, "cmd": "nvflow nsamples"},
{"path": "offset", "type": "float", "readonly": false, "cmd": "nvflow offset"},
{"path": "scale", "type": "float", "readonly": false, "cmd": "nvflow scale"},
{"path": "save", "type": "bool", "readonly": false, "cmd": "nvflow save", "description": "unchecked: current calib is not saved. set checked: save calib"}]}}

View File

@ -1,65 +0,0 @@
[node varioxB_vb.psi.ch]
description = varioxB_vb over SEA
[interface tcp]
type = tcp
bindport = 10767
[module seaconn]
class = secop_psi.sea.SeaClient
description = a SEA connection
uri = tcp://samenv.psi.ch:8646
[module tvs]
class = secop_psi.sea.SeaReadable
io = seaconn
json_descr = tvs.varioxB.config
remote_paths = .
[module tvd]
class = secop_psi.sea.SeaReadable
io = seaconn
json_descr = tvd.varioxB.config
remote_paths = .
[module pstat]
class = secop_psi.sea.SeaReadable
io = seaconn
json_descr = pstat.varioxB.config
remote_paths = .
[module pdyn]
class = secop_psi.sea.SeaReadable
io = seaconn
json_descr = pdyn.varioxB.config
remote_paths = .
[module tneck1]
class = secop_psi.sea.SeaReadable
io = seaconn
json_descr = tneck1.varioxB.config
remote_paths = .
[module tneck2]
class = secop_psi.sea.SeaReadable
io = seaconn
json_descr = tneck2.varioxB.config
remote_paths = .
[module tnvs]
class = secop_psi.sea.SeaReadable
io = seaconn
json_descr = tnvs.varioxB.config
remote_paths = .
[module tnvd]
class = secop_psi.sea.SeaReadable
io = seaconn
json_descr = tnvd.varioxB.config
remote_paths = .
[module ts]
class = secop_psi.sea.SeaReadable
io = seaconn
json_descr = ts.vb.stick
remote_paths = .

View File

@ -1,31 +0,0 @@
["wall", [{"path": "", "type": "float", "kids": 10},
{"path": "send", "type": "text", "readonly": false, "cmd": "wall send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "tw1", "type": "float", "kids": 4},
{"path": "tw1/curve", "type": "text", "readonly": false, "cmd": "wall tw1/curve", "kids": 1},
{"path": "tw1/curve/points", "type": "floatvarar", "readonly": false, "cmd": "wall tw1/curve/points", "visibility": 3},
{"path": "tw1/alarm", "type": "float", "readonly": false, "cmd": "wall tw1/alarm"},
{"path": "tw1/stddev", "type": "float"},
{"path": "tw1/raw", "type": "float"},
{"path": "tw2", "type": "float", "kids": 4},
{"path": "tw2/curve", "type": "text", "readonly": false, "cmd": "wall tw2/curve", "kids": 1},
{"path": "tw2/curve/points", "type": "floatvarar", "readonly": false, "cmd": "wall tw2/curve/points", "visibility": 3},
{"path": "tw2/alarm", "type": "float", "readonly": false, "cmd": "wall tw2/alarm"},
{"path": "tw2/stddev", "type": "float"},
{"path": "tw2/raw", "type": "float"},
{"path": "tw3", "type": "float", "kids": 4},
{"path": "tw3/curve", "type": "text", "readonly": false, "cmd": "wall tw3/curve", "kids": 1},
{"path": "tw3/curve/points", "type": "floatvarar", "readonly": false, "cmd": "wall tw3/curve/points", "visibility": 3},
{"path": "tw3/alarm", "type": "float", "readonly": false, "cmd": "wall tw3/alarm"},
{"path": "tw3/stddev", "type": "float"},
{"path": "tw3/raw", "type": "float"},
{"path": "tw4", "type": "float", "kids": 4},
{"path": "tw4/curve", "type": "text", "readonly": false, "cmd": "wall tw4/curve", "kids": 1},
{"path": "tw4/curve/points", "type": "floatvarar", "readonly": false, "cmd": "wall tw4/curve/points", "visibility": 3},
{"path": "tw4/alarm", "type": "float", "readonly": false, "cmd": "wall tw4/alarm"},
{"path": "tw4/stddev", "type": "float"},
{"path": "tw4/raw", "type": "float"},
{"path": "display", "type": "text", "readonly": false, "cmd": "wall display"},
{"path": "dout", "type": "int", "readonly": false, "cmd": "wall dout"},
{"path": "dinp", "type": "int"},
{"path": "remote", "type": "bool"}]]

View File

@ -23,12 +23,42 @@ class = secop_psi.sea.SeaReadable
io = sea_stick
sea_object = tmon
[T_oneK]
class = secop_psi.sea.SeaReadable
io = sea_stick
sea_object = tmon
rel_paths = onek
[T_still]
class = secop_psi.sea.SeaReadable
io = sea_stick
sea_object = tmon
rel_paths = stillt
[T_sample]
class = secop_psi.sea.SeaReadable
io = sea_stick
sea_object = treg
rel_paths = sample
[T_samplehtr]
class = secop_psi.sea.SeaReadable
io = sea_stick
sea_object = treg
rel_paths = samplehtr
[T_mix]
class = secop_psi.sea.SeaReadable
io = sea_stick
sea_object = treg
rel_paths = mix
[dil]
class = secop_psi.sea.SeaReadable
io = sea_stick
sea_object = dil
[sorb]
[T_sorb]
class = secop_psi.sea.SeaDrivable
io = sea_stick
sea_object = sorb

64
cfg/stick/dil3.cfg Normal file
View File

@ -0,0 +1,64 @@
[NODE]
description = dilution insert
id = dil3.stick.sea.psi.ch
[sea_stick]
class = secop_psi.sea.SeaClient
description = stick sea connection for dil3.stick
config = dil3.stick
service = stick
[ts]
class = secop_psi.sea.SeaDrivable
io = sea_stick
sea_object = ts
[treg]
class = secop_psi.sea.SeaReadable
io = sea_stick
sea_object = treg
[tmon]
class = secop_psi.sea.SeaReadable
io = sea_stick
sea_object = tmon
[T_oneK]
class = secop_psi.sea.SeaReadable
io = sea_stick
sea_object = tmon
rel_paths = onek
[T_still]
class = secop_psi.sea.SeaReadable
io = sea_stick
sea_object = tmon
rel_paths = stillt
[T_sample]
class = secop_psi.sea.SeaReadable
io = sea_stick
sea_object = treg
rel_paths = sample
[T_samplehtr]
class = secop_psi.sea.SeaReadable
io = sea_stick
sea_object = treg
rel_paths = samplehtr
[T_mix]
class = secop_psi.sea.SeaReadable
io = sea_stick
sea_object = treg
rel_paths = mix
[dil]
class = secop_psi.sea.SeaReadable
io = sea_stick
sea_object = dil
[T_sorb]
class = secop_psi.sea.SeaDrivable
io = sea_stick
sea_object = sorb

64
cfg/stick/dil4.cfg Normal file
View File

@ -0,0 +1,64 @@
[NODE]
description = dilution insert
id = dil4.stick.sea.psi.ch
[sea_stick]
class = secop_psi.sea.SeaClient
description = stick sea connection for dil4.stick
config = dil4.stick
service = stick
[ts]
class = secop_psi.sea.SeaDrivable
io = sea_stick
sea_object = ts
[treg]
class = secop_psi.sea.SeaReadable
io = sea_stick
sea_object = treg
[tmon]
class = secop_psi.sea.SeaReadable
io = sea_stick
sea_object = tmon
[T_oneK]
class = secop_psi.sea.SeaReadable
io = sea_stick
sea_object = tmon
rel_paths = onek
[T_still]
class = secop_psi.sea.SeaReadable
io = sea_stick
sea_object = tmon
rel_paths = stillt
[T_sample]
class = secop_psi.sea.SeaReadable
io = sea_stick
sea_object = treg
rel_paths = sample
[T_samplehtr]
class = secop_psi.sea.SeaReadable
io = sea_stick
sea_object = treg
rel_paths = samplehtr
[T_mix]
class = secop_psi.sea.SeaReadable
io = sea_stick
sea_object = treg
rel_paths = mix
[dil]
class = secop_psi.sea.SeaReadable
io = sea_stick
sea_object = dil
[T_sorb]
class = secop_psi.sea.SeaDrivable
io = sea_stick
sea_object = sorb

View File

@ -9,12 +9,32 @@ uri = tcp://5000
class = secop_psi.mercury.IO
description = connection to triton software
uri = tcp://linse-dil5:33576
timeout = 5
[action]
class = secop_psi.triton.Action
description = higher level scripts
[ts]
class = secop_psi.triton.TemperatureLoop
description = mix. chamber temperature
slot = T5
output_module = htr_mix
io = triton
[htr_mix]
class = secop_psi.triton.HeaterOutputWithRange
description = mix. chamber heater
slot = H1,T5
io = triton
[htr_sorb]
class = secop_psi.triton.HeaterOutput
description = sorb heater
slot = H2
io = triton
[htr_still]
class = secop_psi.triton.HeaterOutput
description = still heater
slot = H3
io = triton
slot = DR
[T_sorb]
class = secop_psi.triton.TemperatureSensor
@ -40,11 +60,11 @@ description = cold plate temperature
slot = T4
io = triton
[T_mix]
class = secop_psi.triton.TemperatureSensor
description = mix. chamber temperature
slot = T5
[action]
class = secop_psi.triton.Action
description = higher level scripts
io = triton
slot = DR
[p_dump]
class = secop_psi.mercury.PressureSensor
@ -87,7 +107,7 @@ description = still warmup temperature
slot = MB1.T1
io = itc
[P_still_wup]
[htr_still_wup]
class = secop_psi.mercury.HeaterOutput
description = still warmup heater
slot = MB0.H1
@ -99,7 +119,7 @@ description = 1 K plate warmup temperature
slot = DB5.T1
io = itc
[P_one_K]
[htr_one_K]
class = secop_psi.mercury.HeaterOutput
description = 1 K plate warmup heater
slot = DB3.H1
@ -111,7 +131,7 @@ description = mix. chamber warmup temperature
slot = DB6.T1
io = itc
[P_mix_wup]
[htr_mix_wup]
class = secop_psi.mercury.HeaterOutput
description = mix. chamber warmup heater
slot = DB1.H1
@ -123,7 +143,7 @@ description = IVC warmup temperature
slot = DB7.T1
io = itc
[P_ivc_wup]
[htr_ivc_wup]
class = secop_psi.mercury.HeaterOutput
description = IVC warmup heater
slot = DB2.H1
@ -135,7 +155,7 @@ description = condenser temperature
slot = DB8.T1
io = itc
[P_cond]
[htr_cond]
class = secop_psi.mercury.HeaterOutput
description = condenser heater
slot = DB3.H1

View File

@ -10,7 +10,7 @@ service = stick
[ts]
class = secop_psi.sea.SeaReadable
iodev = sea_stick
io = sea_stick
sea_object = tt
json_file = ill4.config.json
rel_paths = ts

View File

@ -51,8 +51,17 @@ class GeneralConfig:
:param configfile: if present, keys and values from the [FRAPPY] section are read
if configfile is not given, it tries to guess the location of the configfile
or determine 'piddir', 'logdir', 'confdir' and 'basedir' from the environment.
default values for 'piddir', 'logdir' and 'confdir' are guessed from the
location of this source file and from sys.executable.
if configfile is not given, the general config file is determined by
the env. variable FRAPPY_CONFIG_FILE or looked up in <confdir>/generalConfig.cfg
if a configfile is given, the values from the FRAPPY section are
overriding above defaults
finally, the env. variables FRAPPY_PIDDIR, FRAPPY_LOGDIR and FRAPPY_CONFDIR
are overriding these values when given
"""
cfg = {}
mandatory = 'piddir', 'logdir', 'confdir'
@ -69,18 +78,19 @@ class GeneralConfig:
# running on installed system (typically with systemd)
cfg.update(piddir='/var/run/frappy', logdir='/var/log', confdir='/etc/frappy')
if configfile is None:
configfile = environ.get('FRAPPY_CONFIG_FILE',
path.join(cfg['confdir'], 'generalConfig.cfg'))
configfile = path.expanduser(configfile)
if not path.exists(configfile):
raise FileNotFoundError(configfile)
if configfile and path.exists(configfile):
configfile = environ.get('FRAPPY_CONFIG_FILE')
if configfile:
configfile = path.expanduser(configfile)
if not path.exists(configfile):
raise FileNotFoundError(configfile)
else:
configfile = path.join(cfg['confdir'], 'generalConfig.cfg')
if not path.exists(configfile):
configfile = None
if configfile:
parser = ConfigParser()
parser.optionxform = str
parser.read([configfile])
# mandatory in a general config file:
cfg['logdir'] = cfg['piddir'] = None
cfg['confdir'] = path.dirname(configfile)
# only the FRAPPY section is relevant, other sections might be used by others
for key, value in parser['FRAPPY'].items():
if value.startswith('./'):
@ -88,14 +98,15 @@ class GeneralConfig:
else:
# expand ~ to username, also in path lists separated with ':'
cfg[key] = ':'.join(path.expanduser(v) for v in value.split(':'))
else:
for key in mandatory:
cfg[key] = environ.get('FRAPPY_%s' % key.upper(), cfg[key])
if cfg.get('confdir') is None:
cfg['confdir'] = path.dirname(configfile)
for key in mandatory:
cfg[key] = environ.get('FRAPPY_%s' % key.upper(), cfg.get(key))
missing_keys = [key for key in mandatory if cfg[key] is None]
if missing_keys:
if path.exists(configfile):
if configfile:
raise KeyError('missing value for %s in %s' % (' and '.join(missing_keys), configfile))
raise FileNotFoundError(configfile)
raise KeyError('missing %s' % ' and '.join('FRAPPY_%s' % k.upper() for k in missing_keys))
# this is not customizable
cfg['basedir'] = repodir
self._config = cfg

View File

@ -186,6 +186,7 @@ class StateMachine:
ret = self.state(self)
self.init = False
if self.stopped:
self.log.debug('%r', self.stopped)
self.last_error = self.stopped
self.cleanup(self)
self.stopped = False
@ -268,6 +269,7 @@ class StateMachine:
self.stopped = Restart
with self._lock: # wait for running cycle finished
if self.stopped: # cleanup is not yet done
self.log.debug('restart')
self.last_error = self.stopped
self.cleanup(self) # ignore return state on restart
self.stopped = False

View File

@ -60,8 +60,8 @@ class HasConvergence:
def cleanup(self, state):
state.default_cleanup(state)
if self.stopped:
if self.stopped is Stop: # and not Restart
if state.stopped:
if state.stopped is Stop: # and not Restart
self.status = WARN, 'stopped'
else:
self.status = WARN, repr(state.last_error)
@ -78,11 +78,11 @@ class HasConvergence:
return dif / self.timeout # assume exponential decay of dif, with time constant <tolerance>
def get_dif_tol(self):
self.read_value()
value = self.read_value()
tol = self.tolerance
if not tol:
tol = 0.01 * max(abs(self.target), abs(self.value))
dif = abs(self.target - self.value)
tol = 0.01 * max(abs(self.target), abs(value))
dif = abs(self.target - value)
return dif, tol
def start_state(self):
@ -91,6 +91,7 @@ class HasConvergence:
def state_approach(self, state):
"""approaching, checking progress (busy)"""
state.spent_inside = 0
dif, tol = self.get_dif_tol()
if dif < tol:
state.timeout_base = state.now
@ -101,7 +102,6 @@ class HasConvergence:
state.timeout_base = state.now
state.dif_crit = dif # criterium for resetting timeout base
self.status = BUSY, 'approaching'
state.spent_inside = 0
state.dif_crit -= self.get_min_slope(dif) * state.delta()
if dif < state.dif_crit: # progress is good: reset timeout base
state.timeout_base = state.now

View File

@ -34,7 +34,7 @@ CURRENT_CHECK_SIZE = 2
class Field(MercuryChannel, Magfield):
action = Parameter('action', EnumType(Action), readonly=False)
setpoint = Parameter('field setpoint', FloatRange(unit='T'), readonly=False, default=0)
setpoint = Parameter('field setpoint', FloatRange(unit='T'), default=0)
atob = Parameter('field to amp', FloatRange(0, unit='A/T'), default=0)
forced_persistent_field = Parameter(
'manual indication that persistent field is bad', BoolType(), readonly=False, default=False)
@ -95,9 +95,6 @@ class Field(MercuryChannel, Magfield):
def read_setpoint(self):
return self.query('PSU:SIG:FSET')
def write_setpoint(self, value):
return self.query('PSU:SIG:FSET', value)
def read_current(self):
if self.slave_currents is None:
self.slave_currents = [[] for _ in range(self.nslaves + 1)]

View File

@ -114,7 +114,8 @@ class Magfield(HasLimits, Drivable):
def write_target(self, target):
self.check_limits(target)
self.target = target
if not self._state.is_active: # as long as the state machine is still running, it takes care of changing targets
if not self._state.is_active:
# as long as the state machine is still running, it takes care of changing targets
self._state.start(self.start_field_change)
self.doPoll()
return Done
@ -225,12 +226,11 @@ class Magfield(HasLimits, Drivable):
def stabilize_field(self, state):
"""stabilize field"""
self.persistent_field = self.value
if state.now - state.stabilize_start < self.wait_stable_field:
if state.init:
self.status = Status.STABILIZING, 'stabilizing field'
self.persistent_field = self.value
return Retry()
self.persistent_field = state.set_point
return self.check_switch_off
def check_switch_off(self, state):
@ -257,6 +257,7 @@ class Magfield(HasLimits, Drivable):
return self.start_switch_on
if self.mode == Mode.DRIVEN:
return self.start_switch_on
self.persistent_field = self.value
if state.now - self.switch_time < self.wait_switch_off:
return Retry()
return self.start_ramp_to_zero

View File

@ -27,7 +27,7 @@ import time
from secop.core import Drivable, HasIO, Writable, \
Parameter, Property, Readable, StringIO, Attached, Done, IDLE, nopoll
from secop.datatypes import EnumType, FloatRange, StringType, StructOf, BoolType
from secop.datatypes import EnumType, FloatRange, StringType, StructOf, BoolType, TupleOf
from secop.errors import HardwareError
from secop_psi.convergence import HasConvergence
from secop.lib.enum import Enum
@ -172,26 +172,29 @@ class TemperatureSensor(MercuryChannel, Readable):
class HasInput(MercuryChannel):
controlled_by = Parameter('source of target value', EnumType(members={'self': SELF}), default=0)
target = Parameter(readonly=False)
input_modules = ()
# do not know why this? target = Parameter(readonly=False)
input_callbacks = ()
def add_input(self, modobj):
if not self.input_modules:
self.input_modules = []
self.input_modules.append(modobj)
def register_input(self, name, control_off):
"""register input
:param name: the name of the module (for controlled_by enum)
:param control_off: a method on the input module to switch off control
"""
if not self.input_callbacks:
self.input_callbacks = []
self.input_callbacks.append(control_off)
prev_enum = self.parameters['controlled_by'].datatype._enum
# add enum member, using autoincrement feature of Enum
self.parameters['controlled_by'].datatype = EnumType(Enum(prev_enum, **{modobj.name: None}))
self.parameters['controlled_by'].datatype = EnumType(Enum(prev_enum, **{name: None}))
def write_controlled_by(self, value):
if self.controlled_by == value:
return Done
self.controlled_by = value
if value == SELF:
self.log.warning('switch to manual mode')
for input_module in self.input_modules:
if input_module.control_active:
input_module.write_control_active(False)
for control_off in self.input_callbacks:
control_off()
return Done
@ -209,12 +212,17 @@ class Loop(HasConvergence, MercuryChannel, Drivable):
def initModule(self):
super().initModule()
if self.output_module:
self.output_module.add_input(self)
self.output_module.register_input(self.name, self.control_off)
def control_off(self):
if self.control_active:
self.log.warning('switch to manual mode')
self.write_control_active(False)
def set_output(self, active):
if active:
if self.output_module and self.output_module.controlled_by != self.name:
self.output_module.controlled_by = self.name
self.output_module.write_controlled_by(self.name)
else:
if self.output_module and self.output_module.controlled_by != SELF:
self.output_module.write_controlled_by(SELF)
@ -310,8 +318,8 @@ class HeaterOutput(HasInput, MercuryChannel, Writable):
return volt * current
def read_target(self):
if self.controlled_by != 0 and self.target:
return 0
if self.controlled_by != 0:
return Done
if self._last_target is not None:
return Done
self._volt_target = self.query('HTR:SIG:VOLT')
@ -319,15 +327,15 @@ class HeaterOutput(HasInput, MercuryChannel, Writable):
self._last_target = self._volt_target ** 2 / max(10, self.resistivity)
return self._last_target
def set_target(self, value):
def set_target(self, target):
"""set the target without switching to manual
might be used by a software loop
"""
self._volt_target = math.sqrt(value * self.resistivity)
self._volt_target = math.sqrt(target * self.resistivity)
self.change('HTR:SIG:VOLT', self._volt_target)
self._last_target = value
return value
self._last_target = target
return target
def write_target(self, value):
self.write_controlled_by(SELF)
@ -335,26 +343,29 @@ class HeaterOutput(HasInput, MercuryChannel, Writable):
class TemperatureLoop(TemperatureSensor, Loop, Drivable):
channel_type = 'TEMP,HTR'
output_module = Attached(HeaterOutput, mandatory=False)
channel_type = 'TEMP'
output_module = Attached(HasInput, mandatory=False)
ramp = Parameter('ramp rate', FloatRange(0, unit='K/min'), readonly=False)
enable_ramp = Parameter('enable ramp rate', BoolType(), readonly=False)
setpoint = Parameter('working setpoint (differs from target when ramping)', FloatRange(0, unit='$'))
auto_flow = Parameter('enable auto flow', BoolType(), readonly=False)
tolerance = Parameter(default=0.1)
_last_setpoint_change = None
ENABLE = 'TEMP:LOOP:ENAB'
ENABLE_RAMP = 'TEMP:LOOP:RENA'
RAMP_RATE = 'TEMP:LOOP:RSET'
def doPoll(self):
super().doPoll()
self.read_setpoint()
def read_control_active(self):
active = self.query('TEMP:LOOP:ENAB', off_on)
active = self.query(self.ENABLE, off_on)
self.set_output(active)
return active
def write_control_active(self, value):
self.set_output(value)
return self.change('TEMP:LOOP:ENAB', value, off_on)
return self.change(self.ENABLE, value, off_on)
@nopoll # polled by read_setpoint
def read_target(self):
@ -388,19 +399,24 @@ class TemperatureLoop(TemperatureSensor, Loop, Drivable):
return Done
def read_enable_ramp(self):
return self.query('TEMP:LOOP:RENA', off_on)
return self.query(self.ENABLE_RAMP, off_on)
def write_enable_ramp(self, value):
return self.change('TEMP:LOOP:RENA', value, off_on)
return self.change(self.ENABLE_RAMP, value, off_on)
def read_auto_flow(self):
return self.query('TEMP:LOOP:FAUT', off_on)
def write_auto_flow(self, value):
return self.change('TEMP:LOOP:FAUT', value, off_on)
def set_output(self, active):
if active:
if self.output_module and self.output_module.controlled_by != self.name:
self.output_module.write_controlled_by(self.name)
else:
if self.output_module and self.output_module.controlled_by != SELF:
self.output_module.write_controlled_by(SELF)
status = IDLE, 'control inactive'
if self.status != status:
self.status = status
def read_ramp(self):
result = self.query('TEMP:LOOP:RSET')
result = self.query(self.RAMP_RATE)
return min(9e99, result)
def write_ramp(self, value):
@ -409,11 +425,11 @@ class TemperatureLoop(TemperatureSensor, Loop, Drivable):
self.write_enable_ramp(0)
return 0
if value >= 9e99:
self.change('TEMP:LOOP:RSET', 'inf', as_string)
self.change(self.RAMP_RATE, 'inf', as_string)
self.write_enable_ramp(0)
return 9e99
self.write_enable_ramp(1)
return self.change('TEMP:LOOP:RSET', max(1e-4, value))
return self.change(self.RAMP_RATE, max(1e-4, value))
class PressureSensor(MercuryChannel, Readable):
@ -449,9 +465,10 @@ class ValvePos(HasInput, MercuryChannel, Drivable):
return self.change('PRES:LOOP:FSET', value)
class PressureLoop(PressureSensor, Loop, Drivable):
channel_type = 'PRES,AUX'
class PressureLoop(HasInput, PressureSensor, Loop, Drivable):
channel_type = 'PRES'
output_module = Attached(ValvePos, mandatory=False)
tolerance = Parameter(default=0.1)
def read_control_active(self):
active = self.query('PRES:LOOP:FAUT', off_on)
@ -465,12 +482,62 @@ class PressureLoop(PressureSensor, Loop, Drivable):
def read_target(self):
return self.query('PRES:LOOP:PRST')
def set_target(self, target):
"""set the target without switching to manual
might be used by a software loop
"""
self.change('PRES:LOOP:PRST', target)
super().set_target(target)
def write_target(self, value):
target = self.change('PRES:LOOP:PRST', value)
self.set_target(target)
self.write_controlled_by(SELF)
self.set_target(value)
return Done
class HasAutoFlow:
needle_valve = Attached(PressureLoop, mandatory=False)
auto_flow = Parameter('enable auto flow', BoolType(), readonly=False, default=0)
flowpars = Parameter('Tdif(min, max), FlowSet(min, max)',
TupleOf(TupleOf(FloatRange(unit='K'), FloatRange(unit='K')),
TupleOf(FloatRange(unit='mbar'), FloatRange(unit='mbar'))),
readonly=False, default=((1,5), (4,20)))
def read_value(self):
value = super().read_value()
if self.auto_flow:
(dmin, dmax), (fmin, fmax) = self.flowpars
flowset = min(dmax - dmin, max(0, value - self.target - dmin)) / (dmax - dmin) * (fmax - fmin) + fmin
self.needle_valve.set_target(flowset)
return Done
def initModule(self):
super().initModule()
if self.needle_valve:
self.needle_valve.register_input(self.name, self.auto_flow_off)
def write_auto_flow(self, value):
if value:
if self.needle_valve and self.needle_valve.controlled_by != self.name:
self.needle_valve.write_controlled_by(self.name)
else:
if self.needle_valve and self.needle_valve.controlled_by != SELF:
self.needle_valve.write_controlled_by(SELF)
_, (fmin, _) = self.flowpars
self.needle_valve.write_target(fmin)
return value
def auto_flow_off(self):
if self.auto_flow:
self.log.warning('switch auto flow off')
self.write_auto_flow(False)
class TemperatureAutoFlow(HasAutoFlow, TemperatureLoop):
pass
class HeLevel(MercuryChannel, Readable):
"""He level meter channel
@ -478,6 +545,7 @@ class HeLevel(MercuryChannel, Readable):
(when filling) and slow (when consuming). We have to handle this by software.
"""
channel_type = 'LVL'
value = Parameter(unit='%')
sample_rate = Parameter('_', EnumType(slow=0, fast=1), readonly=False)
hysteresis = Parameter('hysteresis for detection of increase', FloatRange(0, 100, unit='%'),
default=5, readonly=False)
@ -531,9 +599,7 @@ class HeLevel(MercuryChannel, Readable):
class N2Level(MercuryChannel, Readable):
channel_type = 'LVL'
value = Parameter(unit='%')
def read_value(self):
return self.query('LVL:SIG:NIT:LEV')
# TODO: magnet power supply

View File

@ -31,29 +31,27 @@ from secop.lib import clamp
class PhytronIO(StringIO):
end_of_line = '\x03' # ETX
timeout = 0.2
timeout = 0.5
identification = [('0IVR', 'MCC Minilog .*')]
def communicate(self, command, expect_response=True):
def communicate(self, command):
for ntry in range(5, 0, -1):
try:
head, _, reply = super().communicate('\x02' + command).partition('\x02')
_, _, reply = super().communicate('\x02' + command).partition('\x02')
if reply[0] == '\x06': # ACK
if len(reply) == 1 and expect_response:
raise CommunicationFailedError('empty response')
break
raise CommunicationFailedError('missing ACK %r' % reply)
raise CommunicationFailedError('missing ACK %r (cmd: %r)'
% (reply, command))
except Exception as e:
if ntry == 1:
raise
self.log.warning('%s - retry', e)
if ntry == 1:
raise
self.log.warning('%s - retry', e)
return reply[1:]
class Motor(PersistentMixin, HasIO, Drivable):
axis = Property('motor axis X or Y', StringType(), default='X')
address = Property('address', IntRange(0, 15), default=0)
speed_factor = Property('steps / degree', FloatRange(0, None), default=2000)
encoder_mode = Parameter('how to treat the encoder', EnumType('encoder', NO=0, READ=1, CHECK=2),
default=1, readonly=False)
@ -65,8 +63,9 @@ class Motor(PersistentMixin, HasIO, Drivable):
offset = PersistentParam('', FloatRange(unit='deg'), readonly=False, default=0)
sign = PersistentParam('', IntRange(-1,1), readonly=False, default=1)
encoder = Parameter('encoder reading', FloatRange(unit='deg'))
sameside_offset = Parameter('offset when always approaching from the same side',
FloatRange(unit='deg'), readonly=False, default=0)
backlash = Parameter("""backlash compensation\n
offset for always approaching from the same side""",
FloatRange(unit='deg'), readonly=False, default=0)
abslimits = Parameter('abs limits (raw values)', default=(0, 0),
datatype=TupleOf(FloatRange(unit='deg'), FloatRange(unit='deg')))
userlimits = PersistentParam('user limits', readonly=False, default=(0, 0), initwrite=True,
@ -74,9 +73,10 @@ class Motor(PersistentMixin, HasIO, Drivable):
ioClass = PhytronIO
fast_poll = 0.1
_sameside_pending = False
_backlash_pending = False
_mismatch_count = 0
_rawlimits = None
_step_size = None # degree / step
def earlyInit(self):
super().earlyInit()
@ -88,10 +88,19 @@ class Motor(PersistentMixin, HasIO, Drivable):
self.loadParameters()
def get(self, cmd):
return self.communicate('\x02%x%s%s' % (self.address, self.axis, cmd))
return self.communicate('%x%s%s' % (self.address, self.axis, cmd))
def set(self, cmd, value):
self.communicate('\x02%x%s%s%g' % (self.address, self.axis, cmd, value), False)
# make sure e format is not used, max 8 characters
strvalue = '%.6g' % value
if 'e' in strvalue:
if abs(value) <= 1: # very small number
strvalue = '%.7f' % value
elif abs(value) < 99999999: # big number
strvalue = '%.0f' % value
else:
raise ValueError('number (%g) must not have more than 8 digits' % value)
self.communicate('%x%s%s%s' % (self.address, self.axis, cmd, strvalue))
def set_get(self, cmd, value, query):
self.set(cmd, value)
@ -104,7 +113,7 @@ class Motor(PersistentMixin, HasIO, Drivable):
enc = self.read_encoder()
else:
enc = pos
status = self.communicate('\x02%xSE' % self.address)
status = self.communicate('%xSE' % self.address)
status = status[0:4] if self.axis == 'X' else status[4:8]
self.log.debug('run %s enc %s end %s', status[1], status[2], status[3])
status = self.get('=H')
@ -122,10 +131,10 @@ class Motor(PersistentMixin, HasIO, Drivable):
else:
self.status = self.Status.BUSY, 'driving'
else:
if self._sameside_pending:
if self._backlash_pending:
# drive to real target
self.set('A', self.sign * (self.target + self.offset))
self._sameside_pending = False
self._backlash_pending = False
return pos
if (self.encoder_mode == 'CHECK' and
abs(enc - pos) > self.encoder_tolerance):
@ -146,29 +155,39 @@ class Motor(PersistentMixin, HasIO, Drivable):
return self.value
return float(self.get('P22R')) * self.sign - self.offset
def write_sign(self, value):
self.sign = value
self.saveParameters()
return Done
def get_step_size(self):
self._step_size = float(self.get('P03R'))
def read_speed(self):
return float(self.get('P14R')) / self.speed_factor
if self._step_size is None:
# avoid repeatedly reading step size, as this is polled and will not change
self.get_step_size()
return float(self.get('P14R')) * self._step_size
def write_speed(self, value):
inv_factor = float(self.get('P03R'))
if abs(inv_factor * self.speed_factor - 1) > 0.001:
raise HardwareError('speed factor does not match %g' % (1.0 / inv_factor))
return float(self.set_get('P14S', int(value * self.speed_factor), 'P14R')) / self.speed_factor
self.get_step_size() # read step size anyway, it does not harm
return float(self.set_get('P14S', round(value / self._step_size), 'P14R')) * self._step_size
def read_accel(self):
return float(self.get('P15R')) / self.speed_factor
if not self._step_size:
self.get_step_size()
return float(self.get('P15R')) * self._step_size
def write_accel(self, value):
if abs(float(self.get('P03R')) * self.speed_factor - 1) > 0.001:
raise HardwareError('speed factor does not match')
return float(self.set_get('P15S', int(value * self.speed_factor), 'P15R')) / self.speed_factor
self.get_step_size()
return float(self.set_get('P15S', round(value / self._step_size), 'P15R')) * self._step_size
def _check_limits(self, *values):
for name, (mn, mx) in ('user', self._rawlimits), ('abs', self.abslimits):
mn -= self.offset
mx -= self.offset
for v in values:
if not (mn <= v <= mx):
if not mn <= v <= mx:
raise BadValueError('%s limits violation: %g <= %g <= %g' % (name, mn, v, mx))
v += self.offset
@ -176,12 +195,12 @@ class Motor(PersistentMixin, HasIO, Drivable):
if self.status[0] == self.Status.ERROR:
raise HardwareError('need reset')
self.status = self.Status.BUSY, 'changed target'
self._check_limits(value, value + self.sameside_offset)
if self.sameside_offset:
# drive first to target + sameside_offset
self._check_limits(value, value + self.backlash)
if self.backlash:
# drive first to target + backlash
# we do not optimize when already driving from the right side
self._sameside_pending = True
self.set('A', self.sign * (value + self.offset + self.sameside_offset))
self._backlash_pending = True
self.set('A', self.sign * (value + self.offset + self.backlash))
else:
self.set('A', self.sign * (value + self.offset))
self.setFastPoll(True, self.fast_poll)
@ -207,7 +226,7 @@ class Motor(PersistentMixin, HasIO, Drivable):
@Command
def reset(self):
"""reset error, set position to encoder"""
"""Reset error, set position to encoder"""
self.read_value()
if self.status[0] == self.Status.ERROR:
enc = self.encoder + self.offset

View File

@ -110,10 +110,13 @@ class SeaClient(ProxyClient, Module):
visibility = 'expert'
default_json_file = {}
_connect_thread = None
_service_manager = None
_instance = None
def __init__(self, name, log, opts, srv):
instance = srv.node_cfg['name'].rsplit('_', 1)[0]
if 'uri' not in opts:
self._instance = instance
port = get_sea_port(instance)
if port is None:
raise ConfigError('missing sea port for %s' % instance)
@ -140,6 +143,11 @@ class SeaClient(ProxyClient, Module):
self._connect_thread = mkthread(self._connect, start_events.get_trigger())
def _connect(self, started_callback):
if self._instance:
if not self._service_manager:
from servicemanager import SeaManager
self._service_manager = SeaManager()
self._service_manager.do_start(self._instance)
if '//' not in self.uri:
self.uri = 'tcp://' + self.uri
self.asynio = AsynConn(self.uri)
@ -393,6 +401,7 @@ class SeaModule(Module):
hdbpath = None # hdbpath for main writable
def __new__(cls, name, logger, cfgdict, srv):
print('N', cls, name)
if hasattr(srv, 'extra_sea_modules'):
extra_modules = srv.extra_sea_modules
else:
@ -525,8 +534,11 @@ class SeaModule(Module):
if key in cls.accessibles:
if key == 'target':
kwds['readonly'] = False
pobj = cls.accessibles[key]
pobj.init(kwds)
prev = cls.accessibles[key]
pobj = Parameter(**kwds)
merged_properties = prev.propertyValues.copy()
pobj.updateProperties(merged_properties)
pobj.merge(merged_properties)
datatype = kwds.get('datatype', cls.accessibles[key].datatype)
else:
pobj = Parameter(**kwds)
@ -582,9 +594,10 @@ class SeaModule(Module):
attributes[pname] = pobj
pobj.__set_name__(cls, pname)
classname = '%s_%s' % (cls.__name__, sea_object)
classname = '%s_%s' % (cls.__name__, name)
newcls = type(classname, (cls,), attributes)
return Module.__new__(newcls)
result = Module.__new__(newcls)
return result
def updateEvent(self, module, parameter, value, timestamp, readerror):
upd = getattr(self, 'update_' + parameter, None)
@ -607,7 +620,8 @@ class SeaModule(Module):
except Exception as e:
readerror = secop_error(e)
pobj.readerror = readerror
self.DISPATCHER.broadcast_event(make_update(self.name, pobj))
if pobj.export:
self.DISPATCHER.broadcast_event(make_update(self.name, pobj))
def initModule(self):
self.io.register_obj(self, self.sea_object)

View File

@ -20,22 +20,23 @@
# *****************************************************************************
"""oxford instruments triton (kelvinoxjt dil)"""
from secop.core import Drivable, HasIO, Writable, \
Parameter, Property, Readable, StringIO, Attached, Done, IDLE, WARN, nopoll
from secop.datatypes import EnumType, FloatRange, StringType, StructOf, BoolType
from math import sqrt
from secop.core import Writable, Parameter, Readable, Drivable, IDLE, WARN, BUSY, ERROR, Done
from secop.datatypes import EnumType, FloatRange
from secop.lib.enum import Enum
from secop_psi.mercury import MercuryChannel, Mapped, off_on
from secop_psi.mercury import MercuryChannel, Mapped, off_on, HasInput, SELF
import secop_psi.mercury as mercury
actions = Enum(none=0, condense=1, circulate=2, collect=3)
open_close = Mapped(CLOSE=False, OPEN=True)
actions_map = Mapped(NONE=actions.none, COND=actions.condense, COLL=actions.collect)
open_close = Mapped(CLOSE=0, OPEN=1)
actions_map = Mapped(STOP=actions.none, COND=actions.condense, COLL=actions.collect)
actions_map.mapping['NONE'] = actions.none # when writing, STOP is used instead of NONE
class Action(MercuryChannel):
class Action(MercuryChannel, Writable):
channel_type = 'ACTN'
value = Parameter('running action', EnumType(actions))
target = Parameter('valve target', EnumType(none=0, condense=1, collect=3), readonly=False)
target = Parameter('action to do', EnumType(none=0, condense=1, collect=3), readonly=False)
_target = 0
def read_value(self):
@ -49,27 +50,64 @@ class Action(MercuryChannel):
return self.change('SYS:DR:ACTN', value, actions_map)
# actions:
# NONE (no action)
# COND (condense mixture)
# COLL (collect mixture)
# STOP (go to NONE)
#
# not yet used (would need a subclass of Action):
# CLDN (cool down)
# PCL (precool automation)
# COND (condense mixture)
# PCOND (pause pre-cool (not condense?) automation
# RCOND (resume pre-cool (not condense?) automation
# PCOND (pause pre-cool (not condense?) automation)
# RCOND (resume pre-cool (not condense?) automation)
# WARM (warm-up)
# COLL (collect mixture)
# EPCL (empty pre-coll automation)
# STOP
# EPCL (empty pre-cool automation)
class Valve(MercuryChannel, Writable):
class Valve(MercuryChannel, Drivable):
channel_type = 'VALV'
value = Parameter('valve state', EnumType(closed=0, opened=1))
target = Parameter('valve target', EnumType(close=0, open=1))
_try_count = None
def doPoll(self):
self.read_status()
def read_value(self):
return self.query('VALV:SIG:STATE', open_close)
def read_status(self):
pos = self.read_value()
if self._try_count is None: # not switching
return IDLE, ''
if pos == self.target:
# success
if self._try_count:
# make sure last sent command was not opposite
self.change('VALV:SIG:STATE', self.target, open_close)
self._try_count = None
self.setFastPoll(False)
return IDLE, ''
self._try_count += 1
if self._try_count % 4 == 0:
# send to opposite position in order to unblock
self.change('VALV:SIG:STATE', pos, open_close)
return BUSY, 'unblock'
if self._try_count > 9:
# make sure system does not toggle later
self.change('VALV:SIG:STATE', pos, open_close)
return ERROR, 'can not %s valve' % self.target.name
self.change('VALV:SIG:STATE', self.target, open_close)
return BUSY, 'waiting'
def write_target(self, value):
return self.change('VALV:SIG:STATE', value, open_close)
if value != self.read_value():
self._try_count = 0
self.setFastPoll(True, 0.25)
self.change('VALV:SIG:STATE', value, open_close)
self.status = BUSY, self.target.name
return value
class Pump(MercuryChannel, Writable):
@ -171,8 +209,9 @@ class FlowMeter(MercuryChannel, Readable):
return self.query('FLOW:SIG:FLOW')
class TemperatureSensor(mercury.TemperatureSensor):
class ScannerChannel:
# TODO: excitation, enable
# TODO: switch on/off filter, check
filter_time = Parameter('filter time', FloatRange(1, 200, unit='sec'), readonly=False)
dwell_time = Parameter('dwell time', FloatRange(1, 200, unit='sec'), readonly=False)
pause_time = Parameter('pause time', FloatRange(3, 200, unit='sec'), readonly=False)
@ -198,5 +237,64 @@ class TemperatureSensor(mercury.TemperatureSensor):
return self.change('TEMP:MEAS:PAUS', value)
class TemperatureLoop(mercury.TemperatureLoop):
pass # TODO: switch on/off filter, check
class TemperatureSensor(ScannerChannel, mercury.TemperatureSensor):
pass
class TemperatureLoop(ScannerChannel, mercury.TemperatureLoop):
ENABLE = 'TEMP:LOOP:MODE'
ENABLE_RAMP = 'TEMP:LOOP:RAMP:ENAB'
RAMP_RATE = 'TEMP:LOOP:RAMP:RATE'
enable_pid_table = None # remove, does not work on triton
def write_control_active(self, value):
self.change('SYS:DR:CHAN:MC', 'T5', str)
if value:
self.change('TEMP:LOOP:FILT:ENAB', 'ON', str)
if self.output_module:
limit = self.output_module.read_limit() or None # None: max. limit
self.output_module.write_limit(limit)
return super().write_control_active(value)
class HeaterOutput(HasInput, MercuryChannel, Writable):
"""heater output"""
channel_type = 'HTR'
value = Parameter('heater output', FloatRange(unit='W'))
target = Parameter('heater output', FloatRange(0, unit='$'), readonly=False)
resistivity = Parameter('heater resistivity', FloatRange(unit='Ohm'))
def read_resistivity(self):
return self.query('HTR:RES')
def read_value(self):
return self.query('HTR:SIG:POWR') * 1e-6
def read_target(self):
if self.controlled_by != 0:
return Done
return self.value
def write_target(self, value):
self.write_controlled_by(SELF)
return self.change('HTR:SIG:POWR', value * 1e6)
class HeaterOutputWithRange(HeaterOutput):
"""heater output with heater range"""
channel_type = 'HTR,TEMP'
limit = Parameter('max. heater power', FloatRange(unit='W'), readonly=False)
def read_limit(self):
maxcur = self.query('TEMP:LOOP:RANGE') * 0.001 # mA -> A
return self.read_resistivity() * maxcur ** 2
def write_limit(self, value):
if value is None:
maxcur = 0.1 # max. allowed current 100mA
else:
maxcur = sqrt(value / self.read_resistivity())
self.change('TEMP:LOOP:RANGE', maxcur * 1000)
return self.read_limit()