def _on_event(self, msg: str):
        if msg.startswith(const.WELCOME_PREFIX):
            welcome = commands.HandshakeMessage(*msg.split(','))
            LOGGER.info(welcome)

            device = service_status.DeviceInfo(
                welcome.firmware_version,
                welcome.proto_version,
                welcome.firmware_date,
                welcome.proto_date,
                welcome.device_id,
                welcome.system_version,
                welcome.platform,
                welcome.reset_reason,
            )
            service_status.set_acknowledged(self.app, device)

        elif msg.startswith(const.CBOX_ERR_PREFIX):
            try:
                LOGGER.error('Spark CBOX error: ' +
                             commands.Errorcode(int(msg[-2:], 16)).name)
            except ValueError:
                LOGGER.error('Unknown Spark CBOX error: ' + msg)

        elif msg.startswith(const.SETUP_MODE_PREFIX):
            LOGGER.error(
                'Controller entered listening mode. Exiting service now.')
            raise web.GracefulExit()

        else:
            LOGGER.info(f'Spark event: `{msg}`')
    async def _on_event(self, msg: str):
        if msg.startswith(WELCOME_PREFIX):
            welcome = HandshakeMessage(*msg.split(','))
            LOGGER.info(welcome)

            device = DeviceInfo(
                firmware_version=welcome.firmware_version,
                proto_version=welcome.proto_version,
                firmware_date=welcome.firmware_date,
                proto_date=welcome.proto_date,
                device_id=welcome.device_id,
                system_version=welcome.system_version,
                platform=welcome.platform,
                reset_reason=welcome.reset_reason,
            )
            service_status.set_acknowledged(self.app, device)

        elif msg.startswith(SETUP_MODE_PREFIX):
            LOGGER.error('Controller entered listening mode. Exiting service now.')
            raise web.GracefulExit()

        else:
            LOGGER.info(f'Spark event: `{msg}`')
Esempio n. 3
0
 async def startup(self, app: web.Application):
     await self._responder.startup(app)
     # Normally handled by communication
     service_status.set_connected(app, 'simulation:1234')
     service_status.set_acknowledged(app, make_device(app))
Esempio n. 4
0
 async def _noop_command(self, request):
     # Shortcut for actual behavior
     # Noop triggers a welcome message
     # Welcome message is checked, and triggers set_acknowledged()
     service_status.set_acknowledged(self.app, make_device(self.app))