From 8949ad0b8f8972deb9dafa7d86d0fe5a95916035 Mon Sep 17 00:00:00 2001 From: Jason Wen Date: Thu, 8 Jun 2023 10:32:08 -0400 Subject: [PATCH] Ram DT: handle lower speed alert (#179) --- selfdrive/car/chrysler/carcontroller.py | 4 ++-- selfdrive/car/chrysler/interface.py | 14 ++++++++++---- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/selfdrive/car/chrysler/carcontroller.py b/selfdrive/car/chrysler/carcontroller.py index 623bf4688d..8ef9f0bc78 100644 --- a/selfdrive/car/chrysler/carcontroller.py +++ b/selfdrive/car/chrysler/carcontroller.py @@ -50,9 +50,9 @@ class CarController: # TODO: can we make this more sane? why is it different for all the cars? lkas_control_bit = self.lkas_control_bit_prev if self.CP.carFingerprint in RAM_DT: - if CS.out.vEgo >= self.CP.minEnableSpeed and CS.out.vEgo <= self.CP.minEnableSpeed + 0.5: + if self.CP.minEnableSpeed <= CS.out.vEgo <= self.CP.minEnableSpeed + 0.5: lkas_control_bit = True - if (self.CP.minEnableSpeed >= 14.5) and (CS.out.gearShifter != 2) : + if (self.CP.minEnableSpeed >= 14.5) and (CS.out.gearShifter != 2): lkas_control_bit = False elif CS.out.vEgo > self.CP.minSteerSpeed: lkas_control_bit = True diff --git a/selfdrive/car/chrysler/interface.py b/selfdrive/car/chrysler/interface.py index 0a9c0833d9..702327163b 100755 --- a/selfdrive/car/chrysler/interface.py +++ b/selfdrive/car/chrysler/interface.py @@ -94,10 +94,16 @@ class CarInterface(CarInterfaceBase): events = self.create_common_events(ret, extra_gears=[car.CarState.GearShifter.low]) # Low speed steer alert hysteresis logic - if self.CP.minSteerSpeed > 0. and ret.vEgo < (self.CP.minSteerSpeed + 0.5): - self.low_speed_alert = True - elif ret.vEgo > (self.CP.minSteerSpeed + 1.): - self.low_speed_alert = False + if self.CP.carFingerprint in RAM_DT: + if self.CS.out.vEgo >= self.CP.minEnableSpeed: + self.low_speed_alert = False + if (self.CP.minEnableSpeed >= 14.5) and (self.CS.out.gearShifter != car.CarState.GearShifter.drive): + self.low_speed_alert = True + else: + if self.CP.minSteerSpeed > 0. and ret.vEgo < (self.CP.minSteerSpeed + 0.5): + self.low_speed_alert = True + elif ret.vEgo > (self.CP.minSteerSpeed + 1.): + self.low_speed_alert = False if self.low_speed_alert: events.add(car.CarEvent.EventName.belowSteerSpeed)