From e70d6969fdbbdc246bd290e78901503e75c84183 Mon Sep 17 00:00:00 2001 From: FrogAi <91348155+FrogAi@users.noreply.github.com> Date: Thu, 18 Jul 2024 23:40:54 -0700 Subject: [PATCH] FrogPilot setup - Convert old toggles --- .../controls/lib/frogpilot_functions.py | 28 +++++++++++++++++++ system/manager/manager.py | 5 ++++ 2 files changed, 33 insertions(+) create mode 100644 selfdrive/frogpilot/controls/lib/frogpilot_functions.py diff --git a/selfdrive/frogpilot/controls/lib/frogpilot_functions.py b/selfdrive/frogpilot/controls/lib/frogpilot_functions.py new file mode 100644 index 000000000..e5a10ee93 --- /dev/null +++ b/selfdrive/frogpilot/controls/lib/frogpilot_functions.py @@ -0,0 +1,28 @@ +from openpilot.common.params_pyx import Params, UnknownKeyName + +def convert_params(params, params_storage): + def convert_param(key, action_func): + try: + if params_storage.check_key(key) and params_storage.get_bool(key): + action_func() + except UnknownKeyName: + pass + + version = 8 + + try: + if params_storage.check_key("ParamConversionVersion") and params_storage.get_int("ParamConversionVersion") == version: + print("Params already converted, moving on.") + return + except UnknownKeyName: + pass + + print("Converting params...") + convert_param("ModelSelector", lambda: params.put_nonblocking("ModelManagement", "True")) + convert_param("DragonPilotTune", lambda: params.put_nonblocking("FrogsGoMooTune", "True")) + + print("Params successfully converted!") + params_storage.put_int_nonblocking("ParamConversionVersion", version) + +def frogpilot_boot_functions(params, params_storage): + convert_params(params, params_storage) diff --git a/system/manager/manager.py b/system/manager/manager.py index 6d1b8d9c2..9a708b033 100755 --- a/system/manager/manager.py +++ b/system/manager/manager.py @@ -3,6 +3,7 @@ import datetime import os import signal import sys +import threading import traceback from cereal import log @@ -18,6 +19,7 @@ from openpilot.system.athena.registration import register, UNREGISTERED_DONGLE_I from openpilot.common.swaglog import cloudlog, add_file_handler from openpilot.system.version import get_build_metadata, terms_version, training_version +from openpilot.selfdrive.frogpilot.controls.lib.frogpilot_functions import frogpilot_boot_functions def manager_init() -> None: @@ -26,12 +28,15 @@ def manager_init() -> None: build_metadata = get_build_metadata() params = Params() + params_storage = Params("/persist/params") params.clear_all(ParamKeyType.CLEAR_ON_MANAGER_START) params.clear_all(ParamKeyType.CLEAR_ON_ONROAD_TRANSITION) params.clear_all(ParamKeyType.CLEAR_ON_OFFROAD_TRANSITION) if build_metadata.release_channel: params.clear_all(ParamKeyType.DEVELOPMENT_ONLY) + threading.Thread(target=frogpilot_boot_functions, args=(params, params_storage,)).start() + default_params: list[tuple[str, str | bytes]] = [ ("CompletedTrainingVersion", "0"), ("DisengageOnAccelerator", "0"),