Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Overview:

The open source Sparkplug sample code can be downloaded here.  Sparkplug consist of three primary features in its definition.  The first is the MQTT topic namespace definition.  The second is the definition of the order and flow of MQTT messages to and from various MQTT clients in the system.  The final is the payload data format.  There are two Sparkplug data formats as of this writing which are explained below.  Both formats are supported by MQTT Engine.  Due to advanced features supported by Sparkplug B, MQTT Transmission uses it for its message encoding.

  • Sparkplug A
    • Based on the open source Eclipse Kura Google Protobuf payload definition.
    • Simple design that supports metrics with a name, a data type, and a value.
    • Lacks support for rich metadata around metrics such as timestamp per metric, historical messages, etc
    • No alias support
    • No template support
  • Sparkplug B
    • Open source Google Protobuf definition specifically designed for Sparkplug.
    • Simple design that supports metrics with a name, a data type, and a value.
    • Supports metadata around metrics for null values, timestamps per metric, historical messages, etc
    • Supports metric name aliases to reduce bandwith usage.
    • Supports templates for complex data types.

.  Navigate to the sparkplug_b directory. In it are two base directories that both show the basics of utilizing the Sparkplug specification to enable applications to communicate with Ignition and the MQTT Modules

...