89 Commits
mirror ... work

Author SHA1 Message Date
b88750ae2b update checklist for git branch sync in README.md
Change-Id: I788fba8cd748be090f82442ad20c839f206e5e3c
2021-03-18 13:47:26 +01:00
9c68f582b7 remove debug print statements
Change-Id: I51dc66b9cecb0f5e84bef36d1b4a541ddefcfbc2
2021-03-18 13:45:46 +01:00
c89b4a44bb fix inheritance problem with mixin
- a mixin should not inherit from module then it has Parameters
- Parameters in mixins must be complete, not just overrides
- check precedence of read_<param> or handler

Change-Id: I72d9355a1982770d1a99d9552a20330103c97edb
2021-03-18 13:45:46 +01:00
330aa15400 more fixes for sea
Change-Id: I195bcdbe5f6b274e65dd431ed13a123c74a8d5bf
2021-03-18 13:45:46 +01:00
3435107948 fix access to sea config dir
- removed unused property json_path
- do not take the first directory in config path, but the first
  directory with a sea subdirectory

Change-Id: I4f0d72936ca616134c38568d88c57a33a3397ec6
2021-03-18 13:45:46 +01:00
7c0101f6bd fix user friendly reporting of config errors
Change-Id: I42ec1ad2e18a0363fb7317c86743ff2f6665f049
2021-03-18 13:45:46 +01:00
6ea97b0012 user friendly reporting of config errors
Config errors are collected first, and raised after processing
all modules. This is more user friendly.

+ remove redundant check for predefined accessibles in modules.py
+ fixed error handling for exporting parameters in params.py
+ fixed handling of bare attributes overwriting properties

Change-Id: I894bda291ab85ccec3d771c4903393c808af0a2a
2021-03-18 13:45:46 +01:00
3dc159a9a4 user friendly reporting of config errors
Config errors are collected first, and raised after processing
all modules. This is more user friendly.

+ remove redundant check for predefined accessibles in modules.py
+ fixed error handling for exporting parameters in params.py
+ fixed handling of bare attributes overwriting properties

Change-Id: I894bda291ab85ccec3d771c4903393c808af0a2a
2021-03-18 13:45:46 +01:00
bd14e0a0e5 improved softcal
- better error handling
- bug fix
Change-Id: I43bdd4aa35723f43f9e4baf2723af812f04689d3

Change-Id: I5990c75a7a8153e95abee9548475783ee893bd08
2021-03-18 13:45:46 +01:00
l_samenv
4922f0d664 fixed bugs from syntax migration
- a new wrapper for a read function is not only to be created when
  the a new read method is in the class dict, but also when
  it is inherited, but not yet wrapped
- a handler must not be ignored, when a write method is inherited
- a proxy class must not call checkProperties

+ remove trailing spaces in tutorial_helevel.rst

Change-Id: I16024c14232ea200db91a1bc07ec23326219ab68
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/25093
Tested-by: Jenkins Automated Tests <pedersen+jenkins@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2021-03-18 13:45:46 +01:00
9b71d3621d make softcal more tolerant reading .340 files
accept tab instead of space in 'Data Format' header keyword

Change-Id: I77e5500da5eaed6fd1097723533bc86207fa73d8
2021-03-05 08:57:23 +01:00
l_samenv
bec3359069 fixed bugs from syntax migration
- a new wrapper for a read function is not only to be created when
  the a new read function is in the class dict, but also when
  it inherited, but not yet wrapped
- a proxy class must not call checkProperties
2021-03-03 14:35:21 +01:00
04692bd1aa added README.md
this should be the only file not matching mlz branch
now in sync with 316cf9738db29920a99e29813513ed1da048994a
'added README.md'

Change-Id: I826fd8c782f95fde3f8f4ef15b15b8b8f99d9973
2021-03-03 11:04:15 +01:00
ffafd7344c removed obsolete files from merge
Change-Id: I98c6d06a680ef6885f38d4b3e6b3f51aa7ebd022
2021-03-03 10:19:59 +01:00
l_samenv
b1bf5e866d improve tutorial_helevel
- fix indent of query method
- add remark about the CCU4 cid command
2021-03-03 10:17:05 +01:00
l_samenv
e4748ef9c9 do not export pollintervals in ppms driver 2021-03-03 10:16:52 +01:00
b4bb172ada Merge branch 'wip'
Change-Id: I3ba389775ce9b02269ca9c20a42ec1bddf6c5d21
2021-03-03 09:46:20 +01:00
4fd9c17bcb move historywriter to secop_psi
as historywriter currently could be used at psi only
secop_psi is a better place for it

+ add comment about a general config file

Change-Id: I9b0e74d3da83ac485bd4bcc13475695c3140822c
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/25077
Tested-by: Jenkins Automated Tests <pedersen+jenkins@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2021-03-03 09:06:14 +01:00
76c6ebe92c fixed errors during migration
- reference.rst did still contain do_<something>
- trailing commas in secop_demo/cryo.py

Change-Id: I5bb8bd310576366c8cfe406f0ec770fa40bcab5b
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/25079
Tested-by: Jenkins Automated Tests <pedersen+jenkins@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2021-03-03 09:06:01 +01:00
12b0549cc0 merged master with work
Change-Id: Iedfb2bf7f28bfe45201adacec0645cc13abffe59
2021-03-03 09:00:45 +01:00
3aa99e2268 fix doc main index and tutorial index
Change-Id: Ibf0ca53e8e1c2ca7da6bb8a0a357f860e6744c8d
2021-03-01 14:51:26 +01:00
72eaeac698 fixed errors during migration
- reference.rst did still contain do_<something>
- traling commas in secop_demo/cryo.py

Change-Id: I5bb8bd310576366c8cfe406f0ec770fa40bcab5b
2021-03-01 14:36:58 +01:00
d3831b3974 fix doc and REAMDE
Change-Id: I2e022e29e52511ca1a7f529d6d1bae44a995a073
2021-03-01 14:31:02 +01:00
l_samenv
f861701fc2 update FG and SR drivers
these drivers should now include the last changes before
the syntax change. To be tested ...
2021-03-01 11:24:30 +01:00
452eb00417 again README
Change-Id: Ie1410448532253e85106d3d6c03ca7cd61db4bf5
2021-02-26 17:49:13 +01:00
52472acae9 impoved sync startegy (README)
Change-Id: I62da19c17d269e507833941d3f53c2aefd2a9a17
2021-02-26 17:46:55 +01:00
fee7c4904b added hook for optional history writer
- activated with envrionment variable FRAPPY_HISTORY
- using the (currently) private package 'frappyhistory'

Change-Id: I8f747b29d8311af677ed77268a4c38c8d71b08c2
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/25064
Tested-by: Markus Zolliker <markus.zolliker@psi.ch>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2021-02-26 17:27:13 +01:00
3141e22894 lookup cfg files in a list of directories
environment variable SECOP_CONFDIR may be a ':' separated
list of directories to lookup for cfg files

Change-Id: I058be6a270d3a3f6cd8ca45fdd4ab68c80fa5c23
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/25063
Tested-by: Jenkins Automated Tests <pedersen+jenkins@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2021-02-26 17:27:13 +01:00
fbccd0f9b7 remove obsolete code
- basic_validators is not needed any more since the implementation
  of datatypes.Stub
- client/baseclient.y is replaced by client/__init__.py both for
  the gui client and NICOS SECoP client
