As the communicator class needed for a module can be specified,
in the configuration we do not need to specifiy it explicitly.
A new configurator function IO() is introduced for this, defining
names and uri only.
- update also configuration reference and a tutorial example
- update get_class function to accept attributes of classes like
'frappy_demo.lakshore.TemperatureSensor.ioClass' and import from
modules other than frappy... like 'test.test_iocfg.Mod'.
- add ioClass to the example class for the temperature controller
tutorial
Change-Id: I3115371d612f14024e43bc6d38b642e1d27b314d
Reviewed-on: https://forge.frm2.tum.de/review/c/secop/frappy/+/38071
Tested-by: Jenkins Automated Tests <pedersen+jenkins@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
For devices sending messages asynchronously, a simple
readline method is added. Waiting for characters is not
blocking writeline - only the actual reading is using
a lock.
This needs also some rework of frappy.lib.asynconn.
improve the mechanism which avoids duplicated error messages
in the log file:
- extend to errors in doPoll
- trigger error messages every day, so that they appear in every
logfile
+ add missing space in some error message
Change-Id: Icfaa06b43ee53f477483bab1f84def832fd0b977
Reviewed-on: https://forge.frm2.tum.de/review/c/secop/frappy/+/37432
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
Tested-by: Jenkins Automated Tests <pedersen+jenkins@frm2.tum.de>
- configuration errors on startup are no longer collected in the
'errors' attribute, but logged immediately and counted in a new
'logError' method.
- generalConfig may be configured to raise the errors immediately
instead
- Raise immediately on unhandled errors. Some of them were catched
before which may lead to strange follow up errors.
- do not start poller thread, when the error count is non-zero
- as before, simple connection failures are not preventing startup,
but now more severe errors (bad uri) will stop the server
Change-Id: I4f84ee8e86cf2925108c0fe92eaab796bb731091
Reviewed-on: https://forge.frm2.tum.de/review/c/secop/frappy/+/37776
Tested-by: Jenkins Automated Tests <pedersen+jenkins@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
+ Adds first implementation for the Acquisition interface, split into
Controller and Channel Modules
+ frappy_demo: adds an example simulation
+ new property AttachedDict for a collection of attached modules
+ move Attach and AttachDict to a new file frappy/attached.py
+ interface_classes creation changed. includes now also Acquisition
Change-Id: I198a96065a65bb28f73e468ce0465fca2d8734d7
The mechanism to calculate the interface_classes automatically
gets more complicated whith the introduction if acquisition
classes. Instead of making the mechanism more complex its simpler
to give them explictly on the classes which correspond to the
predefined SECoP interface classes.
Change-Id: I9be7d9e54e3603b979ca2a823ec47b2075937ece
Simple datatypes used only in properties like ValueType of NoneOr
do not need a couple of methods. Splitting the base class avoids
warnings about unimlemented abstract methods.
Change-Id: Ie7d5754c44a5fb5c3ed8569df544495450347082
- generic method to access parameters with just an address
changed to avoid boilerplate code
- it would really be nice to include the generic methods
into Module
Change-Id: I898e5eeb282f03d3177a324fa88813976fb15f3c
including a config file and overriding some properties is
helpful when we do not want to modify the original config
but run it with sligthly different properties.
this involves some redesign a.o.:
- modules are collected in a dict instead of a list in
order for 'override' to find the related module
- checking for duplicates happens in the Collector
Do not warn when included file does not end with '_cfg.py',
as this may be intentional, in case a file is only used
via 'include' and not as cfg file alone.
+ remove unused method Collector.append
+ complain with specific error message when Node is not given
Change-Id: Id568f04d6d84622ef2547412eb6f288fcebf986f
Reviewed-on: https://forge.frm2.tum.de/review/c/secop/frappy/+/36357
Tested-by: Jenkins Automated Tests <pedersen+jenkins@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
- instead to show first current 'value' and 'status', and then
the changes, show changes only - this way updates appear
in the expected order
- for this SecopClient.register_callback needs a 'callimmediately'
argument
Change-Id: I3e91c2c15bca7fee2eba3b1bf1dd27313da3ae29
Reviewed-on: https://forge.frm2.tum.de/review/c/secop/frappy/+/36291
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
Tested-by: Jenkins Automated Tests <pedersen+jenkins@frm2.tum.de>