diff --git a/common/params.cc b/common/params.cc index 63399b7..355cd96 100644 --- a/common/params.cc +++ b/common/params.cc @@ -245,6 +245,7 @@ std::unordered_map keys = { {"CydiaTune", PERSISTENT}, {"DecelerationProfile", PERSISTENT}, {"DeviceShutdown", PERSISTENT}, + {"DisableOnroadUploads", PERSISTENT}, {"DisableOpenpilotLongitudinal", PERSISTENT}, {"DisengageVolume", PERSISTENT}, {"DriveStats", PERSISTENT}, diff --git a/selfdrive/frogpilot/ui/control_settings.cc b/selfdrive/frogpilot/ui/control_settings.cc index d86bde3..0578cf4 100644 --- a/selfdrive/frogpilot/ui/control_settings.cc +++ b/selfdrive/frogpilot/ui/control_settings.cc @@ -22,6 +22,7 @@ FrogPilotControlsPanel::FrogPilotControlsPanel(SettingsWindow *parent) : FrogPil {"AggressiveAcceleration", "Aggressive Acceleration With Lead", "Increase acceleration aggressiveness when following a lead vehicle from a stop.", ""}, {"QOLControls", "Quality of Life", "Miscellaneous quality of life changes to improve your overall openpilot experience.", "../frogpilot/assets/toggle_icons/quality_of_life.png"}, + {"DisableOnroadUploads", "Disable Onroad Uploads", "Prevent large data uploads when onroad.", ""}, }; for (const auto &[param, title, desc, icon] : controlToggles) { diff --git a/selfdrive/frogpilot/ui/control_settings.h b/selfdrive/frogpilot/ui/control_settings.h index f4ab018..11149e8 100644 --- a/selfdrive/frogpilot/ui/control_settings.h +++ b/selfdrive/frogpilot/ui/control_settings.h @@ -41,7 +41,7 @@ private: std::set lateralTuneKeys = {}; std::set longitudinalTuneKeys = {"AccelerationProfile", "DecelerationProfile", "AggressiveAcceleration"}; std::set mtscKeys = {}; - std::set qolKeys = {}; + std::set qolKeys = {"DisableOnroadUploads"}; std::set speedLimitControllerKeys = {}; std::set speedLimitControllerControlsKeys = {}; std::set speedLimitControllerQOLKeys = {}; diff --git a/selfdrive/manager/manager.py b/selfdrive/manager/manager.py old mode 100755 new mode 100644 index 2b8bcff..f9621f7 --- a/selfdrive/manager/manager.py +++ b/selfdrive/manager/manager.py @@ -334,7 +334,7 @@ def manager_cleanup() -> None: def update_frogpilot_params(params, params_memory): - keys = [] + keys = ["DisableOnroadUploads"] for key in keys: params_memory.put_bool(key, params.get_bool(key)) diff --git a/selfdrive/manager/process_config.py b/selfdrive/manager/process_config.py index 7ab2a5a..9996349 100644 --- a/selfdrive/manager/process_config.py +++ b/selfdrive/manager/process_config.py @@ -42,6 +42,9 @@ def only_offroad(started, params, params_memory, CP: car.CarParams) -> bool: return not started # FrogPilot functions +def allow_uploads(started, params, params_memory, CP: car.CarParams) -> bool: + at_home = not started or not params_memory.get_bool("DisableOnroadUploads") + return at_home procs = [ DaemonProcess("manage_athenad", "selfdrive.athena.manage_athenad", "AthenadPid"), @@ -81,7 +84,7 @@ procs = [ PythonProcess("thermald", "selfdrive.thermald.thermald", always_run), PythonProcess("tombstoned", "selfdrive.tombstoned", always_run, enabled=not PC), PythonProcess("updated", "selfdrive.updated", only_offroad, enabled=not PC), - PythonProcess("uploader", "system.loggerd.uploader", always_run), + PythonProcess("uploader", "system.loggerd.uploader", allow_uploads), PythonProcess("statsd", "selfdrive.statsd", always_run), # debug procs