From cec2a9fe1f5eb95977eba39c837e264ad551e6c1 Mon Sep 17 00:00:00 2001 From: FrogAi <91348155+FrogAi@users.noreply.github.com> Date: Wed, 31 Jul 2024 19:53:23 -0700 Subject: [PATCH] FrogPilot features - Reset toggles to default --- selfdrive/ui/qt/offroad/settings.cc | 20 ++++++++++++++++++++ system/manager/manager.py | 4 +++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/selfdrive/ui/qt/offroad/settings.cc b/selfdrive/ui/qt/offroad/settings.cc index a47febd14..55004a5ca 100644 --- a/selfdrive/ui/qt/offroad/settings.cc +++ b/selfdrive/ui/qt/offroad/settings.cc @@ -498,6 +498,26 @@ DevicePanel::DevicePanel(SettingsWindow *parent) : ListWidget(parent) { }); addItem(flashPandaBtn); + // Reset toggles to default + ButtonControl *resetTogglesBtn = new ButtonControl(tr("Reset Toggles To Default"), tr("RESET"), tr("Reset your toggle settings back to their default settings.")); + connect(resetTogglesBtn, &ButtonControl::clicked, [=]() { + if (ConfirmationDialog::confirm(tr("Are you sure you want to completely reset all of your toggle settings?"), tr("Reset"), this)) { + std::thread([&] { + resetTogglesBtn->setEnabled(false); + resetTogglesBtn->setValue(tr("Resetting toggles...")); + + params.putBool("DoToggleReset", true); + + resetTogglesBtn->setValue(tr("Reset!")); + std::this_thread::sleep_for(std::chrono::seconds(2)); + resetTogglesBtn->setValue(tr("Rebooting...")); + std::this_thread::sleep_for(std::chrono::seconds(2)); + Hardware::reboot(); + }).detach(); + } + }); + addItem(resetTogglesBtn); + // Force offroad/onroad std::vector forceStartedOptions{tr("OFFROAD"), tr("ONROAD"), tr("OFF")}; forceStartedBtn = new FrogPilotButtonsControl(tr("Force Started State"), tr("Force openpilot either offroad or onroad."), "", forceStartedOptions, true); diff --git a/system/manager/manager.py b/system/manager/manager.py index f9d65e0da..8877f25cb 100644 --- a/system/manager/manager.py +++ b/system/manager/manager.py @@ -356,9 +356,11 @@ def manager_init() -> None: # set unset params for k, v in default_params: - if params.get(k) is None: + if params.get(k) is None or params.get_bool("DoToggleReset"): params.put(k, v) + params.put_bool_nonblocking("DoToggleReset", False) + # Create folders needed for msgq try: os.mkdir("/dev/shm")