public void messageArrived(String topic, MqttMessage message) throws Exception { System.out.println("Message Arrived on topic " + topic); SparkplugBPayloadDecoder decoder = new SparkplugBPayloadDecoder(); SparkplugBPayload inboundPayload = decoder.buildFromByteArray(message.getPayload()); // Debug for (Metric metric : inboundPayload.getMetrics()) { System.out.println("Metric " + metric.getName() + "=" + metric.getValue()); } String[] splitTopic = topic.split("/"); if (splitTopic[0].equals(NAMESPACE) && splitTopic[1].equals(groupId) && splitTopic[2].equals("NCMD") && splitTopic[3].equals(edgeNode)) { for (Metric metric : inboundPayload.getMetrics()) { if ("Node Control/Rebirth".equals(metric.getName()) && ((Boolean)metric.getValue())) { publishBirth(); } else { System.out.println("Unknown Node Command NCMD: " + metric.getName()); } } } }
System.out.println("Metric " + metric.getName() + "=" + metric.getValue()); && splitTopic[3].equals(edgeNode)) { for (Metric metric : inboundPayload.getMetrics()) { if ("Node Control/Rebirth".equals(metric.getName()) && ((Boolean) metric.getValue())) { publishBirth(); } else { System.out.println("TODO - handle writes to tag: " + metric.getName()); for (Metric metric : inboundPayload.getMetrics()) { System.out.println("TODO - handle writes to tag: " + metric.getName());
System.out.println("Metric " + metric.getName() + "=" + metric.getValue()); splitTopic[3].equals(edgeNode)) { for (Metric metric : inboundPayload.getMetrics()) { if ("Node Control/Rebirth".equals(metric.getName()) && ((Boolean)metric.getValue())) { publishBirth(); } else { System.out.println("Unknown Node Command NCMD: " + metric.getName()); null); for (Metric metric : inboundPayload.getMetrics()) { String name = metric.getName(); Object value = metric.getValue(); if ("Device Control/Rebirth".equals(metric.getName()) && ((Boolean)metric.getValue())) { publishDeviceBirth(); } else if ("Outputs/0".equals(name)) {
if (metric.getName().equals(METRIC_ALGORITHM)) { config.setAlgorithm(CompressionAlgorithm.valueOf(metric.getValue().toString()));
System.out.println("Metric: " + metric.getName() + " :: " + metric.getValue()); if (metric.getName().equals("Node Control/Next Server")) { System.out.println("Received a Next Server command."); } else if (metric.getName().equals("Node Control/Rebirth")) { publishBirth(); } else if (metric.getName().equals("Node Control/Reboot")) { System.out.println("Received a Reboot command."); } else if (metric.getName().equals("Node Control/Scan Rate ms")) { scanRateMs = (Integer) metric.getValue(); if (scanRateMs < 100) { System.out.println("Metric: " + metric.getName() + " :: " + metric.getValue()); if (metric.getName().equals("Outputs/e")) { pibrella.getOutputPin(PibrellaOutput.E).setState((Boolean) metric.getValue()); outboundPayloadBuilder.addMetric(new MetricBuilder("Outputs/e", MetricDataType.Boolean, pibrella.getOutputPin(PibrellaOutput.E).isHigh()).createMetric()); } else if (metric.getName().equals("Outputs/f")) { pibrella.getOutputPin(PibrellaOutput.F).setState((Boolean) metric.getValue()); outboundPayloadBuilder.addMetric(new MetricBuilder("Outputs/f", MetricDataType.Boolean, pibrella.getOutputPin(PibrellaOutput.F).isHigh()).createMetric()); } else if (metric.getName().equals("Outputs/g")) { pibrella.getOutputPin(PibrellaOutput.G).setState((Boolean) metric.getValue()); outboundPayloadBuilder.addMetric(new MetricBuilder("Outputs/g", MetricDataType.Boolean, pibrella.getOutputPin(PibrellaOutput.G).isHigh()).createMetric()); } else if (metric.getName().equals("Outputs/h")) { pibrella.getOutputPin(PibrellaOutput.H).setState((Boolean) metric.getValue()); outboundPayloadBuilder.addMetric(new MetricBuilder("Outputs/h", MetricDataType.Boolean,
protoMsg.addMetrics(convertMetric(metric)); } catch(Exception e) { logger.error("Failed to add metric: " + metric.getName()); throw new RuntimeException(e);
Metric templateMetric = convertMetric(protoTemplateMetric); if (logger.isTraceEnabled()) { logger.trace("Setting template parameter name: " + templateMetric.getName() + ", type: " + templateMetric.getDataType() + ", value: " + templateMetric.getValue());
builder.setName(metric.getName());
public MetricBuilder(Metric metric) throws SparkplugException { this.name = metric.getName(); this.alias = metric.getAlias(); this.timestamp = metric.getTimestamp(); this.dataType = metric.getDataType(); this.isHistorical = metric.isHistorical(); this.isTransient = metric.isTransient(); this.metaData = metric.getMetaData() != null ? new MetaDataBuilder(metric.getMetaData()).createMetaData() : null; this.properties = metric.getMetaData() != null ? new PropertySetBuilder(metric.getProperties()).createPropertySet() : null; switch (dataType) { case DataSet: this.value = metric.getValue() != null ? new DataSetBuilder((DataSet) metric.getValue()).createDataSet() : null; break; case Template: this.value = metric.getValue() != null ? new TemplateBuilder((Template) metric.getValue()).createTemplate() : null; break; default: this.value = metric.getValue(); } }