From bbbe20ebddc2d86051f7cc52e71a02fb63ff5d87 Mon Sep 17 00:00:00 2001 From: FrogAi <91348155+FrogAi@users.noreply.github.com> Date: Sat, 18 May 2024 22:39:53 -0700 Subject: [PATCH] FrogPilot features - Store user's toggles in storage --- selfdrive/frogpilot/controls/lib/frogpilot_functions.py | 5 +++++ selfdrive/ui/qt/offroad/settings.cc | 1 + system/manager/manager.py | 7 ++++++- 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/selfdrive/frogpilot/controls/lib/frogpilot_functions.py b/selfdrive/frogpilot/controls/lib/frogpilot_functions.py index 098c993a3..a2d6ab718 100644 --- a/selfdrive/frogpilot/controls/lib/frogpilot_functions.py +++ b/selfdrive/frogpilot/controls/lib/frogpilot_functions.py @@ -149,6 +149,11 @@ class FrogPilotFunctions: @classmethod def setup_frogpilot(cls): + remount_persist = ['sudo', 'mount', '-o', 'remount,rw', '/persist'] + run_cmd(remount_persist, "Successfully remounted /persist as read-write.", "Failed to remount /persist.") + + os.makedirs("/persist/params", exist_ok=True) + frogpilot_boot_logo = f'{BASEDIR}/selfdrive/frogpilot/assets/other_images/frogpilot_boot_logo.png' boot_logo_location = '/usr/comma/bg.jpg' boot_logo_save_location = f'{BASEDIR}/selfdrive/frogpilot/assets/other_images/original_bg.jpg' diff --git a/selfdrive/ui/qt/offroad/settings.cc b/selfdrive/ui/qt/offroad/settings.cc index b3e468656..eceb5effa 100644 --- a/selfdrive/ui/qt/offroad/settings.cc +++ b/selfdrive/ui/qt/offroad/settings.cc @@ -459,6 +459,7 @@ DevicePanel::DevicePanel(SettingsWindow *parent) : ListWidget(parent) { if (ConfirmationDialog::confirm(tr("Are you sure you want to completely reset all of your toggle settings?"), tr("Reset"), this)) { std::thread([&] { resetTogglesBtn->setValue(tr("Resetting toggles...")); + std::system("rm -rf /persist/params"); params.putBool("DoToggleReset", true); std::this_thread::sleep_for(std::chrono::seconds(2)); resetTogglesBtn->setValue(tr("Reset!")); diff --git a/system/manager/manager.py b/system/manager/manager.py index af90c7841..bef855c2d 100755 --- a/system/manager/manager.py +++ b/system/manager/manager.py @@ -321,7 +321,12 @@ def manager_init(frogpilot_functions) -> None: # set unset params for k, v in default_params: if params.get(k) is None or params.get_bool("DoToggleReset"): - params.put(k, v) + if params_storage.get(k) is None: + params.put(k, v) + else: + params.put(k, params_storage.get(k)) + else: + params_storage.put(k, params.get(k)) params.put_bool("DoToggleReset", False)