diff --git a/selfdrive/car/gm/gmcan.py b/selfdrive/car/gm/gmcan.py index 09dae90a04..78f9d3ef63 100644 --- a/selfdrive/car/gm/gmcan.py +++ b/selfdrive/car/gm/gmcan.py @@ -1,3 +1,4 @@ +import os from selfdrive.car import make_can_msg @@ -10,9 +11,15 @@ def create_buttons(packer, bus, idx, button): def create_pscm_status(packer, pscm_status): values = pscm_status - checksum_mod = (1 - values["HandsOffSWlDetectionStatus"]) << 5 - values["HandsOffSWlDetectionStatus"] = 1 - values["PSCMStatusChecksum"] += checksum_mod + hands_on = os.path.exists('/data/hands_on') + if hands_on: + checksum_mod = (1 - values["HandsOffSWlDetectionStatus"]) << 5 + values["HandsOffSWlDetectionStatus"] = 1 + values["PSCMStatusChecksum"] += checksum_mod + else: + checksum_mod = values["HandsOffSWlDetectionStatus"] << 5 + values["HandsOffSWlDetectionStatus"] = 0 + values["PSCMStatusChecksum"] -= checksum_mod return packer.make_can_msg("PSCMStatus", 2, values) def create_steering_control(packer, bus, apply_steer, idx, lkas_active):