- lib/parsing.py used by baseclient only

Change-Id: I15b6ac880017000e155b8f6b7e2456e1bbf56dab
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/25058
Tested-by: Jenkins Automated Tests <pedersen+jenkins@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2021-02-26 17:27:13 +01:00
9071a5bcf7 fix inheritance order
+ hide pollperiod on PPMS Modules

Change-Id: I77ad5502884360bf6babfd226de0675ee06a6196
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/25054
Tested-by: Jenkins Automated Tests <pedersen+jenkins@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2021-02-26 17:27:13 +01:00
1588703f99 try to follow PEP8
- fixed most important code after checking with flake8
- ignored code which has to be reworked or removed
+ mark unused code with 'TODO: remove ...'

Change-Id: Ic45e541049e391e2853d29cd64bb0963bd9a2125
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/25053
Tested-by: Jenkins Automated Tests <pedersen+jenkins@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
2021-02-26 17:27:13 +01:00
fe041bac0a after running isort
Change-Id: I6d7dbb8dee9480fc9242529089a1b40f17f068e7
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/25052
Tested-by: Jenkins Automated Tests <pedersen+jenkins@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2021-02-26 17:27:13 +01:00
07b758c3dd removed old style syntax
- removed secop/metaclass.py
- moved code from ModuleMeta to modules.HasAccessibles.__init_subclass__
- reworked properties:
  assignment obj.property = value now always allowed
- reworked Parameters and Command to be true descriptors
- Command must now be solely used as decorator
- renamed 'usercommand' to 'Command'
- command methods no longer start with 'do_'
- reworked mechanism to determine accessible order:
  the attribute paramOrder, if given, determines order of accessibles
+ fixed some issues makeing the IDE more happy
+ simplified code for StatusType and added a test for it

Change-Id: I8045cf38ee6f4d4862428272df0b12a7c8abaca7
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/25049
Tested-by: Jenkins Automated Tests <pedersen+jenkins@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2021-02-26 17:27:13 +01:00
f9a2152883 enhance documentation
- flatten hierarchy (some links do not work when using folders)
- add a tutorial for programming a simple driver
- clean description using inspect.cleandoc
+ fix a bug with 'unit' pseudo property in a Parameter used as override

Change-Id: I31ddba5d516d1ee5e785e28fbd79fca44ed23f5e
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/25000
Tested-by: Jenkins Automated Tests <pedersen+jenkins@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2021-02-26 17:27:13 +01:00
25891f296d new syntax for parameter/commands/properties
New Syntax:

- define properties and parameters as class attributes directly
  instead of items in class attribute dicts
- define commands with decorator @usercommand(...)
- old syntax is still supported for now

still to do (with decreasing priority):
- turn parameters into descriptors (vs. creating getters/setters)
- migrate all existing code to new syntax
- get rid of or reduce code in metaclasses using __set_name__ and
  __init_subclass__ instead, including a fix for allowing py < 3.6

Change-Id: Id47e0f89c506f50c40fa518b01822c6e5bbf4e98
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/24991
Tested-by: Jenkins Automated Tests <pedersen+jenkins@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2021-02-26 17:27:13 +01:00
0d1c7ba76f make arguments of Parameter and Override consistent
- allow (description and) datatype being positional args in Override
- disallow ctr and unit being a positional arg in Parameter
- disallow reorder being a positional arg in Override

Change-Id: Ic5711d091af11d5843943b0b2b31567127f8ed8c
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/24934
Tested-by: Jenkins Automated Tests <pedersen+jenkins@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2021-02-26 17:27:13 +01:00
9afcc49430 improve softcal
- bugfix: stop searching for file on the first match
- allow to ignore the sign on input by abs (bool) parameter

Change-Id: I0e5544d7645f124d4c4ac720174b0f5bde7e71a6
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/24928
Tested-by: Jenkins Automated Tests <pedersen+jenkins@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2021-02-26 17:27:13 +01:00
7895470301 main module of LS370 is now drivable
The main value of main module is the selected channel, it is 0
when pausing during scanning, and the status is busy.

+ cosmetics to make IDE more happy

Change-Id: I11d8f08ea67d25fb00f7492080b4a55efc124bfb
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/24927
Tested-by: Jenkins Automated Tests <pedersen+jenkins@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2021-02-26 17:27:13 +01:00
9df43bb940 make order of accessibles work again
- when applying overrides with reorder=True, take ctr from Override,
  else copy from the cloned Accesible. This did not work properly
- reworked:
  - replaced CountedObj class by object_counter
  - accessibles created by a copy or by applying Overrides
    do not need fresh counted values
- adjusted tests

Change-Id: Id2fcf1ab1295aa1ea80ea81ae8cd02d36f86e969
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/24926
Tested-by: Jenkins Automated Tests <pedersen+jenkins@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2021-02-26 17:27:13 +01:00
l_samenv
ab558b3390 fixed README 2021-02-26 17:05:44 +01:00
l_samenv
fad330b71d fixed README
added a plan, how to keep mlz and local git in sync
2021-02-26 17:02:26 +01:00
l_samenv
3cc8db881e fixed ls370 issue when dwell time is too short 2021-02-26 16:13:22 +01:00
fa71b8ee25 added hook for optional history writer
- activated with envrionment variable FRAPPY_HISTORY
- using the (currently) private package 'frappyhistory'

Change-Id: I8f747b29d8311af677ed77268a4c38c8d71b08c2
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/25064
Tested-by: Markus Zolliker <markus.zolliker@psi.ch>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2021-02-26 15:29:44 +01:00
dbc6f17e5e lookup cfg files in a list of directories
environment variable SECOP_CONFDIR may be a ':' separated
list of directories to lookup for cfg files

Change-Id: I058be6a270d3a3f6cd8ca45fdd4ab68c80fa5c23
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/25063
Tested-by: Jenkins Automated Tests <pedersen+jenkins@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2021-02-26 15:29:44 +01:00
0c23ee46a1 remove obsolete code
- basic_validators is not needed any more since the implementation
  of datatypes.Stub
- client/baseclient.y is replaced by client/__init__.py both for
  the gui client and NICOS SECoP client
- lib/parsing.py used by baseclient only

Change-Id: I15b6ac880017000e155b8f6b7e2456e1bbf56dab
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/25058
Tested-by: Jenkins Automated Tests <pedersen+jenkins@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2021-02-26 15:29:44 +01:00
d6cf1f7629 added ccu4 and mercury drivers
Change-Id: I566016e9972a33b94eff5025523206e9806c4b5c
2021-02-26 15:17:58 +01:00
41baf5805f migrated secop_psi drivers to new syntax
- includes all changes up to 'fix inheritance order' from git_mlz
  6a32ecf342

Change-Id: Ie3ceee3dbd0a9284b47b1d5b5dbe262eebe8f283
2021-02-25 14:01:54 +01:00
bc5edec06f enhance documentation
- flatten hierarchy (some links do not work when using folders)
+ fix a bug with the redorder flag in Override
+ allow removal of parameters
+ clean description using inspect.cleandoc

Change-Id: I3dde4f4cb29c46e8a21014f1fad7aa3ad610a1bf
2021-01-25 15:12:47 +01:00
e411ded55b worked on tutorial
Change-Id: I630e7379e35cc0146d58f9abe10cb19283191ca8
2021-01-21 08:42:43 +01:00
ad9defab0f changed doc html layout to alabaster
- make page width 100% of the window
- decrease code font size (seems to big compared to other text)

