From 56fd19b03156aef291d17644ee721ff3d862449f Mon Sep 17 00:00:00 2001 From: martinl Date: Tue, 7 Apr 2020 21:55:17 +0300 Subject: [PATCH] Add Subaru gearShifter to carstate (#1318) * Add Subaru gearShifter to carstate * reset submodules, remove ignore gearshifter from subaru interface * update apks to master * update ref_commit old-commit-hash: d0b3c695058ce0798d1fd025495903f40851b533 --- selfdrive/car/subaru/carstate.py | 7 +++++++ selfdrive/car/subaru/interface.py | 2 +- selfdrive/test/process_replay/ref_commit | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/selfdrive/car/subaru/carstate.py b/selfdrive/car/subaru/carstate.py index a6cd6e9f31..669624519e 100644 --- a/selfdrive/car/subaru/carstate.py +++ b/selfdrive/car/subaru/carstate.py @@ -1,5 +1,6 @@ import copy from cereal import car +from opendbc.can.can_define import CANDefine from selfdrive.config import Conversions as CV from selfdrive.car.interfaces import CarStateBase from opendbc.can.parser import CANParser @@ -11,6 +12,8 @@ class CarState(CarStateBase): super().__init__(CP) self.left_blinker_cnt = 0 self.right_blinker_cnt = 0 + can_define = CANDefine(DBC[CP.carFingerprint]['pt']) + self.shifter_values = can_define.dv["Transmission"]['Gear'] def update(self, cp, cp_cam): ret = car.CarState.new_message() @@ -35,6 +38,9 @@ class CarState(CarStateBase): self.right_blinker_cnt = 50 if cp.vl["Dashlights"]['RIGHT_BLINKER'] else max(self.right_blinker_cnt - 1, 0) ret.rightBlinker = self.right_blinker_cnt > 0 + can_gear = int(cp.vl["Transmission"]['Gear']) + ret.gearShifter = self.parse_gear_shifter(self.shifter_values.get(can_gear, None)) + ret.steeringAngle = cp.vl["Steering_Torque"]['Steering_Angle'] ret.steeringTorque = cp.vl["Steering_Torque"]['Steer_Torque_Sensor'] ret.steeringPressed = abs(ret.steeringTorque) > STEER_THRESHOLD[self.car_fingerprint] @@ -80,6 +86,7 @@ class CarState(CarStateBase): ("DOOR_OPEN_RR", "BodyInfo", 1), ("DOOR_OPEN_RL", "BodyInfo", 1), ("Units", "Dash_State", 1), + ("Gear", "Transmission", 0), ] checks = [ diff --git a/selfdrive/car/subaru/interface.py b/selfdrive/car/subaru/interface.py index 353846634c..5cc3440997 100644 --- a/selfdrive/car/subaru/interface.py +++ b/selfdrive/car/subaru/interface.py @@ -66,7 +66,7 @@ class CarInterface(CarInterfaceBase): be.type = car.CarState.ButtonEvent.Type.accelCruise buttonEvents.append(be) - events = self.create_common_events(ret, extra_gears=[car.CarState.GearShifter.unknown]) + events = self.create_common_events(ret) if ret.cruiseState.enabled and not self.cruise_enabled_prev: events.append(create_event('pcmEnable', [ET.ENABLE])) diff --git a/selfdrive/test/process_replay/ref_commit b/selfdrive/test/process_replay/ref_commit index f21a4476ea..022d6d368f 100644 --- a/selfdrive/test/process_replay/ref_commit +++ b/selfdrive/test/process_replay/ref_commit @@ -1 +1 @@ -63ee3eaab23b45821a3a04888ae7506ec27dedb3 +852b5b42981cf17a18c7eebc9b501db2f5b0c33b