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

Add flush_rx_buffer to BusABC #1721

Open
grant-allan-ctct opened this issue Jan 9, 2024 · 0 comments
Open

Add flush_rx_buffer to BusABC #1721

grant-allan-ctct opened this issue Jan 9, 2024 · 0 comments

Comments

@grant-allan-ctct
Copy link
Contributor

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

This request relates to problems that can occur for certain hardware/OS combinations when users try to filter the CAN messages coming through the bus. If the interface in use supports driver-level filtering, and if the driver does not take steps to apply the filter to (or simply purge) already-received messages whenever a new filter is configured, then the caller of set_filters may end up with unwanted messages at the beginning of their collection, once they start collecting received messages. (Examples: #1708 and #1413.)

Describe the solution you'd like

Even aside from the problem mentioned, I think it would be nice for a user of an interface to have a flush_rx_buffer facility that's a partner to the flush_tx_buffer already present in the BusABC interface definition.

Depending on circumstances, this may allow a user to avoid importing a lower-level python library specifically to accomplish that flushing a different way.

Describe alternatives you've considered

Additional context

I think that it might make sense to have two different phases to this work (e.g. two different PRs if not two different Issues).

  1. Add flush_rx_buffer to the BusABC class and provide implementations for (some of) the existing interfaces. This will help users put workarounds in place for situations like The method set_filters doesn’t work sometimes #1708 without resorting to lower-level techniques like used in Kvaser can_filter not working. #1413. It's also good to have this facility in the interface for general purpose usage. Doing this up-front also allows developers of emerging interfaces to join the party early.
  2. Devise the best way to integrate flush_rx_buffer in with the Bus.set_filters to prevent future problems of a similar nature to The method set_filters doesn’t work sometimes #1708 and Kvaser can_filter not working. #1413.
@grant-allan-ctct grant-allan-ctct changed the title Add flush_rx_buffer to CanBusABC Add flush_rx_buffer to BusABC Jan 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant