hardbyte / hardbyte/python-can

Tx messages can not be received with AsyncBufferedReader()

Offen
#1,769 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
bug
Vorherrschende Sprache
Python
Sterne
1.6k
Forks
697
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

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!

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.