private void publishBirth() { try { synchronized (seqLock) { // Reset the sequence number seq = 0; // Create the BIRTH payload and set the position and other metrics SparkplugBPayload payload = new SparkplugBPayload(new Date(), new ArrayList<Metric>(), getSeqNum(), newUUID(), null); payload.addMetric(new MetricBuilder("bdSeq", Int64, (long) bdSeq).createMetric()); payload.addMetric(new MetricBuilder("Node Control/Rebirth", Boolean, false).createMetric()); // Add a node level template definition and instance payload.addMetric( new MetricBuilder("simpleType", Template, newSimpleTemplate(true, null)).createMetric()); payload.addMetric(new MetricBuilder("mySimpleType", Template, newSimpleTemplate(false, "simpleType")) .createMetric()); // Add the complex template definition - All UDT definitions must be published in the NBIRTH payload.addMetrics(newComplexTemplateDefs()); System.out.println("Publishing Edge Node Birth"); executor.execute(new Publisher(NAMESPACE + "/" + groupId + "/NBIRTH/" + edgeNode, payload)); // Create the payload and add a complex Template instance payload = new SparkplugBPayload(new Date(), newComplexTemplateInstance(), getSeqNum(), newUUID(), null); System.out.println("Publishing Device Birth"); executor.execute( new Publisher(NAMESPACE + "/" + groupId + "/DBIRTH/" + edgeNode + "/" + deviceId, payload)); } } catch (Exception e) { e.printStackTrace(); } }
null); payload.addMetric(new MetricBuilder("bdSeq", Int64, (long)bdSeq).createMetric()); payload.addMetric(new MetricBuilder("Node Control/Rebirth", Boolean, false) .createMetric()); payload.addMetric(new MetricBuilder("MyNodeMetric", Int32, index) .timestamp(calendar.getTime()) .createMetric()); null); payload.addMetric(new MetricBuilder("MyDeviceMetric", Int32, index+50) .timestamp(calendar.getTime()) .createMetric());
} else if ("Outputs/0".equals(name)) { System.out.println("Outputs/0: " + value); outboundPayload.addMetric(new MetricBuilder("Inputs/0", Boolean, value).createMetric()); outboundPayload.addMetric(new MetricBuilder("Outputs/0", Boolean, value).createMetric()); System.out.println("Publishing updated value for Inputs/0 " + value); } else if ("Outputs/1".equals(name)) { System.out.println("Output1: " + value); outboundPayload.addMetric(new MetricBuilder("Inputs/1", Int32, value).createMetric()); outboundPayload.addMetric(new MetricBuilder("Outputs/1", Int32, value).createMetric()); System.out.println("Publishing updated value for Inputs/1 " + value); } else if ("Outputs/2".equals(name)) { System.out.println("Output2: " + value); outboundPayload.addMetric(new MetricBuilder("Inputs/2", Double, value).createMetric()); outboundPayload.addMetric(new MetricBuilder("Outputs/2", Double, value).createMetric()); System.out.println("Publishing updated value for Inputs/2 " + value);
null); payload.addMetric(new MetricBuilder("Device Control/Rebirth", Boolean, false) .createMetric()); payload.addMetric(new MetricBuilder("Inputs/0", Boolean, true).createMetric()); payload.addMetric(new MetricBuilder("Inputs/1", Int32, 0).createMetric()); payload.addMetric(new MetricBuilder("Inputs/2", Double, 1.23d).createMetric()); payload.addMetric(new MetricBuilder("Outputs/0", Boolean, true).createMetric()); payload.addMetric(new MetricBuilder("Outputs/1", Int32, 0).createMetric()); payload.addMetric(new MetricBuilder("Outputs/2", Double, 1.23d).createMetric()); payload.addMetric(new MetricBuilder("Properties/hw_version", String, HW_VERSION).createMetric()); payload.addMetric(new MetricBuilder("Properties/sw_version", String, SW_VERSION).createMetric()); payload.addMetric(new MetricBuilder("MyMetric", String, "My Value") .properties(propertySet) .createMetric());