Skip to main content

A utility for displaying and tracking activity over the CAN bus.

Project description

CANOpen Monitor

License PyPi Trello Unit Tests Build Issues

A utility for displaying and tracking activity over the CAN bus.


Run App

$ canopen-monitor


Install via PyPi

$ pip3 install canopen-monitor


Install Locally

Build the CANOpen Monitor module:

$ python3 setup.py sdist bdist_wheel

Install for current user only:

$ python -m pip install dist/*.whl

Install for all users:

$ sudo python -m pip install dist/*.whl

Clean up build artifacts:

$ rm -rf build dist *.egg-info


Development and Contribution:

Install dependencies:

$ pip install -r requirements.txt

Install development dependencies:

$ pip install -r dev-requirements.txt

Lint Code:

$ flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics

Run unit tests:

$ python -m unittest -f --locals tests/*.py

Auto generate Sphinx documentation:

$ sphinx-apidoc -o docs/source canopen_monitor

$ make -C docs clean html

Deploy manually to PyPi:

$ python -m twine upload dist/*

(This assumes that you have the correct PyPi credentials and tokens set up according to the instructions outlined here)


Configs:

These are the auto-generated configs that are stored in ~/.config/canopen-monitor

devices.json:

{
  "dead_timeout": 120,
  "devices": [
    "can0"
  ],
  "stale_timeout": 60
}

A set of devices configs including a list of CAN Buses that CAN Monitor will try to bind to on launch as well as respective timeout lengths.

(note: additional buses can be added via cmd-line arguments, see canopen-monitor --help)

 

layout.json

{
  "data": [
    {
      "data": [
        {
          "capacity": null,
          "fields": [],
          "frame_types": [
            "HEARTBEAT"
          ],
          "name": "Hearbeats",
          "type": "heartbeat_table"
        },
        {
        "capacity": null,
        "fields": [],
        "frame_types": [],
        "name": "Info",
        "type": "info_table"
        }
      ],
      "split": "vertical",
      "type": "grid"
    },
    {
      "capacity": null,
      "fields": [],
      "frame_types": [
        "NMT",
        "SYNC",
        "TIME",
        "EMER",
        "PDO1_TX",
        "PDO1_RX",
        "PDO2_TX",
        "PDO2_RX",
        "PDO3_TX",
        "PDO3_RX",
        "PDO4_TX",
        "PDO4_RX",
        "SDO_TX",
        "SDO_RX",
        "UKNOWN"
      ],
      "name": "Misc",
      "type": "misc_table"
    }
  ],
  "split": "horizontal",
  "type": "grid"
}

A recursive set of dictionaries that define how CAN Monitor constructs the UI layout and what CAN Message types go to what tables.

 

nodes.json

{
  "64": "MDC"
}

A list of COB ID's in decimal notation that have a paired name which will override the default display name of that node in CAN Monitor.


Message Types + COB ID Ranges:

Wikipedia Table
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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

canopen-monitor-3.1.4.tar.gz (37.5 kB view hashes)

Uploaded Source

Built Distribution

canopen_monitor-3.1.4-py3-none-any.whl (57.8 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page