code: def _on_report(self, sequence, topic, message):
          
  
          try:
              conn_key = self._find_connection(topic)
              conn_id = self.conns.get_connection_id(conn_key)
          except ArgumentError:
              self._logger.warn("Dropping report message that does not correspond with a known connection, topic=%s", topic)
              return
  
          try:
              rep_msg = messages.ReportNotification.verify(message)
  
              serialized_report = {}
              serialized_report['report_format'] = rep_msg['report_format']
              serialized_report['encoded_report'] = rep_msg['report']
              serialized_report['received_time'] = datetime.datetime.strptime(rep_msg['received_time'].encode().decode(), "%Y%m%dT%H:%M:%S.%fZ")
  
              report = self.report_parser.deserialize_report(serialized_report)
              self._trigger_callback('on_report', conn_id, report)
          except Exception:
              self._logger.exception("Error processing report conn_id=%d", conn_id)
docs: Process a report received from a device.
  
          Args:
              sequence (int): The sequence number of the packet received
              topic (string): The topic this message was received on
              message (dict): The message itself