From 225a2f4d5ede37eb92bd0817988633cba4d222cc Mon Sep 17 00:00:00 2001 From: Jason Young Date: Sun, 3 Jul 2022 14:59:55 -0400 Subject: [PATCH] LDW_Status updates and passthrough --- opendbc | 2 +- selfdrive/car/volkswagen/carstate.py | 18 +++++++++++++++--- selfdrive/car/volkswagen/pqcan.py | 25 +++++++++---------------- 3 files changed, 25 insertions(+), 20 deletions(-) diff --git a/opendbc b/opendbc index 629169a8e4..a712a5bfdd 160000 --- a/opendbc +++ b/opendbc @@ -1 +1 @@ -Subproject commit 629169a8e424ce0163e21c48906fa5eb003df552 +Subproject commit a712a5bfdd2dbaa120d348846d9137dd0df5deb3 diff --git a/selfdrive/car/volkswagen/carstate.py b/selfdrive/car/volkswagen/carstate.py index 99677d2fbf..c865e04448 100644 --- a/selfdrive/car/volkswagen/carstate.py +++ b/selfdrive/car/volkswagen/carstate.py @@ -216,8 +216,7 @@ class CarState(CarStateBase): # Consume factory LDW data relevant for factory SWA (Lane Change Assist) # and capture it for forwarding to the blind spot radar controller - # TODO: populate this - self.ldw_stock_values = None + self.ldw_stock_values = cam_cp.vl["LDW_Status"] if self.CP.networkLocation == NetworkLocation.fwdCamera else {} # Stock FCW is considered active if the release bit for brake-jerk warning # is set. Stock AEB considered active if the partial braking or target @@ -484,10 +483,23 @@ class CarState(CarStateBase): @staticmethod def get_cam_can_parser_pq(CP): - # TODO: Populate this for NetworkLocation.fwdCamera signals = [] checks = [] + if CP.networkLocation == NetworkLocation.fwdCamera: + signals += [ + # sig_name, sig_address + ("LDW_SW_Warnung_links", "LDW_Status"), # Blind spot in warning mode on left side due to lane departure + ("LDW_SW_Warnung_rechts", "LDW_Status"), # Blind spot in warning mode on right side due to lane departure + ("LDW_Seite_DLCTLC", "LDW_Status"), # Direction of most likely lane departure (left or right) + ("LDW_DLC", "LDW_Status"), # Lane departure, distance to line crossing + ("LDW_TLC", "LDW_Status"), # Lane departure, time to line crossing + ] + checks += [ + # sig_address, frequency + ("LDW_Status", 10) # From R242 Driver assistance camera + ] + if CP.networkLocation == NetworkLocation.gateway: # Radars are here on CANBUS.cam signals += PqExtraSignals.fwd_radar_signals diff --git a/selfdrive/car/volkswagen/pqcan.py b/selfdrive/car/volkswagen/pqcan.py index 40f2ff667d..fad3cea5c6 100644 --- a/selfdrive/car/volkswagen/pqcan.py +++ b/selfdrive/car/volkswagen/pqcan.py @@ -8,24 +8,17 @@ def create_pq_steering_control(packer, bus, apply_steer, idx, lkas_enabled): return packer.make_can_msg("HCA_1", bus, values, idx) -def create_pq_hud_control(packer, bus, hca_enabled, steering_pressed, hud_alert, left_lane_visible, right_lane_visible, +def create_pq_hud_control(packer, bus, enabled, steering_pressed, hud_alert, left_lane_visible, right_lane_visible, ldw_stock_values, left_lane_depart, right_lane_depart): - if hca_enabled: - left_lane_hud = 3 if left_lane_depart else 1 + left_lane_visible - right_lane_hud = 3 if right_lane_depart else 1 + right_lane_visible - else: - left_lane_hud = 0 - right_lane_hud = 0 - - values = { - "Right_Lane_Status": right_lane_hud, - "Left_Lane_Status": left_lane_hud, - "SET_ME_X1": 1, - "Kombi_Lamp_Orange": 1 if hca_enabled and steering_pressed else 0, - "Kombi_Lamp_Green": 1 if hca_enabled and not steering_pressed else 0, + values = ldw_stock_values.copy() + values.update({ + "LDW_Lampe_gelb": 1 if enabled and steering_pressed else 0, + "LDW_Lampe_gruen": 1 if enabled and not steering_pressed else 0, + "LDW_Lernmodus_links": 3 if left_lane_depart else 1 + left_lane_visible, + "LDW_Lernmodus_rechts": 3 if right_lane_depart else 1 + right_lane_visible, "LDW_Textbits": hud_alert, - } - return packer.make_can_msg("LDW_1", bus, values) + }) + return packer.make_can_msg("LDW_Status", bus, values) def create_pq_acc_buttons_control(packer, bus, buttonStatesToSend, CS, idx): values = {