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}`')
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))
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))