61 Commits

Author SHA1 Message Date
bd246c5ca7 result from merge with gerrit
secop subdir only

Change-Id: I65ab7049719b374ae3ec0259483e7e7d16aafcd1
2022-03-07 17:49:08 +01:00
41ce909172 update to changes from mlz repo
- bug fixes in error.py
- add from * to raise statements
- fix py35 compatibility
- finalize omit_unchanged_within feature
- fix follwup bug (missing Param.override) in proxy.py

Change-Id: I621c01a0d5e1ec6696fb06f39666f3316fb53649
2021-11-10 13:44:14 +01:00
21c49df1a2 fixes on secop gui
- do not display a dialog when a command returns None
- apply fmtstr, if available

Change-Id: I74da3e86e4eae9000608581e0a0f6e8c72cef715
2021-06-04 12:26:34 +02: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
1655e252fc fix handling of StructOf datatype
- change secop.client.SecopClient to use native types instead of
  strings for its setParameter and execCommand methods.
- secop-gui: for now, setParameter accept strings for complex types.
  this should be changed to use native type in an other change
- fix bugs in parser.py

+ SecopClient: make visible in an error message that the error
  was generated on the SEC node
+ fix a bug when a command is called with 0 as argument

Change-Id: Id87d4678311ef8cf43a25153254d36127e16c6d9
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/23299
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>
2020-07-06 15:46:37 +02:00
4448cef24a fix bug in secop.gui.valuewidgets
- fix ArrayOf maxlen instead of maxsize
- marked missing NoneOr widget as TODO
  (Remark: there are quite a lot of other things in cfg-editor to fix)

Change-Id: I3a8b2f650cca45dae4f87ba63c70ae58ca49ce42
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/23037
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-05-04 16:29:22 +02: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
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
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
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
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
c1164568ae further fixes of py3 issues
complaints by pylint are mainly related to
- remove object from base list in class definitions
- unnecessary else/elif after return/raise

Change-Id: I13d15449149cc8bba0562338d0c9c42e97163bdf
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/21325
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2019-09-26 14:15:48 +02: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
Enrico Faulhaber
d187b3240b rename host argument to client
from connectto to host

Change-Id: I4835148b9b7e4675ba70e588998eadc0889735c2
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/21289
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Tested-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
2019-09-24 09:31:19 +02:00
Enrico Faulhaber
7242b42c40 ValueWidget: use only PlainText
Change-Id: I4fbaf146011cef2a746940ab216ba02628f37463
Reviewed-on: https://forge.frm2.tum.de/review/20955
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
2019-07-25 08:10:31 +02:00
Enrico Faulhaber
c7c9403d1f Add TextType to ease gui generation
TextType is intended for formatted text (multiple lines),
whereas StringType is intended for a single line of text (without '\n')

Change-Id: Ibce29ae6b4e426bd8685f2cf7ff6966d81b0c6aa
Reviewed-on: https://forge.frm2.tum.de/review/20951
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
2019-07-24 14:20:13 +02:00
7c620901c9 handle SEC node connection properly in client
baseclient.py:
- select was not used properly, creating a busy loop
- added stop function in TCPConnection

mainwindow.py:
- fixed behaviour when a connection is broken:
  a message is shown, and the node is removed from the tree

Change-Id: I7223dfd9ea027681aff089f2fa16e134a16a7b84
Reviewed-on: https://forge.frm2.tum.de/review/20922
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
2019-07-24 10:47:32 +02:00
Seger Sandra
e1f017d678 add cfg-editor
Change-Id: I68b8ba9311ec0487d7a2676095a7170a2447b3d0
Reviewed-on: https://forge.frm2.tum.de/review/20206
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
2019-07-23 14:23:26 +02:00
Enrico Faulhaber
f6d8f823d9 rework property handling
+ DataType validators are shifted to __call__
+ as_json is moved to export_datatape()
+ new HasProperties Base Mixin for Modules/DataTypes
+ accessibles can be accessed via iterator of a module
+ properties are properly 'derived' and checked, are set with .setPropertyValue

remember: parameters only have properties, so use getPropertyValue()

Change-Id: Iae0273f971aacb00fe6bf05e6a4d24a6d1be881a
Reviewed-on: https://forge.frm2.tum.de/review/20635
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2019-07-16 10:56:17 +02:00
Enrico Faulhaber
99f757bf78 fixup: rename *subtype* in client code as well
Change-Id: I97cc836b2eaa508935113c225de593bbb9ad8821
Reviewed-on: https://forge.frm2.tum.de/review/20245
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
2019-03-27 15:40:49 +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
7e54cd93b7 minor fixes
Change-Id: I4be15d264e402be000811dffc1b28a2bc93ab297
Reviewed-on: https://forge.frm2.tum.de/review/18941
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
2018-09-25 12:50:35 +02:00
fb1939d5c8 merge 'parameters' and 'commands' to 'accessibles'
- for now, the definition also accepts the old syntax
  (to be changed later)
- Commands have datatype CommandType
- do not need keyword for the decription parameter of Override
- issue a Warning when a Parameter is overwritten without Overrride
  (this should be turned into an error message)
-

Change-Id: Ib2c0f520abb5b4d7e6aed4d77a0d2b8bc470a85a
Reviewed-on: https://forge.frm2.tum.de/review/18251
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>
2018-06-25 17:26:01 +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
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
f0ea4bd9b8 fix internal event handling
stringify at the latest possible moment, not the earliest

