VW MQB: Cleanup stock LKAS signal forwarding (#22180)

* VW MQB: Cleanup stock LKAS signal forwarding

* apply review suggestion
pull/22188/head
Jason Young 4 years ago committed by GitHub
parent cbbf0cc520
commit 7d5ee9fbd1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      selfdrive/car/volkswagen/carcontroller.py
  2. 36
      selfdrive/car/volkswagen/carstate.py
  3. 22
      selfdrive/car/volkswagen/volkswagencan.py

@ -79,9 +79,7 @@ class CarController():
can_sends.append(volkswagencan.create_mqb_hud_control(self.packer_pt, CANBUS.pt, enabled, can_sends.append(volkswagencan.create_mqb_hud_control(self.packer_pt, CANBUS.pt, enabled,
CS.out.steeringPressed, hud_alert, left_lane_visible, CS.out.steeringPressed, hud_alert, left_lane_visible,
right_lane_visible, CS.ldw_lane_warning_left, right_lane_visible, CS.ldw_stock_values,
CS.ldw_lane_warning_right, CS.ldw_side_dlc_tlc,
CS.ldw_dlc, CS.ldw_tlc, CS.out.standstill,
left_lane_depart, right_lane_depart)) left_lane_depart, right_lane_depart))
# **** ACC Button Controls ********************************************** # # **** ACC Button Controls ********************************************** #

@ -83,11 +83,7 @@ class CarState(CarStateBase):
# Consume factory LDW data relevant for factory SWA (Lane Change Assist) # Consume factory LDW data relevant for factory SWA (Lane Change Assist)
# and capture it for forwarding to the blind spot radar controller # and capture it for forwarding to the blind spot radar controller
self.ldw_lane_warning_left = bool(cam_cp.vl["LDW_02"]["LDW_SW_Warnung_links"]) self.ldw_stock_values = cam_cp.vl["LDW_02"] if self.CP.networkLocation == NetworkLocation.fwdCamera else {}
self.ldw_lane_warning_right = bool(cam_cp.vl["LDW_02"]["LDW_SW_Warnung_rechts"])
self.ldw_side_dlc_tlc = bool(cam_cp.vl["LDW_02"]["LDW_Seite_DLCTLC"])
self.ldw_dlc = cam_cp.vl["LDW_02"]["LDW_DLC"]
self.ldw_tlc = cam_cp.vl["LDW_02"]["LDW_TLC"]
# Stock FCW is considered active if the release bit for brake-jerk warning # 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 # is set. Stock AEB considered active if the partial braking or target
@ -235,21 +231,23 @@ class CarState(CarStateBase):
@staticmethod @staticmethod
def get_cam_can_parser(CP): def get_cam_can_parser(CP):
signals = [ signals = []
# sig_name, sig_address, default checks = []
("LDW_SW_Warnung_links", "LDW_02", 0), # Blind spot in warning mode on left side due to lane departure
("LDW_SW_Warnung_rechts", "LDW_02", 0), # Blind spot in warning mode on right side due to lane departure
("LDW_Seite_DLCTLC", "LDW_02", 0), # Direction of most likely lane departure (left or right)
("LDW_DLC", "LDW_02", 0), # Lane departure, distance to line crossing
("LDW_TLC", "LDW_02", 0), # Lane departure, time to line crossing
]
checks = [ if CP.networkLocation == NetworkLocation.fwdCamera:
# sig_address, frequency signals += [
("LDW_02", 10) # From R242 Driver assistance camera # sig_name, sig_address, default
] ("LDW_SW_Warnung_links", "LDW_02", 0), # Blind spot in warning mode on left side due to lane departure
("LDW_SW_Warnung_rechts", "LDW_02", 0), # Blind spot in warning mode on right side due to lane departure
if CP.networkLocation == NetworkLocation.gateway: ("LDW_Seite_DLCTLC", "LDW_02", 0), # Direction of most likely lane departure (left or right)
("LDW_DLC", "LDW_02", 0), # Lane departure, distance to line crossing
("LDW_TLC", "LDW_02", 0), # Lane departure, time to line crossing
]
checks += [
# sig_address, frequency
("LDW_02", 10) # From R242 Driver assistance camera
]
else:
# Radars are here on CANBUS.cam # Radars are here on CANBUS.cam
signals += MqbExtraSignals.fwd_radar_signals signals += MqbExtraSignals.fwd_radar_signals
checks += MqbExtraSignals.fwd_radar_checks checks += MqbExtraSignals.fwd_radar_checks

@ -16,26 +16,20 @@ def create_mqb_steering_control(packer, bus, apply_steer, idx, lkas_enabled):
return packer.make_can_msg("HCA_01", bus, values, idx) return packer.make_can_msg("HCA_01", bus, values, idx)
def create_mqb_hud_control(packer, bus, enabled, steering_pressed, hud_alert, left_lane_visible, right_lane_visible, def create_mqb_hud_control(packer, bus, enabled, steering_pressed, hud_alert, left_lane_visible, right_lane_visible,
ldw_lane_warning_left, ldw_lane_warning_right, ldw_side_dlc_tlc, ldw_dlc, ldw_tlc, ldw_stock_values, left_lane_depart, right_lane_depart):
standstill, left_lane_depart, right_lane_depart):
# Lane color reference: # Lane color reference:
# 0 (LKAS disabled) - off # 0 (LKAS disabled) - off
# 1 (LKAS enabled, no lane detected) - dark gray # 1 (LKAS enabled, no lane detected) - dark gray
# 2 (LKAS enabled, lane detected) - light gray on VW, green or white on Audi depending on year or virtual cockpit. On a color MFD on a 2015 A3 TDI it is white, virtual cockpit on a 2018 A3 e-Tron its green. # 2 (LKAS enabled, lane detected) - light gray on VW, green or white on Audi depending on year or virtual cockpit. On a color MFD on a 2015 A3 TDI it is white, virtual cockpit on a 2018 A3 e-Tron its green.
# 3 (LKAS enabled, lane departure detected) - white on VW, red on Audi # 3 (LKAS enabled, lane departure detected) - white on VW, red on Audi
values = ldw_stock_values.copy()
values = { values.update({
"LDW_Status_LED_gelb": 1 if enabled and steering_pressed else 0, "LDW_Status_LED_gelb": 1 if enabled and steering_pressed else 0,
"LDW_Status_LED_gruen": 1 if enabled and not steering_pressed else 0, "LDW_Status_LED_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_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_Lernmodus_rechts": 3 if right_lane_depart else 1 + right_lane_visible,
"LDW_Texte": hud_alert, "LDW_Texte": hud_alert,
"LDW_SW_Warnung_links": ldw_lane_warning_left, })
"LDW_SW_Warnung_rechts": ldw_lane_warning_right,
"LDW_Seite_DLCTLC": ldw_side_dlc_tlc,
"LDW_DLC": ldw_dlc,
"LDW_TLC": ldw_tlc
}
return packer.make_can_msg("LDW_02", bus, values) return packer.make_can_msg("LDW_02", bus, values)
def create_mqb_acc_buttons_control(packer, bus, buttonStatesToSend, CS, idx): def create_mqb_acc_buttons_control(packer, bus, buttonStatesToSend, CS, idx):

Loading…
Cancel
Save