210 Commits

Author SHA1 Message Date
fbc0270b15 improvements on secop.client.Client
- add unregister_callback
  (this is needed for the SECoP client in nicos)
- improve error handling
- imporve error handling in AsynTcp
- also improve error handling on StringIO

Change-Id: If4f3632a93cbc0e7fbc55a966e09fcc3e69c09b7
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/22852
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2020-04-07 10:36:07 +02:00
3d2333f731 do not update exported parameters of unexported modules
Change-Id: Ia62def1e03670be0f8a07bfc6f19731cadfbe270
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/22825
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2020-04-03 07:48:45 +02:00
8c9d5d4e5c int datatype must not accept fractional floats
- added also test for this

Change-Id: I1c3ad92bc10131d6cd096496230222c999f0097e
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/22737
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2020-04-02 11:17:12 +02:00
434ef4a423 move getParameter method from ProxyClient to SecopClient
+ remove unneccessary x mode for some py files

Change-Id: Iaca31fc35ef57805e68e0404c1c7d3240a15f11a
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/22571
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2020-03-02 17:13:31 +01:00
c840935588 clean up Parameter/Command.for_export
Change-Id: Ib90da24ed2be0ac32dcd3ea1c692fec9f2bd11bc
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/22566
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2020-03-02 11:31:53 +01:00
ed12e2ed93 adjust mechanism of write function with iohandler
if a write_<parameter> function is defined and <parameter> has an
iohandler, the handlers write function is not called automatically.
It has to be called explicitly in the write_<param> function, if
needed.

reasons:
- the previous logic when a wrapped write function is already present, and a
  handler is defined on the specialized class, did not work, and is not
  easy to solve properly
- it is probably anyway better to call the handlers write function explicitly
  instead of automatically depending on the return value

Change-Id: I04f0849b6cc3fb9979c0f5ac8245a6ab4bf23072
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/22565
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2020-03-02 11:28:42 +01:00
4ed8cf5901 change to secop.client.ProxyClient.register_callback
the code for calling register_callback is more readable and more
explicit now

Change-Id: I7a6a236d7f50b1ad391c1d49e3fb48f2580aa875
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/22564
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2020-03-02 11:15:25 +01:00
199ff0419a adjustments on client.SecopClient
- change self._state to self.state: may be read by calling code
- online and state attributes to be set after the nodStateChange
  callback in order to detect state changes
- remove ProxyClient.readParameter (no need to be implemented)
- reconnect thread must be killed on an external call to disconnect

Change-Id: I08d75dc8e29aa6e65a33ce36a911da4eaf0b62ef
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/22551
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2020-02-28 08:22:43 +01:00
a5ad527378 fix again configuration paths on windows
the executable for python might also be called pythonw.exe,
-> adjust the guess

Change-Id: Ie2e7adc6d55f82ad4243761645da0e8e6ec8cc40
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/22549
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2020-02-27 14:44:17 +01:00
4bb11e249d stringio now works with serial connections
also allow SECoP client connections via serial

Change-Id: I10c02532a9f8e9b8f16599b98c439742da6d8f5c
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/22525
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2020-02-26 12:55:05 +01:00
d021a116f1 moved naming of enum types
moved adjusting of the name of enum types from the parameter name to
secop.datatypes.get_datatype

+ ignore additional items in datainfo (must-ignore policy)

Change-Id: Id1bb089c33729f15f06ad51e5c03bb333ef3c307
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/22513
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2020-02-25 08:52:18 +01:00
107e1d84b0 add multiplexer/router
in case a remote is disconnected and can be reconnected quickly,
a seamless routing is possible. However, when after reconnection
the description has changed, the server is restarted.

+ more information in error messages from dispatcher

Change-Id: I0837e0254aee3d12a26481f6fd697081a53aabba
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/22506
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
2020-02-25 08:15:30 +01:00
89c98fa716 move argument handling from mainwindow.py to bin/secop-gui
allows calling the GUI client independently from command line arguments

Change-Id: If51b899c456ad610cf8a64f9b0f7c8a218cf5c5b
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/22503
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2020-02-24 08:09:02 +01:00
8cf4c2d8eb secop-gui based on secop.client.Client
instead of secop.client.baseclient.Client

Change-Id: I869a3a9ecba40382908b4741ef055a0c5afe018f
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/22471
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2020-02-17 14:42:45 +01:00
685f22330a fix configured path on windows
exclude python.exe from special rule

