Merry Crisis
This commit is contained in:
@@ -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]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user