CANopen (CiA 301) and CANopen FD on go-canbus: object dictionary, SDO and USDO, NMT, heartbeat, PDOs and MPDOs, SYNC, EMCY, TIME, LSS, a complete device and a CiA 302 network manager, EDS/DCF files, typed Go from an EDS and the CiA 402 drive profile. No cgo.
go get github.com/otfabric/go-canopenMonitor, record, convert and replay CAN, CAN FD and CAN XL traffic, decode and encode with DBC, KCD or ARXML, run ISO-TP, simulate a database and test under faults. Passive by default; transmitting on a real bus needs --yes.
The CAN transport for Go: classical CAN, CAN FD and CAN XL frames on Linux SocketCAN, serial-line (slcan) adapters on every OS and a virtual bus, with ISO-TP, capture and replay in seven trace formats, and DBC, KCD and ARXML databases with a signal codec and a Go code generator. go-canopen runs on it. No cgo.
go get github.com/otfabric/go-canbusSeven independent CAN references in containers behind one contract: can-utils with the kernel's ISO-TP, python-can, socketcan-rs, Scapy, python-can-isotp, cantools and canmatrix, on Linux virtual CAN.
Three independent CANopen stacks in containers behind one contract, as devices and masters: CANopenNode, Lely CANopen and python canopen, with EDS checkers, LSS, MPDOs and the CiA 302 boot-up, on Linux virtual CAN.