ccnc some fix (#136)

This commit is contained in:
Lee Jong Mun 2025-02-25 13:02:11 +09:00 committed by ajouatom
parent f2dcc4205d
commit 020d30165c
3 changed files with 90 additions and 89 deletions

View File

@ -102,14 +102,14 @@ class CarController(CarControllerBase):
self.params.STEER_DELTA_DOWN = steerDeltaDown
self.soft_hold_mode = 1 if params.get_int("AutoCruiseControl") > 1 else 2
self.hapticFeedbackWhenSpeedCamera = int(params.get_int("HapticFeedbackWhenSpeedCamera"))
self.button_spam1 = params.get_int("CruiseButtonTest1")
self.button_spam2 = params.get_int("CruiseButtonTest2")
self.button_spam3 = params.get_int("CruiseButtonTest3")
self.speed_from_pcm = params.get_int("SpeedFromPCM")
self.canfd_debug = params.get_int("CanfdDebug")
actuators = CC.actuators
hud_control = CC.hudControl
@ -124,13 +124,13 @@ class CarController(CarControllerBase):
MAX_ANGLE_CONSECUTIVE_FRAMES)
apply_angle = apply_std_steer_angle_limits(actuators.steeringAngleDeg, self.apply_angle_last, CS.out.vEgoRaw, self.params)
if abs(CS.out.steeringTorqueEps) >= 100.0: # carrot. fault avoidance, test code
apply_angle = CS.out.steeringAngleDeg
# prevent steering error. carrot
error_limit = 5.0
apply_angle = np.clip(apply_angle, CS.out.steeringAngleDeg - error_limit, CS.out.steeringAngleDeg + error_limit)
error_limit = 5.0
apply_angle = float(np.clip(apply_angle, CS.out.steeringAngleDeg - error_limit, CS.out.steeringAngleDeg + error_limit))
#max_torque = 200
#ego_weight = np.interp(CS.out.vEgoCluster, [0, 5, 10, 20], [0.2, 0.3, 0.5, 1.0])
@ -186,7 +186,7 @@ class CarController(CarControllerBase):
left_lane_warning = right_lane_warning = self.hapticFeedbackWhenSpeedCamera
if self.speedCameraHapticEndFrame < self.frame:
self.speedCameraHapticEndFrame = -1
if self.frame % self.blinking_frame == 0:
self.blinking_signal = True
elif self.frame % self.blinking_frame == self.blinking_frame / 2:
@ -326,7 +326,7 @@ class CarController(CarControllerBase):
send_button = self.make_spam_button(CC, CS)
if send_button > 0:
can_sends.append(hyundaican.create_clu11_button(self.packer, self.frame, CS.clu11, send_button, self.CP))
else:
# carrot.. 왜 alt_cruise_button는 값이 리스트일까?, 그리고 왜? 빈데이터가 들어오는것일까?
@ -350,7 +350,7 @@ class CarController(CarControllerBase):
#can_sends.append(hyundaicanfd.create_acc_cancel(self.packer, self.CP, self.CAN, CS.cruise_info))
if self.cruise_buttons_msg_values is not None:
can_sends.append(hyundaicanfd.alt_cruise_buttons(self.packer, self.CP, self.CAN, Buttons.CANCEL, self.cruise_buttons_msg_values, self.cruise_buttons_msg_cnt))
else:
for _ in range(20):
can_sends.append(hyundaicanfd.create_buttons(self.packer, self.CP, self.CAN, CS.buttons_counter+1, Buttons.CANCEL))
@ -426,7 +426,7 @@ class CarController(CarControllerBase):
if send_button == 0:
self.button_spamming_count = 0
self.prev_clu_speed = current
self.prev_clu_speed = current
return 0
speed_diff = self.prev_clu_speed - current

View File