Change-Id: Ia7dfe17ffb3a44dcb642d7a750c92865d7a1c6c3
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/22435
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2020-02-07 17:25:26 +01:00
97034fb998 implement SECoP proxy modules
A proxy module is a module with a known structure, but
accessed over a SECoP connection.
For the configuration, a Frappy module class has to be given.
The proxy class is created from this, but does not inherit from it.
However, the class of the returned object will be subclass of the
SECoP base classes (Readable, Drivable etc.).
A possible extension might be, that instead of the Frappy class,
the JSON module description can be given, as a separate file
or directly in the config file.
Or we might offer a tool to convert the JSON description to
a python class.

Change-Id: I9212d9f3fe82ec56dfc08611d0e1efc0b0112271
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/22386
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2020-02-07 12:46:04 +01:00
9825b9c135 new generic secop client
new client intended as base class for all clients

- based on Ennos secop client in nicos ([WIP] provide secop client)
- self healing connection singletons
- extension for other than TCP is foreseen (by extending new uri schemes)
- extensible name mangling
- seperate rx and tx threads supporting events
- internal cache
- extensible error handling
- callback for unhandled messages
- callback for descriptive data change
- callback for node stat change (connected, disconnected)
- a short close down and reconnect without change in descriptive data
  does not disturb the client side

works with secop-gui (change follows), planned to be used for Frappy
internal secop proxy and as a replacement for secop.client.baseclient.Client
in the nicos secop device.

-> secop/client/baseclient.py to be removed after planned changes

moved secop/client/__init__.py to secop/client/console.py because secop.client
would be the natural place to put the new base class.

Change-Id: I1a7b1f1ded2221a8f9fcdd52f9cc7414e8fbe035
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/22218
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2020-01-30 08:51:47 +01:00
e623fe8287 add test for message encode/decode
in corner cases, encode_msg and decode_msg_frame fail

Change-Id: I28b3ddcdce80c7c5b71afe19b11bb73cd761f595
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/22211
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2020-01-17 07:59:42 +01:00
2d98fe8812 allow to set exported properties in code
Actually, only property values set in the configuration can
be exported, as values equal to the default are not exported.
For this, the mechanism of overwriting properties by class attributes
has to be modified.

Change-Id: I4388d1fbb36393e863556fbbc8df800dd4800c87
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/22161
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2020-01-15 13:24:11 +01:00
cermak
8466a159fe Compatibility with Python 3.4
This change allows compilation under python 3.4. In addition:
 - spec file added for pyinstaller with required hidden imports
 - changed default pathes for compiled exe file
 - added requirements for ppms under windows compilation

Change-Id: I63d805a984d6a2c045df527303f46c8440994aad
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/22170
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
Reviewed-by: Petr Cermak <cermak@mag.mff.cuni.cz>
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Tested-by: Petr Cermak <cermak@mag.mff.cuni.cz>
2020-01-15 08:15:35 +01:00
859bf5e1a2 moved some code from iohandler.py to metaclass.py
- code for calling write_<param> before write function from handler
  is moved to the metaclass
- moved some methods from IOBaseHandler to IOHandler

Change-Id: I733c7fe8d3d59d9013e7b5a33e170c4b3e386921
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/22098
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2020-01-10 10:44:58 +01:00
f0a3306f9c changed/fixed behaviour of stop commands in PPMS
- make sure new target created by the stop command is between
  old and new target
- fixed bad behaviour of level reading

Change-Id: I484c0902c694c0edb81e2d9238985c05f92e04f4
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/22100
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2020-01-09 14:03:45 +01:00
7c7c1cc5af renamed commandhandler to iohandler
the name commandhandler might be misleading, as it has nothing to do
with SECoP commands

Change-Id: I31bbe1cefd49927fc591619dc7f41f332cca2c14
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/22084
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2020-01-08 14:18:16 +01:00
795759786f make most important classes available from secop
+ consmetic changes to make PyCharm more happy
+ update authorship

Change-Id: I67cb61a04e502b207be74cea4ca07931c88fdafe
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/22070
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2019-12-20 14:55:45 +01:00
e2cc9f74b5 autogeneration of iodevs
allow a shortcut for generating iodevs:
If 'uri' is given in the config file for a module with HasIodev, it
will autogenerate its communicator.
The iodevClass attribute on the module class determines the class
for the iodev to be generated.

