ACC_04 Charisma profiles and HUD alerts

pull/23257/head
Jason Young 4 years ago
parent a73c72ef60
commit 77da086b6f
  1. 2
      opendbc
  2. 2
      panda
  3. 3
      selfdrive/car/volkswagen/carcontroller.py
  4. 8
      selfdrive/car/volkswagen/carstate.py
  5. 34
      selfdrive/car/volkswagen/volkswagencan.py

@ -1 +1 @@
Subproject commit f64f4694516c0cd0e792fe8663a2c556c0a4d652
Subproject commit c331be696a7ae8b569efc0a580427fe0623186ed

@ -1 +1 @@
Subproject commit ae9f23fdb1c49be6e478165f79c3ec7de2c0b3bb
Subproject commit 76dc825ad8329bdc3fff97583ad88a7af81c7e2e

@ -77,8 +77,9 @@ class CarController():
if frame % P.ACC_HUD_STEP == 0:
idx = (frame / P.ACC_HUD_STEP) % 16
can_sends.append(volkswagencan.create_mqb_acc_hud_control(self.packer_pt, CANBUS.pt, CS.tsk_status,
can_sends.append(volkswagencan.create_mqb_acc_02_control(self.packer_pt, CANBUS.pt, CS.tsk_status,
set_speed * CV.MS_TO_KPH, speed_visible, lead_visible, idx))
can_sends.append(volkswagencan.create_mqb_acc_04_control(self.packer_pt, CANBUS.pt, CS.acc_04_stock_values))
# **** Steering Controls ************************************************ #

@ -95,13 +95,14 @@ class CarState(CarStateBase):
ret.stockAeb = bool(ext_cp.vl["ACC_10"]["ANB_Teilbremsung_Freigabe"]) or bool(ext_cp.vl["ACC_10"]["ANB_Zielbremsung_Freigabe"])
# Update ACC radar status.
self.acc_04_stock_values = ext_cp.vl["ACC_04"]
self.tsk_status = pt_cp.vl["TSK_06"]["TSK_Status"]
if self.tsk_status == 2:
# ACC okay and enabled, but not currently engaged
ret.cruiseState.available = True
ret.cruiseState.enabled = False
elif self.tsk_status in [3, 4, 5]:
# ACC okay and enabled, currently regulating speed (3) or driver accel override (4) or overrun coast-down (5)
# ACC okay and enabled, currently regulating speed (3) or driver accel override (4) or brake only (5)
ret.cruiseState.available = True
ret.cruiseState.enabled = True
else:
@ -263,12 +264,17 @@ class MqbExtraSignals:
# Additional signal and message lists for optional or bus-portable controllers
fwd_radar_signals = [
("ACC_Wunschgeschw", "ACC_02", 0), # ACC set speed
("ACC_Charisma_FahrPr", "ACC_04", 0), # Driving profile selection
("ACC_Charisma_Status", "ACC_04", 0), # Driving profile status
("ACC_Charisma_Umschaltung", "ACC_04", 0), # Driving profile switching
("ACC_Texte_braking_guard","ACC_04",0), # Part of ACC driver alerts in instrument cluster
("AWV2_Freigabe", "ACC_10", 0), # FCW brake jerk release
("ANB_Teilbremsung_Freigabe", "ACC_10", 0), # AEB partial braking release
("ANB_Zielbremsung_Freigabe", "ACC_10", 0), # AEB target braking release
]
fwd_radar_checks = [
("ACC_10", 50), # From J428 ACC radar control module
("ACC_04", 17), # From J428 ACC radar control module
("ACC_02", 17), # From J428 ACC radar control module
]
bsm_radar_signals = [

@ -48,6 +48,27 @@ def create_mqb_acc_buttons_control(packer, bus, buttonStatesToSend, CS, idx):
}
return packer.make_can_msg("GRA_ACC_01", bus, values, idx)
def create_mqb_acc_02_control(packer, bus, acc_status, set_speed, speed_visible, lead_visible, idx):
values = {
"ACC_Status_Anzeige": acc_status,
"ACC_Wunschgeschw": 327.36 if not speed_visible else set_speed,
"ACC_Gesetzte_Zeitluecke": 3,
"ACC_Display_Prio": 3,
"ACC_Abstandsindex": 637 if lead_visible else 0,
}
return packer.make_can_msg("ACC_02", bus, values, idx)
def create_mqb_acc_04_control(packer, bus, acc_04_stock_values):
values = acc_04_stock_values.copy()
# Suppress disengagement alert from stock radar when OP long is in use, but passthru FCW/AEB alerts
if values["ACC_Texte_braking_guard"] == 4:
values["ACC_Texte_braking_guard"] = 0
return packer.make_can_msg("ACC_04", bus, values)
def create_mqb_acc_06_control(packer, bus, enabled, acc_status, accel, acc_stopping, acc_starting,
cb_pos, cb_neg, idx):
values = {
@ -74,18 +95,7 @@ def create_mqb_acc_07_control(packer, bus, enabled, accel, acc_hold_request, acc
"ACC_Hold_Type": acc_hold_type,
"ACC_Hold_Release": acc_hold_release,
"ACC_Accel_Secondary": accel+0.01 if enabled else 3.02,
"ACC_Accel_Primary": accel if enabled else 3.01,
"ACC_Accel_TSK": accel if enabled else 3.01,
}
return packer.make_can_msg("ACC_07", bus, values, idx)
def create_mqb_acc_hud_control(packer, bus, acc_status, set_speed, speed_visible, lead_visible, idx):
values = {
"ACC_Status_Anzeige": acc_status,
"ACC_Wunschgeschw": 327.36 if not speed_visible else set_speed,
"ACC_Gesetzte_Zeitluecke": 3,
"ACC_Display_Prio": 3,
"ACC_Abstandsindex": 637 if lead_visible else 0,
}
return packer.make_can_msg("ACC_02", bus, values, idx)

Loading…
Cancel
Save