Don't Kill Suave

This commit is contained in:
firestar5683
2026-06-18 10:19:06 -05:00
parent 967fb96167
commit f1a256dac0
4 changed files with 6 additions and 25 deletions
@@ -132,8 +132,8 @@ def create_steering_messages(packer, CP, CAN, enabled, lat_active, apply_torque,
ret = []
if CP.flags & HyundaiFlags.CANFD_LKA_STEERING:
lkas_msg = "LKAS_ALT" if CP.flags & HyundaiFlags.CANFD_LKA_STEERING_ALT else "LKAS"
# Keep the direct LFA packet shape aligned across stock-long and OP-long paths.
ret.append(packer.make_can_msg("LFA", CAN.ECAN, lfa_values))
if CP.openpilotLongitudinalControl:
ret.append(packer.make_can_msg("LFA", CAN.ECAN, lfa_values))
ret.append(packer.make_can_msg(lkas_msg, CAN.ACAN, lkas_values))
else:
if CP.flags & HyundaiFlags.CANFD_ANGLE_STEERING:
@@ -1394,7 +1394,6 @@ class TestHyundaiFingerprint:
packer = CANPacker(DBC[CP.carFingerprint][Bus.pt])
can_bus = CanBus(CP)
parser = CANParser(DBC[CP.carFingerprint][Bus.pt], [("LFA", 0)], can_bus.ECAN)
stock_lfa = {
"CHECKSUM": 1234,
@@ -1416,24 +1415,9 @@ class TestHyundaiFingerprint:
msgs = hyundaicanfd.create_steering_messages(packer, CP, can_bus, True, True, 123, 0.0, stock_lfa)
assert [(packer.dbc.addr_to_msg[addr].name, bus) for addr, _, bus in msgs] == [
("LFA", can_bus.ECAN),
("LKAS", can_bus.ACAN),
]
lfa_msgs = [msg for msg in msgs if msg[0] == 0x12A]
assert len(lfa_msgs) == 1
parser.update([(1, lfa_msgs)])
assert parser.can_valid
assert parser.vl["LFA"]["NEW_SIGNAL_1"] == 3
assert parser.vl["LFA"]["NEW_SIGNAL_2"] == 2
assert parser.vl["LFA"]["HAS_LANE_SAFETY"] == 1
assert parser.vl["LFA"]["DAMP_FACTOR"] == 0x77
assert parser.vl["LFA"]["TORQUE_REQUEST"] == 123
assert parser.vl["LFA"]["STEER_REQ"] == 1
assert parser.vl["LFA"]["LKA_ICON"] == 2
def test_kia_ev6_lkas_helper_preserves_stock_camera_fields_with_stock_long(self):
CP = CarParams.new_message()
CP.carFingerprint = CAR.KIA_EV6
@@ -8,13 +8,11 @@
#define HYUNDAI_CANFD_LKA_STEERING_COMMON_TX_MSGS(a_can, e_can) \
HYUNDAI_CANFD_CRUISE_BUTTON_TX_MSGS(e_can) \
{0x12A, e_can, 16, .check_relay = (e_can) == 0}, /* LFA */ \
{0x50, a_can, 16, .check_relay = (a_can) == 0}, /* LKAS */ \
{0x2A4, a_can, 24, .check_relay = (a_can) == 0}, /* CAM_0x2A4 */ \
#define HYUNDAI_CANFD_LKA_STEERING_ALT_COMMON_TX_MSGS(a_can, e_can) \
HYUNDAI_CANFD_CRUISE_BUTTON_TX_MSGS(e_can) \
{0x12A, e_can, 16, .check_relay = (e_can) == 0}, /* LFA */ \
{0x110, a_can, 32, .check_relay = (a_can) == 0}, /* LKAS_ALT */ \
{0x362, a_can, 32, .check_relay = (a_can) == 0}, /* CAM_0x362 */ \
@@ -223,9 +221,8 @@ static bool hyundai_canfd_tx_hook(const CANPacket_t *msg) {
}
// steering
const bool stock_lka_steering = hyundai_canfd_lka_steering && !hyundai_longitudinal;
const bool steer_msg = (msg->addr == 0x12aU) || (stock_lka_steering && (msg->addr == hyundai_canfd_get_lka_addr()));
if (steer_msg) {
const unsigned int steer_addr = (hyundai_canfd_lka_steering && !hyundai_longitudinal) ? hyundai_canfd_get_lka_addr() : 0x12aU;
if (msg->addr == steer_addr) {
if (hyundai_canfd_angle_steering) {
const int lkas_angle_active = (msg->data[9] >> 4U) & 0x3U;
const bool steer_angle_req = lkas_angle_active != 1;
@@ -470,7 +470,7 @@ class TestHyundaiCanfdCCNCSupportFrames(common.SafetyTestBase):
class TestHyundaiCanfdLKASteeringEV(TestHyundaiCanfdBase):
TX_MSGS = [[0x50, 0], [0x12A, 1], [0x1CF, 1], [0x2A4, 0]]
TX_MSGS = [[0x50, 0], [0x1CF, 1], [0x2A4, 0]]
RELAY_MALFUNCTION_ADDRS = {0: (0x50, 0x2a4)} # LKAS, CAM_0x2A4
FWD_BLACKLISTED_ADDRS = {2: [0x50, 0x2a4]}
@@ -507,7 +507,7 @@ class TestHyundaiCanfdLKASteeringEV(TestHyundaiCanfdBase):
# TODO: Handle ICE and HEV configurations once we see cars that use the new messages
class TestHyundaiCanfdLKASteeringAltEV(TestHyundaiCanfdBase):
TX_MSGS = [[0x110, 0], [0x12A, 1], [0x1CF, 1], [0x362, 0]]
TX_MSGS = [[0x110, 0], [0x1CF, 1], [0x362, 0]]
RELAY_MALFUNCTION_ADDRS = {0: (0x110, 0x362)} # LKAS_ALT, CAM_0x362
FWD_BLACKLISTED_ADDRS = {2: [0x110, 0x362]}