Change-Id: I4e82a57a33218fd159cec9f4c95171365c55d94a
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/22068
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
2019-12-20 10:55:45 +01:00
f06fa9faa2 accept module properties without leading '.' in config files
as module properties and parameters anyway share the same namespace,
there is no need to distinguish in config files.

+ a parameter default value may be overriden just with a class
  attribute.

Both improvements help to switch between parameters and properties
more easily.

Change-Id: Ieb5cf3121f37c7c04e63345d3e95dfaf42726455
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/22054
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2019-12-20 09:42:35 +01:00
a876eba5f6 improved commandhandler
- analyze_<group> returns now a dict
- change_<group> has no more values arguments.
  values may be read with change.readValues(), which leaves more
  freedom to the programmer, especially if the values do not need
  to be read before a change

Change-Id: I67b70302eaf9bbdac107df61123062fa133d501d
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/22047
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2019-12-18 09:58:38 +01:00
fcad78a682 ppms driver now uses command handlers
this is a simplicifcation for the ppms driver

- the derivation of a changecmd from a querycmd is moved to
  CmdHandler.__init__
- the special treatment of handlers when writing configured
  parameters has moved to CmdHandler.write
- introduced Drivable.isDriving, changed Module.isBusy

Change-Id: I8862ecda9c8cc998bb018bd960f31c9488146707
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/22033
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2019-12-13 17:13:41 +01:00
07eb252b78 poll all parameters after reconnect
poller.Poller triggers polling of all parameters right after its iodev
reconnects, if the iodev supports registerReconnectCallback and
has the is_connected parameter

Change-Id: I59bb05cefdbea5efd4f3966ffe5237a75c2174bf
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/21995
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
2019-12-12 08:31:49 +01:00
bc089d2ae0 introduced StringIO
introduce line oriented communication
+ HasIodev Mixin
+ minor fixes
Change-Id: I22605824d2f45147224840172bae281f85c80a11
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/21953
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2019-12-11 12:43:26 +01:00
f5af074015 simple possiblity for overriding properties
When a class attribute is assigned with the same name as a property
from an inherited class, the property default is overridden.
If the type does not match, a ProgrammingError is raised.

Change-Id: Ifdab5c8bbdaae008370a9b297c770f5c04db9311
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/21989
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
2019-12-11 09:14:25 +01:00
1521e0a34b write configured parameters to the hardware
writable parameters with a configured value should call write_<param>
on initialization.
+ introduced 'initwrite' parameter property for more fine control over this
+ minor improvements in metaclass.py, param.py, commandhandler.py
+ rearranged test_modules.py

Change-Id: I2eec45da40947a73d9c180f0f146eb62efbda2b3
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/21986
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2019-12-10 13:08:28 +01:00
44eeea1159 improve error handling
in the current implementation, in case polling results in an error,
an error_update is generated. But on activate, for this parameter
a normal update will be generated, indicating that this value is ok.

With this change, parameters have an additonal attribue 'readerror',
which save the error generated on the last read, or None, if the
read was successful.

In addition, subsequent repeated errors are only reported the first
time.

Change-Id: I39f18d17debadd8aa5b904e59998d2172f3f11b9
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/21974
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2019-12-06 15:41:30 +01:00
94a539da90 parameters with a handler are polled by default
parameters with a common commandhandler need only one poller item

Change-Id: Ie2e20cf7bcebc67ca96d58455323f01f528b25ab
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/21951
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2019-12-03 15:49:13 +01:00
dda8428144 introduce command handlers
A command handler can be used to deal with parameters which have a common
command for querying and writing to the hardware. Support for parsing
and formatting commands is included.

Change-Id: I79a1b6c9daf3af3be2e1875875ced41ec1a1829d
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/21946
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2019-12-03 11:03:21 +01:00
59fbd5cac0 make secop.poller.Poller default
modules using the old poller (now called secop.poller.BasicPoller)
need to explcitly declare it (pollerClass = BasicPoller)

BasicPoller is still used in:

secop_mlz/amagnet.py
secop_mlz/entangle.py
secop/simulation.py

Remark: before removing BasicPoller we may need a replacement for
Readable.pollParams

Change-Id: If1ae8b68e02f13e601334656b818337c882e06cc
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/21910
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2019-11-27 14:26:57 +01:00
ca8b07496f allow server.run without python-daemon
is python-deamon is not installed, secop-server should work
without '-d' option.

