Skip to content

CANopenNode/CANopenSocket

Repository files navigation

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 runs candump and canopend with gateway interface on it.
  • 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.