Refactor traffic signal update in Hyundai

This commit is contained in:
DevTekVE
2023-11-07 19:50:47 +00:00
committed by Jason Wen
parent 928528a13c
commit 5d2de35fc4
+12 -7
View File
@@ -211,7 +211,7 @@ class CarState(CarStateBase):
self.mads_enabled = False if not self.control_initialized else ret.cruiseState.available
if self.CP.spFlags & HyundaiFlagsSP.SP_NAV_MSG:
self._update_traffic_signals(self.CP, cp, cp_cam)
self._update_traffic_signals(cp, cp_cam)
ret.cruiseState.speedLimit = self._calculate_speed_limit() * speed_conv
return ret
@@ -301,15 +301,19 @@ class CarState(CarStateBase):
else cp_cam.vl["CAM_0x2a4"])
if self.CP.spFlags & HyundaiFlagsSP.SP_NAV_MSG:
self._update_traffic_signals(self.CP, cp, cp_cam)
self._update_traffic_signals(cp, cp_cam)
ret.cruiseState.speedLimit = self._calculate_speed_limit() * speed_factor
return ret
def _update_traffic_signals(self, CP, cp, cp_cam):
speed_limit_clu_canfd = cp if self.CP.flags & HyundaiFlags.CANFD_HDA2 else cp_cam
self._speed_limit_clu = speed_limit_clu_canfd.vl["CLUSTER_SPEED_LIMIT"]["SPEED_LIMIT_1"] if CP.carFingerprint in CANFD_CAR else \
cp.vl["Navi_HU"]["SpeedLim_Nav_Clu"]
def _update_traffic_signals(self, cp, cp_cam):
if self.CP.carFingerprint in CANFD_CAR:
speed_limit_clu_bus_canfd = cp if self.CP.flags & HyundaiFlags.CANFD_HDA2 else cp_cam
self._speed_limit_clu = speed_limit_clu_bus_canfd.vl["CLUSTER_SPEED_LIMIT"]["SPEED_LIMIT_1"]
else:
speed_limit_can_nav = cp.vl["Navi_HU"]["SpeedLim_Nav_Clu"]
speed_limit_can_cam = cp_cam.vl["LKAS12"]["CF_Lkas_TsrSpeed_Display_Clu"]
self._speed_limit_clu = speed_limit_can_cam if speed_limit_can_cam not in (0, 255) else speed_limit_can_nav
def _calculate_speed_limit(self):
return self._speed_limit_clu if self._speed_limit_clu not in (0, 255) else 0
@@ -380,7 +384,8 @@ class CarState(CarStateBase):
return CarState.get_cam_can_parser_canfd(CP)
messages = [
("LKAS11", 100)
("LKAS11", 100),
("LKAS12", 10)
]
if not CP.openpilotLongitudinalControl and CP.carFingerprint in (CAMERA_SCC_CAR | (NON_SCC_CAR - NON_SCC_NO_FCA_CAR - NON_SCC_RADAR_FCA_CAR)):