Source code for device.langmuir_motors

from . import base


[docs] class LangmuirMotors(base.ArduinoMotorsBase): def __init__(self, calibfile, buses=None, limits_enabled=True, **kwargs): super().__init__(calibfile, buses, limits_enabled, **kwargs) self._valve_open = False # ==== Inherited abstract methods ==== def _connect(self): if super()._connect(): self._valve_open = False return True else: return False def _disconnect(self): self.close_valve() return super()._disconnect() # ==== Private commands ==== @base.base_command def _toggle_valve(self): self._ardu["T"].write(b"v") # Toggle valve state if self._read_serial("T") == "": raise base.TransmissionError("Expected a response (action 'v')") self._valve_open = not self._valve_open # ==== Commands ====
[docs] def is_valve_open(self): """Return the state of the valve.""" return self._valve_open
[docs] @base.base_command def open_valve(self): """Open valve (if not open).""" if not self.is_valve_open(): self._toggle_valve()
[docs] @base.base_command def close_valve(self): """Close valve (if not closed).""" if self.is_valve_open(): self._toggle_valve()