cars: various small cleanups (#28031)

* finally fix subarucan formatting

* no need for intermediate variables

* make this check explicit
old-commit-hash: 9689e9c567
beeps
Shane Smiskol 2 years ago committed by GitHub
parent 56c85d2c7b
commit d57006f829
  1. 8
      selfdrive/car/nissan/carcontroller.py
  2. 4
      selfdrive/car/nissan/carstate.py
  3. 19
      selfdrive/car/subaru/subarucan.py

@ -26,8 +26,6 @@ class CarController:
can_sends = []
### STEER ###
lkas_hud_msg = CS.lkas_hud_msg
lkas_hud_info_msg = CS.lkas_hud_info_msg
steer_hud_alert = 1 if hud_control.visualAlert in (VisualAlert.steerRequired, VisualAlert.ldw) else 0
if CC.latActive:
@ -65,14 +63,14 @@ class CarController:
can_sends.append(nissancan.create_steering_control(
self.packer, apply_angle, self.frame, CC.enabled, self.lkas_max_torque))
if lkas_hud_msg and lkas_hud_info_msg:
if self.CP.carFingerprint != CAR.ALTIMA:
if self.frame % 2 == 0:
can_sends.append(nissancan.create_lkas_hud_msg(
self.packer, lkas_hud_msg, CC.enabled, hud_control.leftLaneVisible, hud_control.rightLaneVisible, hud_control.leftLaneDepart, hud_control.rightLaneDepart))
self.packer, CS.lkas_hud_msg, CC.enabled, hud_control.leftLaneVisible, hud_control.rightLaneVisible, hud_control.leftLaneDepart, hud_control.rightLaneDepart))
if self.frame % 50 == 0:
can_sends.append(nissancan.create_lkas_hud_info_msg(
self.packer, lkas_hud_info_msg, steer_hud_alert
self.packer, CS.lkas_hud_info_msg, steer_hud_alert
))
new_actuators = actuators.copy()

@ -14,8 +14,8 @@ class CarState(CarStateBase):
super().__init__(CP)
can_define = CANDefine(DBC[CP.carFingerprint]["pt"])
self.lkas_hud_msg = None
self.lkas_hud_info_msg = None
self.lkas_hud_msg = {}
self.lkas_hud_info_msg = {}
self.steeringTorqueSamples = deque(TORQUE_SAMPLES*[0], TORQUE_SAMPLES)
self.shifter_values = can_define.dv["GEARBOX"]["GEAR_SHIFTER"]

@ -3,6 +3,7 @@ from cereal import car
VisualAlert = car.CarControl.HUDControl.VisualAlert
def create_steering_control(packer, apply_steer):
values = {
"LKAS_Output": apply_steer,
@ -11,9 +12,11 @@ def create_steering_control(packer, apply_steer):
}
return packer.make_can_msg("ES_LKAS", 0, values)
def create_steering_status(packer):
return packer.make_can_msg("ES_LKAS_State", 0, {})
def create_es_distance(packer, es_distance_msg, bus, pcm_cancel_cmd):
values = copy.copy(es_distance_msg)
values["COUNTER"] = (values["COUNTER"] + 1) % 0x10
@ -21,8 +24,8 @@ def create_es_distance(packer, es_distance_msg, bus, pcm_cancel_cmd):
values["Cruise_Cancel"] = 1
return packer.make_can_msg("ES_Distance", bus, values)
def create_es_lkas_state(packer, es_lkas_state_msg, enabled, visual_alert, left_line, right_line, left_lane_depart, right_lane_depart):
def create_es_lkas_state(packer, es_lkas_state_msg, enabled, visual_alert, left_line, right_line, left_lane_depart, right_lane_depart):
values = copy.copy(es_lkas_state_msg)
# Filter the stock LKAS "Keep hands on wheel" alert
@ -52,18 +55,19 @@ def create_es_lkas_state(packer, es_lkas_state_msg, enabled, visual_alert, left_
# Ensure we don't overwrite potentially more important alerts from stock (e.g. FCW)
if visual_alert == VisualAlert.ldw and values["LKAS_Alert"] == 0:
if left_lane_depart:
values["LKAS_Alert"] = 12 # Left lane departure dash alert
values["LKAS_Alert"] = 12 # Left lane departure dash alert
elif right_lane_depart:
values["LKAS_Alert"] = 11 # Right lane departure dash alert
values["LKAS_Alert"] = 11 # Right lane departure dash alert
values["LKAS_ACTIVE"] = 1 # Show LKAS lane lines
values["LKAS_Dash_State"] = 2 if enabled else 0 # Green enabled indicator
values["LKAS_ACTIVE"] = 1 # Show LKAS lane lines
values["LKAS_Dash_State"] = 2 if enabled else 0 # Green enabled indicator
values["LKAS_Left_Line_Visible"] = int(left_line)
values["LKAS_Right_Line_Visible"] = int(right_line)
return packer.make_can_msg("ES_LKAS_State", 0, values)
def create_es_dashstatus(packer, dashstatus_msg):
values = copy.copy(dashstatus_msg)
@ -73,6 +77,7 @@ def create_es_dashstatus(packer, dashstatus_msg):
return packer.make_can_msg("ES_DashStatus", 0, values)
def create_infotainmentstatus(packer, infotainmentstatus_msg, visual_alert):
# Filter stock LKAS disabled and Keep hands on steering wheel OFF alerts
if infotainmentstatus_msg["LKAS_State_Infotainment"] in (3, 4):
@ -88,12 +93,14 @@ def create_infotainmentstatus(packer, infotainmentstatus_msg, visual_alert):
return packer.make_can_msg("INFOTAINMENT_STATUS", 0, infotainmentstatus_msg)
# *** Subaru Pre-global ***
def subaru_preglobal_checksum(packer, values, addr):
dat = packer.make_can_msg(addr, 0, values)[2]
return (sum(dat[:7])) % 256
def create_preglobal_steering_control(packer, apply_steer):
values = {
"LKAS_Command": apply_steer,
@ -103,8 +110,8 @@ def create_preglobal_steering_control(packer, apply_steer):
return packer.make_can_msg("ES_LKAS", 0, values)
def create_preglobal_es_distance(packer, cruise_button, es_distance_msg):
def create_preglobal_es_distance(packer, cruise_button, es_distance_msg):
values = copy.copy(es_distance_msg)
values["Cruise_Button"] = cruise_button

Loading…
Cancel
Save