LDW_Status updates and passthrough

pull/24768/head
Jason Young 3 years ago
parent 44ca9bb2f5
commit 225a2f4d5e
  1. 2
      opendbc
  2. 18
      selfdrive/car/volkswagen/carstate.py
  3. 25
      selfdrive/car/volkswagen/pqcan.py

@ -1 +1 @@
Subproject commit 629169a8e424ce0163e21c48906fa5eb003df552
Subproject commit a712a5bfdd2dbaa120d348846d9137dd0df5deb3

@ -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

@ -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 = {

Loading…
Cancel
Save