From 05fdcca82c5289cd4dfc57ed7d07a8a9cd6bd078 Mon Sep 17 00:00:00 2001 From: Jason Wen Date: Thu, 23 Feb 2023 22:49:52 -0500 Subject: [PATCH] uhhh why not multiplex busses?! --- selfdrive/car/hyundai/carcontroller.py | 2 +- selfdrive/car/hyundai/carstate.py | 4 ++-- selfdrive/car/hyundai/hyundaican.py | 2 +- selfdrive/car/hyundai/hyundaicanfd.py | 8 +++++--- selfdrive/car/hyundai/interface.py | 4 ++-- 5 files changed, 11 insertions(+), 9 deletions(-) diff --git a/selfdrive/car/hyundai/carcontroller.py b/selfdrive/car/hyundai/carcontroller.py index 4b19afa3f2..7af8f0f15d 100644 --- a/selfdrive/car/hyundai/carcontroller.py +++ b/selfdrive/car/hyundai/carcontroller.py @@ -118,7 +118,7 @@ class CarController: # disable LFA on HDA2 if self.frame % 5 == 0 and (hda2 or can_canfd): - can_sends.append(hyundaicanfd.create_cam_0x2a4(self.packer, CS.cam_0x2a4)) + can_sends.append(hyundaicanfd.create_cam_0x2a4(self.packer, self.CP, CS.cam_0x2a4)) # LFA and HDA icons if self.frame % 5 == 0 and (not hda2 or hda2_long): diff --git a/selfdrive/car/hyundai/carstate.py b/selfdrive/car/hyundai/carstate.py index 331410fb2e..575e0b36a9 100644 --- a/selfdrive/car/hyundai/carstate.py +++ b/selfdrive/car/hyundai/carstate.py @@ -382,7 +382,7 @@ class CarState(CarStateBase): signals.append(("CF_Lvr_Gear", "LVR12")) checks.append(("LVR12", 100)) - bus = 5 if CP.flags & HyundaiFlags.CAN_CANFD.value else 0 + bus = 1 if CP.flags & HyundaiFlags.CAN_CANFD.value else 0 return CANParser(DBC[CP.carFingerprint]["pt"], signals, checks, bus) @staticmethod @@ -447,7 +447,7 @@ class CarState(CarStateBase): signals += [(f"BYTE{i}", "CAM_0x2a4") for i in range(3, 24)] checks += [("CAM_0x2a4", 20)] - bus = 6 if CP.flags & HyundaiFlags.CAN_CANFD else 2 + bus = 2 if CP.flags & HyundaiFlags.CAN_CANFD else 2 return CANParser(DBC[CP.carFingerprint]["pt"], signals, checks, bus) @staticmethod diff --git a/selfdrive/car/hyundai/hyundaican.py b/selfdrive/car/hyundai/hyundaican.py index ad573caf39..bf7cf9de8a 100644 --- a/selfdrive/car/hyundai/hyundaican.py +++ b/selfdrive/car/hyundai/hyundaican.py @@ -83,7 +83,7 @@ def create_clu11(packer, frame, clu11, button, CP): values["CF_Clu_CruiseSwState"] = button values["CF_Clu_AliveCnt1"] = frame % 0x10 # send buttons to camera on camera-scc based cars - bus = 2 if CP.car_fingerprint in CAMERA_SCC_CAR else 5 if CP.flags & HyundaiFlags.CAN_CANFD else 0 + bus = 2 if CP.car_fingerprint in CAMERA_SCC_CAR else 1 if CP.flags & HyundaiFlags.CAN_CANFD else 0 return packer.make_can_msg("CLU11", bus, values) diff --git a/selfdrive/car/hyundai/hyundaicanfd.py b/selfdrive/car/hyundai/hyundaicanfd.py index 94ff4193f5..3cfe984182 100644 --- a/selfdrive/car/hyundai/hyundaicanfd.py +++ b/selfdrive/car/hyundai/hyundaicanfd.py @@ -25,19 +25,21 @@ def create_steering_messages(packer, CP, enabled, lat_active, apply_steer): } if CP.flags & HyundaiFlags.CANFD_HDA2 or CP.flags & HyundaiFlags.CAN_CANFD: + lkas_bus = 0 if CP.flags & HyundaiFlags.CAN_CANFD else 4 if CP.openpilotLongitudinalControl: ret.append(packer.make_can_msg("LFA", 5, values)) - ret.append(packer.make_can_msg("LKAS", 4, values)) + ret.append(packer.make_can_msg("LKAS", lkas_bus, values)) else: ret.append(packer.make_can_msg("LFA", 4, values)) return ret -def create_cam_0x2a4(packer, camera_values): +def create_cam_0x2a4(packer, CP, camera_values): + bus = 0 if CP.flags & HyundaiFlags.CAN_CANFD else 4 camera_values.update({ "BYTE7": 0, }) - return packer.make_can_msg("CAM_0x2a4", 4, camera_values) + return packer.make_can_msg("CAM_0x2a4", bus, camera_values) def create_buttons(packer, CP, cnt, btn): values = { diff --git a/selfdrive/car/hyundai/interface.py b/selfdrive/car/hyundai/interface.py index bbf48ad469..9ce788b526 100644 --- a/selfdrive/car/hyundai/interface.py +++ b/selfdrive/car/hyundai/interface.py @@ -45,7 +45,7 @@ class CarInterface(CarInterfaceBase): ret.flags |= HyundaiFlags.CANFD_CAMERA_SCC.value else: # detect platforms with HKG CAN and CAN-FD definitions - if 0x50 in fingerprint[6] and 0x420 in fingerprint[5]: + if 0x50 in fingerprint[2] and 0x420 in fingerprint[1]: ret.flags |= HyundaiFlags.CAN_CANFD.value # Send LFA message on cars with HDA @@ -254,7 +254,7 @@ class CarInterface(CarInterfaceBase): bus = 5 if ret.flags & HyundaiFlags.CANFD_HDA2 else 4 ret.enableBsm = 0x1e5 in fingerprint[bus] else: - bus = 5 if ret.flags & HyundaiFlags.CAN_CANFD else 0 + bus = 1 if ret.flags & HyundaiFlags.CAN_CANFD else 0 ret.enableBsm = 0x58b in fingerprint[bus] # *** panda safety config ***