FrogPilot features - Store user's toggles in storage
This commit is contained in:
parent
08de67845d
commit
63554d87c0
@ -173,6 +173,11 @@ class FrogPilotFunctions:
|
|||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def setup_frogpilot(cls):
|
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'
|
frogpilot_boot_logo = f'{BASEDIR}/selfdrive/frogpilot/assets/other_images/frogpilot_boot_logo.png'
|
||||||
boot_logo_location = '/usr/comma/bg.jpg'
|
boot_logo_location = '/usr/comma/bg.jpg'
|
||||||
boot_logo_save_location = f'{BASEDIR}/selfdrive/frogpilot/assets/other_images/original_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()
|
save_bootlog()
|
||||||
|
|
||||||
params = Params()
|
params = Params()
|
||||||
|
params_storage = Params("/persist/params")
|
||||||
params.clear_all(ParamKeyType.CLEAR_ON_MANAGER_START)
|
params.clear_all(ParamKeyType.CLEAR_ON_MANAGER_START)
|
||||||
params.clear_all(ParamKeyType.CLEAR_ON_ONROAD_TRANSITION)
|
params.clear_all(ParamKeyType.CLEAR_ON_ONROAD_TRANSITION)
|
||||||
params.clear_all(ParamKeyType.CLEAR_ON_OFFROAD_TRANSITION)
|
params.clear_all(ParamKeyType.CLEAR_ON_OFFROAD_TRANSITION)
|
||||||
@ -313,8 +314,15 @@ def manager_init(frogpilot_functions) -> None:
|
|||||||
|
|
||||||
# set unset params
|
# set unset params
|
||||||
for k, v in default_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)
|
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
|
# Create folders needed for msgq
|
||||||
try:
|
try:
|
||||||
|
@ -470,6 +470,23 @@ DevicePanel::DevicePanel(SettingsWindow *parent) : ListWidget(parent) {
|
|||||||
});
|
});
|
||||||
addItem(deleteDrivingDataBtn);
|
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
|
// 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."));
|
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, [=]() {
|
connect(flashPandaBtn, &ButtonControl::clicked, [=]() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user