Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hyundai: Sonata Hybrid 2024 Port #1397

Draft
wants to merge 34 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
7de437c
init
royjr Oct 22, 2024
870b095
Merge branch 'commaai:master' into sonata-hev-2024-port
royjr Nov 4, 2024
55239df
remove hybrid flag
royjr Nov 4, 2024
451438f
Merge branch 'commaai:master' into sonata-hev-2024-port
royjr Nov 7, 2024
2fca390
Update routes.py
royjr Nov 7, 2024
39c3c10
Merge branch 'commaai:master' into sonata-hev-2024-port
royjr Nov 9, 2024
faabf23
better route
royjr Nov 9, 2024
72ce254
Merge branch 'master' into sonata-hev-2024-port
royjr Nov 21, 2024
3685381
remove todo
royjr Nov 21, 2024
35689ca
use default tireStiffnessFactor
royjr Nov 21, 2024
6874314
remove steerRatio factor
royjr Nov 21, 2024
42cd3f8
Merge branch 'commaai:master' into sonata-hev-2024-port
royjr Nov 23, 2024
a2fdff9
Merge branch 'commaai:master' into sonata-hev-2024-port
royjr Nov 24, 2024
77c11a6
add new messages
royjr Nov 28, 2024
fc402f6
block faults
royjr Nov 28, 2024
d8d59a2
fix whitespace
royjr Nov 28, 2024
2b52543
Merge branch 'commaai:master' into sonata-hev-2024-port
royjr Dec 4, 2024
85c4b40
better messages
royjr Dec 6, 2024
2fb07dd
Update carcontroller.py
royjr Dec 6, 2024
7db6b7f
Update carstate.py
royjr Dec 6, 2024
c4f23f5
Update hyundaicanfd.py
royjr Dec 6, 2024
290a358
add blindspot alt
royjr Dec 6, 2024
61c5db0
update lanelines
royjr Dec 7, 2024
5f3063e
fix indents
royjr Dec 7, 2024
1628aeb
Update hyundai_canfd.dbc
royjr Dec 7, 2024
bc9c940
Merge branch 'commaai:master' into sonata-hev-2024-port
royjr Dec 7, 2024
3de60d1
better!
royjr Dec 8, 2024
4a68d3b
even better
royjr Dec 8, 2024
5adcc7f
debugless
royjr Dec 8, 2024
09bd8d8
ew
royjr Dec 8, 2024
2de6be6
wrong one
royjr Dec 8, 2024
0a78aa3
no params
royjr Dec 9, 2024
e6948aa
more
royjr Dec 9, 2024
fc4895a
better
royjr Dec 10, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion opendbc/car/hyundai/carcontroller.py
Original file line number Diff line number Diff line change
Expand Up @@ -115,8 +115,11 @@ def update(self, CC, CS, now_nanos):
self.CP.flags & HyundaiFlags.CANFD_HDA2_ALT_STEERING))

# LFA and HDA icons
if self.frame % 5 == 0 and (not hda2 or hda2_long):
if self.frame % 5 == 0 and (not hda2 or hda2_long) and self.car_fingerprint not in (CAR.HYUNDAI_SONATA_HEV_2024,):
can_sends.append(hyundaicanfd.create_lfahda_cluster(self.packer, self.CAN, CC.enabled))
if self.frame % 5 == 0 and (not hda2 or hda2_long) and self.car_fingerprint in (CAR.HYUNDAI_SONATA_HEV_2024,):
can_sends.append(hyundaicanfd.create_msg_161(self.packer, self.CAN, CC.enabled, CS.msg_161, self.CP, hud_control, CS, CC, self.frame))
can_sends.append(hyundaicanfd.create_msg_162(self.packer, self.CAN, CC.enabled, CS.msg_162, self.CP, hud_control))

# blinkers
if hda2 and self.CP.flags & HyundaiFlags.ENABLE_BLINKERS:
Expand Down
18 changes: 15 additions & 3 deletions opendbc/car/hyundai/carstate.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,8 @@ def __init__(self, CP):
self.buttons_counter = 0

self.cruise_info = {}
self.msg_161 = {}
self.msg_162 = {}

# On some cars, CLU15->CF_Clu_VehicleSpeed can oscillate faster than the dash updates. Sample at 5 Hz
self.cluster_speed = 0
Expand Down Expand Up @@ -224,13 +226,14 @@ def update_canfd(self, can_parsers) -> structs.CarState:

# TODO: alt signal usage may be described by cp.vl['BLINKERS']['USE_ALT_LAMP']
left_blinker_sig, right_blinker_sig = "LEFT_LAMP", "RIGHT_LAMP"
if self.CP.carFingerprint == CAR.HYUNDAI_KONA_EV_2ND_GEN:
if self.CP.carFingerprint in (CAR.HYUNDAI_KONA_EV_2ND_GEN, CAR.HYUNDAI_SONATA_HEV_2024):
left_blinker_sig, right_blinker_sig = "LEFT_LAMP_ALT", "RIGHT_LAMP_ALT"
ret.leftBlinker, ret.rightBlinker = self.update_blinker_from_lamp(50, cp.vl["BLINKERS"][left_blinker_sig],
cp.vl["BLINKERS"][right_blinker_sig])
if self.CP.enableBsm:
ret.leftBlindspot = cp.vl["BLINDSPOTS_REAR_CORNERS"]["FL_INDICATOR"] != 0
ret.rightBlindspot = cp.vl["BLINDSPOTS_REAR_CORNERS"]["FR_INDICATOR"] != 0
alt = "_ALT" if self.CP.carFingerprint == CAR.HYUNDAI_SONATA_HEV_2024 else ""
ret.leftBlindspot = cp.vl["BLINDSPOTS_REAR_CORNERS"][f"FL_INDICATOR{alt}"] != 0
ret.rightBlindspot = cp.vl["BLINDSPOTS_REAR_CORNERS"][f"FR_INDICATOR{alt}"] != 0

# cruise state
# CAN FD cars enable on main button press, set available if no TCS faults preventing engagement
Expand Down Expand Up @@ -267,6 +270,10 @@ def update_canfd(self, can_parsers) -> structs.CarState:
ret.buttonEvents = [*create_button_events(self.cruise_buttons[-1], prev_cruise_buttons, BUTTONS_DICT),
*create_button_events(self.main_buttons[-1], prev_main_buttons, {1: ButtonType.mainCruise})]

if self.CP.carFingerprint in (CAR.HYUNDAI_SONATA_HEV_2024,):
self.msg_161 = copy.copy(cp_cam.vl["MSG_161"])
self.msg_162 = copy.copy(cp_cam.vl["MSG_162"])

return ret

def get_can_parsers_canfd(self, CP):
Expand Down Expand Up @@ -314,6 +321,11 @@ def get_can_parsers_canfd(self, CP):
cam_messages += [
("SCC_CONTROL", 50),
]
if self.CP.carFingerprint in (CAR.HYUNDAI_SONATA_HEV_2024,):
cam_messages += [
("MSG_161", 20),
("MSG_162", 20),
]

return {
Bus.pt: CANParser(DBC[CP.carFingerprint][Bus.pt], pt_messages, CanBus(CP).ECAN),
Expand Down
8 changes: 8 additions & 0 deletions opendbc/car/hyundai/fingerprints.py
Original file line number Diff line number Diff line change
Expand Up @@ -942,6 +942,14 @@
b'\xf1\x00DN8HMFC AT USA LHD 1.00 1.07 99211-L1000 211223',
],
},
CAR.HYUNDAI_SONATA_HEV_2024: {
(Ecu.fwdRadar, 0x7d0, None): [
b'\xf1\x00DN8_ RDR ----- 1.00 1.00 99110-L1800 ',
],
(Ecu.fwdCamera, 0x7c4, None): [
b'\xf1\x00DN8HMFC AT USA LHD 1.00 1.01 99211-L1800 230512',
],
},
CAR.KIA_SORENTO: {
(Ecu.fwdCamera, 0x7c4, None): [
b'\xf1\x00UMP LKAS AT KOR LHD 1.00 1.00 95740-C5550 S30',
Expand Down
93 changes: 93 additions & 0 deletions opendbc/car/hyundai/hyundaicanfd.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from opendbc.car import CanBusBase
from opendbc.car.common.conversions import Conversions as CV
from opendbc.car.common.numpy_fast import clip
from opendbc.car.hyundai.values import HyundaiFlags

Expand Down Expand Up @@ -119,6 +120,98 @@ def create_lfahda_cluster(packer, CAN, enabled):
}
return packer.make_can_msg("LFAHDA_CLUSTER", CAN.ECAN, values)

def create_msg_161(packer, CAN, enabled, msg_161, car_params, hud_control, car_state, car_control, frame):
values = msg_161.copy()

# HIDE ALERTS
if values.get("ALERTS_5") == 5: # USE SWITCH OR PEDAL TO ACCELERATE
values["ALERTS_5"] = 0
if values.get("ALERTS_2") == 5: # CONSIDER TAKING A BREAK
values.update({"ALERTS_2": 0, "SOUNDS_2": 0, "DAW_ICON": 0})

# LANELINES
curvature = {
i: (31 if i == -1 else 13 - abs(i + 15)) if i < 0 else 15 + i
for i in range(-15, 16)
}
values.update({
"LANELINE_CURVATURE": curvature.get(max(-15, min(int(car_state.out.steeringAngleDeg / 3), 15)), 14) if enabled else 15,
"LFA_ICON": 2 if enabled else 0,
"LKA_ICON": 4 if enabled else 0,
"LANELINE_LEFT": 2 if enabled else 0,
"LANELINE_RIGHT": 2 if enabled else 0,
"CENTERLINE": 1 if enabled else 0,
})

# LCA
if enabled:
speed_below_threshold = car_state.out.vEgo < 8.94
values.update({
"LCA_LEFT_ICON": 0 if car_state.out.leftBlindspot or speed_below_threshold else 2 if car_control.leftBlinker else 1,
"LCA_RIGHT_ICON": 0 if car_state.out.rightBlindspot or speed_below_threshold else 2 if car_control.rightBlinker else 1,
"LCA_LEFT_ARROW": 2 if car_control.leftBlinker else 0,
"LCA_RIGHT_ARROW": 2 if car_control.rightBlinker else 0,
})

# LANE DEPARTURE
if hud_control.leftLaneDepart:
values["LANELINE_LEFT"] = 4 if (frame // 50) % 2 == 0 else 1
if hud_control.rightLaneDepart:
values["LANELINE_RIGHT"] = 4 if (frame // 50) % 2 == 0 else 1

if car_params.openpilotLongitudinalControl:
# HIDE ALERTS
if values.get("ALERTS_5") == 4: # SMART CRUISE CONTROL CONDITIONS NOT MET
values["ALERTS_5"] = 0

# SETSPEED
values["SETSPEED"] = 3 if enabled else 1
values["SETSPEED_HUD"] = 2 if enabled else 1
values["SETSPEED_SPEED"] = 25 if (s := round(car_state.out.vCruiseCluster * CV.KPH_TO_MPH)) > 100 else s

# DISTANCE
if 1 <= hud_control.leadDistanceBars <= 3:
values["DISTANCE"] = hud_control.leadDistanceBars
values["DISTANCE_SPACING"] = 1 if enabled else 0
values["DISTANCE_LEAD"] = 2 if enabled and hud_control.leadVisible else 1 if enabled else 0
values["DISTANCE_CAR"] = 2 if enabled else 1
values["ALERTS_3"] = hud_control.leadDistanceBars + 6
else:
values["DISTANCE"] = 0
values["DISTANCE_SPACING"] = 0
values["DISTANCE_LEAD"] = 0
values["DISTANCE_CAR"] = 0

# BACKGROUND
values["BACKGROUND"] = 1 if enabled else 7

return packer.make_can_msg("MSG_161", CAN.ECAN, values)

def create_msg_162(packer, CAN, enabled, msg_162, car_params, hud_control):
values = msg_162.copy()

# HIDE FAULTS
values.update({
"FAULT_LSS": 0,
"FAULT_HDA": 0,
"FAULT_DAS": 0,
})

# LANE DEPARTURE
if hud_control.leftLaneDepart or hud_control.rightLaneDepart:
values["VIBRATE"] = 1

if car_params.openpilotLongitudinalControl:
# *** TODO *** LEAD_DISTANCE/LEAD_LATERAL
# LEAD
if hud_control.leadVisible:
values["LEAD"] = 2 if enabled else 1
values["LEAD_DISTANCE"] = 100
else:
values["LEAD"] = 0
values["LEAD_DISTANCE"] = 0

return packer.make_can_msg("MSG_162", CAN.ECAN, values)

def create_acc_control(packer, CAN, enabled, accel_last, accel, stopping, gas_override, set_speed, hud_control):
jerk = 5
Expand Down
4 changes: 4 additions & 0 deletions opendbc/car/hyundai/values.py
Original file line number Diff line number Diff line change
Expand Up @@ -307,6 +307,10 @@ class CAR(Platforms):
HYUNDAI_SONATA.specs,
flags=HyundaiFlags.MANDO_RADAR | HyundaiFlags.CHECKSUM_CRC8 | HyundaiFlags.HYBRID,
)
HYUNDAI_SONATA_HEV_2024 = HyundaiCanFDPlatformConfig(
[HyundaiCarDocs("Hyundai Sonata Hybrid 2024", "All", car_parts=CarParts.common([CarHarness.hyundai_a]))],
CarSpecs(mass=1616, wheelbase=2.84, steerRatio=13.27),
)
HYUNDAI_IONIQ_5 = HyundaiCanFDPlatformConfig(
[
HyundaiCarDocs("Hyundai Ioniq 5 (Non-US only) 2022-24", "All", car_parts=CarParts.common([CarHarness.hyundai_q])),
Expand Down
1 change: 1 addition & 0 deletions opendbc/car/tests/routes.py
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,7 @@ class CarTestRoute(NamedTuple):
CarTestRoute("82e9cdd3f43bf83e|2021-05-15--02-42-51", HYUNDAI.HYUNDAI_ELANTRA_2021),
CarTestRoute("715ac05b594e9c59|2021-06-20--16-21-07", HYUNDAI.HYUNDAI_ELANTRA_HEV_2021),
CarTestRoute("7120aa90bbc3add7|2021-08-02--07-12-31", HYUNDAI.HYUNDAI_SONATA_HYBRID),
CarTestRoute("bc40c72b728178f2/00000006--ee76ae8c42", HYUNDAI.HYUNDAI_SONATA_HEV_2024),
CarTestRoute("715ac05b594e9c59|2021-10-27--23-24-56", HYUNDAI.GENESIS_G70_2020),
CarTestRoute("6b0d44d22df18134|2023-05-06--10-36-55", HYUNDAI.GENESIS_GV80),

Expand Down
1 change: 1 addition & 0 deletions opendbc/car/torque_data/override.toml
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ legend = ["LAT_ACCEL_FACTOR", "MAX_LAT_ACCEL_MEASURED", "FRICTION"]
"HYUNDAI_STARIA_4TH_GEN" = [1.8, 2.0, 0.15]
"GENESIS_GV70_ELECTRIFIED_1ST_GEN" = [1.9, 1.9, 0.09]
"GENESIS_G80_2ND_GEN_FL" = [2.5819356441497803, 2.5, 0.11244568973779678]
"HYUNDAI_SONATA_HEV_2024" = [2.5, 2.5, 0.1]

# Dashcam or fallback configured as ideal car
"MOCK" = [10.0, 10, 0.0]
Expand Down
112 changes: 112 additions & 0 deletions opendbc/dbc/hyundai_canfd.dbc
Original file line number Diff line number Diff line change
Expand Up @@ -599,6 +599,8 @@ BO_ 442 BLINDSPOTS_REAR_CORNERS: 24 XXX
SG_ FL_INDICATOR : 46|6@0+ (1,0) [0|1] "" XXX
SG_ FR_INDICATOR : 54|6@0+ (1,0) [0|63] "" XXX
SG_ RIGHT_BLOCKED : 64|1@0+ (1,0) [0|1] "" XXX
SG_ FL_INDICATOR_ALT : 138|1@0+ (1,0) [0|1] "" XXX
SG_ FR_INDICATOR_ALT : 141|1@0+ (1,0) [0|1] "" XXX

BO_ 874 BLINDSPOTS_FRONT_CORNER_2: 16 XXX
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
Expand Down Expand Up @@ -658,6 +660,116 @@ BO_ 1264 LOCAL_TIME: 8 XXX
SG_ MINUTES : 21|6@0+ (1,0) [0|63] "" XXX
SG_ SECONDS : 31|8@0+ (1,0) [0|59] "" XXX

BO_ 353 MSG_161: 32 CCNC
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
SG_ FCA_ICON : 24|3@1+ (1,0) [0|7] "" XXX
SG_ FCA_ALT_ICON : 27|3@1+ (1,0) [0|7] "" XXX
SG_ LKA_ICON : 30|3@1+ (1,0) [0|3] "" XXX
SG_ HBA_ICON : 33|3@1+ (1,0) [0|7] "" XXX
SG_ ZEROS_1 : 36|4@1+ (1,0) [0|15] "" XXX
SG_ ZEROS_2 : 40|2@1+ (1,0) [0|3] "" XXX
SG_ FCA_IMAGE : 42|3@1+ (1,0) [0|7] "" XXX
SG_ ZEROS_3 : 45|3@1+ (1,0) [0|7] "" XXX
SG_ ZEROS_4 : 48|3@1+ (1,0) [0|7] "" XXX
SG_ BCA_LEFT : 51|3@1+ (1,0) [0|7] "" XXX
SG_ BCA_RIGHT : 54|3@1+ (1,0) [0|7] "" XXX
SG_ LCA_LEFT_ARROW : 57|3@1+ (1,0) [0|7] "" XXX
SG_ LCA_RIGHT_ARROW : 60|3@1+ (1,0) [0|7] "" XXX
SG_ ZEROS_5 : 63|1@0+ (1,0) [0|1] "" XXX
SG_ CENTERLINE : 64|2@1+ (1,0) [0|3] "" XXX
SG_ TARGET : 66|3@1+ (1,0) [0|7] "" XXX
SG_ TARGET_POSITION : 69|11@1+ (1,0) [0|7] "" XXX
SG_ LANELINE_LEFT : 80|4@1+ (1,0) [0|15] "" XXX
SG_ LANELINE_LEFT_POSITION : 84|6@1+ (1,0) [0|15] "" XXX
SG_ LANELINE_RIGHT : 90|4@1+ (1,0) [0|15] "" XXX
SG_ LANELINE_RIGHT_POSITION : 94|6@1+ (1,0) [0|3] "" XXX
SG_ LANELINE_CURVATURE : 100|5@1- (1,15) [0|31] "" XXX
SG_ LANE_HIGHLIGHT : 105|4@1+ (1,0) [0|15] "" XXX
SG_ LANE_HIGHLIGHT_DISTANCE : 109|11@1+ (1,0) [0|7] "" XXX
SG_ LANE_LEFT : 120|3@1+ (1,0) [0|7] "" XXX
SG_ LANE_RIGHT : 123|3@1+ (1,0) [0|7] "" XXX
SG_ LANE_ZOOM : 126|2@1+ (1,0) [0|3] "" XXX
SG_ ALERTS_1 : 128|6@1+ (1,0) [0|63] "" XXX
SG_ ALERTS_2 : 134|5@1+ (1,0) [0|3] "" XXX
SG_ ALERTS_3 : 139|4@1+ (1,0) [0|15] "" XXX
SG_ ALERTS_4 : 143|9@1+ (1,0) [0|511] "" XXX
SG_ ALERTS_5 : 152|5@1+ (1,0) [0|7] "" XXX
SG_ MUTE : 157|3@1+ (1,0) [0|7] "" XXX
SG_ SOUNDS_1 : 160|4@1+ (1,0) [0|3] "" XXX
SG_ SOUNDS_2 : 164|4@1+ (1,0) [0|3] "" XXX
SG_ SOUNDS_3 : 168|4@1+ (1,0) [0|15] "" XXX
SG_ SOUNDS_4 : 172|3@1+ (1,0) [0|7] "" XXX
SG_ ZEROS_6 : 175|1@0+ (1,0) [0|1] "" XXX
SG_ ZEROS_7 : 176|5@1+ (1,0) [0|31] "" XXX
SG_ SETSPEED_HUD : 181|3@1+ (1,0) [0|3] "" XXX
SG_ DISTANCE_LEAD : 184|5@1+ (1,0) [0|31] "" XXX
SG_ DISTANCE_CAR : 189|3@1+ (1,0) [0|7] "" XXX
SG_ DISTANCE_SPACING : 192|4@1+ (1,0) [0|15] "" XXX
SG_ DISTANCE : 196|4@1+ (1,0) [0|7] "" XXX
SG_ SETSPEED_SPEED : 200|8@1+ (1,0) [0|255] "" XXX
SG_ SETSPEED : 208|4@1+ (1,0) [0|3] "" XXX
SG_ HDA_ICON : 212|4@1+ (1,0) [0|3] "" XXX
SG_ SLA_ICON : 216|4@1+ (1,0) [0|15] "" XXX
SG_ NAV_ICON : 220|4@1+ (1,0) [0|3] "" XXX
SG_ LFA_ICON : 224|4@1+ (1,0) [0|3] "" XXX
SG_ LCA_LEFT_ICON : 228|4@1+ (1,0) [0|15] "" XXX
SG_ LCA_RIGHT_ICON : 232|4@1+ (1,0) [0|15] "" XXX
SG_ BACKGROUND : 236|4@1+ (1,0) [0|15] "" XXX
SG_ DAW_ICON : 240|3@1+ (1,0) [0|7] "" XXX
SG_ CAR_CIRCLE : 243|3@1+ (1,0) [0|7] "" XXX
SG_ ZEROS_8 : 246|2@1+ (1,0) [0|3] "" XXX
SG_ ZEROS_9 : 248|8@1+ (1,0) [0|255] "" XXX

BO_ 354 MSG_162: 32 CCNC
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
SG_ SPEEDLIMIT_STYLE : 24|4@1+ (1,0) [0|7] "" XXX
SG_ SPEEDLIMIT_FLASH : 28|4@1+ (1,0) [0|15] "" XXX
SG_ SPEEDLIMIT : 32|8@1+ (1,0) [0|255] "" XXX
SG_ SIGNS : 40|8@1+ (1,0) [0|15] "" XXX
SG_ SPEEDLIMIT_WEATHER : 48|4@1+ (1,0) [0|15] "" XXX
SG_ VIBRATE : 52|3@1+ (1,0) [0|7] "" XXX
SG_ ZEROS_1 : 55|1@0+ (1,0) [0|1] "" XXX
SG_ ZEROS_2 : 56|8@1+ (1,0) [0|255] "" XXX
SG_ LEAD : 64|5@1+ (1,0) [0|31] "" XXX
SG_ LEAD_DISTANCE : 69|11@1+ (1,0) [0|2047] "" XXX
SG_ LEAD_LATERAL : 80|7@1+ (1,0) [0|127] "" XXX
SG_ ZEROS_3 : 87|1@0+ (1,0) [0|1] "" XXX
SG_ LEAD_ALT : 88|5@1+ (1,0) [0|31] "" XXX
SG_ LEAD_ALT_DISTANCE : 93|11@1+ (1,0) [0|2047] "" XXX
SG_ LEAD_ALT_LATERAL : 104|7@1+ (1,0) [0|127] "" XXX
SG_ ZEROS_4 : 111|1@0+ (1,0) [0|1] "" XXX
SG_ LEAD_LEFT : 112|5@1+ (1,0) [0|31] "" XXX
SG_ LEAD_LEFT_DISTANCE : 117|11@1+ (1,0) [0|2047] "" XXX
SG_ LEAD_LEFT_LATERAL : 128|7@1+ (1,0) [0|127] "" XXX
SG_ ZEROS_5 : 135|1@0+ (1,0) [0|1] "" XXX
SG_ LEAD_RIGHT : 136|5@1+ (1,0) [0|31] "" XXX
SG_ LEAD_RIGHT_DISTANCE : 141|11@1+ (1,0) [0|2047] "" XXX
SG_ LEAD_RIGHT_LATERAL : 152|7@1+ (1,0) [0|127] "" XXX
SG_ ZEROS_6 : 159|1@0+ (1,0) [0|1] "" XXX
SG_ ZEROS_7 : 160|8@1+ (1,0) [0|255] "" XXX
SG_ ZEROS_8 : 168|8@1+ (1,0) [0|255] "" XXX
SG_ ZEROS_9 : 176|8@1+ (1,0) [0|255] "" XXX
SG_ ZEROS_10 : 184|8@1+ (1,0) [0|255] "" XXX
SG_ ZEROS_11 : 192|8@1+ (1,0) [0|255] "" XXX
SG_ ZEROS_12 : 200|8@1+ (1,0) [0|255] "" XXX
SG_ ZEROS_13 : 208|5@1+ (1,0) [0|31] "" XXX
SG_ FAULT_FSS : 213|3@1+ (1,0) [0|7] "" XXX
SG_ FAULT_FCA : 216|3@1+ (1,0) [0|7] "" XXX
SG_ FAULT_LSS : 219|3@1+ (1,0) [0|7] "" XXX
SG_ FAULT_SLA : 222|3@1+ (1,0) [0|7] "" XXX
SG_ FAULT_DAW : 225|3@1+ (1,0) [0|7] "" XXX
SG_ FAULT_HBA : 228|3@1+ (1,0) [0|7] "" XXX
SG_ FAULT_SCC : 231|3@1+ (1,0) [0|7] "" XXX
SG_ FAULT_LFA : 234|3@1+ (1,0) [0|7] "" XXX
SG_ FAULT_HDA : 237|3@1+ (1,0) [0|7] "" XXX
SG_ FAULT_LCA : 240|3@1+ (1,0) [0|7] "" XXX
SG_ FAULT_HDP : 243|3@1+ (1,0) [0|7] "" XXX
SG_ FAULT_DAS : 246|3@1+ (1,0) [0|7] "" XXX
SG_ FAULT_ESS : 249|3@1+ (1,0) [0|7] "" XXX
SG_ ZEROS_14 : 252|4@1+ (1,0) [0|15] "" XXX

CM_ 272 "Alternative LKAS message, used on cars such as 2023 Ioniq 6, 2nd gen Kona. Matches LKAS except size is 32 bytes";
CM_ 676 "Contains signals with detailed lane line information. Used by ADAS ECU on HDA 2 vehicles to operate LFA.";
CM_ 866 "Contains signals with detailed lane line information. Used by ADAS ECU on HDA 2 vehicles to operate LFA. Used on cars that use message 272.";
Expand Down
Loading