hardbyte / hardbyte/python-can
SeeedBus: Allow setting hardware filter/mask during Bus Init
- Lenguaje dominante
- Python
- Estrellas
- 1.6k
- Forks
- 697
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
## Main Problem
I don't like that the SeeedBus interface does not allow for the configuration of the hardware acceptance filter and mask during the bus initialization.
My use case involves a bootloader flasher client that communicates with a device over the CAN bus. The client sends a message with one CAN ID and needs to listen only for a response on another specific CAN ID. To achieve this efficiently, I need to use the hardware filter. The current implementation forces me to create the bus object, then manually change its internal attributes (filter_id, mask_id), and then re-call the internal init_frame() method. This workflow is not intuitive and feels like a workaround.
## Current Alternative
The only alternative at the moment is to manually re-configure the bus after it has been created. This involves the following steps:
```Python
import struct
# 1. Create the bus with default (disabled) filters
bus = can.interface.Bus(interface='seeedstudio', channel='/dev/ttyUSB0')
# 2. Manually overwrite the internal attributes
bus.filter_id = struct.pack('
Guía de contribución
Evaluación
Este issue todavía no se ha evaluado.