hardbyte / hardbyte/python-can

PCAN message timestamps drift after macOS system sleep

オープン
#2,092 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
bug
主要言語
Python
スター
1.6k
フォーク
697
PR マージ指標
30日以内にマージされた PR はありません

説明

### Describe the bug
On macOS, CAN message timestamps from PcanBus drift behind the current wall-clock time after the computer sleeps.
PcanBus combines the Mac boot time with a PCAN elapsed-time counter. The counter pauses while macOS sleeps, so every sleep cycle increases the timestamp error.
The incorrect timestamp is produced before BLF or CSV logging. Both log formats preserve the timestamp received from python-can.

### To Reproduce

1. Connect a PCAN adapter on macOS.
2. Start receiving CAN messages and record their timestamps.
3. Put the Mac to sleep, then wake it.
4. Receive another CAN message.
5. Compare its timestamp with the current wall-clock time.

The CAN timestamp will be behind the wall clock by approximately the amount of time the Mac spent asleep.
Unplugging and reconnecting the PCAN adapter does not reset the drift.

### Expected behavior
CAN message timestamps should match the current wall-clock time after the Mac wakes from sleep.
System sleep should not cause timestamps to drift backward.

### Additional context

OS and version: macOS 26.5.1, build 25F80
Python version: 3.13.14
python-can version: 4.6.1
python-can interface/s: pcan via PCAN/MacCAN
The issue has been confirmed on macOS. Potential impact on Windows has not been tested.

Traceback and logs
No exception is raised. The problem appears in the timestamps assigned to received CAN messages.

During a controlled sleep test:

Wall-clock elapsed time: 73.6 seconds
PCAN elapsed counter: 60.9 seconds
Difference: 12.7 seconds
Recorded macOS sleep: 12.7 seconds

The difference between the wall clock and PCAN counter matched the macOS sleep duration.
The incorrect timestamps were present before reaching the BLF writer and CSV converter, so those components were ruled out.
Disconnecting the PCAN adapter for 60 seconds did not reset the elapsed counter or correct the timestamp.

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

Start at the PcanBus timestamp calculation and reproduce the controlled macOS sleep test with a PCAN adapter. Verify that received CAN message timestamps remain aligned with wall-clock time after wake, before the BLF writer or CSV converter, and that reconnecting the adapter does not affect the result.

索引モデルが issue の本文から書いたものです。

評価

技術スタック
python
領域
embedded-iot
issue の種類
バグ
難易度
3/5
見積もり時間
1〜2日
活発さ
活発
明瞭さ
明確に書かれている
初心者へのやさしさ
68/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。