FrogPilot features - Store user's toggles in storage

This commit is contained in:
FrogAi 2024-05-18 22:39:53 -07:00
parent 08de67845d
commit 63554d87c0
3 changed files with 32 additions and 2 deletions

View File

@ -173,6 +173,11 @@ class FrogPilotFunctions:
@classmethod
def setup_frogpilot(cls):
remount_persist = ['sudo', 'mount', '-o', 'remount,rw', '/persist']
cls.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'

View File

@ -55,6 +55,7 @@ def manager_init(frogpilot_functions) -> None:
save_bootlog()
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)
@ -313,8 +314,15 @@ def manager_init(frogpilot_functions) -> None:
# set unset params
for k, v in default_params:
if params.get(k) is None:
params.put(k, v)
if params.get(k) is None or params.get_bool("DoToggleReset"):
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)
# Create folders needed for msgq
try:

View File

@ -470,6 +470,23 @@ DevicePanel::DevicePanel(SettingsWindow *parent) : ListWidget(parent) {
});
addItem(deleteDrivingDataBtn);
// Delete long term toggle storage button
auto 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)) return;
std::thread([&] {
resetTogglesBtn->setValue(tr("Resetting toggles..."));
std::system("rm -rf /persist/params");
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(3));
Hardware::reboot();
}).detach();
});
addItem(resetTogglesBtn);
// Panda flashing button
auto flashPandaBtn = new ButtonControl(tr("Flash Panda"), tr("FLASH"), tr("Use this button to troubleshoot and update the Panda device's firmware."));
connect(flashPandaBtn, &ButtonControl::clicked, [=]() {