WMI model, fix AngleControl, CornerRadar and ETC. (#246)
This commit is contained in:
+13
-5
@@ -115,8 +115,16 @@ bool Params::checkKey(const std::string &key) {
|
||||
return keys.find(key) != keys.end();
|
||||
}
|
||||
|
||||
ParamKeyFlag Params::getKeyFlag(const std::string &key) {
|
||||
return static_cast<ParamKeyFlag>(keys[key].flags);
|
||||
}
|
||||
|
||||
ParamKeyType Params::getKeyType(const std::string &key) {
|
||||
return static_cast<ParamKeyType>(keys[key]);
|
||||
return keys[key].type;
|
||||
}
|
||||
|
||||
std::optional<std::string> Params::getKeyDefaultValue(const std::string &key) {
|
||||
return keys[key].default_value;
|
||||
}
|
||||
|
||||
int Params::put(const char* key, const char* value, size_t value_size) {
|
||||
@@ -140,7 +148,7 @@ int Params::put(const char* key, const char* value, size_t value_size) {
|
||||
}
|
||||
|
||||
// fsync to force persist the changes.
|
||||
if ((result = fsync(tmp_fd)) < 0) break;
|
||||
if ((result = HANDLE_EINTR(fsync(tmp_fd))) < 0) break;
|
||||
|
||||
FileLock file_lock(params_path + "/.lock");
|
||||
|
||||
@@ -195,17 +203,17 @@ std::map<std::string, std::string> Params::readAll() {
|
||||
return util::read_files_in_dir(getParamPath());
|
||||
}
|
||||
|
||||
void Params::clearAll(ParamKeyType key_type) {
|
||||
void Params::clearAll(ParamKeyFlag key_flag) {
|
||||
FileLock file_lock(params_path + "/.lock");
|
||||
|
||||
// 1) delete params of key_type
|
||||
// 1) delete params of key_flag
|
||||
// 2) delete files that are not defined in the keys.
|
||||
if (DIR *d = opendir(getParamPath().c_str())) {
|
||||
struct dirent *de = NULL;
|
||||
while ((de = readdir(d))) {
|
||||
if (de->d_type != DT_DIR) {
|
||||
auto it = keys.find(de->d_name);
|
||||
if (it == keys.end() || (it->second & key_type)) {
|
||||
if (it == keys.end() || (it->second.flags & key_flag)) {
|
||||
unlink(getParamPath(de->d_name).c_str());
|
||||
}
|
||||
}
|
||||
|
||||
+22
-2
@@ -2,6 +2,7 @@
|
||||
|
||||
#include <future>
|
||||
#include <map>
|
||||
#include <optional>
|
||||
#include <string>
|
||||
#include <tuple>
|
||||
#include <utility>
|
||||
@@ -9,16 +10,33 @@
|
||||
|
||||
#include "common/queue.h"
|
||||
|
||||
enum ParamKeyType {
|
||||
enum ParamKeyFlag {
|
||||
PERSISTENT = 0x02,
|
||||
CLEAR_ON_MANAGER_START = 0x04,
|
||||
CLEAR_ON_ONROAD_TRANSITION = 0x08,
|
||||
CLEAR_ON_OFFROAD_TRANSITION = 0x10,
|
||||
DONT_LOG = 0x20,
|
||||
DEVELOPMENT_ONLY = 0x40,
|
||||
CLEAR_ON_IGNITION_ON = 0x80,
|
||||
ALL = 0xFFFFFFFF
|
||||
};
|
||||
|
||||
enum ParamKeyType {
|
||||
STRING = 0, // must be utf-8 decodable
|
||||
BOOL = 1,
|
||||
INT = 2,
|
||||
FLOAT = 3,
|
||||
TIME = 4, // ISO 8601
|
||||
JSON = 5,
|
||||
BYTES = 6
|
||||
};
|
||||
|
||||
struct ParamKeyAttributes {
|
||||
uint32_t flags;
|
||||
ParamKeyType type;
|
||||
std::optional<std::string> default_value = std::nullopt;
|
||||
};
|
||||
|
||||
class Params {
|
||||
public:
|
||||
explicit Params(const std::string &path = {});
|
||||
@@ -29,14 +47,16 @@ public:
|
||||
|
||||
std::vector<std::string> allKeys() const;
|
||||
bool checkKey(const std::string &key);
|
||||
ParamKeyFlag getKeyFlag(const std::string &key);
|
||||
ParamKeyType getKeyType(const std::string &key);
|
||||
std::optional<std::string> getKeyDefaultValue(const std::string &key);
|
||||
inline std::string getParamPath(const std::string &key = {}) {
|
||||
return params_path + params_prefix + (key.empty() ? "" : "/" + key);
|
||||
}
|
||||
|
||||
// Delete a value
|
||||
int remove(const std::string &key);
|
||||
void clearAll(ParamKeyType type);
|
||||
void clearAll(ParamKeyFlag flag);
|
||||
|
||||
// helpers for reading values
|
||||
std::string get(const std::string &key, bool block = false);
|
||||
|
||||
+2
-1
@@ -1,5 +1,6 @@
|
||||
from openpilot.common.params_pyx import Params, ParamKeyType, UnknownKeyName
|
||||
from openpilot.common.params_pyx import Params, ParamKeyFlag, ParamKeyType, UnknownKeyName
|
||||
assert Params
|
||||
assert ParamKeyFlag
|
||||
assert ParamKeyType
|
||||
assert UnknownKeyName
|
||||
|
||||
|
||||
+325
-292
@@ -3,303 +3,336 @@
|
||||
#include <string>
|
||||
#include <unordered_map>
|
||||
|
||||
inline static std::unordered_map<std::string, uint32_t> keys = {
|
||||
{"AccessToken", CLEAR_ON_MANAGER_START | DONT_LOG},
|
||||
{"AdbEnabled", PERSISTENT},
|
||||
{"AlwaysOnDM", PERSISTENT},
|
||||
{"ApiCache_Device", PERSISTENT},
|
||||
{"ApiCache_FirehoseStats", PERSISTENT},
|
||||
{"AssistNowToken", PERSISTENT},
|
||||
{"AthenadPid", PERSISTENT},
|
||||
{"AthenadUploadQueue", PERSISTENT},
|
||||
{"AthenadRecentlyViewedRoutes", PERSISTENT},
|
||||
{"BootCount", PERSISTENT},
|
||||
{"CalibrationParams", PERSISTENT},
|
||||
{"CameraDebugExpGain", CLEAR_ON_MANAGER_START},
|
||||
{"CameraDebugExpTime", CLEAR_ON_MANAGER_START},
|
||||
{"CarBatteryCapacity", PERSISTENT},
|
||||
{"CarParams", CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION},
|
||||
{"CarParamsCache", CLEAR_ON_MANAGER_START},
|
||||
{"CarParamsPersistent", PERSISTENT},
|
||||
{"CarParamsPrevRoute", PERSISTENT},
|
||||
{"CompletedTrainingVersion", PERSISTENT},
|
||||
{"ControlsReady", CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION},
|
||||
{"CurrentBootlog", PERSISTENT},
|
||||
{"CurrentRoute", CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION},
|
||||
{"DisableLogging", CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION},
|
||||
{"DisablePowerDown", PERSISTENT},
|
||||
{"DisableUpdates", PERSISTENT},
|
||||
{"DisengageOnAccelerator", PERSISTENT},
|
||||
{"DongleId", PERSISTENT},
|
||||
{"DoReboot", CLEAR_ON_MANAGER_START},
|
||||
{"DoShutdown", CLEAR_ON_MANAGER_START},
|
||||
{"DoUninstall", CLEAR_ON_MANAGER_START},
|
||||
{"DriverTooDistracted", CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION},
|
||||
{"AlphaLongitudinalEnabled", PERSISTENT | DEVELOPMENT_ONLY},
|
||||
{"ExperimentalMode", PERSISTENT},
|
||||
{"ExperimentalModeConfirmed", PERSISTENT},
|
||||
{"FirmwareQueryDone", CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION},
|
||||
{"ForcePowerDown", PERSISTENT},
|
||||
{"GitBranch", PERSISTENT},
|
||||
{"GitCommit", PERSISTENT},
|
||||
{"GitCommitDate", PERSISTENT},
|
||||
{"GitDiff", PERSISTENT},
|
||||
{"GithubSshKeys", PERSISTENT},
|
||||
{"GithubUsername", PERSISTENT},
|
||||
{"GitRemote", PERSISTENT},
|
||||
{"GsmApn", PERSISTENT},
|
||||
{"GsmMetered", PERSISTENT},
|
||||
{"GsmRoaming", PERSISTENT},
|
||||
{"HardwareSerial", PERSISTENT},
|
||||
{"HasAcceptedTerms", PERSISTENT},
|
||||
{"InstallDate", PERSISTENT},
|
||||
{"IsDriverViewEnabled", CLEAR_ON_MANAGER_START},
|
||||
{"IsEngaged", PERSISTENT},
|
||||
{"IsLdwEnabled", PERSISTENT},
|
||||
{"IsMetric", PERSISTENT},
|
||||
{"IsOffroad", CLEAR_ON_MANAGER_START},
|
||||
{"IsOnroad", PERSISTENT},
|
||||
{"IsRhdDetected", PERSISTENT},
|
||||
{"IsReleaseBranch", CLEAR_ON_MANAGER_START},
|
||||
{"IsTakingSnapshot", CLEAR_ON_MANAGER_START},
|
||||
{"IsTestedBranch", CLEAR_ON_MANAGER_START},
|
||||
{"JoystickDebugMode", CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION},
|
||||
{"LanguageSetting", PERSISTENT},
|
||||
{"LastAthenaPingTime", CLEAR_ON_MANAGER_START},
|
||||
{"LastGPSPosition", PERSISTENT},
|
||||
{"LastManagerExitReason", CLEAR_ON_MANAGER_START},
|
||||
{"LastOffroadStatusPacket", CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION},
|
||||
{"LastPowerDropDetected", CLEAR_ON_MANAGER_START},
|
||||
{"LastUpdateException", CLEAR_ON_MANAGER_START},
|
||||
{"LastUpdateTime", PERSISTENT},
|
||||
{"LiveDelay", PERSISTENT},
|
||||
{"LiveParameters", PERSISTENT},
|
||||
{"LiveParametersV2", PERSISTENT},
|
||||
{"LiveTorqueParameters", PERSISTENT | DONT_LOG},
|
||||
{"LocationFilterInitialState", PERSISTENT},
|
||||
{"LongitudinalManeuverMode", CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION},
|
||||
{"LongitudinalPersonality", PERSISTENT},
|
||||
{"NetworkMetered", PERSISTENT},
|
||||
{"ObdMultiplexingChanged", CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION},
|
||||
{"ObdMultiplexingEnabled", CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION},
|
||||
{"Offroad_BadNvme", CLEAR_ON_MANAGER_START},
|
||||
{"Offroad_CarUnrecognized", CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION},
|
||||
{"Offroad_ConnectivityNeeded", CLEAR_ON_MANAGER_START},
|
||||
{"Offroad_ConnectivityNeededPrompt", CLEAR_ON_MANAGER_START},
|
||||
{"Offroad_IsTakingSnapshot", CLEAR_ON_MANAGER_START},
|
||||
{"Offroad_NeosUpdate", CLEAR_ON_MANAGER_START},
|
||||
{"Offroad_NoFirmware", CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION},
|
||||
{"Offroad_Recalibration", CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION},
|
||||
{"Offroad_StorageMissing", CLEAR_ON_MANAGER_START},
|
||||
{"Offroad_TemperatureTooHigh", CLEAR_ON_MANAGER_START},
|
||||
{"Offroad_UnofficialHardware", CLEAR_ON_MANAGER_START},
|
||||
{"Offroad_UpdateFailed", CLEAR_ON_MANAGER_START},
|
||||
{"Offroad_DriverMonitoringUncertain", CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION},
|
||||
{"OpenpilotEnabledToggle", PERSISTENT},
|
||||
{"PandaHeartbeatLost", CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION},
|
||||
{"PandaSomResetTriggered", CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION},
|
||||
{"PandaSignatures", CLEAR_ON_MANAGER_START},
|
||||
{"PrimeType", PERSISTENT},
|
||||
{"RecordAudio", PERSISTENT},
|
||||
{"RecordFront", PERSISTENT},
|
||||
{"RecordFrontLock", PERSISTENT}, // for the internal fleet
|
||||
{"SecOCKey", PERSISTENT | DONT_LOG},
|
||||
{"RouteCount", PERSISTENT},
|
||||
{"SnoozeUpdate", CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION},
|
||||
{"SshEnabled", PERSISTENT},
|
||||
{"TermsVersion", PERSISTENT},
|
||||
{"TrainingVersion", PERSISTENT},
|
||||
{"UbloxAvailable", PERSISTENT},
|
||||
{"UpdateAvailable", CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION},
|
||||
{"UpdateFailedCount", CLEAR_ON_MANAGER_START},
|
||||
{"UpdaterAvailableBranches", PERSISTENT},
|
||||
{"UpdaterCurrentDescription", CLEAR_ON_MANAGER_START},
|
||||
{"UpdaterCurrentReleaseNotes", CLEAR_ON_MANAGER_START},
|
||||
{"UpdaterFetchAvailable", CLEAR_ON_MANAGER_START},
|
||||
{"UpdaterNewDescription", CLEAR_ON_MANAGER_START},
|
||||
{"UpdaterNewReleaseNotes", CLEAR_ON_MANAGER_START},
|
||||
{"UpdaterState", CLEAR_ON_MANAGER_START},
|
||||
{"UpdaterTargetBranch", CLEAR_ON_MANAGER_START},
|
||||
{"UpdaterLastFetchTime", PERSISTENT},
|
||||
{"Version", PERSISTENT},
|
||||
#include "cereal/gen/cpp/log.capnp.h"
|
||||
|
||||
inline static std::unordered_map<std::string, ParamKeyAttributes> keys = {
|
||||
{"AccessToken", {CLEAR_ON_MANAGER_START | DONT_LOG, STRING}},
|
||||
{"AdbEnabled", {PERSISTENT, BOOL}},
|
||||
{"AlwaysOnDM", {PERSISTENT, BOOL}},
|
||||
{"ApiCache_Device", {PERSISTENT, STRING}},
|
||||
{"ApiCache_FirehoseStats", {PERSISTENT, JSON}},
|
||||
{"AssistNowToken", {PERSISTENT, STRING}},
|
||||
{"AthenadPid", {PERSISTENT, INT}},
|
||||
{"AthenadUploadQueue", {PERSISTENT, JSON}},
|
||||
{"AthenadRecentlyViewedRoutes", {PERSISTENT, STRING}},
|
||||
{"BootCount", {PERSISTENT, INT}},
|
||||
{"CalibrationParams", {PERSISTENT, BYTES}},
|
||||
{"CameraDebugExpGain", {CLEAR_ON_MANAGER_START, STRING}},
|
||||
{"CameraDebugExpTime", {CLEAR_ON_MANAGER_START, STRING}},
|
||||
{"CarBatteryCapacity", {PERSISTENT, INT}},
|
||||
{"CarParams", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, BYTES}},
|
||||
{"CarParamsCache", {CLEAR_ON_MANAGER_START, BYTES}},
|
||||
{"CarParamsPersistent", {PERSISTENT, BYTES}},
|
||||
{"CarParamsPrevRoute", {PERSISTENT, BYTES}},
|
||||
{"CompletedTrainingVersion", {PERSISTENT, STRING, "0"}},
|
||||
{"ControlsReady", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, BOOL}},
|
||||
{"CurrentBootlog", {PERSISTENT, STRING}},
|
||||
{"CurrentRoute", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, STRING}},
|
||||
{"DisableLogging", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, BOOL}},
|
||||
{"DisablePowerDown", {PERSISTENT, BOOL}},
|
||||
{"DisableUpdates", {PERSISTENT, BOOL}},
|
||||
{"DisengageOnAccelerator", {PERSISTENT, BOOL, "0"}},
|
||||
{"DongleId", {PERSISTENT, STRING}},
|
||||
{"DoReboot", {CLEAR_ON_MANAGER_START, BOOL}},
|
||||
{"DoShutdown", {CLEAR_ON_MANAGER_START, BOOL}},
|
||||
{"DoUninstall", {CLEAR_ON_MANAGER_START, BOOL}},
|
||||
{"DriverTooDistracted", {CLEAR_ON_MANAGER_START | CLEAR_ON_IGNITION_ON, BOOL}},
|
||||
{"AlphaLongitudinalEnabled", {PERSISTENT | DEVELOPMENT_ONLY, BOOL}},
|
||||
{"ExperimentalMode", {PERSISTENT, BOOL}},
|
||||
{"ExperimentalModeConfirmed", {PERSISTENT, BOOL}},
|
||||
{"FirmwareQueryDone", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, BOOL}},
|
||||
{"ForcePowerDown", {PERSISTENT, BOOL}},
|
||||
{"GitBranch", {PERSISTENT, STRING}},
|
||||
{"GitCommit", {PERSISTENT, STRING}},
|
||||
{"GitCommitDate", {PERSISTENT, STRING}},
|
||||
{"GitDiff", {PERSISTENT, STRING}},
|
||||
{"GithubSshKeys", {PERSISTENT, STRING}},
|
||||
{"GithubUsername", {PERSISTENT, STRING}},
|
||||
{"GitRemote", {PERSISTENT, STRING}},
|
||||
{"GsmApn", {PERSISTENT, STRING}},
|
||||
{"GsmMetered", {PERSISTENT, BOOL, "1"}},
|
||||
{"GsmRoaming", {PERSISTENT, BOOL}},
|
||||
{"HardwareSerial", {PERSISTENT, STRING}},
|
||||
{"HasAcceptedTerms", {PERSISTENT, STRING, "0"}},
|
||||
{"InstallDate", {PERSISTENT, TIME}},
|
||||
{"IsDriverViewEnabled", {CLEAR_ON_MANAGER_START, BOOL}},
|
||||
{"IsEngaged", {PERSISTENT, BOOL}},
|
||||
{"IsLdwEnabled", {PERSISTENT, BOOL}},
|
||||
{"IsMetric", {PERSISTENT, BOOL}},
|
||||
{"IsOffroad", {CLEAR_ON_MANAGER_START, BOOL}},
|
||||
{"IsOnroad", {PERSISTENT, BOOL}},
|
||||
{"IsRhdDetected", {PERSISTENT, BOOL}},
|
||||
{"IsReleaseBranch", {CLEAR_ON_MANAGER_START, BOOL}},
|
||||
{"IsTakingSnapshot", {CLEAR_ON_MANAGER_START, BOOL}},
|
||||
{"IsTestedBranch", {CLEAR_ON_MANAGER_START, BOOL}},
|
||||
{"JoystickDebugMode", {CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION, BOOL}},
|
||||
{"LanguageSetting", {PERSISTENT, STRING, "en"}},
|
||||
{"LastAthenaPingTime", {CLEAR_ON_MANAGER_START, INT}},
|
||||
{"LastGPSPosition", {PERSISTENT, STRING}},
|
||||
{"LastManagerExitReason", {CLEAR_ON_MANAGER_START, STRING}},
|
||||
{"LastOffroadStatusPacket", {CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION, JSON}},
|
||||
{"LastPowerDropDetected", {CLEAR_ON_MANAGER_START, STRING}},
|
||||
{"LastUpdateException", {CLEAR_ON_MANAGER_START, STRING}},
|
||||
{"LastUpdateTime", {PERSISTENT, TIME}},
|
||||
{"LiveDelay", {PERSISTENT, BYTES}},
|
||||
{"LiveParameters", {PERSISTENT, JSON}},
|
||||
{"LiveParametersV2", {PERSISTENT, BYTES}},
|
||||
{"LiveTorqueParameters", {PERSISTENT | DONT_LOG, BYTES}},
|
||||
{"LocationFilterInitialState", {PERSISTENT, BYTES}},
|
||||
{"LongitudinalManeuverMode", {CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION, BOOL}},
|
||||
{"LongitudinalPersonality", {PERSISTENT, INT, std::to_string(static_cast<int>(cereal::LongitudinalPersonality::STANDARD))}},
|
||||
{"NetworkMetered", {PERSISTENT, BOOL}},
|
||||
{"ObdMultiplexingChanged", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, BOOL}},
|
||||
{"ObdMultiplexingEnabled", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, BOOL}},
|
||||
{"Offroad_BadNvme", {CLEAR_ON_MANAGER_START, BOOL}},
|
||||
{"Offroad_CarUnrecognized", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, JSON}},
|
||||
{"Offroad_ConnectivityNeeded", {CLEAR_ON_MANAGER_START, JSON}},
|
||||
{"Offroad_ConnectivityNeededPrompt", {CLEAR_ON_MANAGER_START, JSON}},
|
||||
{"Offroad_IsTakingSnapshot", {CLEAR_ON_MANAGER_START, JSON}},
|
||||
{"Offroad_NeosUpdate", {CLEAR_ON_MANAGER_START, JSON}},
|
||||
{"Offroad_NoFirmware", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, JSON}},
|
||||
{"Offroad_Recalibration", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, JSON}},
|
||||
{"Offroad_StorageMissing", {CLEAR_ON_MANAGER_START, BOOL}},
|
||||
{"Offroad_TemperatureTooHigh", {CLEAR_ON_MANAGER_START, JSON}},
|
||||
{"Offroad_UnofficialHardware", {CLEAR_ON_MANAGER_START, BOOL}},
|
||||
{"Offroad_UpdateFailed", {CLEAR_ON_MANAGER_START, JSON}},
|
||||
{"Offroad_DriverMonitoringUncertain", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, JSON}},
|
||||
{"OpenpilotEnabledToggle", {PERSISTENT, BOOL, "1"}},
|
||||
{"PandaHeartbeatLost", {CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION, BOOL}},
|
||||
{"PandaSomResetTriggered", {CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION, BOOL}},
|
||||
{"PandaSignatures", {CLEAR_ON_MANAGER_START, BYTES}},
|
||||
{"PrimeType", {PERSISTENT, INT}},
|
||||
{"RecordAudio", {PERSISTENT, BOOL}},
|
||||
{"RecordFront", {PERSISTENT, BOOL}},
|
||||
{"RecordFrontLock", {PERSISTENT, BOOL}}, // for the internal fleet
|
||||
{"SecOCKey", {PERSISTENT | DONT_LOG, STRING}},
|
||||
{"RouteCount", {PERSISTENT, INT, "0"}},
|
||||
{"SnoozeUpdate", {CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION, BOOL}},
|
||||
{"SshEnabled", {PERSISTENT, BOOL}},
|
||||
{"TermsVersion", {PERSISTENT, STRING}},
|
||||
{"TrainingVersion", {PERSISTENT, STRING}},
|
||||
{"UbloxAvailable", {PERSISTENT, BOOL}},
|
||||
{"UpdateAvailable", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, BOOL}},
|
||||
{"UpdateFailedCount", {CLEAR_ON_MANAGER_START, INT}},
|
||||
{"UpdaterAvailableBranches", {PERSISTENT, STRING}},
|
||||
{"UpdaterCurrentDescription", {CLEAR_ON_MANAGER_START, STRING}},
|
||||
{"UpdaterCurrentReleaseNotes", {CLEAR_ON_MANAGER_START, BYTES}},
|
||||
{"UpdaterFetchAvailable", {CLEAR_ON_MANAGER_START, BOOL}},
|
||||
{"UpdaterNewDescription", {CLEAR_ON_MANAGER_START, STRING}},
|
||||
{"UpdaterNewReleaseNotes", {CLEAR_ON_MANAGER_START, BYTES}},
|
||||
{"UpdaterState", {CLEAR_ON_MANAGER_START, STRING}},
|
||||
{"UpdaterTargetBranch", {CLEAR_ON_MANAGER_START, STRING}},
|
||||
{"UpdaterLastFetchTime", {PERSISTENT, TIME}},
|
||||
{"Version", {PERSISTENT, STRING}},
|
||||
|
||||
// carrot
|
||||
{"LongitudinalPersonalityMax", PERSISTENT},
|
||||
{"NetworkAddress", CLEAR_ON_MANAGER_START},
|
||||
{"LongitudinalPersonalityMax", {PERSISTENT, INT, "3"}},
|
||||
{"NetworkAddress", {CLEAR_ON_MANAGER_START, STRING}},
|
||||
|
||||
{"ApiCache_NavDestinations", PERSISTENT},
|
||||
{"NavDestination", CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION},
|
||||
{"NavDestinationWaypoints", CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION},
|
||||
{"NavPastDestinations", PERSISTENT},
|
||||
{"NavSettingLeftSide", PERSISTENT},
|
||||
{"NavSettingTime24h", PERSISTENT},
|
||||
{"MapboxStyle", PERSISTENT },
|
||||
{"MapboxPublicKey", PERSISTENT},
|
||||
{"MapboxSecretKey", PERSISTENT},
|
||||
{"GMapKey", PERSISTENT},
|
||||
{"SearchInput", PERSISTENT},
|
||||
{"ApiCache_NavDestinations", {PERSISTENT, STRING}},
|
||||
{"NavDestination", {CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION, STRING}},
|
||||
{"NavDestinationWaypoints", {CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION, STRING}},
|
||||
{"NavPastDestinations", {PERSISTENT, STRING}},
|
||||
{"NavSettingLeftSide", {PERSISTENT, BOOL}},
|
||||
{"NavSettingTime24h", {PERSISTENT, BOOL}},
|
||||
{"MapboxStyle", {PERSISTENT, INT}},
|
||||
{"MapboxPublicKey", {PERSISTENT, STRING}},
|
||||
{"MapboxSecretKey", {PERSISTENT, STRING}},
|
||||
{"GMapKey", {PERSISTENT, STRING}},
|
||||
{"SearchInput", {PERSISTENT, INT}},
|
||||
|
||||
{"CarSelected3", PERSISTENT},
|
||||
{"SupportedCars", PERSISTENT},
|
||||
{"SupportedCars_gm", PERSISTENT},
|
||||
{"ShowDebugUI", PERSISTENT},
|
||||
{"ShowTpms", PERSISTENT},
|
||||
{"ShowDateTime", PERSISTENT},
|
||||
{"ShowPathEnd", PERSISTENT},
|
||||
{"ShowCustomBrightness", PERSISTENT},
|
||||
{"ShowLaneInfo", PERSISTENT},
|
||||
{"ShowRadarInfo", PERSISTENT},
|
||||
{"ShowDeviceState", PERSISTENT},
|
||||
{"ShowRouteInfo", PERSISTENT },
|
||||
{"ShowPathMode", PERSISTENT},
|
||||
{"ShowPathColor", PERSISTENT},
|
||||
{"ShowPathColorCruiseOff", PERSISTENT},
|
||||
{"ShowPathModeLane", PERSISTENT},
|
||||
{"ShowPathColorLane", PERSISTENT},
|
||||
{"ShowPlotMode", PERSISTENT},
|
||||
{"RecordRoadCam", PERSISTENT },
|
||||
{"HDPuse", PERSISTENT },
|
||||
{"CarSelected3", {PERSISTENT, STRING}},
|
||||
{"SupportedCars", {PERSISTENT, STRING}},
|
||||
{"SupportedCars_gm", {PERSISTENT, STRING}},
|
||||
{"ShowDebugUI", {PERSISTENT, INT, "0"}},
|
||||
{"ShowTpms", {PERSISTENT, INT, "1"}},
|
||||
{"ShowDateTime", {PERSISTENT, INT, "1"}},
|
||||
{"ShowPathEnd", {PERSISTENT, INT, "1"}},
|
||||
{"ShowCustomBrightness", {PERSISTENT, INT, "100"}},
|
||||
{"ShowLaneInfo", {PERSISTENT, INT, "1"}},
|
||||
{"ShowRadarInfo", {PERSISTENT, INT, "1"}},
|
||||
{"ShowDeviceState", {PERSISTENT, INT, "1"}},
|
||||
{"ShowRouteInfo", {PERSISTENT, INT, "1"}},
|
||||
{"ShowPathMode", {PERSISTENT, INT, "9"}},
|
||||
{"ShowPathColor", {PERSISTENT, INT, "13"}},
|
||||
{"ShowPathColorCruiseOff", {PERSISTENT, INT, "19"}},
|
||||
{"ShowPathModeLane", {PERSISTENT, INT, "14"}},
|
||||
{"ShowPathColorLane", {PERSISTENT, INT, "13"}},
|
||||
{"ShowPlotMode", {PERSISTENT, INT, "0"}},
|
||||
{"RecordRoadCam", {PERSISTENT, INT, "0"}},
|
||||
{"HDPuse", {PERSISTENT, INT, "0"}},
|
||||
|
||||
{"AutoCruiseControl", PERSISTENT},
|
||||
{"CruiseEcoControl", PERSISTENT},
|
||||
{"CarrotCruiseDecel", PERSISTENT},
|
||||
{"CarrotCruiseAtcDecel", PERSISTENT},
|
||||
{"CommaLongAcc", PERSISTENT},
|
||||
{"AutoGasTokSpeed", PERSISTENT},
|
||||
{"AutoGasSyncSpeed", PERSISTENT},
|
||||
{"AutoEngage", PERSISTENT},
|
||||
{"DisableMinSteerSpeed", PERSISTENT},
|
||||
{"AutoCurveSpeedLowerLimit", PERSISTENT},
|
||||
{"AutoCurveSpeedFactor", PERSISTENT},
|
||||
{"AutoCurveSpeedAggressiveness", PERSISTENT},
|
||||
{"AutoTurnControl", PERSISTENT},
|
||||
{"AutoTurnControlSpeedTurn", PERSISTENT},
|
||||
{"AutoTurnControlTurnEnd", PERSISTENT},
|
||||
{"AutoTurnMapChange", PERSISTENT },
|
||||
{"AutoNaviSpeedCtrlEnd", PERSISTENT},
|
||||
{"AutoNaviSpeedCtrlMode", PERSISTENT},
|
||||
{"AutoRoadSpeedLimitOffset", PERSISTENT},
|
||||
{"AutoNaviSpeedBumpTime", PERSISTENT},
|
||||
{"AutoNaviSpeedBumpSpeed", PERSISTENT},
|
||||
{"AutoNaviSpeedDecelRate", PERSISTENT},
|
||||
{"AutoNaviSpeedSafetyFactor", PERSISTENT},
|
||||
{"AutoNaviCountDownMode", PERSISTENT},
|
||||
{"TurnSpeedControlMode", PERSISTENT},
|
||||
{"CarrotSmartSpeedControl", PERSISTENT},
|
||||
{"MapTurnSpeedFactor", PERSISTENT},
|
||||
{"ModelTurnSpeedFactor", PERSISTENT},
|
||||
{"StoppingAccel", PERSISTENT},
|
||||
{"AutoSpeedUptoRoadSpeedLimit", PERSISTENT},
|
||||
{"AutoRoadSpeedAdjust", PERSISTENT},
|
||||
{"StopDistanceCarrot", PERSISTENT},
|
||||
{"ComfortBrake", PERSISTENT},
|
||||
{"JLeadFactor3", PERSISTENT},
|
||||
{"CruiseButtonMode", PERSISTENT},
|
||||
{"CancelButtonMode", PERSISTENT},
|
||||
{"LfaButtonMode", PERSISTENT},
|
||||
{"CruiseButtonTest1", PERSISTENT},
|
||||
{"CruiseButtonTest2", PERSISTENT},
|
||||
{"CruiseButtonTest3", PERSISTENT},
|
||||
{"CruiseSpeedUnit", PERSISTENT},
|
||||
{"CruiseSpeedUnitBasic", PERSISTENT},
|
||||
{"CruiseSpeed1", PERSISTENT},
|
||||
{"CruiseSpeed2", PERSISTENT},
|
||||
{"CruiseSpeed3", PERSISTENT},
|
||||
{"CruiseSpeed4", PERSISTENT},
|
||||
{"CruiseSpeed5", PERSISTENT},
|
||||
{"PaddleMode", PERSISTENT},
|
||||
{"MyDrivingMode", PERSISTENT},
|
||||
{"MyDrivingModeAuto", PERSISTENT},
|
||||
{"TrafficLightDetectMode", PERSISTENT},
|
||||
{"SteerActuatorDelay", PERSISTENT},
|
||||
{"LatSmoothSec", PERSISTENT},
|
||||
{"CruiseOnDist", PERSISTENT},
|
||||
{"CruiseMaxVals0", PERSISTENT},
|
||||
{"CruiseMaxVals1", PERSISTENT},
|
||||
{"CruiseMaxVals2", PERSISTENT},
|
||||
{"CruiseMaxVals3", PERSISTENT},
|
||||
{"CruiseMaxVals4", PERSISTENT},
|
||||
{"CruiseMaxVals5", PERSISTENT},
|
||||
{"CruiseMaxVals6", PERSISTENT},
|
||||
{"LongTuningKpV", PERSISTENT},
|
||||
{"LongTuningKiV", PERSISTENT},
|
||||
{"LongTuningKf", PERSISTENT},
|
||||
{"LongActuatorDelay", PERSISTENT },
|
||||
{"VEgoStopping", PERSISTENT },
|
||||
{"RadarReactionFactor", PERSISTENT},
|
||||
{"EnableRadarTracks", PERSISTENT},
|
||||
{"RadarLatFactor", PERSISTENT},
|
||||
{"EnableCornerRadar", PERSISTENT},
|
||||
{"EnableRadarTracksResult", PERSISTENT | CLEAR_ON_MANAGER_START},
|
||||
{"CanParserResult", CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION },
|
||||
{"HotspotOnBoot", PERSISTENT},
|
||||
{"SoftwareMenu", PERSISTENT},
|
||||
{"HyundaiCameraSCC", PERSISTENT},
|
||||
{"FingerPrints", PERSISTENT | CLEAR_ON_MANAGER_START},
|
||||
{"IsLdwsCar", PERSISTENT},
|
||||
{"CanfdHDA2", PERSISTENT},
|
||||
{"CanfdDebug", PERSISTENT},
|
||||
{"SoundVolumeAdjust", PERSISTENT},
|
||||
{"SoundVolumeAdjustEngage", PERSISTENT},
|
||||
{"TFollowGap1", PERSISTENT},
|
||||
{"TFollowGap2", PERSISTENT},
|
||||
{"TFollowGap3", PERSISTENT},
|
||||
{"TFollowGap4", PERSISTENT},
|
||||
{"DynamicTFollow", PERSISTENT},
|
||||
{"DynamicTFollowLC", PERSISTENT},
|
||||
{"AChangeCostStarting", PERSISTENT},
|
||||
{"TrafficStopDistanceAdjust", PERSISTENT},
|
||||
{"HapticFeedbackWhenSpeedCamera", PERSISTENT},
|
||||
{"UseLaneLineSpeed", PERSISTENT},
|
||||
{"UseLaneLineCurveSpeed", PERSISTENT},
|
||||
{"AdjustLaneOffset", PERSISTENT},
|
||||
{"LaneChangeNeedTorque", PERSISTENT},
|
||||
{"LaneChangeDelay", PERSISTENT },
|
||||
{"LaneChangeBsd", PERSISTENT},
|
||||
{"MaxAngleFrames", PERSISTENT},
|
||||
{"SoftHoldMode", PERSISTENT},
|
||||
{"LatMpcPathCost", PERSISTENT},
|
||||
{"LatMpcMotionCost", PERSISTENT},
|
||||
{"LatMpcAccelCost", PERSISTENT},
|
||||
{"LatMpcJerkCost", PERSISTENT},
|
||||
{"LatMpcSteeringRateCost", PERSISTENT },
|
||||
{"LatMpcInputOffset", PERSISTENT},
|
||||
{"PathOffset", PERSISTENT},
|
||||
{"LateralTorqueCustom", PERSISTENT},
|
||||
{"LateralTorqueAccelFactor", PERSISTENT},
|
||||
{"LateralTorqueFriction", PERSISTENT},
|
||||
{"LateralTorqueKpV", PERSISTENT},
|
||||
{"LateralTorqueKiV", PERSISTENT},
|
||||
{"LateralTorqueKf", PERSISTENT},
|
||||
{"LateralTorqueKd", PERSISTENT},
|
||||
{"CustomSteerMax", PERSISTENT},
|
||||
{"CustomSteerDeltaUp", PERSISTENT},
|
||||
{"CustomSteerDeltaDown", PERSISTENT},
|
||||
{"CustomSteerDeltaUpLC", PERSISTENT},
|
||||
{"CustomSteerDeltaDownLC", PERSISTENT},
|
||||
{"SpeedFromPCM", PERSISTENT},
|
||||
{"MaxTimeOffroadMin", PERSISTENT},
|
||||
{"DisableDM", PERSISTENT},
|
||||
{"EnableConnect", PERSISTENT},
|
||||
{"MuteDoor", PERSISTENT},
|
||||
{"MuteSeatbelt", PERSISTENT},
|
||||
{"CarrotException", CLEAR_ON_MANAGER_START},
|
||||
{"CarrotSpeed", PERSISTENT},
|
||||
{"CarrotSpeedViz", PERSISTENT},
|
||||
{"CarrotSpeedTable", PERSISTENT},
|
||||
{"CarName", PERSISTENT},
|
||||
{"EVTable", PERSISTENT},
|
||||
{"LongPitch", PERSISTENT},
|
||||
{"ActivateCruiseAfterBrake", CLEAR_ON_MANAGER_START}, // for GM autoResume
|
||||
{"CustomSR", PERSISTENT},
|
||||
{"SteerRatioRate", PERSISTENT},
|
||||
{"SoftRestartTriggered", CLEAR_ON_MANAGER_START},
|
||||
{"AutoCruiseControl", {PERSISTENT, INT, "0"}},
|
||||
{"CruiseEcoControl", {PERSISTENT, INT, "2"}},
|
||||
{"CarrotCruiseDecel", {PERSISTENT, INT, "-1"}},
|
||||
{"CarrotCruiseAtcDecel", {PERSISTENT, INT, "-1"}},
|
||||
{"CommaLongAcc", {PERSISTENT, INT, "0"}},
|
||||
|
||||
{"DevicePosition", CLEAR_ON_MANAGER_START},
|
||||
{"NNFF", PERSISTENT},
|
||||
{"NNFFLite", PERSISTENT},
|
||||
{"NNFFModelName", CLEAR_ON_OFFROAD_TRANSITION},
|
||||
{"AutoGasTokSpeed", {PERSISTENT, INT, "0"}},
|
||||
{"AutoGasSyncSpeed", {PERSISTENT, INT, "1"}},
|
||||
{"AutoEngage", {PERSISTENT, INT, "0"}},
|
||||
{"DisableMinSteerSpeed", {PERSISTENT, INT, "0"}},
|
||||
{"AutoCurveSpeedLowerLimit", {PERSISTENT, INT, "30"}},
|
||||
{"AutoCurveSpeedFactor", {PERSISTENT, INT, "120"}},
|
||||
{"AutoCurveSpeedAggressiveness", {PERSISTENT, INT, "100"}},
|
||||
|
||||
{"HardwareC3xLite", PERSISTENT},
|
||||
{"ShareData", PERSISTENT}
|
||||
{"AutoTurnControl", {PERSISTENT, INT, "0"}},
|
||||
{"AutoTurnControlSpeedTurn", {PERSISTENT, INT, "20"}},
|
||||
{"AutoTurnControlTurnEnd", {PERSISTENT, INT, "6"}},
|
||||
{"AutoTurnMapChange", {PERSISTENT, INT, "0"}},
|
||||
|
||||
{"AutoNaviSpeedCtrlEnd", {PERSISTENT, INT, "7"}},
|
||||
{"AutoNaviSpeedCtrlMode", {PERSISTENT, INT, "2"}},
|
||||
{"AutoRoadSpeedLimitOffset", {PERSISTENT, INT, "-1"}},
|
||||
{"AutoNaviSpeedBumpTime", {PERSISTENT, INT, "1"}},
|
||||
{"AutoNaviSpeedBumpSpeed", {PERSISTENT, INT, "35"}},
|
||||
{"AutoNaviSpeedDecelRate", {PERSISTENT, INT, "120"}},
|
||||
{"AutoNaviSpeedSafetyFactor", {PERSISTENT, INT, "105"}},
|
||||
{"AutoNaviCountDownMode", {PERSISTENT, INT, "2"}},
|
||||
{"TurnSpeedControlMode", {PERSISTENT, INT, "1"}},
|
||||
|
||||
{"CarrotSmartSpeedControl", {PERSISTENT, INT, "0"}},
|
||||
{"MapTurnSpeedFactor", {PERSISTENT, INT, "90"}},
|
||||
{"ModelTurnSpeedFactor", {PERSISTENT, INT, "0"}},
|
||||
{"StoppingAccel", {PERSISTENT, INT, "0"}},
|
||||
{"AutoSpeedUptoRoadSpeedLimit", {PERSISTENT, INT, "0"}},
|
||||
{"AutoRoadSpeedAdjust", {PERSISTENT, INT, "50"}},
|
||||
|
||||
{"StopDistanceCarrot", {PERSISTENT, INT, "550"}},
|
||||
{"JLeadFactor3", {PERSISTENT, INT, "0"}},
|
||||
{"CruiseButtonMode", {PERSISTENT, INT, "0"}},
|
||||
{"CancelButtonMode", {PERSISTENT, INT, "0"}},
|
||||
{"LfaButtonMode", {PERSISTENT, INT, "0"}},
|
||||
{"CruiseButtonTest1", {PERSISTENT, INT, "8"}},
|
||||
{"CruiseButtonTest2", {PERSISTENT, INT, "30"}},
|
||||
{"CruiseButtonTest3", {PERSISTENT, INT, "1"}},
|
||||
|
||||
{"CruiseSpeedUnit", {PERSISTENT, INT, "10"}},
|
||||
{"CruiseSpeedUnitBasic", {PERSISTENT, INT, "1"}},
|
||||
{"CruiseSpeed1", {PERSISTENT, INT, "30"}},
|
||||
{"CruiseSpeed2", {PERSISTENT, INT, "50"}},
|
||||
{"CruiseSpeed3", {PERSISTENT, INT, "80"}},
|
||||
{"CruiseSpeed4", {PERSISTENT, INT, "110"}},
|
||||
{"CruiseSpeed5", {PERSISTENT, INT, "130"}},
|
||||
|
||||
{"PaddleMode", {PERSISTENT, INT, "0"}},
|
||||
{"MyDrivingMode", {PERSISTENT, INT, "3"}},
|
||||
{"MyDrivingModeAuto", {PERSISTENT, INT, "0"}},
|
||||
{"TrafficLightDetectMode", {PERSISTENT, INT, "2"}},
|
||||
|
||||
{"SteerActuatorDelay", {PERSISTENT, INT, "0"}},
|
||||
{"LatSmoothSec", {PERSISTENT, INT, "13"}},
|
||||
{"CruiseOnDist", {PERSISTENT, INT, "400"}},
|
||||
|
||||
{"CruiseMaxVals0", {PERSISTENT, INT, "160"}},
|
||||
{"CruiseMaxVals1", {PERSISTENT, INT, "200"}},
|
||||
{"CruiseMaxVals2", {PERSISTENT, INT, "160"}},
|
||||
{"CruiseMaxVals3", {PERSISTENT, INT, "130"}},
|
||||
{"CruiseMaxVals4", {PERSISTENT, INT, "110"}},
|
||||
{"CruiseMaxVals5", {PERSISTENT, INT, "95"}},
|
||||
{"CruiseMaxVals6", {PERSISTENT, INT, "80"}},
|
||||
|
||||
{"LongTuningKpV", {PERSISTENT, INT, "100"}},
|
||||
{"LongTuningKiV", {PERSISTENT, INT, "0"}},
|
||||
{"LongTuningKf", {PERSISTENT, INT, "100"}},
|
||||
{"LongActuatorDelay", {PERSISTENT, INT, "20"}},
|
||||
{"VEgoStopping", {PERSISTENT, INT, "50"}},
|
||||
|
||||
{"RadarReactionFactor", {PERSISTENT, INT, "100"}},
|
||||
{"EnableRadarTracks", {PERSISTENT, INT, "0"}},
|
||||
{"RadarLatFactor", {PERSISTENT, INT, "0"}},
|
||||
{"EnableCornerRadar", {PERSISTENT, INT, "0"}},
|
||||
|
||||
{"EnableRadarTracksResult", {PERSISTENT | CLEAR_ON_MANAGER_START, INT}},
|
||||
{"CanParserResult", {CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION, STRING}},
|
||||
|
||||
{"HotspotOnBoot", {PERSISTENT, INT, "0"}},
|
||||
{"SoftwareMenu", {PERSISTENT, INT, "1"}},
|
||||
|
||||
{"HyundaiCameraSCC", {PERSISTENT, INT, "0"}},
|
||||
{"FingerPrints", {PERSISTENT | CLEAR_ON_MANAGER_START, STRING}},
|
||||
{"IsLdwsCar", {PERSISTENT, INT, "0"}},
|
||||
{"CanfdHDA2", {PERSISTENT, INT, "0"}},
|
||||
{"CanfdDebug", {PERSISTENT, INT, "0"}},
|
||||
|
||||
{"SoundVolumeAdjust", {PERSISTENT, INT, "100"}},
|
||||
{"SoundVolumeAdjustEngage", {PERSISTENT, INT, "10"}},
|
||||
|
||||
{"TFollowGap1", {PERSISTENT, INT, "110"}},
|
||||
{"TFollowGap2", {PERSISTENT, INT, "120"}},
|
||||
{"TFollowGap3", {PERSISTENT, INT, "140"}},
|
||||
{"TFollowGap4", {PERSISTENT, INT, "160"}},
|
||||
|
||||
{"DynamicTFollow", {PERSISTENT, INT, "0"}},
|
||||
{"DynamicTFollowLC", {PERSISTENT, INT, "100"}},
|
||||
{"EnableSpeedTF", {PERSISTENT, INT, "0"}},
|
||||
{"AChangeCostStarting", {PERSISTENT, INT, "10"}},
|
||||
{"TrafficStopDistanceAdjust", {PERSISTENT, INT, "400"}},
|
||||
|
||||
{"HapticFeedbackWhenSpeedCamera", {PERSISTENT, INT, "0"}},
|
||||
{"UseLaneLineSpeed", {PERSISTENT, INT, "0"}},
|
||||
{"UseLaneLineCurveSpeed", {PERSISTENT, INT, "0"}},
|
||||
|
||||
{"AdjustLaneOffset", {PERSISTENT, INT, "0"}},
|
||||
{"LaneChangeNeedTorque", {PERSISTENT, INT, "0"}},
|
||||
{"LaneChangeDelay", {PERSISTENT, INT, "0"}},
|
||||
{"LaneChangeBsd", {PERSISTENT, INT, "0"}},
|
||||
{"MaxAngleFrames", {PERSISTENT, INT, "89"}},
|
||||
|
||||
{"SoftHoldMode", {PERSISTENT, INT, "0"}},
|
||||
|
||||
{"LatMpcPathCost", {PERSISTENT, INT, "200"}},
|
||||
{"LatMpcMotionCost", {PERSISTENT, INT, "7"}},
|
||||
{"LatMpcAccelCost", {PERSISTENT, INT, "120"}},
|
||||
{"LatMpcJerkCost", {PERSISTENT, INT, "4"}},
|
||||
{"LatMpcSteeringRateCost", {PERSISTENT, INT, "7"}},
|
||||
{"LatMpcInputOffset", {PERSISTENT, INT, "4"}},
|
||||
|
||||
{"PathOffset", {PERSISTENT, INT, "0"}},
|
||||
|
||||
{"LateralTorqueCustom", {PERSISTENT, INT, "0"}},
|
||||
{"LateralTorqueAccelFactor", {PERSISTENT, INT, "2500"}},
|
||||
{"LateralTorqueFriction", {PERSISTENT, INT, "100"}},
|
||||
{"LateralTorqueKpV", {PERSISTENT, INT, "100"}},
|
||||
{"LateralTorqueKiV", {PERSISTENT, INT, "10"}},
|
||||
{"LateralTorqueKf", {PERSISTENT, INT, "100"}},
|
||||
{"LateralTorqueKd", {PERSISTENT, INT, "0"}},
|
||||
|
||||
{"CustomSteerMax", {PERSISTENT, INT, "0"}},
|
||||
{"CustomSteerDeltaUp", {PERSISTENT, INT, "0"}},
|
||||
{"CustomSteerDeltaDown", {PERSISTENT, INT, "0"}},
|
||||
{"CustomSteerDeltaUpLC", {PERSISTENT, INT, "0"}},
|
||||
{"CustomSteerDeltaDownLC", {PERSISTENT, INT, "0"}},
|
||||
|
||||
{"SpeedFromPCM", {PERSISTENT, INT, "2"}},
|
||||
{"MaxTimeOffroadMin", {PERSISTENT, INT, "60"}},
|
||||
|
||||
{"DisableDM", {PERSISTENT, INT, "0"}},
|
||||
{"EnableConnect", {PERSISTENT, INT, "0"}},
|
||||
{"MuteDoor", {PERSISTENT, INT, "0"}},
|
||||
{"MuteSeatbelt", {PERSISTENT, INT, "0"}},
|
||||
|
||||
{"CarrotException", {CLEAR_ON_MANAGER_START, STRING}},
|
||||
|
||||
{"CarrotSpeed", {PERSISTENT, INT} },
|
||||
{"CarrotSpeedViz", {PERSISTENT, JSON} },
|
||||
{"CarrotSpeedTable", {PERSISTENT, BYTES} },
|
||||
{"CarName", {PERSISTENT, STRING}},
|
||||
{"EVTable", {PERSISTENT, BOOL, "0"}},
|
||||
{"LongPitch", {PERSISTENT, BOOL, "0"}},
|
||||
|
||||
{"ActivateCruiseAfterBrake", {CLEAR_ON_MANAGER_START, INT, "0"}},
|
||||
|
||||
{"CustomSR", {PERSISTENT, INT, "0"}},
|
||||
{"SteerRatioRate", {PERSISTENT, INT, "100"}},
|
||||
|
||||
{"SoftRestartTriggered", {CLEAR_ON_MANAGER_START, INT}},
|
||||
|
||||
{"DevicePosition", {CLEAR_ON_MANAGER_START, STRING}},
|
||||
{"NNFF", {PERSISTENT, INT, "0"}},
|
||||
{"NNFFLite", {PERSISTENT, INT, "0"}},
|
||||
{"NNFFModelName", {CLEAR_ON_OFFROAD_TRANSITION, STRING}},
|
||||
|
||||
{"HardwareC3xLite", {PERSISTENT, INT, "0"}},
|
||||
{"ShareData", {PERSISTENT, INT, "0"}},
|
||||
};
|
||||
|
||||
+83
-10
@@ -1,18 +1,34 @@
|
||||
# distutils: language = c++
|
||||
# cython: language_level = 3
|
||||
import builtins
|
||||
import datetime
|
||||
import json
|
||||
from libcpp cimport bool
|
||||
from libcpp.string cimport string
|
||||
from libcpp.vector cimport vector
|
||||
from libcpp.optional cimport optional
|
||||
|
||||
from openpilot.common.swaglog import cloudlog
|
||||
|
||||
cdef extern from "common/params.h":
|
||||
cpdef enum ParamKeyType:
|
||||
cpdef enum ParamKeyFlag:
|
||||
PERSISTENT
|
||||
CLEAR_ON_MANAGER_START
|
||||
CLEAR_ON_ONROAD_TRANSITION
|
||||
CLEAR_ON_OFFROAD_TRANSITION
|
||||
DEVELOPMENT_ONLY
|
||||
CLEAR_ON_IGNITION_ON
|
||||
ALL
|
||||
|
||||
cpdef enum ParamKeyType:
|
||||
STRING
|
||||
BOOL
|
||||
INT
|
||||
FLOAT
|
||||
TIME
|
||||
JSON
|
||||
BYTES
|
||||
|
||||
cdef cppclass c_Params "Params":
|
||||
c_Params(string) except + nogil
|
||||
string get(string, bool) nogil
|
||||
@@ -29,10 +45,31 @@ cdef extern from "common/params.h":
|
||||
int putInt(string, int) nogil
|
||||
int putFloat(string, float) nogil
|
||||
bool checkKey(string) nogil
|
||||
ParamKeyType getKeyType(string) nogil
|
||||
optional[string] getKeyDefaultValue(string) nogil
|
||||
string getParamPath(string) nogil
|
||||
void clearAll(ParamKeyType)
|
||||
void clearAll(ParamKeyFlag)
|
||||
vector[string] allKeys()
|
||||
|
||||
PYTHON_2_CPP = {
|
||||
(str, STRING): lambda v: v,
|
||||
(builtins.bool, BOOL): lambda v: "1" if v else "0",
|
||||
(int, INT): str,
|
||||
(float, FLOAT): str,
|
||||
(datetime.datetime, TIME): lambda v: v.isoformat(),
|
||||
(dict, JSON): json.dumps,
|
||||
(list, JSON): json.dumps,
|
||||
(bytes, BYTES): lambda v: v,
|
||||
}
|
||||
CPP_2_PYTHON = {
|
||||
STRING: lambda v: v.decode("utf-8"),
|
||||
BOOL: lambda v: v == b"1",
|
||||
INT: int,
|
||||
FLOAT: float,
|
||||
TIME: lambda v: datetime.datetime.fromisoformat(v.decode("utf-8")),
|
||||
JSON: json.loads,
|
||||
BYTES: lambda v: v,
|
||||
}
|
||||
|
||||
def ensure_bytes(v):
|
||||
return v.encode() if isinstance(v, str) else v
|
||||
@@ -56,8 +93,8 @@ cdef class Params:
|
||||
def __dealloc__(self):
|
||||
del self.p
|
||||
|
||||
def clear_all(self, tx_type=ParamKeyType.ALL):
|
||||
self.p.clearAll(tx_type)
|
||||
def clear_all(self, tx_flag=ParamKeyFlag.ALL):
|
||||
self.p.clearAll(tx_flag)
|
||||
|
||||
def check_key(self, key):
|
||||
key = ensure_bytes(key)
|
||||
@@ -65,21 +102,38 @@ cdef class Params:
|
||||
raise UnknownKeyName(key)
|
||||
return key
|
||||
|
||||
def get(self, key, bool block=False, encoding=None):
|
||||
def python2cpp(self, proposed_type, expected_type, value, key):
|
||||
cast = PYTHON_2_CPP.get((proposed_type, expected_type))
|
||||
if cast:
|
||||
return cast(value)
|
||||
raise TypeError(f"Type mismatch while writing param {key}: {proposed_type=} {expected_type=} {value=}")
|
||||
|
||||
def _cpp2python(self, t, value, default, key):
|
||||
if value is None:
|
||||
return None
|
||||
try:
|
||||
return CPP_2_PYTHON[t](value)
|
||||
except (KeyError, TypeError, ValueError):
|
||||
cloudlog.warning(f"Failed to cast param {key} with {value=} from type {t=}")
|
||||
return self._cpp2python(t, default, None, key)
|
||||
|
||||
def get(self, key, bool block=False, bool return_default=False):
|
||||
cdef string k = self.check_key(key)
|
||||
cdef ParamKeyType t = self.p.getKeyType(k)
|
||||
cdef optional[string] default = self.p.getKeyDefaultValue(k)
|
||||
cdef string val
|
||||
with nogil:
|
||||
val = self.p.get(k, block)
|
||||
|
||||
default_val = (default.value() if default.has_value() else None) if return_default else None
|
||||
if val == b"":
|
||||
if block:
|
||||
# If we got no value while running in blocked mode
|
||||
# it means we got an interrupt while waiting
|
||||
raise KeyboardInterrupt
|
||||
else:
|
||||
return None
|
||||
|
||||
return val if encoding is None else val.decode(encoding)
|
||||
return self._cpp2python(t, default_val, None, key)
|
||||
return self._cpp2python(t, val, default_val, key)
|
||||
|
||||
def get_bool(self, key, bool block=False):
|
||||
cdef string k = self.check_key(key)
|
||||
@@ -88,6 +142,11 @@ cdef class Params:
|
||||
r = self.p.getBool(k, block)
|
||||
return r
|
||||
|
||||
def _put_cast(self, key, dat):
|
||||
cdef string k = self.check_key(key)
|
||||
cdef ParamKeyType t = self.p.getKeyType(k)
|
||||
return ensure_bytes(self.python2cpp(type(dat), t, dat, key))
|
||||
|
||||
def get_int(self, key, bool block=False):
|
||||
cdef string k = self.check_key(key)
|
||||
cdef int r
|
||||
@@ -110,7 +169,7 @@ cdef class Params:
|
||||
in general try to avoid writing params as much as possible.
|
||||
"""
|
||||
cdef string k = self.check_key(key)
|
||||
cdef string dat_bytes = ensure_bytes(dat)
|
||||
cdef string dat_bytes = self._put_cast(key, dat)
|
||||
with nogil:
|
||||
self.p.put(k, dat_bytes)
|
||||
|
||||
@@ -131,7 +190,7 @@ cdef class Params:
|
||||
|
||||
def put_nonblocking(self, key, dat):
|
||||
cdef string k = self.check_key(key)
|
||||
cdef string dat_bytes = ensure_bytes(dat)
|
||||
cdef string dat_bytes = self._put_cast(key, dat)
|
||||
with nogil:
|
||||
self.p.putNonBlocking(k, dat_bytes)
|
||||
|
||||
@@ -159,5 +218,19 @@ cdef class Params:
|
||||
cdef string key_bytes = ensure_bytes(key)
|
||||
return self.p.getParamPath(key_bytes).decode("utf-8")
|
||||
|
||||
def get_type(self, key):
|
||||
return self.p.getKeyType(self.check_key(key))
|
||||
|
||||
def all_keys(self):
|
||||
return self.p.allKeys()
|
||||
|
||||
def get_default_value(self, key):
|
||||
cdef string k = self.check_key(key)
|
||||
cdef ParamKeyType t = self.p.getKeyType(k)
|
||||
cdef optional[string] default = self.p.getKeyDefaultValue(k)
|
||||
return self._cpp2python(t, default.value(), None, key) if default.has_value() else None
|
||||
|
||||
def cpp2python(self, key, value):
|
||||
cdef string k = self.check_key(key)
|
||||
cdef ParamKeyType t = self.p.getKeyType(k)
|
||||
return self._cpp2python(t, value, None, key)
|
||||
|
||||
Reference in New Issue
Block a user