- 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.

.