go-canopen
This packagego-canopen is an implementation of the CANopen protocol (CiA 301) written entirely in pure golang. Its goal isIt aims to be simple, yet and efficient. ItThis package can act as abe used for master on the bususage but it also supports implementation ofcreating regular canopen nodes.
Features
All the main components of CiA 301 are supported, these include :
- SDO server/client
- NMT master/slave
- HB producer/consumer
- TPDO/RPDO
- EMERGENCY producer/consumer
- SYNC producer/consumer
- TIME
CiA 309 (Network)
Partial support also exists for CiA 309, specifically :
- HTTP gateway
This implementationgo-canopen does not require the use of an external tool to generate some source code from an EDS file. EDS files can be loaded dynamically from disk to create local nodes with default supported objects.
Supported CAN transceivers
Currently this package only supports socketcan using : brutella/can However it can easily extended by creating your own driver. The following interface needs to be implemented