Skip to main content

A general CAN framework API for Python - encode/decode CAN frames, parse DBC files, and work with CAN log files

Project description

canlab

A general CAN framework API for Python - encode/decode CAN frames, parse DBC files, and work with CAN log files.

Installation

pip install canlab

or

uv add canlab

Quick Start

Loading a DBC File

from dbc import load_cantools_dbc, extract_messages

# Load DBC file with cantools
db = load_cantools_dbc("path/to/file.dbc")

# Extract messages into MessageData objects
messages = extract_messages("path/to/file.dbc")

Encoding CAN Frames

from dbc import DbcData
from encoder import values_to_lsb, values_to_msb

# Create a signal
signal = DbcData(
    startBit=0,
    numBits=16,
    scale=0.1,
    offset=0.0,
    isSigned=False,
    name="temperature",
    isLSB=True,
    value=98.6
)

# Encode to LSB (Intel) format
frame = values_to_lsb([signal])

Decoding CAN Frames

from decoder import lsb_to_value, msb_to_value

# Decode from LSB format
value = lsb_to_value(frame, signal)

# Decode from MSB (Motorola) format
value = msb_to_value(frame, signal)

Parsing ASC Log Files

from log_reader.asc import parseASC, read_asc

# Parse ASC file filtering by message IDs
target_ids = [0x100, 0x200]
df = parseASC("log.asc", target_ids)

# Read all messages from ASC file
df = read_asc("log.asc")

Features

  • Load and parse DBC files
  • Encode physical values to CAN frames (LSB and MSB formats)
  • Decode CAN frames to physical values
  • Parse ASC log files
  • Convert between DBC IDs and bus IDs

Requirements

  • Python >= 3.12
  • cantools >= 41.0.2
  • polars >= 1.36.1

License

MIT License - see LICENSE file for details.

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

canlab-0.1.3.tar.gz (15.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

canlab-0.1.3-py3-none-any.whl (12.8 kB view details)

Uploaded Python 3

File details

Details for the file canlab-0.1.3.tar.gz.

File metadata

  • Download URL: canlab-0.1.3.tar.gz
  • Upload date:
  • Size: 15.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.4.27

File hashes

Hashes for canlab-0.1.3.tar.gz
Algorithm Hash digest
SHA256 3a6011cebe1f00d0dbdb1ec362ccec10d16cd80399a438997edeed1e29dcb03c
MD5 a713e899d285a189ff76cd3c7c62bfbf
BLAKE2b-256 72fbc5feea53f114cbf3fea93b92ddf32bb177a18ed49ef3d6eafb3395f53e91

See more details on using hashes here.

File details

Details for the file canlab-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: canlab-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 12.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.4.27

File hashes

Hashes for canlab-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 8c2c24ce4f51df649770b0cda8aa3709fb651af6537391f98896e13383f67659
MD5 7d98e66f5b7cd6c8f41b13247b97bbf4
BLAKE2b-256 c049762fdca1aadbacbad1b42d90262e672e4446347c2e507e443206189cd9c6

See more details on using hashes here.

Supported by

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