Core Projects
Repository | Details |
---|---|
COMMS Library | The core component of the ecosystem, allows protocol definition to be simple, declarative statements. |
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. |
cc.mqtt311.libs | MQTT v3.1.1 client library. |
cc.mqtt5.libs | MQTT v5 client library. |
.
Tools
Repository | Details |
---|---|
CommsChampion Tools | Plugin based tools to visualize protocol definition and debug exchange of the protocol messages. |
cc.demo1_protocol.cc_tools_plugin | The demo1 synthetic protocol plugin. |
cc.demo2_protocol.cc_tools_plugin | The demo2 synthetic protocol plugin. |
cc.demo3_protocol.cc_tools_plugin | The demo3 synthetic protocol plugin. |
cc.mqtt311_protocol.cc_tools_plugin | The MQTT v3.1.1 protocol plugin. |
cc.mqttsn_protocol.cc_tools_plugin | The MQTT-SN protocol plugin. |
cc.mqtt5_protocol.cc_tools_plugin | The MQTT v5 protocol plugin. |
cc.ublox_protocol.cc_tools_plugin | The U-blox (UBX) protocol plugin. |
cc.mqtt311_client_filter.cc_tools_plugin | The MQTT v3.1.1 client filter plugin. |
cc.mqtt5_client_filter.cc_tools_plugin | The MQTT v5 client filter plugin. |
.
Package Managers and 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.cmake | CommsChampion Ecosystem projects bundled into a single CMake one. Expected to be used in a signle ExternalProject_Add() invocation. |
.