This commit is contained in:
firestar5683
2026-07-20 16:48:50 -05:00
parent 01df304f88
commit 6d92a8e5ad
3 changed files with 29 additions and 1 deletions
@@ -39,6 +39,21 @@ class TestToyotaInterfaces:
# At this time, only RAV4 2023 is expected to use LTA/angle control
assert ANGLE_CONTROL_CAR == {CAR.TOYOTA_RAV4_TSS2_2023}
def test_rav4_prime_force_torque_controller(self):
fingerprint = {bus: {} for bus in range(8)}
default_params = CarInterface.get_params(
CAR.TOYOTA_RAV4_PRIME, fingerprint, [], False, False, False,
SimpleNamespace(force_torque_controller=False, nnff=False, nnff_lite=False),
)
forced_params = CarInterface.get_params(
CAR.TOYOTA_RAV4_PRIME, fingerprint, [], False, False, False,
SimpleNamespace(force_torque_controller=True, nnff=False, nnff_lite=False),
)
assert default_params.lateralTuning.which() == "pid"
assert forced_params.lateralTuning.which() == "torque"
def test_tss2_dbc(self):
# We make some assumptions about TSS2 platforms,
# like looking up certain signals only in this DBC
+4 -1
View File
@@ -359,6 +359,9 @@ def get_starpilot_toggles(sm=messaging.SubMaster(["starpilotPlan"])):
toggles.force_offroad = get_starpilot_toggles._params.get_bool("ForceOffroad")
toggles.force_onroad = get_starpilot_toggles._params.get_bool("ForceOnroad")
# Controller selection happens before the first live StarPilot broadcast. Do
# not let a cached CarParams/controller type hide the persisted user request.
toggles.force_torque_controller = get_starpilot_toggles._params.get_bool("ForceTorqueController")
return toggles
@cache
@@ -1064,7 +1067,7 @@ class StarPilotVariables:
toggle.lane_change_time_max = 10.0 + (10 - pace) * 2.0 / 9.0
lateral_tuning = self.get_value("LateralTune")
toggle.force_torque_controller = self.get_value("ForceTorqueController", condition=lateral_tuning and not is_torque_car and not is_angle_car)
toggle.force_torque_controller = self.get_value("ForceTorqueController", condition=lateral_tuning and not is_angle_car)
toggle.nnff = self.get_value("NNFF", condition=lateral_tuning and has_nnff and not is_angle_car)
toggle.nnff_lite = self.get_value("NNFFLite", condition=not toggle.nnff and lateral_tuning and not is_angle_car)
toggle.nav_desires_allowed = self.get_value("NavDesiresAllowed")
@@ -36,6 +36,16 @@ def test_get_starpilot_toggles_uses_last_non_empty_broadcast(monkeypatch):
assert second.vision_speed_limit_detection is True
def test_get_starpilot_toggles_uses_persisted_force_torque_request(monkeypatch):
params = SimpleNamespace(get_bool=lambda key: key == "ForceTorqueController")
monkeypatch.setattr(spv.get_starpilot_toggles, "_params", params, raising=False)
payload = '{"force_torque_controller": false}'
toggles = spv.get_starpilot_toggles({"starpilotPlan": SimpleNamespace(starpilotToggles=payload)})
assert toggles.force_torque_controller is True
class _FakeParams:
def __init__(self, floats=None, ints=None, bools=None):
self.floats = dict(floats or {})