Files
StarPilot/frogpilot/ui/qt/offroad/longitudinal_settings.h
T
firestar5683 ce941e9f25 Truck Tuning
2026-02-10 16:42:19 -06:00

79 lines
3.9 KiB
C++

#pragma once
#include "frogpilot/ui/qt/offroad/frogpilot_settings.h"
class FrogPilotLongitudinalPanel : public FrogPilotListWidget {
Q_OBJECT
public:
explicit FrogPilotLongitudinalPanel(FrogPilotSettingsWindow *parent);
signals:
void openSubPanel();
void openSubSubPanel();
protected:
void showEvent(QShowEvent *event) override;
private:
void updateMetric(bool metric, bool bootRun);
void updateToggles();
bool customPersonalityOpen;
bool forceOpenDescriptions;
bool hasDashSpeedLimits;
bool hasPCMCruise;
bool isGM;
bool isHKGCanFd;
bool isToyota;
bool isTSK;
bool slcOpen;
int tuningLevel;
float longitudinalActuatorDelay;
float startAccel;
float stopAccel;
float stoppingDecelRate;
float vEgoStarting;
float vEgoStopping;
std::map<QString, AbstractControl*> toggles;
QSet<QString> advancedLongitudinalTuneKeys = {"EVTuning", "TruckTuning", "LongitudinalActuatorDelay", "StartAccel", "StopAccel", "StoppingDecelRate", "VEgoStarting", "VEgoStopping"};
QSet<QString> aggressivePersonalityKeys = {"AggressiveFollow", "AggressiveFollowHigh", "AggressiveJerkAcceleration", "AggressiveJerkDeceleration", "AggressiveJerkDanger", "AggressiveJerkSpeed", "AggressiveJerkSpeedDecrease", "ResetAggressivePersonality"};
QSet<QString> conditionalExperimentalKeys = {"CESpeed", "CESpeedLead", "CECurves", "CELead", "CEModelStopTime", "CENavigation", "CESignalSpeed", "ShowCEMStatus"};
QSet<QString> curveSpeedKeys = {"CalibratedLateralAcceleration", "CalibrationProgress", "ResetCurveData", "ShowCSCStatus"};
QSet<QString> customDrivingPersonalityKeys = {"AggressivePersonalityProfile", "RelaxedPersonalityProfile", "StandardPersonalityProfile", "TrafficPersonalityProfile"};
QSet<QString> longitudinalTuneKeys = {"AccelerationProfile", "DecelerationProfile", "HumanAcceleration", "HumanFollowing", "LeadDetectionThreshold", "MaxDesiredAcceleration", "TrailerLoad", "TacoTune"};
QSet<QString> qolKeys = {"CustomCruise", "CustomCruiseLong", "ForceStops", "IncreasedStoppedDistance", "MapGears", "ReverseCruise", "SetSpeedOffset"};
QSet<QString> relaxedPersonalityKeys = {"RelaxedFollow", "RelaxedFollowHigh", "RelaxedJerkAcceleration", "RelaxedJerkDeceleration", "RelaxedJerkDanger", "RelaxedJerkSpeed", "RelaxedJerkSpeedDecrease", "ResetRelaxedPersonality"};
QSet<QString> speedLimitControllerKeys = {"SLCOffsets", "SLCFallback", "SLCOverride", "SLCPriority", "SLCQOL", "SLCVisuals"};
QSet<QString> speedLimitControllerOffsetsKeys = {"Offset1", "Offset2", "Offset3", "Offset4", "Offset5", "Offset6", "Offset7"};
QSet<QString> speedLimitControllerQOLKeys = {"ForceMPHDashboard", "SetSpeedLimit", "SLCConfirmation", "SLCLookaheadHigher", "SLCLookaheadLower", "SLCMapboxFiller"};
QSet<QString> speedLimitControllerVisualKeys = {"ShowSLCOffset", "SpeedLimitSources"};
QSet<QString> standardPersonalityKeys = {"StandardFollow", "StandardFollowHigh", "StandardJerkAcceleration", "StandardJerkDeceleration", "StandardJerkDanger", "StandardJerkSpeed", "StandardJerkSpeedDecrease", "ResetStandardPersonality"};
QSet<QString> trafficPersonalityKeys = {"TrafficFollow", "TrafficJerkAcceleration", "TrafficJerkDeceleration", "TrafficJerkDanger", "TrafficJerkSpeed", "TrafficJerkSpeedDecrease", "ResetTrafficPersonality"};
QSet<QString> parentKeys;
FrogPilotParamValueControl *longitudinalActuatorDelayToggle;
FrogPilotParamValueControl *startAccelToggle;
FrogPilotParamValueControl *stopAccelToggle;
FrogPilotParamValueControl *stoppingDecelRateToggle;
FrogPilotParamValueControl *vEgoStartingToggle;
FrogPilotParamValueControl *vEgoStoppingToggle;
FrogPilotSettingsWindow *parent;
LabelControl *calibratedLateralAccelerationLabel;
LabelControl *calibrationProgressLabel;
QJsonObject frogpilotToggleLevels;
Params params;
Params params_cache{"/cache/params"};
Params params_default{"/dev/shm/params_default"};
Params params_memory{"/dev/shm/params"};
};