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
)