@ -150,10 +150,37 @@ def create_acc_ui_msg(packer, main_on: bool, enabled: bool, hud_control, stock_v
else :
status = 0 # Off
values = {
* * stock_values ,
" Tja_D_Stat " : status ,
}
values = { s : stock_values [ s ] for s in [
" HaDsply_No_Cs " ,
" HaDsply_No_Cnt " ,
" AccStopStat_D_Dsply " , # ACC stopped status message
" AccTrgDist2_D_Dsply " , # ACC target distance
" AccStopRes_B_Dsply " ,
" TjaWarn_D_Rq " , # TJA warning
" TjaMsgTxt_D_Dsply " , # TJA text
" IaccLamp_D_Rq " , # iACC status icon
" AccMsgTxt_D2_Rq " , # ACC text
" FcwDeny_B_Dsply " , # FCW disabled
" FcwMemStat_B_Actl " , # FCW enabled setting
" AccTGap_B_Dsply " , # ACC time gap display setting
" CadsAlignIncplt_B_Actl " ,
" AccFllwMde_B_Dsply " , # ACC follow mode display setting
" CadsRadrBlck_B_Actl " ,
" CmbbPostEvnt_B_Dsply " , # AEB event status
" AccStopMde_B_Dsply " , # ACC stop mode display setting
" FcwMemSens_D_Actl " , # FCW sensitivity setting
" FcwMsgTxt_D_Rq " , # FCW text
" AccWarn_D_Dsply " , # ACC warning
" FcwVisblWarn_B_Rq " , # FCW visible alert
" FcwAudioWarn_B_Rq " , # FCW audio alert
" AccTGap_D_Dsply " , # ACC time gap
" AccMemEnbl_B_RqDrv " , # ACC adaptive/normal setting
" FdaMem_B_Stat " , # FDA enabled setting
] }
values . update ( {
" Tja_D_Stat " : status , # TJA status
} )
return packer . make_can_msg ( " ACCDATA_3 " , CANBUS . main , values )
@ -200,11 +227,26 @@ def create_lkas_ui_msg(packer, main_on: bool, enabled: bool, steer_alert: bool,
hands_on_wheel_dsply = 1 if steer_alert else 0
values = {
* * stock_values ,
values = { s : stock_values [ s ] for s in [
" FeatConfigIpmaActl " ,
" FeatNoIpmaActl " ,
" PersIndexIpma_D_Actl " ,
" AhbcRampingV_D_Rq " , # AHB ramping
" LaDenyStats_B_Dsply " , # LKAS error
" CamraDefog_B_Req " , # Windshield heater?
" CamraStats_D_Dsply " , # Camera status
" DasAlrtLvl_D_Dsply " , # DAS alert level
" DasStats_D_Dsply " , # DAS status
" DasWarn_D_Dsply " , # DAS warning
" AhbHiBeam_D_Rq " , # AHB status
" Passthru_63 " ,
" Passthru_48 " ,
] }
values . update ( {
" LaActvStats_D_Dsply " : lines , # LKAS status (lines) [0|31]
" LaHandsOff_D_Dsply " : hands_on_wheel_dsply , # 0=HandsOn, 1=Level1 (w/o chime), 2=Level2 (w/ chime), 3=Suppressed
}
} )
return packer . make_can_msg ( " IPMA_Data " , CANBUS . main , values )
@ -218,10 +260,43 @@ def create_button_msg(packer, stock_values: dict, cancel=False, resume=False, tj
Frequency is 10 Hz .
"""
values = {
* * stock_values ,
values = { s : stock_values [ s ] for s in [
" HeadLghtHiFlash_D_Stat " , # SCCM Passthrough the remaining buttons
" TurnLghtSwtch_D_Stat " , # SCCM Turn signal switch
" WiprFront_D_Stat " ,
" LghtAmb_D_Sns " ,
" AccButtnGapDecPress " ,
" AccButtnGapIncPress " ,
" AslButtnOnOffCnclPress " ,
" AslButtnOnOffPress " ,
" LaSwtchPos_D_Stat " ,
" CcAslButtnCnclResPress " ,
" CcAslButtnDeny_B_Actl " ,
" CcAslButtnIndxDecPress " ,
" CcAslButtnIndxIncPress " ,
" CcAslButtnOffCnclPress " ,
" CcAslButtnOnOffCncl " ,
" CcAslButtnOnPress " ,
" CcAslButtnResDecPress " ,
" CcAslButtnResIncPress " ,
" CcAslButtnSetDecPress " ,
" CcAslButtnSetIncPress " ,
" CcAslButtnSetPress " ,
" CcButtnOffPress " ,
" CcButtnOnOffCnclPress " ,
" CcButtnOnOffPress " ,
" CcButtnOnPress " ,
" HeadLghtHiFlash_D_Actl " ,
" HeadLghtHiOn_B_StatAhb " ,
" AhbStat_B_Dsply " ,
" AccButtnGapTogglePress " ,
" WiprFrontSwtch_D_Stat " ,
" HeadLghtHiCtrl_D_RqAhb " ,
] }
values . update ( {
" CcAslButtnCnclPress " : 1 if cancel else 0 , # CC cancel button
" CcAsllButtnResPress " : 1 if resume else 0 , # CC resume button
" TjaButtnOnOffPress " : 1 if tja_toggle else 0 , # TJA toggle button
}
" TjaButtnOnOffPress " : 1 if tja_toggle else 0 , # LCA/ TJA toggle button
} )
return packer . make_can_msg ( " Steering_Data_FD1 " , bus , values )