MQTT is a machine-to-machine (M2M)/"Internet of Things" connectivity protocol. This project implements all the messages from the protocol specification v5 .
The protocol is defined in the schema file using CommsDSL. The commsds2comms code generator from commsdsl project is used to generate C++11 code of the protocol implementation.
The src folder contains additional and/or overriding default functionality code snippets, that get injected into the generated code.
The generated CMake project of this protocol definition is hosted and can be viewed at cc.mqtt5.generated
Please read License section from commsdsl project.
This project uses CMake as its build system. Please open main CMakeLists.txt file and review available options as well as mentioned available parameters, which can be used in addition to standard ones provided by CMake itself, to modify the default build.
The commsdsl2comms application from commsdsl project is used to generate appropriate C++ code. If path to externally built commsdsl2comms is not provided, then this project will build the latter itself.
The commsdsl2comms application (if built internally) requires
Boost library.
In case Boost libraries are not installed in expected default location
(mostly happens on Windows systems), use variables described in
CMake documentation
to help CMake find required libraries and headers.
It is recommended to use -DBoost_USE_STATIC_LIBS=ON
parameter to force
linkage with static Boost libraries.
If code generation output directory is not provided, it defaults to
output
subdirectory of the one used to build the project.
$> cd /source/of/this/project
$> mkdir build && cd build
$> cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$PWD/install ..
$> make
$> cd C:\source\of\this\project
$> mkdir build && cd build
$> cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=%cd%/install \
-DBOOST_ROOT="C:\Libraries\boost_1_65_1" -DBoost_USE_STATIC_LIBS=ON ..
$> nmake
Please read Supported Compilers info from commsdsl project.
Please read the Generated CMake Project Walkthrough wiki page for details on the generated project internals.
The release artifacts contain doxygen generated documentation of the protocol definition.
For bug reports, feature requests, or any other question you may open an issue here in github or e-mail me directly to: arobenko@gmail.com. I usually respond within 24 hours.