class LegoFocuser(device):
-
- motor = Motor('A')
def ISGetProperties(self, device=None):
"""Property Definiations are generated
mainloop
"""
+ # BUILD_HAT_PORT - the port on the Build HAT to which the
+ # motor is connected.
+
+ if name == "BUILD_HAT_PORT":
+ try:
+ port = self.IUUpdate(device, name, names, values)
+ port.state='Ok'
+ port["PORT"].value = port["PORT"].value.strip()
+ self.IDSet(port)
+ except Exception as error:
+ self.IDMessage(f"BUILD_HAT_PORT error: {error}")
+
self.IUUpdate(device, name, names, values, Set=True)
def ISNewNumber(self, device, name, names, values):
conn = self.IUUpdate(device, name, names, values)
if conn["CONNECT"].value == 'Off':
conn.state = "Idle"
-
+ self._is_connected = False
else:
+ conn.state = "Busy"
+ self.IDSet(conn)
+ prt = self.IUFind("BUILD_HAT_PORT")
+ portval = prt["PORT"].value.strip()
+ self.motor = Motor(portval)
conn.state = "Ok"
+ self._is_connected = True
self.IDSet(conn)
except Exception as error:
self.IDMessage(f"IUUpdate error: {error}")
raise
-
+
if name == "FOCUS_MOTION":
try:
focus = self.IUUpdate(device, name, names, values, Set=True)
</defSwitch>
</defSwitchVector>
+<defTextVector device="LegoFocuser" name="BUILD_HAT_PORT" label="HAT Port" group="Main Control" state="Idle" perm="rw" timeout="60">
+ <defText name="PORT" label="Port">
+ A
+ </defText>
+</defTextVector>
+
+
<defSwitchVector device="LegoFocuser" name="FOCUS_MOTION" label="DIRECTION" group="Main Control" state="Ok" perm="rw" rule="OneOfMany" timeout="60">
<defSwitch name="FOCUS_INWARD" label="INWARD">
On