New release: v2.2.5, v2.1.7 and v2.0.8

2 minute read

v2.2.5, v2.1.7 and v2.0.8 have just been released. These are minor releases containing only bugfixes and minor improvements.

Bug fixes

The following bugs have been fixed in all three versions:

  • Receive-PDO services now interpret the value of object 1007h (Synchronous window length) as microseconds instead of milliseconds.
  • Transmit-PDO (TPDO) services now ignore the value of object 1007h. Proper handling of the synchronous window requires support for a user-defined “sampling” step before transmitting PDOs. This will be added in the next release.
  • Acyclic (event-driven) TPDOs (transmission type 00h) now ignore the event-timer, as specified in CiA 301.
  • RTR-only (synchronous) TPDOs (transmission type FCh) now ignore RTR frames if no PDO has been buffered by a previous SYNC event.
  • An empty UploadFile attribute now results in an empty value instead of a file-not-found error during an SDO upload (read) request.
  • The ev::when_all() and ev::when_any() function overloads now distinguish between a pair of ev::Futures and a pair of iterators.

The following additional issues have been addressed in v2.2.5:

  • Some non-compliant devices never send a boot-up message, which results in the master never starting the NMT ‘boot slave’ process for those nodes. The user can now manually trigger the boot-up process with the Boot() method of the master and driver classes.
  • If a slave restarts during the boot-up process, the Client-SDO now remains available for use by the application (or driver).
  • canopen::BasicMaster now has a protected IsConfig() method which can be used to check if a remote node is configuring (i.e., i.e., the ‘update configuration’ step of the NMT ‘boot slave’ process is reached but not yet completed).
  • The --disable-cython has been added to the configure script. Using this option will disable the (deprecated) Python bindings while still allowing the DCF tools to be built.
  • dcfchk and dcfgen now correctly handle implicitly defined PDOs.
  • dcfgen now correctly handles objects mapped to multiple PDOs.
  • The configuration_file attribute has been added to the slave section of the YAML file used by dcfgen. This attribute can be used to override the name of the configuration file for the slave as it appears in object 1F22h in master.dcf. Note that it has no effect on the name of the .bin file generated by dcfgen.
  • Object 1F22h is omitted from master.dcf by dcfgen if no slaves use a configuration file, either because no .bin files are generated or because the configuration_file attribute is explicitly set to an empty string.


You can download the source from GitLab or the Ubuntu packages from our PPA.