only calculate when updated

pull/25235/head
Shane Smiskol 3 years ago
parent 9c7d8a87a8
commit 4377a106c8
  1. 23
      selfdrive/car/hyundai/carstate.py

@ -34,8 +34,8 @@ class CarState(CarStateBase):
self.buttons_counter = 0
# noisy signal sampled at 5 Hz
self.dash_speed = 0
self.dash_speed_counter = 0
self.cluster_speed = 0
self.cluster_speed_counter = 0
self.params = CarControllerParams(CP)
@ -46,6 +46,7 @@ class CarState(CarStateBase):
ret = car.CarState.new_message()
cp_cruise = cp_cam if self.CP.carFingerprint in CAMERA_SCC_CAR else cp
is_metric = cp.vl["CLU11"]["CF_Clu_SPEED_UNIT"] == 0
speed_conv = CV.KPH_TO_MS if is_metric else CV.MPH_TO_MS
ret.doorOpen = any([cp.vl["CGW1"]["CF_Gway_DrvDrSw"], cp.vl["CGW1"]["CF_Gway_AstDrSw"],
cp.vl["CGW2"]["CF_Gway_RLDrSw"], cp.vl["CGW2"]["CF_Gway_RRDrSw"]])
@ -62,16 +63,15 @@ class CarState(CarStateBase):
ret.vEgo, ret.aEgo = self.update_speed_kf(ret.vEgoRaw)
ret.standstill = ret.vEgoRaw < 0.1
self.dash_speed_counter += 1
if self.dash_speed_counter > 20: # 5 Hz
self.dash_speed = cp.vl["CLU15"]["CF_Clu_VehicleSpeed"]
self.dash_speed_counter = 0
self.cluster_speed_counter += 1
if self.cluster_speed_counter > 20: # 5 Hz
self.cluster_speed = cp.vl["CLU15"]["CF_Clu_VehicleSpeed"]
self.cluster_speed_counter = 0
if not is_metric:
# compensate for dash rounding
self.cluster_speed = math.floor(self.cluster_speed * CV.KPH_TO_MPH + CV.KPH_TO_MPH)
if is_metric:
ret.vEgoCluster = self.dash_speed * CV.KPH_TO_MS
else:
# compensate for dash rounding
ret.vEgoCluster = math.floor(self.dash_speed * CV.KPH_TO_MPH + CV.KPH_TO_MPH) * CV.MPH_TO_MS
ret.vEgoCluster = self.cluster_speed * speed_conv
ret.steeringAngleDeg = cp.vl["SAS11"]["SAS_Angle"]
ret.steeringRateDeg = cp.vl["SAS11"]["SAS_Speed"]
@ -93,7 +93,6 @@ class CarState(CarStateBase):
ret.cruiseState.available = cp_cruise.vl["SCC11"]["MainMode_ACC"] == 1
ret.cruiseState.enabled = cp_cruise.vl["SCC12"]["ACCMode"] != 0
ret.cruiseState.standstill = cp_cruise.vl["SCC11"]["SCCInfoDisplay"] == 4.
speed_conv = CV.KPH_TO_MS if is_metric else CV.MPH_TO_MS
ret.cruiseState.speed = cp_cruise.vl["SCC11"]["VSetDis"] * speed_conv
# TODO: Find brake pressure

Loading…
Cancel
Save