Change-Id: Id36dffea22163dcbd77303b0aab8c852371ef017
2021-01-21 08:41:17 +01:00
fbb0d10c55 fixed worst bugs in FG Lecryo driver
Change-Id: Iab6b7e0f0838a42f1a4f4b484745cc7dd7089c6b
2021-01-21 08:40:16 +01:00
bc33933a1a update doc
- add properties, parameters and commands to the doc string autoatically
- change names to "Frappy"
- started tutorial
- changed doc structure slightly

Change-Id: I87bef91384d138c738d12ddcf3a1de7f758a0973
2021-01-19 17:20:53 +01:00
2d310bc612 TupleOf and StructOf create multiple curves
the components of TupleOf and StructOf are storead as separate
curves in history

Change-Id: I42ebf84653408de7148796763a4d4ea9dd309696
2021-01-12 15:41:06 +01:00
e0f9b4a858 add history writer
Change-Id: I2d577dcf0c543c26680d157be959b0a608ace759
2020-12-10 17:04:41 +01:00
l_samenv
16834f8802 fix a bug softcal
- stop searching for files on the first match
2020-12-04 13:33:54 +01:00
l_samenv
d9650d7fc7 improve drivers for PPMS auxiliary equipment 2020-12-04 13:33:08 +01:00
l_samenv
569c0a3399 make arguments of Parameter and Override consistent
- allow description _and_ datatype being positional args
- disallow ctr, unit, reorder being positional
2020-12-04 13:28:04 +01:00
local SE user
cab2bb85ba [wip] next version of FG 2020-11-10 11:55:09 +01:00
l_samenv
2fb05b37f8 [WIP] driver for FG_Lecroy_3000
not yet working
2020-11-10 08:09:39 +01:00
l_samenv
ad2a79c312 SR_7270: autorange is an enum
- autorange may be off, soft or hard
2020-11-10 08:00:33 +01:00
l_samenv
82b4af4faa main module of LS370 is now drivable
- the main value is the channel
- it is busy when pausing during scanning
+ allow softcal to ignore the sign
2020-11-10 07:57:48 +01:00
ad07ecdd69 fix typos in secop/modules.py doc
Change-Id: Idfbb85603b5efd0884ae9356dd96136c9c32ada1
2020-10-28 10:09:17 +01:00
cf24bbc3c3 improved doc on softcal and Module.registerCallback
Change-Id: I12b1f7a2d29435d989fb9953f72bea181e6cb4f7
2020-10-28 09:59:40 +01:00
29c66fa19a describe branches in README.md
Change-Id: I5bec3d9177a14d618b982f9301a7f06a71a4a72e
2020-10-28 08:49:35 +01:00
25a887dcab fix initwrite behaviour
with handlers, a parameter from the cfg file which is not the
first of parameters with the same handler were not written.
fix: write_<param> method is called for all parameters in
<module>.writeDict even if there is no poll entry.

with this fix, when a parameter has the property initwrite=True,
the write_<param> method is called even when <param>
is not polled and even when <module>.pollerClass is None

Change-Id: I9b397deb5b20709fc4fa7c860c85b251a204c7f6
2020-10-28 08:35:01 +01:00
36ffb0a31f Merge branch 'mlz' into wip
Change-Id: I9dab1c32c4f0579f7f54bb68c60f7a8b14866652
2020-10-28 08:01:44 +01:00
b544d2af98 Merge branch 'master' into wip 2020-10-28 07:55:17 +01:00
l_samenv
5db1acb07c improvements on SR_7270 driver 2020-10-20 14:38:45 +02:00
l_samenv
880327c544 main ls370 module is now drivable
the value is the current channel, when the target (=channel) is changed,
the value changes to 0, until the switching has finished, including pause time
2020-10-20 14:17:24 +02:00
4f1883ba27 fix initwrite behaviour
with handlers, a parameter from the cfg file which is not the
first of parameters with the same handler were not written.
fix: write_<param> method is called for all parameters in
<module>.writeDict even if there is no poll entry.

with this fix, when a parameter has the property initwrite=True,
the write_<param> method is called even when <param>
is not polled and even when <module>.pollerClass is None

Change-Id: I9b397deb5b20709fc4fa7c860c85b251a204c7f6
2020-09-25 13:28:12 +02:00
3043200012 fix initwrite behaviour
with handlers, a parameter from the cfg file which is not the
first of parameters with the same handler were not written.
fix: write_<param> method is called for all parameters in
<module>.writeDict even if there is no poll entry.

with this fix, when a parameter has the property initwrite=True,
the write_<param> method is called even when <param>
is not polled and even when <module>.pollerClass is None

Change-Id: I9b397deb5b20709fc4fa7c860c85b251a204c7f6
2020-09-25 12:05:16 +02:00
l_samenv
1b4865c608 Revert "support name mangling for parameter/command names"
This reverts commit 99bdafdd0c.
2020-09-25 11:30:23 +02:00
l_samenv
f7576cf541 fix initwrite behaviour
with handlers, a parameter from the cfg file which is not the
first of parameters with the same handler were not written.
fix: write_<param> method is called for all parameters in
<module>.writeDict even if there is no poll entry.

with this fix, the write_<method> is called even when a parameter
is not polled.
2020-09-25 11:19:17 +02:00
l_samenv
587b170f6a update SR_7270 2020-09-10 15:47:04 +02:00
l_samenv
1c42859466 newset version of senis 2020-09-10 10:43:34 +02:00
l_samenv
1f832388d7 Merge branch 'wip' of git.psi.ch:sinqdev/frappy into wip 2020-09-08 13:37:01 +02:00
l_samenv
5f9344109d improve sea client 2020-09-08 13:36:11 +02:00
l_samenv
99bdafdd0c support name mangling for parameter/command names 2020-09-08 13:33:13 +02:00
l_samenv
ab21bb5e3f add timestamp to error reply 2020-09-08 13:32:18 +02:00
l_samenv
99e32065b1 simplyfy some error messages 2020-09-08 13:31:38 +02:00
l_samenv
c1ffc160a2 configurable search path for cfg files 2020-09-08 12:13:17 +02:00
89bf080dab fix typo
Change-Id: I578668ab179b9d95bb16a0103bb96c5f4a937133
2020-08-13 11:37:18 +02:00
047f3a7606 add a lot of current stuff
this is not (yet) in the frm2 repo

Change-Id: Ia5b2996803c3dbb15b85ab1bc3a24717ac6297fb
2020-08-13 11:33:14 +02:00
7f7c1a85ab improvements on PPMS and LS370
- PPMS: improved machanism for 10 K waiting
- LS370: fixed an issue with auto range
+ LS370: show test for all status bits

Change-Id: Ia6454141917893f0e5c6c4351df3a864942bb629
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/23495
Tested-by: Jenkins Automated Tests <pedersen+jenkins@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2020-08-13 11:33:14 +02:00
l_samenv
5aff4b9dab README: add a short description 2020-07-30 08:46:09 +02:00
l_samenv
2bd30c4423 test adding README 2020-07-30 08:42:44 +02:00
0641968715 add a lot of current stuff
this is not (yet) in the frm2 repo

Change-Id: Ia5b2996803c3dbb15b85ab1bc3a24717ac6297fb
2020-07-29 14:57:50 +02:00
d9a2045fca more flexible end_of_line in stringio
in the previous version, it was not possible to give a ASCII nul
character as end_of_line, because StringType refuses this

