Compare commits
18 Commits
wip
...
uniax_may2
Author | SHA1 | Date | |
---|---|---|---|
daa4c72133 | |||
96f4133a4b | |||
1409959f53 | |||
10147b0db5 | |||
e2f258658c | |||
3d67fef557 | |||
eb3d35e1a6 | |||
2863c2bca0 | |||
![]() |
390c955a8a | ||
539d97a733 | |||
1fd16bbc43 | |||
5e77a43f6c | |||
3e7b008a59 | |||
2f96a2db92 | |||
fab950550d | |||
801eab4b13 | |||
06551b17e2 | |||
4a0796a1bd |
@ -15,6 +15,7 @@ branches:
|
|||||||
- work: current working version, usually in use on /home/l_samenv/frappy (and on neutron instruments)
|
- work: current working version, usually in use on /home/l_samenv/frappy (and on neutron instruments)
|
||||||
this should be a copy of an earlier state of the wip branch
|
this should be a copy of an earlier state of the wip branch
|
||||||
- wip: current test version, usually in use on /home/l_samenv/frappy_wip
|
- wip: current test version, usually in use on /home/l_samenv/frappy_wip
|
||||||
|
|
||||||
IMPORTANT: make commits containing either only files to be pushed to Gerrit or only
|
IMPORTANT: make commits containing either only files to be pushed to Gerrit or only
|
||||||
PSI internal files, not mixed. Mark local commits with '[PSI]' in the commit message.
|
PSI internal files, not mixed. Mark local commits with '[PSI]' in the commit message.
|
||||||
|
|
||||||
@ -34,7 +35,7 @@ where commits may be cherry picked for input to Gerrit. As generally in the revi
|
|||||||
changes are done, eventually a sync step should happen:
|
changes are done, eventually a sync step should happen:
|
||||||
|
|
||||||
1) ideally, this is done when work and wip match
|
1) ideally, this is done when work and wip match
|
||||||
2) make sure branches mlz, master, wip and work are in syns with remote, push/pull otherwise
|
2) make sure branches mlz, master, wip and work are in synv with remote, push/pull otherwise
|
||||||
3) cherry-pick commits from mlz to master
|
3) cherry-pick commits from mlz to master
|
||||||
4) make sure master and mlz branches match (git diff --name-only master..wip should only return README.md)
|
4) make sure master and mlz branches match (git diff --name-only master..wip should only return README.md)
|
||||||
5) create branch new_work from master
|
5) create branch new_work from master
|
||||||
|
13
cfg/addons/ah2700.cfg
Normal file
13
cfg/addons/ah2700.cfg
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
[NODE]
|
||||||
|
description = Andeen Hagerlin 2700 Capacitance Bridge
|
||||||
|
id = ah2700.frappy.psi.ch
|
||||||
|
|
||||||
|
[module cap]
|
||||||
|
class = secop_psi.ah2700.Capacitance
|
||||||
|
description = capacitance
|
||||||
|
uri=lollypop-ts:3002
|
||||||
|
|
||||||
|
#[module ahcom]
|
||||||
|
#class = secop_psi.ah2700.StringIO
|
||||||
|
#uri=ldmse3-ts:3015
|
||||||
|
#description = serial communicator to an AH2700
|
20
cfg/addons/ah2700sea.cfg
Normal file
20
cfg/addons/ah2700sea.cfg
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
[NODE]
|
||||||
|
description = Andeen Hagerlin 2700 Capacitance Bridge using SEA
|
||||||
|
id = ah2700.addon.sea.psi.ch
|
||||||
|
|
||||||
|
[sea_addons]
|
||||||
|
class = secop_psi.sea.SeaClient
|
||||||
|
description = SEA connection to mbe_ah2700
|
||||||
|
config = ah2700.addon
|
||||||
|
export = False
|
||||||
|
service = addons
|
||||||
|
|
||||||
|
[cap]
|
||||||
|
class = secop_psi.sea.SeaReadable
|
||||||
|
iodev = sea_addons
|
||||||
|
sea_object = cap
|
||||||
|
|
||||||
|
[capslope]
|
||||||
|
class = secop_psi.sea.SeaReadable
|
||||||
|
iodev = sea_addons
|
||||||
|
sea_object = capslope
|
14
cfg/addons/focus-be-filter.cfg
Normal file
14
cfg/addons/focus-be-filter.cfg
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
[NODE]
|
||||||
|
description = FOCUS Beryllium filter with cryotel closed cycle
|
||||||
|
id = focus-be-filter.addon.sea.psi.ch
|
||||||
|
|
||||||
|
[sea_addons]
|
||||||
|
class = secop_psi.sea.SeaClient
|
||||||
|
description = SEA connection to addons
|
||||||
|
config = focus-be-filter.addon
|
||||||
|
service = addons
|
||||||
|
|
||||||
|
[befilter]
|
||||||
|
class = secop_psi.sea.SeaReadable
|
||||||
|
iodev = sea_addons
|
||||||
|
sea_object = cryo
|
35
cfg/develop/sea.cfg
Normal file
35
cfg/develop/sea.cfg
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
[node seatest.psi.ch]
|
||||||
|
description = SEA test
|
||||||
|
|
||||||
|
[interface tcp]
|
||||||
|
type = tcp
|
||||||
|
bindto = 0.0.0.0
|
||||||
|
bindport = 5002
|
||||||
|
|
||||||
|
[module seaconn]
|
||||||
|
class = secop_psi.sea.SeaClient
|
||||||
|
description = a SEA connection
|
||||||
|
uri = tcp://samenv.psi.ch:8645
|
||||||
|
|
||||||
|
#[module t1]
|
||||||
|
#class = secop_psi.sea.SeaDrivable
|
||||||
|
#iodev = seaconn
|
||||||
|
#json_descr = tt.flamp.config
|
||||||
|
#remote_paths = . t1
|
||||||
|
|
||||||
|
#[module tw1]
|
||||||
|
#class = secop_psi.sea.SeaReadable
|
||||||
|
#iodev = seaconn
|
||||||
|
#json_descr = wall.lampovenwall.addon
|
||||||
|
#remote_paths = tw1
|
||||||
|
|
||||||
|
#[module pv]
|
||||||
|
#class = secop_psi.sea.SeaReadable
|
||||||
|
#iodev = seaconn
|
||||||
|
#json_descr = pv.flamp.config
|
||||||
|
|
||||||
|
#[module mf]
|
||||||
|
#class = secop.Proxy
|
||||||
|
#remote_class = secop_psi.ppms.Field
|
||||||
|
#description = magnetic field
|
||||||
|
#iodev = secnode
|
15
cfg/dpm.cfg
Normal file
15
cfg/dpm.cfg
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
[NODE]
|
||||||
|
description = DPM driver for pressure cell
|
||||||
|
id = dpm.psi.ch
|
||||||
|
|
||||||
|
[INTERFACE]
|
||||||
|
uri = tcp://5000
|
||||||
|
|
||||||
|
[force]
|
||||||
|
description = DPM driver to read out the transducer value, write and read the offset and scale factor
|
||||||
|
class = secop_psi.dpm.DPM3
|
||||||
|
# uri = ldmse-d910-ts.psi.ch:3001
|
||||||
|
uri = serial:///dev/ttyUSB1
|
||||||
|
digits = 2
|
||||||
|
scale_factor = 0.0156
|
||||||
|
|
20
cfg/main/ccr2.cfg
Normal file
20
cfg/main/ccr2.cfg
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
[NODE]
|
||||||
|
description = sumitomo 4 K closed cycle refrigerator (FOCUS)
|
||||||
|
id = ccr2.config.sea.psi.ch
|
||||||
|
|
||||||
|
[sea_main]
|
||||||
|
class = secop_psi.sea.SeaClient
|
||||||
|
description = SEA connection to main
|
||||||
|
config = ccr2.config
|
||||||
|
service = main
|
||||||
|
|
||||||
|
[tt]
|
||||||
|
class = secop_psi.sea.SeaDrivable
|
||||||
|
iodev = sea_main
|
||||||
|
sea_object = tt
|
||||||
|
|
||||||
|
#[tscreen]
|
||||||
|
#class = secop_psi.sea.SeaReadable
|
||||||
|
#iodev = sea_main
|
||||||
|
#sea_object = tt
|
||||||
|
#rel_paths = te
|
27
cfg/main/ccr2ht.cfg
Normal file
27
cfg/main/ccr2ht.cfg
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
[NODE]
|
||||||
|
description = sumitomo 4 K closed cycle refrigerator with hot stage (FOCUS)
|
||||||
|
id = ccr2ht.config.sea.psi.ch
|
||||||
|
|
||||||
|
[sea_main]
|
||||||
|
class = secop_psi.sea.SeaClient
|
||||||
|
description = main SEA connection
|
||||||
|
config = ccr2ht.config
|
||||||
|
service = main
|
||||||
|
|
||||||
|
[tt]
|
||||||
|
class = secop_psi.sea.SeaDrivable
|
||||||
|
iodev = sea_main
|
||||||
|
sea_object = tt
|
||||||
|
|
||||||
|
#[tscreen]
|
||||||
|
#class = secop_psi.sea.SeaReadable
|
||||||
|
#iodev = sea_main
|
||||||
|
#sea_object = tt
|
||||||
|
#rel_paths = te
|
||||||
|
|
||||||
|
[tcoldfinger]
|
||||||
|
class = secop_psi.sea.SeaReadable
|
||||||
|
iodev = sea_main
|
||||||
|
sea_object = tt
|
||||||
|
rel_paths = tk
|
||||||
|
|
55
cfg/main/ill5.cfg
Normal file
55
cfg/main/ill5.cfg
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
[NODE]
|
||||||
|
description = orange cryostat with 100 mm sample space
|
||||||
|
id = ill5.config.sea.psi.ch
|
||||||
|
|
||||||
|
[sea_main]
|
||||||
|
class = secop_psi.sea.SeaClient
|
||||||
|
description = main SEA connection to ill5.config
|
||||||
|
config = ill5.config
|
||||||
|
service = main
|
||||||
|
|
||||||
|
[t]
|
||||||
|
class = secop_psi.sea.SeaDrivable
|
||||||
|
iodev = sea_main
|
||||||
|
sea_object = tt
|
||||||
|
|
||||||
|
[tm]
|
||||||
|
class = secop_psi.sea.SeaDrivable
|
||||||
|
iodev = sea_main
|
||||||
|
sea_object = tt
|
||||||
|
rel_paths = tm
|
||||||
|
|
||||||
|
[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
|
85
cfg/main/ma11.cfg
Normal file
85
cfg/main/ma11.cfg
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
[NODE]
|
||||||
|
description = MA11 cryomagnet for SANS
|
||||||
|
id = ma11.config.sea.psi.ch
|
||||||
|
|
||||||
|
[sea_main]
|
||||||
|
class = secop_psi.sea.SeaClient
|
||||||
|
description = main sea connection for ma11.config
|
||||||
|
config = ma11.config
|
||||||
|
service = main
|
||||||
|
|
||||||
|
[tt]
|
||||||
|
class = secop_psi.sea.SeaDrivable
|
||||||
|
iodev = sea_main
|
||||||
|
sea_object = tt
|
||||||
|
rel_paths = . tm
|
||||||
|
|
||||||
|
[cc]
|
||||||
|
class = secop_psi.sea.SeaReadable
|
||||||
|
iodev = sea_main
|
||||||
|
sea_object = cc
|
||||||
|
|
||||||
|
[nv]
|
||||||
|
class = secop_psi.sea.SeaWritable
|
||||||
|
iodev = sea_main
|
||||||
|
sea_object = nv
|
||||||
|
|
||||||
|
[hepump]
|
||||||
|
class = secop_psi.sea.SeaWritable
|
||||||
|
iodev = sea_main
|
||||||
|
sea_object = hepump
|
||||||
|
|
||||||
|
[hemot]
|
||||||
|
class = secop_psi.sea.SeaDrivable
|
||||||
|
iodev = sea_main
|
||||||
|
sea_object = hemot
|
||||||
|
|
||||||
|
[ln2fill]
|
||||||
|
class = secop_psi.sea.SeaWritable
|
||||||
|
iodev = sea_main
|
||||||
|
sea_object = ln2fill
|
||||||
|
|
||||||
|
[hefill]
|
||||||
|
class = secop_psi.sea.SeaWritable
|
||||||
|
iodev = sea_main
|
||||||
|
sea_object = hefill
|
||||||
|
|
||||||
|
[lev]
|
||||||
|
class = secop_psi.sea.SeaReadable
|
||||||
|
iodev = sea_main
|
||||||
|
sea_object = lev
|
||||||
|
|
||||||
|
[mf]
|
||||||
|
class = secop_psi.sea.SeaDrivable
|
||||||
|
iodev = sea_main
|
||||||
|
sea_object = mf
|
||||||
|
|
||||||
|
[tcoil]
|
||||||
|
class = secop_psi.sea.SeaReadable
|
||||||
|
iodev = sea_main
|
||||||
|
sea_object = tcoil
|
||||||
|
|
||||||
|
[table]
|
||||||
|
class = secop_psi.sea.SeaReadable
|
||||||
|
iodev = sea_main
|
||||||
|
sea_object = table
|
||||||
|
|
||||||
|
[ccu2]
|
||||||
|
class = secop_psi.sea.SeaWritable
|
||||||
|
iodev = sea_main
|
||||||
|
sea_object = ccu2
|
||||||
|
|
||||||
|
[lnv]
|
||||||
|
class = secop_psi.sea.SeaWritable
|
||||||
|
iodev = sea_main
|
||||||
|
sea_object = lnv
|
||||||
|
|
||||||
|
[lpr]
|
||||||
|
class = secop_psi.sea.SeaDrivable
|
||||||
|
iodev = sea_main
|
||||||
|
sea_object = lpr
|
||||||
|
|
||||||
|
[lambdawatch]
|
||||||
|
class = secop_psi.sea.SeaReadable
|
||||||
|
iodev = sea_main
|
||||||
|
sea_object = lambdawatch
|
73
cfg/main/ma7.cfg
Normal file
73
cfg/main/ma7.cfg
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
[NODE]
|
||||||
|
description = 6.8 Tesla horizontal cryomagnet
|
||||||
|
id = ma7.config.sea.psi.ch
|
||||||
|
|
||||||
|
[sea_main]
|
||||||
|
class = secop_psi.sea.SeaClient
|
||||||
|
description = main sea connection for ma7.config
|
||||||
|
config = ma7.config
|
||||||
|
service = main
|
||||||
|
|
||||||
|
[tt]
|
||||||
|
class = secop_psi.sea.SeaDrivable
|
||||||
|
iodev = sea_main
|
||||||
|
sea_object = tt
|
||||||
|
rel_paths = . tm
|
||||||
|
|
||||||
|
[cc]
|
||||||
|
class = secop_psi.sea.SeaReadable
|
||||||
|
iodev = sea_main
|
||||||
|
sea_object = cc
|
||||||
|
|
||||||
|
[nv]
|
||||||
|
class = secop_psi.sea.SeaWritable
|
||||||
|
iodev = sea_main
|
||||||
|
sea_object = nv
|
||||||
|
|
||||||
|
[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
|
||||||
|
|
||||||
|
[ln2fill]
|
||||||
|
class = secop_psi.sea.SeaWritable
|
||||||
|
iodev = sea_main
|
||||||
|
sea_object = ln2fill
|
||||||
|
|
||||||
|
[mf]
|
||||||
|
class = secop_psi.sea.SeaReadable
|
||||||
|
iodev = sea_main
|
||||||
|
sea_object = mf
|
||||||
|
|
||||||
|
[lev]
|
||||||
|
class = secop_psi.sea.SeaReadable
|
||||||
|
iodev = sea_main
|
||||||
|
sea_object = lev
|
||||||
|
|
||||||
|
[tcoil1]
|
||||||
|
class = secop_psi.sea.SeaReadable
|
||||||
|
iodev = sea_main
|
||||||
|
sea_object = tcoil
|
||||||
|
rel_paths = ta
|
||||||
|
|
||||||
|
[tcoil2]
|
||||||
|
class = secop_psi.sea.SeaReadable
|
||||||
|
iodev = sea_main
|
||||||
|
sea_object = tcoil
|
||||||
|
rel_paths = tb
|
||||||
|
|
||||||
|
[table]
|
||||||
|
class = secop_psi.sea.SeaReadable
|
||||||
|
iodev = sea_main
|
||||||
|
sea_object = table
|
||||||
|
|
35
cfg/main/mbe.cfg
Normal file
35
cfg/main/mbe.cfg
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
[NODE]
|
||||||
|
description = thin film oven for AMOR
|
||||||
|
id = mbe.config.sea.psi.ch
|
||||||
|
|
||||||
|
[sea_main]
|
||||||
|
class = secop_psi.sea.SeaClient
|
||||||
|
description = SEA connection to mbe
|
||||||
|
config = mbe.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
|
||||||
|
|
||||||
|
[p]
|
||||||
|
class = secop_psi.sea.SeaReadable
|
||||||
|
iodev = sea_main
|
||||||
|
sea_object = p
|
||||||
|
extra_modules = vacuumpump, gasflow
|
||||||
|
|
||||||
|
[vacuumpump]
|
||||||
|
class = secop_psi.sea.SeaWritable
|
||||||
|
iodev = sea_main
|
||||||
|
single_module = p.vacuumpump
|
||||||
|
|
||||||
|
[gasflow]
|
||||||
|
class = secop_psi.sea.SeaWritable
|
||||||
|
iodev = sea_main
|
||||||
|
single_module = p.gasflow
|
60
cfg/main/ori4.cfg
Normal file
60
cfg/main/ori4.cfg
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
[NODE]
|
||||||
|
description = orange cryostat with 100 mm sample space (HRPT)
|
||||||
|
id = ori4.config.sea.psi.ch
|
||||||
|
|
||||||
|
[sea_main]
|
||||||
|
class = secop_psi.sea.SeaClient
|
||||||
|
description = SEA connection to ori4
|
||||||
|
config = ori4.config
|
||||||
|
service = main
|
||||||
|
|
||||||
|
[t]
|
||||||
|
class = secop_psi.sea.SeaDrivable
|
||||||
|
iodev = sea_main
|
||||||
|
sea_object = tt
|
||||||
|
|
||||||
|
[tm]
|
||||||
|
class = secop_psi.sea.SeaDrivable
|
||||||
|
iodev = sea_main
|
||||||
|
sea_object = tt
|
||||||
|
rel_paths = tm
|
||||||
|
|
||||||
|
[cc]
|
||||||
|
class = secop_psi.sea.SeaReadable
|
||||||
|
iodev = sea_main
|
||||||
|
sea_object = cc
|
||||||
|
|
||||||
|
[nv]
|
||||||
|
class = secop_psi.sea.SeaWritable
|
||||||
|
iodev = sea_main
|
||||||
|
sea_object = nv
|
||||||
|
|
||||||
|
[nvmot]
|
||||||
|
class = secop_psi.sea.SeaDrivable
|
||||||
|
iodev = sea_main
|
||||||
|
sea_object = nvmot
|
||||||
|
|
||||||
|
[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
|
15
cfg/sea/ah2700.addon.json
Normal file
15
cfg/sea/ah2700.addon.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{"cap": {"base": "/cap", "params": [{"path": "", "type": "none", "kids": 8},
|
||||||
|
{"path": "send", "type": "text", "readonly": false, "cmd": "cap send", "visibility": 3},
|
||||||
|
{"path": "status", "type": "text", "visibility": 3},
|
||||||
|
{"path": "cap", "type": "float"},
|
||||||
|
{"path": "loss", "type": "float"},
|
||||||
|
{"path": "period", "type": "float", "readonly": false, "cmd": "cap period"},
|
||||||
|
{"path": "freq", "type": "float", "readonly": false, "cmd": "cap freq"},
|
||||||
|
{"path": "V", "type": "float", "readonly": false, "cmd": "cap V"},
|
||||||
|
{"path": "average", "type": "int", "readonly": false, "cmd": "cap average"}]}, "capslope": {"base": "/capslope", "params": [{"path": "", "type": "float", "kids": 6},
|
||||||
|
{"path": "send", "type": "text", "readonly": false, "cmd": "capslope send", "visibility": 3},
|
||||||
|
{"path": "status", "type": "text", "visibility": 3},
|
||||||
|
{"path": "node", "type": "text", "readonly": false, "cmd": "capslope node"},
|
||||||
|
{"path": "unit", "type": "float", "readonly": false, "cmd": "capslope unit", "description": "unit=60: mainunits/minutes, unit=1: mainunits/sec"},
|
||||||
|
{"path": "ref", "type": "float", "readonly": false, "cmd": "capslope ref"},
|
||||||
|
{"path": "buffersize", "type": "float", "readonly": false, "cmd": "capslope buffersize"}]}}
|
155
cfg/sea/ccr2.config.json
Normal file
155
cfg/sea/ccr2.config.json
Normal file
@ -0,0 +1,155 @@
|
|||||||
|
{"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": "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": "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": "te", "type": "float", "kids": 4},
|
||||||
|
{"path": "te/curve", "type": "text", "readonly": false, "cmd": "tt te/curve", "kids": 1},
|
||||||
|
{"path": "te/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt te/curve/points", "visibility": 3},
|
||||||
|
{"path": "te/alarm", "type": "float", "readonly": false, "cmd": "tt te/alarm"},
|
||||||
|
{"path": "te/stddev", "type": "float"},
|
||||||
|
{"path": "te/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": "dout", "type": "int", "readonly": false, "cmd": "tt dout"},
|
||||||
|
{"path": "dinp", "type": "int"},
|
||||||
|
{"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"},
|
||||||
|
{"path": "hwr0", "type": "float", "readonly": false, "cmd": "cc hwr0"},
|
||||||
|
{"path": "hem0", "type": "float", "readonly": false, "cmd": "cc hem0", "description": "sensor length in mm from top to empty pos."},
|
||||||
|
{"path": "hfu0", "type": "float", "readonly": false, "cmd": "cc hfu0", "description": "sensor length in mm from top to full pos."},
|
||||||
|
{"path": "hd0", "type": "float", "readonly": false, "cmd": "cc hd0", "description": "external sensor drive current (mA)"},
|
||||||
|
{"path": "h0", "type": "float"},
|
||||||
|
{"path": "hs0", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}},
|
||||||
|
{"path": "h1", "type": "float"},
|
||||||
|
{"path": "hs1", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}},
|
||||||
|
{"path": "h2", "type": "float"},
|
||||||
|
{"path": "hs2", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}},
|
||||||
|
{"path": "h3", "type": "float"},
|
||||||
|
{"path": "hs3", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}},
|
||||||
|
{"path": "h4", "type": "float"},
|
||||||
|
{"path": "hs4", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}},
|
||||||
|
{"path": "h5", "type": "float"},
|
||||||
|
{"path": "hs5", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}},
|
||||||
|
{"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"},
|
||||||
|
{"path": "tn", "type": "float"},
|
||||||
|
{"path": "th", "type": "float"},
|
||||||
|
{"path": "tf", "type": "float"},
|
||||||
|
{"path": "tm", "type": "float"},
|
||||||
|
{"path": "tv", "type": "float"},
|
||||||
|
{"path": "tq", "type": "float"},
|
||||||
|
{"path": "bdl", "type": "float", "readonly": false, "cmd": "cc bdl"}]}}
|
20
cfg/sea/ccr2ht.cfg
Normal file
20
cfg/sea/ccr2ht.cfg
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
[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
|
||||||
|
iodev = sea_main
|
||||||
|
sea_object = tt
|
||||||
|
|
||||||
|
[cc]
|
||||||
|
class = secop_psi.sea.SeaReadable
|
||||||
|
iodev = sea_main
|
||||||
|
sea_object = cc
|
||||||
|
|
||||||
|
[table]
|
||||||
|
class = secop_psi.sea.SeaReadable
|
||||||
|
iodev = sea_main
|
||||||
|
sea_object = table
|
169
cfg/sea/ccr2ht.config.json
Normal file
169
cfg/sea/ccr2ht.config.json
Normal file
@ -0,0 +1,169 @@
|
|||||||
|
{"tt": {"base": "/tt", "params": [{"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", "readonly": false, "cmd": "tt is_running", "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": "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": "te", "type": "float", "kids": 4},
|
||||||
|
{"path": "te/curve", "type": "text", "readonly": false, "cmd": "tt te/curve", "kids": 1},
|
||||||
|
{"path": "te/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt te/curve/points", "visibility": 3},
|
||||||
|
{"path": "te/alarm", "type": "float", "readonly": false, "cmd": "tt te/alarm"},
|
||||||
|
{"path": "te/stddev", "type": "float"},
|
||||||
|
{"path": "te/raw", "type": "float"},
|
||||||
|
{"path": "tk", "type": "float", "kids": 4},
|
||||||
|
{"path": "tk/curve", "type": "text", "readonly": false, "cmd": "tt tk/curve", "kids": 1},
|
||||||
|
{"path": "tk/curve/points", "type": "floatvarar", "readonly": false, "cmd": "tt tk/curve/points", "visibility": 3},
|
||||||
|
{"path": "tk/alarm", "type": "float", "readonly": false, "cmd": "tt tk/alarm"},
|
||||||
|
{"path": "tk/stddev", "type": "float"},
|
||||||
|
{"path": "tk/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": "dout", "type": "int", "readonly": false, "cmd": "tt dout"},
|
||||||
|
{"path": "dinp", "type": "int"},
|
||||||
|
{"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"},
|
||||||
|
{"path": "hwr0", "type": "float", "readonly": false, "cmd": "cc hwr0"},
|
||||||
|
{"path": "hem0", "type": "float", "readonly": false, "cmd": "cc hem0", "description": "sensor length in mm from top to empty pos."},
|
||||||
|
{"path": "hfu0", "type": "float", "readonly": false, "cmd": "cc hfu0", "description": "sensor length in mm from top to full pos."},
|
||||||
|
{"path": "hd0", "type": "float", "readonly": false, "cmd": "cc hd0", "description": "external sensor drive current (mA)"},
|
||||||
|
{"path": "h0", "type": "float"},
|
||||||
|
{"path": "hs0", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}},
|
||||||
|
{"path": "h1", "type": "float"},
|
||||||
|
{"path": "hs1", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}},
|
||||||
|
{"path": "h2", "type": "float"},
|
||||||
|
{"path": "hs2", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}},
|
||||||
|
{"path": "h3", "type": "float"},
|
||||||
|
{"path": "hs3", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}},
|
||||||
|
{"path": "h4", "type": "float"},
|
||||||
|
{"path": "hs4", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}},
|
||||||
|
{"path": "h5", "type": "float"},
|
||||||
|
{"path": "hs5", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}},
|
||||||
|
{"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"},
|
||||||
|
{"path": "tn", "type": "float"},
|
||||||
|
{"path": "th", "type": "float"},
|
||||||
|
{"path": "tf", "type": "float"},
|
||||||
|
{"path": "tm", "type": "float"},
|
||||||
|
{"path": "tv", "type": "float"},
|
||||||
|
{"path": "tq", "type": "float"},
|
||||||
|
{"path": "bdl", "type": "float", "readonly": false, "cmd": "cc bdl"}]}, "table": {"base": "/table", "params": [{"path": "", "type": "none", "kids": 8},
|
||||||
|
{"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 ..."}]}}
|
20
cfg/sea/focus-be-filter.addon.json
Normal file
20
cfg/sea/focus-be-filter.addon.json
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
{"cryo": {"base": "/cryo", "params": [{"path": "", "type": "float", "kids": 14},
|
||||||
|
{"path": "send", "type": "text", "readonly": false, "cmd": "cryo send", "visibility": 3},
|
||||||
|
{"path": "status", "type": "text", "visibility": 3},
|
||||||
|
{"path": "cool", "type": "enum", "enum": {"on": 0, "off": 1}, "readonly": false, "cmd": "cryo cool"},
|
||||||
|
{"path": "control", "type": "enum", "enum": {"auto_power": 1, "manual_power": 0, "controlled_T": 2}, "readonly": false, "cmd": "cryo control", "description": "recommended mode: auto_power, use coolpower or holdpower depending on T"},
|
||||||
|
{"path": "set", "type": "float", "readonly": false, "cmd": "cryo set"},
|
||||||
|
{"path": "setpower", "type": "float", "readonly": false, "cmd": "cryo setpower", "visibility": 3},
|
||||||
|
{"path": "prop", "type": "float", "readonly": false, "cmd": "cryo prop"},
|
||||||
|
{"path": "integ", "type": "float", "readonly": false, "cmd": "cryo integ"},
|
||||||
|
{"path": "coolpower", "type": "float", "readonly": false, "cmd": "cryo coolpower", "visibility": 3},
|
||||||
|
{"path": "holdpower", "type": "float", "readonly": false, "cmd": "cryo holdpower", "visibility": 3},
|
||||||
|
{"path": "cool_threshold", "type": "float", "readonly": false, "cmd": "cryo cool_threshold", "description": "switch to coolpower above this value", "visibility": 3},
|
||||||
|
{"path": "hold_threshold", "type": "float", "readonly": false, "cmd": "cryo hold_threshold", "description": "switch to holdpower below this value", "visibility": 3},
|
||||||
|
{"path": "power", "type": "float"},
|
||||||
|
{"path": "filter", "type": "none", "kids": 5},
|
||||||
|
{"path": "filter/period", "type": "float", "readonly": false, "cmd": "cryo filter/period", "description": "oszillation period / sec"},
|
||||||
|
{"path": "filter/amplitude", "type": "float", "readonly": false, "cmd": "cryo filter/amplitude", "description": "oszillation amplitude / K (+/-)"},
|
||||||
|
{"path": "filter/precision", "type": "float", "readonly": false, "cmd": "cryo filter/precision"},
|
||||||
|
{"path": "filter/raw", "type": "float"},
|
||||||
|
{"path": "filter/intdif", "type": "float"}]}, "addonlock_focus-be-filter": {"base": "/addonlock_focus-be-filter", "params": [{"path": "", "type": "text", "readonly": false, "cmd": "addonlock_focus-be-filter = "}]}}
|
15
cfg/sea/focus-be-filter.cfg
Normal file
15
cfg/sea/focus-be-filter.cfg
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
[sea_addons]
|
||||||
|
class = secop_psi.sea.SeaClient
|
||||||
|
description = SEA connection to ccr2ht_focus-be-filter
|
||||||
|
config = focus-be-filter.addon
|
||||||
|
service = addons
|
||||||
|
|
||||||
|
[cryo]
|
||||||
|
class = secop_psi.sea.SeaReadable
|
||||||
|
iodev = sea_addons
|
||||||
|
sea_object = cryo
|
||||||
|
|
||||||
|
[addonlock_focus-be-filter]
|
||||||
|
class = secop_psi.sea.SeaWritable
|
||||||
|
iodev = sea_addons
|
||||||
|
sea_object = addonlock_focus-be-filter
|
277
cfg/sea/ill5.config.json
Normal file
277
cfg/sea/ill5.config.json
Normal file
@ -0,0 +1,277 @@
|
|||||||
|
{"tt": {"base": "/tt", "params": [{"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", "readonly": false, "cmd": "tt is_running", "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"}]}, "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": {"watching": 0, "fill": 1, "inactive": 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": {"no fill valve": 2}, "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": 9},
|
||||||
|
{"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", "visibility": 3},
|
||||||
|
{"path": "eco", "type": "bool", "readonly": false, "cmd": "hepump eco", "visibility": 3},
|
||||||
|
{"path": "auto", "type": "bool", "readonly": false, "cmd": "hepump auto", "visibility": 3},
|
||||||
|
{"path": "valve", "type": "enum", "enum": {"closed": 0, "closing": 1, "opening": 2, "opened": 3, "undefined": 4}, "readonly": false, "cmd": "hepump valve", "visibility": 3},
|
||||||
|
{"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", "visibility": 3},
|
||||||
|
{"path": "calib", "type": "float", "readonly": false, "cmd": "hepump calib", "visibility": 3}]}, "hemot": {"base": "/hepump/hemot", "params": [{"path": "", "type": "float", "readonly": false, "cmd": "run hemot", "visibility": 3, "kids": 32},
|
||||||
|
{"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": "input0", "type": "float"},
|
||||||
|
{"path": "input0raw", "type": "float"},
|
||||||
|
{"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"}]}, "table": {"base": "/table", "params": [{"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 ..."}]}}
|
465
cfg/sea/ma11.config.json
Normal file
465
cfg/sea/ma11.config.json
Normal file
@ -0,0 +1,465 @@
|
|||||||
|
{"tt": {"base": "/tt", "params": [{"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", "readonly": false, "cmd": "tt is_running", "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": "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": "setsamp", "type": "float", "readonly": false, "cmd": "tt setsamp", "kids": 18},
|
||||||
|
{"path": "setsamp/mode", "type": "enum", "enum": {"disabled": -1, "off": 0, "controlling": 1, "manual": 2}, "readonly": false, "cmd": "tt setsamp/mode"},
|
||||||
|
{"path": "setsamp/reg", "type": "float"},
|
||||||
|
{"path": "setsamp/ramp", "type": "float", "readonly": false, "cmd": "tt setsamp/ramp", "description": "maximum ramp in K/min (0: ramp off)"},
|
||||||
|
{"path": "setsamp/wramp", "type": "float", "readonly": false, "cmd": "tt setsamp/wramp"},
|
||||||
|
{"path": "setsamp/smooth", "type": "float", "readonly": false, "cmd": "tt setsamp/smooth", "description": "smooth time (minutes)"},
|
||||||
|
{"path": "setsamp/channel", "type": "text", "readonly": false, "cmd": "tt setsamp/channel"},
|
||||||
|
{"path": "setsamp/limit", "type": "float", "readonly": false, "cmd": "tt setsamp/limit"},
|
||||||
|
{"path": "setsamp/resist", "type": "float", "readonly": false, "cmd": "tt setsamp/resist"},
|
||||||
|
{"path": "setsamp/maxheater", "type": "text", "readonly": false, "cmd": "tt setsamp/maxheater", "description": "maximum heater limit, units should be given without space: W, mW, A, mA"},
|
||||||
|
{"path": "setsamp/linearpower", "type": "float", "readonly": false, "cmd": "tt setsamp/linearpower", "description": "when not 0, it is the maximum effective power, and the power is linear to the heater output"},
|
||||||
|
{"path": "setsamp/maxpowerlim", "type": "float", "description": "the maximum power limit (before any booster or converter)"},
|
||||||
|
{"path": "setsamp/maxpower", "type": "float", "readonly": false, "cmd": "tt setsamp/maxpower", "description": "maximum power [W]"},
|
||||||
|
{"path": "setsamp/maxcurrent", "type": "float", "description": "the maximum current before any booster or converter"},
|
||||||
|
{"path": "setsamp/manualpower", "type": "float", "readonly": false, "cmd": "tt setsamp/manualpower"},
|
||||||
|
{"path": "setsamp/power", "type": "float"},
|
||||||
|
{"path": "setsamp/prop", "type": "float", "readonly": false, "cmd": "tt setsamp/prop", "description": "bigger means more gain"},
|
||||||
|
{"path": "setsamp/integ", "type": "float", "readonly": false, "cmd": "tt setsamp/integ", "description": "bigger means faster"},
|
||||||
|
{"path": "setsamp/deriv", "type": "float", "readonly": false, "cmd": "tt setsamp/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"}]}, "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": 9},
|
||||||
|
{"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}]}, "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": "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": "input0", "type": "float"},
|
||||||
|
{"path": "input0raw", "type": "float"},
|
||||||
|
{"path": "pullup", "type": "float", "readonly": false, "cmd": "hemot pullup"},
|
||||||
|
{"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"}]}, "ln2fill": {"base": "/ln2fill", "params": [{"path": "", "type": "enum", "enum": {"no fill valve": 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"}]}, "hefill": {"base": "/hefill", "params": [{"path": "", "type": "enum", "enum": {"no fill valve": 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"}]}, "lev": {"base": "/lev", "params": [{"path": "", "type": "float", "kids": 4},
|
||||||
|
{"path": "send", "type": "text", "readonly": false, "cmd": "lev send", "visibility": 3},
|
||||||
|
{"path": "status", "type": "text", "visibility": 3},
|
||||||
|
{"path": "mode", "type": "enum", "enum": {"slow": 0, "fast (switches to slow automatically after filling)": 1}, "readonly": false, "cmd": "lev mode"},
|
||||||
|
{"path": "n2", "type": "float"}]}, "mf": {"base": "/mf", "params": [{"path": "", "type": "float", "kids": 26},
|
||||||
|
{"path": "is_running", "type": "int", "readonly": false, "cmd": "mf is_running", "visibility": 3},
|
||||||
|
{"path": "persmode", "type": "int", "readonly": false, "cmd": "mf persmode"},
|
||||||
|
{"path": "perswitch", "type": "int"},
|
||||||
|
{"path": "nowait", "type": "int", "readonly": false, "cmd": "mf nowait"},
|
||||||
|
{"path": "maxlimit", "type": "float", "visibility": 3},
|
||||||
|
{"path": "limit", "type": "float", "readonly": false, "cmd": "mf limit"},
|
||||||
|
{"path": "ramp", "type": "float", "readonly": false, "cmd": "mf ramp"},
|
||||||
|
{"path": "perscurrent", "type": "float", "readonly": false, "cmd": "mf perscurrent"},
|
||||||
|
{"path": "perslimit", "type": "float", "readonly": false, "cmd": "mf perslimit"},
|
||||||
|
{"path": "perswait", "type": "int", "readonly": false, "cmd": "mf perswait"},
|
||||||
|
{"path": "persdelay", "type": "int", "readonly": false, "cmd": "mf persdelay"},
|
||||||
|
{"path": "current", "type": "float"},
|
||||||
|
{"path": "measured", "type": "float"},
|
||||||
|
{"path": "voltage", "type": "float"},
|
||||||
|
{"path": "lastfield", "type": "float", "visibility": 3},
|
||||||
|
{"path": "ampRamp", "type": "float", "visibility": 3},
|
||||||
|
{"path": "inductance", "type": "float", "visibility": 3},
|
||||||
|
{"path": "trainedTo", "type": "float", "readonly": false, "cmd": "mf trainedTo"},
|
||||||
|
{"path": "trainMode", "type": "int"},
|
||||||
|
{"path": "external", "type": "int", "readonly": false, "cmd": "mf external"},
|
||||||
|
{"path": "startScript", "type": "text", "readonly": false, "cmd": "mf startScript", "visibility": 3},
|
||||||
|
{"path": "verbose", "type": "int", "readonly": false, "cmd": "mf verbose", "visibility": 3},
|
||||||
|
{"path": "driver", "type": "text", "visibility": 3},
|
||||||
|
{"path": "creationCmd", "type": "text", "visibility": 3},
|
||||||
|
{"path": "targetValue", "type": "float"},
|
||||||
|
{"path": "status", "type": "text", "readonly": false, "cmd": "mf status", "visibility": 3}]}, "tcoil": {"base": "/tcoil", "params": [{"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}]}, "table": {"base": "/table", "params": [{"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 ..."}]}, "ccu2": {"base": "/sics/ccu2", "params": [{"path": "", "type": "text", "readonly": false, "cmd": "ccu2", "kids": 23},
|
||||||
|
{"path": "tasks", "type": "none", "visibility": 3}]}, "lnv": {"base": "/lnv", "params": [{"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"}]}, "lpr": {"base": "/lpr", "params": [{"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", "readonly": false, "cmd": "lpr is_running", "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"}]}, "lambdawatch": {"base": "/lambdawatch", "params": [{"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"}]}, "prep0": {"base": "/prep0", "params": [{"path": "", "type": "text", "readonly": false, "cmd": "prep0", "kids": 2},
|
||||||
|
{"path": "send", "type": "text", "readonly": false, "cmd": "prep0 send", "visibility": 3},
|
||||||
|
{"path": "status", "type": "text", "visibility": 3}]}}
|
371
cfg/sea/ma7.config.json
Normal file
371
cfg/sea/ma7.config.json
Normal file
@ -0,0 +1,371 @@
|
|||||||
|
{"tt": {"base": "/tt", "params": [{"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", "readonly": false, "cmd": "tt is_running", "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"}]}, "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"},
|
||||||
|
{"path": "hwr0", "type": "float", "readonly": false, "cmd": "cc hwr0"},
|
||||||
|
{"path": "hem0", "type": "float", "readonly": false, "cmd": "cc hem0", "description": "sensor length in mm from top to empty pos."},
|
||||||
|
{"path": "hfu0", "type": "float", "readonly": false, "cmd": "cc hfu0", "description": "sensor length in mm from top to full pos."},
|
||||||
|
{"path": "hd0", "type": "float", "readonly": false, "cmd": "cc hd0", "description": "external sensor drive current (mA)"},
|
||||||
|
{"path": "h0", "type": "float"},
|
||||||
|
{"path": "hs0", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}},
|
||||||
|
{"path": "h1", "type": "float"},
|
||||||
|
{"path": "hs1", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}},
|
||||||
|
{"path": "h2", "type": "float"},
|
||||||
|
{"path": "hs2", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}},
|
||||||
|
{"path": "h3", "type": "float"},
|
||||||
|
{"path": "hs3", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}},
|
||||||
|
{"path": "h4", "type": "float"},
|
||||||
|
{"path": "hs4", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}},
|
||||||
|
{"path": "h5", "type": "float"},
|
||||||
|
{"path": "hs5", "type": "enum", "enum": {"sens_ok": 0, "sens_warm": 1, "no_sens": 2, "timeout": 3, "not_yet_read": 4, "disabled": 5}},
|
||||||
|
{"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"}]}, "hefill": {"base": "/hefill", "params": [{"path": "", "type": "enum", "enum": {"no fill valve": 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"}]}, "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": 9},
|
||||||
|
{"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", "visibility": 3},
|
||||||
|
{"path": "eco", "type": "bool", "readonly": false, "cmd": "hepump eco", "visibility": 3},
|
||||||
|
{"path": "auto", "type": "bool", "readonly": false, "cmd": "hepump auto", "visibility": 3},
|
||||||
|
{"path": "valve", "type": "enum", "enum": {"closed": 0, "closing": 1, "opening": 2, "opened": 3, "undefined": 4}, "readonly": false, "cmd": "hepump valve", "visibility": 3},
|
||||||
|
{"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", "visibility": 3},
|
||||||
|
{"path": "calib", "type": "float", "readonly": false, "cmd": "hepump calib", "visibility": 3}]}, "hemot": {"base": "/hepump/hemot", "params": [{"path": "", "type": "float", "readonly": false, "cmd": "run hemot", "visibility": 3, "kids": 32},
|
||||||
|
{"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": "input0", "type": "float"},
|
||||||
|
{"path": "input0raw", "type": "float"},
|
||||||
|
{"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"}]}, "ln2fill": {"base": "/ln2fill", "params": [{"path": "", "type": "enum", "enum": {"no fill valve": 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"}]}, "mf": {"base": "/mf", "params": [{"path": "", "type": "float", "kids": 26},
|
||||||
|
{"path": "persmode", "type": "int", "readonly": false, "cmd": "mf persmode"},
|
||||||
|
{"path": "perswitch", "type": "int"},
|
||||||
|
{"path": "nowait", "type": "int", "readonly": false, "cmd": "mf nowait"},
|
||||||
|
{"path": "maxlimit", "type": "float", "visibility": 3},
|
||||||
|
{"path": "limit", "type": "float", "readonly": false, "cmd": "mf limit"},
|
||||||
|
{"path": "ramp", "type": "float", "readonly": false, "cmd": "mf ramp"},
|
||||||
|
{"path": "perscurrent", "type": "float", "readonly": false, "cmd": "mf perscurrent"},
|
||||||
|
{"path": "perslimit", "type": "float", "readonly": false, "cmd": "mf perslimit"},
|
||||||
|
{"path": "perswait", "type": "int", "readonly": false, "cmd": "mf perswait"},
|
||||||
|
{"path": "persdelay", "type": "int", "readonly": false, "cmd": "mf persdelay"},
|
||||||
|
{"path": "current", "type": "float"},
|
||||||
|
{"path": "measured", "type": "float"},
|
||||||
|
{"path": "voltage", "type": "float"},
|
||||||
|
{"path": "lastfield", "type": "float", "visibility": 3},
|
||||||
|
{"path": "ampRamp", "type": "float", "visibility": 3},
|
||||||
|
{"path": "inductance", "type": "float", "visibility": 3},
|
||||||
|
{"path": "trainedTo", "type": "float", "readonly": false, "cmd": "mf trainedTo"},
|
||||||
|
{"path": "trainMode", "type": "int"},
|
||||||
|
{"path": "external", "type": "int", "readonly": false, "cmd": "mf external"},
|
||||||
|
{"path": "startScript", "type": "text", "readonly": false, "cmd": "mf startScript", "visibility": 3},
|
||||||
|
{"path": "is_running", "type": "int", "visibility": 3},
|
||||||
|
{"path": "verbose", "type": "int", "readonly": false, "cmd": "mf verbose", "visibility": 3},
|
||||||
|
{"path": "driver", "type": "text", "visibility": 3},
|
||||||
|
{"path": "creationCmd", "type": "text", "visibility": 3},
|
||||||
|
{"path": "targetValue", "type": "float"},
|
||||||
|
{"path": "status", "type": "text", "readonly": false, "cmd": "mf status"}]}, "lev": {"base": "/lev", "params": [{"path": "", "type": "float", "kids": 4},
|
||||||
|
{"path": "send", "type": "text", "readonly": false, "cmd": "lev send", "visibility": 3},
|
||||||
|
{"path": "status", "type": "text", "visibility": 3},
|
||||||
|
{"path": "mode", "type": "enum", "enum": {"slow": 0, "fast (switches to slow automatically after filling)": 1}, "readonly": false, "cmd": "lev mode"},
|
||||||
|
{"path": "n2", "type": "float"}]}, "tcoil": {"base": "/tcoil", "params": [{"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": "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": "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": "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": "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": "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": "ext", "type": "float", "visibility": 3},
|
||||||
|
{"path": "com", "type": "float", "visibility": 3},
|
||||||
|
{"path": "gnd", "type": "float", "visibility": 3}]}, "table": {"base": "/table", "params": [{"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 ..."}]}, "prep0": {"base": "/prep0", "params": [{"path": "", "type": "text", "readonly": false, "cmd": "prep0", "kids": 2},
|
||||||
|
{"path": "send", "type": "text", "readonly": false, "cmd": "prep0 send", "visibility": 3},
|
||||||
|
{"path": "status", "type": "text", "visibility": 3}]}}
|
153
cfg/sea/mbe.config.json
Normal file
153
cfg/sea/mbe.config.json
Normal file
@ -0,0 +1,153 @@
|
|||||||
|
{"tt": {"base": "/tt", "params": [{"path": "", "type": "float", "readonly": false, "cmd": "run tt", "description": "tt", "kids": 14},
|
||||||
|
{"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": "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": "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": "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"}]}, "p": {"base": "/p", "params": [{"path": "", "type": "float", "kids": 6},
|
||||||
|
{"path": "send", "type": "text", "readonly": false, "cmd": "p send", "visibility": 3},
|
||||||
|
{"path": "status", "type": "text", "visibility": 3},
|
||||||
|
{"path": "vacuumpump", "type": "bool", "readonly": false, "cmd": "p vacuumpump"},
|
||||||
|
{"path": "gasflow", "type": "bool", "readonly": false, "cmd": "p gasflow"},
|
||||||
|
{"path": "tlimit", "type": "float", "readonly": false, "cmd": "p tlimit"},
|
||||||
|
{"path": "tlimit_without_vacuum", "type": "float", "readonly": false, "cmd": "p tlimit_without_vacuum"}]}}
|
303
cfg/sea/ori4.config.json
Normal file
303
cfg/sea/ori4.config.json
Normal file
@ -0,0 +1,303 @@
|
|||||||
|
{"tt": {"base": "/tt", "params": [{"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", "readonly": false, "cmd": "tt is_running", "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"}]}, "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": 12},
|
||||||
|
{"path": "send", "type": "text", "readonly": false, "cmd": "nv send", "visibility": 3},
|
||||||
|
{"path": "status", "type": "text", "visibility": 3},
|
||||||
|
{"path": "flow", "type": "float"},
|
||||||
|
{"path": "motstat", "type": "text"},
|
||||||
|
{"path": "set", "type": "float", "readonly": false, "cmd": "nv set"},
|
||||||
|
{"path": "flowmax", "type": "float", "readonly": false, "cmd": "nv flowmax"},
|
||||||
|
{"path": "ctrl", "type": "none", "kids": 4},
|
||||||
|
{"path": "ctrl/prop", "type": "float", "readonly": false, "cmd": "nv ctrl/prop"},
|
||||||
|
{"path": "ctrl/int", "type": "float", "readonly": false, "cmd": "nv ctrl/int"},
|
||||||
|
{"path": "ctrl/delay", "type": "float", "readonly": false, "cmd": "nv ctrl/delay"},
|
||||||
|
{"path": "ctrl/tol", "type": "float", "readonly": false, "cmd": "nv ctrl/tol"},
|
||||||
|
{"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"},
|
||||||
|
{"path": "initialize", "type": "enum", "enum": {"check": 1, "adjust": 2, "stop": 3}, "readonly": false, "cmd": "nv initialize", "visibility": 3},
|
||||||
|
{"path": "initstate", "type": "text", "visibility": 3}]}, "nvmot": {"base": "/nv/nvmot", "params": [{"path": "", "type": "float", "readonly": false, "cmd": "run nvmot", "kids": 32},
|
||||||
|
{"path": "send", "type": "text", "readonly": false, "cmd": "nvmot send", "visibility": 3},
|
||||||
|
{"path": "status", "type": "text", "visibility": 3},
|
||||||
|
{"path": "is_running", "type": "int", "readonly": false, "cmd": "nvmot is_running", "visibility": 3},
|
||||||
|
{"path": "pos", "type": "float"},
|
||||||
|
{"path": "encoder", "type": "float"},
|
||||||
|
{"path": "zero", "type": "float", "readonly": false, "cmd": "nvmot zero"},
|
||||||
|
{"path": "lowerlimit", "type": "float", "readonly": false, "cmd": "nvmot lowerlimit"},
|
||||||
|
{"path": "upperlimit", "type": "float", "readonly": false, "cmd": "nvmot upperlimit"},
|
||||||
|
{"path": "disablelimits", "type": "bool", "readonly": false, "cmd": "nvmot disablelimits"},
|
||||||
|
{"path": "verbose", "type": "bool", "readonly": false, "cmd": "nvmot 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": "nvmot precision"},
|
||||||
|
{"path": "maxencdif", "type": "float", "readonly": false, "cmd": "nvmot maxencdif"},
|
||||||
|
{"path": "id", "type": "float", "readonly": false, "cmd": "nvmot id"},
|
||||||
|
{"path": "pump_number", "type": "float", "readonly": false, "cmd": "nvmot pump_number"},
|
||||||
|
{"path": "init", "type": "float", "readonly": false, "cmd": "nvmot init"},
|
||||||
|
{"path": "maxspeed", "type": "float", "readonly": false, "cmd": "nvmot maxspeed"},
|
||||||
|
{"path": "acceleration", "type": "float", "readonly": false, "cmd": "nvmot acceleration"},
|
||||||
|
{"path": "maxcurrent", "type": "float", "readonly": false, "cmd": "nvmot maxcurrent"},
|
||||||
|
{"path": "standbycurrent", "type": "float", "readonly": false, "cmd": "nvmot standbycurrent"},
|
||||||
|
{"path": "freewheeling", "type": "bool", "readonly": false, "cmd": "nvmot freewheeling"},
|
||||||
|
{"path": "output0", "type": "bool", "readonly": false, "cmd": "nvmot output0"},
|
||||||
|
{"path": "output1", "type": "bool", "readonly": false, "cmd": "nvmot output1"},
|
||||||
|
{"path": "input3", "type": "bool"},
|
||||||
|
{"path": "input0", "type": "float"},
|
||||||
|
{"path": "input0raw", "type": "float"},
|
||||||
|
{"path": "pullup", "type": "float", "readonly": false, "cmd": "nvmot pullup"},
|
||||||
|
{"path": "nopumpfeedback", "type": "bool", "readonly": false, "cmd": "nvmot nopumpfeedback"},
|
||||||
|
{"path": "eeprom", "type": "enum", "enum": {"ok": 0, "dirty": 1, "save": 2, "load": 3}, "readonly": false, "cmd": "nvmot eeprom"},
|
||||||
|
{"path": "customadr", "type": "text", "readonly": false, "cmd": "nvmot customadr"},
|
||||||
|
{"path": "custompar", "type": "float", "readonly": false, "cmd": "nvmot custompar"}]}, "ln2fill": {"base": "/ln2fill", "params": [{"path": "", "type": "enum", "enum": {"watching": 0, "fill": 1, "inactive": 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": {"no fill valve": 2}, "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": 9},
|
||||||
|
{"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}]}, "hemot": {"base": "/hepump/hemot", "params": [{"path": "", "type": "float", "readonly": false, "cmd": "run hemot", "kids": 32},
|
||||||
|
{"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": "input0", "type": "float"},
|
||||||
|
{"path": "input0raw", "type": "float"},
|
||||||
|
{"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"}]}, "table": {"base": "/table", "params": [{"path": "", "type": "none", "kids": 20},
|
||||||
|
{"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 ..."},
|
||||||
|
{"path": "fix_warmup_weight", "type": "bool", "readonly": false, "cmd": "table fix_warmup_weight"},
|
||||||
|
{"path": "val_warmup_weight", "type": "float"},
|
||||||
|
{"path": "tbl_warmup_weight", "type": "text", "readonly": false, "cmd": "table tbl_warmup_weight", "description": "enter value pair separated with colon T1:par1 T2:par2 ..."}]}}
|
9
cfg/sea/sch5.stick.json
Normal file
9
cfg/sea/sch5.stick.json
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
{"warmup": {"base": "/warmup", "params": [{"path": "", "type": "bool", "readonly": false, "cmd": "warmup", "kids": 8},
|
||||||
|
{"path": "send", "type": "text", "readonly": false, "cmd": "warmup send", "visibility": 3},
|
||||||
|
{"path": "status", "type": "text", "visibility": 3},
|
||||||
|
{"path": "trig", "type": "float", "readonly": false, "cmd": "warmup trig", "description": "switch on sample heater when ts < target - trig and tm < target"},
|
||||||
|
{"path": "weight", "type": "float", "readonly": false, "cmd": "warmup weight", "description": "switch off sample heater when ts > target - weight * (target - ts)"},
|
||||||
|
{"path": "limit", "type": "float", "readonly": false, "cmd": "warmup limit", "description": "do not use warmup when target < limit"},
|
||||||
|
{"path": "timef", "type": "float", "readonly": false, "cmd": "warmup timef", "description": "reset double control after (timef * int2) sec"},
|
||||||
|
{"path": "abruptstop", "type": "bool", "readonly": false, "cmd": "warmup abruptstop", "description": "switch off sample heater immediately after tm > treg"},
|
||||||
|
{"path": "warmup", "type": "enum", "enum": {"off": 0, "warmup": 1, "htroff": 2, "settle": 3}, "readonly": false, "cmd": "warmup warmup"}]}}
|
16
cfg/stick/ill5stick.cfg
Normal file
16
cfg/stick/ill5stick.cfg
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
[NODE]
|
||||||
|
description = ILL5 standard sample stick
|
||||||
|
id = ill5.stick.sea.psi.ch
|
||||||
|
|
||||||
|
[sea_stick]
|
||||||
|
class = secop_psi.sea.SeaClient
|
||||||
|
description = stick SEA connection to ill5.stick
|
||||||
|
config = ill5.stick
|
||||||
|
service = stick
|
||||||
|
|
||||||
|
[ts]
|
||||||
|
class = secop_psi.sea.SeaReadable
|
||||||
|
iodev = sea_stick
|
||||||
|
sea_object = tt
|
||||||
|
json_file = ill5.config.json
|
||||||
|
rel_paths = ts
|
17
cfg/stick/ma11stick.cfg
Normal file
17
cfg/stick/ma11stick.cfg
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
[NODE]
|
||||||
|
description = MA11 standard sample stick
|
||||||
|
id = ma11.stick.sea.psi.ch
|
||||||
|
|
||||||
|
[sea_stick]
|
||||||
|
class = secop_psi.sea.SeaClient
|
||||||
|
description = SEA stick connection
|
||||||
|
config = ma11.stick
|
||||||
|
service = stick
|
||||||
|
|
||||||
|
[ts]
|
||||||
|
class = secop_psi.sea.SeaReadable
|
||||||
|
iodev = sea_stick
|
||||||
|
sea_object = tt
|
||||||
|
json_file = ma11.config.json
|
||||||
|
rel_paths = ts
|
||||||
|
|
17
cfg/stick/ma7stick.cfg
Normal file
17
cfg/stick/ma7stick.cfg
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
[NODE]
|
||||||
|
description = MA7 standard sample stick
|
||||||
|
id = ma7.stick.sea.psi.ch
|
||||||
|
|
||||||
|
[sea_stick]
|
||||||
|
class = secop_psi.sea.SeaClient
|
||||||
|
description = SEA stick connection
|
||||||
|
config = ma7.stick
|
||||||
|
service = stick
|
||||||
|
|
||||||
|
[ts]
|
||||||
|
class = secop_psi.sea.SeaReadable
|
||||||
|
iodev = sea_stick
|
||||||
|
sea_object = tt
|
||||||
|
json_file = ma7.config.json
|
||||||
|
rel_paths = ts
|
||||||
|
|
10
cfg/stick/nostick.cfg
Normal file
10
cfg/stick/nostick.cfg
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
[NODE]
|
||||||
|
description = cryostat or cryomagnet without stick
|
||||||
|
id = none.stick.sea.psi.ch
|
||||||
|
|
||||||
|
[seaconn]
|
||||||
|
class = secop_psi.sea.SeaClient
|
||||||
|
description = SEA connection to none stick
|
||||||
|
config = none.stick
|
||||||
|
export = False
|
||||||
|
service = stick
|
16
cfg/stick/ori4stick.cfg
Normal file
16
cfg/stick/ori4stick.cfg
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
[NODE]
|
||||||
|
description = ORI4 standard sample stick
|
||||||
|
id = ori4.stick.sea.psi.ch
|
||||||
|
|
||||||
|
[sea_stick]
|
||||||
|
class = secop_psi.sea.SeaClient
|
||||||
|
description = SEA connection to ori4 stick
|
||||||
|
config = ori4.stick
|
||||||
|
service = stick
|
||||||
|
|
||||||
|
[ts]
|
||||||
|
class = secop_psi.sea.SeaReadable
|
||||||
|
iodev = sea_stick
|
||||||
|
sea_object = tt
|
||||||
|
json_file = ori4.config.json
|
||||||
|
rel_paths = ts
|
21
cfg/stick/sch5.cfg
Normal file
21
cfg/stick/sch5.cfg
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
[NODE]
|
||||||
|
description = sample changer for 100 mm orange cryo (5 samples, HRPT)
|
||||||
|
id = sch5.stick.sea.psi.ch
|
||||||
|
|
||||||
|
[seaconn]
|
||||||
|
class = secop_psi.sea.SeaClient
|
||||||
|
description = SEA connection to sch5
|
||||||
|
config = sch5.stick
|
||||||
|
service = stick
|
||||||
|
|
||||||
|
[warmup]
|
||||||
|
class = secop_psi.sea.SeaReadable
|
||||||
|
iodev = seaconn
|
||||||
|
sea_object = warmup
|
||||||
|
|
||||||
|
[ts]
|
||||||
|
class = secop_psi.sea.SeaReadable
|
||||||
|
iodev = seaconn
|
||||||
|
sea_object = tt
|
||||||
|
rel_paths = ts
|
||||||
|
|
25
cfg/trinamic.cfg
Normal file
25
cfg/trinamic.cfg
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
[NODE]
|
||||||
|
id = trinamic_test.psi.ch
|
||||||
|
description = trinamic motor test
|
||||||
|
|
||||||
|
[INTERFACE]
|
||||||
|
uri = tcp://5000
|
||||||
|
|
||||||
|
[drv_iodev]
|
||||||
|
description =
|
||||||
|
class = secop.bytesio.BytesIO
|
||||||
|
# uri = serial:///dev/ttyUSB0?baudrate=57600
|
||||||
|
uri = serial:///dev/ttyUSB0?baudrate=9600
|
||||||
|
|
||||||
|
[drv]
|
||||||
|
description = trinamic motor test
|
||||||
|
class = secop_psi.trinamic.Motor
|
||||||
|
iodev = drv_iodev
|
||||||
|
standby_current=0.1
|
||||||
|
maxcurrent=1.4
|
||||||
|
acceleration=50
|
||||||
|
maxspeed=200
|
||||||
|
zero=-36
|
||||||
|
enc_tolerance=3.6
|
||||||
|
free_wheeling=0.001
|
||||||
|
pull_up=1
|
32
cfg/uniax.cfg
Normal file
32
cfg/uniax.cfg
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
[NODE]
|
||||||
|
id = uniax.psi.ch
|
||||||
|
description = uniax pressure stick with motor and transducer
|
||||||
|
|
||||||
|
[INTERFACE]
|
||||||
|
uri = tcp://5000
|
||||||
|
|
||||||
|
[drv_iodev]
|
||||||
|
description =
|
||||||
|
class = secop.bytesio.BytesIO
|
||||||
|
uri = serial:///dev/ttyUSB0?baudrate=57600
|
||||||
|
# uri = serial:///dev/ttyUSB0?baudrate=9600
|
||||||
|
|
||||||
|
[drv]
|
||||||
|
description = trinamic motor test
|
||||||
|
class = secop_psi.trinamic.Motor
|
||||||
|
iodev = drv_iodev
|
||||||
|
standby_current=0.1
|
||||||
|
maxcurrent=1.4
|
||||||
|
acceleration=50
|
||||||
|
maxspeed=200
|
||||||
|
zero=-36
|
||||||
|
enc_tolerance=3.6
|
||||||
|
free_wheeling=0.001
|
||||||
|
pull_up=1
|
||||||
|
|
||||||
|
[force]
|
||||||
|
description = DPM driver to read out the transducer value, write and read the offset and scale factor
|
||||||
|
class = secop_psi.dpm.DPM3
|
||||||
|
uri = serial:///dev/ttyUSB1?baudrate=9600
|
||||||
|
digits = 2
|
||||||
|
scale_factor = 0.0156
|
90
secop/bytesio.py
Normal file
90
secop/bytesio.py
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# *****************************************************************************
|
||||||
|
# This program is free software; you can redistribute it and/or modify it under
|
||||||
|
# the terms of the GNU General Public License as published by the Free Software
|
||||||
|
# Foundation; either version 2 of the License, or (at your option) any later
|
||||||
|
# version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||||
|
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||||
|
# details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License along with
|
||||||
|
# this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
#
|
||||||
|
# Module authors:
|
||||||
|
# Markus Zolliker <markus.zolliker@psi.ch>
|
||||||
|
# *****************************************************************************
|
||||||
|
"""byte oriented stream communication"""
|
||||||
|
|
||||||
|
import time
|
||||||
|
import re
|
||||||
|
|
||||||
|
from secop.lib.asynconn import AsynConn, ConnectionClosed
|
||||||
|
from secop.modules import Property, Command
|
||||||
|
from secop.stringio import BaseIO
|
||||||
|
from secop.datatypes import BLOBType, IntRange, ArrayOf, TupleOf, StringType
|
||||||
|
from secop.errors import CommunicationFailedError, CommunicationSilentError
|
||||||
|
|
||||||
|
|
||||||
|
HEX_CODE = re.compile(r'[0-9a-fA-F][0-9a-fA-F]$')
|
||||||
|
|
||||||
|
|
||||||
|
class BytesIO(BaseIO):
|
||||||
|
identification = Property(
|
||||||
|
"""identification
|
||||||
|
|
||||||
|
a list of tuples with commands and expected responses, to be sent on connect.
|
||||||
|
commands and responses are whitespace separated items
|
||||||
|
an item is either:
|
||||||
|
- a two digit hexadecimal number (byte value)
|
||||||
|
- a character
|
||||||
|
- ?? indicating ignored bytes in responses
|
||||||
|
""", datatype=ArrayOf(TupleOf(StringType(), StringType())), default=[], export=False)
|
||||||
|
|
||||||
|
def connectStart(self):
|
||||||
|
if not self.is_connected:
|
||||||
|
uri = self.uri
|
||||||
|
self._conn = AsynConn(uri, b'')
|
||||||
|
self.is_connected = True
|
||||||
|
for command, match in self.identification:
|
||||||
|
cmdbytes = bytes([int(c, 16) if HEX_CODE.match(c) else ord(c) for c in command.split()])
|
||||||
|
replypat = [int(c, 16) if HEX_CODE.match(c.replace('??', '-1')) else ord(c) for c in command.split()]
|
||||||
|
reply = self.communicate(cmdbytes, len(replypat))
|
||||||
|
if any(b != c and c != -1 for b, c in zip(reply, replypat)):
|
||||||
|
self.closeConnection()
|
||||||
|
raise CommunicationFailedError('bad response: %r does not match %r' % (command, match))
|
||||||
|
|
||||||
|
@Command((BLOBType(), IntRange(0)), result=BLOBType())
|
||||||
|
def communicate(self, command, nbytes):
|
||||||
|
"""send a command and receive nbytes as reply"""
|
||||||
|
if not self.is_connected:
|
||||||
|
self.read_is_connected() # try to reconnect
|
||||||
|
if not self._conn:
|
||||||
|
raise CommunicationSilentError('can not connect to %r' % self.uri)
|
||||||
|
try:
|
||||||
|
with self._lock:
|
||||||
|
# read garbage and wait before send
|
||||||
|
try:
|
||||||
|
if self.wait_before:
|
||||||
|
time.sleep(self.wait_before)
|
||||||
|
garbage = self._conn.flush_recv()
|
||||||
|
if garbage:
|
||||||
|
self.log.debug('garbage: %r', garbage)
|
||||||
|
self._conn.send(command)
|
||||||
|
self.log.debug('send: %r', command)
|
||||||
|
reply = self._conn.readbytes(nbytes, self.timeout)
|
||||||
|
except ConnectionClosed:
|
||||||
|
self.closeConnection()
|
||||||
|
raise CommunicationFailedError('disconnected')
|
||||||
|
self.log.debug('recv: %r', reply)
|
||||||
|
return reply
|
||||||
|
except Exception as e:
|
||||||
|
if str(e) == self._last_error:
|
||||||
|
raise CommunicationSilentError(str(e))
|
||||||
|
self._last_error = str(e)
|
||||||
|
self.log.error(self._last_error)
|
||||||
|
raise
|
@ -165,6 +165,7 @@ class ModuleCtrl(QWidget):
|
|||||||
result = None
|
result = None
|
||||||
qualifiers = {}
|
qualifiers = {}
|
||||||
# XXX: flag missing data report as error
|
# XXX: flag missing data report as error
|
||||||
|
if result is not None:
|
||||||
showCommandResultDialog(command, args, result, qualifiers)
|
showCommandResultDialog(command, args, result, qualifiers)
|
||||||
|
|
||||||
def _initModuleWidgets(self):
|
def _initModuleWidgets(self):
|
||||||
|
@ -76,7 +76,13 @@ class GenericParameterWidget(ParameterWidget):
|
|||||||
self.setLineEdit.text())
|
self.setLineEdit.text())
|
||||||
|
|
||||||
def updateValue(self, value):
|
def updateValue(self, value):
|
||||||
self.currentLineEdit.setText(str(value))
|
fmtstr = getattr(self._datatype, 'fmtstr', '%s')
|
||||||
|
if value.readerror:
|
||||||
|
value = str(value)
|
||||||
|
else:
|
||||||
|
value = fmtstr % (value.value,)
|
||||||
|
self.currentLineEdit.setText(value)
|
||||||
|
# self.currentLineEdit.setText(str(value))
|
||||||
|
|
||||||
|
|
||||||
class EnumParameterWidget(GenericParameterWidget):
|
class EnumParameterWidget(GenericParameterWidget):
|
||||||
|
@ -79,8 +79,8 @@ class AsynConn:
|
|||||||
self.disconnect()
|
self.disconnect()
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def register_scheme(cls, scheme):
|
def __init_subclass__(cls):
|
||||||
cls.SCHEME_MAP[scheme] = cls
|
cls.SCHEME_MAP[cls.scheme] = cls
|
||||||
|
|
||||||
def disconnect(self):
|
def disconnect(self):
|
||||||
raise NotImplementedError
|
raise NotImplementedError
|
||||||
@ -154,6 +154,8 @@ class AsynConn:
|
|||||||
|
|
||||||
|
|
||||||
class AsynTcp(AsynConn):
|
class AsynTcp(AsynConn):
|
||||||
|
scheme = 'tcp'
|
||||||
|
|
||||||
def __init__(self, uri, *args, **kwargs):
|
def __init__(self, uri, *args, **kwargs):
|
||||||
super().__init__(uri, *args, **kwargs)
|
super().__init__(uri, *args, **kwargs)
|
||||||
self.uri = uri
|
self.uri = uri
|
||||||
@ -202,9 +204,6 @@ class AsynTcp(AsynConn):
|
|||||||
raise ConnectionClosed() # marks end of connection
|
raise ConnectionClosed() # marks end of connection
|
||||||
|
|
||||||
|
|
||||||
AsynTcp.register_scheme('tcp')
|
|
||||||
|
|
||||||
|
|
||||||
class AsynSerial(AsynConn):
|
class AsynSerial(AsynConn):
|
||||||
"""a serial connection using pyserial
|
"""a serial connection using pyserial
|
||||||
|
|
||||||
@ -221,6 +220,7 @@ class AsynSerial(AsynConn):
|
|||||||
|
|
||||||
and others (see documentation of serial.Serial)
|
and others (see documentation of serial.Serial)
|
||||||
"""
|
"""
|
||||||
|
scheme = 'serial'
|
||||||
PARITY_NAMES = {name[0]: name for name in ['NONE', 'ODD', 'EVEN', 'MASK', 'SPACE']}
|
PARITY_NAMES = {name[0]: name for name in ['NONE', 'ODD', 'EVEN', 'MASK', 'SPACE']}
|
||||||
|
|
||||||
def __init__(self, uri, *args, **kwargs):
|
def __init__(self, uri, *args, **kwargs):
|
||||||
@ -282,6 +282,3 @@ class AsynSerial(AsynConn):
|
|||||||
return self.connection.read(n)
|
return self.connection.read(n)
|
||||||
data = self.connection.read(1)
|
data = self.connection.read(1)
|
||||||
return data + self.connection.read(self.connection.in_waiting)
|
return data + self.connection.read(self.connection.in_waiting)
|
||||||
|
|
||||||
|
|
||||||
AsynSerial.register_scheme('serial')
|
|
||||||
|
@ -257,8 +257,8 @@ class Module(HasAccessibles):
|
|||||||
try:
|
try:
|
||||||
self.setProperty(key, value)
|
self.setProperty(key, value)
|
||||||
except BadValueError:
|
except BadValueError:
|
||||||
errors.append('module %s, %s: value %r does not match %r!' %
|
errors.append('%s: value %r does not match %r!' %
|
||||||
(name, key, value, self.propertyDict[key].datatype))
|
(key, value, self.propertyDict[key].datatype))
|
||||||
|
|
||||||
# 3) set automatic properties
|
# 3) set automatic properties
|
||||||
mycls = self.__class__
|
mycls = self.__class__
|
||||||
@ -317,21 +317,21 @@ class Module(HasAccessibles):
|
|||||||
try:
|
try:
|
||||||
paramobj.setProperty(propname, propvalue)
|
paramobj.setProperty(propname, propvalue)
|
||||||
except KeyError:
|
except KeyError:
|
||||||
errors.append('module %s: %s.%s does not exist' %
|
errors.append("'%s.%s' does not exist" %
|
||||||
(self.name, paramname, propname))
|
(paramname, propname))
|
||||||
except BadValueError as e:
|
except BadValueError as e:
|
||||||
errors.append('module %s: %s.%s: %s' %
|
errors.append('%s.%s: %s' %
|
||||||
(self.name, paramname, propname, str(e)))
|
(paramname, propname, str(e)))
|
||||||
else:
|
else:
|
||||||
errors.append('module %s: %s not found' % (self.name, paramname))
|
errors.append('%r not found' % paramname)
|
||||||
|
|
||||||
# 3) check config for problems:
|
# 3) check config for problems:
|
||||||
# only accept remaining config items specified in parameters
|
# only accept remaining config items specified in parameters
|
||||||
bad = [k for k in cfgdict if k not in self.parameters]
|
bad = [k for k in cfgdict if k not in self.parameters]
|
||||||
if bad:
|
if bad:
|
||||||
errors.append(
|
errors.append(
|
||||||
'module %s: %s does not exist (use one of %s)' %
|
'%s does not exist (use one of %s)' %
|
||||||
(self.name, ', '.join(bad), ', '.join(list(self.parameters) +
|
(', '.join(bad), ', '.join(list(self.parameters) +
|
||||||
list(self.propertyDict))))
|
list(self.propertyDict))))
|
||||||
|
|
||||||
# 4) complain if a Parameter entry has no default value and
|
# 4) complain if a Parameter entry has no default value and
|
||||||
@ -349,13 +349,12 @@ class Module(HasAccessibles):
|
|||||||
pobj.value = pobj.datatype(cfgdict[pname])
|
pobj.value = pobj.datatype(cfgdict[pname])
|
||||||
self.writeDict[pname] = pobj.value
|
self.writeDict[pname] = pobj.value
|
||||||
except BadValueError as e:
|
except BadValueError as e:
|
||||||
errors.append('module %s, parameter %s: %s' % (name, pname, e))
|
errors.append('%s: %s' % (pname, e))
|
||||||
else:
|
else:
|
||||||
if pobj.default is None:
|
if pobj.default is None:
|
||||||
if pobj.needscfg:
|
if pobj.needscfg:
|
||||||
errors.append('module %s, parameter %s has no default '
|
errors.append('%r has no default '
|
||||||
'value and was not given in config!' %
|
'value and was not given in config!' % pname)
|
||||||
(self.name, pname))
|
|
||||||
# we do not want to call the setter for this parameter for now,
|
# we do not want to call the setter for this parameter for now,
|
||||||
# this should happen on the first read
|
# this should happen on the first read
|
||||||
pobj.readerror = ConfigError('not initialized')
|
pobj.readerror = ConfigError('not initialized')
|
||||||
@ -383,7 +382,7 @@ class Module(HasAccessibles):
|
|||||||
try:
|
try:
|
||||||
# this checks also for the proper datatype
|
# this checks also for the proper datatype
|
||||||
# note: this will NOT call write_* methods!
|
# note: this will NOT call write_* methods!
|
||||||
if hasattr(self, k):
|
if k in self.parameters or k in self.propertyDict:
|
||||||
setattr(self, k, v)
|
setattr(self, k, v)
|
||||||
cfgdict.pop(k)
|
cfgdict.pop(k)
|
||||||
except (ValueError, TypeError):
|
except (ValueError, TypeError):
|
||||||
@ -401,14 +400,14 @@ class Module(HasAccessibles):
|
|||||||
try:
|
try:
|
||||||
self.checkProperties()
|
self.checkProperties()
|
||||||
except ConfigError as e:
|
except ConfigError as e:
|
||||||
errors.append('module %s: %s' % (name, e))
|
errors.append(str(e))
|
||||||
for pname, p in self.parameters.items():
|
for pname, p in self.parameters.items():
|
||||||
try:
|
try:
|
||||||
p.checkProperties()
|
p.checkProperties()
|
||||||
except ConfigError:
|
except ConfigError:
|
||||||
errors.append('module %s, parameter %s: %s' % (name, pname, e))
|
errors.append('%s: %s' % (pname, e))
|
||||||
if errors:
|
if errors:
|
||||||
raise ConfigError('\n'.join(errors))
|
raise ConfigError(errors)
|
||||||
|
|
||||||
# helper cfg-editor
|
# helper cfg-editor
|
||||||
def __iter__(self):
|
def __iter__(self):
|
||||||
@ -507,7 +506,7 @@ class Module(HasAccessibles):
|
|||||||
def pollOneParam(self, pname):
|
def pollOneParam(self, pname):
|
||||||
"""poll parameter <pname> with proper error handling"""
|
"""poll parameter <pname> with proper error handling"""
|
||||||
try:
|
try:
|
||||||
return getattr(self, 'read_' + pname)()
|
getattr(self, 'read_' + pname)()
|
||||||
except SilentError:
|
except SilentError:
|
||||||
pass
|
pass
|
||||||
except SECoPError as e:
|
except SECoPError as e:
|
||||||
@ -522,10 +521,12 @@ class Module(HasAccessibles):
|
|||||||
with proper error handling
|
with proper error handling
|
||||||
"""
|
"""
|
||||||
for pname in list(self.writeDict):
|
for pname in list(self.writeDict):
|
||||||
if pname in self.writeDict: # this might not be true with handlers
|
value = self.writeDict.pop(pname, Done)
|
||||||
|
# in the mean time, a poller or handler might already have done it
|
||||||
|
if value is not Done:
|
||||||
try:
|
try:
|
||||||
self.log.debug('initialize parameter %s', pname)
|
self.log.debug('initialize parameter %s', pname)
|
||||||
getattr(self, 'write_' + pname)(self.writeDict.pop(pname))
|
getattr(self, 'write_' + pname)(value)
|
||||||
except SilentError:
|
except SilentError:
|
||||||
pass
|
pass
|
||||||
except SECoPError as e:
|
except SECoPError as e:
|
||||||
|
@ -227,9 +227,10 @@ class Poller(PollerBase):
|
|||||||
(where n is the number of regular parameters).
|
(where n is the number of regular parameters).
|
||||||
"""
|
"""
|
||||||
if not self:
|
if not self:
|
||||||
# nothing to do (else we might call time.sleep(float('inf')) below
|
# nothing to do (else time.sleep(float('inf')) might be called below
|
||||||
started_callback()
|
started_callback()
|
||||||
return
|
return
|
||||||
|
# if writeInitParams is not yet done, we do it here
|
||||||
for module in self.modules:
|
for module in self.modules:
|
||||||
module.writeInitParams()
|
module.writeInitParams()
|
||||||
# do all polls once and, at the same time, insert due info
|
# do all polls once and, at the same time, insert due info
|
||||||
|
@ -245,12 +245,8 @@ class Server:
|
|||||||
continue
|
continue
|
||||||
cls = get_class(classname)
|
cls = get_class(classname)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
if pymodule is None:
|
|
||||||
if str(e) == 'no such class':
|
if str(e) == 'no such class':
|
||||||
errors.append('%s not found' % classname)
|
errors.append('%s not found' % classname)
|
||||||
else:
|
|
||||||
raise
|
|
||||||
errors.append(repr(e))
|
|
||||||
else:
|
else:
|
||||||
failed.add(pymodule)
|
failed.add(pymodule)
|
||||||
failure_traceback = traceback.format_exc()
|
failure_traceback = traceback.format_exc()
|
||||||
@ -262,9 +258,13 @@ class Server:
|
|||||||
if opts:
|
if opts:
|
||||||
errors.append(self.unknown_options(cls, opts))
|
errors.append(self.unknown_options(cls, opts))
|
||||||
self.modules[modname] = modobj
|
self.modules[modname] = modobj
|
||||||
except Exception as e:
|
except ConfigError as e:
|
||||||
|
errors.append('error creating module %s:' % modname)
|
||||||
|
for errtxt in e.args[0] if isinstance(e.args, list) else [e.args[0]]:
|
||||||
|
errors.append(' ' + errtxt)
|
||||||
|
except Exception:
|
||||||
failure_traceback = traceback.format_exc()
|
failure_traceback = traceback.format_exc()
|
||||||
errors.append('error creating %s: %r' % (modname, e))
|
errors.append('error creating %s' % modname)
|
||||||
|
|
||||||
poll_table = dict()
|
poll_table = dict()
|
||||||
# all objs created, now start them up and interconnect
|
# all objs created, now start them up and interconnect
|
||||||
|
@ -20,7 +20,8 @@
|
|||||||
# *****************************************************************************
|
# *****************************************************************************
|
||||||
"""Line oriented stream communication
|
"""Line oriented stream communication
|
||||||
|
|
||||||
implements TCP/IP and is be used as a base for SerialIO
|
StringIO: string oriented IO. May be used for TCP/IP as well for serial IO or
|
||||||
|
other future extensions of AsynConn
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import re
|
import re
|
||||||
@ -37,66 +38,23 @@ from secop.modules import Attached, Command, \
|
|||||||
from secop.poller import REGULAR
|
from secop.poller import REGULAR
|
||||||
|
|
||||||
|
|
||||||
class StringIO(Communicator):
|
class BaseIO(Communicator):
|
||||||
"""line oriented communicator
|
"""base of StringIO and BytesIO"""
|
||||||
|
|
||||||
self healing is assured by polling the parameter 'is_connected'
|
|
||||||
"""
|
|
||||||
uri = Property('hostname:portnumber', datatype=StringType())
|
uri = Property('hostname:portnumber', datatype=StringType())
|
||||||
end_of_line = Property('end_of_line character', datatype=ValueType(),
|
|
||||||
default='\n', settable=True)
|
|
||||||
encoding = Property('used encoding', datatype=StringType(),
|
|
||||||
default='ascii', settable=True)
|
|
||||||
identification = Property('''
|
|
||||||
identification
|
|
||||||
|
|
||||||
a list of tuples with commands and expected responses as regexp,
|
|
||||||
to be sent on connect''',
|
|
||||||
datatype=ArrayOf(TupleOf(StringType(), StringType())), default=[], export=False)
|
|
||||||
|
|
||||||
timeout = Parameter('timeout', datatype=FloatRange(0), default=2)
|
timeout = Parameter('timeout', datatype=FloatRange(0), default=2)
|
||||||
wait_before = Parameter('wait time before sending', datatype=FloatRange(), default=0)
|
wait_before = Parameter('wait time before sending', datatype=FloatRange(), default=0)
|
||||||
is_connected = Parameter('connection state', datatype=BoolType(), readonly=False, poll=REGULAR)
|
is_connected = Parameter('connection state', datatype=BoolType(), readonly=False, poll=REGULAR)
|
||||||
pollinterval = Parameter('reconnect interval', datatype=FloatRange(0), readonly=False, default=10)
|
pollinterval = Parameter('reconnect interval', datatype=FloatRange(0), readonly=False, default=10)
|
||||||
|
|
||||||
_reconnectCallbacks = None
|
_reconnectCallbacks = None
|
||||||
|
_conn = None
|
||||||
|
_last_error = None
|
||||||
|
|
||||||
def earlyInit(self):
|
def earlyInit(self):
|
||||||
self._conn = None
|
|
||||||
self._lock = threading.RLock()
|
self._lock = threading.RLock()
|
||||||
eol = self.end_of_line
|
|
||||||
if isinstance(eol, (tuple, list)):
|
|
||||||
if len(eol) not in (1, 2):
|
|
||||||
raise ValueError('invalid end_of_line: %s' % eol)
|
|
||||||
else:
|
|
||||||
eol = [eol]
|
|
||||||
# eol for read and write might be distinct
|
|
||||||
self._eol_read = self._convert_eol(eol[0])
|
|
||||||
if not self._eol_read:
|
|
||||||
raise ValueError('end_of_line for read must not be empty')
|
|
||||||
self._eol_write = self._convert_eol(eol[-1])
|
|
||||||
self._last_error = None
|
|
||||||
|
|
||||||
def _convert_eol(self, value):
|
|
||||||
if isinstance(value, str):
|
|
||||||
return value.encode(self.encoding)
|
|
||||||
if isinstance(value, int):
|
|
||||||
return bytes([value])
|
|
||||||
if isinstance(value, bytes):
|
|
||||||
return value
|
|
||||||
raise ValueError('invalid end_of_line: %s' % repr(value))
|
|
||||||
|
|
||||||
def connectStart(self):
|
def connectStart(self):
|
||||||
if not self.is_connected:
|
raise NotImplementedError
|
||||||
uri = self.uri
|
|
||||||
self._conn = AsynConn(uri, self._eol_read)
|
|
||||||
self.is_connected = True
|
|
||||||
for command, regexp in self.identification:
|
|
||||||
reply = self.communicate(command)
|
|
||||||
if not re.match(regexp, reply):
|
|
||||||
self.closeConnection()
|
|
||||||
raise CommunicationFailedError('bad response: %s does not match %s' %
|
|
||||||
(reply, regexp))
|
|
||||||
|
|
||||||
def closeConnection(self):
|
def closeConnection(self):
|
||||||
"""close connection
|
"""close connection
|
||||||
@ -158,6 +116,62 @@ class StringIO(Communicator):
|
|||||||
if removeme:
|
if removeme:
|
||||||
self._reconnectCallbacks.pop(key)
|
self._reconnectCallbacks.pop(key)
|
||||||
|
|
||||||
|
def communicate(self, command):
|
||||||
|
return NotImplementedError
|
||||||
|
|
||||||
|
|
||||||
|
class StringIO(BaseIO):
|
||||||
|
"""line oriented communicator
|
||||||
|
|
||||||
|
self healing is assured by polling the parameter 'is_connected'
|
||||||
|
"""
|
||||||
|
end_of_line = Property('end_of_line character', datatype=ValueType(),
|
||||||
|
default='\n', settable=True)
|
||||||
|
encoding = Property('used encoding', datatype=StringType(),
|
||||||
|
default='ascii', settable=True)
|
||||||
|
identification = Property('''
|
||||||
|
identification
|
||||||
|
|
||||||
|
a list of tuples with commands and expected responses as regexp,
|
||||||
|
to be sent on connect''',
|
||||||
|
datatype=ArrayOf(TupleOf(StringType(), StringType())), default=[], export=False)
|
||||||
|
|
||||||
|
def _convert_eol(self, value):
|
||||||
|
if isinstance(value, str):
|
||||||
|
return value.encode(self.encoding)
|
||||||
|
if isinstance(value, int):
|
||||||
|
return bytes([value])
|
||||||
|
if isinstance(value, bytes):
|
||||||
|
return value
|
||||||
|
raise ValueError('invalid end_of_line: %s' % repr(value))
|
||||||
|
|
||||||
|
def earlyInit(self):
|
||||||
|
super().earlyInit()
|
||||||
|
eol = self.end_of_line
|
||||||
|
if isinstance(eol, (tuple, list)):
|
||||||
|
if len(eol) not in (1, 2):
|
||||||
|
raise ValueError('invalid end_of_line: %s' % eol)
|
||||||
|
else:
|
||||||
|
eol = [eol]
|
||||||
|
# eol for read and write might be distinct
|
||||||
|
self._eol_read = self._convert_eol(eol[0])
|
||||||
|
if not self._eol_read:
|
||||||
|
raise ValueError('end_of_line for read must not be empty')
|
||||||
|
self._eol_write = self._convert_eol(eol[-1])
|
||||||
|
|
||||||
|
def connectStart(self):
|
||||||
|
if not self.is_connected:
|
||||||
|
uri = self.uri
|
||||||
|
self._conn = AsynConn(uri, self._eol_read)
|
||||||
|
self.is_connected = True
|
||||||
|
for command, regexp in self.identification:
|
||||||
|
reply = self.communicate(command)
|
||||||
|
if not re.match(regexp, reply):
|
||||||
|
self.closeConnection()
|
||||||
|
raise CommunicationFailedError('bad response: %s does not match %s' %
|
||||||
|
(reply, regexp))
|
||||||
|
|
||||||
|
@Command(StringType(), result=StringType())
|
||||||
def communicate(self, command):
|
def communicate(self, command):
|
||||||
"""send a command and receive a reply
|
"""send a command and receive a reply
|
||||||
|
|
||||||
@ -165,6 +179,7 @@ class StringIO(Communicator):
|
|||||||
for commands without reply, the command must be joined with a query command,
|
for commands without reply, the command must be joined with a query command,
|
||||||
wait_before is respected for end_of_lines within a command.
|
wait_before is respected for end_of_lines within a command.
|
||||||
"""
|
"""
|
||||||
|
command = command.encode(self.encoding)
|
||||||
if not self.is_connected:
|
if not self.is_connected:
|
||||||
self.read_is_connected() # try to reconnect
|
self.read_is_connected() # try to reconnect
|
||||||
if not self._conn:
|
if not self._conn:
|
||||||
@ -173,9 +188,9 @@ class StringIO(Communicator):
|
|||||||
with self._lock:
|
with self._lock:
|
||||||
# read garbage and wait before send
|
# read garbage and wait before send
|
||||||
if self.wait_before and self._eol_write:
|
if self.wait_before and self._eol_write:
|
||||||
cmds = command.encode(self.encoding).split(self._eol_write)
|
cmds = command.split(self._eol_write)
|
||||||
else:
|
else:
|
||||||
cmds = [command.encode(self.encoding)]
|
cmds = [command]
|
||||||
garbage = None
|
garbage = None
|
||||||
try:
|
try:
|
||||||
for cmd in cmds:
|
for cmd in cmds:
|
||||||
@ -186,6 +201,7 @@ class StringIO(Communicator):
|
|||||||
if garbage:
|
if garbage:
|
||||||
self.log.debug('garbage: %r', garbage)
|
self.log.debug('garbage: %r', garbage)
|
||||||
self._conn.send(cmd + self._eol_write)
|
self._conn.send(cmd + self._eol_write)
|
||||||
|
self.log.debug('send: %s', cmd + self._eol_write)
|
||||||
reply = self._conn.readline(self.timeout)
|
reply = self._conn.readline(self.timeout)
|
||||||
except ConnectionClosed:
|
except ConnectionClosed:
|
||||||
self.closeConnection()
|
self.closeConnection()
|
||||||
|
144
secop_psi/dpm.py
Normal file
144
secop_psi/dpm.py
Normal file
@ -0,0 +1,144 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# *****************************************************************************
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify it under
|
||||||
|
# the terms of the GNU General Public License as published by the Free Software
|
||||||
|
# Foundation; either version 2 of the License, or (at your option) any later
|
||||||
|
# version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||||
|
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||||
|
# details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License along with
|
||||||
|
# this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
#
|
||||||
|
# Module authors:
|
||||||
|
# ...
|
||||||
|
#
|
||||||
|
# *****************************************************************************
|
||||||
|
|
||||||
|
from secop.core import Readable, Parameter, FloatRange, BoolType, StringIO, HasIodev, IntRange, Done
|
||||||
|
|
||||||
|
|
||||||
|
class DPM3IO(StringIO):
|
||||||
|
end_of_line = '\r'
|
||||||
|
timeout = 3
|
||||||
|
identification = [('*1R135', '01')]
|
||||||
|
|
||||||
|
|
||||||
|
def hex2float(hexvalue, digits):
|
||||||
|
value = int(hexvalue, 16)
|
||||||
|
if value >= 0x800000:
|
||||||
|
value -= 0x1000000
|
||||||
|
return value / (10 ** digits)
|
||||||
|
|
||||||
|
|
||||||
|
def float2hex(value, digits):
|
||||||
|
intvalue = int(round(value * 10 ** digits,0))
|
||||||
|
if intvalue < 0:
|
||||||
|
intvalue += 0x1000000
|
||||||
|
return '%06X' % intvalue
|
||||||
|
|
||||||
|
|
||||||
|
class DPM3(HasIodev, Readable):
|
||||||
|
OFFSET = 0x8f
|
||||||
|
SCALE = 0x8c
|
||||||
|
|
||||||
|
MAGNITUDE = {'1': 1, '2': 10, '3': 100, '4': 1e3, '5': 1e4, '6': 1e5,
|
||||||
|
'9':-1, 'A':-10, 'B':-100, 'C':-1e3, 'D':-1e4, 'E':-1e5}
|
||||||
|
|
||||||
|
iodevClass = DPM3IO
|
||||||
|
|
||||||
|
digits = Parameter('number of digits for value', IntRange(0, 5), initwrite=True, readonly=False)
|
||||||
|
value = Parameter(unit='N')
|
||||||
|
|
||||||
|
offset = Parameter('', FloatRange(-1e5, 1e5), readonly=False, poll=True)
|
||||||
|
|
||||||
|
#Note: we have tro treat the units properly.
|
||||||
|
""" We got an output of 150 for 10N. The maximal force we want to deal with is 100N,
|
||||||
|
thus a maximl output of 1500. 10=150/f
|
||||||
|
"""
|
||||||
|
scale_factor = Parameter('', FloatRange(-1e5, 1e5, unit='input_units/N'), readonly=False, poll=True)
|
||||||
|
|
||||||
|
def query(self, adr, value=None):
|
||||||
|
if value is not None:
|
||||||
|
if adr == self.SCALE:
|
||||||
|
absval = abs(value)
|
||||||
|
for nibble, mag in self.MAGNITUDE.items():
|
||||||
|
if 10000 <= round(value * mag, 0) <= 99999:
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
# not suitable range found
|
||||||
|
if absval >= 99999.5: # overrange
|
||||||
|
raise ValueError('%s is out of range' % value)
|
||||||
|
# underrange: take lowest
|
||||||
|
nibble = '9' if value < 0 else '1'
|
||||||
|
mag = self.MAGNITUDE[nibble]
|
||||||
|
hex_val = nibble + '%05X' % int(round(value * mag, 0))
|
||||||
|
if hex_val[1:] == '00000':
|
||||||
|
raise ValueError('scale factor can not be 0', value)
|
||||||
|
else:
|
||||||
|
hex_val = float2hex(value, self.digits)
|
||||||
|
cmd = '*1F3%02X%s\r' % (adr, hex_val)
|
||||||
|
else:
|
||||||
|
cmd = ""
|
||||||
|
cmd = cmd + '*1G3%02X' % adr
|
||||||
|
hexvalue = self._iodev.communicate(cmd)
|
||||||
|
if adr == self.SCALE:
|
||||||
|
mag = self.MAGNITUDE[hexvalue[0:1]]
|
||||||
|
value = int(hexvalue[1:], 16)
|
||||||
|
return value/mag
|
||||||
|
else:
|
||||||
|
return hex2float(hexvalue, self.digits)
|
||||||
|
|
||||||
|
def write_digits(self, value):
|
||||||
|
# value defines the number of digits
|
||||||
|
back_value=self._iodev.communicate('*1F135%02X\r*1G135' % (value + 1))
|
||||||
|
self.digits = int(back_value,16) - 1
|
||||||
|
# realculate proper scale and offset
|
||||||
|
self.write_scale_factor(self.scale_factor)
|
||||||
|
self.write_offset(self.offset)
|
||||||
|
return Done
|
||||||
|
|
||||||
|
def read_digits(self):
|
||||||
|
back_value = self._iodev.communicate('*1G135')
|
||||||
|
return int(back_value,16) - 1
|
||||||
|
|
||||||
|
def read_value(self):
|
||||||
|
value = self._iodev.communicate('*1B1')
|
||||||
|
return float(value)
|
||||||
|
|
||||||
|
def read_offset(self):
|
||||||
|
reply = self.query(self.OFFSET)
|
||||||
|
return reply
|
||||||
|
|
||||||
|
def write_offset(self, value):
|
||||||
|
return self.query(self.OFFSET, value)
|
||||||
|
|
||||||
|
def read_scale_factor(self):
|
||||||
|
reply = self.query(self.SCALE)
|
||||||
|
return float(reply) / 10 ** self.digits
|
||||||
|
|
||||||
|
def write_scale_factor(self, value):
|
||||||
|
reply = self.query(self.SCALE, value * 10 ** self.digits)
|
||||||
|
return float(reply) / 10 ** self.digits
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -28,12 +28,12 @@ class Ls370Sim(Communicator):
|
|||||||
('RDGR?%d', '1.0'),
|
('RDGR?%d', '1.0'),
|
||||||
('RDGST?%d', '0'),
|
('RDGST?%d', '0'),
|
||||||
('RDGRNG?%d', '0,5,5,0,0'),
|
('RDGRNG?%d', '0,5,5,0,0'),
|
||||||
('INSET?%d', '1,5,5,0,0'),
|
('INSET?%d', '1,3,3,0,0'),
|
||||||
('FILTER?%d', '1,5,80'),
|
('FILTER?%d', '1,1,80'),
|
||||||
]
|
]
|
||||||
OTHER_COMMANDS = [
|
OTHER_COMMANDS = [
|
||||||
('*IDN?', 'LSCI,MODEL370,370184,05302003'),
|
('*IDN?', 'LSCI,MODEL370,370184,05302003'),
|
||||||
('SCAN?', '3,1'),
|
('SCAN?', '3,0'),
|
||||||
]
|
]
|
||||||
|
|
||||||
def earlyInit(self):
|
def earlyInit(self):
|
||||||
|
@ -229,10 +229,13 @@ class SeaClient(ProxyClient, Module):
|
|||||||
started_callback = None
|
started_callback = None
|
||||||
continue
|
continue
|
||||||
if flag != 'hdbevent':
|
if flag != 'hdbevent':
|
||||||
if obj != 'frappy_async_client':
|
if obj not in ('frappy_async_client', 'get_all_param'):
|
||||||
print('SKIP', msg)
|
print('SKIP', msg)
|
||||||
continue
|
continue
|
||||||
if data is None:
|
if not data:
|
||||||
|
continue
|
||||||
|
if not isinstance(data, dict):
|
||||||
|
print('what means %r' % msg)
|
||||||
continue
|
continue
|
||||||
now = time.time()
|
now = time.time()
|
||||||
for path, value in data.items():
|
for path, value in data.items():
|
||||||
@ -315,7 +318,7 @@ class SeaClient(ProxyClient, Module):
|
|||||||
elif reply is None:
|
elif reply is None:
|
||||||
reply = line.strip()
|
reply = line.strip()
|
||||||
else:
|
else:
|
||||||
raise HardwareError('SEA: superfluous reply %r to %r' % (reply, cmd))
|
self.log.info('SEA: superfluous reply %r to %r', reply, cmd)
|
||||||
if errors:
|
if errors:
|
||||||
raise HardwareError('; '.join(errors))
|
raise HardwareError('; '.join(errors))
|
||||||
return reply
|
return reply
|
||||||
@ -398,8 +401,7 @@ class SeaModule(Module):
|
|||||||
include = True
|
include = True
|
||||||
for paramdesc in descr['params']:
|
for paramdesc in descr['params']:
|
||||||
path = paramdesc['path']
|
path = paramdesc['path']
|
||||||
if paramdesc.get('visibility', 1) > visibility_level:
|
if paramdesc.get('visibility', 1) > visibility_level and not path.endswith('is_running'):
|
||||||
if not path.endswith('is_running'):
|
|
||||||
continue
|
continue
|
||||||
sub = path.split('/', 1)
|
sub = path.split('/', 1)
|
||||||
if rpath == '.': # take all except subpaths with readonly node at top
|
if rpath == '.': # take all except subpaths with readonly node at top
|
||||||
@ -410,10 +412,12 @@ class SeaModule(Module):
|
|||||||
elif sub[0] == rpath:
|
elif sub[0] == rpath:
|
||||||
result.append(paramdesc)
|
result.append(paramdesc)
|
||||||
descr['params'] = result
|
descr['params'] = result
|
||||||
if result[0]['path'] != '':
|
rel0 = '' if rel_paths[0] == '.' else rel_paths[0]
|
||||||
pass # TODO: check these cases
|
if result[0]['path'] == rel0:
|
||||||
result[0]['key'] = 'value'
|
result[0]['key'] = 'value'
|
||||||
logger.info('PARAMS %s %r', name, result)
|
else:
|
||||||
|
logger.error('%s: no value found', name)
|
||||||
|
# logger.info('PARAMS %s %r', name, result)
|
||||||
base = descr['base']
|
base = descr['base']
|
||||||
params = descr['params']
|
params = descr['params']
|
||||||
extra_module_set = cfgdict.pop('extra_modules', ())
|
extra_module_set = cfgdict.pop('extra_modules', ())
|
||||||
@ -466,12 +470,12 @@ class SeaModule(Module):
|
|||||||
extra_modules[name + '.' + key] = sea_object, base, paramdesc
|
extra_modules[name + '.' + key] = sea_object, base, paramdesc
|
||||||
continue # skip this parameter
|
continue # skip this parameter
|
||||||
path2param[hdbpath] = (name, key)
|
path2param[hdbpath] = (name, key)
|
||||||
logger.info('PARAM %s %s %s', hdbpath, name, key)
|
# logger.info('PARAM %s %s %s', hdbpath, name, key)
|
||||||
attributes[key] = pobj
|
attributes[key] = pobj
|
||||||
# if hasattr(cls, 'read_' + key):
|
# if hasattr(cls, 'read_' + key):
|
||||||
# print('override %s.read_%s' % (cls.__name__, key))
|
# print('override %s.read_%s' % (cls.__name__, key))
|
||||||
|
|
||||||
def rfunc(self, cmd='hval /sics/%s/%s' % (sea_object, path)):
|
def rfunc(self, cmd='hval %s/%s' % (base, path)):
|
||||||
print('READ', cmd)
|
print('READ', cmd)
|
||||||
reply = self._iodev.query(cmd)
|
reply = self._iodev.query(cmd)
|
||||||
print('REPLY', reply)
|
print('REPLY', reply)
|
||||||
|
394
secop_psi/trinamic.py
Normal file
394
secop_psi/trinamic.py
Normal file
@ -0,0 +1,394 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# *****************************************************************************
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify it under
|
||||||
|
# the terms of the GNU General Public License as published by the Free Software
|
||||||
|
# Foundation; either version 2 of the License, or (at your option) any later
|
||||||
|
# version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||||
|
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||||
|
# details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License along with
|
||||||
|
# this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
#
|
||||||
|
# Module authors:
|
||||||
|
# Markus Zolliker <markus.zolliker@psi.ch>
|
||||||
|
#
|
||||||
|
# *****************************************************************************
|
||||||
|
|
||||||
|
"""drivers for trinamic PD-1161 motors"""
|
||||||
|
|
||||||
|
import time
|
||||||
|
import os
|
||||||
|
import struct
|
||||||
|
import json
|
||||||
|
from secop.core import BoolType, Command, EnumType, FloatRange, IntRange, \
|
||||||
|
HasIodev, Parameter, Property, Drivable, TupleOf, Done
|
||||||
|
from secop.bytesio import BytesIO
|
||||||
|
from secop.lib import getGeneralConfig
|
||||||
|
from secop.errors import CommunicationFailedError, HardwareError
|
||||||
|
|
||||||
|
MOTOR_STOP = 3
|
||||||
|
MOVE = 4
|
||||||
|
SET_AXIS_PAR = 5
|
||||||
|
GET_AXIS_PAR = 6
|
||||||
|
SAVE_AXIS_PAR = 7
|
||||||
|
LOAD_AXIS_PAR = 8
|
||||||
|
SET_GLOB_PAR = 9
|
||||||
|
GET_GLOB_PAR = 10
|
||||||
|
SAVE_GLOB_PAR = 11
|
||||||
|
LOAD_GLOB_PAR = 12
|
||||||
|
SET_IO = 14
|
||||||
|
GET_IO = 15
|
||||||
|
|
||||||
|
MOT_FACT = object()
|
||||||
|
|
||||||
|
CONFIG = getGeneralConfig()
|
||||||
|
|
||||||
|
|
||||||
|
class AxisPar(Parameter):
|
||||||
|
SET = SET_AXIS_PAR
|
||||||
|
GET = GET_AXIS_PAR
|
||||||
|
|
||||||
|
def __init__(self, adr, min=None, max=None, unit=None, scale=1, readonly=False, poll=True):
|
||||||
|
if unit:
|
||||||
|
datatype = FloatRange(min, max, unit=unit)
|
||||||
|
else:
|
||||||
|
datatype = IntRange(min, max)
|
||||||
|
super().__init__('_', datatype, readonly=readonly, poll=poll)
|
||||||
|
self.adr = adr
|
||||||
|
self.scale = scale
|
||||||
|
|
||||||
|
def to_raw(self, motor, value):
|
||||||
|
return round(value / self.scale)
|
||||||
|
|
||||||
|
def from_raw(self, motor, value):
|
||||||
|
return value * self.scale
|
||||||
|
|
||||||
|
def read(self, motor):
|
||||||
|
result = round(self.from_raw(motor, motor.comm(self.GET, self.adr)), 3)
|
||||||
|
# print('read', self.adr, result)
|
||||||
|
return result
|
||||||
|
|
||||||
|
def write(self, motor, value):
|
||||||
|
rvalue = self.to_raw(motor, value)
|
||||||
|
motor.comm(self.SET, self.adr, rvalue)
|
||||||
|
reply = motor.comm(self.GET, self.adr)
|
||||||
|
if rvalue != reply:
|
||||||
|
raise HardwareError('%s: reply does not match: %r != %r' % (self.name, rvalue, reply))
|
||||||
|
return round(self.from_raw(motor,reply), 3)
|
||||||
|
|
||||||
|
def __set_name__(self, owner, name):
|
||||||
|
super().__set_name__(owner, name)
|
||||||
|
setattr(owner, 'read_' + name, lambda self, pobj=self: pobj.read(self))
|
||||||
|
|
||||||
|
if not self.readonly:
|
||||||
|
|
||||||
|
setattr(owner, 'write_' + name, lambda self, value, pobj=self: pobj.write(self, value))
|
||||||
|
|
||||||
|
|
||||||
|
class IoPar(AxisPar):
|
||||||
|
SET = SET_IO
|
||||||
|
GET = GET_IO
|
||||||
|
|
||||||
|
def __init__(self, adr, bank, datatype=EnumType(CLOSED=0, OPEN=1), scale=1, readonly=False, poll=True):
|
||||||
|
Parameter.__init__(self, '_', datatype, readonly=readonly, poll=poll)
|
||||||
|
self.adr = adr + 1000 * bank
|
||||||
|
self.scale = scale
|
||||||
|
|
||||||
|
def read(self, motor):
|
||||||
|
return motor.comm(self.GET, self.adr)
|
||||||
|
|
||||||
|
def write(self, motor, value):
|
||||||
|
motor.comm(self.SET, self.adr, int(value))
|
||||||
|
return value
|
||||||
|
|
||||||
|
|
||||||
|
class AxisDiffPar(AxisPar):
|
||||||
|
@staticmethod
|
||||||
|
def to_raw(motor, value):
|
||||||
|
return round(value / motor.fact)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def from_raw(motor, value):
|
||||||
|
return round(value * motor.fact, 3)
|
||||||
|
|
||||||
|
|
||||||
|
class AxisZeroPar(AxisPar):
|
||||||
|
@staticmethod
|
||||||
|
def to_raw(motor, value):
|
||||||
|
return round(value / motor.fact - motor.zero)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def from_raw(motor, value):
|
||||||
|
return round(value * motor.fact + motor.zero, 3)
|
||||||
|
|
||||||
|
|
||||||
|
BAUDRATES = [9600, 0, 19200, 0, 38400, 57600, 0, 115200]
|
||||||
|
|
||||||
|
|
||||||
|
class Motor(HasIodev, Drivable):
|
||||||
|
address = Property('module address', IntRange(0, 255), default=1)
|
||||||
|
fact = Property('gear factor', FloatRange(unit='deg/step'), default=1.8/256)
|
||||||
|
limit_pin_mask = Property('input pin mask for lower/upper limit switch',
|
||||||
|
TupleOf(IntRange(0, 15), IntRange(0, 15)),
|
||||||
|
default=(8, 0))
|
||||||
|
value = Parameter('motor position', FloatRange(unit='deg'))
|
||||||
|
target = Parameter('_', FloatRange(unit='$'), default=0)
|
||||||
|
movelimit = Parameter('max. angle to drive in one go', FloatRange(unit='$'), default=400, readonly=False)
|
||||||
|
zero = Parameter('zero point', FloatRange(unit='$'), readonly=False, default=0)
|
||||||
|
tolerance = Parameter('positioning tolerance', FloatRange(unit='$'), readonly=False, default=0.9)
|
||||||
|
encoder = Parameter('encoder value', FloatRange(unit='$'), needscfg=False)
|
||||||
|
steppos = Parameter('motor steps position', FloatRange(unit='$'), needscfg=False)
|
||||||
|
# at_upper_limit = Parameter('upper limit switch touched', BoolType(), needscfg=False)
|
||||||
|
# at_lower_limit = Parameter('lower limit switch touched', BoolType(), needscfg=False)
|
||||||
|
pull_up = Parameter('activate pull up resistors', BoolType(), needscfg=False)
|
||||||
|
baudrate = Parameter('baud rate code', EnumType({'%d' % v: i for i, v in enumerate(BAUDRATES)}),
|
||||||
|
readonly=False, default=0, poll=True)
|
||||||
|
|
||||||
|
temperature = IoPar(9, 1, IntRange(), readonly=True)
|
||||||
|
operating_voltage = IoPar(8, 1, IntRange(), readonly=True)
|
||||||
|
|
||||||
|
enc_tolerance = AxisDiffPar(212, 0, 360., '$')
|
||||||
|
maxspeed = AxisPar(4, 0, 2047)
|
||||||
|
minspeed = AxisPar(130, 0, 2047)
|
||||||
|
maxcurrent = AxisPar(6, 0, 2.8, 'A', 2.8/250)
|
||||||
|
standby_current = AxisPar(7, 0, 2.8, 'A', 2.8/250)
|
||||||
|
acceleration = AxisPar(5, 0, 2047)
|
||||||
|
internal_target = AxisZeroPar(0, unit='$')
|
||||||
|
target_reached = AxisPar(8, readonly=True)
|
||||||
|
move_status = AxisPar(207, readonly=True)
|
||||||
|
error_bits = AxisPar(208, readonly=True)
|
||||||
|
free_wheeling = AxisPar(204, 0, 60, 'sec', scale=0.001)
|
||||||
|
|
||||||
|
fast_pollfactor = 0.001
|
||||||
|
_targettime = None
|
||||||
|
_prevconn = None
|
||||||
|
iodevClass = BytesIO
|
||||||
|
_calcTimeout = True
|
||||||
|
_poserror = None
|
||||||
|
save_filename = None
|
||||||
|
|
||||||
|
def earlyInit(self):
|
||||||
|
self.writeDict.update(self.loadParams())
|
||||||
|
|
||||||
|
def loadParams(self):
|
||||||
|
# the following should be moved to core functionality
|
||||||
|
savedir = os.path.join(CONFIG['logdir'], 'persistent')
|
||||||
|
os.makedirs(savedir, exist_ok=True)
|
||||||
|
self._save_filename = os.path.join(savedir, '%s.%s.json' % (self.DISPATCHER.equipment_id, self.name))
|
||||||
|
try:
|
||||||
|
with open(self._save_filename, 'r') as f:
|
||||||
|
save_dict = json.load(f)
|
||||||
|
except FileNotFoundError:
|
||||||
|
save_dict = {}
|
||||||
|
writeDict = {}
|
||||||
|
for pname, value in save_dict.items():
|
||||||
|
pobj = self.parameters[pname]
|
||||||
|
val = pobj.datatype.import_value(value)
|
||||||
|
if pobj.readonly:
|
||||||
|
try:
|
||||||
|
pobj.value = val
|
||||||
|
except Exception as e:
|
||||||
|
self.log.warning('can not restore %r to %r' % (pname, val))
|
||||||
|
else:
|
||||||
|
writeDict[pname] = val
|
||||||
|
return writeDict
|
||||||
|
|
||||||
|
def saveParams(self):
|
||||||
|
save_dict = {}
|
||||||
|
for pname, pobj in self.parameters.items():
|
||||||
|
if pname not in ('target', 'internal_target'):
|
||||||
|
save_dict[pname] = pobj.export_value()
|
||||||
|
tmpfile = self._save_filename + '.tmp'
|
||||||
|
try:
|
||||||
|
with open(tmpfile, 'w') as f:
|
||||||
|
json.dump(save_dict, f, indent=2)
|
||||||
|
f.write('\n')
|
||||||
|
os.rename(tmpfile, self._save_filename)
|
||||||
|
finally:
|
||||||
|
try:
|
||||||
|
os.remove(tmpfile)
|
||||||
|
except FileNotFoundError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
def startModule(self, started_callback):
|
||||||
|
self._initialize = True
|
||||||
|
|
||||||
|
def cb(self=self, started_callback=started_callback, encoder=self.encoder, zero=self.zero):
|
||||||
|
encoder += self.zero - zero
|
||||||
|
diff = encoder - self.encoder + 180
|
||||||
|
if abs(diff % 360 - 180) < self.enc_tolerance:
|
||||||
|
diff = round((diff - 180) / 360) * 360
|
||||||
|
if diff:
|
||||||
|
self.comm(SET_AXIS_PAR, 209, AxisZeroPar.to_raw(self, encoder + diff))
|
||||||
|
self._poserror = 'reset'
|
||||||
|
else:
|
||||||
|
self.log.error('encoder: saved value (%g) does not match reading (%g)' % (encoder, self.encoder))
|
||||||
|
self._poserror = 'need_reset'
|
||||||
|
self.comm(SET_GLOB_PAR, 2255, 1)
|
||||||
|
self._initialize = False
|
||||||
|
self._prevconn = self._iodev._conn
|
||||||
|
started_callback()
|
||||||
|
|
||||||
|
super().startModule(cb)
|
||||||
|
|
||||||
|
def comm(self, cmd, adr=0, value=0):
|
||||||
|
if self._calcTimeout:
|
||||||
|
self._calcTimeout = False
|
||||||
|
baudrate = getattr(self._iodev._conn.connection, 'baudrate', None)
|
||||||
|
if baudrate:
|
||||||
|
if baudrate not in BAUDRATES:
|
||||||
|
raise CommunicationFailedError('unsupported baud rate: %d' % baudrate)
|
||||||
|
self._iodev.timeout = 0.03 + 200 / baudrate
|
||||||
|
|
||||||
|
bank = adr // 1000
|
||||||
|
iadr = adr % 1000
|
||||||
|
for itry in range(3):
|
||||||
|
byt = struct.pack('>BBBBi', self.address, cmd, iadr, bank, round(value))
|
||||||
|
try:
|
||||||
|
reply = self._iodev.communicate(byt + bytes([sum(byt) & 0xff]), 9)
|
||||||
|
except Exception as e:
|
||||||
|
print(repr(e), adr, bank)
|
||||||
|
continue
|
||||||
|
if sum(reply[:-1]) & 0xff == reply[-1]:
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
raise CommunicationFailedError('checksum error')
|
||||||
|
radr, modadr, status, rcmd, result = struct.unpack('>BBBBix', reply)
|
||||||
|
if status != 100:
|
||||||
|
self.log.warning('bad status from cmd %r %s: %d', cmd, adr, status)
|
||||||
|
if radr != 2 or modadr != self.address or cmd != rcmd:
|
||||||
|
raise CommunicationFailedError('bad reply %r to command %s %d' % (reply, cmd, adr))
|
||||||
|
return result
|
||||||
|
|
||||||
|
def read_value(self):
|
||||||
|
rawenc = self.comm(GET_AXIS_PAR, 209)
|
||||||
|
rawpos = self.comm(GET_AXIS_PAR, 1)
|
||||||
|
self.encoder = AxisZeroPar.from_raw(self, rawenc)
|
||||||
|
self.steppos = AxisZeroPar.from_raw(self, rawpos)
|
||||||
|
|
||||||
|
initialized = self._initialize or self.comm(GET_GLOB_PAR, 2255) # bank 2 adr 255
|
||||||
|
if initialized and self._prevconn == self._iodev._conn: # no power loss or connection interrupt
|
||||||
|
self.saveParams()
|
||||||
|
else:
|
||||||
|
self.log.info('set to previous saved values')
|
||||||
|
for pname, value in self.loadParams().items():
|
||||||
|
try:
|
||||||
|
getattr(self, 'write_' + pname)(value)
|
||||||
|
except Exception as e:
|
||||||
|
self.log.warning('can not write %r to %r' % (value, pname))
|
||||||
|
self.comm(SET_GLOB_PAR, 2255, 1)
|
||||||
|
self._prevconn = self._iodev._conn
|
||||||
|
|
||||||
|
if abs(rawenc - rawpos) > 128:
|
||||||
|
return self.encoder
|
||||||
|
return self.steppos
|
||||||
|
|
||||||
|
def read_status(self):
|
||||||
|
if not self._targettime:
|
||||||
|
if self._poserror:
|
||||||
|
return self.Status.ERROR, 'encoder does not match internal pos'
|
||||||
|
return self.status
|
||||||
|
# self.get_limits()
|
||||||
|
# if self.at_lower_limit or self.at_upper_limit:
|
||||||
|
# self.stop()
|
||||||
|
# return self.Status.ERROR, 'at limit'
|
||||||
|
target_reached = self.read_target_reached()
|
||||||
|
if target_reached or self.read_move_status():
|
||||||
|
self._targettime = None
|
||||||
|
if abs(self.target - self.value) < self.tolerance:
|
||||||
|
return self.Status.IDLE, ''
|
||||||
|
self.log.warning('out of tolerance (%d)', self.move_status)
|
||||||
|
return self.Status.WARN, 'out of tolerance (%d)' % self.move_status
|
||||||
|
if time.time() > self._targettime:
|
||||||
|
self.log.warning('move timeout')
|
||||||
|
return self.Status.WARN, 'move timeout'
|
||||||
|
return self.Status.BUSY, 'moving'
|
||||||
|
|
||||||
|
def write_target(self, target):
|
||||||
|
rawenc = self.comm(GET_AXIS_PAR, 209)
|
||||||
|
rawpos = self.comm(GET_AXIS_PAR, 1)
|
||||||
|
if abs(rawenc - rawpos) > 128:
|
||||||
|
# adjust missing steps
|
||||||
|
missing_steps = (rawenc - rawpos) / 256.0
|
||||||
|
#if self._poserror == 'reset':
|
||||||
|
print(missing_steps, self._poserror)
|
||||||
|
if abs(missing_steps) < 10 or self._poserror == 'reset':
|
||||||
|
self.log.warning('correct missing steps (%.1f deg)', AxisDiffPar.from_raw(self, missing_steps))
|
||||||
|
self._poserror = None
|
||||||
|
self.status = self.Status.IDLE, ''
|
||||||
|
else:
|
||||||
|
self._poserror = 'need_reset'
|
||||||
|
raise ValueError('encoder does not match internal pos')
|
||||||
|
rawpos += round(missing_steps) * 256
|
||||||
|
self.comm(SET_AXIS_PAR, 1, rawpos)
|
||||||
|
if abs(target - self.encoder) > self.movelimit:
|
||||||
|
raise ValueError('can not move more than %s deg' % self.movelimit)
|
||||||
|
rawtarget = round((target - self.zero) / self.fact)
|
||||||
|
delay = (abs(rawtarget - rawpos) / 30.5 / self.maxspeed
|
||||||
|
+ self.maxspeed / self.acceleration / 15.25 + 0.5)
|
||||||
|
self._targettime = time.time() + delay
|
||||||
|
self.log.info('move to %.1f', target)
|
||||||
|
self.comm(MOVE, 0, rawtarget)
|
||||||
|
print('write_target')
|
||||||
|
self.target_reached = 0
|
||||||
|
self.status = self.Status.BUSY, 'changed target'
|
||||||
|
return target
|
||||||
|
|
||||||
|
# def get_limits(self):
|
||||||
|
# self.input_bits = self.comm(GET_IO, 255)
|
||||||
|
# bits = (~ self.input_bits) & 0xf
|
||||||
|
# self.at_lower_limit = bool(bits & self.limit_pin_mask[0])
|
||||||
|
# self.at_upper_limit = bool(bits & self.limit_pin_mask[1])
|
||||||
|
#
|
||||||
|
# def read_at_upper_limit(self):
|
||||||
|
# self.get_limits()
|
||||||
|
# return Done
|
||||||
|
#
|
||||||
|
# def read_at_lower_limit(self):
|
||||||
|
# self.get_limits()
|
||||||
|
# return Done
|
||||||
|
|
||||||
|
def write_pull_up(self, value):
|
||||||
|
self.comm(SET_IO, 0, int(value))
|
||||||
|
return value
|
||||||
|
|
||||||
|
def write_baudrate(self, value):
|
||||||
|
self.comm(SET_GLOB_PAR, 65, int(value))
|
||||||
|
|
||||||
|
def read_baudrate(self):
|
||||||
|
reply = self.comm(GET_GLOB_PAR, 65)
|
||||||
|
return reply
|
||||||
|
|
||||||
|
@Command(FloatRange())
|
||||||
|
def set_zero(self, value):
|
||||||
|
self.zero += value - self.read_value()
|
||||||
|
|
||||||
|
@Command()
|
||||||
|
def reset(self):
|
||||||
|
if self._poserror:
|
||||||
|
self._poserror = 'reset'
|
||||||
|
self.write_target(self.encoder)
|
||||||
|
|
||||||
|
@Command
|
||||||
|
def stop(self):
|
||||||
|
self.comm(MOTOR_STOP)
|
||||||
|
self.status = self.Status.IDLE, 'stopped'
|
||||||
|
self._targettime = None
|
||||||
|
|
||||||
|
@Command(FloatRange())
|
||||||
|
def step(self, value):
|
||||||
|
self.comm(MOVE, 1, value / self.fact)
|
||||||
|
|
||||||
|
@Command(IntRange(), result=IntRange())
|
||||||
|
def get_axis_par(self, adr):
|
||||||
|
return self.comm(GET_AXIS_PAR, adr)
|
||||||
|
|
||||||
|
@Command(IntRange())
|
||||||
|
def set_axis_par(self, adr, value):
|
||||||
|
return self.comm(SET_AXIS_PAR, adr, value)
|
Loading…
x
Reference in New Issue
Block a user