def _on_message(self, client, userdata, msg): """ Callback - MQTT client message received """ self.logger.debug("Message arrived: " + msg.topic) tokens = msg.topic.split("/") # Ensure topic matches current node if tokens[0] == "spBv1.0" and tokens[1] == self.group_id and ( tokens[2] == "NCMD" or tokens[2] == "DCMD") and tokens[3] == self.node_id: payload = sparkplug_b_pb2.Payload() payload.ParseFromString(msg.payload) if tokens[4] is not None: for device_key in self._node_devices: if device_key == tokens[4]: self._node_devices[device_key]._consume_msg(payload) else: super()._consume_msg(payload) else: self.logger.error( "subscribed topic is unequal to compared node / device id")
def getNodeBirthPayload(): global seqNum seqNum = 0 payload = sparkplug_b_pb2.Payload() payload.timestamp = int(round(time.time() * 1000)) payload.seq = getSeqNum() addMetric(payload, "bdSeq", None, MetricDataType.Int64, --bdSeq) return payload
def getDeviceBirthPayload(): payload = sparkplug_b_pb2.Payload() payload.timestamp = int(round(time.time() * 1000)) payload.seq = getSeqNum() return payload
def getNodeDeathPayload(): payload = sparkplug_b_pb2.Payload() addMetric(payload, "bdSeq", None, MetricDataType.Int64, getBdSeqNum()) return payload