36 Commits

Author SHA1 Message Date
34b93adef0 more merges from gerrit
Change-Id: I13441cd8889dd39f74a2dd1a85e75a1b76bb93c8
2022-03-08 10:52:14 +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
Enrico Faulhaber
bccfe6109b [MLZ] fix entangle integration
handling of mappings for NamedDigital*put needs to be improved!

Change-Id: I015cb1d26d049d3caecc0e03baa9f523951f004c
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/22932
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
2020-04-09 14:43:34 +02: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
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
Enrico Faulhaber
70a9c42a7a Remove py2 support
Change-Id: Ieeaeb3b8efcae004e94aea6c1d2703c9782a8650
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/21320
Tested-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
2019-09-26 10:32:01 +02:00
cafc7a1409 remove 'maxage' argument for read_* methods
'maxage' is not really used at any place. remove it, as this makes
the code cleaner

Change-Id: I6f10b4ab91fc57640336db1832716ca9012eb241
Reviewed-on: https://forge.frm2.tum.de/review/20347
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-04-11 13:06:43 +02:00
Enrico Faulhaber
3eaa32d514 rename framework methods to camelCase
for easier distinction:
- camelCase or singleword: framework method
- snake_case: driver method

(driver) parameters are lowercase, single word framework variables may
have to start with uppercase letters to distinguish...

Change-Id: I76536b6390324625b242c4f190553014c2ca61d6
Reviewed-on: https://forge.frm2.tum.de/review/20295
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-04-02 08:15:40 +02:00
Enrico Faulhaber
752f8f8093 remove support for declaring parameters/commands as accessibles
use parameters/commands for this

Change-Id: I41f68c7f65f0ea451e639092a44a8ff8f5710bfc
Reviewed-on: https://forge.frm2.tum.de/review/20275
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
Tested-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
2019-03-29 08:46:14 +01:00
Enrico Faulhaber
8ef28eb2cc secop_mlz: remove dangerous try except ImportError + fix typo
Change-Id: I11de901044c9400b6fe8e8779e6b05a5709d3e0f
Reviewed-on: https://forge.frm2.tum.de/review/20251
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
2019-03-28 11:46:51 +01:00
Enrico Faulhaber
4068516178 all: rename parameters to accessibles in module classes
+ make accesses to <module>.parameters work again

Change-Id: I91c09b0f9f5f28d78cd644f83a96c8772e5977e5
Reviewed-on: https://forge.frm2.tum.de/review/20249
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
Tested-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
2019-03-28 10:51:47 +01:00
Enrico Faulhaber
a255cfaa55 isort result
Change-Id: I137d9a6b4e2322f8df0506f9e8f751a4743aafd0
Reviewed-on: https://forge.frm2.tum.de/review/20218
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
2019-03-26 11:05:34 +01:00
Enrico Faulhaber
8efd1df92c fix isort
Change-Id: I5486e1f9b3143c6bb0804c49c7ca21adb9b84de1
Reviewed-on: https://forge.frm2.tum.de/review/19524
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
Tested-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
2018-12-04 10:18:55 +01:00
Enrico Faulhaber
29a5b5c49e big rework to comply to current spec
- adapt to release(v2018-11-07)
- remove duplicate errors.py
- adapt tests

Change-Id: I383bb571f9808c72b37c12fbe55042011c4c0084
Reviewed-on: https://forge.frm2.tum.de/review/19397
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
2018-12-04 10:18:40 +01:00
Enrico Faulhaber
5f640ce299 [server.py] rename initialisation steps for better clarity
initialisation occurs in this order:
 - object creeation (via __init__ which should consume the cfg values it knows about)
 - registering each object with the dispatcher
 - calling init_module() on each module (for connecting to other modules, checking hw, creating threads....)
 - calling start_module(cb) on each module. after the module finished startup it should call cb(self) once.
   This is the right place to do initialisation of hw which is not needed to read from the hw.
   (uploading curves, polling/re-setting all parameters, etc.)

Change-Id: Ieaf9df5876e764634836861241f58ab986027f44
Reviewed-on: https://forge.frm2.tum.de/review/18566
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
2018-08-29 15:36:01 +02:00
Enrico Faulhaber
acb8e6d0a1 [MLZ:entangle] fix windowtimeout
condition was not 100% right.

Change-Id: I189f0bb7f548d434dab9379727abd85ba0de58fa
Reviewed-on: https://forge.frm2.tum.de/review/18540
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
2018-07-27 15:04:45 +02:00
Enrico Faulhaber
b1f1653ebd fix several regressions from switching to accessibles
also include some basic tests now

Change-Id: Ia07892c03f4d72f5da307a79a9827f926940881d
Reviewed-on: https://forge.frm2.tum.de/review/18539
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
Tested-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
2018-07-27 09:22:40 +02:00
Enrico Faulhaber
5b273e36a7 MLZ: fix typo
(OK instead of IDLE)

Change-Id: Ie063041828da1cf30ad434f197e06420e802a23f
Reviewed-on: https://forge.frm2.tum.de/review/18482
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
Tested-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Jens Krueger <jens.krueger@frm2.tum.de>
2018-07-19 16:06:56 +02:00
Enrico Faulhaber
75e31714b8 secop/modules: make polling thread more robust
Change-Id: I530088d56e31dc2d415cc1c79b1db9d446c0b391
Reviewed-on: https://forge.frm2.tum.de/review/18259
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
2018-06-27 10:18:33 +02:00
Enrico Faulhaber
22645b449b rename Param -> Parameter
Change-Id: Idcbc440b76219282a888172890673a4d74935dfd
Reviewed-on: https://forge.frm2.tum.de/review/18210
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
2018-06-19 14:25:13 +02:00
5ffe953c5c commands must be specified explicitely
no more automatic definition by just declaring do_<command>

