feat(ui): ギア表示を実ギアに修正し、オイル残を ATF 油温に差し替える - #177
Merged
Conversation
updateGear に d.gear (目標ギア) を渡していた。目標ギアは変速指令が出た
瞬間に切り替わるので、実際に噛む前に新しい段が表示される。
運転者からの報告: 「速度が落ち切る前に2速に落としたとき、落ちてないのに
2速表示になってた」
実測 (2026-09-01、114分・17,681サンプル) でも裏が取れた。
実ギア有効 97.4%
実ギアが不定 2.6% (中央0.40秒、最長2.9秒)
目標≠実ギア 2.4% → 114分の走行で約83秒間、嘘の段が出ていた
内訳: 目標4→実3 ×179 目標3→実4 ×109
目標3→実2 ×64 目標2→実3 ×48 ← 報告と一致
d.engaged_gear (ギア比から求めた実ギア、#153) を使う。変速の過渡で実ギア
が不定 (0) になる間は直前値を保持する。0 に落とすと変速のたびに段が消える。
ロック率が同じ理由で直前値を保持しているのに揃えた。
## 検証
Mac 上にモックAPI + WebSocket サーバを立て、実車と同じ画面を出して確認した。
目標2速・実3速の状態を意図的に作り、修正前は「2」、修正後は「3」と表示
されることを画面で確認済み。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JeHX6eyTnRPgubr7XLL8ZB
## なぜ差し替えるか オイル交換までの残距離は、走行中は走った距離ぶんしか動かない。TRIP の 複製でしかなく、1回の走行で情報が増えない。整備の目安は停車中に見れば足りる。 一方 ATF 油温は 1回の走行で 54.1℃ 動く。表示中のどの値より大きい。 ATF油温 54.1℃ 0.48/分 水温 20.0℃ 0.18/分 ECO(平均燃費) 2.5km/L 0.02/分 オイル残 走行距離ぶんのみ 新東名では 110℃超が 58.4分、最高 116.7℃ に達していたが、運転者はそれを 走行中に知る手段が無く、あとからログで確認していた。 ## 区分は「1段 = 油の寿命が半分」 業界の経験則では 20°F (11.1℃) 上がるごとに ATF の寿命が半減する。 10℃刻みがちょうど1段ぶんにあたるので、90/100/110/120 で切った。 実測 24.1時間 (426,440サンプル) での滞在割合と劣化速度: 緑 〜90℃ 59.0% 0.8倍 黄緑 90-100 21.4% 2.7倍 黄 100-110 14.2% 5.2倍 橙 110-120 5.4% 8.3倍 赤 120〜 0.0% 未到達 走行の種類との対応: 停車・アイドル 緑93% 街乗り (<25km/h) 緑84% / 黄緑14% 流れの良い道 緑55% / 黄緑35% 高速巡航 (70km/h+) 黄緑39% / 黄35% / 橙15% 高速に乗ると黄緑、踏み続けると黄へ移る。赤は 24時間で一度も出ておらず、 出たときは何かが違うという意味を持つ。 ## 旧しきい値 (100/120/130) の問題 120℃も130℃も一度も超えたことがなく、上2段が死んでいた。そして意味のある 領域が全部「黄」に潰れていて、101℃ と 116℃ が同じ色だった。130℃ を基準に すると、この車が実際にいる範囲 (60〜117℃) の外に目盛りが行ってしまう。 ## 実装 ATFAlert を ATFLevel に改めた。返り値は表示色を引くキーで、そのまま画面に 出す文言ではない。しきい値は Go 側の1か所に置き、UI はキーから色を引くだけに した。ATFAlert は今日書いた表示コードからしか使われておらず、通知には 使っていないので影響は無い。 ## 検証 Mac 上にモックAPI + WebSocket サーバを立て、実車と同じ画面で確認した。 85℃ 緑 / 115℃ 橙 / 125℃ 赤 を画面で目視。境界値 89.9/90/99.9/100/109.9/ 110/116.7/120 での区分が正しいことも確認済み。 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.
症状
運転者からの報告:
updateGearにd.gear(目標ギア) を渡していた。目標ギアは変速指令が出た瞬間に切り替わるので、実際に噛む前に新しい段が表示される。実測で裏が取れた
2026-09-01、114分・17,681サンプル(#153 以降のログ):
内訳:
修正
d.engaged_gear(ギア比から求めた実ギア、#153)を使う。変速の過渡で実ギアが不定(0)になる間は直前値を保持する。0 に落とすと変速のたびに段が消える。ロック率が同じ理由で直前値を保持しているのに揃えた。
検証
Mac 上にモックAPI + WebSocket サーバを立て、実車と同じ画面を出して確認した。
目標2速・実3速の状態を意図的に作り、
と表示されることを画面で確認済み。
🤖 Generated with Claude Code
https://claude.ai/code/session_01JeHX6eyTnRPgubr7XLL8ZB