labgrid-project / labgrid

Embedded systems control library for development, testing and installation
https://labgrid.readthedocs.io/
Other
327 stars 164 forks source link

Add local CAN resource #1287

Open stoupa-cz opened 10 months ago

stoupa-cz commented 10 months ago

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:

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:

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

Bastian-Krause commented 10 months ago

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

stoupa-cz commented 10 months ago

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.