#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(); ButtonControl *slcPriorityButton; FrogPilotButtonIconControl *modelSelectorButton; FrogPilotDualParamControl *aggressiveProfile; FrogPilotDualParamControl *conditionalSpeedsImperial; FrogPilotDualParamControl *conditionalSpeedsMetric; FrogPilotDualParamControl *standardProfile; FrogPilotDualParamControl *relaxedProfile; std::set aolKeys = {"AlwaysOnLateralMain", "HideAOLStatusBar"}; std::set conditionalExperimentalKeys = {"CECurves", "CECurvesLead", "CESlowerLead", "CENavigation", "CEStopLights", "CESignal", "HideCEMStatusBar"}; std::set experimentalModeActivationKeys = {"ExperimentalModeViaDistance", "ExperimentalModeViaLKAS", "ExperimentalModeViaScreen"}; std::set fireTheBabysitterKeys = {"NoLogging", "MuteOverheated", "NoUploads", "OfflineMode"}; std::set laneChangeKeys = {"LaneChangeTime", "LaneDetection", "LaneDetectionWidth", "OneLaneChange"}; std::set lateralTuneKeys = {"ForceAutoTune", "NNFF"}; std::set longitudinalTuneKeys = {"AccelerationProfile", "DecelerationProfile", "AggressiveAcceleration", "SmoothBraking", "StoppingDistance"}; std::set mtscKeys = {"DisableMTSCSmoothing", "MTSCAggressiveness", "MTSCCurvatureCheck", "MTSCLimit"}; std::set qolKeys = {"DisableOnroadUploads", "HigherBitrate", "NavChill", "PauseLateralOnSignal", "ReverseCruise", "SetSpeedOffset"}; std::set speedLimitControllerKeys = {"SLCControls", "SLCQOL", "SLCVisuals"}; std::set speedLimitControllerControlsKeys = {"Offset1", "Offset2", "Offset3", "Offset4", "SLCFallback", "SLCOverride", "SLCPriority"}; std::set speedLimitControllerQOLKeys = {"SLCConfirmation", "ForceMPHDashboard", "SetSpeedLimit"}; std::set speedLimitControllerVisualsKeys = {"ShowSLCOffset", "UseVienna"}; std::set visionTurnControlKeys = {}; std::map toggles; Params params; Params paramsMemory{"/dev/shm/params"}; bool isMetric = params.getBool("IsMetric"); bool started = false; };