Change-Id: I2d64379a7612931c55f1d9cdbdb2cb424453c675
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/21909
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2019-11-27 09:49:13 +01:00
e953b53963 introduced attached modules
for the module names, use Attach instead of Property,
which get attached modules automatically before calling initModule

Change-Id: Iff1b37828d4345c03a18ed29b9970bea149a812d
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/21885
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2019-11-27 08:10:57 +01:00
b2f730e53e secop-gui: ask for reconnect
ask whether to reconnect when a connection is lost

Change-Id: I5928fabb7393bbf97a557b1ce1d85113891c96c9
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/21865
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2019-11-22 15:47:08 +01:00
c0c926d9d7 configurables must contain only settable properties
+ bug fix in TCLRequestHandler (decoding error)
+ cosmetic changes

Change-Id: I824e06f1acf975bb59c3312bb97fdfca23e6c975
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/21826
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2019-11-22 13:08:23 +01:00
Enrico Faulhaber
5458911b67 Adapt sim_* cfg's to current syntax
+ make 'limit' usable as type in cfg files
+ minor fixes

Change-Id: Ib94b2645c7a0d978d64d4c86c4415d4b5b0d485f
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/21485
Tested-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
2019-10-31 13:59:56 +01:00
230624cdeb fix config path
config path must be 'cfg', not 'etc'

Change-Id: I835091f16ced3896126dcb650fc37155b15c95c2
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/21482
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2019-10-30 09:00:54 +01:00
Enrico Faulhaber
e19f7a8c25 minor fixups
Change-Id: I038a962a128c12b81bad6d228e3c1a086c7db719
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/21480
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
2019-10-29 16:29:41 +01:00
1768aaefaa change interfaces_class to interface_classes
according to the newset SECoP syntax
accept both namings on the client side

Change-Id: I23abfa163d189044d997b715c912359158c16e42
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/21478
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
2019-10-29 16:28:00 +01:00
98f87f1306 make baseclient work without mlzlog
The used logger can now be configured from caller. This allows
for example to use NicosLogger when imported from NICOS.

+ fix a problem when connections was lost

Change-Id: I8496ba11ad467749493751b49c4e36dd739892ab
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/21477
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2019-10-29 14:28:15 +01:00
679559c1e7 readonly is mandatory for SECoP
but still optional with default True for frappy Parameter

Change-Id: I416c835af324ec3875aaa785cd0aefb28f9bfaa3
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/21457
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2019-10-23 09:09:09 +02:00
0700ddc455 fix DataType.copy for nested types
all nested types need a specific copy method, as some information
of EnumType (its name) and TextType are not visible in the
exported form

Change-Id: I3ef765ca35cda11b10798c68a3e2115502554c2e
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/21441
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2019-10-21 12:52:34 +02:00
2d646f1af4 revert default of poll to False
Before the introduction of the Property, the default of the poll
property was False. I feel that this is a better default, as the
programmer should think about which parameters really need to be
polled.

+ change comment about poll property (meaning depends on Poller)
+ change name of Status datatype to StatusType (avoid name conflicts
  with Status enum type)

Change-Id: Ie405b10ce8dfe85b235dbe78c910b5b5ee22cbb1
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/21407
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2019-10-17 08:52:14 +02:00
f4d572966c use Properties from secop.properties for datatypes
this change is triggered by the fact, that assigining a unit
in the config file did no longer work.

this change has several implications:
1) secop.properties must not import secop.datatypes:
   - as ValueType can not be imported, the default behaviour with
     'mandatory' and 'default' arguments was slightly changed
   - instead of checking for DataType when exporting, a try/except
     was used
2) the datatype of datatype properties is sometimes not yet defined.
   a stub is used in this cases instead, which is later replaced by
   the proper datatype. The number of stubs may be reduced, but this
   should be done in a later change, as the diff will be much less
   readable.
3) in config files, datatype properties can be changed like parameter
   properties. HasProperties.setProperties/checkProperties/getProperties
   are overridden for this.

the config editor seems still to work, an issue (probably py3) had
to be fixed there

Change-Id: I1efddf51f2c760510e913dbcaa099e8a89c9cab5
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/21399
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2019-10-11 16:46:29 +02:00
Enrico Faulhaber
eee7307818 upgrading debian files to compat 11
works on buster

Change-Id: I700ec073d3c13ce684cf361f7c3b059e79901bae
2019-09-27 17:06:47 +02:00