labgrid icon indicating copy to clipboard operation
labgrid copied to clipboard

Add local CAN resource

Open stoupa-cz opened this issue 1 year ago • 2 comments

The CAN devices are common on our devices. The support for them is limited in labgrid, so let's start with the crucial part -- local can resources:

  • RawCANPort - device specified by the interface name
  • USBCANPort - udev matching (useful for USB-CAN adapters)

The goal is to have NetworkCANPort. It will be discussed in a separate issue.

I don't plan any Driver now, as I don't see a need (and I hope that it is possible to use it this way). Our test infrastructure needs just the interface name at the moment.

The checklist:

  • [x] Initial dirty implementation.
  • [ ] Polish and cleanup.
  • [ ] Add documenation.
  • [ ] Start review process.

I'm playing with it in our fork at https://gitlab.com/vzlu/tools/labgrid/-/tree/tom/add_can_resource.

stoupa-cz avatar Oct 19 '23 17:10 stoupa-cz

I'm wondering if you could use the NetworkInterface/RemoteNetworkInterface resources for this?

Bastian-Krause avatar Oct 23 '23 08:10 Bastian-Krause

I'm wondering if you could use the NetworkInterface/RemoteNetworkInterface resources for this?

I was also thinking about it. I'm proposing the separate Resource because:

There will probably be new attributes ('speed' at the moment), and the NetworkCANPort will have different bridging similar to ser2net (I will create a new issue to summarize the discussion we had at EOSS2023). There might be a CAN Driver in the future, which should be bound only to the respective resource. I like the SocketCAN abstraction, but on the other hand, I see CAN as a different type of interface with different approaches under the hood.

stoupa-cz avatar Oct 23 '23 12:10 stoupa-cz