CANopen implementation for Linux SocketCAN with master command interface.
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/
THIS RELEASE OF CANopenSocket CONTAINS NEW, UNFINISHED EDITION OF CANopenNode V4. PDO AND SOME OTHER PARTS ARE UNFINISHED.
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 update
Get/update other tools (EDSeditor):
cd tools ./get_tools.sh
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.
nctool available in Linux.
makethe executable and type
./cocomm --helpor see basicDevice/README.md for example usage.
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
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.