CANopenDemo
CANopenNode demo, tutorial and testing
CANopenDemo

CANopenDemo includes demo program with CANopenNode, tutorial and testing tools.

It is based on CANopenNode, which is free and open source CANopen Stack and is included as a git submodule.

CANopen is the internationally standardized (EN 50325-4) (CiA301) CAN-based higher-layer protocol for embedded control system. For more information on CANopen see http://www.can-cia.org/

CANopenDemo homepage is https://github.com/CANopenNode/CANopenDemo

Getting or updating the project

Clone the project from git repository and get submodules:

git clone https://github.com/CANopenNode/CANopenDemo.git
cd CANopenDemo
git submodule update --init --recursive

There are several git submodules in CANopenDemo, see file .gitmodules. Some submodules, like CANopenLinux includes own git submodule CANopenNode, which is also updated with the above command.

If repositories are clean, the project can be updated by the following commands:

cd CANopenDemo
git pull
git submodule update --init --recursive

Object Dictionary Editor

The latest binaries of the CANopenEditor is included as a git submodule. Just run the EDSEditor.exe as a GUI application. You can open the demoDevice.xdd file, make changes according to your needs, export demoDevice.eds or demoDevice.md file, generate C source files for object dictionary (OD.h and OD.c), etc.

CANopen demoDevice

CANopen demoDevice can run on different target devices. It contains object dictionary with most common communication parameters and some additional manufacturer specific and device profile parameters. Simple example program run from application interface and shows some principles of CANopenNode usage.

See demo/README.md.

CANopenLinux

CANopenLinux is a CANopen stack running on Linux devices. It has full CANopen functionality with additional CANopen ASCII command interface (gateway) It can be used as a commander for other CANopen devices: NMT master, LSS master, SDO client, etc.

See CANopenLinux/README.md.

Tutorial

CANopen testing

Tests on Running CANopen network are implemented with two CANopenNode devices, running on CAN interface. First is CANopenLinux device with gateway interface, second is CANopen demoDevice.

Tests are run in Linux command line with Bash Automated Testing System - BATS, which is included in CANopenDemo as three git submodules.

See test/README.md.

Html documentation

CANopenNode.github.io is a git submodule with html documentation for CANopenDemo, CANopenNode and other devices. It is available also online at https://canopennode.github.io. Documentation is generated by doxygen. Documentation is generated separately for: CANopenNode, CANopenLinux (+ other target devices) and CANopenDemo. There are some links in the menu between different documentations. CANopenNode also contains tagfile which enables links to it from CANopenLinux and CANopenDemo.

To update the documentation of the CANopenNode.github.io install tools and generate all files:

sudo apt install doxygen graphviz pdf2svg
./update_docs.sh

License

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.