Skip to content
This repository has been archived by the owner on Apr 1, 2024. It is now read-only.
/ CANopen-monitor Public archive

An NCurses-based TUI application for tracking activity over the CAN bus and decoding messages with provided EDS/OD files.

License

Notifications You must be signed in to change notification settings

oresat/CANopen-monitor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CANOpen Monitor

license CodeQL pypi read the docs unit tests deployment bugs feature requests

An NCurses-based TUI application for tracking activity over the CAN bus and decoding messages with provided EDS/OD files.


Quick Start

Install

$ pip install canopen-monitor

Run

Run the monitor, binding to can0

$ canopen-monitor -i can0

Use this for an extensive help menu

$ canopen-monitor --help


Configuration

The default configurations provided by CANOpen Monitor can be found in canopen_monitor/assets. These are the default assets provided. At runtime these configs are copied to ~/.config/canopen-monitor where they can be modified and the changes will persist.

EDS files are loaded from ~/.cache/canopen-monitor


Development and Contribution

Documentation

Check out our Read The Docs pages for more info on the application sub-components and methods.

Pre-Requisites

  • Linux 4.11 or greater (any distribution)

  • Python 3.8.5 or higher (pyenv is recommended for managing different python versions, see pyenv homepage for information)

Install Locally

Setup a virtual CAN signal generator

$ sudo apt-get install can-utils

Start a virtual CAN

$ sudo ip link add dev vcan0 type vcan

$ sudo ip link set up vcan0

Clone the repo

$ git clone https://github.com/Boneill3/CANopen-monitor.git

$ cd CANopen-monitor

$ pip install -e .[dev]

(Note: the -e flag creates a symbolic-link to your local development version. Set it once, and forget it)

Generate random messages with socketcan-dev

$ chmod 700 socketcan-dev

$ ./socketcan-dev.py --random-id --random-message -r

Start the monitor

$ canopen-monitor

Create documentation locally

$ make -C docs clean html

(Note: documentation is configured to auto-build with ReadTheDocs on every push to master)


Message Types + COB ID Ranges:

Abridged Table:
Name COB ID Range
SYNC 080
EMCY 080 + NodeID
TPDO1 180 + NodeID
RPDO1 200 + NodeID
TPDO2 280 + NodeID
RPDO2 300 + NodeID
TPDO3 380 + NodeID
RPDO3 400 + NodeID
TPDO4 480 + NodeID
RPDO4 500 + NodeID
TSDO 580 + NodeID
RSDO 600 + NodeID
NMT (Heartbeat) 700 + NodeID