Exemplo n.º 1
0
    def setup_peripheral(self) -> None:
        """Sets up peripheral."""
        self.logger.debug("No setup required for peripheral")

        # Turn off all indicator leds
        for driver in self.drivers:
            driver.set_rgb([0, 0, 0])
Exemplo n.º 2
0
 def update_iot_led(self, driver: driver.PCA9633Driver) -> None:
     """Updates iot indicator and status."""
     if self.iot_is_connected:
         if self.iot_indicator_led_status != "Green":
             driver.set_rgb([0, 32, 0])
             self.iot_indicator_led_status = "Green"
     else:
         if self.iot_indicator_led_status != "Red":
             driver.set_rgb([32, 0, 0])
             self.iot_indicator_led_status = "Red"
Exemplo n.º 3
0
 def shutdown_peripheral(self) -> None:
     """Shutsdown peripheral."""
     self.logger.info("Shutting down")
     try:
         for driver in self.drivers:
             driver.set_rgb([0, 0, 0])  # off
     except exceptions.DriverError as e:
         message = "Unable to turn off indicator before shutting down: {}".format(
             type(e))
         self.logger.warning(message)
     self.clear_reported_values()
Exemplo n.º 4
0
    def setup_peripheral(self) -> None:
        """Sets up peripheral."""
        self.logger.debug("No setup required for peripheral")

        # Turn off all indicator leds, except for user led (set green)
        for driver in self.drivers:
            if driver.name == "UserLED":
                self.user_indicator_led_status = "Green"
                driver.set_rgb([0, 32, 0])
            else:
                driver.set_rgb([0, 0, 0])
Exemplo n.º 5
0
    def setup_peripheral(self) -> None:
        """Sets up peripheral."""
        self.logger.debug("No setup required for peripheral")

        # Turn off leds
        for driver in self.drivers:
            driver.set_rgb([0, 0, 0])

        # Update indicator status
        self.peripheral_indicator_led_status = "Off"
        self.network_indicator_led_status = "Off"
        self.iot_indicator_led_status = "Off"
        self.user_indicator_led_status = "Off"
Exemplo n.º 6
0
 def update_iot_led(
     self, driver: driver.PCA9633Driver, send_heartbeat: bool = False
 ) -> None:
     """Updates iot indicator and status."""
     if self.iot_is_connected:
         if self.iot_indicator_led_status != "Green" or send_heartbeat:
             self.logger.debug("Setting iot led green")
             driver.set_rgb([0, 32, 0])
             self.iot_indicator_led_status = "Green"
     else:
         if self.iot_indicator_led_status != "Red" or send_heartbeat:
             self.logger.debug("Setting iot led red")
             driver.set_rgb([32, 0, 0])
             self.iot_indicator_led_status = "Red"
Exemplo n.º 7
0
    def _set_user_led(self, request: Dict[str, Any]) -> None:
        """Processes turn on event request."""
        self.logger.debug("Processing set led event request")

        # Get request parameters
        color = request.get("color")

        # Set user led and update reported variables
        try:
            self.user_indicator_led_status = color
            for driver in self.drivers:
                if driver.name == "UserLED":
                    if color == "Green":
                        self.logger.debug("Setting color green")
                        driver.set_rgb([0, 32, 0])
                    elif color == "Yellow":
                        self.logger.debug("Setting color yellow")
                        driver.set_rgb([32, 32, 0])
                    elif color == "Red":
                        self.logger.debug("Setting color red")
                        driver.set_rgb([32, 0, 0])
                    elif color == "Blue":
                        self.logger.debug("Setting color blue")
                        driver.set_rgb([0, 0, 32])
                    break

        except exceptions.DriverError as e:
            self.mode = modes.ERROR
            message = "Unable to set user led: {}".format(e)
            self.logger.debug(message)
        except:
            self.mode = modes.ERROR
            message = "Unable to set user led, unhandled exception"
            self.logger.exception(message)
Exemplo n.º 8
0
    def update_peripheral_led(self, driver: driver.PCA9633Driver) -> None:
        """Updates peripheral led indicator and status."""

        # Check if all peripherals are setup and healthy
        healthy = True
        setup = True
        for _, peripheral in self.state.peripherals.items():

            # Check mode
            mode = peripheral.get("mode")
            if mode == modes.INIT or mode == modes.SETUP:
                setup = False
                break

            # Check health
            health = peripheral.get("health")
            if health < 100:
                healthy = False

        # Update indicator led output
        if not setup:
            if self.peripheral_indicator_led_status != "Yellow":
                driver.set_rgb([32, 32, 0])
                self.peripheral_indicator_led_status = "Yellow"
        elif healthy:
            if self.peripheral_indicator_led_status != "Green":
                driver.set_rgb([0, 32, 0])
                self.peripheral_indicator_led_status = "Green"
        else:
            if self.peripheral_indicator_led_status != "Red":
                driver.set_rgb([32, 0, 0])
                self.peripheral_indicator_led_status = "Red"
Exemplo n.º 9
0
    def update_user_led(
        self, driver: driver.PCA9633Driver, send_heartbeat: bool = False
    ) -> None:
        """Updates user led indicator and status."""

        # Set green on first update
        if self.first_user_led_update:
            self.first_user_led_update = False
            self.logger.debug("Setting user led green")
            driver.set_rgb([0, 32, 0])
            self.user_indicator_led_status = "Green"

        # Check to send heartbeat
        elif send_heartbeat:
            if self.user_indicator_led_status == "Green":
                self.logger.debug("Setting user led green")
                driver.set_rgb([0, 32, 0])
            elif self.user_indicator_led_status == "Yellow":
                self.logger.debug("Setting user led yellow")
                driver.set_rgb([32, 32, 0])
            elif self.user_indicator_led_status == "Red":
                self.logger.debug("Setting user led red")
                driver.set_rgb([32, 0, 0])
            elif self.user_indicator_led_status == "Blue":
                self.logger.debug("Setting user led blue")
                driver.set_rgb([0, 0, 32])
            elif self.user_indicator_led_status == "Off":
                self.logger.debug("Setting user led off")
                driver.set_rgb([0, 0, 0])