Ejemplo n.º 1
0
class SyrenAdapter(object):
    """
    classdocs
    """
    def __init__(self):
        """
        Constructor
        """
        self._channels = []
        self._logger = logging.getLogger(LOG_ADSYREN)
        self._is_alerting = False
        self._output = DigitalOutputDevice(pin=SYREN_OUT)

    def alert(self, start=True):
        if start:
            self._logger.info("Syren on")
            self._is_alerting = True
            self._output.on()
        else:
            self._logger.info("Syren off")
            self._is_alerting = False
            self._output.off()

    @property
    def is_alerting(self):
        return self._is_alerting
Ejemplo n.º 2
0
class Motor(CompositeDevice):
    forward_direction = 0
    backward_direction = 1

    def __init__(self, in1, in2, pwm):
        self._in1 = DigitalOutputDevice(pin=in1)
        self._in2 = DigitalOutputDevice(pin=in2)
        self._pwm = PWMOutputDevice(pin=pwm)
        self._speed = 0
        # self._direction = None
        super(Motor, self).__init__()

    # @property
    # def direction(self):
    #     return self._direction

    @property
    def speed(self):
        return self._speed

    @speed.setter
    def speed(self, speed):
        if not speed:
            return
        self._speed = speed

    def forward(self, speed=None):
        self.speed = speed
        self._in1.on()
        self._in2.off()
        self._pwm.value = self.speed
        # self._direction = self.forward_direction

    def backward(self, speed=None):
        self.speed = speed
        self._in1.off()
        self._in2.on()
        self._pwm.value = self.speed
        # self._direction = self.backward_direction

    def coast(self):
        self._in1.on()
        self._in2.on()

    def stop(self):
        self._in1.off()
        self._in2.off()