mirror of
https://github.com/dragonpilot/dragonpilot.git
synced 2026-07-06 21:32:08 +08:00
VW MQB: Misc bugfixes and cleanup (#20540)
* Add LDW->SWA signal pass-through * GC currently unused ACC_06 and LDW_02 signal data * Split out Jetta GLI * Pass in camera CAN parser now that we use it * GC unused CarController param, camelCase->PEP8 * CAN valid should pass for VW now * update refs Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
This commit is contained in:
@@ -183,7 +183,8 @@ Community Maintained Cars and Features
|
||||
| Volkswagen| Golf GTI 2018-19 | Driver Assistance | Stock | 0mph | 0mph |
|
||||
| Volkswagen| Golf R 2016-19 | Driver Assistance | Stock | 0mph | 0mph |
|
||||
| Volkswagen| Golf SportsVan 2016 | Driver Assistance | Stock | 0mph | 0mph |
|
||||
| Volkswagen| Jetta 2018-21 | Driver Assistance | Stock | 0mph | 0mph |
|
||||
| Volkswagen| Jetta 2018-20 | Driver Assistance | Stock | 0mph | 0mph |
|
||||
| Volkswagen| Jetta GLI 2021 | Driver Assistance | Stock | 0mph | 0mph |
|
||||
| Volkswagen| Passat 2016-17<sup>2</sup> | Driver Assistance | Stock | 0mph | 0mph |
|
||||
| Volkswagen| Tiguan 2020 | Driver Assistance | Stock | 0mph | 0mph |
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ class CarController():
|
||||
|
||||
self.steer_rate_limited = False
|
||||
|
||||
def update(self, enabled, CS, frame, actuators, visual_alert, audible_alert, leftLaneVisible, rightLaneVisible):
|
||||
def update(self, enabled, CS, frame, actuators, visual_alert, left_lane_visible, right_lane_visible):
|
||||
""" Controls thread """
|
||||
|
||||
P = CarControllerParams
|
||||
@@ -118,8 +118,10 @@ class CarController():
|
||||
hud_alert = MQB_LDW_MESSAGES["none"]
|
||||
|
||||
can_sends.append(volkswagencan.create_mqb_hud_control(self.packer_pt, CANBUS.pt, hcaEnabled,
|
||||
CS.out.steeringPressed, hud_alert, leftLaneVisible,
|
||||
rightLaneVisible))
|
||||
CS.out.steeringPressed, hud_alert, left_lane_visible,
|
||||
right_lane_visible, CS.ldw_lane_warning_left,
|
||||
CS.ldw_lane_warning_right, CS.ldw_side_dlc_tlc,
|
||||
CS.ldw_dlc, CS.ldw_tlc))
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# #
|
||||
|
||||
@@ -16,7 +16,7 @@ class CarState(CarStateBase):
|
||||
self.shifter_values = can_define.dv["EV_Gearshift"]['GearPosition']
|
||||
self.buttonStates = BUTTON_STATES.copy()
|
||||
|
||||
def update(self, pt_cp, trans_type):
|
||||
def update(self, pt_cp, cam_cp, trans_type):
|
||||
ret = car.CarState.new_message()
|
||||
# Update vehicle speed and acceleration from ABS wheel speeds.
|
||||
ret.wheelSpeeds.fl = pt_cp.vl["ESP_19"]['ESP_VL_Radgeschw_02'] * CV.KPH_TO_MS
|
||||
@@ -83,6 +83,14 @@ class CarState(CarStateBase):
|
||||
ret.leftBlindspot = bool(pt_cp.vl["SWA_01"]["SWA_Infostufe_SWA_li"]) or bool(pt_cp.vl["SWA_01"]["SWA_Warnung_SWA_li"])
|
||||
ret.rightBlindspot = bool(pt_cp.vl["SWA_01"]["SWA_Infostufe_SWA_re"]) or bool(pt_cp.vl["SWA_01"]["SWA_Warnung_SWA_re"])
|
||||
|
||||
# Consume factory LDW data relevant for factory SWA (Lane Change Assist)
|
||||
# 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_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
|
||||
# is set. Stock AEB considered active if the partial braking or target
|
||||
# braking release bits are set.
|
||||
@@ -180,8 +188,6 @@ class CarState(CarStateBase):
|
||||
("KBI_Handbremse", "Kombi_01", 0), # Manual handbrake applied
|
||||
("TSK_Status", "TSK_06", 0), # ACC engagement status from drivetrain coordinator
|
||||
("TSK_Fahrzeugmasse_02", "Motor_16", 0), # Estimated vehicle mass from drivetrain coordinator
|
||||
("ACC_Status_ACC", "ACC_06", 0), # ACC engagement status
|
||||
("ACC_Typ", "ACC_06", 0), # ACC type (follow to stop, stop&go)
|
||||
("ACC_Wunschgeschw", "ACC_02", 0), # ACC set speed
|
||||
("AWV2_Freigabe", "ACC_10", 0), # FCW brake jerk release
|
||||
("ANB_Teilbremsung_Freigabe", "ACC_10", 0), # AEB partial braking release
|
||||
@@ -210,7 +216,6 @@ class CarState(CarStateBase):
|
||||
("ESP_19", 100), # From J104 ABS/ESP controller
|
||||
("ESP_05", 50), # From J104 ABS/ESP controller
|
||||
("ESP_21", 50), # From J104 ABS/ESP controller
|
||||
("ACC_06", 50), # From J428 ACC radar control module
|
||||
("ACC_10", 50), # From J428 ACC radar control module
|
||||
("Motor_20", 50), # From J623 Engine control module
|
||||
("TSK_06", 50), # From J623 Engine control module
|
||||
@@ -245,7 +250,11 @@ class CarState(CarStateBase):
|
||||
|
||||
signals = [
|
||||
# sig_name, sig_address, default
|
||||
("LDW_Status_LED_gruen", "LDW_02", 0), # Lane Assist status LED
|
||||
("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 = [
|
||||
|
||||
@@ -127,7 +127,7 @@ class CarInterface(CarInterfaceBase):
|
||||
self.cp.update_strings(can_strings)
|
||||
self.cp_cam.update_strings(can_strings)
|
||||
|
||||
ret = self.CS.update(self.cp, self.CP.transmissionType)
|
||||
ret = self.CS.update(self.cp, self.cp_cam, self.CP.transmissionType)
|
||||
ret.canValid = self.cp.can_valid and self.cp_cam.can_valid
|
||||
ret.steeringRateLimited = self.CC.steer_rate_limited if self.CC is not None else False
|
||||
|
||||
@@ -167,7 +167,6 @@ class CarInterface(CarInterfaceBase):
|
||||
def apply(self, c):
|
||||
can_sends = self.CC.update(c.enabled, self.CS, self.frame, c.actuators,
|
||||
c.hudControl.visualAlert,
|
||||
c.hudControl.audibleAlert,
|
||||
c.hudControl.leftLaneVisible,
|
||||
c.hudControl.rightLaneVisible)
|
||||
self.frame += 1
|
||||
|
||||
@@ -15,23 +15,26 @@ def create_mqb_steering_control(packer, bus, apply_steer, idx, lkas_enabled):
|
||||
}
|
||||
return packer.make_can_msg("HCA_01", bus, values, idx)
|
||||
|
||||
def create_mqb_hud_control(packer, bus, hca_enabled, steering_pressed, hud_alert, leftLaneVisible, rightLaneVisible):
|
||||
|
||||
def create_mqb_hud_control(packer, bus, hca_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):
|
||||
if hca_enabled:
|
||||
leftlanehud = 3 if leftLaneVisible else 1
|
||||
rightlanehud = 3 if rightLaneVisible else 1
|
||||
left_lane_hud = 3 if left_lane_visible else 1
|
||||
right_lane_hud = 3 if right_lane_visible else 1
|
||||
else:
|
||||
leftlanehud = 2 if leftLaneVisible else 1
|
||||
rightlanehud = 2 if rightLaneVisible else 1
|
||||
left_lane_hud = 2 if left_lane_visible else 1
|
||||
right_lane_hud = 2 if right_lane_visible else 1
|
||||
|
||||
values = {
|
||||
"LDW_SW_Warnung_links": 0, # FIXME: to be store-and-forwarded from the stock camera
|
||||
"LDW_SW_Warnung_rechts": 1, # FIXME: to be store-and-forwarded from the stock camera
|
||||
"LDW_Status_LED_gelb": 1 if hca_enabled and steering_pressed else 0,
|
||||
"LDW_Status_LED_gruen": 1 if hca_enabled and not steering_pressed else 0,
|
||||
"LDW_Lernmodus_links": leftlanehud,
|
||||
"LDW_Lernmodus_rechts": rightlanehud,
|
||||
"LDW_Lernmodus_links": left_lane_hud,
|
||||
"LDW_Lernmodus_rechts": right_lane_hud,
|
||||
"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)
|
||||
|
||||
|
||||
@@ -1 +1 @@
|
||||
796df70c9c83a693f81e4a35d97f90dc5378ef06
|
||||
28d5abf03e0e0cae5af0f3dfb78f597253046a8b
|
||||
@@ -22,7 +22,6 @@ ROUTES = {v['carFingerprint']: k for k, v in routes.items() if v['enableCamera']
|
||||
|
||||
# TODO: get updated routes for these cars
|
||||
ignore_can_valid = [
|
||||
"VOLKSWAGEN GOLF",
|
||||
"ACURA ILX 2016 ACURAWATCH PLUS",
|
||||
"TOYOTA PRIUS 2017",
|
||||
"TOYOTA COROLLA 2017",
|
||||
|
||||
Reference in New Issue
Block a user