|
|
|
@ -51,7 +51,7 @@ def create_tja_command(packer, lca_rq: int, ramp_type: int, precision: int, path |
|
|
|
|
return packer.make_can_msg("LateralMotionControl", 0, values) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def create_lkas_ui_command(packer, main_on: bool, enabled: bool, steer_alert: bool, stock_values): |
|
|
|
|
def create_lkas_ui_command(packer, main_on: bool, enabled: bool, steer_alert: bool, stock_values: dict): |
|
|
|
|
""" |
|
|
|
|
Creates a CAN message for the Ford IPC IPMA/LKAS status. |
|
|
|
|
|
|
|
|
@ -72,25 +72,14 @@ def create_lkas_ui_command(packer, main_on: bool, enabled: bool, steer_alert: bo |
|
|
|
|
lines = 30 |
|
|
|
|
|
|
|
|
|
values = { |
|
|
|
|
"FeatConfigIpmaActl": stock_values["FeatConfigIpmaActl"], # [0|65535] |
|
|
|
|
"FeatNoIpmaActl": stock_values["FeatNoIpmaActl"], # [0|65535] |
|
|
|
|
"PersIndexIpma_D_Actl": stock_values["PersIndexIpma_D_Actl"], # [0|7] |
|
|
|
|
"AhbcRampingV_D_Rq": stock_values["AhbcRampingV_D_Rq"], # AHB ramping [0|3] |
|
|
|
|
**stock_values, |
|
|
|
|
"LaActvStats_D_Dsply": lines, # LKAS status (lines) [0|31] |
|
|
|
|
"LaDenyStats_B_Dsply": stock_values["LaDenyStats_B_Dsply"], # LKAS error [0|1] |
|
|
|
|
"LaHandsOff_D_Dsply": 2 if steer_alert else 0, # 0=HandsOn, 1=Level1 (w/o chime), 2=Level2 (w/ chime), 3=Suppressed |
|
|
|
|
"CamraDefog_B_Req": stock_values["CamraDefog_B_Req"], # Windshield heater? [0|1] |
|
|
|
|
"CamraStats_D_Dsply": stock_values["CamraStats_D_Dsply"], # Camera status [0|3] |
|
|
|
|
"DasAlrtLvl_D_Dsply": stock_values["DasAlrtLvl_D_Dsply"], # DAS alert level [0|7] |
|
|
|
|
"DasStats_D_Dsply": stock_values["DasStats_D_Dsply"], # DAS status [0|3] |
|
|
|
|
"DasWarn_D_Dsply": stock_values["DasWarn_D_Dsply"], # DAS warning [0|3] |
|
|
|
|
"AhbHiBeam_D_Rq": stock_values["AhbHiBeam_D_Rq"], # AHB status [0|3] |
|
|
|
|
"Set_Me_X1": stock_values["Set_Me_X1"], # [0|15] |
|
|
|
|
} |
|
|
|
|
return packer.make_can_msg("IPMA_Data", 0, values) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def create_acc_ui_command(packer, main_on: bool, enabled: bool, stock_values): |
|
|
|
|
def create_acc_ui_command(packer, main_on: bool, enabled: bool, stock_values: dict): |
|
|
|
|
""" |
|
|
|
|
Creates a CAN message for the Ford IPC adaptive cruise, forward collision |
|
|
|
|
warning and traffic jam assist status. |
|
|
|
@ -101,32 +90,8 @@ def create_acc_ui_command(packer, main_on: bool, enabled: bool, stock_values): |
|
|
|
|
""" |
|
|
|
|
|
|
|
|
|
values = { |
|
|
|
|
"HaDsply_No_Cs": stock_values["HaDsply_No_Cs"], # [0|255] |
|
|
|
|
"HaDsply_No_Cnt": stock_values["HaDsply_No_Cnt"], # [0|15] |
|
|
|
|
"AccStopStat_D_Dsply": stock_values["AccStopStat_D_Dsply"], # ACC stopped status message: 0=NoDisplay, 1=ResumeReady, 2=Stopped, 3=PressResume [0|3] |
|
|
|
|
"AccTrgDist2_D_Dsply": stock_values["AccTrgDist2_D_Dsply"], # ACC target distance [0|15] |
|
|
|
|
"AccStopRes_B_Dsply": stock_values["AccStopRes_B_Dsply"], # [0|1] |
|
|
|
|
"TjaWarn_D_Rq": stock_values["TjaWarn_D_Rq"], # TJA warning: 0=NoWarning, 1=Cancel, 2=HardTakeOverLevel1, 3=HardTakeOverLevel2 [0|7] |
|
|
|
|
**stock_values, |
|
|
|
|
"Tja_D_Stat": 2 if enabled else (1 if main_on else 0), # TJA status: 0=Off, 1=Standby, 2=Active, 3=InterventionLeft, 4=InterventionRight, 5=WarningLeft, 6=WarningRight, 7=NotUsed [0|7] |
|
|
|
|
"TjaMsgTxt_D_Dsply": stock_values["TjaMsgTxt_D_Dsply"], # TJA text [0|7] |
|
|
|
|
"IaccLamp_D_Rq": stock_values["IaccLamp_D_Rq"], # iACC status icon [0|3] |
|
|
|
|
"AccMsgTxt_D2_Rq": stock_values["AccMsgTxt_D2_Rq"], # ACC text [0|15] |
|
|
|
|
"FcwDeny_B_Dsply": stock_values["FcwDeny_B_Dsply"], # FCW disabled [0|1] |
|
|
|
|
"FcwMemStat_B_Actl": stock_values["FcwMemStat_B_Actl"], # FCW enabled setting [0|1] |
|
|
|
|
"AccTGap_B_Dsply": stock_values["AccTGap_B_Dsply"], # ACC time gap display setting [0|1] |
|
|
|
|
"CadsAlignIncplt_B_Actl": stock_values["CadsAlignIncplt_B_Actl"], # Radar alignment? [0|1] |
|
|
|
|
"AccFllwMde_B_Dsply": stock_values["AccFllwMde_B_Dsply"], # ACC follow mode display setting [0|1] |
|
|
|
|
"CadsRadrBlck_B_Actl": stock_values["CadsRadrBlck_B_Actl"], # Radar blocked? [0|1] |
|
|
|
|
"CmbbPostEvnt_B_Dsply": stock_values["CmbbPostEvnt_B_Dsply"], # AEB event status [0|1] |
|
|
|
|
"AccStopMde_B_Dsply": stock_values["AccStopMde_B_Dsply"], # ACC stop mode display setting [0|1] |
|
|
|
|
"FcwMemSens_D_Actl": stock_values["FcwMemSens_D_Actl"], # FCW sensitivity setting [0|3] |
|
|
|
|
"FcwMsgTxt_D_Rq": stock_values["FcwMsgTxt_D_Rq"], # FCW text [0|7] |
|
|
|
|
"AccWarn_D_Dsply": stock_values["AccWarn_D_Dsply"], # ACC warning [0|3] |
|
|
|
|
"FcwVisblWarn_B_Rq": stock_values["FcwVisblWarn_B_Rq"], # FCW alert: 0=Off, 1=On [0|1] |
|
|
|
|
"FcwAudioWarn_B_Rq": stock_values["FcwAudioWarn_B_Rq"], # FCW audio: 0=Off, 1=On [0|1] |
|
|
|
|
"AccTGap_D_Dsply": stock_values["AccTGap_D_Dsply"], # ACC time gap: 1=Time_Gap_1, 2=Time_Gap_2, ..., 5=Time_Gap_5 [0|7] |
|
|
|
|
"AccMemEnbl_B_RqDrv": stock_values["AccMemEnbl_B_RqDrv"], # ACC setting: 0=NormalCruise, 1=AdaptiveCruise [0|1] |
|
|
|
|
"FdaMem_B_Stat": stock_values["FdaMem_B_Stat"], # FDA enabled setting [0|1] |
|
|
|
|
} |
|
|
|
|
return packer.make_can_msg("ACCDATA_3", 0, values) |
|
|
|
|
|
|
|
|
|