#pragma once #include #include "selfdrive/frogpilot/ui/frogpilot_ui_functions.h" #include "selfdrive/ui/qt/offroad/settings.h" #include "selfdrive/ui/ui.h" class FrogPilotControlsPanel : public FrogPilotListWidget { Q_OBJECT public: explicit FrogPilotControlsPanel(SettingsWindow *parent); signals: void closeParentToggle(); void closeSubParentToggle(); void openParentToggle(); void openSubParentToggle(); private: void hideEvent(QHideEvent *event); void hideSubSubToggles(); void hideSubToggles(); void parentToggleClicked(); void subParentToggleClicked(); void updateCarToggles(); void updateMetric(); void updateState(const UIState &s); void updateToggles(); FrogPilotDualParamControl *aggressiveProfile; FrogPilotDualParamControl *conditionalSpeedsImperial; FrogPilotDualParamControl *conditionalSpeedsMetric; FrogPilotDualParamControl *standardProfile; FrogPilotDualParamControl *relaxedProfile; std::set conditionalExperimentalKeys = {"CECurves", "CECurvesLead", "CESlowerLead", "CENavigation", "CEStopLights", "CESignal"}; std::set experimentalModeActivationKeys = {"ExperimentalModeViaDistance", "ExperimentalModeViaLKAS", "ExperimentalModeViaScreen"}; std::set fireTheBabysitterKeys = {"NoLogging", "MuteOverheated", "NoUploads"}; std::set laneChangeKeys = {}; std::set lateralTuneKeys = {"ForceAutoTune"}; std::set longitudinalTuneKeys = {"AccelerationProfile", "DecelerationProfile", "AggressiveAcceleration"}; std::set mtscKeys = {}; std::set qolKeys = {"DisableOnroadUploads"}; std::set speedLimitControllerKeys = {}; std::set speedLimitControllerControlsKeys = {}; std::set speedLimitControllerQOLKeys = {}; std::set speedLimitControllerVisualsKeys = {}; std::set visionTurnControlKeys = {}; std::map toggles; Params params; Params paramsMemory{"/dev/shm/params"}; bool isMetric = params.getBool("IsMetric"); bool started = false; };