mirror of
https://github.com/sunnypilot/sunnypilot.git
synced 2026-07-21 01:42:52 +08:00
2d35bd895f
* 1
* fix
* uh
* more
* for now
* v2
* update
* more subs
* readme
* vehicle
* cycle init
* options
* new
* combine
* new
* dynamic unit
* default
* move it
* syncing more
* more
* boom shakalaka
* rearrange
* partial availability
* move
* more
* more
* hide
* move
* revert
* more
* new
* set
* sync
* dynamic
* slightly more
* update
* update
* less
* in another pr
* more
* move and fix
* device type
* order
* order
* order
* fixes
* ew
* Revert "fixes"
This reverts commit 53a2adb45a.
* sunnylink: bundle-first capabilities + protocol_version
Bundle-first brand resolution, fix steer_control_type to use
CP.steerControlType (physical) not lateralTuning.which() (tuning class),
add Subaru/Hyundai opaque per-platform flags from CarPlatformBundle, and
embed PROTOCOL_VERSION in the capabilities payload.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* sunnylink: tighten settings_ui gates against Raylib parity
Brand gates on MadsMainCruiseAllowed/MadsUnifiedEngagementMode (rivian +
tesla-no-bus); convert enablement->visibility on items Raylib hides
(DisableUpdates, EnableGithubRunner, EnableCopyparty, QuickBootToggle,
HyundaiLongitudinalTuning, LaneTurnValue, LagdToggleDelay); drop spurious
offroad_only on DynamicExperimentalControl + DisengageOnAccelerator and
SpeedLimit policy/offset over-gates; replace offroad_only with not_engaged
on AlphaLongitudinalEnabled/Toyota long toggles; extend release-branch
NOTs with is_sp_release; add Test Maneuvers section with attestation,
move LongitudinalManeuverMode in alongside new LateralManeuverMode.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* sunnylink: extend settings_ui validator for new fields
Add SchemaItem fields title_param_suffix (object form), needs_onroad_cycle,
blocked, requires_attestation; add option-level enablement to SchemaOption;
add visibility/enablement/attestation_required to PanelSection; add
not_engaged Rule type; replace vehicle_settings inline shape with
VehicleBrandSettings def (title/description/items).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* sunnylink: inject torque tune options from versions JSON
Read latcontrol_torque_versions.json at schema generation time and
override TorqueControlTune options so adding a version to the JSON
flows to the dashboard without editing settings_ui.json by hand.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* sunnylink: per-bug regression tests for settings_ui parity
Cover the audit findings end-to-end: MADS brand gates, Test Maneuvers
section + attestation, validator accepts the JSON, dynamic torque
options match the versions JSON, SP dev items gate on is_sp_release as
well as is_release, spurious offroad_only dropped from
DisengageOnAccelerator and DynamicExperimentalControl, and offroad_only
replaced with not_engaged on AlphaLongitudinalEnabled and the Toyota
long toggles. Validator test skips when jsonschema is unavailable.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* sunnylink: protocol_version sentinel + opaque-flag tests
Pin PROTOCOL_VERSION to KNOWN_PROTOCOL_VERSIONS so a bump shows up in
review, and assert subaru_has_sng / hyundai_alpha_long_available are
declared with safe False defaults.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* schema: convert ShowAdvancedControls visibility to enablement
Items previously hidden when ShowAdvancedControls is off now render
as disabled with an ADVANCED tooltip. Same treatment for dependency-
based hides (LagdToggleDelay, LaneTurnValue) so users see what's
available and why it's locked. CameraOffset gets the Advanced gate it
was missing.
Affected: DisableUpdates, EnableGithubRunner, EnableCopyparty,
QuickBootToggle, LaneTurnValue, LagdToggleDelay, CameraOffset, and the
test_maneuvers section.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* sunnylink: route resume_queued to athena direct
Backend is retiring the CloudFront proxy on stg.api.sunnypilot.ai that
currently forwards ws|settings|navigation to athena.sunnylink.ai. Once
retired, /ws/{id}/resume_queued only resolves via athena.sunnylink.ai.
SunnylinkApi.resume_queued now temporarily swaps self.api_host to
ATHENA_HOST while re-entering api_get (preserves the SunnylinkEnabled
gate and existing JWT/UA header handling). Other device calls
(device/{id}/roles, device/{id}/users, v2/pilotauth/, backups) continue
to hit the sunnylink main API host unchanged.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* legacy code
* no
* new
* tests
* lint
* fix
* too verbose
* sunnylink: per-page YAML authoring for settings_ui + named rule macros
Replace hand-edited 2200-line settings_ui.json with a per-page YAML source
tree under settings_ui_src/, plus named rule fragments (`$ref` macros) so
the same condition isn't repeated verbatim across items.
Authoring surface (settings_ui_src/):
pages/<page>.yaml one file per panel; sections/items/sub_panels inline
pages/vehicle.yaml per-brand settings (kind: vehicle -> vehicle_settings)
_macros.yaml named rule fragments referenced via {$ref: "#/macros/<name>"}
_schemas/*.json JSON Schemas for IDE autocomplete + CI validation
Pages today: steering, cruise, display, visuals, toggles, device, software,
developer, models, vehicle (10).
Tools:
compile_settings_ui.py read src tree, resolve $refs, emit settings_ui.json
(--check mode for CI to fail on hand-edits)
extract_settings_ui.py one-shot: settings_ui.json -> per-page YAML
apply_macros.py one-shot: substitute matching rule blocks with $ref
Rule-block dedup wins (top duplicates collapsed to single macros):
offroad (9x), longitudinal (4x), longitudinal_and_icbm (5x),
hide_on_mici (4x), advanced_only (3x), mads_full_platforms (4x ~30-line
nested any/all/not -> 1 macro + 4x one-line $ref).
Validator drift fixes:
- Accept not_engaged rule type (already in schema.json + used by
AlphaLongitudinalEnabled, ToyotaEnforceStockLongitudinal,
ToyotaStopAndGoHack, LateralManeuverMode, LongitudinalManeuverMode).
- Enforce {title, description, items} shape on every vehicle brand
instead of allowing bare-list variants.
Wire format unchanged: compiled settings_ui.json structurally identical to
the prior hand-edited file, so the device generator (generate_settings_schema.py),
SettingsCapabilities, and frontend renderer all keep working without changes.
Tests: 16 new compiler tests (roundtrip, $ref semantics, depth/cycle limits,
page-tree integrity, vehicle kind routing). Existing 42 regression tests in
test_settings_changes.py and test_settings_schema.py remain green.
README rewritten for the new flow:
- Decision table for offroad_only / not_engaged / param / capability
- Multi-condition composition examples (AND/OR/mixed/3-way/negation)
- Full feature walkthrough (multi-toggle + sub_panel + new macro)
- Workflows for changing rules, widget type, deprecating an item
- All How-To examples migrated from JSON to YAML
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* sunnylink: add `details` field for popover/modal help text
Adds an optional `details` field on settings items, distinct from the inline
`description`. When present, the frontend renders an info ("i") button on the
row that opens a modal with this content. Either field may be present alone,
or both together; an item with only `details` and no `description` shows just
the title + info button (no inline body).
Migrates `AutoLaneChangeTimer` as the first user: the safety caveat
("Please use caution when using this feature. Only use the blinker when
traffic and road conditions permit.") moves out of the inline description
into `details`, leaving the description focused on what the timer actually
does.
Schema changes:
- settings_ui.schema.json: SchemaItem.details (string, optional)
- settings_ui_src/_schemas/page.schema.json: Item.details (mirror)
- compile_settings_ui.py / extract_settings_ui.py: ordered after description
Frontend support lands in sunnylink-frontend on the design-overhaul branch.
Old frontends ignore the unknown key.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* ui: refactor UIStateSP init to eliminate getattr and double update_params
- Remove update_params() and reset_onroad_sleep_timer() from UIStateSP.__init__;
__init__ is now pure attr initialization with no I/O or side effects
- Add _sp_initialized flag to UIStateSP.update_params() to fire
reset_onroad_sleep_timer() exactly once after first real param load,
keeping the call in SP territory and out of stock _initialize()
- Replace getattr(self, 'has_longitudinal_control') / getattr(self, 'CP')
in _enforce_constraints with direct attr access; safe because
_enforce_constraints is only called from update_params(), which only
runs after UIState._initialize() has set both attrs
- Rename _enforce_sp_constraints → _enforce_constraints
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* fix
* exec
* more exec
* humanize
* sync
---------
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
281 lines
15 KiB
C++
281 lines
15 KiB
C++
#pragma once
|
|
|
|
#include <string>
|
|
#include <unordered_map>
|
|
|
|
#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 | BACKUP, BOOL}},
|
|
{"AlwaysOnDM", {PERSISTENT | BACKUP, 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 | BACKUP, BOOL}},
|
|
{"DisableUpdates", {PERSISTENT | BACKUP, BOOL, "0"}},
|
|
{"DisengageOnAccelerator", {PERSISTENT | BACKUP, 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 | BACKUP, BOOL}},
|
|
{"ExperimentalMode", {PERSISTENT | BACKUP, BOOL}},
|
|
{"ExperimentalModeConfirmed", {PERSISTENT | BACKUP, 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 | BACKUP, STRING}},
|
|
{"GithubUsername", {PERSISTENT | BACKUP, STRING}},
|
|
{"GitRemote", {PERSISTENT, STRING}},
|
|
{"GsmApn", {PERSISTENT | BACKUP, STRING}},
|
|
{"GsmMetered", {PERSISTENT | BACKUP, BOOL, "1"}},
|
|
{"GsmRoaming", {PERSISTENT | BACKUP, BOOL}},
|
|
{"HardwareSerial", {PERSISTENT, STRING}},
|
|
{"HasAcceptedTerms", {PERSISTENT, STRING, "0"}},
|
|
{"InstallDate", {PERSISTENT, TIME}},
|
|
{"IsDriverViewEnabled", {CLEAR_ON_MANAGER_START, BOOL}},
|
|
{"IsEngaged", {PERSISTENT, BOOL}},
|
|
{"IsLdwEnabled", {PERSISTENT | BACKUP, BOOL}},
|
|
{"IsMetric", {PERSISTENT | BACKUP, 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 | BACKUP, 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}},
|
|
{"LastAgnosPowerMonitorShutdown", {CLEAR_ON_MANAGER_START, STRING}},
|
|
{"LastPowerDropDetected", {CLEAR_ON_MANAGER_START, STRING}},
|
|
{"LastUpdateException", {CLEAR_ON_MANAGER_START, STRING}},
|
|
{"LastUpdateRouteCount", {PERSISTENT, INT, "0"}},
|
|
{"LastUpdateTime", {PERSISTENT, TIME}},
|
|
{"LastUpdateUptimeOnroad", {PERSISTENT, FLOAT, "0.0"}},
|
|
{"LiveDelay", {PERSISTENT | BACKUP, BYTES}},
|
|
{"LiveParameters", {PERSISTENT, JSON}},
|
|
{"LiveParametersV2", {PERSISTENT, BYTES}},
|
|
{"LiveTorqueParameters", {PERSISTENT | DONT_LOG, BYTES}},
|
|
{"LocationFilterInitialState", {PERSISTENT, BYTES}},
|
|
{"LateralManeuverMode", {CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION, BOOL}},
|
|
{"LongitudinalManeuverMode", {CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION, BOOL}},
|
|
{"LongitudinalPersonality", {PERSISTENT | BACKUP, INT, std::to_string(static_cast<int>(cereal::LongitudinalPersonality::STANDARD))}},
|
|
{"NetworkMetered", {PERSISTENT | BACKUP, BOOL}},
|
|
{"ObdMultiplexingChanged", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, BOOL}},
|
|
{"ObdMultiplexingEnabled", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, 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_ExcessiveActuation", {PERSISTENT, 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_TemperatureTooHigh", {CLEAR_ON_MANAGER_START, JSON}},
|
|
{"Offroad_UnregisteredHardware", {CLEAR_ON_MANAGER_START, JSON}},
|
|
{"Offroad_UpdateFailed", {CLEAR_ON_MANAGER_START, JSON}},
|
|
{"Offroad_DriverMonitoringUncertain", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, JSON}},
|
|
{"OnroadCycleRequested", {CLEAR_ON_MANAGER_START, BOOL}},
|
|
{"OpenpilotEnabledToggle", {PERSISTENT | BACKUP, 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 | BACKUP, BOOL}},
|
|
{"RecordAudioFeedback", {PERSISTENT | BACKUP, BOOL, "0"}},
|
|
{"RecordFront", {PERSISTENT | BACKUP, BOOL}},
|
|
{"RecordFrontLock", {PERSISTENT, BOOL}}, // for the internal fleet
|
|
{"SecOCKey", {PERSISTENT | DONT_LOG | BACKUP, STRING}},
|
|
{"ShowDebugInfo", {PERSISTENT, BOOL}},
|
|
{"RouteCount", {PERSISTENT, INT, "0"}},
|
|
{"SnoozeUpdate", {CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION, BOOL}},
|
|
{"SshEnabled", {PERSISTENT | BACKUP, BOOL}},
|
|
{"TermsVersion", {PERSISTENT, STRING}},
|
|
{"TorqueBar", {PERSISTENT | BACKUP, BOOL, "0"}},
|
|
{"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}},
|
|
{"UptimeOffroad", {PERSISTENT, FLOAT, "0.0"}},
|
|
{"UptimeOnroad", {PERSISTENT, FLOAT, "0.0"}},
|
|
{"Version", {PERSISTENT, STRING}},
|
|
|
|
// --- sunnypilot params --- //
|
|
{"ApiCache_DriveStats", {PERSISTENT, JSON}},
|
|
{"AutoLaneChangeBsmDelay", {PERSISTENT | BACKUP, BOOL, "0"}},
|
|
{"AutoLaneChangeTimer", {PERSISTENT | BACKUP, INT, "0"}},
|
|
{"BlinkerLateralReengageDelay", {PERSISTENT | BACKUP, INT, "0"}}, // seconds
|
|
{"BlinkerMinLateralControlSpeed", {PERSISTENT | BACKUP, INT, "20"}}, // MPH or km/h
|
|
{"BlinkerPauseLateralControl", {PERSISTENT | BACKUP, INT, "0"}},
|
|
{"Brightness", {PERSISTENT | BACKUP, INT, "0"}},
|
|
{"CarList", {PERSISTENT, JSON}},
|
|
{"CarParamsSP", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, BYTES}},
|
|
{"CarParamsSPCache", {CLEAR_ON_MANAGER_START, BYTES}},
|
|
{"CarParamsSPPersistent", {PERSISTENT, BYTES}},
|
|
{"CarPlatformBundle", {PERSISTENT | BACKUP, JSON}},
|
|
{"ChevronInfo", {PERSISTENT | BACKUP, INT, "4"}},
|
|
{"CompletedSunnylinkConsentVersion", {PERSISTENT, STRING, "0"}},
|
|
{"CustomAccIncrementsEnabled", {PERSISTENT | BACKUP, BOOL, "0"}},
|
|
{"CustomAccLongPressIncrement", {PERSISTENT | BACKUP, INT, "5"}},
|
|
{"CustomAccShortPressIncrement", {PERSISTENT | BACKUP, INT, "1"}},
|
|
{"DeviceBootMode", {PERSISTENT | BACKUP, INT, "0"}},
|
|
{"DevUIInfo", {PERSISTENT | BACKUP, INT, "0"}},
|
|
{"EnableCopyparty", {PERSISTENT | BACKUP, BOOL}},
|
|
{"EnableGithubRunner", {PERSISTENT | BACKUP, BOOL}},
|
|
{"GreenLightAlert", {PERSISTENT | BACKUP, BOOL, "0"}},
|
|
{"GithubRunnerSufficientVoltage", {CLEAR_ON_MANAGER_START , BOOL}},
|
|
{"HasAcceptedTermsSP", {PERSISTENT, STRING, "0"}},
|
|
{"HideVEgoUI", {PERSISTENT | BACKUP, BOOL, "0"}},
|
|
{"IntelligentCruiseButtonManagement", {PERSISTENT | BACKUP , BOOL}},
|
|
{"InteractivityTimeout", {PERSISTENT | BACKUP, INT, "0"}},
|
|
{"IsDevelopmentBranch", {CLEAR_ON_MANAGER_START, BOOL}},
|
|
{"IsReleaseSpBranch", {CLEAR_ON_MANAGER_START, BOOL}},
|
|
{"LastGPSPositionLLK", {PERSISTENT, STRING}},
|
|
{"LeadDepartAlert", {PERSISTENT | BACKUP, BOOL, "0"}},
|
|
{"MaxTimeOffroad", {PERSISTENT | BACKUP, INT, "1800"}},
|
|
{"ModelRunnerTypeCache", {CLEAR_ON_ONROAD_TRANSITION, INT}},
|
|
{"OffroadMode", {CLEAR_ON_MANAGER_START, BOOL}},
|
|
{"Offroad_TiciSupport", {CLEAR_ON_MANAGER_START, JSON}},
|
|
{"OnroadScreenOffBrightness", {PERSISTENT | BACKUP, INT, "0"}},
|
|
{"OnroadScreenOffBrightnessMigrated", {PERSISTENT | BACKUP, STRING, "0.0"}},
|
|
{"OnroadScreenOffTimer", {PERSISTENT | BACKUP, INT, "15"}},
|
|
{"OnroadScreenOffTimerMigrated", {PERSISTENT | BACKUP, STRING, "0.0"}},
|
|
{"OnroadUploads", {PERSISTENT | BACKUP, BOOL, "1"}},
|
|
{"QuickBootToggle", {PERSISTENT | BACKUP, BOOL, "0"}},
|
|
{"QuietMode", {PERSISTENT | BACKUP, BOOL, "0"}},
|
|
{"RainbowMode", {PERSISTENT | BACKUP, BOOL, "0"}},
|
|
{"RocketFuel", {PERSISTENT | BACKUP, BOOL, "0"}},
|
|
{"ShowAdvancedControls", {PERSISTENT | BACKUP, BOOL, "0"}},
|
|
{"ShowTurnSignals", {PERSISTENT | BACKUP, BOOL, "0"}},
|
|
{"StandstillTimer", {PERSISTENT | BACKUP, BOOL, "0"}},
|
|
{"TrueVEgoUI", {PERSISTENT | BACKUP, BOOL, "0"}},
|
|
|
|
// MADS params
|
|
{"Mads", {PERSISTENT | BACKUP, BOOL, "1"}},
|
|
{"MadsMainCruiseAllowed", {PERSISTENT | BACKUP, BOOL, "1"}},
|
|
{"MadsSteeringMode", {PERSISTENT | BACKUP, INT, "0"}},
|
|
{"MadsUnifiedEngagementMode", {PERSISTENT | BACKUP, BOOL, "1"}},
|
|
|
|
// Model Manager params
|
|
{"ModelManager_ActiveBundle", {PERSISTENT, JSON}},
|
|
{"ModelManager_ClearCache", {CLEAR_ON_MANAGER_START, BOOL}},
|
|
{"ModelManager_DownloadIndex", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, INT}},
|
|
{"ModelManager_Favs", {PERSISTENT | BACKUP, STRING}},
|
|
{"ModelManager_LastSyncTime", {CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION, INT, "0"}},
|
|
{"ModelManager_ModelsCache", {PERSISTENT | BACKUP, JSON}},
|
|
|
|
// Neural Network Lateral Control
|
|
{"NeuralNetworkLateralControl", {PERSISTENT | BACKUP, BOOL, "0"}},
|
|
|
|
// sunnylink params
|
|
{"EnableSunnylinkUploader", {PERSISTENT | BACKUP, BOOL}},
|
|
{"LastSunnylinkPingTime", {CLEAR_ON_MANAGER_START, INT}},
|
|
{"ParamsVersion", {PERSISTENT, INT}},
|
|
{"SunnylinkCache_Roles", {PERSISTENT, STRING}},
|
|
{"SunnylinkCache_Users", {PERSISTENT, STRING}},
|
|
{"SunnylinkDongleId", {PERSISTENT, STRING}},
|
|
{"SunnylinkdPid", {PERSISTENT, INT}},
|
|
{"SunnylinkEnabled", {PERSISTENT, BOOL, "1"}},
|
|
{"SunnylinkTempFault", {CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION, BOOL, "0"}},
|
|
|
|
// Backup Manager params
|
|
{"BackupManager_CreateBackup", {PERSISTENT, BOOL}},
|
|
{"BackupManager_RestoreVersion", {PERSISTENT, STRING}},
|
|
|
|
// sunnypilot car specific params
|
|
{"HyundaiLongitudinalTuning", {PERSISTENT | BACKUP, INT, "0"}},
|
|
{"SubaruStopAndGo", {PERSISTENT | BACKUP, BOOL, "0"}},
|
|
{"SubaruStopAndGoManualParkingBrake", {PERSISTENT | BACKUP, BOOL, "0"}},
|
|
{"TeslaCoopSteering", {PERSISTENT | BACKUP, BOOL, "0"}},
|
|
{"ToyotaEnforceStockLongitudinal", {PERSISTENT | BACKUP, BOOL, "0"}},
|
|
{"ToyotaStopAndGoHack", {PERSISTENT | BACKUP, BOOL, "0"}},
|
|
|
|
{"DynamicExperimentalControl", {PERSISTENT | BACKUP, BOOL, "0"}},
|
|
{"BlindSpot", {PERSISTENT | BACKUP, BOOL, "0"}},
|
|
|
|
// sunnypilot model params
|
|
{"CameraOffset", {PERSISTENT | BACKUP, FLOAT, "0.0"}},
|
|
{"LagdToggle", {PERSISTENT | BACKUP, BOOL, "1"}},
|
|
{"LagdToggleDelay", {PERSISTENT | BACKUP, FLOAT, "0.2"}},
|
|
{"LagdValueCache", {PERSISTENT, FLOAT, "0.2"}},
|
|
{"LaneTurnDesire", {PERSISTENT | BACKUP, BOOL, "0"}},
|
|
{"LaneTurnValue", {PERSISTENT | BACKUP, FLOAT, "19.0"}},
|
|
{"PlanplusControl", {PERSISTENT | BACKUP, FLOAT, "1.0"}},
|
|
|
|
// mapd
|
|
{"MapAdvisorySpeedLimit", {CLEAR_ON_ONROAD_TRANSITION, FLOAT}},
|
|
{"MapdVersion", {PERSISTENT, STRING}},
|
|
{"MapSpeedLimit", {CLEAR_ON_ONROAD_TRANSITION, FLOAT, "0.0"}},
|
|
{"NextMapSpeedLimit", {CLEAR_ON_ONROAD_TRANSITION, JSON}},
|
|
{"Offroad_OSMUpdateRequired", {CLEAR_ON_MANAGER_START, JSON}},
|
|
{"OsmDbUpdatesCheck", {CLEAR_ON_MANAGER_START, BOOL}}, // mapd database update happens with device ON, reset on boot
|
|
{"OSMDownloadBounds", {PERSISTENT, STRING}},
|
|
{"OsmDownloadedDate", {PERSISTENT, STRING, "0.0"}},
|
|
{"OSMDownloadLocations", {PERSISTENT, JSON}},
|
|
{"OSMDownloadProgress", {CLEAR_ON_MANAGER_START, JSON}},
|
|
{"OsmLocal", {PERSISTENT, BOOL}},
|
|
{"OsmLocationName", {PERSISTENT, STRING}},
|
|
{"OsmLocationTitle", {PERSISTENT, STRING}},
|
|
{"OsmLocationUrl", {PERSISTENT, STRING}},
|
|
{"OsmStateName", {PERSISTENT, STRING, "All"}},
|
|
{"OsmStateTitle", {PERSISTENT, STRING}},
|
|
{"OsmWayTest", {PERSISTENT, STRING}},
|
|
{"RoadName", {CLEAR_ON_ONROAD_TRANSITION, STRING}},
|
|
{"RoadNameToggle", {PERSISTENT | BACKUP, BOOL, "0"}},
|
|
|
|
// Speed Limit
|
|
{"SpeedLimitMode", {PERSISTENT | BACKUP, INT, "1"}},
|
|
{"SpeedLimitOffsetType", {PERSISTENT | BACKUP, INT, "0"}},
|
|
{"SpeedLimitPolicy", {PERSISTENT | BACKUP, INT, "3"}},
|
|
{"SpeedLimitValueOffset", {PERSISTENT | BACKUP, INT, "0"}},
|
|
|
|
// Smart Cruise Control
|
|
{"MapTargetVelocities", {CLEAR_ON_ONROAD_TRANSITION, STRING}},
|
|
{"SmartCruiseControlMap", {PERSISTENT | BACKUP, BOOL, "0"}},
|
|
{"SmartCruiseControlVision", {PERSISTENT | BACKUP, BOOL, "0"}},
|
|
|
|
// Torque lateral control custom params
|
|
{"CustomTorqueParams", {PERSISTENT | BACKUP , BOOL}},
|
|
{"EnforceTorqueControl", {PERSISTENT | BACKUP, BOOL}},
|
|
{"LiveTorqueParamsToggle", {PERSISTENT | BACKUP , BOOL}},
|
|
{"LiveTorqueParamsRelaxedToggle", {PERSISTENT | BACKUP , BOOL}},
|
|
{"TorqueControlTune", {PERSISTENT | BACKUP, FLOAT, "0.0"}},
|
|
{"TorqueParamsOverrideEnabled", {PERSISTENT | BACKUP, BOOL, "0"}},
|
|
{"TorqueParamsOverrideFriction", {PERSISTENT | BACKUP, FLOAT, "0.1"}},
|
|
{"TorqueParamsOverrideLatAccelFactor", {PERSISTENT | BACKUP, FLOAT, "2.5"}},
|
|
};
|