Source code for device_client.client_test
from device_client import DeviceClient
from device.mockup import MockupDevice
description = """
(Virtual testing device)
"""
[docs]
def connect(name, password, server):
client = DeviceClient(name, password,
title="Tony the Tokamak", description=description)
hw = MockupDevice(log_callback=client.emit_log)
client.register_command(hw.initiate_discharge, "Initiate discharge", pass_self=True)
client.register_command(hw.stop, "Stop")
client.register_command(hw.toggle_connection_stability, "Toggle connection stability")
client.register_command(hw.emit_mockfile, "Emit mockfile", pass_self=True)
def set_switch(enabled):
hw.set_some_switch(enabled)
client.emit_command_state("set_switch", [hw.is_some_switched_on()])
client.register_command(
set_switch,
"Some switch",
inputs=[{"type": "toggle"}],
)
client.register_background_task(hw.update_frontend)
def emit_things(device_client):
device_client.emit("value", {"value": 5, "id": "a_special_value"})
# client.register_background_task(emit_things)
client.keep_server_updated(
check_readiness=hw.is_ready,
check_readiness_interval=0.01,
server_address=server,
retry_on_error=True
)