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>
This commit is contained in:
Enrico Faulhaber
2019-05-14 16:08:20 +02:00
committed by Markus Zolliker
parent 155dd8e4c6
commit f6d8f823d9
23 changed files with 956 additions and 465 deletions

View File

@ -9,10 +9,12 @@ bindport=10767
class=secop_demo.modules.Switch
switch_on_time=5
switch_off_time=10
.description="Heatswitch for `mf` device"
[module mf]
class=secop_demo.modules.MagneticField
heatswitch = heatswitch
.description="simulates some cryomagnet with persistent/non-persistent switching"
[module ts]
class=secop_demo.modules.SampleTemp
@ -20,20 +22,22 @@ sensor = 'Q1329V7R3'
ramp = 4
target = 10
value = 10
.description = "some temperature"
[module tc1]
class=secop_demo.modules.CoilTemp
sensor="X34598T7"
.description = "some temperature"
[module tc2]
class=secop_demo.modules.CoilTemp
sensor="X39284Q8'
.description = "some temperature"
[module label]
class=secop_demo.modules.Label
system=Cryomagnet MX15
subdev_mf=mf
subdev_ts=ts
.description = "some label indicating the state of the magnet `mf`."
#[module vt]
#class=secop_demo.modules.ValidatorTest

View File

@ -16,24 +16,31 @@ bindport=10768
[module LN2]
class=secop_demo.test.LN2
.description="random value between 0..100%%"
value.unit = "%%"
[module heater]
class=secop_demo.test.Heater
maxheaterpower=10
.description="some heater"
[module T1]
class=secop_demo.test.Temp
sensor="X34598T7"
.description="some temperature"
[module T2]
class=secop_demo.modules.CoilTemp
sensor="X34598T8"
.description="some temperature"
[module T3]
class=secop_demo.modules.CoilTemp
sensor="X34598T9"
.description="some temperature"
[module Lower]
class=secop_demo.test.Lower
.description="something else"