Tools for CANoopEn, a CANopen protocol stack written in clean, object-oriented C++17.
Eds2Od generates the C++ object dictionary class of the CANoopEn stack from a standard CANopen EDS file (CiA 306):
Eds2Od <eds-file> <output-cpp> <output-hpp>
Maintain only the EDS file — for example with a free graphical editor — and regenerate after every change. On the first run complete default files are generated; these can be adapted freely, because later runs replace only the code between the generated-code markers:
// *** BEGIN GENERATED CODE (Eds2Od) ***
// *** END GENERATED CODE ***The generator emits one typed entry member per EDS object, the constructor initializer list, all registrations including the PDO mappings, and a NumberOfOdEntries constant with a static_assert against CoSettings::MaxNumberOfOdEntries — a dictionary that outgrows the configured capacity is a compile error.
Ready-to-run executables for Windows and Linux (x64 and Arm64) are on the releases page. They are self-contained single files — no .NET runtime required.
Requires the .NET SDK 10:
Build\Build.cmd <major>.<minor>
publishes all four platforms into Build\Exe\<runtime>.
Full documentation of the tool and the stack: CANoopEn.net.
Apache License, Version 2.0 — see LICENSE.
Developed and maintained by Xyntos GmbH.