telemetry: add cruise engagement state for desync debugging
Added brakePressed to cruise group, prev_cruise_button and prev_main_button to buttons group in carstate telemetry. New "engage" group in controlsd logs state machine state, enabled/active flags, and stock cruise state every frame for tracing engagement desync bugs. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -446,6 +446,7 @@ class CarState(CarStateBase):
|
|||||||
"speed": round(ret.cruiseState.speed, 3),
|
"speed": round(ret.cruiseState.speed, 3),
|
||||||
"standstill": ret.cruiseState.standstill,
|
"standstill": ret.cruiseState.standstill,
|
||||||
"accFaulted": ret.accFaulted,
|
"accFaulted": ret.accFaulted,
|
||||||
|
"brakePressed": ret.brakePressed,
|
||||||
"ACCMode": scc.get("ACCMode", 0),
|
"ACCMode": scc.get("ACCMode", 0),
|
||||||
"VSetDis": scc.get("VSetDis", 0),
|
"VSetDis": scc.get("VSetDis", 0),
|
||||||
"aReqRaw": round(scc.get("aReqRaw", 0), 3),
|
"aReqRaw": round(scc.get("aReqRaw", 0), 3),
|
||||||
@@ -468,7 +469,9 @@ class CarState(CarStateBase):
|
|||||||
|
|
||||||
tlog("buttons", {
|
tlog("buttons", {
|
||||||
"cruise_button": self.cruise_buttons[-1],
|
"cruise_button": self.cruise_buttons[-1],
|
||||||
|
"prev_cruise_button": self.prev_cruise_buttons,
|
||||||
"main_button": self.main_buttons[-1],
|
"main_button": self.main_buttons[-1],
|
||||||
|
"prev_main_button": self.prev_main_buttons,
|
||||||
"lkas_enabled": self.lkas_enabled,
|
"lkas_enabled": self.lkas_enabled,
|
||||||
"main_enabled": self.main_enabled,
|
"main_enabled": self.main_enabled,
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ from openpilot.system.version import get_short_branch
|
|||||||
from openpilot.selfdrive.frogpilot.controls.lib.frogpilot_functions import CRUISING_SPEED, PROBABILITY, MovingAverageCalculator
|
from openpilot.selfdrive.frogpilot.controls.lib.frogpilot_functions import CRUISING_SPEED, PROBABILITY, MovingAverageCalculator
|
||||||
|
|
||||||
from openpilot.selfdrive.frogpilot.controls.lib.model_manager import RADARLESS_MODELS
|
from openpilot.selfdrive.frogpilot.controls.lib.model_manager import RADARLESS_MODELS
|
||||||
|
from openpilot.selfdrive.clearpilot.telemetry import tlog
|
||||||
from openpilot.selfdrive.frogpilot.controls.lib.speed_limit_controller import SpeedLimitController
|
from openpilot.selfdrive.frogpilot.controls.lib.speed_limit_controller import SpeedLimitController
|
||||||
|
|
||||||
SOFT_DISABLE_TIME = 3 # seconds
|
SOFT_DISABLE_TIME = 3 # seconds
|
||||||
@@ -628,6 +629,16 @@ class Controls:
|
|||||||
# Check if openpilot is engaged and actuators are enabled
|
# Check if openpilot is engaged and actuators are enabled
|
||||||
self.enabled = self.state in ENABLED_STATES
|
self.enabled = self.state in ENABLED_STATES
|
||||||
self.active = self.state in ACTIVE_STATES
|
self.active = self.state in ACTIVE_STATES
|
||||||
|
|
||||||
|
# CLEARPILOT: log engagement state for debugging cruise desync issues
|
||||||
|
tlog("engage", {
|
||||||
|
"state": self.state.name,
|
||||||
|
"enabled": self.enabled,
|
||||||
|
"active": self.active,
|
||||||
|
"cruise_enabled": CS.cruiseState.enabled,
|
||||||
|
"cruise_available": CS.cruiseState.available,
|
||||||
|
"brakePressed": CS.brakePressed,
|
||||||
|
})
|
||||||
if self.active:
|
if self.active:
|
||||||
self.current_alert_types.append(ET.WARNING)
|
self.current_alert_types.append(ET.WARNING)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user