add tutorial for Berlin hands-on workshop
+ improve the documentation (hints for structure welcome)
+ remove 'optional' parameter property
(is not yet used - should not appear in doc)
+ added test property in frappy_demo.cryo alters Parameter class
('test' property appears in Parameter doc)
Change-Id: I3ea08f955a92f72451fd23a5ff00d1185c7fb00e
use mro for status code inheritance
- as a consequence, the decorator class 'StatusCode' is now a
decorator function 'status_code'. snake case is anyway more
common for decorators.
- adapt tests
+ fix an error message
Change-Id: Ib409b963c51e0fe807397ff1d73d77d0147b8580
- watch is now a command, not a module method
- finish watching with ctrl-C
- watching an io module logs communication
- add bin/frappy-cli to start interactive client
+ remove sorted function from StructOf.format_value
Change-Id: I7dd707473e4534f2d39c5d6afc533c2d872380f8
- fixed this for 'read', 'change' and 'do' message
+ fix an error in frappy.client.SecopClient closing the connection
when the identifier is None
fixes: #4672
Change-Id: Iaba0f9ed86b6eb6ef7588403ba640ded552dded6
fast_interval might be 0, indicating to poll as fast as possible
- this should not throw a zero division error
Change-Id: I26e18f5a656c943b906c6ffff65361e1fcf16d50
A value given in config overrides values read from the persistent data file.
To let the loaded parameter have precedence, configure a default only.
The write_<param> method of a persistent parameter is now always called
on startup.
- add tests for persistent behaviour
+ simplify Modules.writeInitParams: remove started_callback argument
Change-Id: I08b49de52e9d9a2ed0918018eb2fe538141a4f5e
- make 'value' a Parameter property instead of an attribute
- use 'value' instead of 'default' property for setting
the initial value in the config file
- removal of initwrite parameter property
this change is the basis of a better implementation
for change 30041 (PersistentParam property 'override_cfg')
Change-Id: I2b82bdd54c2dacb87dcd2b3472004d2f0a730cf0
After 29724, the change in frappy_demo/modules.py from 30183 which was
made to run 'make demo' without errors can be reverted.
Change-Id: I00a6f512304a3159c10e44aef670ac0edd4703d7
* Add python config for test and demo server
* Remove old configs
* Fix issue with slow start of test server
Change-Id: If0e576f4e4dda8b03489fdbb79b209dfcdca29ff
- use Datatype.validate for converting and checking limits
(used also in properties)
- Datatype.__call__ converts and validates, but without checking
limits (used in setter)
- Datatype.validate may be used to add missing optional struct elements
from previous value (used in Dispatcher._setParameterValue)
- remove problematic range check
+ use shorter formula for converting float to int in ScaledInteger
(leftover from python2 compatibility)
+ improve error messages (strip very long repr(value))
Change-Id: Ib85736fe558ec3370ebce4e1c43f957e3bb0497c
The text part of the error report contains the original error
class - convert it to the frappy error class, if possible.
This makes the error messages on the client nicer, as the
error class would be duplicated in the error message on the
client side.
Change-Id: If2e0c3eb15ac2dd1b80a851ff42e4076557a325d
values return from read_* methods should be converted
from string to float on float parameters
+ fix some wording
Change-Id: Ic80010c6fbe3eef23483ff69c8a43e25afb8bb6a
- Change Configuration format to be python-based.
- move config logic to frappy/config.py
- Add first py-config: cryo_cfg.py
- Adapt test to new expected config format
Change-Id: Iaec484e0e1e21ebbb1e5c74b53be6231329ddf71
With the current implementation, we run into a deadlock with the lock
from the state machine interfering with the accessLock on the module.
We can not wait for the state machine to finish while having the
accessLock locked by write_target. As a consequence, when restarting
the state machine we should not wait, but remember the state function
to call and postpone the restart after the cleanup has finished.
For this, we want to know the status before calling the state function.
- create HasState mixin, using doPoll for driving the machine
- StatusCode decorator for assigning a status to a state function
- remove the state machines 'threaded' option
- 'Retry' is now a unique value instead of a class. The retry period
is determined by the (fast) poll interval.
- return 'Finish' instead of None for finishing the machine. returning
None for state function is now an error, as this might happen
easily inadvertently.
Change-Id: Icb31367442f10e98be69af3e05a84f12ce5cc966