Source code for device_client.client_magnets_pssmall

from device_client import DeviceClient
from device.power_supply_magnets import PowerSupply_Magnets

from .client_magnets_psbig import description_template

[docs] def connect(name, password, server, serial): client = DeviceClient(name, password, logger="small", title="Magnetic field: PS Helmholtz Coils", description=description_template.format(amps=24, volts=100, kwatts=2.4)) hw = PowerSupply_Magnets( bus=serial, model_name="PCL2400-1H", log_callback=client.emit_log, logger="small", ) def set_max(voltage, current): hw.set_maxvoltage(voltage) hw.set_maxcurrent(current) hw.set_voltage(voltage) client.register_command(set_max, "Set MAX", inputs=[{"unit": "V"}, {"unit": "A"}]) client.register_command(hw.set_current, "Set current", inputs=[{"unit": "A"}]) # client.register_command(hw.set_voltage, "Set [V]") client.register_command(hw.set_waveform, "Set I(t) waveform", pass_self=True, inputs=[{"type": "textArea"}]) client.register_command(hw.run_waveform, "Run I(t) waveform", pass_self=True) def safety_button(): hw.set_current(0) client.register_command(safety_button, "Safety I=0A") client.register_command(hw.stop, "Stop") client.register_background_task(hw.update_frontend) client.keep_server_updated( hw.is_ready, 0.2, server, retry_on_error=True )