Update cruise.py

This commit is contained in:
infiniteCable
2025-05-28 16:36:04 +02:00
committed by GitHub
parent b6a84eebd2
commit 0b3f970fc1
+9 -5
View File
@@ -42,14 +42,14 @@ class VCruiseHelper:
def v_cruise_initialized(self):
return self.v_cruise_kph != V_CRUISE_UNSET
def update_v_cruise(self, CS, enabled, is_metric, speed_limit_control=False):
def update_v_cruise(self, CS, enabled, is_metric, speed_limit_control=False, speed_limit_predicative=False):
self.v_cruise_kph_last = self.v_cruise_kph
if CS.cruiseState.available:
if not self.CP.pcmCruise:
# if stock cruise is completely disabled, then we can use our own set speed logic
self._update_v_speed_limit(CS, enabled, speed_limit_control)
self._update_v_speed_limit(CS, enabled, speed_limit_control, speed_limit_predicative)
self._update_v_cruise_non_pcm(CS, enabled, is_metric)
self.v_cruise_cluster_kph = self.v_cruise_kph
self.update_button_timers(CS, enabled)
@@ -66,16 +66,20 @@ class VCruiseHelper:
self.v_cruise_kph = V_CRUISE_UNSET
self.v_cruise_cluster_kph = V_CRUISE_UNSET
def _update_v_speed_limit(self, CS, enabled, speed_limit_control):
def _update_v_speed_limit(self, CS, enabled, speed_limit_control, predicative):
if not speed_limit_control: # or not enabled # always set speed limit
return
speed_limit = CS.cruiseState.speedLimit * CV.MS_TO_KPH
speed_limit_current = CS.cruiseState.speedLimit * CV.MS_TO_KPH
speed_limit_predicative = CS.cruiseState.speedLimitPredicative * CV.MS_TO_KPH
speed_limit = speed_limit_predicative if predicative and speed_limit_predicative != 0 else speed_limit_current
if speed_limit != self.v_speed_limit_kph:
if speed_limit != 0:
self.v_cruise_kph = speed_limit
self.v_cruise_kph = np.clip(round(self.v_cruise_kph, 1), V_CRUISE_MIN, V_CRUISE_MAX)
self.v_speed_limit_kph = speed_limit
self.v_speed_limit_kph = speed_limit
def _update_v_cruise_non_pcm(self, CS, enabled, is_metric):
# handle button presses. TODO: this should be in state_control, but a decelCruise press