Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

embedded Hal for CanFdSocket #59

Open
tristanguerragomez opened this issue Feb 27, 2024 · 4 comments
Open

embedded Hal for CanFdSocket #59

tristanguerragomez opened this issue Feb 27, 2024 · 4 comments

Comments

@tristanguerragomez
Copy link

I'm looking at the code but fail to understand why the embedded Hal interfaces are implemented for CanSocket but not CanFdSocket?

Can anyone shed some light onto the matter?

@tristanguerragomez
Copy link
Author

FYI: posted an issue in the embedded Hal project to see if there are plans to add support for CAN FD

@fpagliughi
Copy link
Collaborator

What I do remember is that the Embedded HAL and CanFdSocket stuff were written by two different people and merged in that the same time. So some things may have been missed.

I had some mixed feelings about merging in Embedded HAL support. It seemed incomplete, didn't make for easy extensibility, and my one or two PR's there didn't move very quickly. Anyway, when I have a few moments, I can look back into all of this to refresh my memory.

@reneherrero
Copy link

I was involved during the initial CAN PRs, and yes, they move very slow... unfortunately, CAN seems to be a second class citizen in that area which is very unfortunate as it's a pillar in many industries (J1939, NMEA2000, UAVCAN, .....). The first PR included Filters, but that was canned.

In their defense, I have to say that HALs often come across the "lowest common denominator" problem. If memory serves me correctly, for something to get merged, they require at the very least two working examples: one with some micro-controller option (bxcan was used) and a version of SoketCAN I hacked (that was before you took it over).

Things didn't move fast enough for me to meet my deliverables and I simply wrote things in C with a Rust wrapper to circumvent the issue (I know, ugly, but it worked).

@tristanguerragomez
Copy link
Author

Interesting...

I have to confess, I'm new to CAN FD and don't know all the details/differences. From what I've seen so far, the bit rate during data transfers and the payload size is all that changes. Can anyone confirm?

If that's the case, the current Embedded HAL API might work:

  1. The bit rate is not part of the API
  2. The payload size is not hard-coded

Thoughts?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants