项目作者: commschamp

项目描述 :
CommsDSL schema-based definition of MQTT-SN protocol
高级语言: CMake
项目地址: git://github.com/commschamp/cc.mqttsn.commsdsl.git
创建时间: 2018-08-27T09:37:00Z
项目社区:https://github.com/commschamp/cc.mqttsn.commsdsl

开源协议:

下载


Overview

The MQTT-SN
protocol is a sibling of MQTT. While MQTT is designed to be
used over a reliable stream transport protocol (such as TCP/IP), the MQTT-SN
was designed to be used over a datagram transport protocol.

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 code generators from the commsdsl
repository generate full CMake projects.
Some of these generated projects are hosted as separate
repositories that can be viewed and used independently.

License

Please read License
section from commsdsl project.

How to Build

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.

This project also has external dependencies, it requires an access to
the COMMS Library and
code generators from commsdsl projects.
These dependencies are expected to be built independenty and access to them provided
via standard CMAKE_PREFIX_PATH and/or CMAKE_PROGRAM_PATH (for the binaries of
the code generators). There are also scripts (
script/prepare_externals.sh for Linux and
script/prepare_externals.bat for Windows)
which can help in preparation of these dependencies. They are also used
in configuration of the github actions.

The project’s cmake configuration options allow building
bindings to other high level programming languages using swig
and emscripten, see relevant commsdsl’s
documentation pages for details.

Linux Build

  1. $> cd /source/of/this/project
  2. $> mkdir build && cd build
  3. $> BUILD_DIR=$PWD CC=gcc CXX=g++ COMMON_INSTALL_DIR=$PWD/install COMMON_BUILD_TYPE=Release ../script/prepare_externals.sh
  4. $> cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$PWD/install -DCMAKE_PREFIX_PATH=$PWD/install
  5. $> make install

Windows Build

  1. $> cd C:\source\of\this\project
  2. $> mkdir build && cd build
  3. $> set BUILD_DIR=%cd%
  4. $> set GENERATOR="NMake Makefiles"
  5. $> set QTDIR=C:\Qt\5.15.2
  6. $> set COMMON_INSTALL_DIR=%cd%/install
  7. $> ..\script\prepare_externals.bat
  8. $> cmake .. -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release ^
  9. -DCMAKE_INSTALL_PREFIX=%cd%/install -DCMAKE_PREFIX_PATH=%cd%\install
  10. $> nmake install

Supported Compilers

Please read Supported Compilers
info from commsdsl project.

How to Build and Use Generated Code

Please read the
Generated CMake Project Walkthrough
documentation page for details on the generated project internals.

The release
artifacts contain doxygen generated documentation of the protocol definition.

Contact Information

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.