Mastering Protocol Definition
-
Go thoroughly through the official tutorials. They will introduce the concepts of the CommsDSL schema, commsdsl2comms code generation, and interoperability with the COMMS Library.
-
Read through the online CommsDSL Specification to understand full capabilities of the schema definition language.
-
Read through the COMMS library documentation to properly understand the code generated by the commsdsl2comms. It contains two major tutorial pages:
- How to Use Defined Custom Protocol - it explains how to customize the protocol definition for the end application needs and how to integrate the protocol definition into the application business logic.
- How to Define New Custom Protocol - it explains how to define custom communication protocol from scratch and can be very useful when it comes to implementing custom code when the generated code is incomplete and/or incorrect.
-
Read through the Manual of commsdsl2comms, especially to understand custom code injection functionality.
-
Read through the Generated Project Walkthrough to understand the structure of the generated code.
-
Read through the Protocol Definition Debugging Tips to better understand how to debug unexpected protocol definition behaviour.
Mastering CommsChampion Tools
-
Read through the How to Use CommsChampion Tools wiki page to understand what they are and how to use them.
-
Read through the project’s README.md and the build instructions in particular.
-
Read the Visual Protocol Analysis documentation page to understand how to generate the code and build the protocol plugin for the CommsChampion Tools.
-
Read the Manual of commsdsl2tools_qt.
-
Review how the commsdsl2tools_qt is invoked in the provided projects like cc.demo1.commsdsl.
-
Review the relevant generated code and its CMakeLists.txt in particular.
-
Read the relevant doxygen documentation to understand how to develop extra plugins.
-
For developing new plugins use the following code / projects for reference:
- built-in plugins
- cc.mqtt5_client_filter.cc_tools_plugin - “CC MQTT v5 Client Filter” plugin.
Mastering Other Programming Languages Support
-
Learn and understand what SWIG is.
-
Read the Other Languages Support documentation page.
-
Read the Manual of commsdsl2swig.
Mastering WebAssembly Support
-
Learn and understand what emscripten toolchain is.
-
Read the WebAssembly Support documentation page.
-
Read the Manual of commsdsl2emscripten.
Mastering Fuzz Testing of the Protocol Definition Code
-
Read the Testing Generated Protocol Code documentation page.
-
Read the Manual of commsdsl2test.
Online Specs and API References
-
COMMS Library - Doxygen documentation of the comms project.
-
CommsChampion Tools - Doxygen documentation of the cc_tools_qt library.
-
MQTT v3.1.1 Client Library - Doxygen documentation of the client library from the cc.mqtt311.libs project.
-
MQTT v5 Client Library - Doxygen documentation of the client library from the cc.mqtt5.libs project.
-
MQTT-SN Client Library - Doxygen documentation of the client library from the cc.mqttsn.libs project.
-
MQTT-SN Gateway Library - Doxygen documentation of the gateway library from the cc.mqttsn.libs project.