Change-Id: Ided91b5ae6fe657a6134f1cc14cc6484570a3646
Reviewed-on: https://forge.frm2.tum.de/review/18206
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2018-06-19 13:48:11 +02:00
Enrico Faulhaber
574a66c65b rework EnumType to use better Enum's
unfortunately IntEnum can't be bent like we would need it (extensible).
So we had to write our own....

The members of the Enum still behave like ints, but also have
.name and .value attributes, should they be needed.

needed adoptions to correctly use (and test) the EnumType are included.

Change-Id: Ie019d2f449a244c4fab00554b6c6daaac8948b59
Reviewed-on: https://forge.frm2.tum.de/review/17843
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
2018-06-07 17:57:46 +02:00
Enrico Faulhaber
3b802e67c8 improve Py2/3 compat
Change-Id: I1dfdcb88a492401851d5157c734cd708496bf004
Reviewed-on: https://forge.frm2.tum.de/review/17734
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
2018-04-17 17:34:24 +02:00
Enrico Faulhaber
0d25dc35e0 MLZ: fix tango WindowTimeout
Change-Id: I4e1f7e9ab519fe1ae5b6bcc4b9898b44f017c45f
Reviewed-on: https://forge.frm2.tum.de/review/17742
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Tested-by: Jens Krueger <jens.krueger@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
2018-04-17 17:23:07 +02:00
Enrico Faulhaber
b7ab6036e5 MLZ: Fix mapping in NamedDigitalOutput device
Change-Id: Iaef2c4672eb3eceeaba2ec5750f964864ce76aa9
Reviewed-on: https://forge.frm2.tum.de/review/17733
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
2018-04-16 14:26:29 +02:00
Enrico Faulhaber
f54e8ccb45 improve readability be renaming PARAMS,PROPS,CMDS
and others.

Change-Id: Ie37768ed813acdf0cb0707c70ff63397ec8bfbf1
Reviewed-on: https://forge.frm2.tum.de/review/17320
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
2018-04-16 14:05:33 +02:00
Jens Krüger
b96bae8e6b MLZ: enable the 'setposition' commands in entangle
The command 'setposition' wasn't sane declared so the use of one of the
devices using this command lead always to a ProgrammingError during the
'describe' command via the server interface.

Change-Id: I34a6b07e8f0fbd861496515a5e18d3181ad134d5
Reviewed-on: https://forge.frm2.tum.de/review/17715
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
Tested-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
2018-04-16 11:49:51 +02:00
Enrico Faulhaber
2ba0a5be9b MLZ_entangle: use generous timings for initial device connect
Change-Id: I154df78deea1879a44444b48c2d7f8328478860a
Reviewed-on: https://forge.frm2.tum.de/review/16326
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
Tested-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
2017-09-22 16:41:52 +02:00
Enrico Faulhaber
16e69e7778 fix entangle integration
StringIO::multicommunicate can now only handle up to 100 messages.
Should be sufficient.

Change-Id: Id3ccdf03143b80a37aa0ef0b87c47090ef802a42
Reviewed-on: https://forge.frm2.tum.de/review/16288
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
Tested-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
2017-09-19 18:30:21 +02:00
Alexander Lenz
47cafc5b1b tmp: test gerrit pylint.
Change-Id: I278668dc8844566e9d76fdf51de061285a549cc3
2017-09-14 12:10:24 +02:00
Enrico Faulhaber
5992ba3c35 fixups
Change-Id: I120865555596b2671c6e8aa65841f3ea984c7e03
2017-09-11 15:39:26 +02:00
Enrico Faulhaber
357056d478 fixups
Change-Id: I72abe9b4c2deb08e58ce69786f853ccc4b385a5d
2017-09-11 15:22:33 +02:00
Enrico Faulhaber
2bb96bea70 provide setup for MLZ_Amagnet to be used @PSI soon
Also implement lots of fixes and improvements.

fixes: #3381

Change-Id: Ibe6664da00756ae5813b90f190295045808b2ff0
2017-07-27 11:21:05 +02:00
Enrico Faulhaber
63418fce04 Add lib/sequence support
Change-Id: If9bde0062185a5f13d17d9d2cea091bde7c98db9
2017-07-20 16:11:24 +02:00
Enrico Faulhaber
29ee07c5b3 several improvements and bugfixes
+ rework GUI
  - include a combobox for selection of visibility
  - include a checkbox wether validation should be done in the client
  - remove unused lineEdit
+ improve datatypes
+ improve tests for new descriptive data
+ metaclasse: fix overlooked read_* or write_* func's
+ improve polling
+ Introduce new ErrorClasses
+ dispatcher: use new features of datatypes + PARAMS
+ improve lib
+ autopep8
+ first working version of MLZ_entangle integration
+ split specific stuff into it's own package (MLZ,demo,ess)

Change-Id: I8ac3ce871b28f44afecbba6332ca741095426712
2017-07-19 11:03:29 +02:00