Node('test.config.frappy.demo',
     '''short description of the testing sec-node

This description for the node can be as long as you need if you use a multiline string.

Very long!
The needed fields are Equipment id (1st argument), description (this)
 and the main interface of the node (3rd arg)
''',
     'tcp://5000',
)

Mod('attachtest',
    'frappy_demo.test.WithAtt',
    'test attached',
    att = 'LN2',
)

Mod('pinata',
    'frappy_demo.test.Pin',
    'scan test',
)

Mod('recursive',
    'frappy_demo.test.RecPin',
    'scan test',
)

Mod('LN2',
    'frappy_demo.test.LN2',
    'random value between 0..100%',
    value = Param(default = 0, unit = '%'),
)

Mod('heater',
    'frappy_demo.test.Heater',
    'some heater',
    maxheaterpower = 10,
)

Mod('T1',
    'frappy_demo.test.Temp',
    'some temperature',
    sensor = 'X34598T7',
)

Mod('T2',
    'frappy_demo.test.Temp',
    'some temperature',
    sensor = 'X34598T8',
)

Mod('T3',
    'frappy_demo.test.Temp',
    'some temperature',
    sensor = 'X34598T9',
)

Mod('Lower',
    'frappy_demo.test.Lower',
    'something else',
)

Mod('Decision',
    'frappy_demo.test.Mapped',
    'Random value from configured property choices. Config accepts anything ' \
    'that can be converted to a list',
    choices = ['Yes', 'Maybe', 'No'],
)

Mod('c',
    'frappy_demo.test.Commands',
    'a command test',
)

Mod('cryo',
    'frappy_demo.cryo.Cryostat',
    'A simulated cc cryostat with heat-load, specific heat for the sample and a '
    'temperature dependent heat-link between sample and regulation.',
    group='very important/stuff',
    jitter=0.1,
    T_start=10.0,
    target=10.0,
    looptime=1,
    ramp=6,
    maxpower=20.0,
    heater=4.1,
    mode='pid',
    tolerance=0.1,
    window=30,
    timeout=900,
    p = Param(40, unit='%/K'),  # in case 'default' is the first arg, we can omit 'default='
    i = 10,
    d = 2,
    pid = Group('p', 'i', 'd'),
    pollinterval = Param(export=False),
    value = Param(unit = 'K', test = 'customized value'),
)

Mod('heatswitch',
    'frappy_demo.modules.Switch',
    'Heatswitch for `mf` device',
    switch_on_time = 5,
    switch_off_time = 10,
)

Mod('bool',
    'frappy_demo.modules.BoolWritable',
    'boolean writable test',
)

Mod('lscom',
    'frappy_psi.ls370sim.Ls370Sim',
    'simulated serial communicator to a LS 370',
    visibility = 3
)

Mod('sw',
    'frappy_psi.ls370res.Switcher',
    'channel switcher for Lsc controller',
    io = 'lscom',
)

Mod('a',
    'frappy_psi.ls370res.ResChannel',
    'resistivity',
    channel = 1,
    switcher = 'sw',
)

Mod('b',
    'frappy_psi.ls370res.ResChannel',
    'resistivity',
    channel = 3,
    switcher = 'sw',
)
