LDF Language support for Python
Project description
LDF Parser
This tool is able parse LIN Description Files, retrieve signal names and frames from them, as well as encoding messages using frame definitions and decoding them.
Example
import ldfparser
# Load LDF
ldf = ldfparser.LDF(path = "network.ldf")
frame = ldf.frame('Frame_1')
# Get baudrate from LDF
print(ldf.baudrate)
# Encode signal values into frame
message = frame.raw({"Signal_1": 123, "Signal_2": 0})
print(binascii.hexlify(message))
# >> 0x7B00
# Decode message into dictionary of signal names and values
received = bytearray([0x7B, 0x00])
print(frame.parse(received))
# >> {"Signal_1": 123, "Signal_2": 0}
# Encode signal values through converters
message = frame.data({"MotorRPM": 100, "FanState": "ON"}, ldf.converters)
print(binascii.hexlify(message))
# >> 0xFE01
Features
-
Semantic validation of LDF files
-
Retrieve header information (version, baudrate)
-
Retrieve Signal and Frame information
-
Retrieve Signal encoding types and use them to convert values
Currently not supported
-
Signals longer than 16 bits
-
Ascii and BCD signal values
-
Node attributes
-
Scheduling table
-
Diagnostics
Installation
Install via pip install ldfparser
Credits
Inspired by uCAN-LIN LinUSBConverter, specifically the LDF parsing mechanism via Lark
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
ldfparser-0.3.1.tar.gz
(8.0 kB
view hashes)
Built Distributions
ldfparser-0.3.1-py3.6.egg
(18.6 kB
view hashes)
ldfparser-0.3.1-py3-none-any.whl
(10.5 kB
view hashes)
Close
Hashes for ldfparser-0.3.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 05fe683ecb3193cd0da7daf904af4e1180d6a71b5437dcae328c53c656d4cfda |
|
MD5 | 8c6cbc9701307ab50e65e7c9bd90bcff |
|
BLAKE2b-256 | d00027e6459e972e9e17ebb42ffce6d2972298518d3bba3f3b8332eb0d13faa8 |