hardbyte / hardbyte/python-can

Align with the new CAN frame structure for socketcan adding optional DLC element

Open
#1,780 1 comment 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Python
Stars
1.6k
Forks
697
PR merge metrics
No merged PRs in 30d

Description

### Is your feature request related to a problem? Please describe.

SocketCAN allows for passing an optional DLC element in its `can_frame` structure in addition to the length element, this allow accessing the raw DLC value that can be 0-15 (with 9-15 interpreted as 8 in classic CAN).
This feature is good for testing compliance with the ISO.
To enable this some changes are implemented in the Linux kernel and in can-utils.
You can see the change being introduced to can-utils in here: https://github.com/linux-can/can-utils/commit/c398e56afb9b60441232736e05fdfb5a525363ca

### Describe the solution you'd like

I would like to suggest an adaptation to the way CAN_FRAME_HEADER_STRUCT is being defined and un/packed.

### Describe alternatives you've considered
I did not find a way to achieve this with the current implementation.

### Additional context
See a patch used in a fork I've created that allowed me to achieve this capability.
[socktcan_over8_dlc.patch](https://github.com/hardbyte/python-can/files/15244735/socktcan_over8_dlc.patch)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.