- end_of_line might be given as bytes, str or int
- end_of_line might be given as tuple (eol_read, eol_write)

Change-Id: I8b7942320ad3ffe162cdf3a673e113a66a84fb93
2020-07-23 16:12:14 +02:00
ab00c45db0 improvements on PPMS and LS370
- improved machanism for 10 K waiting
- fixed an issue with auto range

Change-Id: Ia6454141917893f0e5c6c4351df3a864942bb629
2020-07-07 15:08:28 +02:00
466 changed files with 40826 additions and 4068 deletions

View File

@@ -212,13 +212,13 @@ max-locals=50
max-returns=10
# Maximum number of branch for function / method body
max-branches=40
max-branches=50
# Maximum number of statements in function / method body
max-statements=150
# Maximum number of parents for a class (see R0901).
max-parents=10
max-parents=15
# Maximum number of attributes for a class (see R0902).
max-attributes=50

62
README.md Normal file
View File

@@ -0,0 +1,62 @@
# Frappy Framework
current running code at SINQ, with newest changes not yet pushed
through the Gerrit workflow at MLZ
## Branches
branches:
- mlz: master from forge.frm2.tum.de:29418/sine2020/secop/playground
this is not present at git.psi.ch:sinqdev/frappy.git!
- master: the last synced state between mlz and wip/work, except an added README.md
(this does NOT contain local repo files only, however, all common files work/mlz should match)
- core: the modifications of the core frappy parts (to be going through gerrit)
- 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
- 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
PSI internal files, not mixed. Mark local commits with '[PSI]' in the commit message.
master --> mlz # these branches match after a sync step, but they might have a different history
master --> work --> wip
apply commits from mlz to master: (rebase ?) or use cherry-pick:
git cherry-pick <sha1>..<sha2>
where sha1 is the last commit already in wip, and sha2 ist the last commit to be applied
(for a single commit <sha1>.. may be omitted)
the wip branch is also present in an other directory (currently zolliker/switchdrive/gitmlz/frappy),
where commits may be cherry picked for input to Gerrit. As generally in the review process some additional
changes are done, eventually a sync step should happen:
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
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)
5) create branch new_work from master
6) go through commits in wip and sort out:
- core commits already pushed through gerrit are skipped
- all other commits are to be cherry-picked
7) when arrived at the point where the new working version should be,
copy new_wip branch to work with 'git checkout work;git checkout new_wip .'
(note the dot!) and then commit this.
8) continue with (6) if wip and work should differ
9) do like (7), but for wip branch
10) delete new_wip branch, push master, wip and work branches
## Procedure to update PPMS
1) git checkout wip (or work, whatever state to copy to ppms)
2) git checkout -B ppms # local branch ?
3) assume PPMSData is mounted on /Volumes/PPMSData
cp -r secop_psi /Volumes/PPMSData/zolliker/frappy/secop_psi
cp -r secop /Volumes/PPMSData/zolliker/frappy/secop
it may be that additional folder have to copied ...

View File

@@ -1,76 +0,0 @@
#!/usr/bin/env python3
# pylint: disable=invalid-name
# -*- 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:
# Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
#
# *****************************************************************************
import sys
import argparse
from os import path
# Path magic to make python find our stuff.
# also remember our basepath (for etc, pid lookup, etc)
basepath = path.abspath(path.join(sys.path[0], '..'))
etc_path = path.join(basepath, 'etc')
pid_path = path.join(basepath, 'pid')
log_path = path.join(basepath, 'log')
# sys.path[0] = path.join(basepath, 'src')
sys.path[0] = basepath
# do not move above!
import mlzlog
from secop.client.console import ClientConsole
def parseArgv(argv):
parser = argparse.ArgumentParser(description="Connect to a SECoP server")
loggroup = parser.add_mutually_exclusive_group()
loggroup.add_argument("-v", "--verbose",
help="Output lots of diagnostic information",
action='store_true', default=False)
loggroup.add_argument("-q", "--quiet", help="suppress non-error messages",
action='store_true', default=False)
parser.add_argument("name",
type=str,
help="Name of the instance.\n"
" Uses etc/name.cfg for configuration\n",)
return parser.parse_args()
def main(argv=None):
if argv is None:
argv = sys.argv
args = parseArgv(argv[1:])
loglevel = 'debug' if args.verbose else ('error' if args.quiet else 'info')
mlzlog.initLogging('console', loglevel, log_path)
console = ClientConsole(args.name, basepath)
try:
console.run()
except KeyboardInterrupt:
console.close()
if __name__ == '__main__':
sys.exit(main(sys.argv))

25
cfg/ls370res.cfg Normal file
View File

@@ -0,0 +1,25 @@
[NODE]
id = ls370res.psi.ch
description = Lsc370 Test
[INTERFACE]
uri = tcp://5000
[lsmain_iodev]
description = the communication device
class = secop_psi.ls370res.StringIO
uri = lollypop-ts:3001
[lsmain]
class = secop_psi.ls370res.Main
description = main control of Lsc controller
uri = lollypop-ts:3001
[res]
class = secop_psi.ls370res.ResChannel
iexc = '1mA'
channel = 5
description = resistivity
main = lsmain
# the auto created iodev from lsmain:
iodev = lsmain_iodev

View File

@@ -1,20 +1,24 @@
[node LscSIM.psi.ch]
[NODE]
id = ls370res.psi.ch
description = Lsc370 Test
[interface tcp]
type = tcp
bindto = 0.0.0.0
bindport = 5000
[INTERFACE]
uri = tcp://5000
[module lsmain]
class = secop_psi.ls370res.Main
description = main control of Lsc controller
[lsmain_iodev]
description = the communication device
class = secop_psi.ls370res.StringIO
uri = localhost:4567
[module res]
[lsmain]
class = secop_psi.ls370res.Main
description = main control of Lsc controller
iodev = lsmain_iodev
[res]
class = secop_psi.ls370res.ResChannel
vexc = '2mV'
channel = 3
iexc = '1mA'
channel = 5
description = resistivity
main = lsmain
# the auto created iodev from lsmain:

70
cfg/mb11.cfg Normal file
View File

@@ -0,0 +1,70 @@
[seaconn]
class = secop_psi.sea.SeaClient
description = a SEA connection
# uri will be automatic
[ts]
class = secop_psi.sea.SeaReadable
iodev = seaconn
json_descr = ts.mb11.config
remote_paths = .
[tvs]
class = secop_psi.sea.SeaReadable
iodev = seaconn
json_descr = tvs.mb11.config
remote_paths = .
[tvd]
class = secop_psi.sea.SeaReadable
iodev = seaconn
json_descr = tvd.mb11.config
remote_paths = .
[pstat]
class = secop_psi.sea.SeaReadable
iodev = seaconn
json_descr = pstat.mb11.config
remote_paths = .
[pdyn]
class = secop_psi.sea.SeaReadable
iodev = seaconn
json_descr = pdyn.mb11.config
remote_paths = .
[tneck1]
class = secop_psi.sea.SeaReadable
iodev = seaconn
json_descr = tneck1.mb11.config
remote_paths = .
[tneck2]
class = secop_psi.sea.SeaReadable
iodev = seaconn
json_descr = tneck2.mb11.config
remote_paths = .
[tnvs]
class = secop_psi.sea.SeaReadable
iodev = seaconn
json_descr = tnvs.mb11.config
remote_paths = .
[tnvd]
class = secop_psi.sea.SeaReadable
iodev = seaconn
json_descr = tnvd.mb11.config
remote_paths = .
[mf]
class = secop_psi.sea.SeaDrivable
iodev = seaconn
json_descr = mf.mb11.config
remote_paths = .
[tcoil]
class = secop_psi.sea.SeaReadable
iodev = seaconn
json_descr = tcoil.mb11.config
remote_paths = .

