hardbyte / hardbyte/python-can

Tx messages can not be received with AsyncBufferedReader()

Abierto
#1,769 0 comentarios 0 reacciones 0 asignados Ver en GitHub
bug
Lenguaje dominante
Python
Estrellas
1.6k
Forks
697
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

Python 3.11.3
python-can 4.3.1

The program is to talk to an amplifier and log both the Tx and Rx messages asynchronously. In a word to explain how things work on the hardware side, the Amplifier sends Rx messages periodically, and receives Tx messages I send.

The documentation said `can.AsyncBufferedReader()` is able to catch both Tx and Rx messages, so I adapted the example as the following.

```python
async def main() -> None:
logger = can.Logger("logfile.asc")

with can.Bus(auto_reset=True) as bus:
reader = can.AsyncBufferedReader()

listeners: List[MessageRecipient] = [
print_and_log_message,
reader,
logger
]

loop = asyncio.get_running_loop()
notifier = can.Notifier(bus, listeners, loop=loop)

msg = can.Message(arbitration_id=0x106, data=[0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], dlc=8, is_extended_id=False, is_rx=False, is_error_frame=False)

send_task = bus.send_periodic(msg, 0.1, 5)

await asyncio.sleep(5)

if isinstance(send_task, can.CyclicSendTaskABC):
send_task.stop()

notifier.stop()
bus.shutdown()
```
With this code snippet, the log file gets Rx messages only, even the Tx messages I sent out actually works (based on the Rx messages I see, some parameters are updated as what I want). Is it something with my code or the function? Any thoughts and advice will be deeply appreciated!

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.