diff --git a/cfg/addons/camea-be-filter_cfg.py b/cfg/addons/camea-be-filter_cfg.py index 84f491c..61a331f 100644 --- a/cfg/addons/camea-be-filter_cfg.py +++ b/cfg/addons/camea-be-filter_cfg.py @@ -1,18 +1,16 @@ Node('cfg/sea/camea-be-filter.cfg', 'Camea Be-Filter', - interface='5000', - name='camea-be-filter', ) Mod('sea_addons', - 'secop_psi.sea.SeaClient', + 'frappy_psi.sea.SeaClient', 'addons sea connection for camea-be-filter.addon', config='camea-be-filter.addon', service='addons', ) Mod('t_be_filter', - 'secop_psi.sea.SeaReadable', + 'frappy_psi.sea.SeaReadable', io='sea_addons', sea_object='t_be_filter', ) diff --git a/cfg/main/ccrpe_cfg.py b/cfg/main/ccrpe_cfg.py index 3e6c1ac..0fb6171 100644 --- a/cfg/main/ccrpe_cfg.py +++ b/cfg/main/ccrpe_cfg.py @@ -1,39 +1,37 @@ Node('cfg/main/ccrpe.cfg', '4 K closed cycle cryostat (PE cell)', - interface='5000', - name='ccrpe', ) Mod('sea_main', - 'secop_psi.sea.SeaClient', + 'frappy_psi.sea.SeaClient', 'main sea connection for ccrpe.config', config='ccrpe.config', service='main', ) Mod('tt', - 'secop_psi.sea.SeaDrivable', '', + 'frappy_psi.sea.SeaDrivable', '', io='sea_main', sea_object='tt', rel_paths=['.', 'tm'], ) Mod('ts', - 'secop_psi.sea.SeaReadable', '', + 'frappy_psi.sea.SeaReadable', '', io='sea_main', sea_object='tt', rel_paths=['ts'], ) Mod('te', - 'secop_psi.sea.SeaReadable', '', + 'frappy_psi.sea.SeaReadable', '', io='sea_main', sea_object='tt', rel_paths=['te'], ) Mod('warmup', - 'secop_psi.sea.SeaDrivable', '', + 'frappy_psi.sea.SeaDrivable', '', io='sea_main', sea_object='warmup', ) diff --git a/cfg/main/ccrpe_lowT_cfg.py b/cfg/main/ccrpe_lowT_cfg.py index ba077e8..0a87187 100644 --- a/cfg/main/ccrpe_lowT_cfg.py +++ b/cfg/main/ccrpe_lowT_cfg.py @@ -1,39 +1,37 @@ Node('cfg/main/ccrpe_lowT.cfg', '4 K closed cycle cryostat (PE cell)', - interface='5000', - name='ccrpe_lowT', ) Mod('sea_main', - 'secop_psi.sea.SeaClient', + 'frappy_psi.sea.SeaClient', 'main sea connection for ccrpe_lowT.config', config='ccrpe_lowT.config', service='main', ) Mod('tt', - 'secop_psi.sea.SeaDrivable', '', + 'frappy_psi.sea.SeaDrivable', '', io='sea_main', sea_object='tt', rel_paths=['.', 'tm'], ) Mod('ts', - 'secop_psi.sea.SeaReadable', '', + 'frappy_psi.sea.SeaReadable', '', io='sea_main', sea_object='tt', rel_paths=['ts'], ) Mod('te', - 'secop_psi.sea.SeaReadable', '', + 'frappy_psi.sea.SeaReadable', '', io='sea_main', sea_object='tt', rel_paths=['te'], ) Mod('warmup', - 'secop_psi.sea.SeaDrivable', '', + 'frappy_psi.sea.SeaDrivable', '', io='sea_main', sea_object='warmup', ) diff --git a/cfg/main/cryosim_cfg.py b/cfg/main/cryosim_cfg.py index 9dfe9ff..9b5f6c0 100644 --- a/cfg/main/cryosim_cfg.py +++ b/cfg/main/cryosim_cfg.py @@ -1,6 +1,5 @@ Node('cyrosim.psi.ch', 'cryo simulation (similar ppms simulation)', - interface='tcp://5000', ) Mod('tt', diff --git a/cfg/main/haake_cfg.py b/cfg/main/haake_cfg.py index e9d8191..6c3b49d 100644 --- a/cfg/main/haake_cfg.py +++ b/cfg/main/haake_cfg.py @@ -12,7 +12,7 @@ Mod('th', meaning = ('temperature', 10), io = 'sea_main', sea_object = 'th', - extra_modules='t2', + extra_modules=['t2'], ) Mod('ts', 'frappy_psi.sea.SeaReadable', '', diff --git a/cfg/main/ill3_cfg.py b/cfg/main/ill3_cfg.py index 4bb9216..2b29519 100644 --- a/cfg/main/ill3_cfg.py +++ b/cfg/main/ill3_cfg.py @@ -1,24 +1,22 @@ Node('cfg/main/ill3.cfg', 'orange cryofurnace with 70 mm sample space (low T)', - interface='5000', - name='ill3', ) Mod('sea_main', - 'secop_psi.sea.SeaClient', + 'frappy_psi.sea.SeaClient', 'main sea connection for ill3.config', config='ill3.config', service='main', ) Mod('tt', - 'secop_psi.sea.SeaDrivable', '', + 'frappy_psi.sea.SeaDrivable', '', io='sea_main', sea_object='tt', ) Mod('cc', - 'secop_psi.sea.SeaReadable', '', + 'frappy_psi.sea.SeaReadable', '', io='sea_main', sea_object='cc', extra_modules=['h'], @@ -26,49 +24,49 @@ Mod('cc', ) Mod('lev', - 'secop_psi.sea.SeaReadable', '', + 'frappy_psi.sea.SeaReadable', '', io='sea_main', single_module='cc.h', ) Mod('nv', - 'secop_psi.sea.SeaWritable', '', + 'frappy_psi.sea.SeaWritable', '', io='sea_main', sea_object='nv', ) Mod('ln2fill', - 'secop_psi.sea.SeaWritable', '', + 'frappy_psi.sea.SeaWritable', '', io='sea_main', sea_object='ln2fill', ) Mod('hefill', - 'secop_psi.sea.SeaWritable', '', + 'frappy_psi.sea.SeaWritable', '', io='sea_main', sea_object='hefill', ) Mod('hepump', - 'secop_psi.sea.SeaWritable', '', + 'frappy_psi.sea.SeaWritable', '', io='sea_main', sea_object='hepump', ) Mod('hemot', - 'secop_psi.sea.SeaDrivable', '', + 'frappy_psi.sea.SeaDrivable', '', io='sea_main', sea_object='hemot', ) Mod('nvflow', - 'secop_psi.sea.SeaReadable', '', + 'frappy_psi.sea.SeaReadable', '', io='sea_main', sea_object='nvflow', ) Mod('table', - 'secop_psi.sea.SeaReadable', '', + 'frappy_psi.sea.SeaReadable', '', io='sea_main', sea_object='table', ) diff --git a/cfg/main/ma7two_cfg.py b/cfg/main/ma7two_cfg.py index fd5eaf2..a475664 100644 --- a/cfg/main/ma7two_cfg.py +++ b/cfg/main/ma7two_cfg.py @@ -1,104 +1,102 @@ Node('cfg/main/ma7two.cfg', '6.8 Tesla horizontal cryomagnet with two heater loops', - interface='5000', - name='ma7two', ) Mod('sea_main', - 'secop_psi.sea.SeaClient', + 'frappy_psi.sea.SeaClient', 'main sea connection for ma7two.config', config='ma7two.config', service='main', ) Mod('tt', - 'secop_psi.sea.SeaDrivable', '', + 'frappy_psi.sea.SeaDrivable', '', io='sea_main', sea_object='tt', ) Mod('cc', - 'secop_psi.sea.SeaReadable', '', + 'frappy_psi.sea.SeaReadable', '', io='sea_main', sea_object='cc', ) Mod('nv', - 'secop_psi.sea.SeaWritable', '', + 'frappy_psi.sea.SeaWritable', '', io='sea_main', sea_object='nv', ) Mod('hefill', - 'secop_psi.sea.SeaWritable', '', + 'frappy_psi.sea.SeaWritable', '', io='sea_main', sea_object='hefill', ) Mod('hepump', - 'secop_psi.sea.SeaWritable', '', + 'frappy_psi.sea.SeaWritable', '', io='sea_main', sea_object='hepump', ) Mod('hemot', - 'secop_psi.sea.SeaDrivable', '', + 'frappy_psi.sea.SeaDrivable', '', io='sea_main', sea_object='hemot', ) Mod('nvflow', - 'secop_psi.sea.SeaReadable', '', + 'frappy_psi.sea.SeaReadable', '', io='sea_main', sea_object='nvflow', ) Mod('ln2fill', - 'secop_psi.sea.SeaWritable', '', + 'frappy_psi.sea.SeaWritable', '', io='sea_main', sea_object='ln2fill', ) Mod('mf', - 'secop_psi.sea.SeaReadable', '', + 'frappy_psi.sea.SeaReadable', '', io='sea_main', sea_object='mf', ) Mod('lev', - 'secop_psi.sea.SeaReadable', '', + 'frappy_psi.sea.SeaReadable', '', io='sea_main', sea_object='lev', ) Mod('tcoil1', - 'secop_psi.sea.SeaReadable', '', + 'frappy_psi.sea.SeaReadable', '', io='sea_main', sea_object='tcoil', rel_paths=['ta'], ) Mod('tcoil2', - 'secop_psi.sea.SeaReadable', '', + 'frappy_psi.sea.SeaReadable', '', io='sea_main', sea_object='tcoil', rel_paths=['tb'], ) Mod('table', - 'secop_psi.sea.SeaReadable', '', + 'frappy_psi.sea.SeaReadable', '', io='sea_main', sea_object='table', ) Mod('om_io', - 'secop_psi.phytron.PhytronIO', + 'frappy_psi.phytron.PhytronIO', 'dom motor IO', uri='ma7-ts.psi.ch:3007', ) Mod('om', - 'secop_psi.phytron.Motor', + 'frappy_psi.phytron.Motor', 'stick rotation', io='om_io', encoder_mode='CHECK', diff --git a/cfg/main/magsim_cfg.py b/cfg/main/magsim_cfg.py index 3f9f4d6..f346edc 100644 --- a/cfg/main/magsim_cfg.py +++ b/cfg/main/magsim_cfg.py @@ -1,6 +1,5 @@ Node('magsim.psi.ch', 'cryo magnet simulation (similar to ppms simulation)', - interface='tcp://5000', ) Mod('tt', diff --git a/cfg/main/mb11_cfg.py b/cfg/main/mb11_cfg.py index a7de8ca..9821051 100644 --- a/cfg/main/mb11_cfg.py +++ b/cfg/main/mb11_cfg.py @@ -1,6 +1,5 @@ Node('mb11.psi.ch', 'MB11 11 Tesla - 100 mm cryomagnet', - interface='tcp://5000', ) Mod('itc1', diff --git a/cfg/main/mb11std_cfg.py b/cfg/main/mb11std_cfg.py index b58b512..7ae3e8e 100644 --- a/cfg/main/mb11std_cfg.py +++ b/cfg/main/mb11std_cfg.py @@ -1,6 +1,5 @@ Node('mb11.psi.ch', 'MB11 11 Tesla - 100 mm cryomagnet', - interface='tcp://5000', ) Mod('itc1', diff --git a/cfg/main/rt_cfg.py b/cfg/main/rt_cfg.py index 3d2f750..6eda872 100644 --- a/cfg/main/rt_cfg.py +++ b/cfg/main/rt_cfg.py @@ -1,18 +1,16 @@ Node('cfg/main/rt.cfg', 'room temperature HRPT (pt1000)', - interface='5000', - name='rt', ) Mod('sea_main', - 'secop_psi.sea.SeaClient', + 'frappy_psi.sea.SeaClient', 'main sea connection for rt.config', config='rt.config', service='main', ) Mod('tt', - 'secop_psi.sea.SeaDrivable', '', + 'frappy_psi.sea.SeaDrivable', '', sea_object='tt', io='sea_main', ) diff --git a/cfg/sea/hvolt_short.stick.json b/cfg/sea/hvolt_short.stick.json new file mode 100644 index 0000000..48c403e --- /dev/null +++ b/cfg/sea/hvolt_short.stick.json @@ -0,0 +1,12 @@ +{"hcp": {"base": "/hcp", "params": [ +{"path": "", "type": "float", "kids": 10}, +{"path": "send", "type": "text", "readonly": false, "cmd": "hcp send", "visibility": 3}, +{"path": "status", "type": "text", "visibility": 3}, +{"path": "set", "type": "float", "readonly": false, "cmd": "hcp set"}, +{"path": "on", "type": "bool", "readonly": false, "cmd": "hcp on"}, +{"path": "setcurrent", "type": "float", "readonly": false, "cmd": "hcp setcurrent"}, +{"path": "ramp", "type": "float", "readonly": false, "cmd": "hcp ramp"}, +{"path": "rampmode", "type": "enum", "enum": {"no ramp": 0, "always ramp": 1, "ramp up only": 2}, "readonly": false, "cmd": "hcp rampmode"}, +{"path": "workset", "type": "float"}, +{"path": "current", "type": "float"}, +{"path": "currentlimit", "type": "float", "readonly": false, "cmd": "hcp currentlimit"}]}} diff --git a/cfg/sea/ma7.config.json b/cfg/sea/ma7.config.json index 9192b73..5620b86 100644 --- a/cfg/sea/ma7.config.json +++ b/cfg/sea/ma7.config.json @@ -1,7 +1,9 @@ -{"tt": {"base": "/tt", "params": [{"path": "", "type": "float", "readonly": false, "cmd": "run tt", "description": "tt", "kids": 18}, +{"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": "mainloop", "type": "text", "readonly": false, "cmd": "tt mainloop", "visibility": 3}, {"path": "target", "type": "float"}, {"path": "running", "type": "int"}, {"path": "tolerance", "type": "float", "readonly": false, "cmd": "tt tolerance"}, @@ -59,10 +61,30 @@ {"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": "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": "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"}, @@ -110,7 +132,7 @@ {"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": "hea", "type": "enum", "enum": {"0": 0, "1": 1, "6": 6}, "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."}, @@ -158,7 +180,10 @@ {"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": "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}}, @@ -208,7 +233,10 @@ {"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": {"watching": 0, "fill": 1, "inactive": 2}, "readonly": false, "cmd": "hefill", "kids": 16}, +{"path": "calib/mbar_offset", "type": "float", "readonly": false, "cmd": "nv calib/mbar_offset"}]}, + +"hefill": {"base": "/hefill", "params": [ +{"path": "", "type": "enum", "enum": {"watching": 0, "filling": 1, "inactive": 2, "manualfill": 3}, "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"}, @@ -224,15 +252,22 @@ {"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": "vext", "type": "float"}]}, + +"hepump": {"base": "/hepump", "params": [ +{"path": "", "type": "enum", "enum": {"neodry": 8, "xds35_auto": 0, "xds35_manual": 1, "sv65": 2, "other": 3, "no": -1}, "readonly": false, "cmd": "hepump", "description": "xds35: scroll pump, sv65: leybold", "kids": 10}, {"path": "send", "type": "text", "readonly": false, "cmd": "hepump send", "visibility": 3}, {"path": "status", "type": "text", "visibility": 3}, -{"path": "running", "type": "bool", "readonly": false, "cmd": "hepump running", "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": "running", "type": "bool", "readonly": false, "cmd": "hepump running"}, +{"path": "eco", "type": "bool", "readonly": false, "cmd": "hepump eco"}, +{"path": "auto", "type": "bool", "readonly": false, "cmd": "hepump auto"}, +{"path": "valve", "type": "enum", "enum": {"closed": 0, "closing": 1, "opening": 2, "opened": 3, "undefined": 4}, "readonly": false, "cmd": "hepump valve"}, +{"path": "eco_t_lim", "type": "float", "readonly": false, "cmd": "hepump eco_t_lim", "description": "switch off eco mode when T_set < eco_t_lim and T < eco_t_lim * 2"}, +{"path": "calib", "type": "float", "readonly": false, "cmd": "hepump calib", "visibility": 3}, +{"path": "health", "type": "float"}]}, + +"hemot": {"base": "/hepump/hemot", "params": [ +{"path": "", "type": "float", "readonly": false, "cmd": "run hemot", "kids": 30}, {"path": "send", "type": "text", "readonly": false, "cmd": "hemot send", "visibility": 3}, {"path": "status", "type": "text", "visibility": 3}, {"path": "is_running", "type": "int", "readonly": false, "cmd": "hemot is_running", "visibility": 3}, @@ -258,13 +293,24 @@ {"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": {"watching": 0, "fill": 1, "inactive": 2}, "readonly": false, "cmd": "ln2fill", "kids": 14}, +{"path": "custompar", "type": "float", "readonly": false, "cmd": "hemot custompar"}]}, + +"nvflow": {"base": "/nvflow", "params": [ +{"path": "", "type": "float", "kids": 7}, +{"path": "send", "type": "text", "readonly": false, "cmd": "nvflow send", "visibility": 3}, +{"path": "status", "type": "text", "visibility": 3}, +{"path": "stddev", "type": "float"}, +{"path": "nsamples", "type": "int", "readonly": false, "cmd": "nvflow nsamples"}, +{"path": "offset", "type": "float", "readonly": false, "cmd": "nvflow offset"}, +{"path": "scale", "type": "float", "readonly": false, "cmd": "nvflow scale"}, +{"path": "save", "type": "bool", "readonly": false, "cmd": "nvflow save", "description": "unchecked: current calib is not saved. set checked: save calib"}]}, + +"ln2fill": {"base": "/ln2fill", "params": [ +{"path": "", "type": "enum", "enum": {"watching": 0, "filling": 1, "inactive": 2, "manualfill": 3}, "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"}, @@ -278,7 +324,10 @@ {"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": "tubecoolingminutes", "type": "float", "readonly": false, "cmd": "ln2fill tubecoolingminutes"}]}, + +"mf": {"base": "/mf", "params": [ +{"path": "", "type": "float", "readonly": false, "cmd": "run mf", "kids": 26}, {"path": "persmode", "type": "int", "readonly": false, "cmd": "mf persmode"}, {"path": "perswitch", "type": "int"}, {"path": "nowait", "type": "int", "readonly": false, "cmd": "mf nowait"}, @@ -299,16 +348,22 @@ {"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": "is_running", "type": "int", "readonly": false, "cmd": "mf is_running", "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": "status", "type": "text", "readonly": false, "cmd": "mf status", "visibility": 3}]}, + +"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": "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}, @@ -349,7 +404,10 @@ {"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": "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"}, @@ -366,6 +424,4 @@ {"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}]}} +{"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 ..."}]}} diff --git a/cfg/stick/dil5_cfg.py b/cfg/stick/dil5_cfg.py index a31867b..8081928 100644 --- a/cfg/stick/dil5_cfg.py +++ b/cfg/stick/dil5_cfg.py @@ -1,6 +1,5 @@ Node('triton.psi.ch', 'triton test', - interface='tcp://5000', ) Mod('triton', diff --git a/cfg/stick/flamedil_cfg.py b/cfg/stick/flamedil_cfg.py index 2bc36f4..551982a 100644 --- a/cfg/stick/flamedil_cfg.py +++ b/cfg/stick/flamedil_cfg.py @@ -1,6 +1,5 @@ Node('triton.psi.ch', 'triton test', - interface='tcp://5000', ) Mod('T_mix', diff --git a/cfg/stick/hvolt_long_cfg.py b/cfg/stick/hvolt_long_cfg.py index 8801ce4..69c63eb 100644 --- a/cfg/stick/hvolt_long_cfg.py +++ b/cfg/stick/hvolt_long_cfg.py @@ -1,18 +1,16 @@ Node('cfg/stick/hvolt_long.cfg', 'high voltage stick (extended can)', - interface='5000', - name='hvolt_long', ) Mod('sea_stick', - 'secop_psi.sea.SeaClient', + 'frappy_psi.sea.SeaClient', 'stick sea connection for hvolt_long.stick', config='hvolt_long.stick', service='stick', ) Mod('ts', - 'secop_psi.sea.SeaReadable', '', + 'frappy_psi.sea.SeaReadable', '', io='sea_stick', sea_object='tt', json_file='ma6.config.json', @@ -20,7 +18,7 @@ Mod('ts', ) Mod('hcp', - 'secop_psi.sea.SeaReadable', '', + 'frappy_psi.sea.SeaReadable', '', io='sea_stick', sea_object='hcp', ) diff --git a/cfg/stick/hvolt_short_cfg.py b/cfg/stick/hvolt_short_cfg.py new file mode 100644 index 0000000..8256e83 --- /dev/null +++ b/cfg/stick/hvolt_short_cfg.py @@ -0,0 +1,24 @@ +Node('cfg/stick/hvolt_short.cfg', + 'high voltage stick', +) + +Mod('sea_stick', + 'frappy_psi.sea.SeaClient', + 'stick sea connection for hvolt_short.stick', + config='hvolt_short.stick', + service='stick', +) + +Mod('ts', + 'frappy_psi.sea.SeaReadable', '', + io='sea_stick', + sea_object='tt', + json_file='ma10.config.json', + rel_paths=['ts'], +) + +Mod('hcp', + 'frappy_psi.sea.SeaReadable', '', + io='sea_stick', + sea_object='hcp', +) diff --git a/cfg/stick/ill3stick_cfg.py b/cfg/stick/ill3stick_cfg.py index 3a69ce7..18e3c8a 100644 --- a/cfg/stick/ill3stick_cfg.py +++ b/cfg/stick/ill3stick_cfg.py @@ -1,18 +1,16 @@ Node('cfg/stick/ill3stick.cfg', 'ILL3 standard sample stick', - interface='5000', - name='ill3stick', ) Mod('sea_stick', - 'secop_psi.sea.SeaClient', + 'frappy_psi.sea.SeaClient', 'SEA stick connection', config='ill3.stick', service='stick', ) Mod('ts', - 'secop_psi.sea.SeaReadable', '', + 'frappy_psi.sea.SeaReadable', '', io='sea_stick', sea_object='tt', json_file='ill3.config.json', diff --git a/cfg/stick/mb11stick_cfg.py b/cfg/stick/mb11stick_cfg.py index 06dc82e..02d8071 100644 --- a/cfg/stick/mb11stick_cfg.py +++ b/cfg/stick/mb11stick_cfg.py @@ -1,4 +1,3 @@ Node('mb11.stick.sea.psi.ch', 'MB11 standard sample stick (do not use)', - interface='tcp://5000', ) diff --git a/cfg/stick/ori1stick_cfg.py b/cfg/stick/ori1stick_cfg.py index a3c1a57..aaa5286 100644 --- a/cfg/stick/ori1stick_cfg.py +++ b/cfg/stick/ori1stick_cfg.py @@ -1,18 +1,16 @@ Node('cfg/stick/ori1stick.cfg', 'ORI1 standard sample stick', - interface='5000', - name='ori1stick', ) Mod('sea_stick', - 'secop_psi.sea.SeaClient', + 'frappy_psi.sea.SeaClient', 'SEA stick connection', config='ori1.stick', service='stick', ) Mod('ts', - 'secop_psi.sea.SeaReadable', '', + 'frappy_psi.sea.SeaReadable', '', io='sea_stick', sea_object='tt', json_file='ill1.config.json', diff --git a/cfg/stick/ovenstick_cfg.py b/cfg/stick/ovenstick_cfg.py index d76954b..ad5a46d 100644 --- a/cfg/stick/ovenstick_cfg.py +++ b/cfg/stick/ovenstick_cfg.py @@ -1,18 +1,16 @@ Node('cfg/stick/ovenstick.cfg', 'oven stick for sans', - interface='5000', - name='ovenstick', ) Mod('sea_stick', - 'secop_psi.sea.SeaClient', + 'frappy_psi.sea.SeaClient', 'SEA stick connection', config='oven.stick', service='stick', ) Mod('ts', - 'secop_psi.sea.SeaReadable', '', + 'frappy_psi.sea.SeaReadable', '', io='sea_stick', sea_object='tt', json_file='ma7.config.json', diff --git a/cfg/stick/oventwo_cfg.py b/cfg/stick/oventwo_cfg.py index 1e9cab5..2708d1d 100644 --- a/cfg/stick/oventwo_cfg.py +++ b/cfg/stick/oventwo_cfg.py @@ -1,18 +1,16 @@ Node('cfg/stick/oventwo.cfg', 'oven stick for SANS', - interface='5000', - name='oventwo', ) Mod('sea_stick', - 'secop_psi.sea.SeaClient', + 'frappy_psi.sea.SeaClient', 'stick sea connection for oventwo.stick', config='oventwo.stick', service='stick', ) Mod('ts', - 'secop_psi.sea.SeaDrivable', '', + 'frappy_psi.sea.SeaDrivable', '', io='sea_stick', sea_object='ts', ) diff --git a/cfg/stick/sch_cfg.py b/cfg/stick/sch_cfg.py index 027d85b..e3d336d 100644 --- a/cfg/stick/sch_cfg.py +++ b/cfg/stick/sch_cfg.py @@ -1,25 +1,23 @@ # error creating warmup Node('cfg/stick/sch.cfg', 'old sample changer for 100 mm orange cryo (4 samples, HRPT)', - interface='5000', - name='sch', ) Mod('sea_stick', - 'secop_psi.sea.SeaClient', + 'frappy_psi.sea.SeaClient', 'SEA connection to sch4', config='sch.stick', service='stick', ) Mod('warmup', - 'secop_psi.sea.SeaReadable', '', + 'frappy_psi.sea.SeaReadable', '', sea_object='warmup', io='sea_stick', ) Mod('ts', - 'secop_psi.sea.SeaReadable', '', + 'frappy_psi.sea.SeaReadable', '', sea_object='tt', json_file='ori4.config.json', rel_paths=['ts'], diff --git a/cfg/stick/varioxstick_cfg.py b/cfg/stick/varioxstick_cfg.py index c653d0b..7ec1ce8 100644 --- a/cfg/stick/varioxstick_cfg.py +++ b/cfg/stick/varioxstick_cfg.py @@ -1,18 +1,16 @@ Node('cfg/stick/varioxstick.cfg', 'Variox standard sample stick', - interface='5000', - name='varioxstick', ) Mod('sea_stick', - 'secop_psi.sea.SeaClient', + 'frappy_psi.sea.SeaClient', 'SEA stick connection', config='variox.stick', service='stick', ) Mod('ts', - 'secop_psi.sea.SeaReadable', '', + 'frappy_psi.sea.SeaReadable', '', io='sea_stick', sea_object='tt', json_file='variox.config.json', diff --git a/frappy/lib/__init__.py b/frappy/lib/__init__.py index 6e639a9..8b67cc2 100644 --- a/frappy/lib/__init__.py +++ b/frappy/lib/__init__.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # ***************************************************************************** # # This program is free software; you can redistribute it and/or modify it under @@ -17,6 +16,8 @@ # # Module authors: # Enrico Faulhaber +# Markus Zolliker +# Alexander Zaft # # ***************************************************************************** """Define helpers""" @@ -32,6 +33,9 @@ from configparser import ConfigParser from os import environ, path +SECoP_DEFAULT_PORT = 10767 + + class GeneralConfig: """generalConfig holds server configuration items @@ -297,6 +301,7 @@ def formatException(cut=0, exc_info=None, verbose=False): HOSTNAMEPART = re.compile(r'^(?!-)[a-z0-9-]{1,63}(? 255: @@ -325,7 +330,7 @@ def validate_ipv6(addr): return True -def parse_ipv6_host_and_port(addr, defaultport=10767): +def parse_ipv6_host_and_port(addr, defaultport=SECoP_DEFAULT_PORT): """ Parses IPv6 addresses with optional port. See parse_host_port for valid formats""" if ']' in addr: host, port = addr.rsplit(':', 1) @@ -333,9 +338,10 @@ def parse_ipv6_host_and_port(addr, defaultport=10767): if '.' in addr: host, port = addr.rsplit('.', 1) return host, int(port) - return (host, defaultport) + return addr, defaultport -def parse_host_port(host, defaultport=10767): + +def parse_host_port(host, defaultport=SECoP_DEFAULT_PORT): """Parses hostnames and IP (4/6) addressses. The accepted formats are: @@ -346,16 +352,16 @@ def parse_host_port(host, defaultport=10767): - IPv6 addresses in the forms '[IPv6]:port' or 'IPv6.port' """ colons = host.count(':') - if colons == 0: # hostname/ipv4 wihtout port + if colons == 0: # hostname/ipv4 without port port = defaultport - elif colons == 1: # hostname or ipv4 with port + elif colons == 1: # hostname or ipv4 with port host, port = host.split(':') port = int(port) - else: # ipv6 + else: # ipv6 host, port = parse_ipv6_host_and_port(host, defaultport) if (validate_ipv4(host) or validate_hostname(host) or validate_ipv6(host)) \ - and 0 < port < 65536: - return (host, port) + and 0 < port < 65536: + return host, port raise ValueError(f'invalid host {host!r} or port {port}') diff --git a/frappy/lib/asynconn.py b/frappy/lib/asynconn.py index 143d58a..7b4b1db 100644 --- a/frappy/lib/asynconn.py +++ b/frappy/lib/asynconn.py @@ -35,7 +35,7 @@ import time import re from frappy.errors import CommunicationFailedError, ConfigError -from frappy.lib import closeSocket, parse_host_port +from frappy.lib import closeSocket, parse_host_port, SECoP_DEFAULT_PORT try: from serial import Serial @@ -176,11 +176,11 @@ class AsynTcp(AsynConn): uri = uri[6:] try: - host, port = parse_host_port(uri, self.default_settings.get('port')) + host, port = parse_host_port(uri, self.default_settings.get('port', SECoP_DEFAULT_PORT)) self.connection = socket.create_connection((host, port), timeout=self.timeout) except (ConnectionRefusedError, socket.gaierror, socket.timeout) as e: # indicate that retrying might make sense - raise CommunicationFailedError(str(e)) from None + raise CommunicationFailedError(f'can not connect to {host}:{port}, {e}') from None def shutdown(self): if self.connection: diff --git a/frappy/protocol/interface/tcp.py b/frappy/protocol/interface/tcp.py index 1a28fd3..cd39ce2 100644 --- a/frappy/protocol/interface/tcp.py +++ b/frappy/protocol/interface/tcp.py @@ -1,4 +1,3 @@ -# -*- 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 @@ -32,13 +31,12 @@ import time from frappy.datatypes import BoolType, StringType from frappy.errors import SECoPError from frappy.lib import formatException, formatExtendedStack, \ - formatExtendedTraceback + formatExtendedTraceback, SECoP_DEFAULT_PORT from frappy.properties import Property from frappy.protocol.interface import decode_msg, encode_msg_frame, get_msg from frappy.protocol.messages import ERRORPREFIX, HELPREPLY, HELPREQUEST, \ HelpMessage -DEF_PORT = 10767 MESSAGE_READ_SIZE = 1024 HELP = HELPREQUEST.encode() @@ -201,7 +199,7 @@ class TCPServer(DualStackTCPServer): # for cfg-editor configurables = { 'uri': Property('hostname or ip address for binding', StringType(), - default=f'tcp://{DEF_PORT}', export=False), + default=f'tcp://{SECoP_DEFAULT_PORT}', export=False), 'detailed_errors': Property('Flag to enable detailed Errorreporting.', BoolType(), default=False, export=False), }