5
cfg/ori.cfg Normal file
View File

@@ -0,0 +1,5 @@
[seaconn]
class = secop_psi.sea.SeaClient
description = a SEA connection
# uri = tcp://samenv.psi.ch:8642

124
cfg/ppms2.cfg Normal file
View File

@@ -0,0 +1,124 @@
[NODE]
id = PPMS.psi.ch
description = PPMS at PSI
[INTERFACE]
uri = 5000
[tt]
class = secop_psi.ppms.Temp
description = main temperature
iodev = ppms
[mf]
class = secop_psi.ppms.Field
target.min = -9
target.max = 9
.description = magnetic field
.iodev = ppms
[pos]
class = secop_psi.ppms.Position
.description = sample rotator
.iodev = ppms
[lev]
class = secop_psi.ppms.Level
.description = helium level
.iodev = ppms
[chamber]
class = secop_psi.ppms.Chamber
.description = chamber state
.iodev = ppms
[r1]
class = secop_psi.ppms.BridgeChannel
.description = resistivity channel 1
.no = 1
value.unit = Ohm
.iodev = ppms
[r2]
class = secop_psi.ppms.BridgeChannel
.description = resistivity channel 2
.no = 2
value.unit = Ohm
.iodev = ppms
[r3]
class = secop_psi.ppms.BridgeChannel
.description = resistivity channel 3
.no = 3
value.unit = Ohm
.iodev = ppms
[r4]
class = secop_psi.ppms.BridgeChannel
.description = resistivity channel 4
.no = 4
value.unit = Ohm
.iodev = ppms
[i1]
class = secop_psi.ppms.Channel
.description = current channel 1
.no = 1
value.unit = uA
.iodev = ppms
[i2]
class = secop_psi.ppms.Channel
.description = current channel 2
.no = 2
value.unit = uA
.iodev = ppms
[i3]
class = secop_psi.ppms.Channel
.description = current channel 3
.no = 3
value.unit = uA
.iodev = ppms
[i4]
class = secop_psi.ppms.Channel
.description = current channel 4
.no = 4
value.unit = uA
.iodev = ppms
[v1]
class = secop_psi.ppms.DriverChannel
.description = voltage channel 1
.no = 1
value.unit = V
.iodev = ppms
[v2]
class = secop_psi.ppms.DriverChannel
.description = voltage channel 2
.no = 2
value.unit = V
.iodev = ppms
[tv]
class = secop_psi.ppms.UserChannel
.description = VTI temperature
enabled = 1
value.unit = K
.iodev = ppms
[ts]
class = secop_psi.ppms.UserChannel
.description = sample temperature
enabled = 1
value.unit = K
.iodev = ppms
[ppms]
class = secop_psi.ppms.Main
.description = the main and poller module
.class_id = QD.MULTIVU.PPMS.1
.visibility = 3
pollinterval = 2

124
cfg/ppmssim.cfg Normal file
View File

@@ -0,0 +1,124 @@
[NODE]
id = PPMS.psi.ch
description = PPMS at PSI
[INTERFACE]
uri = tcp://5000
[tt]
class = secop_psi.ppms.Temp
description = main temperature
iodev = ppms
[mf]
class = secop_psi.ppms.Field
target.min = -9
target.max = 9
.description = magnetic field
.iodev = ppms
[pos]
class = secop_psi.ppms.Position
.description = sample rotator
.iodev = ppms
[lev]
class = secop_psi.ppms.Level
.description = helium level
.iodev = ppms
[chamber]
class = secop_psi.ppms.Chamber
.description = chamber state
.iodev = ppms
[r1]
class = secop_psi.ppms.BridgeChannel
.description = resistivity channel 1
.no = 1
value.unit = Ohm
.iodev = ppms
[r2]
class = secop_psi.ppms.BridgeChannel
.description = resistivity channel 2
.no = 2
value.unit = Ohm
.iodev = ppms
[r3]
class = secop_psi.ppms.BridgeChannel
.description = resistivity channel 3
.no = 3
value.unit = Ohm
.iodev = ppms
[r4]
class = secop_psi.ppms.BridgeChannel
.description = resistivity channel 4
.no = 4
value.unit = Ohm
.iodev = ppms
[i1]
class = secop_psi.ppms.Channel
.description = current channel 1
.no = 1
value.unit = uA
.iodev = ppms
[i2]
class = secop_psi.ppms.Channel
.description = current channel 2
.no = 2
value.unit = uA
.iodev = ppms
[i3]
class = secop_psi.ppms.Channel
.description = current channel 3
.no = 3
value.unit = uA
.iodev = ppms
[i4]
class = secop_psi.ppms.Channel
.description = current channel 4
.no = 4
value.unit = uA
.iodev = ppms
[v1]
class = secop_psi.ppms.DriverChannel
.description = voltage channel 1
.no = 1
value.unit = V
.iodev = ppms
[v2]
class = secop_psi.ppms.DriverChannel
.description = voltage channel 2
.no = 2
value.unit = V
.iodev = ppms
[tv]
class = secop_psi.ppms.UserChannel
.description = VTI temperature
enabled = 1
value.unit = K
.iodev = ppms
[ts]
class = secop_psi.ppms.UserChannel
.description = sample temperature
enabled = 1
value.unit = K
.iodev = ppms
[ppms]
class = secop_psi.ppms.Main
.description = the main and poller module
.class_id = QD.MULTIVU.PPMS.1
.visibility = 3
pollinterval = 2

126
cfg/ppmswin.cfg Normal file
View File

@@ -0,0 +1,126 @@
[NODE]
id = PPMS.psi.ch
description = PPMS at PSI
[INTERFACE]
uri = tcp://5000
[tt]
class = secop_psi.ppms.Temp
description = main temperature
iodev = ppms
[mf]
class = secop_psi.ppms.Field
target.min = -9
target.max = 9
.description = magnetic field
.iodev = ppms
[pos]
class = secop_psi.ppms.Position
.description = sample rotator
.iodev = ppms
[lev]
class = secop_psi.ppms.Level
.description = helium level
.iodev = ppms
[chamber]
class = secop_psi.ppms.Chamber
.description = chamber state
.iodev = ppms
[r1]
class = secop_psi.ppms.BridgeChannel
.description = resistivity channel 1
.no = 1
value.unit = Ohm
.iodev = ppms
[r2]
class = secop_psi.ppms.BridgeChannel
.description = resistivity channel 2
.no = 2
value.unit = Ohm
.iodev = ppms
[r3]
class = secop_psi.ppms.BridgeChannel
.description = resistivity channel 3
.no = 3
value.unit = Ohm
.iodev = ppms
[r4]
class = secop_psi.ppms.BridgeChannel
.description = resistivity channel 4
.no = 4
value.unit = Ohm
.iodev = ppms
[i1]
class = secop_psi.ppms.Channel
.description = current channel 1
.no = 1
value.unit = uA
.iodev = ppms
[i2]
class = secop_psi.ppms.Channel
.description = current channel 2
.no = 2
value.unit = uA
.iodev = ppms
[i3]
class = secop_psi.ppms.Channel
.description = current channel 3
.no = 3
value.unit = uA
.iodev = ppms
[i4]
class = secop_psi.ppms.Channel
.description = current channel 4
.no = 4
value.unit = uA
.iodev = ppms
[v1]
class = secop_psi.ppms.DriverChannel
.description = voltage channel 1
.no = 1
value.unit = V
.iodev = ppms
[v2]
class = secop_psi.ppms.DriverChannel
.description = voltage channel 2
.no = 2
value.unit = V
.iodev = ppms
[tv]
class = secop_psi.ppms.UserChannel
.description = VTI temperature
enabled = 0
linkenable = ts
value.unit = K
.iodev = ppms
[ts]
class = secop_psi.ppms.UserChannel
.description = sample temperature
enabled = 0
linkenable = tv
value.unit = K
.iodev = ppms
[ppms]
class = secop_psi.ppms.Main
.description = the main and poller module
.class_id = QD.MULTIVU.PPMS.1
#.visibility = 3
pollinterval = 2

