Source code for device_client.client_trap_pscoils

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, title="Trap: PS Coils", description=description_template.format(amps=200, volts=30, kwatts=6)) hw = PowerSupply_Magnets( bus=serial, model_name="PCL6000-30", log_callback=client.emit_log, ) 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 )