Esempio n. 1
0
    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")
Esempio n. 2
0
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
Esempio n. 3
0
def getDeviceBirthPayload():
    payload = sparkplug_b_pb2.Payload()
    payload.timestamp = int(round(time.time() * 1000))
    payload.seq = getSeqNum()
    return payload
Esempio n. 4
0
def getNodeDeathPayload():
    payload = sparkplug_b_pb2.Payload()
    addMetric(payload, "bdSeq", None, MetricDataType.Int64, getBdSeqNum())
    return payload