23
cfg/prep2.cfg Normal file
View File

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

119
cfg/prep5.cfg Normal file
View File

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

65
cfg/prep6.cfg Normal file
View File

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

35
cfg/sea.cfg Normal file
View 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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

23
cfg/sea/ori1.cfg Normal file
View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

17
cfg/sea/test_secop4.cfg Normal file
View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

8
cfg/sea/ts.vb.stick.json Normal file
View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

65
cfg/sea/varioxB_vb.cfg Normal file
View File

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

View File

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

19
cfg/senis3mh3.cfg Normal file
View File

@@ -0,0 +1,19 @@
[b]
description = '3D hall sensor'
class = secop_psi.senis.Teslameter3MH3
usb = /dev/tty.usbserial-AI02VAD9
x = bx
y = by
z = bz
[bx]
description = 'x component'
class = secop_psi.senis.Bcomp
[by]
description = 'y component'
class = secop_psi.senis.Bcomp
[bz]
description = 'z component'
class = secop_psi.senis.Bcomp

55
cfg/senis3mh6.cfg Normal file
View File

@@ -0,0 +1,55 @@
[b]
description = '3D hall sensor'
class = secop_psi.senis.Teslameter3MH6
usb = /dev/ttyUSB0
nsample = 100
x = bx
y = by
z = bz
probe_temp = ptemp
box_temp = btemp
x_direct = dbx
y_direct = dby
z_direct = dbz
probe_temp_direct = dptemp
box_temp_direct = dbtemp
[bx]
description = 'x component'
class = secop_psi.senis.Bcomp
[by]
description = 'y component'
class = secop_psi.senis.Bcomp
[bz]
description = 'z component'
class = secop_psi.senis.Bcomp
[ptemp]
description = 'probe temperature'
class = secop_psi.senis.Temperature
[btemp]
description = 'box temperature'
class = secop_psi.senis.Temperature
[dbx]
description = 'x component'
class = secop_psi.senis.Raw
[dby]
description = 'y component'
class = secop_psi.senis.Raw
[dbz]
description = 'z component'
class = secop_psi.senis.Raw
[dptemp]
description = 'probe temperature'
class = secop_psi.senis.Raw
[dbtemp]
description = 'box temperature'
class = secop_psi.senis.Temperature

55
cfg/test_cryocombi.cfg Normal file
View File

@@ -0,0 +1,55 @@
[node cryo_7]
# set SEC-node properties
description = short description
.
This is a very long description providing all the glory details in all the glory details about the stuff we are describing
[remotenode x]
connectto=localhost
port=5000
[interface tcp]
type=tcp
bindto=0.0.0.0
bindport=10769
[module cryo]
# some (non-defaut) module properties
.group=very important/stuff
.description=A simulated cc cryostat with heat-load, specific heat for the sample
and a temperature dependend heat-link between sample and regulation.
# class of module:
class=secop_demo.cryo.Cryostat
# some parameters
jitter=0.1
T_start=10.0
target=10.0
looptime=1
ramp=6
maxpower=20.0
heater=4.1
p=40
i=10
d=2
mode=pid
tolerance=0.1
window=30
timeout=900
# some (non-default) parameter properties
pollinterval.export=False
# some parameter grouping
p.group=pid
i.group=pid
d.group=pid
value.unit=K
# test custom properties
value.test=customized value

73
cfg/test_ppms_mf.cfg Normal file
View File

@@ -0,0 +1,73 @@
[node PPMS.psi.ch]
description = PPMS at PSI
[interface tcp]
type = tcp
bindto = 0.0.0.0
bindport = 5000
#[module tt]
#class = secop_psi.ppms.Temp
#.description = main temperature
#iodev = ppms
[module mf]
class = secop_psi.ppms.Field
.description = magnetic field
iodev = ppms
#[module pos]
#class = secop_psi.ppms.Position
#.description = sample rotator
#iodev = ppms
#[module lev]
#class = secop_psi.ppms.Level
#.description = helium level
#iodev = ppms
#[module chamber]
#class = secop_psi.ppms.Chamber
#.description = chamber state
#iodev = ppms
#[module r1]
#class = secop_psi.ppms.BridgeChannel
#.description = resistivity channel 1
#no = 1
#value.unit = Ohm
#iodev = ppms
#[module i1]
#class = secop_psi.ppms.Channel
#.description = current channel 1
#no = 1
#value.unit = uA
#iodev = ppms
#[module v1]
#class = secop_psi.ppms.DriverChannel
#.description = voltage channel 1
#no = 1
#value.unit = V
#iodev = ppms
#[module tv]
#class = secop_psi.ppms.UserChannel
#.description = VTI temperature
#enabled = 1
#value.unit = K
#iodev = ppms
#[module ts]
#class = secop_psi.ppms.UserChannel
#.description = sample temperature
#enabled = 1
#value.unit = K
#iodev = ppms
[module ppms]
class = secop_psi.ppms.Main
.description = the main and poller module
class_id = QD.MULTIVU.PPMS.1
pollinterval = 2

3
cfg/testcmd.cfg Normal file
View File

@@ -0,0 +1,3 @@
[m]
class = secop_psi.testcmd.TestCmd
description = 'module for testing commands'

60
cfg/varioxb.cfg Normal file
View File

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

View File

@@ -2,3 +2,19 @@ div.wy-nav-content
{
max-width: 100% !important;
}
/* make some bullet lists more dense (this rule exists in theme.css, but not important)*/
.wy-plain-list-disc li p:last-child, .rst-content .section ul li p:last-child, .rst-content .toctree-wrapper ul li p:last-child, article ul li p:last-child {
margin-bottom: 0 !important;
}
/* overwrite custom font (to save bandwidth not using a custom font) */
body {
font-family: "proxima-nova", "Helvetica Neue", Arial, sans-serif;
}
h1, h2, .rst-content .toctree-wrapper p.caption, h3, h4, h5, h6, legend {
font-family: "ff-tisa-web-pro", "Georgia", Arial, sans-serif;
}

View File

@@ -1,6 +0,0 @@
Client documentation
====================
.. toctree::
:maxdepth: 2

View File

