# please edit this file with frappy edit

doc="""MB11 11 Tesla - 100 mm cryomagnet

after conversion with frappy edit
"""
Node('mb11.psi.ch', doc,
    interface='tcp://10767',
    )

IO('itc1', 'mb11-ts:3001')

IO('itc2', 'mb11-ts:3002')

IO('ips', 'mb11-ts:3003')

Mod('T_stat',
    'frappy_psi.mercury.TemperatureAutoFlow',
    'static heat exchanger temperature',
    meaning = ('temperature_regulation', 27),
    output_module = 'htr_stat',
    needle_valve = 'p_stat',
    slot = 'DB6.T1',
    io = 'itc1',
    tolerance = 0.1,
    flowpars = ((1, 5), (2, 20)),
    )

Mod('htr_stat',
    'frappy_psi.mercury.HeaterOutput',
    'static heat exchanger heater',
    slot = 'DB1.H1',
    io = 'itc1',
    )

Mod('p_stat',
    'frappy_psi.mercury.PressureLoop',
    'static needle valve pressure',
    output_module = 'pos_stat',
    settling_time = 60,
    slot = 'DB5.P1',
    io = 'itc1',
    tolerance = 1,
    value = Param(unit='mbar_flow'),
    )

Mod('pos_stat',
    'frappy_psi.mercury.ValvePos',
    'static needle valve position',
    slot = 'DB5.P1,DB3.G1',
    io = 'itc1',
    )

Mod('T_dyn',
    'frappy_psi.mercury.TemperatureAutoFlow',
    'dynamic heat exchanger temperature',
    output_module = 'htr_dyn',
    needle_valve = 'p_dyn',
    slot = 'DB7.T1',
    io = 'itc1',
    tolerance = 0.1,
    )

Mod('htr_dyn',
    'frappy_psi.mercury.HeaterOutput',
    'dynamic heat exchanger heater',
    slot = 'DB2.H1',
    io = 'itc1',
    )

Mod('p_dyn',
    'frappy_psi.mercury.PressureLoop',
    'dynamic needle valve pressure',
    output_module = 'pos_dyn',
    settling_time = 60,
    slot = 'DB8.P1',
    io = 'itc1',
    tolerance = 1,
    value = Param(unit='mbar_flow'),
    )

Mod('pos_dyn',
    'frappy_psi.mercury.ValvePos',
    'dynamic needle valve position',
    slot = 'DB8.P1,DB4.G1',
    io = 'itc1',
    )

Mod('mf',
    'frappy_psi.ips_mercury.Field',
    'magnetic field',
    slot = 'GRPZ',
    io = 'ips',
    tolerance = 0.001,
    wait_stable_field = 60,
    target = Param(max=11),
    persistent_limit = 11.1,
    )

Mod('lev',
    'frappy_psi.mercury.HeLevel',
    'LHe level',
    slot = 'DB1.L1',
    io = 'ips',
    )

Mod('n2lev',
    'frappy_psi.mercury.N2Level',
    'LN2 level',
    slot = 'DB1.L1',
    io = 'ips',
    )

Mod('T_neck1',
    'frappy_psi.mercury.TemperatureLoop',
    'neck heater 1 temperature',
    output_module = 'htr_neck1',
    slot = 'MB1.T1',
    io = 'itc2',
    tolerance = 1,
    )

Mod('htr_neck1',
    'frappy_psi.mercury.HeaterOutput',
    'neck heater 1 power',
    slot = 'MB0.H1',
    io = 'itc2',
    )

Mod('T_neck2',
    'frappy_psi.mercury.TemperatureLoop',
    'neck heater 2 temperature',
    output_module = 'htr_neck2',
    slot = 'DB6.T1',
    io = 'itc2',
    tolerance = 1,
    )

Mod('htr_neck2',
    'frappy_psi.mercury.HeaterOutput',
    'neck heater 2 power',
    slot = 'DB1.H1',
    io = 'itc2',
    )

Mod('T_nvs',
    'frappy_psi.mercury.TemperatureLoop',
    'static needle valve temperature',
    output_module = 'htr_nvs',
    slot = 'DB7.T1',
    io = 'itc2',
    tolerance = 0.1,
    )

Mod('htr_nvs',
    'frappy_psi.mercury.HeaterOutput',
    'static needle valve heater power',
    slot = 'DB2.H1',
    io = 'itc2',
    )

Mod('T_nvd',
    'frappy_psi.mercury.TemperatureLoop',
    'dynamic needle valve heater temperature',
    output_module = 'htr_nvd',
    slot = 'DB8.T1',
    io = 'itc2',
    tolerance = 0.1,
    )

Mod('htr_nvd',
    'frappy_psi.mercury.HeaterOutput',
    'dynamic needle valve heater power',
    slot = 'DB3.H1',
    io = 'itc2',
    )

Mod('T_coil',
    'frappy_psi.mercury.TemperatureSensor',
    'coil temperature',
    slot = 'MB1.T1',
    io = 'ips',
    )

IO('om_io', 'mb11-ts.psi.ch:3004')

Mod('om',
    'frappy_psi.phytron.Motor',
    'stick rotation, typically used for omega',
    io = 'om_io',
    target_min = '-360',
    target_max = '360',
    encoder_mode = 'NO',
    target = Param(min=-360, max=360),
    )