hardbyte / hardbyte/python-can
Tx messages can not be received with AsyncBufferedReader()
- Langage dominant
- Python
- Étoiles
- 1.6k
- Forks
- 697
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
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!
Guide de contribution
Ouvrir le guide de contribution
Évaluation
Cette issue n'a pas encore été évaluée.