Python bindings for Inter-Module Communication Protocol (IMC) used to communicate between modules in the LSTS toolchain.
Precompiled wheels are available from PyPi, compiled against the standard IMC message set (LSTS). If your project does not use custom IMC messages, these wheels should be sufficient.
pip install imcpy
Check the release notes or pypi for the precompiled architectures and python versions.
git clone --recursive https://github.com/oysstu/imcpy.git
This includes the pybind11 submodule.
python3 setup.py install
If you use the system python and only want to install for a single user, you can add --user to the install command without needing administrator rights. On Windows, the Windows SDK must be installed with Visual Studio and the CMake executable must be on the system PATH.
Replace the dune/imc submodules with the target versions
A config file named whitelist.cfg can be placed in the root folder to only create bindings for a subset of the IMC messages. This can be necessary when compiling on embedded systems, as the linker consumes much memory for the full message set. If an unknown message is parsed, it will be returned as the Message baseclass rather than a specialized message. Look at minimal_whitelist.cfg for a set of messages that should always be included.