feat: 勾配・ブレーキ・エアコン・ファンをアプリで読む - #176
Merged
Merged
Conversation
2026-08-31〜09-01 に同定した信号を、解析だけでなくアプリ本体でも読む。 0x1101 bit1 ブレーキペダル 0x1101 bit0 ラジエータファン 0x1103 bit2 エアコンコンプレッサー 0x3201 勾配 (符号付き。負が登り。単位未確定) API に brake_pedal / radiator_fan / ac_compressor / grade_raw を追加し、 drive-verify.py も記録する (23列 → 27列)。 Mode 22 の送信は 1 tick に 1 PID ずつ巡回させる。intervalMs=50 なら各 PID は 200ms 周期。ATF (2秒周期) と合わせても Mode 22 は 25Hz 未満で、0x201 が 100Hz で流れているバスに対して十分小さい。 勾配は単位が未確定なので生値のまま持つ。正負と大小には意味があるので、 記録して後から較正できるようにしておく。GPS の標高が取れれば換算式を 決められる (#164)。 ## 未同定PIDを探すスクリプトを追加 probe-toggle.py … 停車・アイドルのままヘッドライト等を 20秒ON/OFF する find-toggle-pid.py … ラベルと poll22 ログを突き合わせて連動PIDを探す 7個同定できた経験から、成功したのはすべて「他が動かない状態でひとつだけ 断続させた」場合だった。逆に走行データの相関だけを見た絞り込みは外した (平地から絞った勾配候補2個は実際の登坂で動かず、正解は候補外だった)。 その教訓を README に書いた。 ## テスト DecodeStatus1101 / DecodeACCompressor / DecodeGrade を追加。勾配は大橋JCT の -690 と比叡山の -2210、登り切った瞬間の +1320 を実測値として固定する。 ロガーはモック API に対して実際に走らせ、27列が揃うことと slip_ratio が 1.0000 でなくなったことを確認済み。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JeHX6eyTnRPgubr7XLL8ZB
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
同定した信号を、解析だけでなくアプリ本体で読むようにする。
0x1101bit10x1101bit00x1103bit20x3201API に
brake_pedal/radiator_fan/ac_compressor/grade_rawを追加し、drive-verify.pyも記録する(23列 → 27列)。CAN の負荷
Mode 22 の送信は 1 tick に 1 PID ずつ巡回。
intervalMs=50なら各 PID は 200ms 周期。ATF(2秒周期)と合わせても Mode 22 は 25Hz 未満で、0x201 が 100Hz で流れているバスに対して十分小さい。ブレーキは踏んだ瞬間を捉えたいので、この速さが要る。
勾配は生値のまま持つ
単位が未確定なので変換しない。正負と大小には意味があるので、記録して後から較正できるようにする。GPS の標高が取れれば換算式を決められる(#164)。
観測済み: 大橋JCT(8.9%)で -690、比叡山の急勾配区間で -2210、登り切った瞬間に +1320。
未同定PIDを探すスクリプトを追加
probe-toggle.py— 停車・アイドルのままヘッドライト等を 20秒ON/OFF(5項目5分)find-toggle-pid.py— ラベルと poll22 ログを突き合わせて連動PIDを探す7個同定できた経験から、成功したのはすべて「他が動かない状態でひとつだけ断続させた」場合だった。 逆に走行データの相関だけを見た絞り込みは外している(平地から絞った勾配候補2個は実際の8.9%登坂で動かず、正解は候補外だった)。その教訓を README に書いた。
テスト
DecodeStatus1101/DecodeACCompressor/DecodeGradeを追加。勾配は実測値を固定する(大橋 -690、比叡山 -2210、反転 +1320)。ロガーはモック API に対して実際に走らせて検証済み。
全パッケージ通過。
go vetクリーン。🤖 Generated with Claude Code
https://claude.ai/code/session_01JeHX6eyTnRPgubr7XLL8ZB