From 031de6d90b35768a8f0b5bb64e4f8f53dc719ec1 Mon Sep 17 00:00:00 2001 From: Shane Smiskol Date: Tue, 18 Oct 2022 13:07:09 -0700 Subject: [PATCH] only send our values --- selfdrive/car/gm/carstate.py | 6 +----- selfdrive/car/gm/gmcan.py | 16 ++++++++++++---- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/selfdrive/car/gm/carstate.py b/selfdrive/car/gm/carstate.py index 424822fc62..9183991113 100644 --- a/selfdrive/car/gm/carstate.py +++ b/selfdrive/car/gm/carstate.py @@ -27,6 +27,7 @@ class CarState(CarStateBase): self.prev_cruise_buttons = self.cruise_buttons self.cruise_buttons = pt_cp.vl["ASCMSteeringButton"]["ACCButtons"] self.buttons_counter = pt_cp.vl["ASCMSteeringButton"]["RollingCounter"] + self.pscm_status_counter = pt_cp.vl["PSCMStatus"]["RollingCounter"] # Variables used for avoiding LKAS faults self.loopback_lka_steering_cmd_updated = len(loopback_cp.vl_all["ASCMLKASteeringCmd"]) > 0 @@ -75,7 +76,6 @@ class CarState(CarStateBase): ret.steeringPressed = abs(ret.steeringTorque) > STEER_THRESHOLD # 0 inactive, 1 active, 2 temporarily limited, 3 failed - self.pscm_status = copy.copy(pt_cp.vl["PSCMStatus"]) self.lkas_status = pt_cp.vl["PSCMStatus"]["LKATorqueDeliveredStatus"] ret.steerFaultTemporary = self.lkas_status == 2 ret.steerFaultPermanent = self.lkas_status == 3 @@ -149,10 +149,6 @@ class CarState(CarStateBase): ("LKADriverAppldTrq", "PSCMStatus"), ("LKATorqueDelivered", "PSCMStatus"), ("LKATorqueDeliveredStatus", "PSCMStatus"), - ("HandsOffSWlDetectionStatus", "PSCMStatus"), - ("HandsOffSWDetectionMode", "PSCMStatus"), - ("LKATotalTorqueDelivered", "PSCMStatus"), - ("PSCMStatusChecksum", "PSCMStatus"), ("RollingCounter", "PSCMStatus"), ("TractionControlOn", "ESPStatus"), ("ParkBrake", "VehicleIgnitionAlt"), diff --git a/selfdrive/car/gm/gmcan.py b/selfdrive/car/gm/gmcan.py index 2ed293dda4..76b9b99a70 100644 --- a/selfdrive/car/gm/gmcan.py +++ b/selfdrive/car/gm/gmcan.py @@ -8,10 +8,18 @@ def create_buttons(packer, bus, idx, button): return packer.make_can_msg("ASCMSteeringButton", bus, values) def create_pscm_status(packer, pscm_status): - checksum_mod = int(1 - pscm_status["HandsOffSWlDetectionStatus"]) << 5 - pscm_status["HandsOffSWlDetectionStatus"] = 1 - pscm_status["PSCMStatusChecksum"] += checksum_mod - return packer.make_can_msg("PSCMStatus", 2, pscm_status) + values = { + "HandsOffSWDetectionMode": 1, + "HandsOffSWlDetectionStatus": 1, + "LKATorqueDeliveredStatus": 0, + "RollingCounter": int(pscm_status["RollingCounter"] + 1) & 0xf, + } + values["PSCMStatusChecksum"] = (0x30 + (values['HandsOffSWlDetectionStatus'] << 5) + + (values['LKATorqueDeliveredStatus'] << 3) + + (values['HandsOffSWDetectionMode'] << 3) + + values['RollingCounter']) + + return packer.make_can_msg("PSCMStatus", 2, values) def create_steering_control(packer, bus, apply_steer, idx, lkas_active):