CANoopEn – CANopen stack C++/OOP with CiA 417

From CANopen-Lift
Jump to navigation Jump to search

Manufacturer

Xyntos GmbH

Profil

CiA-302 and CiA-417

Description

CANoopEn is an open source CANopen protocol stack written in modern, object-oriented C++17 and released under the Apache License 2.0. It supports the CiA 417 lift application profile on top of a complete CiA 301 implementation: the profile COB-ID scheme and helpers for mapping the virtual I/O of lift devices are part of the stack.

The stack is completely target-independent and runs on any hardware architecture, from bare-metal microcontrollers to RTOS-based systems. No dynamic memory allocation is used, and every service can be compiled out to fit small flash budgets. The object dictionary is generated from a standard EDS file (CiA 306) with the included Eds2Od tool and accessed in a fully type-safe way. A comprehensive unit test suite runs on every commit.

Ready-to-build sample projects demonstrate a CiA 417 hall call panel and the matching call controller: a hall call is registered on one device and acknowledged by the other. The samples are available for STM32 (bare-metal and FreeRTOS) and for Linux (SocketCAN, including virtual vcan interfaces). The call sequence between the two devices was verified with a CANopen-Lift analyzer.

Functions

  • CiA 417 lift application profile: profile COB-ID mapping, virtual I/O mapping helpers
  • NMT slave and master state machines, heartbeat producer/consumer, NMT boot process (CiA 302-2)
  • SDO server and client: expedited, segmented and block transfer
  • PDO and MPDO (SAM/DAM), SYNC, TIME, EMCY
  • LSS master and slave (CiA 305), run/error indicators (CiA 303-3)
  • Object dictionary generated from standard EDS files (CiA 306) with the Eds2Od tool
  • Target-independent, no dynamic memory allocation, services can be compiled out

State

Available — open source under the Apache License 2.0.

Picture

Links