def _on_otap_status_request_received(self, client, userdata, message): # pylint: disable=unused-argument self.logger.info("OTAP status request received") try: request = wmm.GetScratchpadStatusRequest.from_payload( message.payload) except wmm.GatewayAPIParsingException as e: self.logger.error(str(e)) return sink = self.sink_manager.get_sink(request.sink_id) if sink is not None: d = sink.get_scratchpad_status() target_and_action = {} try: target_and_action["action"] = d["target_action"] target_and_action["target_sequence"] = d["target_seq"] target_and_action["target_crc"] = d["target_crc"] target_and_action["param"] = d["target_param"] except KeyError: # If not present, just an old node target_and_action = None response = wmm.GetScratchpadStatusResponse( request.req_id, self.gw_id, wmm.GatewayResultCode.GW_RES_OK, request.sink_id, d["stored_scartchpad"], d["stored_status"], d["stored_type"], d["processed_scartchpad"], d["firmware_area_id"], target_and_action, ) else: response = wmm.GetScratchpadStatusResponse( request.req_id, self.gw_id, wmm.GatewayResultCode.GW_RES_INVALID_SINK_ID, request.sink_id, ) topic = TopicGenerator.make_otap_status_response_topic( self.gw_id, request.sink_id) self.mqtt_wrapper.publish(topic, response.payload, qos=2)
def _on_otap_status_request_received(self, client, userdata, message): # pylint: disable=unused-argument self.logger.info("OTAP status request received") try: request = wirepas_messaging.gateway.api.GetScratchpadStatusRequest.from_payload( message.payload ) except GatewayAPIParsingException as e: self.logger.error(str(e)) return sink = self.sink_manager.get_sink(request.sink_id) if sink is not None: d = sink.get_scratchpad_status() response = wirepas_messaging.gateway.api.GetScratchpadStatusResponse( request.req_id, self.gw_id, GatewayResultCode.GW_RES_OK, request.sink_id, d["stored_scartchpad"], d["stored_status"], d["stored_type"], d["processed_scartchpad"], d["firmware_area_id"], ) else: response = wirepas_messaging.gateway.api.GetScratchpadStatusResponse( request.req_id, self.gw_id, GatewayResultCode.GW_RES_INVALID_SINK_ID, request.sink_id, ) topic = TopicGenerator.make_otap_status_response_topic( self.gw_id, request.sink_id ) self.mqtt_wrapper.publish(topic, response.payload, qos=2)