FrogPilot features - Store user's toggles in storage
This commit is contained in:
parent
08de67845d
commit
63554d87c0
@ -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'
|
||||
|
@ -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:
|
||||
|
@ -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, [=]() {
|
||||
|
Loading…
x
Reference in New Issue
Block a user