mirror of
https://github.com/firestar5683/StarPilot.git
synced 2026-09-12 03:03:51 +08:00
the day of the push
This commit is contained in:
@@ -29,9 +29,9 @@ from openpilot.starpilot.common.maps_download_progress import (
|
||||
storage_bytes,
|
||||
)
|
||||
from openpilot.starpilot.common.theme_asset_names import find_matching_theme_asset_file
|
||||
from openpilot.starpilot.common.starpilot_utilities import get_starpilot_api_info, is_FrogsGoMoo, is_url_pingable, run_cmd
|
||||
from openpilot.starpilot.common.starpilot_utilities import get_starpilot_api_info, is_url_pingable, run_cmd
|
||||
from openpilot.starpilot.common.starpilot_variables import (
|
||||
ERROR_LOGS_PATH, STARPILOT_API, FROGS_GO_MOO_PATH, HD_LOGS_PATH, KONIK_LOGS_PATH, MAPS_PATH, THEME_SAVE_PATH,
|
||||
ERROR_LOGS_PATH, STARPILOT_API, HD_LOGS_PATH, KONIK_LOGS_PATH, MAPS_PATH, THEME_SAVE_PATH,
|
||||
StarPilotVariables, get_starpilot_toggles
|
||||
)
|
||||
|
||||
@@ -113,13 +113,6 @@ def install_starpilot(build_metadata, params):
|
||||
|
||||
update_boot_logo(starpilot=True, selected_logo=params.get("BootLogo"))
|
||||
|
||||
if is_FrogsGoMoo():
|
||||
mount_options = run_cmd(["findmnt", "-n", "-o", "OPTIONS", "/persist"], "Successfully retrieved mount options", "Failed to retrieve mount options")
|
||||
run_cmd(["sudo", "mount", "-o", "remount,rw", "/persist"], "Successfully remounted /persist as read-write", "Failed to remount /persist")
|
||||
run_cmd(["sudo", "python3", FROGS_GO_MOO_PATH], "Successfully ran frogsgomoo.py", "Failed to run frogsgomoo.py")
|
||||
run_cmd(["sudo", "mount", "-o", f"remount,{mount_options}", "/persist"], "Successfully restored /persist mount options", "Failed to restore /persist mount options")
|
||||
|
||||
|
||||
def register_device(build_metadata, params):
|
||||
def register_thread():
|
||||
dongle_id = params.get("DongleId")
|
||||
|
||||
@@ -23,7 +23,7 @@ from openpilot.system.hardware import HARDWARE
|
||||
from openpilot.system.version import get_build_metadata
|
||||
from panda import Panda, FW_PATH
|
||||
|
||||
from openpilot.starpilot.common.starpilot_variables import EARTH_RADIUS, STARPILOT_API, FROGS_GO_MOO_PATH, KONIK_PATH
|
||||
from openpilot.starpilot.common.starpilot_variables import EARTH_RADIUS, STARPILOT_API, KONIK_PATH
|
||||
|
||||
|
||||
def capture_exception(exception):
|
||||
@@ -272,11 +272,6 @@ def get_sentry_dsn():
|
||||
return ""
|
||||
|
||||
|
||||
@cache
|
||||
def is_FrogsGoMoo():
|
||||
return FROGS_GO_MOO_PATH.is_file()
|
||||
|
||||
|
||||
def is_url_pingable(url):
|
||||
if not url:
|
||||
return False
|
||||
|
||||
@@ -74,7 +74,7 @@ def _lkas_allowed_for_aol(car_make, cp_flags, fpcp_safety_configs) -> bool:
|
||||
hyundai_can_use_lkas_for_aol = car_make == "hyundai" and (
|
||||
bool(cp_flags & HyundaiFlags.CANFD) or hyundai_has_lda_button
|
||||
)
|
||||
return hyundai_can_use_lkas_for_aol or car_make == "honda"
|
||||
return hyundai_can_use_lkas_for_aol or car_make in ("ford", "honda")
|
||||
|
||||
|
||||
def _main_cruise_aol_allowed(button_control: float) -> bool:
|
||||
@@ -145,8 +145,6 @@ BACKUP_PATH = _FP_CACHE_ROOT / "on_backup"
|
||||
STARPILOT_BACKUPS = _FP_DATA_ROOT / "backups"
|
||||
TOGGLE_BACKUPS = _FP_DATA_ROOT / "toggle_backups"
|
||||
|
||||
FROGS_GO_MOO_PATH = _FP_PERSIST_ROOT / "frogsgomoo.py"
|
||||
|
||||
HD_LOGS_PATH = _FP_DATA_ROOT / "media/0/realdata_HD"
|
||||
HD_PATH = _FP_CACHE_ROOT / "use_HD"
|
||||
|
||||
@@ -183,6 +181,7 @@ CANCEL_BUTTON_MAPPINGS = (
|
||||
)
|
||||
|
||||
AOL_LKAS_MIGRATION_KEY = "AOLLKASMigratedToButtonControl"
|
||||
FORD_LKAS_MIGRATION_KEY = "FordLKASButtonControlMigrated"
|
||||
|
||||
|
||||
def sync_reboot_marker(marker_path: Path, enabled: bool, params: Params) -> bool:
|
||||
@@ -401,6 +400,18 @@ def migrate_aol_lkas_to_button_control(params: Params | None = None) -> bool:
|
||||
return True
|
||||
|
||||
|
||||
def migrate_ford_lkas_button_default(car_make: str, params: Params | None = None) -> bool:
|
||||
params = params or Params(return_defaults=True)
|
||||
if car_make != "ford" or params.get_bool(FORD_LKAS_MIGRATION_KEY):
|
||||
return False
|
||||
|
||||
if params.get_int("LKASButtonControl") == BUTTON_FUNCTIONS["EXPERIMENTAL_MODE"]:
|
||||
params.put_int("LKASButtonControl", BUTTON_FUNCTIONS["AOL_TOGGLE"])
|
||||
|
||||
params.put_bool(FORD_LKAS_MIGRATION_KEY, True)
|
||||
return True
|
||||
|
||||
|
||||
class StarPilotVariables:
|
||||
def __init__(self):
|
||||
self.params = Params(return_defaults=True)
|
||||
@@ -419,7 +430,6 @@ class StarPilotVariables:
|
||||
self.testing_branch = branch == "StarPilot-Testing"
|
||||
self.vetting_branch = branch == "StarPilot-Vetting"
|
||||
|
||||
self.frogs_go_moo = FROGS_GO_MOO_PATH.is_file()
|
||||
# Development/vetting branches are no longer gated into dashcam mode.
|
||||
toggle.block_user = False
|
||||
|
||||
@@ -611,6 +621,7 @@ class StarPilotVariables:
|
||||
|
||||
alpha_longitudinal = CP.alphaLongitudinalAvailable
|
||||
toggle.car_make = CP.brand
|
||||
migrate_ford_lkas_button_default(toggle.car_make, self.params)
|
||||
toggle.car_model = CP.carFingerprint
|
||||
toggle.disable_openpilot_long = self.get_value("DisableOpenpilotLongitudinal", condition=not alpha_longitudinal)
|
||||
friction = CP.lateralTuning.torque.friction
|
||||
@@ -789,7 +800,10 @@ class StarPilotVariables:
|
||||
|
||||
toggle.always_on_lateral = self.get_value("AlwaysOnLateral")
|
||||
lkas_button_assigned_to_aol = self.get_button_function("LKASButtonControl") == BUTTON_FUNCTIONS["AOL_TOGGLE"]
|
||||
toggle.always_on_lateral_lkas = toggle.always_on_lateral and toggle.lkas_allowed_for_aol and lkas_button_assigned_to_aol
|
||||
toggle.ford_lkas_aol_toggle = toggle.car_make == "ford" and lkas_button_assigned_to_aol
|
||||
toggle.always_on_lateral_lkas = (
|
||||
toggle.always_on_lateral and toggle.lkas_allowed_for_aol and lkas_button_assigned_to_aol and not toggle.ford_lkas_aol_toggle
|
||||
)
|
||||
toggle.always_on_lateral_main = toggle.always_on_lateral and not prohibited_main_aol
|
||||
toggle.always_on_lateral_pause_speed = self.get_value("PauseAOLOnBrake", cast=float, condition=toggle.always_on_lateral)
|
||||
|
||||
|
||||
@@ -21,6 +21,10 @@ def test_hyundai_and_honda_keep_lkas_aol_button_path():
|
||||
assert spv._lkas_allowed_for_aol("hyundai", spv.HyundaiFlags.CANFD, []) is True
|
||||
|
||||
|
||||
def test_ford_can_map_lkas_button_to_aol():
|
||||
assert spv._lkas_allowed_for_aol("ford", 0, []) is True
|
||||
|
||||
|
||||
def test_explicit_main_cruise_aol_mapping_is_not_disabled_by_longitudinal_gate():
|
||||
aol_button = spv.BUTTON_FUNCTIONS["AOL_TOGGLE"]
|
||||
|
||||
@@ -130,6 +134,33 @@ class _FakeParams:
|
||||
self.bools.pop(key, None)
|
||||
|
||||
|
||||
def test_ford_lkas_default_migrates_from_experimental_to_aol_toggle():
|
||||
params = _FakeParams(ints={"LKASButtonControl": spv.BUTTON_FUNCTIONS["EXPERIMENTAL_MODE"]})
|
||||
|
||||
assert spv.migrate_ford_lkas_button_default("ford", params) is True
|
||||
assert params.get_int("LKASButtonControl") == spv.BUTTON_FUNCTIONS["AOL_TOGGLE"]
|
||||
assert params.get_bool(spv.FORD_LKAS_MIGRATION_KEY) is True
|
||||
|
||||
params.put_int("LKASButtonControl", spv.BUTTON_FUNCTIONS["EXPERIMENTAL_MODE"])
|
||||
assert spv.migrate_ford_lkas_button_default("ford", params) is False
|
||||
assert params.get_int("LKASButtonControl") == spv.BUTTON_FUNCTIONS["EXPERIMENTAL_MODE"]
|
||||
|
||||
|
||||
def test_ford_lkas_default_migration_preserves_custom_mapping():
|
||||
params = _FakeParams(ints={"LKASButtonControl": spv.BUTTON_FUNCTIONS["BOOKMARK"]})
|
||||
|
||||
assert spv.migrate_ford_lkas_button_default("ford", params) is True
|
||||
assert params.get_int("LKASButtonControl") == spv.BUTTON_FUNCTIONS["BOOKMARK"]
|
||||
|
||||
|
||||
def test_ford_lkas_default_migration_ignores_other_brands():
|
||||
params = _FakeParams(ints={"LKASButtonControl": spv.BUTTON_FUNCTIONS["EXPERIMENTAL_MODE"]})
|
||||
|
||||
assert spv.migrate_ford_lkas_button_default("honda", params) is False
|
||||
assert params.get_int("LKASButtonControl") == spv.BUTTON_FUNCTIONS["EXPERIMENTAL_MODE"]
|
||||
assert params.get_bool(spv.FORD_LKAS_MIGRATION_KEY) is False
|
||||
|
||||
|
||||
def test_sync_reboot_marker_uses_manager_guard(tmp_path):
|
||||
params = _FakeParams()
|
||||
marker = tmp_path / "cache" / "use_HD"
|
||||
|
||||
Reference in New Issue
Block a user