Files
StarPilot/selfdrive/frogpilot/ui/qt/offroad/control_settings.h
T
2024-07-31 20:32:13 -07:00

101 lines
4.9 KiB
C++

#pragma once
#include <set>
#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:
QString processModelName(const QString &modelName);
void hideSubToggles();
void hideSubSubToggles();
void hideToggles();
void showEvent(QShowEvent *event) override;
void startDownloadAllModels();
void updateCalibrationDescription();
void updateCarToggles();
void updateMetric();
void updateModelLabels();
void updateState(const UIState &s);
ButtonControl *deleteModelBtn;
ButtonControl *downloadAllModelsBtn;
ButtonControl *downloadModelBtn;
ButtonControl *selectModelBtn;
FrogPilotParamValueToggleControl *steerRatioToggle;
std::set<QString> aggressivePersonalityKeys = {"PersonalityInfo", "AggressiveFollow", "AggressiveJerkAcceleration", "AggressiveJerkDanger", "AggressiveJerkSpeed", "ResetAggressivePersonality"};
std::set<QString> aolKeys = {"AlwaysOnLateralLKAS", "AlwaysOnLateralMain", "HideAOLStatusBar", "PauseAOLOnBrake"};
std::set<QString> conditionalExperimentalKeys = {"CESpeed", "CESpeedLead", "CECurves", "CELead", "CENavigation", "CESignal", "CEStopLights", "HideCEMStatusBar"};
std::set<QString> customdrivingPersonalityKeys = {"AggressivePersonalityProfile", "RelaxedPersonalityProfile", "StandardPersonalityProfile", "TrafficPersonalityProfile"};
std::set<QString> deviceManagementKeys = {"DeviceShutdown", "IncreaseThermalLimits", "LowVoltageShutdown", "NoLogging", "NoUploads", "OfflineMode"};
std::set<QString> drivingPersonalityKeys = {"CustomPersonalities", "OnroadDistanceButton"};
std::set<QString> experimentalModeActivationKeys = {"ExperimentalModeViaDistance", "ExperimentalModeViaLKAS", "ExperimentalModeViaTap"};
std::set<QString> laneChangeKeys = {"LaneChangeTime", "LaneDetectionWidth", "MinimumLaneChangeSpeed", "NudgelessLaneChange", "OneLaneChange"};
std::set<QString> lateralTuneKeys = {"ForceAutoTune", "NNFF", "NNFFLite", "SteerRatio", "TacoTune", "TurnDesires"};
std::set<QString> longitudinalTuneKeys = {"AccelerationProfile", "AggressiveAcceleration", "DecelerationProfile", "LeadDetectionThreshold", "SmoothBraking", "StoppingDistance", "TrafficMode"};
std::set<QString> modelManagementKeys = {"AutomaticallyUpdateModels", "ModelRandomizer", "DeleteModel", "DownloadModel", "DownloadAllModels", "SelectModel", "ResetCalibrations"};
std::set<QString> modelRandomizerKeys = {"ManageBlacklistedModels", "ResetScores", "ReviewScores"};
std::set<QString> mtscKeys = {"DisableMTSCSmoothing", "MTSCAggressiveness", "MTSCCurvatureCheck"};
std::set<QString> qolKeys = {"CustomCruise", "CustomCruiseLong", "ForceStandstill", "MapGears", "PauseLateralSpeed", "ReverseCruise", "SetSpeedOffset"};
std::set<QString> relaxedPersonalityKeys = {"PersonalityInfo", "RelaxedFollow", "RelaxedJerkAcceleration", "RelaxedJerkDanger", "RelaxedJerkSpeed", "ResetRelaxedPersonality"};
std::set<QString> speedLimitControllerKeys = {"SLCControls", "SLCQOL", "SLCVisuals"};
std::set<QString> speedLimitControllerControlsKeys = {"Offset1", "Offset2", "Offset3", "Offset4", "SLCFallback", "SLCOverride", "SLCPriority"};
std::set<QString> speedLimitControllerQOLKeys = {"ForceMPHDashboard", "SetSpeedLimit", "SLCConfirmation", "SLCLookaheadHigher", "SLCLookaheadLower"};
std::set<QString> speedLimitControllerVisualsKeys = {"ShowSLCOffset", "SpeedLimitChangedAlert", "UseVienna"};
std::set<QString> standardPersonalityKeys = {"PersonalityInfo", "StandardFollow", "StandardJerkAcceleration", "StandardJerkDanger", "StandardJerkSpeed", "ResetStandardPersonality"};
std::set<QString> trafficPersonalityKeys = {"PersonalityInfo", "TrafficFollow", "TrafficJerkAcceleration", "TrafficJerkDanger", "TrafficJerkSpeed", "ResetTrafficPersonality"};
std::set<QString> visionTurnControlKeys = {"CurveSensitivity", "DisableVTSCSmoothing", "TurnAggressiveness"};
std::map<std::string, AbstractControl*> toggles;
QList<LabelControl*> labelControls;
QDir modelDir{"/data/models/"};
Params params;
Params paramsMemory{"/dev/shm/params"};
Params paramsStorage{"/persist/params"};
bool customPersonalitiesOpen;
bool disableOpenpilotLongitudinal;
bool hasAutoTune;
bool hasCommaNNFFSupport;
bool hasNNFFLog;
bool hasOpenpilotLongitudinal;
bool hasPCMCruise;
bool hasDashSpeedLimits;
bool haveModelsDownloaded;
bool isGM;
bool isHKGCanFd;
bool isMetric = params.getBool("IsMetric");
bool isRelease;
bool isToyota;
bool modelDeleting;
bool modelDownloading;
bool modelManagementOpen;
bool modelRandomizer;
bool modelsDownloaded;
bool slcOpen;
bool started;
float steerRatioStock;
QStringList availableModelNames;
QStringList availableModels;
QStringList experimentalModels;
};