- CommsChampion Ecosystem

Mastering Protocol Definition

  1. Go thoroughly through the official tutorials. They will introduce the concepts of the CommsDSL schema, commsdsl2comms code generation, and interoperability with the COMMS Library.

  2. Read through the online CommsDSL Specification to understand full capabilities of the schema definition language.

  3. 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.
  4. Read through the Manual of commsdsl2comms, especially to understand custom code injection functionality.

  5. Read through the Generated Project Walkthrough to understand the structure of the generated code.

  6. Read through the Protocol Definition Debugging Tips to better understand how to debug unexpected protocol definition behaviour.

Mastering CommsChampion Tools

  1. Read through the How to Use CommsChampion Tools wiki page to understand what they are and how to use them.

  2. Read through the project’s README.md and the build instructions in particular.

  3. Read the Visual Protocol Analysis documentation page to understand how to generate the code and build the protocol plugin for the CommsChampion Tools.

  4. Read the Manual of commsdsl2tools_qt.

  5. Review how the commsdsl2tools_qt is invoked in the provided projects like cc.demo1.commsdsl.

  6. Review the relevant generated code and its CMakeLists.txt in particular.

  7. Read the relevant doxygen documentation to understand how to develop extra plugins.

  8. For developing new plugins use the following code / projects for reference:

Mastering Other Programming Languages Support

  1. Learn and understand what SWIG is.

  2. Read the Other Languages Support documentation page.

  3. Read the Manual of commsdsl2swig.

Mastering WebAssembly Support

  1. Learn and understand what emscripten toolchain is.

  2. Read the WebAssembly Support documentation page.

  3. Read the Manual of commsdsl2emscripten.

Mastering Fuzz Testing of the Protocol Definition Code

  1. Learn fuzz testing tools like AFL or AFL++

  2. Read the Testing Generated Protocol Code documentation page.

  3. Read the Manual of commsdsl2test.

Online Specs and API References