Change-Id: I230138c5787f97a72e8726ddc3546c61092d87c5
Reviewed-on: https://forge.frm2.tum.de/review/17858
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
2018-04-26 16:36:01 +02:00
Enrico Faulhaber
153b4d79f7 fix equipment_id handling
Change-Id: Ibeba9f0771dca8e7f9754f8b6431535885d654a0
Reviewed-on: https://forge.frm2.tum.de/review/17857
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-04-26 16:32:51 +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
Jens Krüger
851da9696c GUI: clean up callback for enum ComboBoxes
Change-Id: I17450fb1701aeb252c6ce5a27db5f336ba138bb0
Reviewed-on: https://forge.frm2.tum.de/review/17748
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Jens Krueger <jens.krueger@frm2.tum.de>
Tested-by: Jens Krueger <jens.krueger@frm2.tum.de>
2018-04-17 14:32:18 +02:00
Enrico Faulhaber
9f9dd9e3a3 GUI: Fix doubled slot on 'set' button click
Change-Id: I65126fc33a25f9c63fa37d896a0fff6ac13150e8
Reviewed-on: https://forge.frm2.tum.de/review/17746
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
Reviewed-by: Jens Krueger <jens.krueger@frm2.tum.de>
2018-04-17 13:52:06 +02:00
Enrico Faulhaber
7653809954 [GUI] fix 'double' click on go-buttons
Change-Id: I338cb7100a9fdbf8d45110e23bea71538235268d
Reviewed-on: https://forge.frm2.tum.de/review/17743
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
Tested-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
2018-04-16 17:38:27 +02:00
Jens Krüger
aba67dde7f NODECTRL: Fix some problems with logging and callbacks
- The widgets do not have a logger itself, the node logger has to be
  used
- The 'target_go' callback function has to be part of the Driveable
  widget not the Readable widget

Change-Id: Ie045fb02414d768fcf9c5e3f8590267209e23d83
Reviewed-on: https://forge.frm2.tum.de/review/17721
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
2018-04-16 11:51:45 +02:00
Jens Krüger
b49dcf0fa8 UI: Add connection from exit button to close the window
Change-Id: I168b06efa8ae95b09a9be408a25c510f90937c4c
Reviewed-on: https://forge.frm2.tum.de/review/17714
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
2018-04-16 11:47:06 +02:00
Enrico Faulhaber
e830666315 Support PyQt5 (fallback to PyQt4)
Change-Id: I7fa1add00d677e626fee5cd1071dee54d0bf8565
Reviewed-on: https://forge.frm2.tum.de/review/17666
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-04-11 12:43:04 +02:00
Enrico Faulhaber
40e75aefcc minor adoptions
Change-Id: I8ee3968b46609ffb22f3618b61f6d15f0e5188c1
Reviewed-on: https://forge.frm2.tum.de/review/17281
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
Tested-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
2018-02-08 15:36:45 +01:00
Enrico Faulhaber
d0620964fd fix unbound unit access
Change-Id: I6dfb1a1c3c08fda54283ebbd1c862d99281b4c1e
Reviewed-on: https://forge.frm2.tum.de/review/17280
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
Tested-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
2018-02-08 14:53:42 +01:00
Enrico Faulhaber
8117b26363 GUI: Saveguard against missing mandatory parameter status
Change-Id: I04fa866474a8f2205c1e77f19d3eef4cd100ccf0
Reviewed-on: https://forge.frm2.tum.de/review/17279
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
Tested-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
2018-02-08 14:50:39 +01:00
Enrico Faulhaber
b8abcfaf85 remember Widgets for modulectrl and paramctl
to not recreate them when another module/param got selected

Change-Id: Ic81bd8e3105f666d3a03dffb3de4e15603d99c39
Reviewed-on: https://forge.frm2.tum.de/review/17276
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
2018-02-08 12:13:23 +01:00
Enrico Faulhaber
99f763647f Avoid race condition upon gui start with autoconnect
Change-Id: I9f886dd858d50584403da5adf0c995e73fe67267
Reviewed-on: https://forge.frm2.tum.de/review/17277
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
Tested-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
2018-02-08 12:05:12 +01:00
Enrico Faulhaber
66503e8975 Add value parser + use it for the gui
replaces eval which is used so far

Change-Id: Ie5ff8c82175786e233d52bc0faac4e72e3bc27e9
Reviewed-on: https://forge.frm2.tum.de/review/17271
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
2018-02-08 09:54:04 +01:00
Enrico Faulhaber
3c3eaa166b provide an mean to use commands in the gui
Change-Id: Ia6a3fa03b50496abcab47026637a8f292c761d0c
2017-09-13 17:09:41 +02:00
Enrico Faulhaber
b9b2db1763 fixups
Change-Id: Ibbae99d1c51edcbf251f43cd75f21e448825139c
2017-09-12 18:25:06 +02:00
Enrico Faulhaber
96ac437fd3 fix transport and display of node-properties
Change-Id: I35a3021768e386a5ce922c8e24128d0bc3a039be
2017-09-12 16:10:22 +02:00
Enrico Faulhaber
7a50ff2603 adopt to new jsonify of string/blob/arrayof datatyes
+ further fixes

Change-Id: I6411a689436ba246bcf572b420ca2a0385b033a2
2017-09-12 11:08:09 +02:00
Enrico Faulhaber
ba59448442 fixups
Change-Id: If1377ef41f8d500ccab0e2a0979343b4c090c036
2017-09-11 17:50:20 +02:00
Enrico Faulhaber
357056d478 fixups
Change-Id: I72abe9b4c2deb08e58ce69786f853ccc4b385a5d
2017-09-11 15:22:33 +02:00