mirror of
https://github.com/firestar5683/StarPilot.git
synced 2026-07-08 07:02:06 +08:00
EV9 the final countdown
This commit is contained in:
@@ -131,47 +131,25 @@ def create_steering_messages(packer, CP, CAN, enabled, lat_active, apply_torque,
|
||||
lkas_values["LKAS_ANGLE_ACTIVE"] = 2 if lat_active else 1
|
||||
lkas_values["ADAS_ACIAnglTqRedcGainVal"] = apply_torque if lat_active else 0.0
|
||||
if ev9_angle_lkas_alt:
|
||||
if lat_active:
|
||||
lkas_values.update({
|
||||
"LKA_MODE": 0,
|
||||
"LKA_AVAILABLE": 3,
|
||||
"LKA_WARNING": 0,
|
||||
"LKA_ICON": lka_icon,
|
||||
"FCA_SYSWARN": 0,
|
||||
"TORQUE_REQUEST": 0,
|
||||
"STEER_REQ": 0,
|
||||
"LFA_BUTTON": 0,
|
||||
"LKA_ASSIST": 0,
|
||||
"DAMP_FACTOR": 100,
|
||||
"HAS_LANE_SAFETY": 0,
|
||||
})
|
||||
elif lkas_base_values:
|
||||
for signal in ("LKA_MODE", "LKA_AVAILABLE", "LKA_WARNING", "LKA_ICON", "FCA_SYSWARN",
|
||||
"LFA_BUTTON", "LKA_ASSIST", "DAMP_FACTOR", "HAS_LANE_SAFETY"):
|
||||
if signal in lkas_base_values:
|
||||
lkas_values[signal] = lkas_base_values[signal]
|
||||
lkas_values.update({
|
||||
"TORQUE_REQUEST": 0,
|
||||
"STEER_REQ": 0,
|
||||
})
|
||||
else:
|
||||
lkas_values.update({
|
||||
"LKA_MODE": 0,
|
||||
"LKA_AVAILABLE": 0,
|
||||
"LKA_WARNING": 0,
|
||||
"LKA_ICON": lka_icon,
|
||||
"FCA_SYSWARN": 0,
|
||||
"TORQUE_REQUEST": 0,
|
||||
"STEER_REQ": 0,
|
||||
"LFA_BUTTON": 0,
|
||||
"LKA_ASSIST": 0,
|
||||
"DAMP_FACTOR": 100,
|
||||
"HAS_LANE_SAFETY": 0,
|
||||
})
|
||||
# These signals overlap DAMP_FACTOR in the local DBC naming; omitting them
|
||||
# preserves the stock angle-steering damping byte expected by the ADAS ECU.
|
||||
lkas_values.pop("STEER_MODE", None)
|
||||
lkas_values.pop("NEW_SIGNAL_2", None)
|
||||
lkas_values = {
|
||||
"LKA_OptUsmSta": 0,
|
||||
"LKA_RcgSta": 3 if lat_active else 0,
|
||||
"LKA_LHLnWrnSta": 0,
|
||||
"LKA_RHLnWrnSta": 0,
|
||||
"LKA_HndsoffSnd": 0,
|
||||
"LKA_StrSnd": 0,
|
||||
"LKA_SysIndReq": 2 if enabled else 1,
|
||||
"StrTqReqVal": 0,
|
||||
"ActToiSta": 0,
|
||||
"ToiFltSta": 0,
|
||||
"LFA_BUTTON": 0,
|
||||
"LKA_SysWrn": 0,
|
||||
"Damping_Gain": 100,
|
||||
"LKAS_ANGLE_ACTIVE": 2 if lat_active else 1,
|
||||
"LKA_UsmMod": 0,
|
||||
"ADAS_StrAnglReqVal": apply_angle,
|
||||
"ADAS_ACIAnglTqRedcGainVal": apply_torque if lat_active else 0.0,
|
||||
}
|
||||
|
||||
ret = []
|
||||
if CP.flags & HyundaiFlags.CANFD_LKA_STEERING:
|
||||
|
||||
@@ -1856,6 +1856,19 @@ class TestHyundaiFingerprint:
|
||||
parser.update([(1, lkas_msgs)])
|
||||
|
||||
assert parser.can_valid
|
||||
assert parser.vl["LKAS_ALT"]["LKA_OptUsmSta"] == 0
|
||||
assert parser.vl["LKAS_ALT"]["LKA_RcgSta"] == 3
|
||||
assert parser.vl["LKAS_ALT"]["LKA_LHLnWrnSta"] == 0
|
||||
assert parser.vl["LKAS_ALT"]["LKA_RHLnWrnSta"] == 0
|
||||
assert parser.vl["LKAS_ALT"]["LKA_HndsoffSnd"] == 0
|
||||
assert parser.vl["LKAS_ALT"]["LKA_StrSnd"] == 0
|
||||
assert parser.vl["LKAS_ALT"]["LKA_SysIndReq"] == 2
|
||||
assert parser.vl["LKAS_ALT"]["StrTqReqVal"] == 0
|
||||
assert parser.vl["LKAS_ALT"]["ActToiSta"] == 0
|
||||
assert parser.vl["LKAS_ALT"]["ToiFltSta"] == 0
|
||||
assert parser.vl["LKAS_ALT"]["LKA_SysWrn"] == 0
|
||||
assert parser.vl["LKAS_ALT"]["Damping_Gain"] == 100
|
||||
assert parser.vl["LKAS_ALT"]["LKA_UsmMod"] == 0
|
||||
assert parser.vl["LKAS_ALT"]["LKA_MODE"] == 0
|
||||
assert parser.vl["LKAS_ALT"]["LKA_AVAILABLE"] == 3
|
||||
assert parser.vl["LKAS_ALT"]["LKA_WARNING"] == 0
|
||||
@@ -1871,7 +1884,7 @@ class TestHyundaiFingerprint:
|
||||
assert parser.vl["LKAS_ALT"]["ADAS_StrAnglReqVal"] == pytest.approx(-31.5)
|
||||
assert parser.vl["LKAS_ALT"]["ADAS_ACIAnglTqRedcGainVal"] == pytest.approx(0.44)
|
||||
|
||||
def test_ev9_angle_lkas_alt_preserves_stock_status_when_inactive(self):
|
||||
def test_ev9_angle_lkas_alt_clears_stock_status_when_inactive(self):
|
||||
CP = CarParams.new_message()
|
||||
CP.carFingerprint = CAR.KIA_EV9
|
||||
CP.flags = int(HyundaiFlags.CANFD | HyundaiFlags.EV | HyundaiFlags.CANFD_ANGLE_STEERING |
|
||||
@@ -1884,18 +1897,31 @@ class TestHyundaiFingerprint:
|
||||
stock_lkas = {
|
||||
"CHECKSUM": 1234,
|
||||
"COUNTER": 42,
|
||||
"LKA_OptUsmSta": 6,
|
||||
"LKA_MODE": 2,
|
||||
"LKA_RcgSta": 7,
|
||||
"LKA_AVAILABLE": 3,
|
||||
"LKA_LHLnWrnSta": 3,
|
||||
"LKA_RHLnWrnSta": 3,
|
||||
"LKA_WARNING": 1,
|
||||
"LKA_HndsoffSnd": 1,
|
||||
"LKA_StrSnd": 1,
|
||||
"LKA_SysIndReq": 4,
|
||||
"LKA_ICON": 1,
|
||||
"FCA_SYSWARN": 1,
|
||||
"StrTqReqVal": 17,
|
||||
"TORQUE_REQUEST": 17,
|
||||
"ActToiSta": 3,
|
||||
"STEER_REQ": 1,
|
||||
"ToiFltSta": 3,
|
||||
"LFA_BUTTON": 1,
|
||||
"LKA_SysWrn": 15,
|
||||
"LKA_ASSIST": 1,
|
||||
"Damping_Gain": 0,
|
||||
"STEER_MODE": 5,
|
||||
"NEW_SIGNAL_2": 0,
|
||||
"LKAS_ANGLE_ACTIVE": 2,
|
||||
"LKA_UsmMod": 3,
|
||||
"HAS_LANE_SAFETY": 1,
|
||||
"ADAS_StrAnglReqVal": 12.3,
|
||||
"ADAS_ACIAnglTqRedcGainVal": 0.42,
|
||||
@@ -1910,18 +1936,31 @@ class TestHyundaiFingerprint:
|
||||
parser.update([(1, lkas_msgs)])
|
||||
|
||||
assert parser.can_valid
|
||||
assert parser.vl["LKAS_ALT"]["LKA_MODE"] == 2
|
||||
assert parser.vl["LKAS_ALT"]["LKA_AVAILABLE"] == 3
|
||||
assert parser.vl["LKAS_ALT"]["LKA_WARNING"] == 1
|
||||
assert parser.vl["LKAS_ALT"]["LKA_OptUsmSta"] == 0
|
||||
assert parser.vl["LKAS_ALT"]["LKA_RcgSta"] == 0
|
||||
assert parser.vl["LKAS_ALT"]["LKA_LHLnWrnSta"] == 0
|
||||
assert parser.vl["LKAS_ALT"]["LKA_RHLnWrnSta"] == 0
|
||||
assert parser.vl["LKAS_ALT"]["LKA_HndsoffSnd"] == 0
|
||||
assert parser.vl["LKAS_ALT"]["LKA_StrSnd"] == 0
|
||||
assert parser.vl["LKAS_ALT"]["LKA_SysIndReq"] == 1
|
||||
assert parser.vl["LKAS_ALT"]["StrTqReqVal"] == 0
|
||||
assert parser.vl["LKAS_ALT"]["ActToiSta"] == 0
|
||||
assert parser.vl["LKAS_ALT"]["ToiFltSta"] == 0
|
||||
assert parser.vl["LKAS_ALT"]["LKA_SysWrn"] == 0
|
||||
assert parser.vl["LKAS_ALT"]["Damping_Gain"] == 100
|
||||
assert parser.vl["LKAS_ALT"]["LKA_UsmMod"] == 0
|
||||
assert parser.vl["LKAS_ALT"]["LKA_MODE"] == 0
|
||||
assert parser.vl["LKAS_ALT"]["LKA_AVAILABLE"] == 0
|
||||
assert parser.vl["LKAS_ALT"]["LKA_WARNING"] == 0
|
||||
assert parser.vl["LKAS_ALT"]["LKA_ICON"] == 1
|
||||
assert parser.vl["LKAS_ALT"]["FCA_SYSWARN"] == 1
|
||||
assert parser.vl["LKAS_ALT"]["FCA_SYSWARN"] == 0
|
||||
assert parser.vl["LKAS_ALT"]["TORQUE_REQUEST"] == 0
|
||||
assert parser.vl["LKAS_ALT"]["STEER_REQ"] == 0
|
||||
assert parser.vl["LKAS_ALT"]["LFA_BUTTON"] == 1
|
||||
assert parser.vl["LKAS_ALT"]["LKA_ASSIST"] == 1
|
||||
assert parser.vl["LKAS_ALT"]["DAMP_FACTOR"] == 0
|
||||
assert parser.vl["LKAS_ALT"]["LFA_BUTTON"] == 0
|
||||
assert parser.vl["LKAS_ALT"]["LKA_ASSIST"] == 0
|
||||
assert parser.vl["LKAS_ALT"]["DAMP_FACTOR"] == 100
|
||||
assert parser.vl["LKAS_ALT"]["LKAS_ANGLE_ACTIVE"] == 1
|
||||
assert parser.vl["LKAS_ALT"]["HAS_LANE_SAFETY"] == 1
|
||||
assert parser.vl["LKAS_ALT"]["HAS_LANE_SAFETY"] == 0
|
||||
assert parser.vl["LKAS_ALT"]["ADAS_StrAnglReqVal"] == pytest.approx(-31.5)
|
||||
assert parser.vl["LKAS_ALT"]["ADAS_ACIAnglTqRedcGainVal"] == pytest.approx(0.0)
|
||||
|
||||
|
||||
@@ -82,18 +82,31 @@ BO_ 261 ACCELERATOR_ALT: 32 XXX
|
||||
BO_ 272 LKAS_ALT: 32 XXX
|
||||
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
||||
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ LKA_OptUsmSta : 24|3@1+ (1,0) [0|7] "" ADAS_DRV
|
||||
SG_ LKA_MODE : 24|3@1+ (1,0) [0|7] "" XXX
|
||||
SG_ LKA_RcgSta : 27|3@1+ (1,0) [0|7] "" ADAS_DRV
|
||||
SG_ LKA_AVAILABLE : 27|2@1+ (1,0) [0|255] "" XXX
|
||||
SG_ LKA_LHLnWrnSta : 30|2@1+ (1,0) [0|3] "" ADAS_DRV
|
||||
SG_ LKA_RHLnWrnSta : 32|2@1+ (1,0) [0|3] "" ADAS_DRV
|
||||
SG_ LKA_WARNING : 32|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ LKA_HndsoffSnd : 34|2@1+ (1,0) [0|3] "" ADAS_DRV
|
||||
SG_ LKA_StrSnd : 36|2@1+ (1,0) [0|3] "" ADAS_DRV
|
||||
SG_ LKA_SysIndReq : 38|3@1+ (1,0) [0|7] "" ADAS_DRV
|
||||
SG_ LKA_ICON : 38|2@1+ (1,0) [0|255] "" XXX
|
||||
SG_ FCA_SYSWARN : 40|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ StrTqReqVal : 41|11@1+ (1,-1024) [0|4095] "" XXX
|
||||
SG_ TORQUE_REQUEST : 41|11@1+ (1,-1024) [0|4095] "" XXX
|
||||
SG_ ActToiSta : 52|2@1+ (1,0) [0|3] "" ADAS_DRV
|
||||
SG_ STEER_REQ : 52|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ ToiFltSta : 54|2@1+ (1,0) [0|3] "" ADAS_DRV
|
||||
SG_ LFA_BUTTON : 56|1@1+ (1,0) [0|255] "" XXX
|
||||
SG_ LKA_SysWrn : 60|4@1+ (1,0) [0|15] "" ADAS_DRV
|
||||
SG_ LKA_ASSIST : 62|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Damping_Gain : 64|8@1+ (1,0) [0|255] "" CGW
|
||||
SG_ STEER_MODE : 65|3@1+ (1,0) [0|1] "" XXX
|
||||
SG_ NEW_SIGNAL_2 : 70|2@0+ (1,0) [0|3] "" XXX
|
||||
SG_ LKAS_ANGLE_ACTIVE : 77|2@0+ (1,0) [0|3] "" XXX
|
||||
SG_ LKA_UsmMod : 80|2@1+ (1,0) [0|3] "" ADAS_DRV
|
||||
SG_ HAS_LANE_SAFETY : 80|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ ADAS_StrAnglReqVal : 82|14@1- (0.1,0) [0|176.7] "Deg" GW_RGW,MDPS,SFA
|
||||
SG_ ADAS_ACIAnglTqRedcGainVal : 96|8@1+ (0.004,0) [0|1] "" GW_RGW,MDPS,SFA
|
||||
|
||||
@@ -319,18 +319,31 @@ BO_ 261 ACCELERATOR_ALT: 32 XXX
|
||||
BO_ 272 LKAS_ALT: 32 XXX
|
||||
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
||||
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ LKA_OptUsmSta : 24|3@1+ (1,0) [0|7] "" ADAS_DRV
|
||||
SG_ LKA_MODE : 24|3@1+ (1,0) [0|7] "" XXX
|
||||
SG_ LKA_RcgSta : 27|3@1+ (1,0) [0|7] "" ADAS_DRV
|
||||
SG_ LKA_AVAILABLE : 27|2@1+ (1,0) [0|255] "" XXX
|
||||
SG_ LKA_LHLnWrnSta : 30|2@1+ (1,0) [0|3] "" ADAS_DRV
|
||||
SG_ LKA_RHLnWrnSta : 32|2@1+ (1,0) [0|3] "" ADAS_DRV
|
||||
SG_ LKA_WARNING : 32|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ LKA_HndsoffSnd : 34|2@1+ (1,0) [0|3] "" ADAS_DRV
|
||||
SG_ LKA_StrSnd : 36|2@1+ (1,0) [0|3] "" ADAS_DRV
|
||||
SG_ LKA_SysIndReq : 38|3@1+ (1,0) [0|7] "" ADAS_DRV
|
||||
SG_ LKA_ICON : 38|2@1+ (1,0) [0|255] "" XXX
|
||||
SG_ FCA_SYSWARN : 40|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ StrTqReqVal : 41|11@1+ (1,-1024) [0|4095] "" XXX
|
||||
SG_ TORQUE_REQUEST : 41|11@1+ (1,-1024) [0|4095] "" XXX
|
||||
SG_ ActToiSta : 52|2@1+ (1,0) [0|3] "" ADAS_DRV
|
||||
SG_ STEER_REQ : 52|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ ToiFltSta : 54|2@1+ (1,0) [0|3] "" ADAS_DRV
|
||||
SG_ LFA_BUTTON : 56|1@1+ (1,0) [0|255] "" XXX
|
||||
SG_ LKA_SysWrn : 60|4@1+ (1,0) [0|15] "" ADAS_DRV
|
||||
SG_ LKA_ASSIST : 62|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Damping_Gain : 64|8@1+ (1,0) [0|255] "" CGW
|
||||
SG_ STEER_MODE : 65|3@1+ (1,0) [0|1] "" XXX
|
||||
SG_ NEW_SIGNAL_2 : 70|2@0+ (1,0) [0|3] "" XXX
|
||||
SG_ LKAS_ANGLE_ACTIVE : 77|2@0+ (1,0) [0|3] "" XXX
|
||||
SG_ LKA_UsmMod : 80|2@1+ (1,0) [0|3] "" ADAS_DRV
|
||||
SG_ HAS_LANE_SAFETY : 80|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ ADAS_StrAnglReqVal : 82|14@1- (0.1,0) [0|176.7] "Deg" GW_RGW,MDPS,SFA
|
||||
SG_ ADAS_ACIAnglTqRedcGainVal : 96|8@1+ (0.004,0) [0|1] "" GW_RGW,MDPS,SFA
|
||||
|
||||
Reference in New Issue
Block a user