From 2f83b9872fe991d21e07a95cc518f91f140a856a Mon Sep 17 00:00:00 2001 From: Jason Shuler Date: Mon, 12 Dec 2022 20:26:30 -0500 Subject: [PATCH] GM: add checksum to button message (#26014) * Add GM button msg checksum * checksum that works for both, fix missing bit * bump opendbc * update comment Co-authored-by: Shane Smiskol --- opendbc | 2 +- selfdrive/car/gm/gmcan.py | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/opendbc b/opendbc index 1f8aa057b..bb7182902 160000 --- a/opendbc +++ b/opendbc @@ -1 +1 @@ -Subproject commit 1f8aa057bc1c96fcf8a2b612a9897ce91e627381 +Subproject commit bb7182902847b84aa572733edfd8e7073bb02aeb diff --git a/selfdrive/car/gm/gmcan.py b/selfdrive/car/gm/gmcan.py index 56c981326..63189bcd8 100644 --- a/selfdrive/car/gm/gmcan.py +++ b/selfdrive/car/gm/gmcan.py @@ -6,7 +6,16 @@ def create_buttons(packer, bus, idx, button): values = { "ACCButtons": button, "RollingCounter": idx, + "ACCAlwaysOne": 1, + "DistanceButton": 0, } + + checksum = 240 + int(values["ACCAlwaysOne"] * 0xf) + checksum += values["RollingCounter"] * (0x4ef if values["ACCAlwaysOne"] != 0 else 0x3f0) + checksum -= int(values["ACCButtons"] - 1) << 4 # not correct if value is 0 + checksum -= 2 * values["DistanceButton"] + + values["SteeringButtonChecksum"] = checksum return packer.make_can_msg("ASCMSteeringButton", bus, values)