Ejemplo n.º 1
0
def publishDeviceBirth():
    print "Publishing Device Birth"

    # Get the payload
    payload = sparkplug.getDeviceBirthPayload()

    # Add some device metrics
    addMetric(payload, "input/Device Metric0", AliasMap.Device_Metric0,
              MetricDataType.String, "hello device")
    addMetric(payload, "input/Device Metric1", AliasMap.Device_Metric1,
              MetricDataType.Boolean, True)
    addMetric(payload, "output/Device Metric2", AliasMap.Device_Metric2,
              MetricDataType.Int16, 16)
    addMetric(payload, "output/Device Metric3", AliasMap.Device_Metric3,
              MetricDataType.Boolean, True)

    # Create the UDT definition value which includes two UDT members and a single parameter and add it to the payload
    template = initTemplateMetric(payload, "My_Custom_Motor",
                                  AliasMap.My_Custom_Motor, "Custom_Motor")
    templateParameter = template.parameters.add()
    templateParameter.name = "Index"
    templateParameter.type = ParameterDataType.String
    templateParameter.string_value = "1"
    addMetric(template, "RPMs", None, MetricDataType.Int32,
              123)  # No alias in UDT members
    addMetric(template, "AMPs", None, MetricDataType.Int32,
              456)  # No alias in UDT members

    # Publish the initial data with the Device BIRTH certificate
    totalByteArray = bytearray(payload.SerializeToString())
    client.publish(
        "spBv1.0/" + myGroupId + "/DBIRTH/" + myNodeName + "/" + myDeviceName,
        totalByteArray, 0, False)
