Skip to main content

LDF Language support for Python

Project description

LDF Parser

Workflow PyPI version codecov.io License

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.


Disclaimer

The tool has been written according the LIN standards 1.3, 2.0, 2.1 and 2.2A, but due to errors in the documentation there's no guarantee that the library will be able to parse your LDF. In such cases if possible first verify the LDF with a commercial tool such as Vector LDF Explorer or the tool that was used to create the LDF. If the LDF seems to be correct then open a new issue. I also recommend trying the LDF to JSON conversion mechanism, see if that succeeds.

Since the LDF usually contains sensitive information try to provide either an anonymized version with signals and frames obfuscated or just the relevant segments in an example LDF.


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

  • Retrieve Node attributes

  • Capturing comments

Currently not supported

  • Scheduling table

  • Diagnostics


Installation

Install via pip install ldfparser


Credits

Inspired by uCAN-LIN LinUSBConverter, specifically the LDF parsing mechanism via Lark. Previously the library included most of the lark file, parsing code and examples, since 0.5.0 they've been completely rewritten to better accomodate the different LIN standards.


License

License

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

ldfparser-0.5.2.tar.gz (12.4 kB view details)

Uploaded Source

Built Distributions

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

ldfparser-0.5.2-py3.6.egg (36.8 kB view details)

Uploaded Egg

ldfparser-0.5.2-py3-none-any.whl (16.7 kB view details)

Uploaded Python 3

File details

Details for the file ldfparser-0.5.2.tar.gz.

File metadata

  • Download URL: ldfparser-0.5.2.tar.gz
  • Upload date:
  • Size: 12.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.9.0

File hashes

Hashes for ldfparser-0.5.2.tar.gz
Algorithm Hash digest
SHA256 f2b109dee4942828cab15014504577166b45443175b698b437ebad00d735bf0b
MD5 ddb3d4391d2c8eae87e05d591f82e30f
BLAKE2b-256 f5d3f3b2b07f3f4f36e48280b2d044e089e8e8e6db730fa0631e3a5a177ece84

See more details on using hashes here.

File details

Details for the file ldfparser-0.5.2-py3.6.egg.

File metadata

  • Download URL: ldfparser-0.5.2-py3.6.egg
  • Upload date:
  • Size: 36.8 kB
  • Tags: Egg
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.9.0

File hashes

Hashes for ldfparser-0.5.2-py3.6.egg
Algorithm Hash digest
SHA256 ff007cae766bf246dc55f0bb36a5c30a5d6d0b60e25850a2bace33ca4a553268
MD5 cf4c5f3fe209e57034963e07f59edd27
BLAKE2b-256 52a3113efcb0ae0ef157a06ef9c2b1cb41efbbe277591e4bfac2f3b531af65a2

See more details on using hashes here.

File details

Details for the file ldfparser-0.5.2-py3-none-any.whl.

File metadata

  • Download URL: ldfparser-0.5.2-py3-none-any.whl
  • Upload date:
  • Size: 16.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.9.0

File hashes

Hashes for ldfparser-0.5.2-py3-none-any.whl
Algorithm Hash digest
SHA256 5c041a213aa33cb735c400dd9d243a677d71d73dcb23042985573768fad7870a
MD5 21731c82d2cab0b119a56ac666d00194
BLAKE2b-256 4b5d3804611800ed94d5eb2ecc461931ae24bfd94754c6dbc572550c87706b61

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