- CommsChampion Ecosystem

Major Components

Repository Details
COMMS Library The core component of the ecosystem, allows protocol definition to be simple, declarative statements.
CommsChampion Tools Tools to visualize protocol definition and debug exchange of the protocol messages.
CommsDSL Specification The CommsDSL specification.
Code Generators CommsDSL schemas parsing and code generation tools.
Tutorial The official tutorial on how to define protocol, generate and use protocol definition code.

.

Synthetic Demo Protocols

Main Repository Generated Code Details
cc.demo1.commsdsl cc.demo1.generated Demo protocol to demonstrate definition of various fields as well as simple protocol framing.
cc.demo2.commsdsl cc.demo2.generated Demo protocol to demonstrate protocol versioning, where every message reports protocol version in its transport frame.
cc.demo3.commsdsl cc.demo3.generated Demo protocol to demonstrate protocol versioning, where one “connect” message reports protocol version for all the subsequent messages.

.

Real Life Open Protocols

Main Repository Generated Code Details
cc.mqtt311.commsdsl cc.mqtt311.generated Defines MQTT v3.1.1 protocol, where message ID shares the same byte with extra flags, that may define existence of the fields in message payload as well as influence how message needs to be processed.
cc.mqtt5.commsdsl cc.mqtt5.generated Defined MQTT v5.0 protocol. Similar to v3.1.1, but also adds a heterogeneous list of various properties.
cc.mqttsn.commsdsl cc.mqttsn.generated Defines MQTT-SN protocol, where field of remaining length of the message can have either 1 or 3 bytes length, depending on the value it contains.
cc.ublox.commsdsl cc.ublox.generated Defines UBX protocol used by various u-blox GPS receivers. The protocol itself is quite complex with hundreds of messages. It uses custom checksum calculation algorithms and injects multiple code snippets to fix incorrect or incomplete functionality available by default.

.

Binary Data Encoding / Decoding

Main Repository Generated Code Details
cc.asn1.commsdsl   Provides CommsDSL schema definition to allow ASN.1 encoding.
cc.x509.commsdsl cc.x509.generated Provides definition of the X.509 public key infrastructure certificate.

.

Protocol Handling Libraries

Repository Details
cc.mqttsn.libs MQTT-SN client and gateway libraries.

.

Support for Package Managers and Other Build Systems

Repository Details
meta-commschamp CommsChampion Ecosystem recipes provided as a layer of the yocto project.
cc.buildroot CommsChampion Ecosystem packages as an external customization of the main buildroot build tree.
cc.vcpkg CommsChampion Ecosystem packages as a ports overlay directory of the vcpkg package manager.
cc.conan CommsChampion Ecosystem packages packaging recipes for the Conan package manager.

.