Ejemplo n.º 2
0
def publishBirths():
    print("Publishing Birth")

    # Create the NBIRTH payload
    payload = sparkplug.getNodeBirthPayload()

    # Add the Node Controls
    addMetric(payload, "Node Control/Next Server", None, MetricDataType.Boolean, False)
    addMetric(payload, "Node Control/Rebirth", None, MetricDataType.Boolean, False)
    addMetric(payload, "Node Control/Reboot", None, MetricDataType.Boolean, False)

    # Set up the device Parameters
    p = subprocess.Popen('uname -a', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
    for line in p.stdout.readlines():
        unameOutput = line,
    retVal = p.wait()
    p = subprocess.Popen('cat /proc/cpuinfo | grep Hardware', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
    for line in p.stdout.readlines():
        hardwareOutput = line,
    retVal = p.wait()
    p = subprocess.Popen('cat /proc/cpuinfo | grep Revision', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
    for line in p.stdout.readlines():
        revisionOutput = line,
    retVal = p.wait()
    p = subprocess.Popen('cat /proc/cpuinfo | grep Serial', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
    for line in p.stdout.readlines():
        serialOutput = line,
    retVal = p.wait()
    addMetric(payload, "Parameters/sw_version", None, MetricDataType.String, ''.join(unameOutput))
    addMetric(payload, "Parameters/hw_version", None, MetricDataType.String, ''.join(hardwareOutput))
    addMetric(payload, "Parameters/hw_revision", None, MetricDataType.String, ''.join(revisionOutput))
    addMetric(payload, "Parameters/hw_serial", None, MetricDataType.String, ''.join(serialOutput))

    # Publish the NBIRTH certificate
    byteArray = bytearray(payload.SerializeToString())
    client.publish("spBv1.0/" + myGroupId + "/NBIRTH/" + myNodeName, byteArray, 0, False)

    # Set up the DBIRTH with the input metrics
    payload = sparkplug.getDeviceBirthPayload()

    addMetric(payload, "Inputs/a", None, MetricDataType.Boolean, pibrella.input.a.read())
    addMetric(payload, "Inputs/b", None, MetricDataType.Boolean, pibrella.input.b.read())
    addMetric(payload, "Inputs/c", None, MetricDataType.Boolean, pibrella.input.c.read())
    addMetric(payload, "Inputs/d", None, MetricDataType.Boolean, pibrella.input.d.read())

    # Set up the output states on first run so Ignition and MQTT Engine are aware of them
    addMetric(payload, "Outputs/e", None, MetricDataType.Boolean, pibrella.output.e.read())
    addMetric(payload, "Outputs/f", None, MetricDataType.Boolean, pibrella.output.f.read())
    addMetric(payload, "Outputs/g", None, MetricDataType.Boolean, pibrella.output.g.read())
    addMetric(payload, "Outputs/h", None, MetricDataType.Boolean, pibrella.output.h.read())
    addMetric(payload, "Outputs/LEDs/green", None, MetricDataType.Boolean, pibrella.light.green.read())
    addMetric(payload, "Outputs/LEDs/red", None, MetricDataType.Boolean, pibrella.light.red.read())
    addMetric(payload, "Outputs/LEDs/yellow", None, MetricDataType.Boolean, pibrella.light.yellow.read())
    addMetric(payload, "button", None, MetricDataType.Boolean, pibrella.button.read())
    addMetric(payload, "buzzer_fail", None, MetricDataType.Boolean, 0)
    addMetric(payload, "buzzer_success", None, MetricDataType.Boolean, 0)

    # Publish the initial data with the DBIRTH certificate
    totalByteArray = bytearray(payload.SerializeToString())
    client.publish("spBv1.0/" + myGroupId + "/DBIRTH/" + myNodeName + "/" + mySubNodeName, totalByteArray, 0, False)
def publishDeviceBirth():
    print("Publishing Device Birth")

    # Get the payload
    payload = sparkplug.getDeviceBirthPayload()

    # Add some device metrics
    addMetric(payload, "input/Frame Number", AliasMap.Device_frame_numberx,
              MetricDataType.Int16, frame_numberx)
    addMetric(payload, "input/Number of Objects", AliasMap.Device_num_rectsx,
              MetricDataType.Int16, num_rectsx)
    addMetric(payload, "input/Vehicle count", AliasMap.Device_counter1,
              MetricDataType.Int16, counter1)
    addMetric(payload, "input/Person count", AliasMap.Device_counter2,
              MetricDataType.Int16, counter2)
    addMetric(payload, "output/Device Metric2", AliasMap.Device_Metric2,
              MetricDataType.Int16, 3)
    addMetric(payload, "output/Device Metric3", AliasMap.Device_Metric3,
              MetricDataType.Boolean, True)

    # Publish the initial data with the Device BIRTH certificate
    totalByteArray = bytearray(payload.SerializeToString())
    client.publish(
        "spBv1.0/" + myGroupId + "/DBIRTH/" + myNodeName + "/" + myDeviceName,
        totalByteArray, 0, False)
Ejemplo n.º 4
0
    def publishBirth(self, *args):
        self.logger.debug("Publishing Device Birth")

        # Create the node birth payload
        payload = sparkplug.getDeviceBirthPayload()

        # Add all metrics to payload, including custom properties
        for metric in self.metrics:
            m = sparkplug.addMetric(payload, metric.name, metric.alias,
                                    metric.datatype, metric.initial)

            super().add_properties_to_metric(m, metric.property_list)

        byteArray = bytearray(payload.SerializeToString())
        self.client.publish(
            "spBv1.0/" + self.node.group_id + "/DBIRTH/" + self.node.node_id +
            "/" + self.device_name, byteArray, 0, False)
Ejemplo n.º 5
0
def publishDeviceBirth(tpoics):
    print ("Publishing Device Birth")

    payload = sparkplug.getDeviceBirthPayload()

    addMetric(payload, "input/Device Metric0", AliasMap.Device_Metric0, MetricDataType.String, "hello device")
    addMetric(payload, "input/Device Metric1", AliasMap.Device_Metric1, MetricDataType.Boolean, True)
    addMetric(payload, "output/Device Metric2", AliasMap.Device_Metric2, MetricDataType.Int16, 16)
    addMetric(payload, "output/Device Metric3", AliasMap.Device_Metric3, MetricDataType.Boolean, True)
    template = initTemplateMetric(payload, "My_Custom_Motor", AliasMap.My_Custom_Motor, "Custom_Motor")
    templateParameter = template.parameters.add()
    templateParameter.name = "Index"
    templateParameter.type = ParameterDataType.String
    templateParameter.string_value = "1"
    addMetric(template, "RPMs", None, MetricDataType.Int32, 123)    # No alias in UDT members
    addMetric(template, "AMPs", None, MetricDataType.Int32, 456)    # No alias in UDT members

    return bytearray(payload.SerializeToString())
Ejemplo n.º 6
0
def publishDeviceBirth():
    print "Publishing Device Birth"

    # Get the payload
    payload = sparkplug.getDeviceBirthPayload()

    # Add some device metrics
    addMetric(payload, "input/Device Metric0", AliasMap.Device_Metric0, MetricDataType.String, "hello device")
    addMetric(payload, "input/Device Metric1", AliasMap.Device_Metric1, MetricDataType.Boolean, True)
    addMetric(payload, "output/Device Metric2", AliasMap.Device_Metric2, MetricDataType.Int16, 16)
    addMetric(payload, "output/Device Metric3", AliasMap.Device_Metric3, MetricDataType.Boolean, True)

    # Create the UDT definition value which includes two UDT members and a single parameter and add it to the payload
    template = initTemplateMetric(payload, "My_Custom_Motor", AliasMap.My_Custom_Motor, "Custom_Motor")
    templateParameter = template.parameters.add()
    templateParameter.name = "Index"
    templateParameter.type = ParameterDataType.String
    templateParameter.string_value = "1"
    addMetric(template, "RPMs", None, MetricDataType.Int32, 123)    # No alias in UDT members
    addMetric(template, "AMPs", None, MetricDataType.Int32, 456)    # No alias in UDT members

    # Publish the initial data with the Device BIRTH certificate
    totalByteArray = bytearray(payload.SerializeToString())
    client.publish("spBv1.0/" + myGroupId + "/DBIRTH/" + myNodeName + "/" + myDeviceName, totalByteArray, 0, False)
def publishDeviceBirth():
    print("Publishing Device Birth")

    # Get the payload
    payload = sparkplug.getDeviceBirthPayload()

    # Add some device metrics
    addMetric(payload, "input/Frame Number", AliasMap.Device_frame_numberx,
              MetricDataType.Int16, frame_numberx)
    addMetric(payload, "input/Device Metric0", AliasMap.Device_Metric0,
              MetricDataType.String, "hello device")
    addMetric(payload, "input/Device Metric1", AliasMap.Device_Metric1,
              MetricDataType.Boolean, True)
    addMetric(payload, "input/Number of Objects", AliasMap.Device_num_rectsx,
              MetricDataType.Int16, num_rectsx)
    addMetric(payload, "output/Device Metric2", AliasMap.Device_Metric2,
              MetricDataType.Int16, 0)
    addMetric(payload, "output/Device Input1", AliasMap.Device_Input1,
              MetricDataType.Int16, 0)
    addMetric(payload, "output/Device Input2", AliasMap.Device_Input2,
              MetricDataType.Int16, 0)
    addMetric(payload, "output/Device Input3", AliasMap.Device_Input3,
              MetricDataType.Int16, 0)
    addMetric(payload, "output/Device Input4", AliasMap.Device_Input4,
              MetricDataType.Int16, 0)
    addMetric(payload, "output/Device Input5", AliasMap.Device_Input5,
              MetricDataType.Int16, 0)
    addMetric(payload, "output/Device Input6", AliasMap.Device_Input6,
              MetricDataType.Int16, 0)
    addMetric(payload, "output/Device Input7", AliasMap.Device_Input7,
              MetricDataType.Int16, 0)
    addMetric(payload, "output/Device Input8", AliasMap.Device_Input8,
              MetricDataType.Int16, 0)
    addMetric(payload, "output/Device Input9", AliasMap.Device_Input9,
              MetricDataType.Int16, 0)
    addMetric(payload, "output/Device Input10", AliasMap.Device_Input10,
              MetricDataType.Int16, 0)
    addMetric(payload, "input/Device Output1", AliasMap.Device_Output1,
              MetricDataType.Int16, 0)
    addMetric(payload, "input/Device Output2", AliasMap.Device_Output2,
              MetricDataType.Int16, 0)
    addMetric(payload, "input/Device Output3", AliasMap.Device_Output3,
              MetricDataType.Int16, 0)
    addMetric(payload, "input/Device Output4", AliasMap.Device_Output4,
              MetricDataType.Int16, 0)
    addMetric(payload, "input/Device Output5", AliasMap.Device_Output5,
              MetricDataType.Int16, 0)
    addMetric(payload, "input/Device Output6", AliasMap.Device_Output6,
              MetricDataType.Int16, 0)
    addMetric(payload, "input/Device Output7", AliasMap.Device_Output7,
              MetricDataType.Int16, 0)
    addMetric(payload, "input/Device Output8", AliasMap.Device_Output8,
              MetricDataType.Int16, 0)
    addMetric(payload, "input/Device Output9", AliasMap.Device_Output9,
              MetricDataType.Int16, 0)
    addMetric(payload, "input/Device Output10", AliasMap.Device_Output10,
              MetricDataType.Int16, 0)
    addMetric(payload, "output/Device Metric3", AliasMap.Device_Metric3,
              MetricDataType.Boolean, True)
    addMetric(payload, "output/Device Metric4", AliasMap.Device_Metric4,
              MetricDataType.String, "Start")

    # Publish the initial data with the Device BIRTH certificate
    totalByteArray = bytearray(payload.SerializeToString())
    client.publish(
        "spBv1.0/" + myGroupId + "/DBIRTH/" + myNodeName + "/" + myDeviceName,
        totalByteArray, 0, False)
Ejemplo n.º 8
0
 def __initPayload(self):
     #Dependency with external library sparkplug
     self.__payload = sparkplug.getDeviceBirthPayload()