diff --git a/selfdrive/car/subaru/carcontroller.py b/selfdrive/car/subaru/carcontroller.py index 335e189366..7f3fc3d84b 100644 --- a/selfdrive/car/subaru/carcontroller.py +++ b/selfdrive/car/subaru/carcontroller.py @@ -6,7 +6,7 @@ from opendbc.can.packer import CANPacker class CarControllerParams(): - def __init__(self, car_fingerprint): + def __init__(self): self.STEER_MAX = 2047 # max_steer 4095 self.STEER_STEP = 2 # how often we update the steer cmd self.STEER_DELTA_UP = 50 # torque increase per refresh, 0.8s to max @@ -27,7 +27,7 @@ class CarController(): # Setup detection helper. Routes commands to # an appropriate CAN bus number. - self.params = CarControllerParams(CP.carFingerprint) + self.params = CarControllerParams() self.packer = CANPacker(DBC[CP.carFingerprint]['pt']) def update(self, enabled, CS, frame, actuators, pcm_cancel_cmd, visual_alert, left_line, right_line): @@ -56,7 +56,7 @@ class CarController(): if not lkas_enabled: apply_steer = 0 - can_sends.append(subarucan.create_steering_control(self.packer, CS.CP.carFingerprint, apply_steer, frame, P.STEER_STEP)) + can_sends.append(subarucan.create_steering_control(self.packer, apply_steer, frame, P.STEER_STEP)) self.apply_steer_last = apply_steer diff --git a/selfdrive/car/subaru/carstate.py b/selfdrive/car/subaru/carstate.py index 669624519e..ebfbaaa39a 100644 --- a/selfdrive/car/subaru/carstate.py +++ b/selfdrive/car/subaru/carstate.py @@ -111,7 +111,6 @@ class CarState(CarStateBase): ("Main", "ES_Distance", 0), ("Signal3", "ES_Distance", 0), - ("Checksum", "ES_LKAS_State", 0), ("Counter", "ES_LKAS_State", 0), ("Keep_Hands_On_Wheel", "ES_LKAS_State", 0), ("Empty_Box", "ES_LKAS_State", 0), diff --git a/selfdrive/car/subaru/subarucan.py b/selfdrive/car/subaru/subarucan.py index 96abfaafb3..d0850afc9e 100644 --- a/selfdrive/car/subaru/subarucan.py +++ b/selfdrive/car/subaru/subarucan.py @@ -1,36 +1,24 @@ import copy from cereal import car -from selfdrive.car.subaru.values import CAR VisualAlert = car.CarControl.HUDControl.VisualAlert -def subaru_checksum(packer, values, addr): - dat = packer.make_can_msg(addr, 0, values)[2] - return (sum(dat[1:]) + (addr >> 8) + addr) & 0xff +def create_steering_control(packer, apply_steer, frame, steer_step): -def create_steering_control(packer, car_fingerprint, apply_steer, frame, steer_step): + # counts from 0 to 15 then back to 0 + 16 for enable bit + idx = ((frame // steer_step) % 16) - if car_fingerprint == CAR.IMPREZA: - #counts from 0 to 15 then back to 0 + 16 for enable bit - idx = ((frame // steer_step) % 16) - - values = { - "Counter": idx, - "LKAS_Output": apply_steer, - "LKAS_Request": 1 if apply_steer != 0 else 0, - "SET_1": 1 - } - values["Checksum"] = subaru_checksum(packer, values, 0x122) + values = { + "Counter": idx, + "LKAS_Output": apply_steer, + "LKAS_Request": 1 if apply_steer != 0 else 0, + "SET_1": 1 + } return packer.make_can_msg("ES_LKAS", 0, values) -def create_steering_status(packer, car_fingerprint, apply_steer, frame, steer_step): - - if car_fingerprint == CAR.IMPREZA: - values = {} - values["Checksum"] = subaru_checksum(packer, {}, 0x322) - - return packer.make_can_msg("ES_LKAS_State", 0, values) +def create_steering_status(packer, apply_steer, frame, steer_step): + return packer.make_can_msg("ES_LKAS_State", 0, {}) def create_es_distance(packer, es_distance_msg, pcm_cancel_cmd): @@ -38,8 +26,6 @@ def create_es_distance(packer, es_distance_msg, pcm_cancel_cmd): if pcm_cancel_cmd: values["Main"] = 1 - values["Checksum"] = subaru_checksum(packer, values, 545) - return packer.make_can_msg("ES_Distance", 0, values) def create_es_lkas(packer, es_lkas_msg, visual_alert, left_line, right_line): @@ -51,6 +37,4 @@ def create_es_lkas(packer, es_lkas_msg, visual_alert, left_line, right_line): values["LKAS_Left_Line_Visible"] = int(left_line) values["LKAS_Right_Line_Visible"] = int(right_line) - values["Checksum"] = subaru_checksum(packer, values, 802) - return packer.make_can_msg("ES_LKAS_State", 0, values)