Merry Crisis

This commit is contained in:
firestar5683
2026-04-06 19:14:44 -05:00
parent eb04ec95bf
commit 7ca1d6caca
2 changed files with 18 additions and 4 deletions
@@ -30,6 +30,14 @@ class CarState(CarStateBase):
self.lkas_button = 0
@staticmethod
def get_lkas_button(pt_signals, is_ram: bool) -> bool:
if is_ram:
return bool(pt_signals.get("Center_Stack_1", {}).get("LKAS_Button", 0) or
pt_signals.get("Center_Stack_2", {}).get("LKAS_Button", 0))
return pt_signals.get("TRACTION_BUTTON", {}).get("TOGGLE_LKAS", 0) == 1
def update(self, can_parsers, starpilot_toggles) -> structs.CarState:
cp = can_parsers[Bus.pt]
cp_cam = can_parsers[Bus.cam]
@@ -106,10 +114,7 @@ class CarState(CarStateBase):
fp_ret = custom.StarPilotCarState.new_message()
self.prev_lkas_button = self.lkas_button
if self.CP.carFingerprint in RAM_CARS:
self.lkas_button = cp.vl["Center_Stack_1"]["LKAS_Button"] or cp.vl["Center_Stack_2"]["LKAS_Button"]
else:
self.lkas_button = cp.vl["TRACTION_BUTTON"]["TOGGLE_LKAS"] == 1
self.lkas_button = self.get_lkas_button(cp.vl, self.CP.carFingerprint in RAM_CARS)
buttonEvents += [
*create_button_events(self.lkas_button, self.prev_lkas_button, {1: ButtonType.lkas}),
@@ -8,6 +8,7 @@ from typing import Any
from opendbc.car import DT_CTRL, CanData, structs
from opendbc.car.car_helpers import interfaces
from opendbc.car.chrysler.carstate import CarState as ChryslerCarState
from opendbc.car.fingerprints import FW_VERSIONS
from opendbc.car.fw_versions import FW_QUERY_CONFIGS
from opendbc.car.gm.values import CAR as GM_CAR, CanBus as GMCanBus, GMSafetyFlags
@@ -58,6 +59,14 @@ def get_fuzzy_car_interface(car_name: str, draw: DrawType) -> CarInterfaceBase:
class TestCarInterfaces:
def test_chrysler_missing_lkas_signal_defaults_unpressed(self):
assert not ChryslerCarState.get_lkas_button({"TRACTION_BUTTON": {"TRACTION_OFF": 1}}, is_ram=False)
assert ChryslerCarState.get_lkas_button({"TRACTION_BUTTON": {"TOGGLE_LKAS": 1}}, is_ram=False)
assert ChryslerCarState.get_lkas_button({
"Center_Stack_1": {"LKAS_Button": 0},
"Center_Stack_2": {"LKAS_Button": 1},
}, is_ram=True)
def test_gm_bolt_gen2_pedal_safety_flags(self):
CarInterface = interfaces[GM_CAR.CHEVROLET_BOLT_ACC_2022_2023_PEDAL]