.addMetric(new MetricBuilder("Node Control/Rebirth", MetricDataType.Boolean, true) .createMetric()) .createPayload()),
SparkplugBPayload payload = new SparkplugBPayloadBuilder(getNextSeqNum()) .setTimestamp(new Date()) .addMetric(new MetricBuilder("Up Time ms", MetricDataType.Int64, System.currentTimeMillis() - upTimeStart)
outboundPayloadBuilder.addMetric(new MetricBuilder("Node Control/Scan Rate ms", MetricDataType.Int32, scanRateMs).createMetric()); 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, pibrella.getOutputPin(PibrellaOutput.H).isHigh()).createMetric()); } else if (metric.getName().equals("Outputs/LEDs/green")) { outboundPayloadBuilder.addMetric(new MetricBuilder("Outputs/LEDs/green", MetricDataType.Boolean, pibrella.ledGreen().isOn()).createMetric()); } else if (metric.getName().equals("Outputs/LEDs/red")) { outboundPayloadBuilder.addMetric(new MetricBuilder("Outputs/LEDs/red", MetricDataType.Boolean, pibrella.ledRed().isOn()).createMetric()); } else if (metric.getName().equals("Outputs/LEDs/yellow")) { outboundPayloadBuilder.addMetric(new MetricBuilder("Outputs/LEDs/yellow",
.addMetric(new MetricBuilder("bdSeq", MetricDataType.Int64, bdSeq) .createMetric()) .addMetric(new MetricBuilder("Up Time ms", MetricDataType.Int64, System.currentTimeMillis() - upTimeStart) .createMetric()) .addMetric(new MetricBuilder("Node Control/Next Server", MetricDataType.Boolean, false) .createMetric()) .addMetric(new MetricBuilder("Node Control/Rebirth", MetricDataType.Boolean, false) .createMetric()) .addMetric(new MetricBuilder("Node Control/Reboot", MetricDataType.Boolean, false) .createMetric()) .addMetric(new MetricBuilder("Node Control/Scan Rate ms", MetricDataType.Int32, scanRateMs) .createMetric()) .addMetric(new MetricBuilder("Properties/Board Type", MetricDataType.String, SystemInfo.getBoardType().toString()) .createMetric()) .addMetric(new MetricBuilder("Properties/Hardware",
.addMetric(new MetricBuilder("bdSeq", MetricDataType.Int64, bdSeq)
/** * * @param payload * @return * @throws IOException */ public static SparkplugBPayload compress(SparkplugBPayload payload, CompressionAlgorithm algorithm) throws IOException, SparkplugException { logger.trace("Compressing payload"); SparkplugBPayloadEncoder encoder = new SparkplugBPayloadEncoder(); // Encode bytes byte[] encoded = encoder.getBytes(payload); byte[] compressed = null; Metric algorithmMetric = new MetricBuilder(METRIC_ALGORITHM, MetricDataType.String, algorithm.toString()) .createMetric(); // Switch over compression algorithm switch (algorithm) { case GZIP: compressed = GZipUtil.compress(encoded); break; case DEFLATE: compressed = deflateBytes(encoded); break; default: throw new SparkplugException("Unknown or unsupported algorithm " + algorithm); } // Wrap and return the payload return new SparkplugBPayloadBuilder(payload.getSeq()).setBody(compressed).setUuid(UUID_COMPRESSED) .addMetric(algorithmMetric).createPayload(); }
public void onStateChange(ButtonStateChangeEvent event) { try { synchronized (lock) { SparkplugBPayloadBuilder outboundPayloadBuilder = new SparkplugBPayloadBuilder(getNextSeqNum()) .setTimestamp(new Date()); if (event.getButton().getState() == ButtonState.PRESSED) { outboundPayloadBuilder.addMetric(new MetricBuilder("button", MetricDataType.Boolean, true).createMetric()); buttonCounter++; if (buttonCounter > buttonCounterSetpoint) { buttonCounter = 0; } outboundPayloadBuilder.addMetric(new MetricBuilder("button count", MetricDataType.Int32, buttonCounter).createMetric()); } else { outboundPayloadBuilder.addMetric(new MetricBuilder("button", MetricDataType.Boolean, false).createMetric()); } byte[] bytes = new SparkplugBPayloadEncoder().getBytes(outboundPayloadBuilder.createPayload()); client.publish(NAMESPACE + "/" + groupId + "/DDATA/" + edgeNode + "/" + deviceId, bytes, 0, false); } } catch (Exception e) { e.printStackTrace(); } } });
public SparkplugBPayload buildFromByteArray(byte[] bytes) throws Exception { SparkplugBProto.Payload protoPayload = SparkplugBProto.Payload.parseFrom(bytes); SparkplugBPayloadBuilder builder = new SparkplugBPayloadBuilder(protoPayload.getSeq()); // Set the timestamp if (protoPayload.hasTimestamp()) { builder.setTimestamp(new Date(protoPayload.getTimestamp())); } // Set the sequence number if (protoPayload.hasSeq()) { builder.setSeq(protoPayload.getSeq()); } // Set the Metrics for (SparkplugBProto.Payload.Metric protoMetric : protoPayload.getMetricsList()) { builder.addMetric(convertMetric(protoMetric)); } // Set the body if (protoPayload.hasBody()) { builder.setBody(protoPayload.getBody().toByteArray()); } // Set the body if (protoPayload.hasUuid()) { builder.setUuid(protoPayload.getUuid()); } return builder.createPayload(); }
public void handleGpioPinDigitalStateChangeEvent(GpioPinDigitalStateChangeEvent event) { try { synchronized (lock) { SparkplugBPayloadBuilder outboundPayloadBuilder = new SparkplugBPayloadBuilder(getNextSeqNum()) .setTimestamp(new Date()); if (event.getState() == PinState.HIGH) { outboundPayloadBuilder.addMetric(new MetricBuilder("Inputs/d", MetricDataType.Boolean, true).createMetric()); } else { outboundPayloadBuilder.addMetric(new MetricBuilder("Inputs/d", MetricDataType.Boolean, false).createMetric()); } byte[] bytes = new SparkplugBPayloadEncoder().getBytes(outboundPayloadBuilder.createPayload()); client.publish(NAMESPACE + "/" + groupId + "/DDATA/" + edgeNode + "/" + deviceId, bytes, 0, false); } } catch (Exception e) { e.printStackTrace(); } } });
public void handleGpioPinDigitalStateChangeEvent(GpioPinDigitalStateChangeEvent event) { try { synchronized (lock) { SparkplugBPayloadBuilder outboundPayloadBuilder = new SparkplugBPayloadBuilder(getNextSeqNum()) .setTimestamp(new Date()); if (event.getState() == PinState.HIGH) { outboundPayloadBuilder.addMetric(new MetricBuilder("Inputs/c", MetricDataType.Boolean, true).createMetric()); } else { outboundPayloadBuilder.addMetric(new MetricBuilder("Inputs/c", MetricDataType.Boolean, false).createMetric()); } byte[] bytes = new SparkplugBPayloadEncoder().getBytes(outboundPayloadBuilder.createPayload()); client.publish(NAMESPACE + "/" + groupId + "/DDATA/" + edgeNode + "/" + deviceId, bytes, 0, false); } } catch (Exception e) { e.printStackTrace(); } } });
public void handleGpioPinDigitalStateChangeEvent(GpioPinDigitalStateChangeEvent event) { try { synchronized (lock) { SparkplugBPayloadBuilder outboundPayloadBuilder = new SparkplugBPayloadBuilder(getNextSeqNum()) .setTimestamp(new Date()); if (event.getState() == PinState.HIGH) { outboundPayloadBuilder.addMetric(new MetricBuilder("Inputs/b", MetricDataType.Boolean, true).createMetric()); } else { outboundPayloadBuilder.addMetric(new MetricBuilder("Inputs/b", MetricDataType.Boolean, false).createMetric()); } byte[] bytes = new SparkplugBPayloadEncoder().getBytes(outboundPayloadBuilder.createPayload()); client.publish(NAMESPACE + "/" + groupId + "/DDATA/" + edgeNode + "/" + deviceId, bytes, 0, false); } } catch (Exception e) { e.printStackTrace(); } } });
public void handleGpioPinDigitalStateChangeEvent(GpioPinDigitalStateChangeEvent event) { try { synchronized (lock) { SparkplugBPayloadBuilder outboundPayloadBuilder = new SparkplugBPayloadBuilder(getNextSeqNum()) .setTimestamp(new Date()); if (event.getState() == PinState.HIGH) { outboundPayloadBuilder.addMetric(new MetricBuilder("Inputs/a", MetricDataType.Boolean, true).createMetric()); } else { outboundPayloadBuilder.addMetric(new MetricBuilder("Inputs/a", MetricDataType.Boolean, false).createMetric()); } byte[] bytes = new SparkplugBPayloadEncoder().getBytes(outboundPayloadBuilder.createPayload()); client.publish(NAMESPACE + "/" + groupId + "/DDATA/" + edgeNode + "/" + deviceId, bytes, 0, false); } } catch (Exception e) { e.printStackTrace(); } } });
private SparkplugBPayloadBuilder addBdSeqNum(SparkplugBPayloadBuilder payload) throws Exception { if (payload == null) { payload = new SparkplugBPayloadBuilder(); } if (bdSeq == 256) { bdSeq = 0; } payload.addMetric(new MetricBuilder("bdSeq", Int64, (long) bdSeq).createMetric()); bdSeq++; return payload; }
private SparkplugBPayloadBuilder addBdSeqNum(SparkplugBPayloadBuilder payload) throws Exception { if (payload == null) { payload = new SparkplugBPayloadBuilder(); } if (bdSeq == 256) { bdSeq = 0; } payload.addMetric(new MetricBuilder("bdSeq", Int64, (long)bdSeq).createMetric()); bdSeq++; return payload; }
private SparkplugBPayloadBuilder addBdSeqNum(SparkplugBPayloadBuilder payload) throws Exception { if (payload == null) { payload = new SparkplugBPayloadBuilder(); } if (bdSeq == 256) { bdSeq = 0; } payload.addMetric(new MetricBuilder("bdSeq", Int64, (long)bdSeq).createMetric()); bdSeq++; return payload; }