46 lines
1.2 KiB
Python
46 lines
1.2 KiB
Python
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 |