Subaru: frequency based messaging (#28066)

* frequency based messaging

* frequency based messaging

* frequency based messaging

* frequency based messaging

* rename better

* use frame in if statement

* syntax

* remove extra space

* put all behind one if statement

* update refs

---------

Co-authored-by: Shane Smiskol <shane@smiskol.com>
old-commit-hash: c1909df437
beeps
Justin Newberry 2 years ago committed by GitHub
parent 8a91f7cd30
commit 8e51174066
  1. 20
      selfdrive/car/subaru/carcontroller.py
  2. 2
      selfdrive/test/process_replay/ref_commit

@ -10,10 +10,6 @@ class CarController:
self.apply_steer_last = 0 self.apply_steer_last = 0
self.frame = 0 self.frame = 0
self.es_lkas_state_cnt = -1
self.es_distance_cnt = -1
self.es_dashstatus_cnt = -1
self.infotainmentstatus_cnt = -1
self.cruise_button_prev = 0 self.cruise_button_prev = 0
self.last_cancel_frame = 0 self.last_cancel_frame = 0
@ -29,7 +25,6 @@ class CarController:
# *** steering *** # *** steering ***
if (self.frame % self.p.STEER_STEP) == 0: if (self.frame % self.p.STEER_STEP) == 0:
apply_steer = int(round(actuators.steer * self.p.STEER_MAX)) apply_steer = int(round(actuators.steer * self.p.STEER_MAX))
# limits due to driver torque # limits due to driver torque
@ -51,7 +46,7 @@ class CarController:
# *** alerts and pcm cancel *** # *** alerts and pcm cancel ***
if self.CP.carFingerprint in PREGLOBAL_CARS: if self.CP.carFingerprint in PREGLOBAL_CARS:
if self.es_distance_cnt != CS.es_distance_msg["COUNTER"]: if self.frame % 5 == 0:
# 1 = main, 2 = set shallow, 3 = set deep, 4 = resume shallow, 5 = resume deep # 1 = main, 2 = set shallow, 3 = set deep, 4 = resume shallow, 5 = resume deep
# disengage ACC when OP is disengaged # disengage ACC when OP is disengaged
if pcm_cancel_cmd: if pcm_cancel_cmd:
@ -68,7 +63,6 @@ class CarController:
self.cruise_button_prev = cruise_button self.cruise_button_prev = cruise_button
can_sends.append(subarucan.create_preglobal_es_distance(self.packer, cruise_button, CS.es_distance_msg)) can_sends.append(subarucan.create_preglobal_es_distance(self.packer, cruise_button, CS.es_distance_msg))
self.es_distance_cnt = CS.es_distance_msg["COUNTER"]
else: else:
if pcm_cancel_cmd and (self.frame - self.last_cancel_frame) > 0.2: if pcm_cancel_cmd and (self.frame - self.last_cancel_frame) > 0.2:
@ -76,19 +70,15 @@ class CarController:
can_sends.append(subarucan.create_es_distance(self.packer, CS.es_distance_msg, bus, pcm_cancel_cmd)) can_sends.append(subarucan.create_es_distance(self.packer, CS.es_distance_msg, bus, pcm_cancel_cmd))
self.last_cancel_frame = self.frame self.last_cancel_frame = self.frame
if self.es_dashstatus_cnt != CS.es_dashstatus_msg["COUNTER"]: if self.frame % 10 == 0:
can_sends.append(subarucan.create_es_dashstatus(self.packer, CS.es_dashstatus_msg)) can_sends.append(subarucan.create_es_dashstatus(self.packer, CS.es_dashstatus_msg))
self.es_dashstatus_cnt = CS.es_dashstatus_msg["COUNTER"]
if self.es_lkas_state_cnt != CS.es_lkas_state_msg["COUNTER"]:
can_sends.append(subarucan.create_es_lkas_state(self.packer, CS.es_lkas_state_msg, CC.enabled, hud_control.visualAlert, can_sends.append(subarucan.create_es_lkas_state(self.packer, CS.es_lkas_state_msg, CC.enabled, hud_control.visualAlert,
hud_control.leftLaneVisible, hud_control.rightLaneVisible, hud_control.leftLaneVisible, hud_control.rightLaneVisible,
hud_control.leftLaneDepart, hud_control.rightLaneDepart)) hud_control.leftLaneDepart, hud_control.rightLaneDepart))
self.es_lkas_state_cnt = CS.es_lkas_state_msg["COUNTER"]
if self.CP.flags & SubaruFlags.SEND_INFOTAINMENT:
if self.CP.flags & SubaruFlags.SEND_INFOTAINMENT and self.infotainmentstatus_cnt != CS.es_infotainmentstatus_msg["COUNTER"]: can_sends.append(subarucan.create_infotainmentstatus(self.packer, CS.es_infotainmentstatus_msg, hud_control.visualAlert))
can_sends.append(subarucan.create_infotainmentstatus(self.packer, CS.es_infotainmentstatus_msg, hud_control.visualAlert))
self.infotainmentstatus_cnt = CS.es_infotainmentstatus_msg["COUNTER"]
new_actuators = actuators.copy() new_actuators = actuators.copy()
new_actuators.steer = self.apply_steer_last / self.p.STEER_MAX new_actuators.steer = self.apply_steer_last / self.p.STEER_MAX

@ -1 +1 @@
02b8c1e21f2bd3551aa4a2b94c73dcac762d3148 29f846f525a4e14f380afd20ae8fa0804011ab6e
Loading…
Cancel
Save