import ch.psi.pshell.device.DiscretePositionerBase as DiscretePositionerBase class LedPositioner(DiscretePositionerBase): def __init__(self): DiscretePositionerBase.__init__(self, "led_ctrl", ["On", "Off"]) self.setState(State.Ready) self.val = self.doReadReadback() def doRead(self): return self.val def doReadReadback(self): return "On" if get_led_state() else "Off" def doWrite(self, val): self.val = val if self.val == "On": set_led_state(True) else: set_led_state(False) add_device(LedPositioner(), True) led_ctrl.polling = 1000 import ch.psi.pshell.device.ProcessVariableConfig as ProcessVariableConfig class LedLevel(ProcessVariableBase): def __init__(self, name): ProcessVariableBase.__init__(self, name, ProcessVariableConfig()) def doRead(self): return get_led_level() def doWrite(self, val): return set_led_level(val) led_level = LedLevel("led_level") led_level.config.minValue = 0.0 led_level.config.maxValue = 100.0 led_level.config.unit = "%" add_device(led_level, True) led_level.polling = 1000