36 Commits

Author SHA1 Message Date
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
c5f3b113a8 fixes in datatype.py
- in DATATYPES, arguments for CommandType must be optional
- added default value for Enum

Change-Id: I967efe3418960ad587d989d22412f6a834257171
Reviewed-on: https://forge.frm2.tum.de/review/20923
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-07-16 17:06:10 +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
fa9e451c54 replace Datatype.as_json by Datatype.export_datatype()
as for most datatypes as_json had to be converted to properties
and as_json was only not used outside datatypes.py except in
the test, we implement export_datatypes instead

Change-Id: I4beaba9dbd5a350c230e72b571364bf8ee2901b6
Reviewed-on: https://forge.frm2.tum.de/review/20345
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
2019-04-09 10:24:27 +02:00
2ebf62fa70 introduced Datatype.copy
as Datatype got mutable, it has to be copied when inherited.
Params.copy must call the introduced method Datatype.copy.

in addition:
- fixed bugs in ScaledInteger.__repr__ and datatypes.DATATYPES['struct']
- do not export unit from Parameters

Change-Id: Id552c33843b1b2bedffc68d1bd909705dcfb5605
Reviewed-on: https://forge.frm2.tum.de/review/20324
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-09 09:20:58 +02:00
0eb68e54be validator should take resolution into account
also changed names: according to the meeting in 2019-01-16 we
decided to use absolute_resolution/relative_resolution
instead of _precision

Change-Id: I4a49bb745901b87c2aa2bc2728fd7a44026421e0
Reviewed-on: https://forge.frm2.tum.de/review/20321
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
2019-04-03 17:41:07 +02:00
bc33f263ec as_json on FloatRange and ScaledInteger must be a property
as the unit property may be set in the config file, the datatype
might change after creation.
This proposed implementation changes the internal name of *_precision
to its full name, as this is easier for the way it is done.

IntRange is not yet modified, as anyway 'unit' (and 'fmtstr') should
not be applied to it, this is not forseen in the standard.

Questions for further work:
- should we also allow to configure 'fmtstr'?
- should it be allowed to change min, max from configuration?
- if yes, what is the proper way to do it?

Change-Id: I1fda7e8274109fdcca3c792c0a6e3dc6664cc45e
Reviewed-on: https://forge.frm2.tum.de/review/20304
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-03 12:56:08 +02:00
Enrico Faulhaber
c2b17a66b3 datatypes: Change default fmtstr to %g
Change-Id: I6709c98b4c55b70ffd49cbfdc0f43186453e0427
Reviewed-on: https://forge.frm2.tum.de/review/20247
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-03-27 16:59:28 +01:00
Enrico Faulhaber
3534c57f1c datatypes: implement format_value() method
+ adapt tests
+ switch test_datatypes.py to unicode strings
+ renamed *subtype* attribute of tuple/struct/array to members

Change-Id: I6488989b9d684d5b91bbe0b3f2aa3cbfefd0fcbf
Reviewed-on: https://forge.frm2.tum.de/review/20242
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
2019-03-27 13:22:16 +01:00
Enrico Faulhaber
16772609f4 datatypes: implement hints (unit, fmtstr, *_precision)
on types where these can be useful.
Also fix some issues with ScaledInteger.

Change-Id: I9d456c4f237da3a37730c3e451e9fb59307ed982
Reviewed-on: https://forge.frm2.tum.de/review/20240
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
2019-03-27 11:34:49 +01:00
Enrico Faulhaber
58bae697c9 Implement ScaledInteger type
Change-Id: I14d55d2427017e1e07f947504348804c3e66848e
Reviewed-on: https://forge.frm2.tum.de/review/20225
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
2019-03-27 11:12:08 +01:00
Enrico Faulhaber
7d63643b64 datatypes: adapt Syntax to latest decisions
Change-Id: Ic6eb570991b8d85739570d87e689118f2f8835b3
Reviewed-on: https://forge.frm2.tum.de/review/20224
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
2019-03-26 11:45:42 +01:00
Georg Brandl
381495fe38 datatypes: require min, max ordering for size limits
Change-Id: I165b7d932716082b4bb9996f58f742763398b454
Reviewed-on: https://forge.frm2.tum.de/review/19533
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
2018-12-04 13:30:22 +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
Enrico Faulhaber
90af930b3d datatypes: fix converting command datatype
Change-Id: I6f543a45fb58cbcb0c8e390c0485bd555979c1b3
Reviewed-on: https://forge.frm2.tum.de/review/18480
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-19 15:35:22 +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
0f405272e5 Add new 'pseudo' datatypes to simplifiy coding
for descriptive data the composition will be used.

Change-Id: If35f8176d489231e223e6d97425c1bcea58060ff
Reviewed-on: https://forge.frm2.tum.de/review/18189
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
2018-06-18 18:09:22 +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
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
62c2434f0f fix exceptions
Change-Id: I09f33386d5ae1499f157f3ffb7aa3b08b65e27db
Reviewed-on: https://forge.frm2.tum.de/review/17127
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
2018-01-22 18:27:40 +01:00
Enrico Faulhaber
8c26ecf5cf extend datatypes
also make interface more explicit

Change-Id: Ib104e2c050d3e98e9d434d502951e33619784e2e
missing: test cases for *.from_string(input) methods
Reviewed-on: https://forge.frm2.tum.de/review/16893
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
2017-12-15 14:08:42 +01: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
Enrico Faulhaber
3d3558ccd8 make StringType default maximum size = 255 Bytes
Change-Id: I0c26fc24ad99ff4185ff5a0b9b8ada9a10817b8b
Reviewed-on: https://forge.frm2.tum.de/review/16269
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
2017-09-18 14:15:25 +02:00
Enrico Faulhaber
0c63522eab fix tests
Change-Id: I53e9143121a6d01dbd1733f6fcd71fe1a9a9e3e3
Reviewed-on: https://forge.frm2.tum.de/review/16260
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
2017-09-18 13:58:08 +02:00
Enrico Faulhaber
54379a586a remove unneeded commands
Change-Id: I2b3a343a117fced0195f23c3051902c1387e6bcc
2017-09-12 18:32:53 +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
b26b64032e fixups
Change-Id: Ib0c6fddd38f594d735feadce31e4809e7a4c5d44
2017-09-11 11:27:52 +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
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
Enrico Faulhaber
50fc67c818 datatypes: fix serialisation for unlimited types
Change-Id: If2d972a35a6da872be8571e27ad4c1156b0a98f4
2017-07-10 17:04:48 +02:00
Enrico Faulhaber
bc3253a01a replace validators with datatypes
Change-Id: I446c4e14e24afa3f65e79c8b6e07eec3271532b0
2017-07-03 18:13:09 +02:00
Enrico Faulhaber
a87e568b55 implement datatypes
+tests

as agreed in last meeting

Change-Id: Ibc382f808927797e7e7ea268b97a5632713bfb56
2017-06-21 17:32:04 +02:00