diff --git a/cereal b/cereal index 8b347b0ac7..8573a24d2e 160000 --- a/cereal +++ b/cereal @@ -1 +1 @@ -Subproject commit 8b347b0ac7a1acc73a9f83fe20ecd5d9fcf91d0a +Subproject commit 8573a24d2e19e00f5667aee6d2bf689dfda35ee7 diff --git a/selfdrive/car/chrysler/carstate.py b/selfdrive/car/chrysler/carstate.py index 99e09f00f3..1a4b1e659e 100644 --- a/selfdrive/car/chrysler/carstate.py +++ b/selfdrive/car/chrysler/carstate.py @@ -54,7 +54,7 @@ class CarState(CarStateBase): ret.steeringTorqueEps = cp.vl["EPS_STATUS"]["TORQUE_MOTOR"] ret.steeringPressed = abs(ret.steeringTorque) > STEER_THRESHOLD steer_state = cp.vl["EPS_STATUS"]["LKAS_STATE"] - self.steer_error = steer_state == 4 or (steer_state == 0 and ret.vEgo > self.CP.minSteerSpeed) + ret.steerError = steer_state == 4 or (steer_state == 0 and ret.vEgo > self.CP.minSteerSpeed) ret.genericToggle = bool(cp.vl["STEERING_LEVERS"]['HIGH_BEAM_FLASH']) diff --git a/selfdrive/car/ford/carstate.py b/selfdrive/car/ford/carstate.py index 20341ac9ac..7f34acc9df 100644 --- a/selfdrive/car/ford/carstate.py +++ b/selfdrive/car/ford/carstate.py @@ -19,6 +19,7 @@ class CarState(CarStateBase): ret.standstill = not ret.vEgoRaw > 0.001 ret.steeringAngle = cp.vl["Steering_Wheel_Data_CG1"]['SteWhlRelInit_An_Sns'] ret.steeringPressed = not cp.vl["Lane_Keep_Assist_Status"]['LaHandsOff_B_Actl'] + ret.steerError = cp.vl["Lane_Keep_Assist_Status"]['LaActDeny_B_Actl'] == 1 ret.cruiseState.speed = cp.vl["Cruise_Status"]['Set_Speed'] * CV.MPH_TO_MS ret.cruiseState.enabled = not (cp.vl["Cruise_Status"]['Cruise_State'] in [0, 3]) ret.cruiseState.available = cp.vl["Cruise_Status"]['Cruise_State'] != 0 @@ -29,7 +30,6 @@ class CarState(CarStateBase): ret.genericToggle = bool(cp.vl["Steering_Buttons"]["Dist_Incr"]) # TODO: we also need raw driver torque, needed for Assisted Lane Change self.lkas_state = cp.vl["Lane_Keep_Assist_Status"]['LaActAvail_D_Actl'] - self.steer_error = cp.vl["Lane_Keep_Assist_Status"]['LaActDeny_B_Actl'] return ret diff --git a/selfdrive/car/gm/carcontroller.py b/selfdrive/car/gm/carcontroller.py index c0e9a0a3d2..bda8ef22cd 100644 --- a/selfdrive/car/gm/carcontroller.py +++ b/selfdrive/car/gm/carcontroller.py @@ -77,7 +77,7 @@ class CarController(): ### STEER ### if (frame % P.STEER_STEP) == 0: - lkas_enabled = enabled and not CS.steer_warning and CS.out.vEgo > P.MIN_STEER_SPEED + lkas_enabled = enabled and not CS.out.steerWarning and CS.out.vEgo > P.MIN_STEER_SPEED if lkas_enabled: new_steer = actuators.steer * P.STEER_MAX apply_steer = apply_std_steer_torque_limits(new_steer, self.apply_steer_last, CS.out.steeringTorque, P) diff --git a/selfdrive/car/gm/carstate.py b/selfdrive/car/gm/carstate.py index 588d6c5867..ac866ba226 100644 --- a/selfdrive/car/gm/carstate.py +++ b/selfdrive/car/gm/carstate.py @@ -69,7 +69,7 @@ class CarState(CarStateBase): # 0 - inactive, 1 - active, 2 - temporary limited, 3 - failed self.lkas_status = pt_cp.vl["PSCMStatus"]['LKATorqueDeliveredStatus'] - self.steer_warning = not is_eps_status_ok(self.lkas_status, self.car_fingerprint) + ret.steerWarning = not is_eps_status_ok(self.lkas_status, self.car_fingerprint) return ret diff --git a/selfdrive/car/honda/carstate.py b/selfdrive/car/honda/carstate.py index a2126ed19d..91124564e7 100644 --- a/selfdrive/car/honda/carstate.py +++ b/selfdrive/car/honda/carstate.py @@ -194,11 +194,11 @@ class CarState(CarStateBase): ret.seatbeltUnlatched = bool(cp.vl["SEATBELT_STATUS"]['SEATBELT_DRIVER_LAMP'] or not cp.vl["SEATBELT_STATUS"]['SEATBELT_DRIVER_LATCHED']) steer_status = self.steer_status_values[cp.vl["STEER_STATUS"]['STEER_STATUS']] - self.steer_error = steer_status not in ['NORMAL', 'NO_TORQUE_ALERT_1', 'NO_TORQUE_ALERT_2', 'LOW_SPEED_LOCKOUT', 'TMP_FAULT'] + ret.steerError = steer_status not in ['NORMAL', 'NO_TORQUE_ALERT_1', 'NO_TORQUE_ALERT_2', 'LOW_SPEED_LOCKOUT', 'TMP_FAULT'] # NO_TORQUE_ALERT_2 can be caused by bump OR steering nudge from driver self.steer_not_allowed = steer_status not in ['NORMAL', 'NO_TORQUE_ALERT_2'] # LOW_SPEED_LOCKOUT is not worth a warning - self.steer_warning = steer_status not in ['NORMAL', 'LOW_SPEED_LOCKOUT', 'NO_TORQUE_ALERT_2'] + ret.steerWarning = steer_status not in ['NORMAL', 'LOW_SPEED_LOCKOUT', 'NO_TORQUE_ALERT_2'] if self.CP.radarOffCan: self.brake_error = 0 diff --git a/selfdrive/car/hyundai/carstate.py b/selfdrive/car/hyundai/carstate.py index 12efefb4c5..d6f7d30ec5 100644 --- a/selfdrive/car/hyundai/carstate.py +++ b/selfdrive/car/hyundai/carstate.py @@ -33,6 +33,7 @@ class CarState(CarStateBase): ret.steeringTorque = cp.vl["MDPS12"]['CR_Mdps_StrColTq'] ret.steeringTorqueEps = cp.vl["MDPS12"]['CR_Mdps_OutTq'] ret.steeringPressed = abs(ret.steeringTorque) > STEER_THRESHOLD + ret.steerWarning = cp.vl["MDPS12"]['CF_Mdps_ToiUnavail'] != 0 # cruise state ret.cruiseState.available = True @@ -113,7 +114,6 @@ class CarState(CarStateBase): self.clu11 = cp.vl["CLU11"] self.park_brake = cp.vl["CGW1"]['CF_Gway_ParkBrakeSw'] self.steer_state = cp.vl["MDPS12"]['CF_Mdps_ToiActive'] #0 NOT ACTIVE, 1 ACTIVE - self.steer_warning = cp.vl["MDPS12"]['CF_Mdps_ToiUnavail'] self.lead_distance = cp.vl["SCC11"]['ACC_ObjDist'] return ret diff --git a/selfdrive/car/interfaces.py b/selfdrive/car/interfaces.py index 09b9f13123..41a8c5eeac 100644 --- a/selfdrive/car/interfaces.py +++ b/selfdrive/car/interfaces.py @@ -97,10 +97,9 @@ class CarInterfaceBase(): if cs_out.gasPressed: events.append(create_event('pedalPressed', [ET.PRE_ENABLE])) - # TODO: move this stuff to the capnp strut - if getattr(self.CS, "steer_error", False): + if cs_out.steerError: events.append(create_event('steerUnavailable', [ET.NO_ENTRY, ET.IMMEDIATE_DISABLE, ET.PERMANENT])) - elif getattr(self.CS, "steer_warning", False): + elif cs_out.steerWarning: events.append(create_event('steerTempUnavailable', [ET.NO_ENTRY, ET.WARNING])) # Disable on rising edge of gas or brake. Also disable on brake when speed > 0. diff --git a/selfdrive/car/toyota/carstate.py b/selfdrive/car/toyota/carstate.py index bc211ef7eb..c9970beadb 100644 --- a/selfdrive/car/toyota/carstate.py +++ b/selfdrive/car/toyota/carstate.py @@ -72,6 +72,7 @@ class CarState(CarStateBase): ret.steeringTorqueEps = cp.vl["STEER_TORQUE_SENSOR"]['STEER_TORQUE_EPS'] # we could use the override bit from dbc, but it's triggered at too high torque values ret.steeringPressed = abs(ret.steeringTorque) > STEER_THRESHOLD + ret.steerWarning = cp.vl["EPS_STATUS"]['LKA_STATE'] not in [1, 5] if self.CP.carFingerprint == CAR.LEXUS_IS: ret.cruiseState.available = cp.vl["DSU_CRUISE"]['MAIN_ON'] != 0 @@ -99,8 +100,7 @@ class CarState(CarStateBase): ret.espDisabled = cp.vl["ESP_CONTROL"]['TC_DISABLED'] != 0 # 2 is standby, 10 is active. TODO: check that everything else is really a faulty state self.steer_state = cp.vl["EPS_STATUS"]['LKA_STATE'] - self.steer_warning = cp.vl["EPS_STATUS"]['LKA_STATE'] not in [1, 5] - + if self.CP.carFingerprint in TSS2_CAR: ret.leftBlindspot = cp.vl["BSM"]['L_ADJACENT'] == 1 ret.rightBlindspot = cp.vl["BSM"]['R_ADJACENT'] == 1 diff --git a/selfdrive/test/process_replay/ref_commit b/selfdrive/test/process_replay/ref_commit index 6b8e485a2e..64390dbab0 100644 --- a/selfdrive/test/process_replay/ref_commit +++ b/selfdrive/test/process_replay/ref_commit @@ -1 +1 @@ -b33259e2dae9852c58b0507dbb98fb01d8b884b8 +79bba4ca90f4c7d6c4fddcd9a916f94966a40dca \ No newline at end of file