#pragma once #include #include "selfdrive/frogpilot/ui/qt/widgets/frogpilot_controls.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 openParentToggle(); void openSubParentToggle(); private: void hideSubToggles(); void hideToggles(); void showEvent(QShowEvent *event, const UIState &s); void updateCarToggles(); void updateMetric(); void updateState(const UIState &s); void updateToggles(); // ButtonControl *deleteModelBtn; // ButtonControl *downloadModelBtn; ButtonControl *selectModelBtn; ButtonControl *slcPriorityButton; FrogPilotDualParamControl *aggressiveProfile; FrogPilotDualParamControl *conditionalSpeedsImperial; FrogPilotDualParamControl *conditionalSpeedsMetric; FrogPilotDualParamControl *relaxedProfile; FrogPilotDualParamControl *standardProfile; FrogPilotDualParamControl *trafficProfile; std::set aolKeys = {"AlwaysOnLateralMain", "HideAOLStatusBar", "PauseAOLOnBrake"}; std::set conditionalExperimentalKeys = {"CECurves", "CECurvesLead", "CENavigation", "CESignal", "CESlowerLead", "CEStopLights", "HideCEMStatusBar"}; std::set deviceManagementKeys = {"DeviceShutdown", "HigherBitrate", "IncreaseThermalLimits", "LowVoltageShutdown", "NoLogging", "NoUploads", "OfflineMode"}; std::set experimentalModeActivationKeys = {"ExperimentalModeViaDistance", "ExperimentalModeViaLKAS", "ExperimentalModeViaTap"}; std::set laneChangeKeys = {"LaneChangeTime", "LaneDetectionWidth", "OneLaneChange"}; std::set lateralTuneKeys = {"ForceAutoTune", "NNFF", "NNFFLite", "SteerRatio", "TacoTune", "TurnDesires"}; std::set longitudinalTuneKeys = {"AccelerationProfile", "AggressiveAcceleration", "DecelerationProfile", "LeadDetectionThreshold", "SmoothBraking", "StoppingDistance", "TrafficMode"}; std::set mtscKeys = {"DisableMTSCSmoothing", "MTSCAggressiveness", "MTSCCurvatureCheck"}; std::set qolKeys = {"CustomCruise", "CustomCruiseLong", "DisableOnroadUploads", "OnroadDistanceButton", "PauseLateralSpeed", "ReverseCruise", "SetSpeedOffset"}; std::set speedLimitControllerKeys = {"SLCControls", "SLCQOL", "SLCVisuals"}; std::set speedLimitControllerControlsKeys = {"Offset1", "Offset2", "Offset3", "Offset4", "SLCFallback", "SLCOverride", "SLCPriority"}; std::set speedLimitControllerQOLKeys = {"ForceMPHDashboard", "SetSpeedLimit", "SLCConfirmation", "SLCLookaheadHigher", "SLCLookaheadLower"}; std::set speedLimitControllerVisualsKeys = {"ShowSLCOffset", "SpeedLimitChangedAlert", "UseVienna"}; std::set tuningKeys = {"kiV1", "kiV2", "kiV3", "kiV4", "kpV1", "kpV2", "kpV3", "kpV4"}; std::set visionTurnControlKeys = {"CurveSensitivity", "DisableVTSCSmoothing", "TurnAggressiveness"}; std::map toggles; Params params; Params paramsMemory{"/dev/shm/params"}; bool hasAutoTune; bool hasCommaNNFFSupport; bool hasNNFFLog; bool hasOpenpilotLongitudinal; bool hasPCMCruise; bool hasDashSpeedLimits; bool isMetric = params.getBool("IsMetric"); bool isRelease; bool isToyota; bool started; float steerRatioStock; };