FrogPilot 0.9.7

This commit is contained in:
FrogAi
2024-06-27 10:22:08 -07:00
parent da00915ac8
commit b705b02e70
682 changed files with 181798 additions and 1348 deletions
+6
View File
@@ -11,6 +11,12 @@ class Conversions:
MS_TO_KNOTS = 1.9438
KNOTS_TO_MS = 1. / MS_TO_KNOTS
# Distance
METER_TO_FOOT = 3.28084
FOOT_TO_METER = 1. / METER_TO_FOOT
CM_TO_INCH = 1. / 2.54
INCH_TO_CM = 1. / CM_TO_INCH
# Angle
DEG_TO_RAD = np.pi / 180.
RAD_TO_DEG = 1. / DEG_TO_RAD
+344
View File
@@ -189,6 +189,7 @@ std::unordered_map<std::string, uint32_t> keys = {
{"RecordFrontLock", PERSISTENT}, // for the internal fleet
{"ReplayControlsState", CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION},
{"RouteCount", PERSISTENT},
{"SecOCKey", PERSISTENT | DONT_LOG},
{"SnoozeUpdate", CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION},
{"SshEnabled", PERSISTENT},
{"TermsVersion", PERSISTENT},
@@ -207,6 +208,349 @@ std::unordered_map<std::string, uint32_t> keys = {
{"UpdaterTargetBranch", CLEAR_ON_MANAGER_START},
{"UpdaterLastFetchTime", PERSISTENT},
{"Version", PERSISTENT},
// FrogPilot parameters
{"AccelerationPath", PERSISTENT | FROGPILOT_VISUALS},
{"AccelerationProfile", PERSISTENT | FROGPILOT_CONTROLS},
{"AdjacentLeadsUI", PERSISTENT | FROGPILOT_CONTROLS},
{"AdjacentPath", PERSISTENT | FROGPILOT_VISUALS},
{"AdjacentPathMetrics", PERSISTENT | FROGPILOT_VISUALS},
{"AdvancedCustomUI", PERSISTENT | FROGPILOT_VISUALS},
{"AdvancedLateralTune", PERSISTENT | FROGPILOT_CONTROLS},
{"AggressiveFollow", PERSISTENT | FROGPILOT_CONTROLS},
{"AggressiveJerkAcceleration", PERSISTENT | FROGPILOT_CONTROLS},
{"AggressiveJerkDanger", PERSISTENT | FROGPILOT_CONTROLS},
{"AggressiveJerkDeceleration", PERSISTENT | FROGPILOT_CONTROLS},
{"AggressiveJerkSpeed", PERSISTENT | FROGPILOT_CONTROLS},
{"AggressiveJerkSpeedDecrease", PERSISTENT | FROGPILOT_CONTROLS},
{"AggressivePersonalityProfile", PERSISTENT | FROGPILOT_CONTROLS},
{"AlertVolumeControl", PERSISTENT | FROGPILOT_VISUALS},
{"AlwaysOnLateral", PERSISTENT | FROGPILOT_CONTROLS},
{"AlwaysOnLateralLKAS", PERSISTENT | FROGPILOT_CONTROLS},
{"AlwaysOnLateralMain", PERSISTENT | FROGPILOT_CONTROLS},
{"AMapKey1", PERSISTENT},
{"AMapKey2", PERSISTENT},
{"ApiCache_DriveStats", PERSISTENT},
{"AutomaticallyUpdateModels", PERSISTENT | FROGPILOT_CONTROLS},
{"AutomaticUpdates", PERSISTENT | FROGPILOT_OTHER},
{"AvailableModels", PERSISTENT},
{"AvailableModelNames", PERSISTENT},
{"BigMap", PERSISTENT | FROGPILOT_VISUALS},
{"BlacklistedModels", PERSISTENT | FROGPILOT_CONTROLS},
{"BlindSpotMetrics", PERSISTENT | FROGPILOT_VISUALS},
{"BlindSpotPath", PERSISTENT | FROGPILOT_VISUALS},
{"BorderMetrics", PERSISTENT | FROGPILOT_VISUALS},
{"CameraView", PERSISTENT | FROGPILOT_VISUALS},
{"CancelModelDownload", CLEAR_ON_MANAGER_START},
{"CancelThemeDownload", CLEAR_ON_MANAGER_START},
{"CarMake", PERSISTENT},
{"CarModel", PERSISTENT},
{"CarModelName", PERSISTENT},
{"CECurves", PERSISTENT | FROGPILOT_CONTROLS},
{"CECurvesLead", PERSISTENT | FROGPILOT_CONTROLS},
{"CELead", PERSISTENT | FROGPILOT_CONTROLS},
{"CEModelStopTime", PERSISTENT | FROGPILOT_CONTROLS},
{"CENavigation", PERSISTENT | FROGPILOT_CONTROLS},
{"CENavigationIntersections", PERSISTENT | FROGPILOT_CONTROLS},
{"CENavigationLead", PERSISTENT | FROGPILOT_CONTROLS},
{"CENavigationTurns", PERSISTENT | FROGPILOT_CONTROLS},
{"CertifiedHerbalistDrives", PERSISTENT | FROGPILOT_CONTROLS},
{"CertifiedHerbalistScore", PERSISTENT | FROGPILOT_CONTROLS},
{"CESignalSpeed", PERSISTENT | FROGPILOT_CONTROLS},
{"CESignalLaneDetection", PERSISTENT | FROGPILOT_CONTROLS},
{"CESlowerLead", PERSISTENT | FROGPILOT_CONTROLS},
{"CESpeed", PERSISTENT | FROGPILOT_CONTROLS},
{"CESpeedLead", PERSISTENT | FROGPILOT_CONTROLS},
{"CEStatus", CLEAR_ON_OFFROAD_TRANSITION},
{"CEStoppedLead", PERSISTENT | FROGPILOT_CONTROLS},
{"ClusterOffset", PERSISTENT | FROGPILOT_VEHICLES},
{"ColorToDownload", CLEAR_ON_MANAGER_START},
{"Compass", PERSISTENT | FROGPILOT_VISUALS},
{"ConditionalExperimental", PERSISTENT | FROGPILOT_CONTROLS},
{"CurveSensitivity", PERSISTENT | FROGPILOT_CONTROLS},
{"CurveSpeedControl", PERSISTENT | FROGPILOT_CONTROLS},
{"CustomAlerts", PERSISTENT | FROGPILOT_VISUALS},
{"CustomColors", PERSISTENT | FROGPILOT_VISUALS},
{"CustomCruise", PERSISTENT | FROGPILOT_CONTROLS},
{"CustomCruiseLong", PERSISTENT | FROGPILOT_CONTROLS},
{"CustomDistanceIcons", PERSISTENT | FROGPILOT_CONTROLS},
{"CustomIcons", PERSISTENT | FROGPILOT_VISUALS},
{"CustomPersonalities", PERSISTENT | FROGPILOT_CONTROLS},
{"CustomSignals", PERSISTENT | FROGPILOT_VISUALS},
{"CustomSounds", PERSISTENT | FROGPILOT_VISUALS},
{"CustomUI", PERSISTENT | FROGPILOT_VISUALS},
{"DecelerationProfile", PERSISTENT | FROGPILOT_CONTROLS},
{"DeveloperUI", PERSISTENT | FROGPILOT_VISUALS},
{"DeviceManagement", PERSISTENT | FROGPILOT_CONTROLS},
{"DeviceShutdown", PERSISTENT | FROGPILOT_CONTROLS},
{"DisableOnroadUploads", PERSISTENT | FROGPILOT_CONTROLS},
{"DisableOpenpilotLongitudinal", PERSISTENT | FROGPILOT_VEHICLES},
{"DiscordUsername", PERSISTENT},
{"DissolvedOxygenDrives", PERSISTENT | FROGPILOT_CONTROLS},
{"DissolvedOxygenScore", PERSISTENT | FROGPILOT_CONTROLS},
{"DistanceIconToDownload", CLEAR_ON_MANAGER_START},
{"DisengageVolume", PERSISTENT | FROGPILOT_VISUALS},
{"DoToggleReset", PERSISTENT},
{"DownloadableColors", PERSISTENT},
{"DownloadableDistanceIcons", PERSISTENT},
{"DownloadableIcons", PERSISTENT},
{"DownloadableSignals", PERSISTENT},
{"DownloadableSounds", PERSISTENT},
{"DownloadableWheels", PERSISTENT},
{"DownloadAllModels", CLEAR_ON_MANAGER_START},
{"DragonRiderDrives", PERSISTENT | FROGPILOT_CONTROLS},
{"DragonRiderScore", PERSISTENT | FROGPILOT_CONTROLS},
{"DriverCamera", PERSISTENT | FROGPILOT_VISUALS},
{"DuckAmigoDrives", PERSISTENT | FROGPILOT_CONTROLS},
{"DuckAmigoScore", PERSISTENT | FROGPILOT_CONTROLS},
{"DynamicPathWidth", PERSISTENT | FROGPILOT_VISUALS},
{"DynamicPedalsOnUI", PERSISTENT | FROGPILOT_VISUALS},
{"EngageVolume", PERSISTENT | FROGPILOT_VISUALS},
{"ExperimentalGMTune", PERSISTENT | FROGPILOT_VEHICLES},
{"ExperimentalModeActivation", PERSISTENT | FROGPILOT_CONTROLS},
{"ExperimentalModels", PERSISTENT},
{"ExperimentalModeViaDistance", PERSISTENT | FROGPILOT_CONTROLS},
{"ExperimentalModeViaLKAS", PERSISTENT | FROGPILOT_CONTROLS},
{"ExperimentalModeViaTap", PERSISTENT | FROGPILOT_CONTROLS},
{"Fahrenheit", PERSISTENT | FROGPILOT_VISUALS},
{"FingerprintLogged", CLEAR_ON_MANAGER_START},
{"FlashPanda", CLEAR_ON_MANAGER_START},
{"ForceAutoTune", PERSISTENT | FROGPILOT_CONTROLS},
{"ForceAutoTuneOff", PERSISTENT | FROGPILOT_CONTROLS},
{"ForceFingerprint", PERSISTENT | FROGPILOT_VEHICLES},
{"ForceMPHDashboard", PERSISTENT | FROGPILOT_CONTROLS},
{"ForceOffroad", CLEAR_ON_MANAGER_START},
{"ForceOnroad", CLEAR_ON_MANAGER_START},
{"ForceStandstill", PERSISTENT | FROGPILOT_CONTROLS},
{"ForceStops", PERSISTENT | FROGPILOT_CONTROLS},
{"FPSCounter", PERSISTENT | FROGPILOT_VISUALS},
{"FrogPilotDrives", PERSISTENT | FROGPILOT_TRACKING},
{"FrogPilotKilometers", PERSISTENT | FROGPILOT_TRACKING},
{"FrogPilotMinutes", PERSISTENT | FROGPILOT_TRACKING},
{"FrogPilotToggles", CLEAR_ON_MANAGER_START},
{"FrogPilotTogglesUpdated", CLEAR_ON_MANAGER_START},
{"FrogPilotTuningLevels", CLEAR_ON_MANAGER_START},
{"FrogsGoMoosTweak", PERSISTENT | FROGPILOT_VEHICLES},
{"FullMap", PERSISTENT | FROGPILOT_VISUALS},
{"GasRegenCmd", PERSISTENT | FROGPILOT_VEHICLES},
{"GMapKey", PERSISTENT},
{"GoatScream", PERSISTENT | FROGPILOT_VISUALS},
{"GreenLightAlert", PERSISTENT | FROGPILOT_VISUALS},
{"HideAlerts", PERSISTENT | FROGPILOT_VISUALS},
{"HideCSCUI", PERSISTENT | FROGPILOT_CONTROLS},
{"HideLeadMarker", PERSISTENT | FROGPILOT_VISUALS},
{"HideMapIcon", PERSISTENT | FROGPILOT_VISUALS},
{"HideMaxSpeed", PERSISTENT | FROGPILOT_VISUALS},
{"HideSpeed", PERSISTENT | FROGPILOT_VISUALS},
{"HideSpeedLimit", PERSISTENT | FROGPILOT_VISUALS},
{"HolidayThemes", PERSISTENT | FROGPILOT_VISUALS},
{"HumanAcceleration", PERSISTENT | FROGPILOT_CONTROLS},
{"HumanFollowing", PERSISTENT | FROGPILOT_CONTROLS},
{"IconToDownload", CLEAR_ON_MANAGER_START},
{"IncreasedStoppedDistance", PERSISTENT | FROGPILOT_CONTROLS},
{"IncreaseThermalLimits", PERSISTENT | FROGPILOT_CONTROLS},
{"IssueReported", CLEAR_ON_MANAGER_START},
{"JerkInfo", PERSISTENT | FROGPILOT_VISUALS},
{"LaneChangeCustomizations", PERSISTENT | FROGPILOT_CONTROLS},
{"LaneChangeTime", PERSISTENT | FROGPILOT_CONTROLS},
{"LaneDetectionWidth", PERSISTENT | FROGPILOT_CONTROLS},
{"LaneLinesWidth", PERSISTENT | FROGPILOT_VISUALS},
{"LastMapsUpdate", PERSISTENT | FROGPILOT_OTHER},
{"LateralMetrics", PERSISTENT | FROGPILOT_VISUALS},
{"LateralTune", PERSISTENT | FROGPILOT_CONTROLS},
{"LeadDepartingAlert", PERSISTENT | FROGPILOT_VISUALS},
{"LeadDetectionThreshold", PERSISTENT | FROGPILOT_CONTROLS},
{"LeadInfo", PERSISTENT | FROGPILOT_VISUALS},
{"LockDoors", PERSISTENT | FROGPILOT_VEHICLES},
{"LockDoorsTimer", PERSISTENT | FROGPILOT_VEHICLES},
{"LongitudinalMetrics", PERSISTENT | FROGPILOT_VISUALS},
{"LongitudinalTune", PERSISTENT | FROGPILOT_CONTROLS},
{"LongPitch", PERSISTENT | FROGPILOT_VEHICLES},
{"LosAngelesDrives", PERSISTENT | FROGPILOT_CONTROLS},
{"LosAngelesScore", PERSISTENT | FROGPILOT_CONTROLS},
{"LoudBlindspotAlert", PERSISTENT | FROGPILOT_VISUALS},
{"LowVoltageShutdown", PERSISTENT | FROGPILOT_CONTROLS},
{"ManualUpdateInitiated", CLEAR_ON_MANAGER_START},
{"MapAcceleration", PERSISTENT | FROGPILOT_CONTROLS},
{"MapboxPublicKey", PERSISTENT},
{"MapboxSecretKey", PERSISTENT},
{"MapDeceleration", PERSISTENT | FROGPILOT_CONTROLS},
{"MapGears", PERSISTENT | FROGPILOT_CONTROLS},
{"MapsSelected", PERSISTENT | FROGPILOT_OTHER},
{"MapSpeedLimit", CLEAR_ON_MANAGER_START},
{"MapStyle", PERSISTENT | FROGPILOT_VISUALS},
{"MapTargetVelocities", CLEAR_ON_MANAGER_START},
{"MapTurnControl", PERSISTENT | FROGPILOT_CONTROLS},
{"MaxDesiredAcceleration", PERSISTENT | FROGPILOT_CONTROLS},
{"MinimumBackupSize", PERSISTENT},
{"MinimumLaneChangeSpeed", PERSISTENT | FROGPILOT_CONTROLS},
{"Model", PERSISTENT | FROGPILOT_CONTROLS},
{"ModelDrivesAndScores", PERSISTENT | FROGPILOT_CONTROLS},
{"ModelDownloadProgress", CLEAR_ON_MANAGER_START},
{"ModelRandomizer", PERSISTENT | FROGPILOT_CONTROLS},
{"ModelToDownload", CLEAR_ON_MANAGER_START},
{"ModelUI", PERSISTENT | FROGPILOT_VISUALS},
{"ModelVersion", PERSISTENT | FROGPILOT_CONTROLS},
{"ModelVersions", PERSISTENT | FROGPILOT_CONTROLS},
{"MTSCCurvatureCheck", PERSISTENT | FROGPILOT_CONTROLS},
{"NavigationUI", PERSISTENT | FROGPILOT_VISUALS},
{"NextMapSpeedLimit", CLEAR_ON_MANAGER_START},
{"NewLongAPI", PERSISTENT | FROGPILOT_VEHICLES},
{"NewLongAPIGM", PERSISTENT | FROGPILOT_VEHICLES},
{"NNFF", PERSISTENT | FROGPILOT_CONTROLS},
{"NNFFLite", PERSISTENT | FROGPILOT_CONTROLS},
{"NNFFModelName", CLEAR_ON_OFFROAD_TRANSITION},
{"NoLogging", PERSISTENT | FROGPILOT_CONTROLS},
{"NorthDakotaDrives", PERSISTENT | FROGPILOT_CONTROLS},
{"NorthDakotaScore", PERSISTENT | FROGPILOT_CONTROLS},
{"NotreDameDrives", PERSISTENT | FROGPILOT_CONTROLS},
{"NotreDameScore", PERSISTENT | FROGPILOT_CONTROLS},
{"NoUploads", PERSISTENT | FROGPILOT_CONTROLS},
{"NudgelessLaneChange", PERSISTENT | FROGPILOT_CONTROLS},
{"NumericalTemp", PERSISTENT | FROGPILOT_VISUALS},
{"OfflineMode", PERSISTENT | FROGPILOT_CONTROLS},
{"Offset1", PERSISTENT | FROGPILOT_CONTROLS},
{"Offset2", PERSISTENT | FROGPILOT_CONTROLS},
{"Offset3", PERSISTENT | FROGPILOT_CONTROLS},
{"Offset4", PERSISTENT | FROGPILOT_CONTROLS},
{"OneLaneChange", PERSISTENT | FROGPILOT_CONTROLS},
{"OnroadDistanceButton", PERSISTENT | FROGPILOT_CONTROLS},
{"OnroadDistanceButtonPressed", CLEAR_ON_MANAGER_START},
{"openpilotMinutes", PERSISTENT},
{"OSMDownloadBounds", PERSISTENT},
{"OSMDownloadLocations", PERSISTENT},
{"OSMDownloadProgress", CLEAR_ON_MANAGER_START},
{"PathEdgeWidth", PERSISTENT | FROGPILOT_VISUALS},
{"PathWidth", PERSISTENT | FROGPILOT_VISUALS},
{"PauseAOLOnBrake", PERSISTENT | FROGPILOT_CONTROLS},
{"PauseLateralOnSignal", PERSISTENT | FROGPILOT_CONTROLS},
{"PauseLateralSpeed", PERSISTENT | FROGPILOT_CONTROLS},
{"PedalsOnUI", PERSISTENT | FROGPILOT_VISUALS},
{"PersonalizeOpenpilot", PERSISTENT | FROGPILOT_VISUALS},
{"PreferredSchedule", PERSISTENT | FROGPILOT_OTHER},
{"PreviousSpeedLimit", PERSISTENT},
{"PromptDistractedVolume", PERSISTENT | FROGPILOT_VISUALS},
{"PromptVolume", PERSISTENT | FROGPILOT_VISUALS},
{"QOLLateral", PERSISTENT | FROGPILOT_CONTROLS},
{"QOLLongitudinal", PERSISTENT | FROGPILOT_CONTROLS},
{"QOLVisuals", PERSISTENT | FROGPILOT_VISUALS},
{"RadicalTurtleDrives", PERSISTENT | FROGPILOT_CONTROLS},
{"RadicalTurtleScore", PERSISTENT | FROGPILOT_CONTROLS},
{"RainbowPath", PERSISTENT | FROGPILOT_VISUALS},
{"RandomEvents", PERSISTENT | FROGPILOT_VISUALS},
{"RecertifiedHerbalistDrives", PERSISTENT | FROGPILOT_CONTROLS},
{"RecertifiedHerbalistScore", PERSISTENT | FROGPILOT_CONTROLS},
{"RefuseVolume", PERSISTENT | FROGPILOT_VISUALS},
{"RelaxedFollow", PERSISTENT | FROGPILOT_CONTROLS},
{"RelaxedJerkAcceleration", PERSISTENT | FROGPILOT_CONTROLS},
{"RelaxedJerkDanger", PERSISTENT | FROGPILOT_CONTROLS},
{"RelaxedJerkDeceleration", PERSISTENT | FROGPILOT_CONTROLS},
{"RelaxedJerkSpeed", PERSISTENT | FROGPILOT_CONTROLS},
{"RelaxedJerkSpeedDecrease", PERSISTENT | FROGPILOT_CONTROLS},
{"RelaxedPersonalityProfile", PERSISTENT | FROGPILOT_CONTROLS},
{"ReverseCruise", PERSISTENT | FROGPILOT_CONTROLS},
{"RoadEdgesWidth", PERSISTENT | FROGPILOT_VISUALS},
{"RoadName", CLEAR_ON_MANAGER_START},
{"RoadNameUI", PERSISTENT | FROGPILOT_VISUALS},
{"RotatingWheel", PERSISTENT | FROGPILOT_VISUALS},
{"ScreenBrightness", PERSISTENT | FROGPILOT_VISUALS},
{"ScreenBrightnessOnroad", PERSISTENT | FROGPILOT_VISUALS},
{"ScreenManagement", PERSISTENT | FROGPILOT_VISUALS},
{"ScreenRecorder", PERSISTENT | FROGPILOT_VISUALS},
{"ScreenTimeout", PERSISTENT | FROGPILOT_VISUALS},
{"ScreenTimeoutOnroad", PERSISTENT | FROGPILOT_VISUALS},
{"SearchInput", PERSISTENT | FROGPILOT_OTHER},
{"SecretGoodOpenpilotDrives", PERSISTENT | FROGPILOT_CONTROLS},
{"SecretGoodOpenpilotScore", PERSISTENT | FROGPILOT_CONTROLS},
{"SetSpeedLimit", PERSISTENT | FROGPILOT_CONTROLS},
{"SetSpeedOffset", PERSISTENT | FROGPILOT_CONTROLS},
{"ShowCEMStatus", PERSISTENT | FROGPILOT_VISUALS},
{"ShowCPU", PERSISTENT | FROGPILOT_VISUALS},
{"ShowGPU", PERSISTENT | FROGPILOT_VISUALS},
{"ShowIP", PERSISTENT | FROGPILOT_VISUALS},
{"ShowMemoryUsage", PERSISTENT | FROGPILOT_VISUALS},
{"ShowSLCOffset", PERSISTENT | FROGPILOT_CONTROLS},
{"ShowSpeedLimits", PERSISTENT | FROGPILOT_VISUALS},
{"ShowSteering", PERSISTENT | FROGPILOT_VISUALS},
{"ShowStoppingPoint", PERSISTENT | FROGPILOT_VISUALS},
{"ShowStoppingPointMetrics", PERSISTENT | FROGPILOT_VISUALS},
{"ShowStorageLeft", PERSISTENT | FROGPILOT_VISUALS},
{"ShowStorageUsed", PERSISTENT | FROGPILOT_VISUALS},
{"Sidebar", PERSISTENT | FROGPILOT_OTHER},
{"SidebarMetrics", PERSISTENT | FROGPILOT_VISUALS},
{"SignalMetrics", PERSISTENT | FROGPILOT_VISUALS},
{"SignalToDownload", CLEAR_ON_MANAGER_START},
{"SLCConfirmation", PERSISTENT | FROGPILOT_CONTROLS},
{"SLCConfirmationHigher", PERSISTENT | FROGPILOT_CONTROLS},
{"SLCConfirmationLower", PERSISTENT | FROGPILOT_CONTROLS},
{"SLCLookaheadHigher", PERSISTENT | FROGPILOT_CONTROLS},
{"SLCLookaheadLower", PERSISTENT | FROGPILOT_CONTROLS},
{"SLCFallback", PERSISTENT | FROGPILOT_CONTROLS},
{"SLCOverride", PERSISTENT | FROGPILOT_CONTROLS},
{"SLCPriority1", PERSISTENT | FROGPILOT_CONTROLS},
{"SLCPriority2", PERSISTENT | FROGPILOT_CONTROLS},
{"SLCPriority3", PERSISTENT | FROGPILOT_CONTROLS},
{"SmartTurnControl", PERSISTENT | FROGPILOT_CONTROLS},
{"SNGHack", PERSISTENT | FROGPILOT_VEHICLES},
{"SoundToDownload", CLEAR_ON_MANAGER_START},
{"SpeedLimitAccepted", CLEAR_ON_MANAGER_START},
{"SpeedLimitChangedAlert", PERSISTENT | FROGPILOT_CONTROLS},
{"SpeedLimitController", PERSISTENT | FROGPILOT_CONTROLS},
{"SpeedLimitSources", PERSISTENT | FROGPILOT_VISUALS},
{"StandardFollow", PERSISTENT | FROGPILOT_CONTROLS},
{"StandardJerkAcceleration", PERSISTENT | FROGPILOT_CONTROLS},
{"StandardJerkDanger", PERSISTENT | FROGPILOT_CONTROLS},
{"StandardJerkDeceleration", PERSISTENT | FROGPILOT_CONTROLS},
{"StandardJerkSpeed", PERSISTENT | FROGPILOT_CONTROLS},
{"StandardJerkSpeedDecrease", PERSISTENT | FROGPILOT_CONTROLS},
{"StandardPersonalityProfile", PERSISTENT | FROGPILOT_CONTROLS},
{"StandbyMode", PERSISTENT | FROGPILOT_VISUALS},
{"StartupMessageBottom", PERSISTENT | FROGPILOT_VISUALS},
{"StartupMessageTop", PERSISTENT | FROGPILOT_VISUALS},
{"StaticPedalsOnUI", PERSISTENT | FROGPILOT_VISUALS},
{"SteerFriction", PERSISTENT | FROGPILOT_CONTROLS},
{"SteerFrictionStock", PERSISTENT},
{"SteerLatAccel", PERSISTENT | FROGPILOT_CONTROLS},
{"SteerLatAccelStock", PERSISTENT},
{"SteerKP", PERSISTENT | FROGPILOT_CONTROLS},
{"SteerKPStock", PERSISTENT},
{"SteerRatio", PERSISTENT | FROGPILOT_CONTROLS},
{"SteerRatioStock", PERSISTENT},
{"StoppedTimer", PERSISTENT | FROGPILOT_VISUALS},
{"TacoTune", PERSISTENT | FROGPILOT_CONTROLS},
{"TestingSound", CLEAR_ON_MANAGER_START},
{"TetheringEnabled", PERSISTENT | FROGPILOT_OTHER},
{"ThemeDownloadProgress", CLEAR_ON_MANAGER_START},
{"ToyotaDoors", PERSISTENT | FROGPILOT_VEHICLES},
{"TrafficFollow", PERSISTENT | FROGPILOT_CONTROLS},
{"TrafficJerkAcceleration", PERSISTENT | FROGPILOT_CONTROLS},
{"TrafficJerkDanger", PERSISTENT | FROGPILOT_CONTROLS},
{"TrafficJerkDeceleration", PERSISTENT | FROGPILOT_CONTROLS},
{"TrafficJerkSpeed", PERSISTENT | FROGPILOT_CONTROLS},
{"TrafficJerkSpeedDecrease", PERSISTENT | FROGPILOT_CONTROLS},
{"TrafficPersonalityProfile", PERSISTENT | FROGPILOT_CONTROLS},
{"TuningInfo", PERSISTENT | FROGPILOT_VISUALS},
{"TuningLevel", PERSISTENT},
{"TuningLevelConfirmed", PERSISTENT},
{"TurnAggressiveness", PERSISTENT | FROGPILOT_CONTROLS},
{"TurnDesires", PERSISTENT | FROGPILOT_CONTROLS},
{"UnlimitedLength", PERSISTENT | FROGPILOT_VISUALS},
{"UnlockDoors", PERSISTENT | FROGPILOT_VEHICLES},
{"Updated", PERSISTENT},
{"UpdateWheelImage", CLEAR_ON_MANAGER_START},
{"UserCurvature", PERSISTENT},
{"UseSI", PERSISTENT | FROGPILOT_VISUALS},
{"UseStockColors", CLEAR_ON_MANAGER_START},
{"UseVienna", PERSISTENT | FROGPILOT_CONTROLS},
{"VisionTurnControl", PERSISTENT | FROGPILOT_CONTROLS},
{"VoltSNG", PERSISTENT | FROGPILOT_VEHICLES},
{"WarningImmediateVolume", PERSISTENT | FROGPILOT_VISUALS},
{"WarningSoftVolume", PERSISTENT | FROGPILOT_VISUALS},
{"WD40Drives", PERSISTENT | FROGPILOT_CONTROLS},
{"WD40Score", PERSISTENT | FROGPILOT_CONTROLS},
{"WheelIcon", PERSISTENT | FROGPILOT_VISUALS},
{"WheelSpeed", PERSISTENT | FROGPILOT_VISUALS},
{"WheelToDownload", CLEAR_ON_MANAGER_START},
};
} // namespace
+25
View File
@@ -16,6 +16,11 @@ enum ParamKeyType {
CLEAR_ON_OFFROAD_TRANSITION = 0x10,
DONT_LOG = 0x20,
DEVELOPMENT_ONLY = 0x40,
FROGPILOT_CONTROLS = 0x80,
FROGPILOT_VISUALS = 0x100,
FROGPILOT_OTHER = 0x400,
FROGPILOT_TRACKING = 0x800,
FROGPILOT_VEHICLES = 0x1000,
ALL = 0xFFFFFFFF
};
@@ -43,6 +48,14 @@ public:
inline bool getBool(const std::string &key, bool block = false) {
return get(key, block) == "1";
}
inline int getInt(const std::string &key, bool block = false) {
std::string value = get(key, block);
return value.empty() ? 0 : std::stoi(value);
}
inline float getFloat(const std::string &key, bool block = false) {
std::string value = get(key, block);
return value.empty() ? 0.0 : std::stof(value);
}
std::map<std::string, std::string> readAll();
// helpers for writing values
@@ -53,10 +66,22 @@ public:
inline int putBool(const std::string &key, bool val) {
return put(key.c_str(), val ? "1" : "0", 1);
}
inline int putInt(const std::string &key, int val) {
return put(key.c_str(), std::to_string(val).c_str(), std::to_string(val).size());
}
inline int putFloat(const std::string &key, float val) {
return put(key.c_str(), std::to_string(val).c_str(), std::to_string(val).size());
}
void putNonBlocking(const std::string &key, const std::string &val);
inline void putBoolNonBlocking(const std::string &key, bool val) {
putNonBlocking(key, val ? "1" : "0");
}
inline void putIntNonBlocking(const std::string &key, int val) {
putNonBlocking(key, std::to_string(val));
}
inline void putFloatNonBlocking(const std::string &key, float val) {
putNonBlocking(key, std::to_string(val));
}
private:
void asyncWriteThread();
+50
View File
@@ -11,21 +11,33 @@ cdef extern from "common/params.h":
CLEAR_ON_ONROAD_TRANSITION
CLEAR_ON_OFFROAD_TRANSITION
DEVELOPMENT_ONLY
FROGPILOT_CONTROLS
FROGPILOT_OTHER
FROGPILOT_TRACKING
FROGPILOT_VEHICLES
FROGPILOT_VISUALS
ALL
cdef cppclass c_Params "Params":
c_Params(string) except + nogil
string get(string, bool) nogil
bool getBool(string, bool) nogil
int getInt(string, bool) nogil
float getFloat(string, bool) nogil
int remove(string) nogil
int put(string, string) nogil
void putNonBlocking(string, string) nogil
void putBoolNonBlocking(string, bool) nogil
void putIntNonBlocking(string, int) nogil
void putFloatNonBlocking(string, float) nogil
int putBool(string, bool) nogil
int putInt(string, int) nogil
int putFloat(string, float) nogil
bool checkKey(string) nogil
string getParamPath(string) nogil
void clearAll(ParamKeyType)
vector[string] allKeys()
ParamKeyType getKeyType(string) nogil
def ensure_bytes(v):
@@ -77,6 +89,20 @@ cdef class Params:
r = self.p.getBool(k, block)
return r
def get_int(self, key, bool block=False):
cdef string k = self.check_key(key)
cdef int r
with nogil:
r = self.p.getInt(k, block)
return r
def get_float(self, key, bool block=False):
cdef string k = self.check_key(key)
cdef float r
with nogil:
r = self.p.getFloat(k, block)
return r
def put(self, key, dat):
"""
Warning: This function blocks until the param is written to disk!
@@ -94,6 +120,16 @@ cdef class Params:
with nogil:
self.p.putBool(k, val)
def put_int(self, key, int val):
cdef string k = self.check_key(key)
with nogil:
self.p.putInt(k, val)
def put_float(self, key, float val):
cdef string k = self.check_key(key)
with nogil:
self.p.putFloat(k, val)
def put_nonblocking(self, key, dat):
cdef string k = self.check_key(key)
cdef string dat_bytes = ensure_bytes(dat)
@@ -105,6 +141,16 @@ cdef class Params:
with nogil:
self.p.putBoolNonBlocking(k, val)
def put_int_nonblocking(self, key, int val):
cdef string k = self.check_key(key)
with nogil:
self.p.putIntNonBlocking(k, val)
def put_float_nonblocking(self, key, float val):
cdef string k = self.check_key(key)
with nogil:
self.p.putFloatNonBlocking(k, val)
def remove(self, key):
cdef string k = self.check_key(key)
with nogil:
@@ -116,3 +162,7 @@ cdef class Params:
def all_keys(self):
return self.p.allKeys()
def get_key_type(self, key):
cdef string k = self.check_key(key)
return self.p.getKeyType(k)
+14
View File
@@ -271,4 +271,18 @@ std::string check_output(const std::string& command) {
return result;
}
bool system_time_valid() {
// Default to March 30, 2024
tm min_tm = {.tm_year = 2024 - 1900, .tm_mon = 2, .tm_mday = 30};
time_t min_date = mktime(&min_tm);
struct stat st;
if (stat("/lib/systemd/systemd", &st) == 0) {
min_date = std::max(min_date, st.st_mtime + 86400); // Add 1 day (86400 seconds)
}
return time(nullptr) > min_date;
}
} // namespace util
+5
View File
@@ -36,6 +36,9 @@ const double MS_TO_KPH = 3.6;
const double MS_TO_MPH = MS_TO_KPH * KM_TO_MILE;
const double METER_TO_MILE = KM_TO_MILE / 1000.0;
const double METER_TO_FOOT = 3.28084;
const double FOOT_TO_METER = 1. / METER_TO_FOOT;
const double CM_TO_INCH = 1. / 2.54;
const double INCH_TO_CM = 1. / CM_TO_INCH;
namespace util {
@@ -93,6 +96,8 @@ bool create_directories(const std::string &dir, mode_t mode);
std::string check_output(const std::string& command);
bool system_time_valid();
inline void sleep_for(const int milliseconds) {
if (milliseconds > 0) {
std::this_thread::sleep_for(std::chrono::milliseconds(milliseconds));