Subaru: log stock AEB (#28052)

* Subaru: log stock AEB

* Remove stockFcw from stockAeb

* Subaru: Add FCW_Cont_Beep to stockFcw signals

* add ES_Brake

* use actuation bit

* bump opendbc

* remove aeb from UI

fix

* Update selfdrive/car/subaru/carstate.py

---------

Co-authored-by: Shane Smiskol <shane@smiskol.com>
old-commit-hash: 5cb9360fa0
beeps
martinl 2 years ago committed by GitHub
parent 8e94cb76e6
commit 91e7bf83b8
  1. 2
      opendbc
  2. 24
      selfdrive/car/subaru/carstate.py

@ -1 +1 @@
Subproject commit d03ae519e9bcc516e127593a4274b4212c70b732
Subproject commit e808a1ec3dc33bdbd6d4ef868bbc84d3916de765

@ -69,6 +69,7 @@ class CarState(CarStateBase):
cp.vl["BodyInfo"]["DOOR_OPEN_FL"]])
ret.steerFaultPermanent = cp.vl["Steering_Torque"]["Steer_Error_1"] == 1
cp_es_distance = cp_body if self.car_fingerprint in GLOBAL_GEN2 else cp_cam
if self.car_fingerprint in PREGLOBAL_CARS:
self.cruise_button = cp_cam.vl["ES_Distance"]["Cruise_Button"]
self.ready = not cp_cam.vl["ES_DashStatus"]["Not_Ready_Startup"]
@ -76,10 +77,13 @@ class CarState(CarStateBase):
ret.steerFaultTemporary = cp.vl["Steering_Torque"]["Steer_Warning"] == 1
ret.cruiseState.nonAdaptive = cp_cam.vl["ES_DashStatus"]["Conventional_Cruise"] == 1
ret.cruiseState.standstill = cp_cam.vl["ES_DashStatus"]["Cruise_State"] == 3
ret.stockFcw = cp_cam.vl["ES_LKAS_State"]["LKAS_Alert"] == 2
ret.stockFcw = (cp_cam.vl["ES_LKAS_State"]["LKAS_Alert"] == 1) or \
(cp_cam.vl["ES_LKAS_State"]["LKAS_Alert"] == 2)
# 8 is known AEB, there are a few other values related to AEB we ignore
ret.stockAeb = (cp_es_distance.vl["ES_Brake"]["AEB_Status"] == 8) and \
(cp_es_distance.vl["ES_Brake"]["Brake_Pressure"] != 0)
self.es_lkas_state_msg = copy.copy(cp_cam.vl["ES_LKAS_State"])
cp_es_distance = cp_body if self.car_fingerprint in GLOBAL_GEN2 else cp_cam
self.es_distance_msg = copy.copy(cp_es_distance.vl["ES_Distance"])
self.es_dashstatus_msg = copy.copy(cp_cam.vl["ES_DashStatus"])
if self.CP.flags & SubaruFlags.SEND_INFOTAINMENT:
@ -106,6 +110,18 @@ class CarState(CarStateBase):
return signals, checks
@staticmethod
def get_global_es_brake_signals():
signals = [
("AEB_Status", "ES_Brake"),
("Brake_Pressure", "ES_Brake"),
]
checks = [
("ES_Brake", 20),
]
return signals, checks
@staticmethod
def get_global_es_distance_signals():
signals = [
@ -304,7 +320,9 @@ class CarState(CarStateBase):
if CP.carFingerprint not in GLOBAL_GEN2:
signals += CarState.get_global_es_distance_signals()[0]
signals += CarState.get_global_es_brake_signals()[0]
checks += CarState.get_global_es_distance_signals()[1]
checks += CarState.get_global_es_brake_signals()[1]
if CP.flags & SubaruFlags.SEND_INFOTAINMENT:
signals += [
@ -324,7 +342,9 @@ class CarState(CarStateBase):
if CP.carFingerprint in GLOBAL_GEN2:
signals, checks = CarState.get_common_global_signals()
signals += CarState.get_global_es_distance_signals()[0]
signals += CarState.get_global_es_brake_signals()[0]
checks += CarState.get_global_es_distance_signals()[1]
checks += CarState.get_global_es_brake_signals()[1]
return CANParser(DBC[CP.carFingerprint]["pt"], signals, checks, 1)
return None

Loading…
Cancel
Save