@ -5,17 +5,17 @@ from openpilot.common.params import Params
class CanBus(CanBusBase):
def __init__(self, CP, fingerprint=None, hda2=None) -> None:
def __init__(self, CP, fingerprint=None, lka_steering=None) -> None:
super().__init__(CP, fingerprint)
if hda2 is None:
hda2 = CP.flags & HyundaiFlags.CANFD_HDA2.value if CP is not None else False
if lka_steering is None:
lka_steering = CP.flags & HyundaiFlags.CANFD_HDA2.value if CP is not None else False
# On the CAN-FD platforms, the LKAS camera is on both A-CAN and E-CAN. HDA2 cars
# have a different harness than the HDA1 and non-HDA variants in order to split
# On the CAN-FD platforms, the LKAS camera is on both A-CAN and E-CAN. LKA steering cars
# have a different harness than the LFA steering variants in order to split
# a different bus, since the steering is done by different ECUs.
self._a, self._e = 1, 0
if hda2 and Params().get_int("HyundaiCameraSCC") == 0: #배선개조는 무조건 Bus0가 ECAN임.
if lka_steering and Params().get_int("HyundaiCameraSCC") == 0: #배선개조는 무조건 Bus0가 ECAN임.
self._a, self._e = 0, 1
self._a += self.offset
@ -108,7 +108,7 @@ def create_steering_messages_camera_scc(packer, CP, CAN, enabled, lat_active, ap
"LKAS_ANGLE_CMD": -apply_angle,
"LKAS_ANGLE_MAX_TORQUE": max_torque if lat_active else 0,
}
ret.append(packer.make_can_msg("LFA_ANGLE_MAYBE_CB", CAN.ECAN, values))
ret.append(packer.make_can_msg("LFA_ALT", CAN.ECAN, values))
values = CS.lfa_info
values["LKA_MODE"] = 0
@ -227,22 +227,22 @@ def create_steering_messages(packer, CP, CAN, enabled, lat_active, apply_steer,
}
if CP.flags & HyundaiFlags.CANFD_HDA2:
hda2_lkas_msg = "LKAS_ALT" if CP.flags & HyundaiFlags.CANFD_HDA2_ALT_STEERING else "LKAS"
lkas_msg = "LKAS_ALT" if CP.flags & HyundaiFlags.CANFD_HDA2_ALT_STEERING else "LKAS"
if CP.openpilotLongitudinalControl:
ret.append(packer.make_can_msg("LFA", CAN.ECAN, values))
if not (CP.flags & HyundaiFlags.CAMERA_SCC.value):
ret.append(packer.make_can_msg(hda2_lkas_msg, CAN.ACAN, values))
ret.append(packer.make_can_msg(lkas_msg, CAN.ACAN, values))
else:
ret.append(packer.make_can_msg("LFA", CAN.ECAN, values))
return ret
def create_suppress_lfa(packer, CAN, hda2_lfa_block_msg, hda2_alt_steering):
suppress_msg = "CAM_0x362" if hda2_alt_steering else "CAM_0x2a4"
msg_bytes = 32 if hda2_alt_steering else 24
def create_suppress_lfa(packer, CAN, lfa_block_msg, lka_steering_alt):
suppress_msg = "CAM_0x362" if lka_steering_alt else "CAM_0x2a4"
msg_bytes = 32 if lka_steering_alt else 24
values = {f"BYTE{i}": hda2_lfa_block_msg[f"BYTE{i}"] for i in range(3, msg_bytes) if i != 7}
values["COUNTER"] = hda2_lfa_block_msg["COUNTER"]
values = {f"BYTE{i}": lfa_block_msg[f"BYTE{i}"] for i in range(3, msg_bytes) if i != 7}
values["COUNTER"] = lfa_block_msg["COUNTER"]
values["SET_ME_0"] = 0
values["SET_ME_0_2"] = 0
values["LEFT_LANE_LINE"] = 0
@ -334,7 +334,7 @@ def create_acc_control_scc2(packer, CAN, enabled, accel_last, accel, stopping, g
values["ZEROS_5"] = 0
values["NEW_SIGNAL_15_DESIRE_DIST"] = CS.out.vEgo * 1.0 + 4.0
values["TARGET_DISTANCE"] = CS.out.vEgo * 1.0 + 4.0
values["CRUISE_STANDSTILL"] = 1 if stopping and CS.out.aEgo > -0.1 else 0
@ -442,13 +442,13 @@ def create_adrv_messages(CP, packer, CAN, frame, CC, CS, hud_control, disp_angle
values["SETSPEED_HUD"] = 5 if hdp_active else 2 if cruise_enabled else 1
values["vSetDis"] = int(hud_control.setSpeed * 3.6 + 0.5)
values["DISTANCE"] = hud_control.leadDistanceBars
values["DISTANCE_LEAD"] = 1 if cruise_enabled and hud_control.leadVisible else 0
values["DISTANCE"] = 4 if hdp_active else hud_control.leadDistanceBars
values["DISTANCE_LEAD"] = 2 if cruise_enabled and hud_control.leadVisible else 0
values["DISTANCE_CAR"] = 3 if hdp_active else 2 if cruise_enabled else 1 if main_enabled else 0
values["DISTANCE_SPACING"] = 5 if hdp_active else 1 if cruise_enabled else 0
values["TARGET"] = 1 if cruise_enabled else 0
values["TARGET_POSITION"] = int(hud_control.leadDistance)
values["TARGET_DISTANCE"] = int(hud_control.leadDistance)
values["BACKGROUND"] = 1 if cruise_enabled else 3 if main_enabled else 7
values["CENTERLINE"] = 1 if lat_active else 0
@ -523,42 +523,45 @@ def create_adrv_messages(CP, packer, CAN, frame, CC, CS, hud_control, disp_angle
values["FAULT_LFA"] = 0
values["FAULT_LCA"] = 0
values["FAULT_DAS"] = 0
values["FAULT_HDA"] = 0
if left_lane_warning or right_lane_warning:
values["VIBRATE"] = 1
ret.append(packer.make_can_msg("ADRV_0x162", CAN.ECAN, values))
if frame % 20 == 0 and canfd_debug > 0: # 아직 시험중..
if CS.hda_info_4a3 is not None:
values = CS.hda_info_4a3
# SIGNAL_4: 7, SIGNAL_0: 0 으로 해도 .. 옆두부는 나오기도 함.. 아오5
if canfd_debug == 1:
test4 = 10
test0 = 5
elif canfd_debug == 2:
test4 = 11
test0 = 1
elif canfd_debug == 3:
test4 = 5
test0 = 2
values["SIGNAL_4"] = test4 if CC.enabled else 0 # 0, 5(고속도로진입), 10(고속도로), 7,5(국도에서 간혹), 0,10(카니발) , 5(고속도로진입,EV6), 11(고속도로,EV6)
values["SIGNAL_0"] = test0 if CC.enabled else 0 # 0, 2(고속도로진입), 1(고속도로), 5(카니발은 항상) , 2(고속도로진입,EV6), 1(고속도로,EV6)
values["NEW_SIGNAL_1"] = 4
values["NEW_SIGNAL_2"] = 0
values["NEW_SIGNAL_3"] = 154
values["NEW_SIGNAL_4"] = 9
values["NEW_SIGNAL_5"] = 0
values["NEW_SIGNAL_6"] = 256
values["NEW_SIGNAL_7"] = 0
ret.append(packer.make_can_msg("HDA_INFO_4A3", CAN.CAM, values))
if frame % 10 == 0:
if CS.new_msg_4b4 is not None: #G80 HDA2개조차량은 안나옴...
values = CS.new_msg_4b4
values["NEW_SIGNAL_1"] = 8
values["NEW_SIGNAL_3"] = (frame / 100) % 10
values["NEW_SIGNAL_4"] = 146
values["NEW_SIGNAL_5"] = 68
values["NEW_SIGNAL_6"] = 76
ret.append(packer.make_can_msg("NEW_MSG_4B4", CAN.CAM, values))
if canfd_debug > 0:
if frame % 20 == 0: # 아직 시험중..
if CS.hda_info_4a3 is not None:
values = CS.hda_info_4a3
# SIGNAL_4: 7, SIGNAL_0: 0 으로 해도 .. 옆두부는 나오기도 함.. 아오5
if canfd_debug == 1:
test4 = 10
test0 = 5
elif canfd_debug == 2:
test4 = 11
test0 = 1
elif canfd_debug == 3:
test4 = 5
test0 = 2
values["SIGNAL_4"] = test4 if CC.enabled else 0 # 0, 5(고속도로진입), 10(고속도로), 7,5(국도에서 간혹), 0,10(카니발) , 5(고속도로진입,EV6), 11(고속도로,EV6)
values["SIGNAL_0"] = test0 if CC.enabled else 0 # 0, 2(고속도로진입), 1(고속도로), 5(카니발은 항상) , 2(고속도로진입,EV6), 1(고속도로,EV6)
values["NEW_SIGNAL_1"] = 4
values["NEW_SIGNAL_2"] = 0
values["NEW_SIGNAL_3"] = 154
values["NEW_SIGNAL_4"] = 9
values["NEW_SIGNAL_5"] = 0
values["NEW_SIGNAL_6"] = 256
values["NEW_SIGNAL_7"] = 0
ret.append(packer.make_can_msg("HDA_INFO_4A3", CAN.CAM, values))
if frame % 10 == 0:
if CS.new_msg_4b4 is not None: #G80 HDA2개조차량은 안나옴...
values = CS.new_msg_4b4
values["NEW_SIGNAL_1"] = 8
values["NEW_SIGNAL_3"] = (frame / 100) % 10
values["NEW_SIGNAL_4"] = 146
values["NEW_SIGNAL_5"] = 68
values["NEW_SIGNAL_6"] = 76
ret.append(packer.make_can_msg("NEW_MSG_4B4", CAN.CAM, values))
return ret
else:
values = {}

View File

@ -114,11 +114,11 @@ BO_ 160 WHEEL_SPEEDS: 24 XXX
SG_ WHEEL_SPEED_3 : 96|16@1+ (0.03125,0) [0|65535] "kph" XXX
SG_ WHEEL_SPEED_4 : 112|16@1+ (0.03125,0) [0|65535] "kph" XXX
BO_ 203 LFA_ANGLE_MAYBE_CB: 24 ADRV
BO_ 203 LFA_ALT: 24 ADRV
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
SG_ LKAS_ANGLE_ACTIVE : 29|2@0+ (1,0) [0|3] "" XXX
SG_ LKAS_ANGLE_CMD : 32|14@1- (-0.1,0) [0|16383] "" XXX
SG_ LKAS_ANGLE_CMD : 32|14@1- (-0.1,0) [0|511] "" XXX
SG_ LKAS_ANGLE_MAX_TORQUE : 55|8@0+ (1,0) [0|255] "" XXX
BO_ 234 MDPS: 24 XXX
@ -148,13 +148,13 @@ 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_MODE : 24|3@1+ (1,0) [0|7] "" XXX
SG_ LKA_ACTIVE : 27|2@1+ (1,0) [0|255] "" XXX
SG_ LKA_ACTIVE : 27|2@1+ (1,0) [0|3] "" XXX
SG_ LKA_WARNING : 32|1@1+ (1,0) [0|1] "" XXX
SG_ LKA_ICON : 38|2@1+ (1,0) [0|255] "" XXX
SG_ LKA_ICON : 38|2@1+ (1,0) [0|3] "" XXX
SG_ FCA_SYSWARN : 40|1@0+ (1,0) [0|1] "" XXX
SG_ TORQUE_REQUEST : 41|11@1+ (1,-1024) [0|4095] "" XXX
SG_ STEER_REQ : 52|1@1+ (1,0) [0|1] "" XXX
SG_ LFA_BUTTON : 56|1@1+ (1,0) [0|255] "" XXX
SG_ LFA_BUTTON : 56|1@1+ (1,0) [0|1] "" XXX
SG_ VALUE63 : 63|4@0+ (1,0) [0|15] "" XXX
SG_ VALUE64 : 64|8@1+ (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_1 : 75|4@0+ (1,0) [0|15] "" XXX
@ -168,7 +168,6 @@ BO_ 272 LKAS_ALT: 32 XXX
SG_ VALUE247 : 247|8@0+ (1,0) [0|255] "" XXX
SG_ VALUE255 : 255|8@0+ (1,0) [0|255] "" XXX
BO_ 293 STEERING_SENSORS: 16 XXX
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
@ -179,13 +178,13 @@ BO_ 298 LFA: 16 ADRV
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
SG_ LKA_MODE : 24|3@1+ (1,0) [0|7] "" XXX
SG_ LKA_ACTIVE : 27|2@1+ (1,0) [0|255] "" XXX
SG_ LKA_ACTIVE : 27|2@1+ (1,0) [0|3] "" XXX
SG_ LKA_WARNING : 32|1@1+ (1,0) [0|1] "" XXX
SG_ LKA_ICON : 38|2@1+ (1,0) [0|3] "" XXX
SG_ FCA_SYSWARN : 40|1@0+ (1,0) [0|1] "" XXX
SG_ TORQUE_REQUEST : 41|11@1+ (1,-1024) [0|4095] "" XXX
SG_ STEER_REQ : 52|1@1+ (1,0) [0|1] "" XXX
SG_ LFA_BUTTON : 56|1@1+ (1,0) [0|255] "" XXX
SG_ LFA_BUTTON : 56|1@1+ (1,0) [0|1] "" XXX
SG_ VALUE63 : 63|4@0+ (1,0) [0|15] "" XXX
SG_ VALUE64 : 64|8@1+ (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_1 : 75|4@0+ (1,0) [0|15] "" XXX
@ -240,13 +239,13 @@ BO_ 373 TCS: 24 XXX
BO_ 352 ADRV_0x160: 16 ADRV
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
SG_ AEB_SETTING : 24|2@1+ (1,0) [0|255] "" XXX
SG_ AEB_SETTING : 24|2@1+ (1,0) [0|3] "" XXX
SG_ NEW_SIGNAL_1 : 28|3@0+ (1,0) [0|7] "" XXX
SG_ SET_ME_2 : 56|8@1+ (1,0) [0|1] "" XXX
SG_ SET_ME_2 : 56|8@1+ (1,0) [0|7] "" XXX
SG_ SET_ME_FF : 64|8@1+ (1,0) [0|255] "" XXX
SG_ SET_ME_FC : 72|8@1+ (1,0) [0|255] "" XXX
SG_ SET_ME_9 : 80|8@1+ (1,0) [0|255] "" XXX
SG_ DATA102 : 102|1@1+ (1,0) [0|255] "" XXX
SG_ DATA102 : 102|1@1+ (1,0) [0|1] "" XXX
BO_ 353 ADRV_0x161: 32 ADRV
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
@ -256,20 +255,20 @@ BO_ 353 ADRV_0x161: 32 ADRV
SG_ LKA_ICON : 30|3@1+ (1,0) [0|3] "" XXX
SG_ HBA_ICON : 33|3@1+ (1,0) [0|7] "" XXX
SG_ FCA_IMAGE : 42|3@1+ (1,0) [0|7] "" XXX
SG_ BCA_LEFT : 53|3@0+ (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_ CENTERLINE : 64|2@1+ (1,0) [0|3] "" XXX
SG_ TARGET : 68|3@0+ (1,0) [0|7] "" XXX
SG_ TARGET_POSITION : 69|11@1+ (0.1,0) [0|2047] "" XXX
SG_ LANELINE_LEFT : 83|4@0+ (1,0) [0|15] "" XXX
SG_ LANELINE_LEFT_POSITION : 84|6@1+ (1,0) [0|63] "" XXX
SG_ TARGET : 66|3@1+ (1,0) [0|7] "" XXX
SG_ TARGET_DISTANCE : 69|11@1+ (0.1,0) [0|204.7] "m" 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|63] "" XXX
SG_ LANELINE_RIGHT_POSITION : 94|6@1+ (1,0) [0|15] "" 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_HIGHLIGHT_DISTANCE : 109|11@1+ (0.1,0) [0|204.7] "m" 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
@ -287,16 +286,16 @@ BO_ 353 ADRV_0x161: 32 ADRV
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 : 198|3@0+ (1,0) [0|7] "" XXX
SG_ vSetDis : 207|8@0+ (1,0) [0|255] "" XXX
SG_ DISTANCE : 196|4@1+ (1,0) [0|7] "" XXX
SG_ vSetDis : 200|8@1+ (1,0) [0|255] "" XXX
SG_ SETSPEED : 208|4@1+ (1,0) [0|7] "" XXX
SG_ HDA_ICON : 212|3@1+ (1,0) [0|7] "" XXX
SG_ SLA_ICON : 216|4@1+ (1,0) [0|15] "" XXX
SG_ NAV_ICON : 220|3@1+ (1,0) [0|7] "" XXX
SG_ LFA_ICON : 224|3@1+ (1,0) [0|7] "" XXX
SG_ LCA_LEFT_ICON : 230|3@0+ (1,0) [0|7] "" XXX
SG_ LCA_RIGHT_ICON : 234|3@0+ (1,0) [0|7] "" XXX
SG_ BACKGROUND : 239|4@0+ (1,0) [0|15] "" XXX
SG_ LCA_LEFT_ICON : 228|3@1+ (1,0) [0|7] "" XXX
SG_ LCA_RIGHT_ICON : 232|3@1+ (1,0) [0|7] "" 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
@ -365,7 +364,7 @@ BO_ 416 SCC_CONTROL: 32 ADRV
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
SG_ ACC_ObjDist : 24|11@1+ (0.1,0) [0|204.7] "m" XXX
SG_ ACC_ObjRelSpd : 35|12@1+ (0.1,-170) [-16.4|34.7] "m/s" XXX
SG_ ACC_ObjRelSpd : 35|9@1+ (0.1,-16.4) [-16.4|34.7] "m/s" XXX
SG_ SET_ME_TMP_64 : 55|8@0+ (1,0) [0|63] "" XXX
SG_ ZEROS_7 : 63|8@0+ (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_1 : 64|2@1+ (1,0) [0|3] "" XXX
@ -390,7 +389,7 @@ BO_ 416 SCC_CONTROL: 32 ADRV
SG_ ZEROS_4 : 183|4@0+ (1,0) [0|63] "" XXX
SG_ StopReq : 184|1@0+ (1,0) [0|1] "" XXX
SG_ CRUSE_INFO_SET_2 : 189|2@0+ (1,0) [0|3] "" XXX
SG_ NEW_SIGNAL_15_DESIRE_DIST : 192|11@1+ (0.1,0) [0|204.7] "m" XXX
SG_ TARGET_DISTANCE : 192|11@1+ (0.1,0) [0|204.7] "m" XXX
SG_ ZEROS_2 : 207|5@0+ (1,0) [0|63] "" XXX
SG_ ZEROS : 215|48@0+ (1,0) [0|281474976710655] "" XXX
@ -429,20 +428,20 @@ BO_ 437 MSG_1B5: 32 XXX
SG_ LEFT_1 : 29|9@1+ (1,0) [0|511] "" XXX
SG_ LEFT_2 : 38|5@1+ (1,0) [0|31] "" XXX
SG_ LEFT_3 : 43|10@1- (1,0) [0|1023] "" XXX
SG_ LEFT_4 : 64|16@1- (1,0) [0|65535] "" XXX
SG_ LEFT_CURVATURE : 64|16@1- (1,0) [0|65535] "" XXX
SG_ LEFT_5 : 80|16@1- (1,0) [0|65535] "" XXX
SG_ RIGHT : 96|2@1+ (1,0) [0|3] "" XXX
SG_ RIGHT_LDW : 99|1@0+ (1,0) [0|1] "" XXX
SG_ RIGHT_1 : 101|9@1+ (1,0) [0|511] "" XXX
SG_ RIGHT_2 : 110|5@1+ (1,0) [0|31] "" XXX
SG_ RIGHT_3 : 115|10@1- (1,0) [0|1023] "" XXX
SG_ RIGHT_4 : 128|16@1- (1,0) [0|65535] "" XXX
SG_ RIGHT_CURVATURE : 128|16@1- (1,0) [0|65535] "" XXX
SG_ RIGHT_5 : 144|16@1- (1,0) [0|65535] "" XXX
SG_ LEAD : 192|2@1+ (1,0) [0|3] "" XXX
SG_ LEAD_1 : 194|6@1+ (1,0) [0|63] "" XXX
SG_ LEAD_2 : 200|11@1- (1,0) [0|4095] "" XXX
SG_ LEAD_SPEED : 200|11@1- (1,48) [0|4095] "" XXX
SG_ LEAD_3 : 211|1@0+ (1,0) [0|1] "" XXX
SG_ LEAD_DISTANCE : 213|11@1+ (1,0) [0|2047] "" XXX
SG_ LEAD_DISTANCE : 213|11@1+ (0.1,0) [0|204.7] "m" XXX
BO_ 438 CAM_0x1b6: 32 CAMERA
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
@ -511,7 +510,6 @@ BO_ 490 ADRV_0x1ea: 32 ADRV
SG_ NEW_SIGNAL_3 : 239|8@0+ (1,0) [0|255] "" XXX
SG_ NEW_SIGNAL_1 : 247|8@0+ (1,0) [0|255] "" XXX
BO_ 507 CAM_0x1fb: 32 CAMERA
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX