hardbyte / hardbyte/python-can

Tx messages can not be received with AsyncBufferedReader()

Đang mở
#1,769 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
bug
Ngôn ngữ chính
Python
Star
1.6k
Fork
697
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

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!

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.