@@ -1,7 +1,7 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# SECoP documentation build configuration file, created by
# Frappy documentation build configuration file, created by
# sphinx-quickstart on Mon Sep 11 10:58:28 2017.
#
# This file is execfile()d with the current directory set to its
@@ -57,9 +57,9 @@ source_suffix = ['.rst', '.md']
master_doc = 'index'
# General information about the project.
project = 'SECoP'
#copyright = '2017, Enrico Faulhaber, Markus Zolliker'
copyright = '2017, SECoP Committee'
project = 'Frappy'
copyright = '2017-2021, Enrico Faulhaber, Markus Zolliker,'
#copyright = '2017, SECoP Committee'
author = 'Enrico Faulhaber, Markus Zolliker'
# The version info for the project you're documenting, acts as replacement for
@@ -89,6 +89,10 @@ pygments_style = 'sphinx'
# If true, `todo` and `todoList` produce output, else they produce nothing.
todo_include_todos = True
autodoc_default_options = {
'member-order': 'bysource',
'show-inheritance': True,
}
default_role = 'any'
# -- Options for HTML output ----------------------------------------------
@@ -106,11 +110,6 @@ html_theme = 'sphinx_rtd_theme'
html_last_updated_fmt = '%Y-%m-%d %H:%M'
# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
# documentation.
#
# html_theme_options = {}
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
@@ -136,7 +135,7 @@ html_sidebars = {
# -- Options for HTMLHelp output ------------------------------------------
# Output file base name for HTML help builder.
htmlhelp_basename = 'SECoPdoc'
htmlhelp_basename = 'Frappydoc'
# -- Options for LaTeX output ---------------------------------------------
@@ -163,7 +162,7 @@ latex_elements = {
# (source start file, target name, title,
# author, documentclass [howto, manual, or own class]).
latex_documents = [
(master_doc, 'SECoP.tex', 'SECoP source documentation',
(master_doc, 'Frappy.tex', 'Frappy source documentation',
'Enrico Faulhaber, Markus Zolliker', 'manual'),
]
@@ -173,7 +172,7 @@ latex_documents = [
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [
(master_doc, 'secop', 'SECoP source documentation',
(master_doc, 'frappy', 'Frappy source documentation',
[author], 1)
]
@@ -184,8 +183,8 @@ man_pages = [
# (source start file, target name, title, author,
# dir menu entry, description, category)
texinfo_documents = [
(master_doc, 'SECoP', 'SECoP source documentation',
author, 'SECoP', 'One line description of project.',
(master_doc, 'Frappy', 'Frappy source documentation',
author, 'Frappy', 'One line description of project.',
'Miscellaneous'),
]
@@ -213,3 +212,8 @@ epub_exclude_files = ['search.html']
# Example configuration for intersphinx: refer to the Python standard library.
intersphinx_mapping = {'https://docs.python.org/': None}
from secop.lib.classdoc import class_doc_handler
def setup(app):
app.connect('autodoc-process-docstring', class_doc_handler)

View File

@@ -1,6 +0,0 @@
Demo cryostat
=============
.. automodule:: secop_demo.cryo
:members:

View File

@@ -1,12 +0,0 @@
Demo
====
Specific sample environments
----------------------------
.. toctree::
:maxdepth: 3
cryo
test

View File

@@ -1,6 +0,0 @@
Test devices
=============
.. automodule:: secop_demo.test
:members:

View File

@@ -1,11 +0,0 @@
ESS
===
Frameworks
----------
.. toctree::
:maxdepth: 3
epics

View File

@@ -1,9 +0,0 @@
Facility specific functionalities
=================================
.. toctree::
:maxdepth: 3
demo/index
mlz/index
ess/index

View File

@@ -1,6 +0,0 @@
ANTARES magnet (amagnet)
========================
.. automodule:: secop_mlz.amagnet
:members:

View File

@@ -1,6 +0,0 @@
Entangle
========
.. automodule:: secop_mlz.entangle
:members:

View File

@@ -1,20 +0,0 @@
MLZ
===
Frameworks
----------
.. toctree::
:maxdepth: 3
entangle
Specific sample environments
----------------------------
.. toctree::
:maxdepth: 3
amagnet

View File

@@ -1,6 +0,0 @@
Datatypes
=========
.. automodule:: secop.datatypes
:members:

View File

@@ -1,6 +0,0 @@
Exception classes
=================
.. automodule:: secop.errors
:members:

View File

@@ -1,9 +0,0 @@
Framework documentation
=======================
.. toctree::
:maxdepth: 2
datatypes
errors

View File

@@ -1,6 +0,0 @@
Graphical user interface documentation
======================================
.. toctree::
:maxdepth: 2

View File

@@ -1,19 +1,16 @@
Welcome to FRAPPY documentation!
================================
Frappy Programming Guide
========================
.. toctree::
:maxdepth: 2
server/index
client/index
framework/index
gui/index
facility/index
Indices and tables
==================
introduction
tutorial
reference
secop_psi
secop_demo
secop_mlz
secop_ess
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`

View File

@@ -0,0 +1,70 @@
Introduction
============
Frappy - a Python Framework for SECoP
-------------------------------------
*Frappy* is a Python framework for creating Sample Environment Control Nodes (SEC Node) with
a SECoP interface. A *SEC Node* is a service, running usually a computer or microcomputer,
which accesses the hardware over the interfaces given by the manufacturer of the used
electronic devices. It provides access to the data in an abstracted form over the SECoP interface.
`SECoP <https://github.com/SampleEnvironment/SECoP/tree/master/protocol>`_ is a protocol for
communicating with Sample Environment and other mobile devices, specified by a committee of
the `ISSE <https://sampleenvironment.org>`_.
The Frappy framework deals with all the details of the SECoP protocol, so the programmer
can concentrate on the details of accessing the hardware with support for different types
of interfaces (TCP or Serial, ASCII or binary). However, the programmer should be aware of
the basic principle of the SECoP protocol: the hardware abstraction.
Hardware Abstraction
--------------------
The idea of hardware abstraction is to hide the details of hardware access from the SECoP interface.
A SECoP module is a logical component of an abstract view of the sample environment.
It is one independent value of measurement like a temperature or pressure or a physical output like
a current or voltage. This corresponds roughly to an EPICS channel or a NICOS device. On the
hardware side we may have devices with several channels, like a typical temperature controller,
which will be represented individual SECoP modules.
On the other hand a SECoP channel might be linked with several hardware devices, for example if
you imagine a superconducting magnet controller built of separate electronic devices like a power
supply, switch heater and coil temperature monitor. The latter case does not mean that we have
to hide the details in the SECoP interface. For an expert it might be useful to give at least
read access to hardware specific data by providing them as separate SECoP modules. But the
magnet module should be usable without knowledge of all the inner details.
A SECoP module has:
* **properties**: static information describing the module, for example a human readable
*description* of the module or information about the intended *visibility*.
* **parameters**: changing information about the state of a module (for example the *status*
containing information about the state of the module) or modifiable information influencing
the measurement (for example a "ramp" rate).
* **commands**: actions, for example *stop*.
A SECoP module belongs to an interface class, mainly *Readable* or *Drivable*. A *Readable*
has at least the parameters *value* and *status*, a *Drivable* in addition *target*. *value* is
the main value of the module and is read only. *status* is a tuple (status code, status text),
and *target* is the target value. When the *target* parameter value of a *Drivable* changes,
the status code changes normally to a busy code. As soon as the target value is reached,
the status code changes back to an idle code, if no error occurs.
**Programmers Hint:** before starting to code, choose carefully the main SECoP modules you want
to provide to the user.
Programming a Driver
--------------------
Programming a driver means extending one of the base classes like :class:`secop.modules.Readable`
or :class:`secop.modules.Drivable`. The parameters are defined in the dict :py:attr:`parameters`, as a
class attribute of the extended class, using the :class:`secop.params.Parameter` constructor, or in case
of altering the properties of an inherited parameter, :class:`secop.params.Override`.
Parameters usually need a method :meth:`read_<name>()`
implementing the code to retrieve their value from the hardware. Writeable parameters
(with the argument ``readonly=False``) usually need a method :meth:`write_<name>(<value>)`
implementing how they are written to the hardware. Above methods may be omitted, when
there is no interaction with the hardware involved.

75
doc/source/reference.rst Normal file
View File

@@ -0,0 +1,75 @@
Reference
---------
Module Base Classes
...................
.. autoclass:: secop.modules.Module
:members: earlyInit, initModule, startModule, pollerClass
.. autoclass:: secop.modules.Readable
:members: Status
.. autoclass:: secop.modules.Writable
.. autoclass:: secop.modules.Drivable
:members: Status, isBusy, isDriving, stop
Parameters, Commands and Properties
...................................
.. autoclass:: secop.params.Parameter
.. autoclass:: secop.params.Command
.. autoclass:: secop.properties.Property
.. autoclass:: secop.modules.Attached
:show-inheritance:
Datatypes
.........
.. autoclass:: secop.datatypes.FloatRange
.. autoclass:: secop.datatypes.IntRange
.. autoclass:: secop.datatypes.BoolType
.. autoclass:: secop.datatypes.ScaledInteger
.. autoclass:: secop.datatypes.EnumType
.. autoclass:: secop.datatypes.StringType
.. autoclass:: secop.datatypes.TupleOf
.. autoclass:: secop.datatypes.ArrayOf
.. autoclass:: secop.datatypes.StructOf
.. autoclass:: secop.datatypes.BLOBType
Communication
.............
.. autoclass:: secop.modules.Communicator
:show-inheritance:
:members: communicate
.. autoclass:: secop.stringio.StringIO
:show-inheritance:
:members: communicate, multicomm
.. autoclass:: secop.stringio.HasIodev
:show-inheritance:
.. autoclass:: secop.iohandler.IOHandlerBase
:show-inheritance:
:members:
.. autoclass:: secop.iohandler.IOHandler
:show-inheritance:
:members:
Exception classes
.....................--
.. automodule:: secop.errors
:members:
.. include:: server.rst

10
doc/source/secop_demo.rst Normal file
View File

@@ -0,0 +1,10 @@
Demo
====
.. automodule:: secop_demo.cryo
:show-inheritance:
:members:
.. automodule:: secop_demo.test
:show-inheritance:
:members:

View File

@@ -1,6 +1,9 @@
EPICS modules
=============
ESS
---
EPICS
.....
.. automodule:: secop_ess.epics
:show-inheritance:
:members:

19
doc/source/secop_mlz.rst Normal file
View File

@@ -0,0 +1,19 @@
MLZ
---
Amagnet (Garfield)
..................
.. automodule:: secop_mlz.amagnet
:show-inheritance:
:members:
Entangle Framework
..................
.. automodule:: secop_mlz.entangle
:show-inheritance:
:members:

27
doc/source/secop_psi.rst Normal file
View File

@@ -0,0 +1,27 @@
PSI (SINQ)
----------
CCU4 tutorial example
.....................
.. automodule:: secop_psi.ccu4
:show-inheritance:
:members:
PPMS
....
.. automodule:: secop_psi.ppms
:show-inheritance:
:members:
LakeShore 370
.............
Calibrated sensors and control loop not yet supported.
.. automodule:: secop_psi.ls370res
:show-inheritance:
:members:

72
doc/source/server.rst Normal file
View File

@@ -0,0 +1,72 @@
Configuration
.............
The configuration consists of a **NODE** section, an **INTERFACE** section and one
section per SECoP module.
The **NODE** section contains a description of the SEC node and a globally unique ID of
the SEC node. Example:
.. code::
[NODE]
description = a description of the SEC node
id = globally.valid.identifier
The **INTERFACE** section defines the server interface. Currently only tcp is supported.
When the TCP port is given as an argument of the server start script, this section is not
needed or ignored. The main information is the port number, in this example 5000:
.. code::
[INTERFACE]
uri = tcp://5000
All other sections define the SECoP modules. The section name itself is the module name,
mandatory fields are **class** and **description**. **class** is a path to the Python class
from there the module is instantiated, separated with dots. In the following example the class
**HeLevel** used by the **helevel** module can be found in the PSI facility subdirectory
secop_psi in the python module file ccu4.py:
.. code::
[helevel]
class = secop_psi.ccu4.HeLevel
description = this is the He level sensor of the main reservoir
empty = 380
empty.export = False
full = 0
full.export = False
It is highly recommended to use all lower case for the module name, as SECoP names have to be
unique despite of casing. In addition, parameters, properties and parameter properties might
be initialized in this section. In the above example **empty** and **full** are parameters,
the resistivity of the He Level sensor at the end of the ranges. In addition, we alter the
default property **export** of theses parameters, as we do not want to expose these parameters to
the SECoP interface.
Starting
........
The Frappy server can be started via the **bin/secop-server** script.
.. parsed-literal::
usage: secop-server [-h] [-v | -q] [-d] name
Manage a Frappy server
positional arguments:
name name of the instance. Uses etc/name.cfg for configuration
optional arguments:
-c, --cfgfiles config files to be used. Comma separated list.
defaults to <name> when omitted
-p, --port server port (default: take from cfg file)
-h, --help show this help message and exit
-v, --verbose output lots of diagnostic information
-q, --quiet suppress non-error messages
-d, --daemonize run as daemon
-t, --test check cfg files only

View File

@@ -1,3 +0,0 @@
Configuration
=============

View File

@@ -1,11 +0,0 @@
Server documentation
====================
.. toctree::
:maxdepth: 3
starting
configuration
modules
protocol/index

View File

@@ -1,6 +0,0 @@
Module base classes
===================
.. automodule:: secop.modules
:members:

View File

@@ -1,8 +0,0 @@
protocol stack
==============
.. toctree::
:maxdepth: 3
interface/index

View File

@@ -1,9 +0,0 @@
Interfaces
==========
.. toctree::
:maxdepth: 3
tcp
zmq

View File

@@ -1,6 +0,0 @@
TCP
===
.. automodule:: secop.protocol.interface.tcp
:members:

View File

@@ -1,6 +0,0 @@
ZMQ
===
.. automodule:: secop.protocol.interface.zmq
:members:

View File

@@ -1,21 +0,0 @@
Starting
========
The SECoP server can be started via the ``bin/secop-server`` script.
.. parsed-literal::
usage: secop-server [-h] [-v | -q] [-d] name
Manage a SECoP server
positional arguments:
name Name of the instance. Uses etc/name.cfg for configuration
optional arguments:
-h, --help show this help message and exit
-v, --verbose Output lots of diagnostic information
-q, --quiet suppress non-error messages
-d, --daemonize Run as daemon

Some files were not shown because too many files have changed in this diff Show More