CANopenSocket
THIS REPOSITORY IS OBSOLETE, ITS CONTENTS HAS BEEN MOVED TO:
CANopenSocket is a collection of CANopen tools and examples.
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/
Getting or updating the project
Clone the project from git repository and get submodules:
git clone https://github.com/CANopenNode/CANopenSocket.git
cd CANopenSocket
git submodule init
git submodule update
Update the project:
cd CANopenSocket
# make sure, project is clean (git status); changes should be committed (git gui)
git pull # or: git fetch -> gitk --all (inspect the changes) -> git merge
# git submodule init # if new git modules
git submodule update
Get/update other tools (EDSeditor):
cd tools
./get_tools.sh
Getting started
First information is in CANopenNode/README.
Basic getting started guide is available in CANopenNode/doc/gettingStarted.md
. If everything works there as expected, with virtual or real CAN, then CANopen network is established. With at least basic operation of: CAN reception, transmission, NMT, Heartbeat, Service Communication Objects (SDO).
Next is Basic CANopen Device example program with source code, custom Object Dictionary access functions and advanced CANopen gateway communication. See basicDevice/README.md.
CANopenSocket contents
- CANopenNode - free and open source CANopen Stack (git submodule)
- docs - CANopenNode documentation, generated by doxygen, available also online at https://canopennode.github.io/CANopenSocket/
- cocomm - Linux commmand line tool, which communicates with CANopen gateway device via local or TCP socket. Similar as
nc
tool available in Linux.make
the executable and type./cocomm --help
or see basicDevice/README.md for example usage. - canopencgi - CGI interface for Apache web server, experimental.
- tools
- EDSEditor - Object Dictionary Editor from https://github.com/robincornelius/libedssharp. Updated with
get_tools.sh
. - get_tools.sh - script for getting/updating the tools.
- update_docs.sh - script runs doxygen on CANopenNode and creates softlink index.html.
- run_canopend_candump.sh - script creates virtual CAN device
vcan0
and runscandump
andcanopend
with gateway interface on it.
- EDSEditor - Object Dictionary Editor from https://github.com/robincornelius/libedssharp. Updated with
- examples
- basicDevice - Example CANopenNode device with or without gateway interface. Includes example for different testing variables: 64-bit integers, real numbers, strings, domain, object oriented principle with C, etc. See basicDevice/README.md.
- test - Different CANopen testing tools
- libs/bats-* Bash Automated Testing System, included as git submodules.
- running_canopen - tests on running CANopen network, based on bats. On virtual or real CAN network. See test.md
- docker - Dockerfile with readme.
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.