use CC.longActive

This commit is contained in:
Jason Wen
2025-06-07 20:19:20 -04:00
parent 01f32f2c3d
commit 3f7e1e2d16
3 changed files with 12 additions and 12 deletions
@@ -145,7 +145,7 @@ class LongitudinalPlanner(LongitudinalPlannerSP):
accel_clip[1] = min(accel_clip[1], clipped_accel_coast_interp)
# Get new v_cruise from Speed Limit Control
v_cruise = LongitudinalPlannerSP.update_v_cruise(self, sm, not reset_state, self.v_desired_filter.x, self.a_desired, v_cruise)
v_cruise = LongitudinalPlannerSP.update_v_cruise(self, sm, self.v_desired_filter.x, self.a_desired, v_cruise)
if force_slow_decel:
v_cruise = 0.0
@@ -28,10 +28,10 @@ class LongitudinalPlannerSP:
return self.dec.mode()
def update_v_cruise(self, sm: messaging.SubMaster, long_enabled: bool, v_ego: float, a_ego: float, v_cruise: float) -> float:
def update_v_cruise(self, sm: messaging.SubMaster, v_ego: float, a_ego: float, v_cruise: float) -> float:
self.events_sp.clear()
self.slc.update(long_enabled, v_ego, a_ego, sm, v_cruise, self.events_sp)
self.slc.update(sm, v_ego, a_ego, v_cruise, self.events_sp)
v_cruise_slc = self.slc.speed_limit_offseted if self.slc.is_active else V_CRUISE_UNSET
@@ -36,7 +36,7 @@ class SpeedLimitController:
self._last_params_update = 0.0
self._last_op_engaged_time = 0.0
self._is_metric = self._params.get_bool("IsMetric")
self._is_enabled = self._params.get_bool("SpeedLimitControl")
self._enabled = self._params.get_bool("SpeedLimitControl")
self._op_engaged = False
self._op_engaged_prev = False
self._v_ego = 0.
@@ -107,11 +107,11 @@ class SpeedLimitController:
@property
def is_enabled(self) -> bool:
return self.state in ENABLED_STATES and self._is_enabled
return self.state in ENABLED_STATES and self._enabled
@property
def is_active(self) -> bool:
return self.state in ACTIVE_STATES and self._is_enabled
return self.state in ACTIVE_STATES and self._enabled
@property
def speed_limit_offseted(self) -> float:
@@ -152,7 +152,7 @@ class SpeedLimitController:
def _update_params(self) -> None:
if self._current_time > self._last_params_update + PARAMS_UPDATE_PERIOD:
self._is_enabled = self._params.get_bool("SpeedLimitControl")
self._enabled = self._params.get_bool("SpeedLimitControl")
self._offset_type = OffsetType(self._read_int_param("SpeedLimitOffsetType"))
self._offset_value = self._read_int_param("SpeedLimitValueOffset")
self._warning_type = self._read_int_param("SpeedLimitWarningType")
@@ -273,9 +273,9 @@ class SpeedLimitController:
def _state_transition(self) -> None:
self._state_prev = self._state
# In any case, if op is disabled, or speed limit control is disabled
# or the reported speed limit is 0 or gas is pressed, deactivate.
if not self._op_engaged or not self._is_enabled or self._speed_limit == 0:
# In any case, if op is disabled, or speed limit control is disabled or no valid speed limit
# or gas is pressed, deactivate.
if not self._op_engaged or not self._enabled or self._speed_limit == 0:
self.state = SpeedLimitControlState.inactive
return
@@ -327,9 +327,9 @@ class SpeedLimitController:
elif self._speed_limit_changed != 0:
events_sp.add(EventNameSP.speedLimitValueChange)
def update(self, enabled: bool, v_ego: float, a_ego: float, sm: messaging.SubMaster, v_cruise_setpoint: float, events_sp: EventsSP) -> None:
def update(self, sm: messaging.SubMaster, v_ego: float, a_ego: float, v_cruise_setpoint: float, events_sp: EventsSP) -> None:
_car_state = sm['carState']
self._op_engaged = enabled and self._CP.openpilotLongitudinalControl
self._op_engaged = sm['carControl'].longActive
self._v_ego = v_ego
self._a_ego = a_ego
self._v_cruise_setpoint = v_cruise_setpoint if not np.isnan(v_cruise_setpoint) else 0.0