#pragma once #include #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(); void openSubSubParentToggle(); private: void hideSubToggles(); void hideSubSubToggles(); void hideToggles(); void showEvent(QShowEvent *event, const UIState &s); void updateCarToggles(); void updateMetric(); void updateState(const UIState &s); ButtonControl *deleteModelBtn; ButtonControl *downloadModelBtn; ButtonControl *personalitiesInfoBtn; ButtonControl *selectModelBtn; FrogPilotDualParamControl *conditionalSpeedsImperial; FrogPilotDualParamControl *conditionalSpeedsMetric; FrogPilotParamManageControl *modelManagerToggle; FrogPilotParamValueToggleControl *steerRatioToggle; std::set aggressivePersonalityKeys = {"AggressiveFollow", "AggressiveJerkAcceleration", "AggressiveJerkSpeed", "ResetAggressivePersonality"}; std::set aolKeys = {"AlwaysOnLateralMain", "HideAOLStatusBar", "PauseAOLOnBrake"}; std::set conditionalExperimentalKeys = {"CECurves", "CECurvesLead", "CENavigation", "CESignal", "CESlowerLead", "CEStopLights", "HideCEMStatusBar"}; std::set deviceManagementKeys = {"DeviceShutdown", "IncreaseThermalLimits", "LowVoltageShutdown", "NoLogging", "NoUploads", "OfflineMode"}; std::set customdrivingPersonalityKeys = {"TrafficPersonalityProfile", "AggressivePersonalityProfile", "StandardPersonalityProfile", "RelaxedPersonalityProfile"}; std::set drivingPersonalityKeys = {"CustomPersonalities", "OnroadDistanceButton"}; std::set experimentalModeActivationKeys = {"ExperimentalModeViaDistance", "ExperimentalModeViaLKAS", "ExperimentalModeViaTap"}; std::set laneChangeKeys = {"LaneChangeTime", "LaneDetectionWidth", "MinimumLaneChangeSpeed", "NudgelessLaneChange", "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", "MapGears", "PauseLateralSpeed", "ReverseCruise", "SetSpeedOffset"}; std::set relaxedPersonalityKeys = {"RelaxedFollow", "RelaxedJerkAcceleration", "RelaxedJerkSpeed", "ResetRelaxedPersonality"}; 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 standardPersonalityKeys = {"StandardFollow", "StandardJerkAcceleration", "StandardJerkSpeed", "ResetStandardPersonality"}; std::set trafficPersonalityKeys = {"TrafficFollow", "TrafficJerkAcceleration", "TrafficJerkSpeed", "ResetTrafficPersonality"}; 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 customPersonalitiesOpen; bool hasAutoTune; bool hasCommaNNFFSupport; bool hasNNFFLog; bool hasOpenpilotLongitudinal; bool hasPCMCruise; bool hasDashSpeedLimits; bool isGM; bool isHKGCanFd; bool isMetric = params.getBool("IsMetric"); bool isRelease; bool isToyota; bool slcOpen; bool started; float steerRatioStock; };