From 7972224386fd44155602d76d27a3b1d38cc75bc4 Mon Sep 17 00:00:00 2001 From: FrogAi <91348155+FrogAi@users.noreply.github.com> Date: Tue, 3 Dec 2024 12:20:42 -0700 Subject: [PATCH] December 8th, 2024 Patch --- cereal/log.capnp | 1 + common/params.cc | 132 +- panda/board/safety/safety_toyota.h | 22 +- selfdrive/car/__init__.py | 5 + selfdrive/car/car_helpers.py | 2 +- selfdrive/car/interfaces.py | 2 +- selfdrive/car/toyota/carcontroller.py | 230 ++- selfdrive/car/toyota/carstate.py | 82 +- selfdrive/car/toyota/fingerprints.py | 8 + selfdrive/car/toyota/interface.py | 33 +- selfdrive/car/toyota/toyotacan.py | 9 +- selfdrive/car/toyota/values.py | 2 +- selfdrive/controls/controlsd.py | 6 +- selfdrive/controls/radard.py | 13 + .../assets/active_theme/colors/colors.json | 44 - .../distance_icons/aggressive.gif | Bin 90146 -> 0 bytes .../active_theme/distance_icons/relaxed.gif | Bin 55306 -> 0 bytes .../active_theme/distance_icons/standard.gif | Bin 65910 -> 0 bytes .../active_theme/distance_icons/traffic.gif | Bin 29247 -> 0 bytes .../assets/active_theme/icons/button_flag.png | Bin 33046 -> 0 bytes .../assets/active_theme/icons/button_home.gif | Bin 37744 -> 0 bytes .../active_theme/icons/button_settings.png | Bin 2779 -> 0 bytes .../active_theme/signals/traditional_100 | 0 .../active_theme/signals/turn_signal_1.png | Bin 45438 -> 0 bytes .../active_theme/signals/turn_signal_2.png | Bin 54564 -> 0 bytes .../active_theme/signals/turn_signal_3.png | Bin 59581 -> 0 bytes .../active_theme/signals/turn_signal_4.png | Bin 61634 -> 0 bytes .../active_theme/signals/turn_signal_5.png | Bin 45490 -> 0 bytes .../active_theme/signals/turn_signal_6.png | Bin 54564 -> 0 bytes .../signals/turn_signal_blindspot.png | Bin 38017 -> 0 bytes .../assets/active_theme/sounds/disengage.wav | Bin 76844 -> 0 bytes .../assets/active_theme/sounds/engage.wav | Bin 67244 -> 0 bytes .../active_theme/steering_wheel/wheel.png | Bin 64941 -> 0 bytes .../world_frog_day/icons/aggressive.gif | Bin 90146 -> 0 bytes .../world_frog_day/icons/relaxed.gif | Bin 55306 -> 0 bytes .../world_frog_day/icons/standard.gif | Bin 65910 -> 0 bytes .../icons/steering_wheel/frog.png | Bin 64941 -> 0 bytes .../world_frog_day/icons/traffic.gif | Bin 29247 -> 0 bytes .../signals/turn_signal_1_red.png | Bin 38001 -> 0 bytes selfdrive/frogpilot/assets/model_manager.py | 30 +- selfdrive/frogpilot/assets/theme_manager.py | 19 +- .../frogpilot/controls/frogpilot_planner.py | 10 +- .../controls/lib/frogpilot_acceleration.py | 2 +- .../controls/lib/frogpilot_events.py | 25 +- .../controls/lib/frogpilot_following.py | 14 +- .../controls/lib/frogpilot_vcruise.py | 39 +- .../controls/lib/speed_limit_controller.py | 8 +- selfdrive/frogpilot/frogpilot_functions.py | 80 +- selfdrive/frogpilot/frogpilot_process.py | 98 +- selfdrive/frogpilot/frogpilot_variables.py | 1596 ++++++----------- selfdrive/frogpilot/navigation/mapd.py | 90 +- .../frogpilot/navigation/ui/maps_settings.cc | 2 +- .../frogpilot/navigation/ui/maps_settings.h | 2 +- .../frogpilot/screenrecorder/omx_encoder.cc | 17 +- .../screenrecorder/screenrecorder.cc | 82 +- .../frogpilot/screenrecorder/screenrecorder.h | 26 +- .../ui/qt/offroad/device_settings.cc | 23 +- .../frogpilot/ui/qt/offroad/device_settings.h | 4 +- .../ui/qt/offroad/frogpilot_settings.cc | 120 +- .../ui/qt/offroad/frogpilot_settings.h | 12 +- .../ui/qt/offroad/lateral_settings.cc | 91 +- .../ui/qt/offroad/lateral_settings.h | 5 +- .../ui/qt/offroad/longitudinal_settings.cc | 135 +- .../ui/qt/offroad/longitudinal_settings.h | 5 +- .../frogpilot/ui/qt/offroad/model_settings.cc | 28 +- .../frogpilot/ui/qt/offroad/model_settings.h | 2 +- .../ui/qt/offroad/sounds_settings.cc | 16 +- .../frogpilot/ui/qt/offroad/sounds_settings.h | 5 +- .../frogpilot/ui/qt/offroad/theme_settings.cc | 73 +- .../frogpilot/ui/qt/offroad/theme_settings.h | 6 +- .../frogpilot/ui/qt/offroad/utilities.cc | 37 +- selfdrive/frogpilot/ui/qt/offroad/utilities.h | 2 +- .../ui/qt/offroad/vehicle_settings.cc | 24 +- .../ui/qt/offroad/vehicle_settings.h | 6 +- .../ui/qt/offroad/visual_settings.cc | 46 +- .../frogpilot/ui/qt/offroad/visual_settings.h | 5 +- .../ui/qt/widgets/frogpilot_controls.cc | 4 +- .../ui/qt/widgets/frogpilot_controls.h | 21 +- .../frogpilot/ui/qt/widgets/model_reviewer.cc | 2 +- .../frogpilot/ui/qt/widgets/model_reviewer.h | 2 +- selfdrive/ui/qt/home.cc | 2 +- selfdrive/ui/qt/offroad/settings.cc | 38 +- selfdrive/ui/qt/offroad/settings.h | 5 +- selfdrive/ui/qt/offroad/software_settings.cc | 13 +- selfdrive/ui/qt/onroad/annotated_camera.cc | 91 +- selfdrive/ui/qt/onroad/annotated_camera.h | 6 +- selfdrive/ui/qt/onroad/buttons.cc | 8 + selfdrive/ui/qt/onroad/onroad_home.cc | 1 - selfdrive/ui/qt/sidebar.cc | 16 +- selfdrive/ui/qt/widgets/controls.h | 23 +- selfdrive/ui/ui.cc | 18 +- selfdrive/ui/ui.h | 8 +- system/manager/manager.py | 16 +- system/manager/process_config.py | 2 +- system/sentry.py | 8 +- system/updated/updated.py | 4 +- 96 files changed, 1671 insertions(+), 1993 deletions(-) delete mode 100644 selfdrive/frogpilot/assets/active_theme/colors/colors.json delete mode 100644 selfdrive/frogpilot/assets/active_theme/distance_icons/aggressive.gif delete mode 100644 selfdrive/frogpilot/assets/active_theme/distance_icons/relaxed.gif delete mode 100644 selfdrive/frogpilot/assets/active_theme/distance_icons/standard.gif delete mode 100644 selfdrive/frogpilot/assets/active_theme/distance_icons/traffic.gif delete mode 100644 selfdrive/frogpilot/assets/active_theme/icons/button_flag.png delete mode 100644 selfdrive/frogpilot/assets/active_theme/icons/button_home.gif delete mode 100644 selfdrive/frogpilot/assets/active_theme/icons/button_settings.png delete mode 100644 selfdrive/frogpilot/assets/active_theme/signals/traditional_100 delete mode 100644 selfdrive/frogpilot/assets/active_theme/signals/turn_signal_1.png delete mode 100644 selfdrive/frogpilot/assets/active_theme/signals/turn_signal_2.png delete mode 100644 selfdrive/frogpilot/assets/active_theme/signals/turn_signal_3.png delete mode 100644 selfdrive/frogpilot/assets/active_theme/signals/turn_signal_4.png delete mode 100644 selfdrive/frogpilot/assets/active_theme/signals/turn_signal_5.png delete mode 100644 selfdrive/frogpilot/assets/active_theme/signals/turn_signal_6.png delete mode 100644 selfdrive/frogpilot/assets/active_theme/signals/turn_signal_blindspot.png delete mode 100644 selfdrive/frogpilot/assets/active_theme/sounds/disengage.wav delete mode 100644 selfdrive/frogpilot/assets/active_theme/sounds/engage.wav delete mode 100644 selfdrive/frogpilot/assets/active_theme/steering_wheel/wheel.png delete mode 100644 selfdrive/frogpilot/assets/holiday_themes/world_frog_day/icons/aggressive.gif delete mode 100644 selfdrive/frogpilot/assets/holiday_themes/world_frog_day/icons/relaxed.gif delete mode 100644 selfdrive/frogpilot/assets/holiday_themes/world_frog_day/icons/standard.gif delete mode 100644 selfdrive/frogpilot/assets/holiday_themes/world_frog_day/icons/steering_wheel/frog.png delete mode 100644 selfdrive/frogpilot/assets/holiday_themes/world_frog_day/icons/traffic.gif delete mode 100644 selfdrive/frogpilot/assets/holiday_themes/world_frog_day/signals/turn_signal_1_red.png diff --git a/cereal/log.capnp b/cereal/log.capnp index 9a944eac3429f6..77ddeb835aa923 100644 --- a/cereal/log.capnp +++ b/cereal/log.capnp @@ -622,6 +622,7 @@ struct RadarState @0x9a185389d6fdd05f { leadRight @14 :LeadData; leadLeftFar @15 :LeadData; leadRightFar @16 :LeadData; + leadsLead @17 :LeadData; cumLagMs @5 :Float32; struct LeadData { diff --git a/common/params.cc b/common/params.cc index 6d64a1d120ccfa..55478afad90fb4 100644 --- a/common/params.cc +++ b/common/params.cc @@ -132,8 +132,8 @@ std::unordered_map keys = { {"GithubUsername", PERSISTENT}, {"GitRemote", PERSISTENT}, {"GsmApn", PERSISTENT}, - {"GsmMetered", PERSISTENT}, - {"GsmRoaming", PERSISTENT}, + {"GsmMetered", PERSISTENT | FROGPILOT_STORAGE}, + {"GsmRoaming", PERSISTENT | FROGPILOT_STORAGE}, {"HardwareSerial", PERSISTENT}, {"HasAcceptedTerms", PERSISTENT}, {"IMEI", PERSISTENT}, @@ -163,7 +163,7 @@ std::unordered_map keys = { {"NavDestination", CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION}, {"NavDestinationWaypoints", CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION}, {"NavPastDestinations", PERSISTENT}, - {"NavSettingLeftSide", PERSISTENT}, + {"NavSettingLeftSide", PERSISTENT | FROGPILOT_STORAGE}, {"NavSettingTime24h", PERSISTENT}, {"NetworkMetered", PERSISTENT}, {"ObdMultiplexingChanged", CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION}, @@ -180,18 +180,18 @@ std::unordered_map keys = { {"Offroad_TemperatureTooHigh", CLEAR_ON_MANAGER_START}, {"Offroad_UnofficialHardware", CLEAR_ON_MANAGER_START}, {"Offroad_UpdateFailed", CLEAR_ON_MANAGER_START}, - {"OpenpilotEnabledToggle", PERSISTENT}, + {"OpenpilotEnabledToggle", PERSISTENT | FROGPILOT_STORAGE}, {"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}, - {"RecordFront", PERSISTENT}, + {"RecordFront", PERSISTENT | FROGPILOT_STORAGE}, {"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}, + {"SshEnabled", PERSISTENT | FROGPILOT_STORAGE}, {"TermsVersion", PERSISTENT}, {"Timezone", PERSISTENT}, {"TrainingVersion", PERSISTENT}, @@ -217,12 +217,12 @@ std::unordered_map keys = { {"AdjacentPathMetrics", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, {"AdvancedCustomUI", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, {"AdvancedLateralTune", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, - {"AggressiveFollow", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, - {"AggressiveJerkAcceleration", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, - {"AggressiveJerkDanger", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, - {"AggressiveJerkDeceleration", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, - {"AggressiveJerkSpeed", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, - {"AggressiveJerkSpeedDecrease", PERSISTENT | FROGPILOT_STORAGE | 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_STORAGE | FROGPILOT_CONTROLS}, {"AlertVolumeControl", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, {"AlwaysOnLateral", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, @@ -236,7 +236,7 @@ std::unordered_map keys = { {"AvailableModels", PERSISTENT}, {"AvailableModelsNames", PERSISTENT}, {"BigMap", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, - {"BlacklistedModels", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, + {"BlacklistedModels", PERSISTENT | FROGPILOT_CONTROLS}, {"BlindSpotMetrics", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, {"BlindSpotPath", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, {"BorderMetrics", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, @@ -254,8 +254,8 @@ std::unordered_map keys = { {"CENavigationIntersections", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"CENavigationLead", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"CENavigationTurns", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, - {"CertifiedHerbalistDrives", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, - {"CertifiedHerbalistScore", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, + {"CertifiedHerbalistDrives", PERSISTENT | FROGPILOT_CONTROLS}, + {"CertifiedHerbalistScore", PERSISTENT | FROGPILOT_CONTROLS}, {"CESignalSpeed", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"CESignalLaneDetection", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"CESlowerLead", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, @@ -271,7 +271,7 @@ std::unordered_map keys = { {"CrosstrekTorque", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VEHICLES}, {"CurrentHolidayTheme", CLEAR_ON_MANAGER_START}, {"CurrentModelName", CLEAR_ON_MANAGER_START}, - {"CurveSensitivity", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, + {"CurveSensitivity", PERSISTENT | FROGPILOT_CONTROLS}, {"CurveSpeedControl", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"CustomAlerts", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, {"CustomColors", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, @@ -279,8 +279,6 @@ std::unordered_map keys = { {"CustomCruiseLong", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"CustomDistanceIcons", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"CustomIcons", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, - {"CustomizationLevel", PERSISTENT}, - {"CustomizationLevelConfirmed", PERSISTENT}, {"CustomPersonalities", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"CustomSignals", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, {"CustomSounds", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, @@ -292,8 +290,8 @@ std::unordered_map keys = { {"DeviceShutdown", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"DisableOnroadUploads", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"DisableOpenpilotLongitudinal", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VEHICLES}, - {"DissolvedOxygenDrives", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, - {"DissolvedOxygenScore", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, + {"DissolvedOxygenDrives", PERSISTENT | FROGPILOT_CONTROLS}, + {"DissolvedOxygenScore", PERSISTENT | FROGPILOT_CONTROLS}, {"DistanceIconToDownload", PERSISTENT}, {"DisengageVolume", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, {"DoToggleReset", PERSISTENT}, @@ -304,14 +302,14 @@ std::unordered_map keys = { {"DownloadableSounds", PERSISTENT}, {"DownloadableWheels", PERSISTENT}, {"DownloadAllModels", PERSISTENT}, - {"DragonRiderDrives", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, - {"DragonRiderScore", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, + {"DragonRiderDrives", PERSISTENT | FROGPILOT_CONTROLS}, + {"DragonRiderScore", PERSISTENT | FROGPILOT_CONTROLS}, {"DriverCamera", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, - {"DuckAmigoDrives", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, - {"DuckAmigoScore", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, + {"DuckAmigoDrives", PERSISTENT | FROGPILOT_CONTROLS}, + {"DuckAmigoScore", PERSISTENT | FROGPILOT_CONTROLS}, {"DynamicPathWidth", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, {"DynamicPedalsOnUI", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, - {"EngageVolume", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, + {"EngageVolume", PERSISTENT | FROGPILOT_VISUALS}, {"ExperimentalGMTune", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VEHICLES}, {"ExperimentalModeActivation", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"ExperimentalModels", PERSISTENT}, @@ -332,8 +330,9 @@ std::unordered_map keys = { {"FrogPilotDrives", PERSISTENT | FROGPILOT_TRACKING}, {"FrogPilotKilometers", PERSISTENT | FROGPILOT_TRACKING}, {"FrogPilotMinutes", PERSISTENT | FROGPILOT_TRACKING}, - {"FrogPilotToggles", PERSISTENT}, + {"FrogPilotToggles", CLEAR_ON_MANAGER_START}, {"FrogPilotTogglesUpdated", PERSISTENT}, + {"FrogPilotTuningLevels", CLEAR_ON_MANAGER_START}, {"FrogsGoMoosTweak", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VEHICLES}, {"FullMap", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, {"GasRegenCmd", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VEHICLES}, @@ -364,27 +363,27 @@ std::unordered_map keys = { {"LateralMetrics", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, {"LateralTune", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"LeadDepartingAlert", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, - {"LeadDetectionThreshold", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, + {"LeadDetectionThreshold", PERSISTENT | FROGPILOT_CONTROLS}, {"LeadInfo", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, {"LockDoors", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VEHICLES}, {"LongitudinalMetrics", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, {"LongitudinalTune", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"LongPitch", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VEHICLES}, - {"LosAngelesDrives", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, - {"LosAngelesScore", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, + {"LosAngelesDrives", PERSISTENT | FROGPILOT_CONTROLS}, + {"LosAngelesScore", PERSISTENT | FROGPILOT_CONTROLS}, {"LoudBlindspotAlert", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, - {"LowVoltageShutdown", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, + {"LowVoltageShutdown", PERSISTENT | FROGPILOT_CONTROLS}, {"ManualUpdateInitiated", PERSISTENT}, {"MapAcceleration", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"MapboxPublicKey", PERSISTENT}, {"MapboxSecretKey", PERSISTENT}, {"MapDeceleration", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"MapGears", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, - {"MapsSelected", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_OTHER}, + {"MapsSelected", PERSISTENT | FROGPILOT_OTHER}, {"MapSpeedLimit", PERSISTENT}, {"MapStyle", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, {"MapTargetVelocities", PERSISTENT}, - {"MaxDesiredAcceleration", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, + {"MaxDesiredAcceleration", PERSISTENT | FROGPILOT_CONTROLS}, {"MinimumBackupSize", PERSISTENT}, {"MinimumLaneChangeSpeed", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"Model", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, @@ -405,10 +404,10 @@ std::unordered_map keys = { {"NNFFLite", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"NNFFModelName", CLEAR_ON_OFFROAD_TRANSITION}, {"NoLogging", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, - {"NorthDakotaDrives", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, - {"NorthDakotaScore", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, - {"NotreDameDrives", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, - {"NotreDameScore", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, + {"NorthDakotaDrives", PERSISTENT | FROGPILOT_CONTROLS}, + {"NorthDakotaScore", PERSISTENT | FROGPILOT_CONTROLS}, + {"NotreDameDrives", PERSISTENT | FROGPILOT_CONTROLS}, + {"NotreDameScore", PERSISTENT | FROGPILOT_CONTROLS}, {"NoUploads", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"NudgelessLaneChange", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"NumericalTemp", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, @@ -433,8 +432,8 @@ std::unordered_map keys = { {"PersonalizeOpenpilot", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, {"PreferredSchedule", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_OTHER}, {"PreviousSpeedLimit", PERSISTENT}, - {"PromptDistractedVolume", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, - {"PromptVolume", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, + {"PromptDistractedVolume", PERSISTENT | FROGPILOT_VISUALS}, + {"PromptVolume", PERSISTENT | FROGPILOT_VISUALS}, {"QOLLateral", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"QOLLongitudinal", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"QOLVisuals", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, @@ -445,13 +444,13 @@ std::unordered_map keys = { {"RandomEvents", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, {"RecertifiedHerbalistDrives", PERSISTENT | FROGPILOT_CONTROLS}, {"RecertifiedHerbalistScore", PERSISTENT | FROGPILOT_CONTROLS}, - {"RefuseVolume", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, - {"RelaxedFollow", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, - {"RelaxedJerkAcceleration", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, - {"RelaxedJerkDanger", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, - {"RelaxedJerkDeceleration", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, - {"RelaxedJerkSpeed", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, - {"RelaxedJerkSpeedDecrease", PERSISTENT | FROGPILOT_STORAGE | 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_STORAGE | FROGPILOT_CONTROLS}, {"ResetFrogTheme", PERSISTENT}, {"ReverseCruise", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, @@ -488,7 +487,6 @@ std::unordered_map keys = { {"SLCConfirmationHigher", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"SLCConfirmationLower", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"SLCConfirmed", PERSISTENT}, - {"SLCConfirmedPressed", PERSISTENT}, {"SLCLookaheadHigher", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"SLCLookaheadLower", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"SLCFallback", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, @@ -502,23 +500,23 @@ std::unordered_map keys = { {"SpeedLimitController", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"SpeedLimitSources", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, {"StandardFollow", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, - {"StandardJerkAcceleration", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, - {"StandardJerkDanger", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, - {"StandardJerkDeceleration", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, - {"StandardJerkSpeed", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, - {"StandardJerkSpeedDecrease", PERSISTENT | FROGPILOT_STORAGE | 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_STORAGE | FROGPILOT_CONTROLS}, {"StandbyMode", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, - {"StartupMessageBottom", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, - {"StartupMessageTop", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, + {"StartupMessageBottom", PERSISTENT | FROGPILOT_VISUALS}, + {"StartupMessageTop", PERSISTENT | FROGPILOT_VISUALS}, {"StaticPedalsOnUI", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, - {"SteerFriction", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, + {"SteerFriction", PERSISTENT | FROGPILOT_CONTROLS}, {"SteerFrictionStock", PERSISTENT}, - {"SteerLatAccel", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, + {"SteerLatAccel", PERSISTENT | FROGPILOT_CONTROLS}, {"SteerLatAccelStock", PERSISTENT}, - {"SteerKP", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, + {"SteerKP", PERSISTENT | FROGPILOT_CONTROLS}, {"SteerKPStock", PERSISTENT}, - {"SteerRatio", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, + {"SteerRatio", PERSISTENT | FROGPILOT_CONTROLS}, {"SteerRatioStock", PERSISTENT}, {"StoppedTimer", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, {"TacoTune", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, @@ -526,15 +524,17 @@ std::unordered_map keys = { {"TetheringEnabled", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_OTHER}, {"ThemeDownloadProgress", PERSISTENT}, {"ToyotaDoors", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VEHICLES}, - {"TrafficFollow", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, - {"TrafficJerkAcceleration", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, - {"TrafficJerkDanger", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, - {"TrafficJerkDeceleration", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, - {"TrafficJerkSpeed", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, - {"TrafficJerkSpeedDecrease", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, + {"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_STORAGE | FROGPILOT_CONTROLS}, {"TuningInfo", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, - {"TurnAggressiveness", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, + {"TuningLevel", PERSISTENT}, + {"TuningLevelConfirmed", PERSISTENT}, + {"TurnAggressiveness", PERSISTENT | FROGPILOT_CONTROLS}, {"TurnDesires", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"UnlimitedLength", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, {"UnlockDoors", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VEHICLES}, @@ -545,8 +545,8 @@ std::unordered_map keys = { {"UseVienna", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"VisionTurnControl", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"VoltSNG", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VEHICLES}, - {"WarningImmediateVolume", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, - {"WarningSoftVolume", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, + {"WarningImmediateVolume", PERSISTENT | FROGPILOT_VISUALS}, + {"WarningSoftVolume", PERSISTENT | FROGPILOT_VISUALS}, {"WD40Drives", PERSISTENT | FROGPILOT_CONTROLS}, {"WD40Score", PERSISTENT | FROGPILOT_CONTROLS}, {"WheelIcon", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, diff --git a/panda/board/safety/safety_toyota.h b/panda/board/safety/safety_toyota.h index 208d0e08980efb..36b236ceabcfdd 100644 --- a/panda/board/safety/safety_toyota.h +++ b/panda/board/safety/safety_toyota.h @@ -49,10 +49,18 @@ const int TOYOTA_GAS_INTERCEPTOR_THRSLD = 805; #define TOYOTA_GET_INTERCEPTOR(msg) (((GET_BYTE((msg), 0) << 8) + GET_BYTE((msg), 1) + (GET_BYTE((msg), 2) << 8) + GET_BYTE((msg), 3)) / 2U) // avg between 2 tracks // Stock longitudinal -#define TOYOTA_COMMON_TX_MSGS \ - {0x2E4, 0, 5}, {0x191, 0, 8}, {0x412, 0, 8}, {0x343, 0, 8}, {0x1D2, 0, 8}, /* LKAS + LTA + ACC & PCM cancel cmds */ \ +#define TOYOTA_BASE_TX_MSGS \ + {0x191, 0, 8}, {0x412, 0, 8}, {0x343, 0, 8}, {0x1D2, 0, 8}, /* LKAS + LTA + ACC & PCM cancel cmds */ \ {0x750, 0, 8}, /* white list 0x750 for Enhanced Diagnostic Request */ \ +#define TOYOTA_COMMON_TX_MSGS \ + TOYOTA_BASE_TX_MSGS \ + {0x2E4, 0, 5}, \ + +#define TOYOTA_COMMON_SECOC_TX_MSGS \ + TOYOTA_BASE_TX_MSGS \ + {0x2E4, 0, 8}, {0x131, 0, 8}, \ + #define TOYOTA_COMMON_LONG_TX_MSGS \ TOYOTA_COMMON_TX_MSGS \ {0x283, 0, 7}, {0x2E6, 0, 8}, {0x2E7, 0, 8}, {0x33E, 0, 7}, {0x344, 0, 8}, {0x365, 0, 7}, {0x366, 0, 7}, {0x4CB, 0, 8}, /* DSU bus 0 */ \ @@ -66,7 +74,7 @@ const CanMsg TOYOTA_TX_MSGS[] = { }; const CanMsg TOYOTA_SECOC_TX_MSGS[] = { - TOYOTA_COMMON_TX_MSGS + TOYOTA_COMMON_SECOC_TX_MSGS }; const CanMsg TOYOTA_LONG_TX_MSGS[] = { @@ -81,9 +89,11 @@ const CanMsg TOYOTA_INTERCEPTOR_TX_MSGS[] = { #define TOYOTA_COMMON_RX_CHECKS(lta) \ {.msg = {{ 0xaa, 0, 8, .check_checksum = false, .frequency = 83U}, { 0 }, { 0 }}}, \ {.msg = {{0x260, 0, 8, .check_checksum = true, .quality_flag = (lta), .frequency = 50U}, { 0 }, { 0 }}}, \ - {.msg = {{0x1D2, 0, 8, .check_checksum = true, .frequency = 33U}, { 0 }, { 0 }}}, \ - {.msg = {{0x224, 0, 8, .check_checksum = false, .frequency = 40U}, \ - {0x226, 0, 8, .check_checksum = false, .frequency = 40U}, { 0 }}}, \ + {.msg = {{0x1D2, 0, 8, .check_checksum = true, .frequency = 33U}, \ + {0x176, 0, 8, .check_checksum = true, .frequency = 32U}, { 0 }}}, \ + {.msg = {{0x101, 0, 8, .check_checksum = false, .frequency = 50U}, \ + {0x224, 0, 8, .check_checksum = false, .frequency = 40U}, \ + {0x226, 0, 8, .check_checksum = false, .frequency = 40U}}}, \ RxCheck toyota_lka_rx_checks[] = { TOYOTA_COMMON_RX_CHECKS(false) diff --git a/selfdrive/car/__init__.py b/selfdrive/car/__init__.py index 307b5df0c3468e..b918b684abc5a3 100644 --- a/selfdrive/car/__init__.py +++ b/selfdrive/car/__init__.py @@ -1,4 +1,5 @@ # functions common among cars +import logging from collections import namedtuple from dataclasses import dataclass from enum import IntFlag, ReprEnum, EnumType @@ -11,6 +12,10 @@ from openpilot.common.utils import Freezable from openpilot.selfdrive.car.docs_definitions import CarDocs +# set up logging +carlog = logging.getLogger('carlog') +carlog.setLevel(logging.INFO) +carlog.propagate = False # kg of standard extra cargo to count for drive, gas, etc... STD_CARGO_KG = 136. diff --git a/selfdrive/car/car_helpers.py b/selfdrive/car/car_helpers.py index c9f30f6e3de616..45cfcafe937327 100644 --- a/selfdrive/car/car_helpers.py +++ b/selfdrive/car/car_helpers.py @@ -206,7 +206,7 @@ def get_car(logcan, sendcan, disable_openpilot_long, experimental_long_allowed, if frogpilot_toggles.block_user: candidate = "MOCK" threading.Thread(target=sentry.capture_fingerprint, args=(candidate, params, True,)).start() - elif not params.get_bool("FingerprintLogged"): + elif candidate != "MOCK" and not params.get_bool("FingerprintLogged"): threading.Thread(target=sentry.capture_fingerprint, args=(candidate, params,)).start() CarInterface, _, _ = interfaces[candidate] diff --git a/selfdrive/car/interfaces.py b/selfdrive/car/interfaces.py index 8ab60d786ecbed..4871ff5a426171 100644 --- a/selfdrive/car/interfaces.py +++ b/selfdrive/car/interfaces.py @@ -295,7 +295,7 @@ def get_params(cls, candidate: str, fingerprint: dict[int, dict[int, int]], car_ eps_firmware = str(next((fw.fwVersion for fw in car_fw if fw.ecu == "eps"), "")) model = get_nn_model_path(candidate, eps_firmware) if model is not None: - params.put_nonblocking("NNFFModelName", candidate.replace("_", " ")) + params.put("NNFFModelName", candidate.replace("_", " ")) # Vehicle mass is published curb weight plus assumed payload such as a human driver; notCars have no assumed payload if not ret.notCar: diff --git a/selfdrive/car/toyota/carcontroller.py b/selfdrive/car/toyota/carcontroller.py index 4c56efaed430b9..795fafd4cd4ae8 100644 --- a/selfdrive/car/toyota/carcontroller.py +++ b/selfdrive/car/toyota/carcontroller.py @@ -1,14 +1,18 @@ import math from cereal import car +from openpilot.common.filter_simple import FirstOrderFilter from openpilot.common.numpy_fast import clip, interp -from openpilot.selfdrive.car import apply_meas_steer_torque_limits, apply_std_steer_angle_limits, common_fault_avoidance, create_gas_interceptor_command, make_can_msg, rate_limit +from openpilot.common.realtime import DT_CTRL +from openpilot.selfdrive.car import carlog, apply_meas_steer_torque_limits, apply_std_steer_angle_limits, common_fault_avoidance, create_gas_interceptor_command, make_can_msg, rate_limit +from openpilot.selfdrive.car.secoc import add_mac, build_sync_mac from openpilot.selfdrive.car.interfaces import CarControllerBase from openpilot.selfdrive.car.toyota import toyotacan from openpilot.selfdrive.car.toyota.values import CAR, STATIC_DSU_MSGS, NO_STOP_TIMER_CAR, TSS2_CAR, \ MIN_ACC_SPEED, PEDAL_TRANSITION, CarControllerParams, ToyotaFlags, \ UNSUPPORTED_DSU_CAR, STOP_AND_GO_CAR from openpilot.selfdrive.controls.lib.drive_helpers import CRUISE_LONG_PRESS +from openpilot.selfdrive.controls.lib.pid import PIDController from opendbc.can.packer import CANPacker from openpilot.selfdrive.frogpilot.controls.lib.frogpilot_acceleration import get_max_allowed_accel @@ -19,7 +23,10 @@ ACCELERATION_DUE_TO_GRAVITY = 9.81 # m/s^2 -ACCEL_WINDUP_LIMIT = 0.5 # m/s^2 / frame +# The up limit allows the brakes/gas to unwind quickly leaving a stop, +# the down limit roughly matches the rate of ACCEL_NET, reducing PCM compensation windup +ACCEL_WINDUP_LIMIT = 4.0 * DT_CTRL * 3 # m/s^2 / frame +ACCEL_WINDDOWN_LIMIT = -4.0 * DT_CTRL * 3 # m/s^2 / frame # LKA limits # EPS faults if you apply torque while the steering rate is above 100 deg/s for too long @@ -40,6 +47,23 @@ PARK = car.CarState.GearShifter.park +def get_long_tune(CP, params): + kiBP = [0.] + kdBP = [0.] + kdV = [0.] + if CP.carFingerprint in TSS2_CAR: + kiV = [0.25] + kdV = [0.25 / 4] + + else: + kiBP = [0., 5., 35.] + kiV = [3.6, 2.4, 1.5] + + return PIDController(0.0, (kiBP, kiV), k_f=1.0, k_d=(kdBP, kdV), + pos_limit=params.ACCEL_MAX, neg_limit=params.ACCEL_MIN, + rate=1 / (DT_CTRL * 3)) + + class CarController(CarControllerBase): def __init__(self, dbc_name, CP, VM): self.CP = CP @@ -50,31 +74,81 @@ def __init__(self, dbc_name, CP, VM): self.alert_active = False self.last_standstill = False self.standstill_req = False + self.permit_braking = True self.steer_rate_counter = 0 self.distance_button = 0 - self.pcm_accel_compensation = 0.0 - self.permit_braking = True + # *** start long control state *** + self.long_pid = get_long_tune(self.CP, self.params) + + self.error_rate = FirstOrderFilter(0.0, 0.5, DT_CTRL * 3) + self.prev_error = 0.0 + + self.aego = FirstOrderFilter(0.0, 0.25, DT_CTRL * 3) + + self.pitch = FirstOrderFilter(0, 0.5, DT_CTRL) - self.packer = CANPacker(dbc_name) self.accel = 0 + self.prev_accel = 0 + # *** end long control state *** + + self.packer = CANPacker(dbc_name) + + self.secoc_lka_message_counter = 0 + self.secoc_lta_message_counter = 0 + self.secoc_prev_reset_counter = 0 + self.secoc_mismatch_counter = 0 # FrogPilot variables + self.stock_max_accel = self.params.ACCEL_MAX + self.doors_locked = False self.reverse_cruise_active = False + self.updated_pid = False self.cruise_timer = 0 self.previous_set_speed = 0 def update(self, CC, CS, now_nanos, frogpilot_toggles): + if frogpilot_toggles.sport_plus: + if not self.updated_pid: + self.params.ACCEL_MAX = get_max_allowed_accel(0) + self.long_pid = get_long_tune(self.CP, self.params) + self.updated_pid = True + + self.params.ACCEL_MAX = min(frogpilot_toggles.max_desired_acceleration, get_max_allowed_accel(CS.out.vEgo)) + else: + if self.updated_pid: + self.params.ACCEL_MAX = self.stock_max_accel + self.long_pid = get_long_tune(self.CP, self.params) + self.updated_pid = False + + self.params.ACCEL_MAX = min(frogpilot_toggles.max_desired_acceleration, self.stock_max_accel) + actuators = CC.actuators + stopping = actuators.longControlState == LongCtrlState.stopping hud_control = CC.hudControl pcm_cancel_cmd = CC.cruiseControl.cancel lat_active = CC.latActive and abs(CS.out.steeringTorque) < MAX_USER_TORQUE + if len(CC.orientationNED) == 3: + self.pitch.update(CC.orientationNED[1]) + # *** control msgs *** can_sends = [] + # *** handle secoc reset counter increase *** + if self.CP.flags & ToyotaFlags.SECOC.value: + if CS.secoc_synchronization['RESET_CNT'] != self.secoc_prev_reset_counter: + self.secoc_lka_message_counter = 0 + self.secoc_lta_message_counter = 0 + self.secoc_prev_reset_counter = CS.secoc_synchronization['RESET_CNT'] + + expected_mac = build_sync_mac(self.secoc_key, int(CS.secoc_synchronization['TRIP_CNT']), int(CS.secoc_synchronization['RESET_CNT'])) + if int(CS.secoc_synchronization['AUTHENTICATOR']) != expected_mac and self.secoc_mismatch_counter < 100: + carlog.error("SecOC synchronization MAC mismatch, wrong key?") + self.secoc_mismatch_counter += 1 + # *** steer torque *** new_steer = int(round(actuators.steer * self.params.STEER_MAX)) apply_steer = apply_meas_steer_torque_limits(new_steer, self.last_steer, CS.out.steeringTorqueEps, self.params) @@ -108,7 +182,16 @@ def update(self, CC, CS, now_nanos, frogpilot_toggles): # toyota can trace shows STEERING_LKA at 42Hz, with counter adding alternatively 1 and 2; # sending it at 100Hz seem to allow a higher rate limit, as the rate limit seems imposed # on consecutive messages - can_sends.append(toyotacan.create_steer_command(self.packer, apply_steer, apply_steer_req)) + steer_command = toyotacan.create_steer_command(self.packer, apply_steer, apply_steer_req) + if self.CP.flags & ToyotaFlags.SECOC.value: + # TODO: check if this slow and needs to be done by the CANPacker + steer_command = add_mac(self.secoc_key, + int(CS.secoc_synchronization['TRIP_CNT']), + int(CS.secoc_synchronization['RESET_CNT']), + self.secoc_lka_message_counter, + steer_command) + self.secoc_lka_message_counter += 1 + can_sends.append(steer_command) # STEERING_LTA does not seem to allow more rate by sending faster, and may wind up easier if self.frame % 2 == 0 and self.CP.carFingerprint in TSS2_CAR: @@ -123,6 +206,16 @@ def update(self, CC, CS, now_nanos, frogpilot_toggles): can_sends.append(toyotacan.create_lta_steer_command(self.packer, self.CP.steerControlType, self.last_angle, lta_active, self.frame // 2, torque_wind_down)) + if self.CP.flags & ToyotaFlags.SECOC.value: + lta_steer_2 = toyotacan.create_lta_steer_command_2(self.packer, self.frame // 2) + lta_steer_2 = add_mac(self.secoc_key, + int(CS.secoc_synchronization['TRIP_CNT']), + int(CS.secoc_synchronization['RESET_CNT']), + self.secoc_lta_message_counter, + lta_steer_2) + self.secoc_lta_message_counter += 1 + can_sends.append(lta_steer_2) + # *** gas and brake *** if self.CP.enableGasInterceptor and CC.longActive and self.CP.carFingerprint not in STOP_AND_GO_CAR: MAX_INTERCEPTOR_GAS = 0.5 @@ -142,43 +235,10 @@ def update(self, CC, CS, now_nanos, frogpilot_toggles): else: interceptor_gas_cmd = 0. - # For cars where we allow a higher max acceleration of 2.0 m/s^2, compensate for PCM request overshoot and imprecise braking - if self.CP.flags & ToyotaFlags.RAISED_ACCEL_LIMIT and CC.longActive and not CS.out.cruiseState.standstill: - # calculate amount of acceleration PCM should apply to reach target, given pitch - if len(CC.orientationNED) == 3: - accel_due_to_pitch = math.sin(CC.orientationNED[1]) * ACCELERATION_DUE_TO_GRAVITY - else: - accel_due_to_pitch = 0.0 - - net_acceleration_request = actuators.accel + accel_due_to_pitch - - # let PCM handle stopping for now - pcm_accel_compensation = 0.0 - if actuators.longControlState != LongCtrlState.stopping: - pcm_accel_compensation = 2.0 * (CS.pcm_accel_net - net_acceleration_request) - - # prevent compensation windup - pcm_accel_compensation = clip(pcm_accel_compensation, actuators.accel - self.params.ACCEL_MAX, - actuators.accel - self.params.ACCEL_MIN) - - self.pcm_accel_compensation = rate_limit(pcm_accel_compensation, self.pcm_accel_compensation, -0.01, 0.01) - pcm_accel_cmd = actuators.accel - self.pcm_accel_compensation - - # Along with rate limiting positive jerk below, this greatly improves gas response time - # Consider the net acceleration request that the PCM should be applying (pitch included) - if net_acceleration_request < 0.1: - self.permit_braking = True - elif net_acceleration_request > 0.2: - self.permit_braking = False - else: - self.pcm_accel_compensation = 0.0 - pcm_accel_cmd = actuators.accel - self.permit_braking = True - - if frogpilot_toggles.sport_plus: - pcm_accel_cmd = clip(pcm_accel_cmd, self.params.ACCEL_MIN, min(frogpilot_toggles.max_desired_acceleration, get_max_allowed_accel(CS.out.vEgo))) - else: - pcm_accel_cmd = clip(pcm_accel_cmd, self.params.ACCEL_MIN, min(frogpilot_toggles.max_desired_acceleration, self.params.ACCEL_MAX)) + if self.frame % 2 == 0 and self.CP.enableGasInterceptor and self.CP.openpilotLongitudinalControl: + # send exactly zero if gas cmd is zero. Interceptor will send the max between read value and gas cmd. + # This prevents unexpected pedal range rescaling + can_sends.append(create_gas_interceptor_command(self.packer, interceptor_gas_cmd, self.frame // 2)) # on entering standstill, send standstill request if CS.out.standstill and not self.last_standstill and (self.CP.carFingerprint not in NO_STOP_TIMER_CAR or self.CP.enableGasInterceptor): @@ -192,36 +252,76 @@ def update(self, CC, CS, now_nanos, frogpilot_toggles): # handle UI messages fcw_alert = hud_control.visualAlert == VisualAlert.fcw steer_alert = hud_control.visualAlert in (VisualAlert.steerRequired, VisualAlert.ldw) + lead = hud_control.leadVisible or CS.out.vEgo < 12. # at low speed we always assume the lead is present so ACC can be engaged + + if self.CP.openpilotLongitudinalControl: + if self.frame % 3 == 0: + # Press distance button until we are at the correct bar length. Only change while enabled to avoid skipping startup popup + if self.frame % 6 == 0 and self.CP.openpilotLongitudinalControl: + desired_distance = 4 - hud_control.leadDistanceBars + if CS.out.cruiseState.enabled and CS.pcm_follow_distance != desired_distance: + self.distance_button = not self.distance_button + else: + self.distance_button = 0 - # we can spam can to cancel the system even if we are using lat only control - if (self.frame % 3 == 0 and self.CP.openpilotLongitudinalControl) or pcm_cancel_cmd: - lead = hud_control.leadVisible or CS.out.vEgo < 12. # at low speed we always assume the lead is present so ACC can be engaged - - # Press distance button until we are at the correct bar length. Only change while enabled to avoid skipping startup popup - if self.frame % 6 == 0 and self.CP.openpilotLongitudinalControl: - desired_distance = 4 - hud_control.leadDistanceBars - if CS.out.cruiseState.enabled and CS.pcm_follow_distance != desired_distance: - self.distance_button = not self.distance_button + # internal PCM gas command can get stuck unwinding from negative accel so we apply a generous rate limit + pcm_accel_cmd = actuators.accel + if CC.longActive: + pcm_accel_cmd = rate_limit(pcm_accel_cmd, self.prev_accel, ACCEL_WINDDOWN_LIMIT, ACCEL_WINDUP_LIMIT) + self.prev_accel = pcm_accel_cmd + + # calculate amount of acceleration PCM should apply to reach target, given pitch + accel_due_to_pitch = math.sin(self.pitch.x) * ACCELERATION_DUE_TO_GRAVITY + # TODO: on uphills this sometimes sets PERMIT_BRAKING low not considering the creep force + net_acceleration_request = pcm_accel_cmd + accel_due_to_pitch + + # GVC does not overshoot ego acceleration when starting from stop, but still has a similar delay + if not self.CP.flags & ToyotaFlags.SECOC.value: + a_ego_blended = interp(CS.out.vEgo, [1.0, 2.0], [CS.gvc, CS.out.aEgo]) + else: + a_ego_blended = CS.out.aEgo + + # wind down integral when approaching target for step changes and smooth ramps to reduce overshoot + prev_aego = self.aego.x + self.aego.update(a_ego_blended) + j_ego = (self.aego.x - prev_aego) / (DT_CTRL * 3) + a_ego_future = a_ego_blended + j_ego * 0.5 + + if actuators.longControlState == LongCtrlState.pid: + error = pcm_accel_cmd - a_ego_blended + self.error_rate.update((error - self.prev_error) / (DT_CTRL * 3)) + self.prev_error = error + + error_future = pcm_accel_cmd - a_ego_future + pcm_accel_cmd = self.long_pid.update(error_future, error_rate=self.error_rate.x, + speed=CS.out.vEgo, + feedforward=pcm_accel_cmd) else: - self.distance_button = 0 + self.long_pid.reset() + self.error_rate.x = 0.0 + self.prev_error = 0.0 - # Lexus IS uses a different cancellation message - if pcm_cancel_cmd and self.CP.carFingerprint in UNSUPPORTED_DSU_CAR: - can_sends.append(toyotacan.create_acc_cancel_command(self.packer)) - elif self.CP.openpilotLongitudinalControl: - # internal PCM gas command can get stuck unwinding from negative accel so we apply a generous rate limit - pcm_accel_cmd = min(pcm_accel_cmd, self.accel + ACCEL_WINDUP_LIMIT) if CC.longActive else 0.0 + # Along with rate limiting positive jerk above, this greatly improves gas response time + # Consider the net acceleration request that the PCM should be applying (pitch included) + net_acceleration_request_min = min(actuators.accel + accel_due_to_pitch, net_acceleration_request) + if net_acceleration_request_min < 0.2 or stopping or not CC.longActive: + self.permit_braking = True + elif net_acceleration_request_min > 0.3: + self.permit_braking = False + + pcm_accel_cmd = clip(pcm_accel_cmd, self.params.ACCEL_MIN, self.params.ACCEL_MAX) can_sends.append(toyotacan.create_accel_command(self.packer, pcm_accel_cmd, pcm_cancel_cmd, self.permit_braking, self.standstill_req, lead, CS.acc_type, fcw_alert, self.distance_button, self.reverse_cruise_active)) self.accel = pcm_accel_cmd - else: - can_sends.append(toyotacan.create_accel_command(self.packer, 0, pcm_cancel_cmd, True, False, lead, CS.acc_type, False, self.distance_button, self.reverse_cruise_active)) - if self.frame % 2 == 0 and self.CP.enableGasInterceptor and self.CP.openpilotLongitudinalControl: - # send exactly zero if gas cmd is zero. Interceptor will send the max between read value and gas cmd. - # This prevents unexpected pedal range rescaling - can_sends.append(create_gas_interceptor_command(self.packer, interceptor_gas_cmd, self.frame // 2)) + else: + # we can spam can to cancel the system even if we are using lat only control + if pcm_cancel_cmd: + if self.CP.carFingerprint in UNSUPPORTED_DSU_CAR: + can_sends.append(toyotacan.create_acc_cancel_command(self.packer)) + else: + can_sends.append(toyotacan.create_accel_command(self.packer, 0, pcm_cancel_cmd, True, False, lead, CS.acc_type, False, self.distance_button, self.reverse_cruise_active)) # *** hud ui *** if self.CP.carFingerprint != CAR.TOYOTA_PRIUS_V: diff --git a/selfdrive/car/toyota/carstate.py b/selfdrive/car/toyota/carstate.py index 55a8dedbb4f42a..716b7db63c1f4e 100644 --- a/selfdrive/car/toyota/carstate.py +++ b/selfdrive/car/toyota/carstate.py @@ -9,7 +9,7 @@ from opendbc.can.parser import CANParser from openpilot.selfdrive.car.interfaces import CarStateBase from openpilot.selfdrive.car.toyota.values import ToyotaFlags, CAR, DBC, STEER_THRESHOLD, NO_STOP_TIMER_CAR, \ - TSS2_CAR, RADAR_ACC_CAR, EPS_SCALE, UNSUPPORTED_DSU_CAR + TSS2_CAR, RADAR_ACC_CAR, EPS_SCALE, UNSUPPORTED_DSU_CAR, SECOC_CAR SteerControlType = car.CarParams.SteerControlType @@ -45,11 +45,15 @@ class CarState(CarStateBase): def __init__(self, CP): super().__init__(CP) can_define = CANDefine(DBC[CP.carFingerprint]["pt"]) - self.shifter_values = can_define.dv["GEAR_PACKET"]["GEAR"] self.eps_torque_scale = EPS_SCALE[CP.carFingerprint] / 100. self.cluster_speed_hyst_gap = CV.KPH_TO_MS / 2. self.cluster_min_speed = CV.KPH_TO_MS / 2. + if CP.flags & ToyotaFlags.SECOC.value: + self.shifter_values = can_define.dv["GEAR_PACKET_HYBRID"]["GEAR"] + else: + self.shifter_values = can_define.dv["GEAR_PACKET"]["GEAR"] + # On cars with cp.vl["STEER_TORQUE_SENSOR"]["STEER_ANGLE"] # the signal is zeroed to where the steering angle is at start. # Need to apply an offset as soon as the steering angle measurements are both received @@ -64,7 +68,8 @@ def __init__(self, CP): self.low_speed_lockout = False self.acc_type = 1 self.lkas_hud = {} - self.pcm_accel_net = 0.0 + self.gvc = 0.0 + self.secoc_synchronization = None # FrogPilot variables self.latActive_previous = False @@ -76,21 +81,10 @@ def __init__(self, CP): def update(self, cp, cp_cam, CC, frogpilot_toggles): ret = car.CarState.new_message() fp_ret = custom.FrogPilotCarState.new_message() + cp_acc = cp_cam if self.CP.carFingerprint in (TSS2_CAR - RADAR_ACC_CAR) else cp - # Describes the acceleration request from the PCM if on flat ground, may be higher or lower if pitched - # CLUTCH->ACCEL_NET is only accurate for gas, PCM_CRUISE->ACCEL_NET is only accurate for brake - # These signals only have meaning when ACC is active - if self.CP.flags & ToyotaFlags.RAISED_ACCEL_LIMIT: - self.pcm_accel_net = max(cp.vl["CLUTCH"]["ACCEL_NET"], 0.0) - - # Sometimes ACC_BRAKING can be 1 while showing we're applying gas already - if cp.vl["PCM_CRUISE"]["ACC_BRAKING"]: - self.pcm_accel_net += min(cp.vl["PCM_CRUISE"]["ACCEL_NET"], 0.0) - - # add creeping force at low speeds only for braking, CLUTCH->ACCEL_NET already shows this - neutral_accel = max(cp.vl["PCM_CRUISE"]["NEUTRAL_FORCE"] / self.CP.mass, 0.0) - if self.pcm_accel_net + neutral_accel < 0.0: - self.pcm_accel_net += neutral_accel + if not self.CP.flags & ToyotaFlags.SECOC.value: + self.gvc = cp.vl["VSC1S07"]["GVC"] ret.doorOpen = any([cp.vl["BODY_CONTROL_STATE"]["DOOR_OPEN_FL"], cp.vl["BODY_CONTROL_STATE"]["DOOR_OPEN_FR"], cp.vl["BODY_CONTROL_STATE"]["DOOR_OPEN_RL"], cp.vl["BODY_CONTROL_STATE"]["DOOR_OPEN_RR"]]) @@ -100,12 +94,22 @@ def update(self, cp, cp_cam, CC, frogpilot_toggles): ret.brakePressed = cp.vl["BRAKE_MODULE"]["BRAKE_PRESSED"] != 0 ret.brakeHoldActive = cp.vl["ESP_CONTROL"]["BRAKE_HOLD_ACTIVE"] == 1 - if self.CP.enableGasInterceptor: - ret.gas = (cp.vl["GAS_SENSOR"]["INTERCEPTOR_GAS"] + cp.vl["GAS_SENSOR"]["INTERCEPTOR_GAS2"]) // 2 - ret.gasPressed = ret.gas > 805 + if self.CP.flags & ToyotaFlags.SECOC.value: + self.secoc_synchronization = copy.copy(cp.vl["SECOC_SYNCHRONIZATION"]) + ret.gas = cp.vl["GAS_PEDAL"]["GAS_PEDAL_USER"] + ret.gasPressed = cp.vl["GAS_PEDAL"]["GAS_PEDAL_USER"] > 0 + can_gear = int(cp.vl["GEAR_PACKET_HYBRID"]["GEAR"]) else: - # TODO: find a common gas pedal percentage signal - ret.gasPressed = cp.vl["PCM_CRUISE"]["GAS_RELEASED"] == 0 + if self.CP.enableGasInterceptor: + ret.gas = (cp.vl["GAS_SENSOR"]["INTERCEPTOR_GAS"] + cp.vl["GAS_SENSOR"]["INTERCEPTOR_GAS2"]) // 2 + ret.gasPressed = ret.gas > 805 + else: + ret.gasPressed = cp.vl["PCM_CRUISE"]["GAS_RELEASED"] == 0 # TODO: these also have GAS_PEDAL, come back and unify + can_gear = int(cp.vl["GEAR_PACKET"]["GEAR"]) + if not self.CP.enableDsu and not self.CP.flags & ToyotaFlags.DISABLE_RADAR.value: + ret.stockAeb = bool(cp_acc.vl["PRE_COLLISION"]["PRECOLLISION_ACTIVE"] and cp_acc.vl["PRE_COLLISION"]["FORCE"] < -1e-5) + if self.CP.carFingerprint != CAR.TOYOTA_MIRAI: + ret.engineRpm = cp.vl["ENGINE_RPM"]["RPM"] ret.wheelSpeeds = self.get_wheel_speeds( cp.vl["WHEEL_SPEEDS"]["WHEEL_SPEED_FL"], @@ -136,14 +140,10 @@ def update(self, cp, cp_cam, CC, frogpilot_toggles): ret.steeringAngleOffsetDeg = self.angle_offset.x ret.steeringAngleDeg = torque_sensor_angle_deg - self.angle_offset.x - can_gear = int(cp.vl["GEAR_PACKET"]["GEAR"]) ret.gearShifter = self.parse_gear_shifter(self.shifter_values.get(can_gear, None)) ret.leftBlinker = cp.vl["BLINKERS_STATE"]["TURN_SIGNALS"] == 1 ret.rightBlinker = cp.vl["BLINKERS_STATE"]["TURN_SIGNALS"] == 2 - if self.CP.carFingerprint != CAR.TOYOTA_MIRAI: - ret.engineRpm = cp.vl["ENGINE_RPM"]["RPM"] - ret.steeringTorque = cp.vl["STEER_TORQUE_SENSOR"]["STEER_TORQUE_DRIVER"] ret.steeringTorqueEps = cp.vl["STEER_TORQUE_SENSOR"]["STEER_TORQUE_EPS"] * self.eps_torque_scale # we could use the override bit from dbc, but it's triggered at too high torque values @@ -174,8 +174,6 @@ def update(self, cp, cp_cam, CC, frogpilot_toggles): conversion_factor = CV.KPH_TO_MS if is_metric else CV.MPH_TO_MS ret.cruiseState.speedCluster = cluster_set_speed * conversion_factor - cp_acc = cp_cam if self.CP.carFingerprint in (TSS2_CAR - RADAR_ACC_CAR) else cp - if self.CP.carFingerprint in TSS2_CAR and not self.CP.flags & ToyotaFlags.DISABLE_RADAR.value: if not (self.CP.flags & ToyotaFlags.SMART_DSU.value): self.acc_type = cp_acc.vl["ACC_CONTROL"]["ACC_TYPE"] @@ -199,9 +197,6 @@ def update(self, cp, cp_cam, CC, frogpilot_toggles): ret.genericToggle = bool(cp.vl["LIGHT_STALK"]["AUTO_HIGH_BEAM"]) ret.espDisabled = cp.vl["ESP_CONTROL"]["TC_DISABLED"] != 0 - if not self.CP.enableDsu and not self.CP.flags & ToyotaFlags.DISABLE_RADAR.value: - ret.stockAeb = bool(cp_acc.vl["PRE_COLLISION"]["PRECOLLISION_ACTIVE"] and cp_acc.vl["PRE_COLLISION"]["FORCE"] < -1e-5) - if self.CP.enableBsm: ret.leftBlindspot = (cp.vl["BSM"]["L_ADJACENT"] == 1) or (cp.vl["BSM"]["L_APPROACHING"] == 1) ret.rightBlindspot = (cp.vl["BSM"]["R_ADJACENT"] == 1) or (cp.vl["BSM"]["R_APPROACHING"] == 1) @@ -264,7 +259,6 @@ def update(self, cp, cp_cam, CC, frogpilot_toggles): @staticmethod def get_can_parser(CP): messages = [ - ("GEAR_PACKET", 1), ("LIGHT_STALK", 1), ("BLINKERS_STATE", 0.15), ("BODY_CONTROL_STATE", 3), @@ -279,11 +273,20 @@ def get_can_parser(CP): ("STEER_TORQUE_SENSOR", 50), ] - if CP.flags & ToyotaFlags.RAISED_ACCEL_LIMIT: - messages.append(("CLUTCH", 15)) + if CP.flags & ToyotaFlags.SECOC.value: + messages += [ + ("GEAR_PACKET_HYBRID", 60), + ("SECOC_SYNCHRONIZATION", 10), + ("GAS_PEDAL", 42), + ] + else: + messages.append(("VSC1S07", 20)) + if CP.carFingerprint not in [CAR.TOYOTA_MIRAI]: + messages.append(("ENGINE_RPM", 42)) - if CP.carFingerprint != CAR.TOYOTA_MIRAI: - messages.append(("ENGINE_RPM", 42)) + messages += [ + ("GEAR_PACKET", 1), + ] if CP.carFingerprint in UNSUPPORTED_DSU_CAR: messages.append(("DSU_CRUISE", 5)) @@ -338,9 +341,14 @@ def get_cam_can_parser(CP): if CP.carFingerprint in (TSS2_CAR - RADAR_ACC_CAR): messages += [ - ("PRE_COLLISION", 33), ("ACC_CONTROL", 33), ("PCS_HUD", 1), ] + # TODO: Figure out new layout of the PRE_COLLISION message + if not CP.flags & ToyotaFlags.SECOC.value: + messages += [ + ("PRE_COLLISION", 33), + ] + return CANParser(DBC[CP.carFingerprint]["pt"], messages, 2) diff --git a/selfdrive/car/toyota/fingerprints.py b/selfdrive/car/toyota/fingerprints.py index b8942cd59d3df9..ec9cdbb073e8df 100644 --- a/selfdrive/car/toyota/fingerprints.py +++ b/selfdrive/car/toyota/fingerprints.py @@ -110,6 +110,7 @@ b'\x018966306Q6000\x00\x00\x00\x00', b'\x018966333N1100\x00\x00\x00\x00', b'\x018966333N4300\x00\x00\x00\x00', + b'\x018966333P3000\x00\x00\x00\x00', b'\x018966333P3100\x00\x00\x00\x00', b'\x018966333P3200\x00\x00\x00\x00', b'\x018966333P4200\x00\x00\x00\x00', @@ -160,6 +161,7 @@ b'8821F0605200 ', b'8821F0606200 ', b'8821F0607200 ', + b'8821F0607300 ', b'8821F0608000 ', b'8821F0608200 ', b'8821F0608300 ', @@ -192,6 +194,7 @@ b'8965B33581\x00\x00\x00\x00\x00\x00', b'8965B33611\x00\x00\x00\x00\x00\x00', b'8965B33621\x00\x00\x00\x00\x00\x00', + b'8965B33630\x00\x00\x00\x00\x00\x00', ], (Ecu.fwdRadar, 0x750, 0xf): [ b'8821F0601200 ', @@ -207,6 +210,7 @@ b'8821F0605200 ', b'8821F0606200 ', b'8821F0607200 ', + b'8821F0607300 ', b'8821F0608000 ', b'8821F0608200 ', b'8821F0608300 ', @@ -754,6 +758,7 @@ b'\x018966353Q2300\x00\x00\x00\x00', b'\x018966353Q4000\x00\x00\x00\x00', b'\x018966353R1100\x00\x00\x00\x00', + b'\x018966353R7000\x00\x00\x00\x00', b'\x018966353R7100\x00\x00\x00\x00', b'\x018966353R8000\x00\x00\x00\x00', b'\x018966353R8100\x00\x00\x00\x00', @@ -1353,6 +1358,7 @@ ], (Ecu.fwdCamera, 0x750, 0x6d): [ b'\x028646F0610000\x00\x00\x00\x008646G3304000\x00\x00\x00\x00', + b'\x028646F0610100\x00\x00\x00\x008646G3304000\x00\x00\x00\x00', b'\x028646F33030D0\x00\x00\x00\x008646G26011A0\x00\x00\x00\x00', b'\x028646F3303100\x00\x00\x00\x008646G26011A0\x00\x00\x00\x00', b'\x028646F3303200\x00\x00\x00\x008646G26011A0\x00\x00\x00\x00', @@ -1550,6 +1556,7 @@ b'\x01896630E36100\x00\x00\x00\x00', b'\x01896630E36200\x00\x00\x00\x00', b'\x01896630E36300\x00\x00\x00\x00', + b'\x01896630E36600\x00\x00\x00\x00', b'\x01896630E37100\x00\x00\x00\x00', b'\x01896630E37200\x00\x00\x00\x00', b'\x01896630E37300\x00\x00\x00\x00', @@ -1656,6 +1663,7 @@ b'\x02348X8000\x00\x00\x00\x00\x00\x00\x00\x00A4802000\x00\x00\x00\x00\x00\x00\x00\x00', b'\x02348Y3000\x00\x00\x00\x00\x00\x00\x00\x00A4802000\x00\x00\x00\x00\x00\x00\x00\x00', b'\x0234D14000\x00\x00\x00\x00\x00\x00\x00\x00A4802000\x00\x00\x00\x00\x00\x00\x00\x00', + b'\x0234D15000\x00\x00\x00\x00\x00\x00\x00\x00A4802000\x00\x00\x00\x00\x00\x00\x00\x00', b'\x0234D16000\x00\x00\x00\x00\x00\x00\x00\x00A4802000\x00\x00\x00\x00\x00\x00\x00\x00', ], (Ecu.abs, 0x7b0, None): [ diff --git a/selfdrive/car/toyota/interface.py b/selfdrive/car/toyota/interface.py index 084bcb14bc52d1..172e0d65bfcb01 100644 --- a/selfdrive/car/toyota/interface.py +++ b/selfdrive/car/toyota/interface.py @@ -29,6 +29,10 @@ def _get_params(ret, candidate, fingerprint, car_fw, disable_openpilot_long, exp if DBC[candidate]["pt"] == "toyota_new_mc_pt_generated": ret.safetyConfigs[0].safetyParam |= Panda.FLAG_TOYOTA_ALT_BRAKE + if ret.flags & ToyotaFlags.SECOC.value: + ret.secOcRequired = True + ret.safetyConfigs[0].safetyParam |= Panda.FLAG_TOYOTA_SECOC + if candidate in ANGLE_CONTROL_CAR: ret.steerControlType = SteerControlType.angle ret.safetyConfigs[0].safetyParam |= Panda.FLAG_TOYOTA_LTA @@ -57,7 +61,11 @@ def _get_params(ret, candidate, fingerprint, car_fw, disable_openpilot_long, exp ret.enableDsu = len(found_ecus) > 0 and Ecu.dsu not in found_ecus and candidate not in (NO_DSU_CAR | UNSUPPORTED_DSU_CAR) \ and not (ret.flags & ToyotaFlags.SMART_DSU) - if candidate == CAR.LEXUS_ES_TSS2 and Ecu.hybrid not in found_ecus: + if Ecu.hybrid in found_ecus: + ret.flags |= ToyotaFlags.HYBRID.value + + # TODO: expand to the rest of the cars + if candidate in (CAR.LEXUS_ES_TSS2,) and not (ret.flags & ToyotaFlags.HYBRID.value): ret.flags |= ToyotaFlags.RAISED_ACCEL_LIMIT.value if candidate == CAR.TOYOTA_PRIUS: @@ -73,7 +81,7 @@ def _get_params(ret, candidate, fingerprint, car_fw, disable_openpilot_long, exp elif candidate in (CAR.LEXUS_RX, CAR.LEXUS_RX_TSS2): ret.wheelSpeedFactor = 1.035 - elif candidate in (CAR.TOYOTA_RAV4_TSS2, CAR.TOYOTA_RAV4_TSS2_2022, CAR.TOYOTA_RAV4_TSS2_2023): + elif candidate in (CAR.TOYOTA_RAV4_TSS2, CAR.TOYOTA_RAV4_TSS2_2022, CAR.TOYOTA_RAV4_TSS2_2023, CAR.TOYOTA_RAV4_PRIME, CAR.TOYOTA_SIENNA_4TH_GEN): ret.lateralTuning.init('pid') ret.lateralTuning.pid.kiBP = [0.0] ret.lateralTuning.pid.kpBP = [0.0] @@ -121,8 +129,13 @@ def _get_params(ret, candidate, fingerprint, car_fw, disable_openpilot_long, exp # - TSS2 radar ACC cars w/ smartDSU installed # - TSS2 radar ACC cars w/o smartDSU installed (disables radar) # - TSS-P DSU-less cars w/ CAN filter installed (no radar parser yet) - ret.openpilotLongitudinalControl = use_sdsu or ret.enableDsu or candidate in (TSS2_CAR - RADAR_ACC_CAR) or bool(ret.flags & ToyotaFlags.DISABLE_RADAR.value) + + if ret.flags & ToyotaFlags.SECOC.value: + ret.openpilotLongitudinalControl = False + else: + ret.openpilotLongitudinalControl = use_sdsu or ret.enableDsu or candidate in (TSS2_CAR - RADAR_ACC_CAR) or bool(ret.flags & ToyotaFlags.DISABLE_RADAR.value) ret.openpilotLongitudinalControl &= not disable_openpilot_long + ret.autoResumeSng = ret.openpilotLongitudinalControl and candidate in NO_STOP_TIMER_CAR ret.enableGasInterceptor = 0x201 in fingerprint[0] and ret.openpilotLongitudinalControl @@ -136,27 +149,21 @@ def _get_params(ret, candidate, fingerprint, car_fw, disable_openpilot_long, exp # to a negative value, so it won't matter. ret.minEnableSpeed = -1. if (candidate in STOP_AND_GO_CAR or ret.enableGasInterceptor) else MIN_ACC_SPEED - tune = ret.longitudinalTuning if ret.enableGasInterceptor: + tune = ret.longitudinalTuning tune.kiBP = [0., 5., 20.] tune.kiV = [1.3, 1.0, 0.7] ret.vEgoStopping = 0.25 ret.vEgoStarting = 0.25 ret.stoppingDecelRate = 0.3 # reach stopping target smoothly elif candidate in TSS2_CAR: - tune.kpV = [0.0] - tune.kiV = [0.5] ret.vEgoStopping = 0.25 ret.vEgoStarting = 0.25 ret.stoppingDecelRate = 0.3 # reach stopping target smoothly - # Since we compensate for imprecise acceleration in carcontroller, we can be less aggressive with tuning - # This also prevents unnecessary request windup due to internal car jerk limits - if ret.flags & ToyotaFlags.RAISED_ACCEL_LIMIT: - tune.kiV = [0.25] - else: - tune.kiBP = [0., 5., 35.] - tune.kiV = [3.6, 2.4, 1.5] + # Hybrids have much quicker longitudinal actuator response + if ret.flags & ToyotaFlags.HYBRID.value: + ret.longitudinalActuatorDelay = 0.05 if params.get_bool("FrogsGoMoosTweak"): ret.stoppingDecelRate = 0.1 # reach stopping target smoothly diff --git a/selfdrive/car/toyota/toyotacan.py b/selfdrive/car/toyota/toyotacan.py index fd3887efab3f49..5d633fc952aa00 100644 --- a/selfdrive/car/toyota/toyotacan.py +++ b/selfdrive/car/toyota/toyotacan.py @@ -33,10 +33,17 @@ def create_lta_steer_command(packer, steer_control_type, steer_angle, steer_req, return packer.make_can_msg("STEERING_LTA", 0, values) +def create_lta_steer_command_2(packer, frame): + values = { + "COUNTER": frame + 128, + } + return packer.make_can_msg("STEERING_LTA_2", 0, values) + + def create_accel_command(packer, accel, pcm_cancel, permit_braking, standstill_req, lead, acc_type, fcw_alert, distance, reverse_cruise_active): # TODO: find the exact canceling bit that does not create a chime values = { - "ACCEL_CMD": accel, # compensated accel command + "ACCEL_CMD": accel, "ACC_TYPE": acc_type, "DISTANCE": distance, "MINI_CAR": lead, diff --git a/selfdrive/car/toyota/values.py b/selfdrive/car/toyota/values.py index 1ae1effd05e238..6fd0885c696550 100644 --- a/selfdrive/car/toyota/values.py +++ b/selfdrive/car/toyota/values.py @@ -298,7 +298,7 @@ class CAR(Platforms): LEXUS_ES_TSS2 = ToyotaTSS2PlatformConfig( [ ToyotaCarDocs("Lexus ES 2019-24"), - ToyotaCarDocs("Lexus ES Hybrid 2019-24", video_link="https://youtu.be/BZ29osRVJeg?t=12"), + ToyotaCarDocs("Lexus ES Hybrid 2019-25", video_link="https://youtu.be/BZ29osRVJeg?t=12"), ], LEXUS_ES.specs, ) diff --git a/selfdrive/controls/controlsd.py b/selfdrive/controls/controlsd.py index e46a7bb828b37d..f182040008f498 100644 --- a/selfdrive/controls/controlsd.py +++ b/selfdrive/controls/controlsd.py @@ -15,7 +15,7 @@ from openpilot.common.git import get_short_branch from openpilot.common.numpy_fast import clip from openpilot.common.params import Params -from openpilot.common.realtime import config_realtime_process, Priority, Ratekeeper, DT_CTRL +from openpilot.common.realtime import config_realtime_process, Priority, Ratekeeper, DT_CTRL, DT_MDL from openpilot.common.swaglog import cloudlog from openpilot.selfdrive.car.car_helpers import get_car_interface, get_startup_event @@ -579,7 +579,7 @@ def state_control(self, CS): torque_params = self.sm['liveTorqueParameters'] friction = self.frogpilot_toggles.steer_friction if self.frogpilot_toggles.use_custom_steer_friction else torque_params.frictionCoefficientFiltered lat_accel_factor = self.frogpilot_toggles.steer_lat_accel_factor if self.frogpilot_toggles.use_custom_lat_accel_factor else torque_params.latAccelFactorFiltered - if self.sm.all_checks(['liveTorqueParameters']) and (torque_params.useParams or self.frogpilot_toggles.force_auto_tune) and not self.frogpilot_toggles.force_auto_tune_off: + if self.sm.all_checks(['liveTorqueParameters']) and (torque_params.useParams or self.frogpilot_toggles.force_auto_tune): self.LaC.update_live_torque_params(lat_accel_factor, torque_params.latAccelOffsetFiltered, friction) @@ -744,7 +744,7 @@ def update_frogpilot_variables(self, CS): self.experimental_mode = not self.experimental_mode self.params.put_bool_nonblocking("ExperimentalMode", self.experimental_mode) - if self.sm.frame % 10 == 0 or self.resume_pressed: + if self.sm.frame * DT_CTRL % DT_MDL == 0 or self.resume_pressed: self.resume_previously_pressed = self.resume_pressed FPCC = custom.FrogPilotCarControl.new_message() diff --git a/selfdrive/controls/radard.py b/selfdrive/controls/radard.py index bdb986428abfa8..cae152992a6cb1 100644 --- a/selfdrive/controls/radard.py +++ b/selfdrive/controls/radard.py @@ -221,6 +221,18 @@ def get_lead_adjacent(tracks: dict[int, Track], model_data: capnp._DynamicStruct return lead_dict +def get_leads_lead(tracks: dict[int, Track], leadOne) -> dict[str, Any]: + lead_dict = {'status': False} + + toyota_corolla_length = 4.6355 + leads_lead_tracks = [c for c in tracks.values() if leadOne.status and c.dRel > leadOne.dRel + toyota_corolla_length] + if len(leads_lead_tracks) > 0: + closest_track = min(leads_lead_tracks, key=lambda c: c.dRel) + lead_dict = closest_track.get_RadarState() + + return lead_dict + + class RadarD: def __init__(self, frogpilot_toggles, radar_ts: float, delay: int = 0): self.points: dict[int, tuple[float, float, float]] = {} @@ -304,6 +316,7 @@ def update(self, sm: messaging.SubMaster, rr): self.radar_state.leadLeftFar = get_lead_adjacent(self.tracks, sm['modelV2'], sm['frogpilotPlan'].laneWidthLeft, left=True, far=True) self.radar_state.leadRight = get_lead_adjacent(self.tracks, sm['modelV2'], sm['frogpilotPlan'].laneWidthRight, left=False) self.radar_state.leadRightFar = get_lead_adjacent(self.tracks, sm['modelV2'], sm['frogpilotPlan'].laneWidthRight, left=False, far=True) + self.radar_state.leadsLead = get_leads_lead(self.tracks, self.radar_state.leadOne) # Update FrogPilot parameters if sm['frogpilotPlan'].togglesUpdated: diff --git a/selfdrive/frogpilot/assets/active_theme/colors/colors.json b/selfdrive/frogpilot/assets/active_theme/colors/colors.json deleted file mode 100644 index bf527d51eb243e..00000000000000 --- a/selfdrive/frogpilot/assets/active_theme/colors/colors.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "LaneLines": { - "red": 23, - "green": 134, - "blue": 68, - "alpha": 242 - }, - "LeadMarker": { - "red": 23, - "green": 134, - "blue": 68, - "alpha": 242 - }, - "Path": { - "red": 23, - "green": 134, - "blue": 68, - "alpha": 242 - }, - "PathEdge": { - "red": 18, - "green": 107, - "blue": 54, - "alpha": 242 - }, - "Sidebar1": { - "red": 23, - "green": 134, - "blue": 68, - "alpha": 242 - }, - "Sidebar2": { - "red": 23, - "green": 134, - "blue": 68, - "alpha": 242 - }, - "Sidebar3": { - "red": 23, - "green": 134, - "blue": 68, - "alpha": 242 - } -} diff --git a/selfdrive/frogpilot/assets/active_theme/distance_icons/aggressive.gif b/selfdrive/frogpilot/assets/active_theme/distance_icons/aggressive.gif deleted file mode 100644 index 05cd8d01c4e7ecedd2a523cc7a5ef102948baf03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90146 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

&kc2=fyjDjK6Ra5Ac`(LMHm)Sgpqp>m{p6GS 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 XZTjH diff --git a/selfdrive/frogpilot/assets/active_theme/distance_icons/traffic.gif b/selfdrive/frogpilot/assets/active_theme/distance_icons/traffic.gif deleted file mode 100644 index 3e3f898c349a923ff9a98759ef07155d7a9ed684..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29247 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

3yZ~fq zva-G3ru5IU2aV^^7B^jgzueE##&BecH(kG~;-7W*&FWjrNdP)Ep_)@Tr7g0%hq50J z-VW72H8%YAX!J2yp2BCHR1@N=0u8c>ADe1@Gbj6X-;te7se2VAM!i0sdpr&Z6k1w4 z-^M=P_G`Qb^Zv*O*0ozdkwzN|?sYUiHsK*JW9o*l{}`N??_~Ndewra6XVET|gzgi#ti=oWb)m=! zhq`ui-pdD*`AkO?Uj44+NL=T=?&o74C^BkpKVB*v<9m`b1sCtV=qzqazP8`?^3Q?T zZTEvUD>pU+=`7Si)-^?cL5{|~hWMzeOoA1O)->_z=jj~9H~1@rhiy2OklqTtg@hv7 z8_D#PP{DgSM8Zc8$={XAc}%HoVD8OMg=0Kmf(*L+RFH;J^feXmUx?ZMl-s5T_n`8O z%}es=3%!vQ#=H*nk)!euWj-8x@hN<;5)b3qwn{3ii)}JFPq9#Y#AXW*W+(c8oaZ1Y zG;Rn!U#W#c(}79t!Odg+QIj9e^bfeCy{%mL|8D1FQ90upp#I+c3?&!NWJFpOa`rfWif zu4Ni(*7f_OcD*5W`aEgdu*g(p@!-;PcfS0HfNTXU6t?)<(-D}`7RfBJa2<}L5;rTO zR!+k$3T3b+fMe9$EL|!d;(e}#U<^BOg_IWBmaiv$pH0o$)IZrBQA&LsS8aPm?!HF4 zMrBCNTQMI&TfX+Ea_tEo0z(IoVXnp2OP6x5`Ji;)msY-OsT2EdC=rhwR!!+rF*|J3 zbqsp4n!DtR-_-+Px#px4TJ~sB^FeRb#(m!!_r&ZS;%pC$ zc4$s9XkVPdm)c56Zx?6R%4ouwc(zZPmPlIRX1O-)fuQYY9+S5`#@mIGMiN2i& zb-;4RXKp@!ev!}=&_J5?(KmygZNKrO&eqv`tGH<9jewJ_yb2^$OAy7)7cB9RRZ2 z#+&@!Yb{r&M)}CnKd-aM8a!a=$2LKEmjC>hkC)?)`2|j-0EjLc+PXJW>K^x%)VbuQ zCzs}sS5vyB_VbB>0t=aZ21`TwfOgGexELAn4q+I9fajW9T+kfgas5oM1nLRUV%BP<{AyPBI9JQTcj;B)sA#hIH>CXO)(6yPX zar7&JjW@iTkAYY|4`~QIB2m^t4dFi1Jw_}42w7k9@3*e(Im0<9HYPes`G-0h#2NZdG!_dcoP+gnqt zn|6tstwHWUTce?*csk6=vTyLvoF?>zbTs`$y{GihtqR%QZ{{`v?a@6QDcP}E`YlR0 ziE65J6Jvi|r2n`lcUhtRYIc+g1Y@n1Ny=id$g?Bt-s<>@qH}K0wOym%Ux}}X_DP=J z9q(DGE`&(1L70Y*03Shx;nNveTLUH$W;b~2_rGX}3Er-y-k(-OMoK@wLF zXgVr(D4j`p;+&pXRC{v03gTQ$6 zIX3d>_?y4Ut&ao09IQY3W+DA>`^UhqM?W5Y_vi0n9x6!4+Inn~kde~0HE6LQ^4Ro- r^^{)Qpl_x1$7VD$QlCWzeXsg>?BnkBRDN#IQq9)1xy>>p!1#Xwll!mI diff --git a/selfdrive/frogpilot/assets/active_theme/icons/button_flag.png b/selfdrive/frogpilot/assets/active_theme/icons/button_flag.png deleted file mode 100644 index 2658aa9b7a859d430192d3753bf2e7570e5d7f81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33046 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 diff --git a/selfdrive/frogpilot/assets/active_theme/icons/button_home.gif b/selfdrive/frogpilot/assets/active_theme/icons/button_home.gif deleted file mode 100644 index 133d8d34ed1c0029e64be8a8d63761cf376013c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37744 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

&kc2=fyjDjK6Ra5Ac`(LMHm)Sgpqp>m{p6GS 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 XZTjH diff --git a/selfdrive/frogpilot/assets/holiday_themes/world_frog_day/icons/steering_wheel/frog.png b/selfdrive/frogpilot/assets/holiday_themes/world_frog_day/icons/steering_wheel/frog.png deleted file mode 100644 index 712255984600c0fecc270564b31db3fb677003bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64941 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

3yZ~fq zva-G3ru5IU2aV^^7B^jgzueE##&BecH(kG~;-7W*&FWjrNdP)Ep_)@Tr7g0%hq50J z-VW72H8%YAX!J2yp2BCHR1@N=0u8c>ADe1@Gbj6X-;te7se2VAM!i0sdpr&Z6k1w4 z-^M=P_G`Qb^Zv*O*0ozdkwzN|?sYUiHsK*JW9o*l{}`N??_~Ndewra6XVET|gzgi#ti=oWb)m=! zhq`ui-pdD*`AkO?Uj44+NL=T=?&o74C^BkpKVB*v<9m`b1sCtV=qzqazP8`?^3Q?T zZTEvUD>pU+=`7Si)-^?cL5{|~hWMzeOoA1O)->_z=jj~9H~1@rhiy2OklqTtg@hv7 z8_D#PP{DgSM8Zc8$={XAc}%HoVD8OMg=0Kmf(*L+RFH;J^feXmUx?ZMl-s5T_n`8O z%}es=3%!vQ#=H*nk)!euWj-8x@hN<;5)b3qwn{3ii)}JFPq9#Y#AXW*W+(c8oaZ1Y zG;Rn!U#W#c(}79t!Odg+QIj9e^bfeCy{%mL|8D1FQ90upp#I+c3?&!NWJFpOa`rfWif zu4Ni(*7f_OcD*5W`aEgdu*g(p@!-;PcfS0HfNTXU6t?)<(-D}`7RfBJa2<}L5;rTO zR!+k$3T3b+fMe9$EL|!d;(e}#U<^BOg_IWBmaiv$pH0o$)IZrBQA&LsS8aPm?!HF4 zMrBCNTQMI&TfX+Ea_tEo0z(IoVXnp2OP6x5`Ji;)msY-OsT2EdC=rhwR!!+rF*|J3 zbqsp4n!DtR-_-+Px#px4TJ~sB^FeRb#(m!!_r&ZS;%pC$ zc4$s9XkVPdm)c56Zx?6R%4ouwc(zZPmPlIRX1O-)fuQYY9+S5`#@mIGMiN2i& zb-;4RXKp@!ev!}=&_J5?(KmygZNKrO&eqv`tGH<9jewJ_yb2^$OAy7)7cB9RRZ2 z#+&@!Yb{r&M)}CnKd-aM8a!a=$2LKEmjC>hkC)?)`2|j-0EjLc+PXJW>K^x%)VbuQ zCzs}sS5vyB_VbB>0t=aZ21`TwfOgGexELAn4q+I9fajW9T+kfgas5oM1nLRUV%BP<{AyPBI9JQTcj;B)sA#hIH>CXO)(6yPX zar7&JjW@iTkAYY|4`~QIB2m^t4dFi1Jw_}42w7k9@3*e(Im0<9HYPes`G-0h#2NZdG!_dcoP+gnqt zn|6tstwHWUTce?*csk6=vTyLvoF?>zbTs`$y{GihtqR%QZ{{`v?a@6QDcP}E`YlR0 ziE65J6Jvi|r2n`lcUhtRYIc+g1Y@n1Ny=id$g?Bt-s<>@qH}K0wOym%Ux}}X_DP=J z9q(DGE`&(1L70Y*03Shx;nNveTLUH$W;b~2_rGX}3Er-y-k(-OMoK@wLF zXgVr(D4j`p;+&pXRC{v03gTQ$6 zIX3d>_?y4Ut&ao09IQY3W+DA>`^UhqM?W5Y_vi0n9x6!4+Inn~kde~0HE6LQ^4Ro- r^^{)Qpl_x1$7VD$QlCWzeXsg>?BnkBRDN#IQq9)1xy>>p!1#Xwll!mI diff --git a/selfdrive/frogpilot/assets/holiday_themes/world_frog_day/signals/turn_signal_1_red.png b/selfdrive/frogpilot/assets/holiday_themes/world_frog_day/signals/turn_signal_1_red.png deleted file mode 100644 index 7c102456e6efb6c985ec6d4b6963366f1399a9cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38001 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 ZOu~d2mZQ;Ck`4#^s3~bHw#eH={~yMK+lc@G diff --git a/selfdrive/frogpilot/assets/model_manager.py b/selfdrive/frogpilot/assets/model_manager.py index d7fa1162422bc5..999d35f167bd10 100644 --- a/selfdrive/frogpilot/assets/model_manager.py +++ b/selfdrive/frogpilot/assets/model_manager.py @@ -127,27 +127,29 @@ def update_model_params(self, model_info, repo_url): for model in model_info: available_models.append(model['id']) - params.put_nonblocking("AvailableModels", ','.join(available_models)) - params.put_nonblocking("AvailableModelsNames", ','.join([model['name'] for model in model_info])) - params.put_nonblocking("ClassicModels", ','.join([model['id'] for model in model_info if model.get("classic_model", False)])) - params.put_nonblocking("ExperimentalModels", ','.join([model['id'] for model in model_info if model.get("experimental", False)])) - params.put_nonblocking("NavigationModels", ','.join([model['id'] for model in model_info if "🗺️" in model['name']])) - params.put_nonblocking("RadarlessModels", ','.join([model['id'] for model in model_info if "📡" not in model['name']])) + params.put("AvailableModels", ','.join(available_models)) + params.put("AvailableModelsNames", ','.join([model['name'] for model in model_info])) + params.put("ClassicModels", ','.join([model['id'] for model in model_info if model.get("classic_model", False)])) + params.put("ExperimentalModels", ','.join([model['id'] for model in model_info if model.get("experimental", False)])) + params.put("NavigationModels", ','.join([model['id'] for model in model_info if "🗺️" in model['name']])) + params.put("RadarlessModels", ','.join([model['id'] for model in model_info if "📡" not in model['name']])) print("Models list updated successfully") if available_models: models_downloaded = self.are_all_models_downloaded(available_models, repo_url) - params.put_bool_nonblocking("ModelsDownloaded", models_downloaded) + params.put_bool("ModelsDownloaded", models_downloaded) def are_all_models_downloaded(self, available_models, repo_url): + model_sizes = self.fetch_all_model_sizes(repo_url) + if not model_sizes: + return + available_models = set(available_models) - {DEFAULT_MODEL, DEFAULT_CLASSIC_MODEL} - automatically_update_models = params.get_bool("AutomaticallyUpdateModels") all_models_downloaded = True + automatically_update_models = params.get_bool("AutomaticallyUpdateModels") - model_sizes = self.fetch_all_model_sizes(repo_url) download_queue = [] - for model in available_models: model_path = os.path.join(MODELS_PATH, f"{model}.thneed") expected_size = model_sizes.get(model) @@ -179,7 +181,7 @@ def validate_models(self): current_model_name = params.get("ModelName", encoding='utf-8') if "(Default)" in current_model_name and current_model_name != DEFAULT_CLASSIC_MODEL_NAME: - params.put_nonblocking("ModelName", current_model_name.replace(" (Default)", "")) + params.put("ModelName", current_model_name.replace(" (Default)", "")) available_models = params.get("AvailableModels", encoding='utf-8') if not available_models: @@ -194,8 +196,8 @@ def validate_models(self): model_name = model_file.replace(".thneed", "") if model_name not in available_models.split(','): if model_name == current_model: - params.put_nonblocking("Model", DEFAULT_CLASSIC_MODEL) - params.put_nonblocking("ModelName", DEFAULT_CLASSIC_MODEL_NAME) + params.put("Model", DEFAULT_CLASSIC_MODEL) + params.put("ModelName", DEFAULT_CLASSIC_MODEL_NAME) delete_file(os.path.join(MODELS_PATH, model_file)) print(f"Deleted model file: {model_file} - Reason: Model is not in the list of available models") @@ -253,4 +255,4 @@ def download_all_models(self): params_memory.put(self.download_progress_param, "All models downloaded!") params_memory.remove("DownloadAllModels") - params.put_bool_nonblocking("ModelsDownloaded", True) + params.put_bool("ModelsDownloaded", True) diff --git a/selfdrive/frogpilot/assets/theme_manager.py b/selfdrive/frogpilot/assets/theme_manager.py index 2d25eacfa086ca..7102bee6d3f725 100644 --- a/selfdrive/frogpilot/assets/theme_manager.py +++ b/selfdrive/frogpilot/assets/theme_manager.py @@ -23,7 +23,7 @@ def update_theme_asset(asset_type, theme, holiday_theme): save_location = os.path.join(ACTIVE_THEME_PATH, asset_type) - if holiday_theme: + if holiday_theme is not None: asset_location = os.path.join(HOLIDAY_THEME_PATH, holiday_theme, asset_type) elif asset_type == "distance_icons": asset_location = os.path.join(THEME_SAVE_PATH, "distance_icons", theme) @@ -51,11 +51,14 @@ def update_theme_asset(asset_type, theme, holiday_theme): os.makedirs(os.path.dirname(save_location), exist_ok=True) + if os.path.islink(save_location): + os.unlink(save_location) + if os.path.exists(save_location): - if os.path.islink(save_location): - os.unlink(save_location) - elif os.path.isdir(save_location): + if os.path.isdir(save_location): shutil.rmtree(save_location) + else: + os.remove(save_location) os.symlink(asset_location, save_location, target_is_directory=True) print(f"Linked {save_location} to {asset_location}") @@ -63,7 +66,7 @@ def update_theme_asset(asset_type, theme, holiday_theme): def update_wheel_image(image, holiday_theme=None, random_event=True): wheel_save_location = os.path.join(ACTIVE_THEME_PATH, "steering_wheel") - if holiday_theme: + if holiday_theme is not None: wheel_location = os.path.join(HOLIDAY_THEME_PATH, holiday_theme, "steering_wheel") elif random_event: wheel_location = os.path.join(RANDOM_EVENTS_PATH, "icons") @@ -142,13 +145,13 @@ def update_holiday(self): for holiday, holiday_date in holidays.items(): if (holiday.endswith("_week") and self.is_within_week_of(holiday_date, now)) or (now == holiday_date): if holiday != self.previous_assets.get("holiday_theme"): - params.put("CurrentHolidayTheme", holiday) + params_memory.put("CurrentHolidayTheme", holiday) update_frogpilot_toggles() self.previous_assets["holiday_theme"] = holiday return if "holiday_theme" in self.previous_assets: - params.remove("CurrentHolidayTheme") + params_memory.remove("CurrentHolidayTheme") update_frogpilot_toggles() self.previous_assets.pop("holiday_theme") @@ -426,6 +429,8 @@ def update_themes(self, frogpilot_toggles, boot_run=False): self.validate_themes(frogpilot_toggles) assets = self.fetch_assets(repo_url) + if not assets["themes"] and not assets["distance_icons"] and not assets["wheels"]: + return downloadable_colors = [] downloadable_icons = [] diff --git a/selfdrive/frogpilot/controls/frogpilot_planner.py b/selfdrive/frogpilot/controls/frogpilot_planner.py index dde238a451b926..85c945a5d92b2a 100644 --- a/selfdrive/frogpilot/controls/frogpilot_planner.py +++ b/selfdrive/frogpilot/controls/frogpilot_planner.py @@ -15,7 +15,9 @@ from openpilot.selfdrive.frogpilot.frogpilot_variables import CRUISING_SPEED, MODEL_LENGTH, NON_DRIVING_GEARS, PLANNER_TIME, THRESHOLD class FrogPilotPlanner: - def __init__(self): + def __init__(self, error_log): + self.error_log = error_log + self.cem = ConditionalExperimentalMode(self) self.frogpilot_acceleration = FrogPilotAcceleration(self) self.frogpilot_events = FrogPilotEvents(self) @@ -34,7 +36,7 @@ def __init__(self): self.road_curvature = 1 self.v_cruise = 0 - def update(self, carState, controlsState, frogpilotCarControl, frogpilotCarState, frogpilotNavigation, modelData, radarless_model, radarState, frogpilot_toggles): + def update(self, carControl, carState, controlsState, frogpilotCarControl, frogpilotCarState, frogpilotNavigation, modelData, radarless_model, radarState, frogpilot_toggles): if radarless_model: model_leads = list(modelData.leadsV3) if len(model_leads) > 0: @@ -50,7 +52,7 @@ def update(self, carState, controlsState, frogpilotCarControl, frogpilotCarState v_ego = max(carState.vEgo, 0) v_lead = self.lead_one.vLead - self.frogpilot_acceleration.update(controlsState, frogpilotCarState, v_cruise, v_ego, frogpilot_toggles) + self.frogpilot_acceleration.update(controlsState, frogpilotCarState, v_ego, frogpilot_toggles) run_cem = frogpilot_toggles.conditional_experimental_mode or frogpilot_toggles.force_stops or frogpilot_toggles.green_light_alert or frogpilot_toggles.show_stopping_point if run_cem and (controlsState.enabled or frogpilotCarControl.alwaysOnLateralActive) and carState.gearShifter not in NON_DRIVING_GEARS: @@ -80,7 +82,7 @@ def update(self, carState, controlsState, frogpilotCarControl, frogpilotCarState self.road_curvature = calculate_road_curvature(modelData, v_ego) if not carState.standstill else 1 self.tracking_lead = self.set_lead_status(frogpilotCarState, v_ego, frogpilot_toggles) - self.v_cruise = self.frogpilot_vcruise.update(carState, controlsState, frogpilotCarControl, frogpilotCarState, frogpilotNavigation, modelData, v_cruise, v_ego, frogpilot_toggles) + self.v_cruise = self.frogpilot_vcruise.update(carControl, carState, controlsState, frogpilotCarControl, frogpilotCarState, frogpilotNavigation, v_cruise, v_ego, frogpilot_toggles) def set_lead_status(self, frogpilotCarState, v_ego, frogpilot_toggles): distance_offset = frogpilot_toggles.increased_stopped_distance if not frogpilotCarState.trafficModeActive else 0 diff --git a/selfdrive/frogpilot/controls/lib/frogpilot_acceleration.py b/selfdrive/frogpilot/controls/lib/frogpilot_acceleration.py index e4f04953da99f7..776e00e6425747 100644 --- a/selfdrive/frogpilot/controls/lib/frogpilot_acceleration.py +++ b/selfdrive/frogpilot/controls/lib/frogpilot_acceleration.py @@ -39,7 +39,7 @@ def __init__(self, FrogPilotPlanner): self.max_accel = 0 self.min_accel = 0 - def update(self, controlsState, frogpilotCarState, v_cruise, v_ego, frogpilot_toggles): + def update(self, controlsState, frogpilotCarState, v_ego, frogpilot_toggles): eco_gear = frogpilotCarState.ecoGear sport_gear = frogpilotCarState.sportGear diff --git a/selfdrive/frogpilot/controls/lib/frogpilot_events.py b/selfdrive/frogpilot/controls/lib/frogpilot_events.py index 5838aed82dc4ad..ce0d33531e03d2 100644 --- a/selfdrive/frogpilot/controls/lib/frogpilot_events.py +++ b/selfdrive/frogpilot/controls/lib/frogpilot_events.py @@ -1,8 +1,6 @@ import os import random -import openpilot.system.sentry as sentry - from openpilot.common.conversions import Conversions as CV from openpilot.common.realtime import DT_MDL from openpilot.selfdrive.controls.controlsd import Desire @@ -11,11 +9,14 @@ from openpilot.selfdrive.frogpilot.assets.theme_manager import update_wheel_image from openpilot.selfdrive.frogpilot.frogpilot_variables import CRUISING_SPEED, params, params_memory +RANDOM_EVENTS_CHANCE = 0.01 * DT_MDL + class FrogPilotEvents: def __init__(self, FrogPilotPlanner): - self.events = Events() self.frogpilot_planner = FrogPilotPlanner + self.events = Events() + self.accel30_played = False self.accel35_played = False self.accel40_played = False @@ -76,7 +77,7 @@ def update(self, carState, controlsState, frogpilotCarControl, frogpilotCarState else: self.tracking_lead_distance = 0 - if not self.openpilot_crashed_played and os.path.isfile(os.path.join(sentry.CRASHES_DIR, 'error.txt')): + if not self.openpilot_crashed_played and os.path.isfile(self.frogpilot_planner.error_log): if frogpilot_toggles.random_events: self.events.add(EventName.openpilotCrashedRandomEvent) else: @@ -135,7 +136,7 @@ def update(self, carState, controlsState, frogpilotCarControl, frogpilotCarState if not self.this_is_fine_played: event_choices.append("thisIsFineSteerSaturated") - if self.frame % 100 == 0 and event_choices: + if random.random() < RANDOM_EVENTS_CHANCE and event_choices: event_choice = random.choice(event_choices) if event_choice == "firefoxSteerSaturated": self.events.add(EventName.firefoxSteerSaturated) @@ -161,17 +162,17 @@ def update(self, carState, controlsState, frogpilotCarControl, frogpilotCarState if not self.fcw_played and frogpilotCarControl.fcwEventTriggered: event_choices = ["toBeContinued", "yourFrogTriedToKillMe"] - event_choice = random.choice(event_choices) - if random.random() < 0.1: + if random.random() < RANDOM_EVENTS_CHANCE: + event_choice = random.choice(event_choices) if event_choice == "toBeContinued": self.events.add(EventName.toBeContinued) elif event_choice == "yourFrogTriedToKillMe": self.events.add(EventName.yourFrogTriedToKillMe) - self.fcw_played = True - self.random_event_played = True + self.fcw_played = True + self.random_event_played = True if not self.youveGotMail_played and frogpilotCarControl.alwaysOnLateralActive and not self.always_on_lateral_active_previously: - if random.random() < 0.01 and not carState.standstill: + if random.random() < RANDOM_EVENTS_CHANCE and not carState.standstill: self.events.add(EventName.youveGotMail) self.youveGotMail_played = True self.random_event_played = True @@ -180,7 +181,7 @@ def update(self, carState, controlsState, frogpilotCarControl, frogpilotCarState if frogpilot_toggles.speed_limit_changed_alert and self.frogpilot_planner.frogpilot_vcruise.speed_limit_changed: self.events.add(EventName.speedLimitChanged) - if self.frame == 4 and params.get("NNFFModelName", encoding='utf-8') is not None: + if 5 > self.frame > 4 and params.get("NNFFModelName", encoding='utf-8') is not None: self.events.add(EventName.torqueNNLoad) if frogpilotCarState.trafficModeActive != self.previous_traffic_mode: @@ -195,4 +196,4 @@ def update(self, carState, controlsState, frogpilotCarControl, frogpilotCarState elif modelData.meta.turnDirection == Desire.turnRight: self.events.add(EventName.turningRight) - self.frame = round(self.frame + DT_MDL, 2) + self.frame += DT_MDL diff --git a/selfdrive/frogpilot/controls/lib/frogpilot_following.py b/selfdrive/frogpilot/controls/lib/frogpilot_following.py index a29c4577700dbf..1605eeb97a0848 100644 --- a/selfdrive/frogpilot/controls/lib/frogpilot_following.py +++ b/selfdrive/frogpilot/controls/lib/frogpilot_following.py @@ -32,7 +32,7 @@ def update(self, aEgo, controlsState, frogpilotCarState, lead_distance, v_ego, v self.base_speed_jerk = interp(v_ego, TRAFFIC_MODE_BP, frogpilot_toggles.traffic_mode_jerk_speed_decrease) self.base_danger_jerk = interp(v_ego, TRAFFIC_MODE_BP, frogpilot_toggles.traffic_mode_jerk_danger) - self.t_follow = interp(v_ego, TRAFFIC_MODE_BP, frogpilot_toggles.traffic_mode_t_follow) + self.t_follow = interp(v_ego, TRAFFIC_MODE_BP, frogpilot_toggles.traffic_mode_follow) else: if aEgo >= 0: self.base_acceleration_jerk, self.base_danger_jerk, self.base_speed_jerk = get_jerk_factor( @@ -76,17 +76,17 @@ def update_follow_values(self, lead_distance, v_ego, v_lead, frogpilot_toggles): # Offset by FrogAi for FrogPilot for a more natural approach to a faster lead if frogpilot_toggles.human_following and v_lead > v_ego: distance_factor = max(lead_distance - (v_ego * self.t_follow), 1) - standstill_offset = max(STOP_DISTANCE - v_ego, 0) * max(v_lead - v_ego, 1) - acceleration_offset = clip((v_lead - v_ego) + standstill_offset - COMFORT_BRAKE, 1, distance_factor) - self.acceleration_jerk /= acceleration_offset - self.speed_jerk /= acceleration_offset + standstill_offset = max((v_lead - v_ego) * (STOP_DISTANCE - v_ego), 1) + acceleration_offset = clip((v_lead - v_ego) * standstill_offset - COMFORT_BRAKE, 1, distance_factor) + self.acceleration_jerk /= standstill_offset + self.speed_jerk /= standstill_offset self.t_follow /= acceleration_offset # Offset by FrogAi for FrogPilot for a more natural approach to a slower lead if (frogpilot_toggles.conditional_slower_lead or frogpilot_toggles.human_following) and v_lead < v_ego > CRUISING_SPEED: distance_factor = max(lead_distance - (v_lead * self.t_follow), 1) - far_lead_offset = max(lead_distance - (v_ego * self.t_follow) - STOP_DISTANCE + (v_lead - CITY_SPEED_LIMIT), 0) - braking_offset = clip((v_ego - v_lead) + far_lead_offset - COMFORT_BRAKE, 1, distance_factor) + far_lead_offset = max(lead_distance - (v_ego * self.t_follow) - STOP_DISTANCE + (v_lead - CITY_SPEED_LIMIT), 1) + braking_offset = clip((v_ego - v_lead) * far_lead_offset - COMFORT_BRAKE, 1, distance_factor) if frogpilot_toggles.human_following: self.t_follow /= braking_offset self.slower_lead = braking_offset - far_lead_offset > 1 diff --git a/selfdrive/frogpilot/controls/lib/frogpilot_vcruise.py b/selfdrive/frogpilot/controls/lib/frogpilot_vcruise.py index fc4a918abf28b0..8b3da09a35e886 100644 --- a/selfdrive/frogpilot/controls/lib/frogpilot_vcruise.py +++ b/selfdrive/frogpilot/controls/lib/frogpilot_vcruise.py @@ -33,7 +33,7 @@ def __init__(self, FrogPilotPlanner): self.tracked_model_length = 0 self.vtsc_target = 0 - def update(self, carState, controlsState, frogpilotCarControl, frogpilotCarState, frogpilotNavigation, modelData, v_cruise, v_ego, frogpilot_toggles): + def update(self, carControl, carState, controlsState, frogpilotCarControl, frogpilotCarState, frogpilotNavigation, v_cruise, v_ego, frogpilot_toggles): force_stop = frogpilot_toggles.force_stops and self.frogpilot_planner.cem.stop_light_detected and controlsState.enabled force_stop &= self.frogpilot_planner.model_length < 100 force_stop &= self.override_force_stop_timer <= 0 @@ -52,11 +52,14 @@ def update(self, carState, controlsState, frogpilotCarControl, frogpilotCarState elif self.override_force_stop_timer > 0: self.override_force_stop_timer -= DT_MDL + v_cruise_cluster = max(controlsState.vCruiseCluster * CV.KPH_TO_MS, v_cruise) + v_cruise_diff = v_cruise_cluster - v_cruise + v_ego_cluster = max(carState.vEgoCluster, v_ego) v_ego_diff = v_ego_cluster - v_ego # Pfeiferj's Map Turn Speed Controller - if frogpilot_toggles.map_turn_speed_controller and v_ego > CRUISING_SPEED and controlsState.enabled: + if frogpilot_toggles.map_turn_speed_controller and v_ego > CRUISING_SPEED and carControl.longActive: mtsc_active = self.mtsc_target < v_cruise self.mtsc_target = clip(self.mtsc.target_speed(v_ego, carState.aEgo, frogpilot_toggles), CRUISING_SPEED, v_cruise) @@ -77,21 +80,13 @@ def update(self, carState, controlsState, frogpilotCarControl, frogpilotCarState unconfirmed_slc_target = self.slc.desired_speed_limit if (frogpilot_toggles.speed_limit_changed_alert or frogpilot_toggles.speed_limit_confirmation) and self.slc_target != 0: - self.speed_limit_changed = unconfirmed_slc_target != self.previous_speed_limit and abs(self.slc_target - unconfirmed_slc_target) > 1 and unconfirmed_slc_target > 1 + self.speed_limit_changed |= unconfirmed_slc_target != self.previous_speed_limit and abs(self.slc_target - unconfirmed_slc_target) > 1 speed_limit_decreased = self.speed_limit_changed and self.slc_target > unconfirmed_slc_target speed_limit_increased = self.speed_limit_changed and self.slc_target < unconfirmed_slc_target - accepted_via_ui = params_memory.get_bool("SLCConfirmedPressed") and params_memory.get_bool("SLCConfirmed") - denied_via_ui = params_memory.get_bool("SLCConfirmedPressed") and not params_memory.get_bool("SLCConfirmed") - - speed_limit_accepted = frogpilotCarControl.resumePressed and controlsState.enabled or accepted_via_ui - speed_limit_denied = any(be.type == ButtonType.decelCruise for be in carState.buttonEvents) and controlsState.enabled or denied_via_ui or self.speed_limit_timer >= 30 - - if speed_limit_accepted or speed_limit_denied: - self.previous_speed_limit = unconfirmed_slc_target - params_memory.put_bool("SLCConfirmed", False) - params_memory.put_bool("SLCConfirmedPressed", False) + speed_limit_accepted = frogpilotCarControl.resumePressed and carControl.longActive or params_memory.get_bool("SLCConfirmed") + speed_limit_denied = any(be.type == ButtonType.decelCruise for be in carState.buttonEvents) and carControl.longActive or self.speed_limit_timer >= 30 if speed_limit_decreased: speed_limit_confirmed = not frogpilot_toggles.speed_limit_confirmation_lower or speed_limit_accepted @@ -100,15 +95,18 @@ def update(self, carState, controlsState, frogpilotCarControl, frogpilotCarState else: speed_limit_confirmed = False + if speed_limit_confirmed: + self.slc_target = unconfirmed_slc_target + + if speed_limit_denied or self.slc_target == unconfirmed_slc_target: + self.speed_limit_changed = False + if self.speed_limit_changed: self.speed_limit_timer += DT_MDL else: self.speed_limit_timer = 0 - if speed_limit_confirmed: - self.slc_target = unconfirmed_slc_target - elif self.slc_target == unconfirmed_slc_target: - self.speed_limit_changed = False + self.previous_speed_limit = unconfirmed_slc_target else: self.slc_target = unconfirmed_slc_target @@ -122,14 +120,14 @@ def update(self, carState, controlsState, frogpilotCarControl, frogpilotCarState self.overridden_speed = v_ego_cluster self.overridden_speed = clip(self.overridden_speed, self.slc_target, v_cruise) elif frogpilot_toggles.speed_limit_controller_override_set_speed: - self.overridden_speed = v_cruise + self.overridden_speed = v_cruise_cluster else: self.overridden_speed = 0 else: self.slc_target = 0 # Pfeiferj's Vision Turn Controller - if frogpilot_toggles.vision_turn_controller and v_ego > CRUISING_SPEED and controlsState.enabled: + if frogpilot_toggles.vision_turn_controller and v_ego > CRUISING_SPEED and carControl.longActive: self.vtsc_target = ((TARGET_LAT_A * frogpilot_toggles.turn_aggressiveness) / (self.frogpilot_planner.road_curvature * frogpilot_toggles.curve_sensitivity))**0.5 self.vtsc_target = clip(self.vtsc_target, CRUISING_SPEED, v_cruise) else: @@ -155,4 +153,7 @@ def update(self, carState, controlsState, frogpilotCarControl, frogpilotCarState targets = [self.mtsc_target, max(self.overridden_speed, self.slc_target) - v_ego_diff, self.vtsc_target] v_cruise = float(min([target if target > CRUISING_SPEED else v_cruise for target in targets])) + self.mtsc_target += v_cruise_diff + self.vtsc_target += v_cruise_diff + return v_cruise diff --git a/selfdrive/frogpilot/controls/lib/speed_limit_controller.py b/selfdrive/frogpilot/controls/lib/speed_limit_controller.py index 9315ad9f3f776b..33298bcef2713f 100644 --- a/selfdrive/frogpilot/controls/lib/speed_limit_controller.py +++ b/selfdrive/frogpilot/controls/lib/speed_limit_controller.py @@ -85,8 +85,12 @@ def get_speed_limit(self, dashboard_speed_limit, max_speed_limit, navigation_spe self.source = min(filtered_limits, key=filtered_limits.get) return filtered_limits[self.source] - for priority in [frogpilot_toggles.speed_limit_priority1, frogpilot_toggles.speed_limit_priority2, frogpilot_toggles.speed_limit_priority3]: - if priority in filtered_limits: + for priority in [ + frogpilot_toggles.speed_limit_priority1, + frogpilot_toggles.speed_limit_priority2, + frogpilot_toggles.speed_limit_priority3 + ]: + if priority is not None and priority in filtered_limits: self.source = priority return filtered_limits[priority] diff --git a/selfdrive/frogpilot/frogpilot_functions.py b/selfdrive/frogpilot/frogpilot_functions.py index a02bf219aa2cf1..bb8fa9205a228a 100644 --- a/selfdrive/frogpilot/frogpilot_functions.py +++ b/selfdrive/frogpilot/frogpilot_functions.py @@ -8,15 +8,16 @@ import time from openpilot.common.basedir import BASEDIR -from openpilot.common.params_pyx import ParamKeyType, UnknownKeyName +from openpilot.common.params_pyx import Params, ParamKeyType, UnknownKeyName from openpilot.common.time import system_time_valid from openpilot.system.hardware import HARDWARE +from openpilot.selfdrive.frogpilot.assets.theme_manager import HOLIDAY_THEME_PATH, update_theme_asset, update_wheel_image from openpilot.selfdrive.frogpilot.frogpilot_utilities import copy_if_exists, run_cmd -from openpilot.selfdrive.frogpilot.frogpilot_variables import ACTIVE_THEME_PATH, MODELS_PATH, THEME_SAVE_PATH, FrogPilotVariables +from openpilot.selfdrive.frogpilot.frogpilot_variables import MODELS_PATH, THEME_SAVE_PATH, FrogPilotVariables, params -def backup_directory(backup, destination, success_message, fail_message, minimum_backup_size=0, params=None, compressed=False): +def backup_directory(backup, destination, success_message, fail_message, minimum_backup_size=0, compressed=False): if not compressed: if os.path.exists(destination): print("Backup already exists. Aborting") @@ -53,29 +54,31 @@ def backup_directory(backup, destination, success_message, fail_message, minimum params.put_int("MinimumBackupSize", compressed_backup_size) -def cleanup_backups(directory, limit, minimum_backup_size=0, compressed=False): +def cleanup_backups(directory, limit, compressed=False): os.makedirs(directory, exist_ok=True) backups = sorted(glob.glob(os.path.join(directory, "*_auto*")), key=os.path.getmtime, reverse=True) for backup in backups[:]: - if backup.endswith("_in_progress"): - run_cmd(["sudo", "rm", "-rf", backup], f"Deleted in-progress backup: {os.path.basename(backup)}", f"Failed to delete in-progress backup: {os.path.basename(backup)}") + if backup.endswith("_in_progress") or backup.endswith("_in_progress.tar.gz"): + if os.path.isdir(backup): + shutil.rmtree(backup) + elif os.path.isfile(backup): + os.remove(backup) + backups.remove(backup) - if compressed: - for backup in backups[:]: - if os.path.getsize(backup) < minimum_backup_size: - run_cmd(["sudo", "rm", "-rf", backup], f"Deleted incomplete backup: {os.path.basename(backup)}", f"Failed to delete incomplete backup: {os.path.basename(backup)}") + for oldest_backup in backups[limit:]: + if os.path.isdir(oldest_backup): + shutil.rmtree(oldest_backup) + elif os.path.isfile(oldest_backup): + os.remove(oldest_backup) - for old_backup in backups[limit - 1:]: - run_cmd(["sudo", "rm", "-rf", old_backup], f"Deleted oldest backup: {os.path.basename(old_backup)}", f"Failed to delete backup: {os.path.basename(old_backup)}") - -def backup_frogpilot(build_metadata, params): +def backup_frogpilot(build_metadata): backup_path = os.path.join("/data", "backups") maximum_backups = 5 minimum_backup_size = params.get_int("MinimumBackupSize") - cleanup_backups(backup_path, maximum_backups, minimum_backup_size, compressed=True) + cleanup_backups(backup_path, maximum_backups) _, _, free = shutil.disk_usage(backup_path) required_free_space = minimum_backup_size * maximum_backups @@ -84,10 +87,10 @@ def backup_frogpilot(build_metadata, params): branch = build_metadata.channel commit = build_metadata.openpilot.git_commit_date[12:-16] backup_dir = os.path.join(backup_path, f"{branch}_{commit}_auto") - backup_directory(BASEDIR, backup_dir, f"Successfully backed up FrogPilot to {backup_dir}.", f"Failed to backup FrogPilot to {backup_dir}.", minimum_backup_size, params, True) + backup_directory(BASEDIR, backup_dir, f"Successfully backed up FrogPilot to {backup_dir}.", f"Failed to backup FrogPilot to {backup_dir}.", minimum_backup_size, True) -def backup_toggles(params, params_storage): +def backup_toggles(params_storage): for key in params.all_keys(): if params.get_key_type(key) & ParamKeyType.FROGPILOT_STORAGE: value = params.get(key) @@ -103,7 +106,7 @@ def backup_toggles(params, params_storage): backup_directory(os.path.join("/data", "params", "d"), backup_dir, f"Successfully backed up toggles to {backup_dir}.", f"Failed to backup toggles to {backup_dir}.") -def convert_params(params, params_storage): +def convert_params(params_storage): print("Starting to convert params") required_type = str @@ -159,7 +162,10 @@ def decrease_param(key): print("Param conversion completed") -def frogpilot_boot_functions(build_metadata, params, params_storage): +def frogpilot_boot_functions(build_metadata, params_storage): + if params.get_bool("HasAcceptedTerms"): + params_storage.clear_all() + old_screenrecordings = os.path.join("/data", "media", "0", "videos") new_screenrecordings = os.path.join("/data", "media", "screen_recordings") @@ -171,15 +177,17 @@ def frogpilot_boot_functions(build_metadata, params, params_storage): print("Waiting for system time to become valid...") time.sleep(1) - backup_frogpilot(build_metadata, params) - backup_toggles(params, params_storage) + if params.get("UpdaterAvailableBranches") is None: + os.system("pkill -SIGUSR1 -f system.updated.updated") + + backup_frogpilot(build_metadata) + backup_toggles(params_storage) -def setup_frogpilot(build_metadata, params): +def setup_frogpilot(build_metadata): FrogPilotVariables().update(started=False) - remount_persist = ["sudo", "mount", "-o", "remount,rw", "/persist"] - run_cmd(remount_persist, "Successfully remounted /persist as read-write.", "Failed to remount /persist.") + run_cmd(["sudo", "mount", "-o", "remount,rw", "/persist"], "Successfully remounted /persist as read-write.", "Failed to remount /persist.") os.makedirs("/persist/params", exist_ok=True) os.makedirs(MODELS_PATH, exist_ok=True) @@ -197,38 +205,43 @@ def setup_frogpilot(build_metadata, params): shutil.rmtree(frog_theme_path) params.put_bool("ResetFrogTheme", not (os.path.exists(animated_frog_theme_path) or os.path.exists(frog_distance_theme_path) or os.path.exists(frog_theme_path))) - frog_color_source = os.path.join(ACTIVE_THEME_PATH, "colors") + frog_color_source = os.path.join(HOLIDAY_THEME_PATH, "world_frog_day", "colors") frog_color_destination = os.path.join(THEME_SAVE_PATH, "theme_packs/frog/colors") if not os.path.exists(frog_color_destination): copy_if_exists(frog_color_source, frog_color_destination) + update_theme_asset("colors", "world_frog_day", "world_frog_day") - frog_distance_icon_source = os.path.join(ACTIVE_THEME_PATH, "distance_icons") + frog_distance_icon_source = os.path.join(HOLIDAY_THEME_PATH, "world_frog_day", "distance_icons") frog_distance_icon_destination = os.path.join(THEME_SAVE_PATH, "distance_icons/frog-animated") if not os.path.exists(frog_distance_icon_destination): copy_if_exists(frog_distance_icon_source, frog_distance_icon_destination) + update_theme_asset("distance_icons", "world_frog_day", "world_frog_day") - frog_icon_source = os.path.join(ACTIVE_THEME_PATH, "icons") + frog_icon_source = os.path.join(HOLIDAY_THEME_PATH, "world_frog_day", "icons") frog_icon_destination = os.path.join(THEME_SAVE_PATH, "theme_packs/frog-animated/icons") if not os.path.exists(frog_icon_destination): copy_if_exists(frog_icon_source, frog_icon_destination) + update_theme_asset("icons", "world_frog_day", "world_frog_day") - frog_signal_source = os.path.join(ACTIVE_THEME_PATH, "signals") + frog_signal_source = os.path.join(HOLIDAY_THEME_PATH, "world_frog_day", "signals") frog_signal_destination = os.path.join(THEME_SAVE_PATH, "theme_packs/frog/signals") if not os.path.exists(frog_signal_destination): copy_if_exists(frog_signal_source, frog_signal_destination) + update_theme_asset("signals", "world_frog_day", "world_frog_day") - frog_sound_source = os.path.join(ACTIVE_THEME_PATH, "sounds") + frog_sound_source = os.path.join(HOLIDAY_THEME_PATH, "world_frog_day", "sounds") frog_sound_destination = os.path.join(THEME_SAVE_PATH, "theme_packs/frog/sounds") if not os.path.exists(frog_sound_destination): copy_if_exists(frog_sound_source, frog_sound_destination) + update_theme_asset("sounds", "world_frog_day", "world_frog_day") - frog_steering_wheel_source = os.path.join(ACTIVE_THEME_PATH, "steering_wheel") + frog_steering_wheel_source = os.path.join(HOLIDAY_THEME_PATH, "world_frog_day", "steering_wheel") frog_steering_wheel_destination = os.path.join(THEME_SAVE_PATH, "steering_wheels") if not os.path.exists(frog_steering_wheel_destination): copy_if_exists(frog_steering_wheel_source, frog_steering_wheel_destination, single_file_name="frog.png") + update_wheel_image("world_frog_day", "world_frog_day", random_event=False) - remount_root = ["sudo", "mount", "-o", "remount,rw", "/"] - run_cmd(remount_root, "File system remounted as read-write.", "Failed to remount file system.") + run_cmd(["sudo", "mount", "-o", "remount,rw", "/"], "File system remounted as read-write.", "Failed to remount file system.") boot_logo_location = "/usr/comma/bg.jpg" boot_logo_save_location = os.path.join(BASEDIR, "selfdrive", "frogpilot", "assets", "other_images", "original_bg.jpg") @@ -246,7 +259,6 @@ def uninstall_frogpilot(): boot_logo_location = "/usr/comma/bg.jpg" boot_logo_restore_location = os.path.join(BASEDIR, "selfdrive", "frogpilot", "assets", "other_images", "original_bg.jpg") - copy_cmd = ["sudo", "cp", boot_logo_restore_location, boot_logo_location] - run_cmd(copy_cmd, "Successfully restored the original boot logo.", "Failed to restore the original boot logo.") + run_cmd(["sudo", "cp", boot_logo_restore_location, boot_logo_location], "Successfully restored the original boot logo.", "Failed to restore the original boot logo.") HARDWARE.uninstall() diff --git a/selfdrive/frogpilot/frogpilot_process.py b/selfdrive/frogpilot/frogpilot_process.py index 570183b14f3e22..03372b9de56cd1 100644 --- a/selfdrive/frogpilot/frogpilot_process.py +++ b/selfdrive/frogpilot/frogpilot_process.py @@ -18,6 +18,7 @@ from openpilot.selfdrive.frogpilot.frogpilot_functions import backup_toggles from openpilot.selfdrive.frogpilot.frogpilot_utilities import is_url_pingable from openpilot.selfdrive.frogpilot.frogpilot_variables import FrogPilotVariables, get_frogpilot_toggles, params, params_memory +from openpilot.selfdrive.frogpilot.navigation.mapd import update_mapd locks = { "backup_toggles": threading.Lock(), @@ -26,13 +27,13 @@ "download_theme": threading.Lock(), "update_active_theme": threading.Lock(), "update_checks": threading.Lock(), + "update_mapd": threading.Lock(), "update_models": threading.Lock(), "update_themes": threading.Lock() } running_threads = {} - def run_thread_with_lock(name, target, args=()): if not running_threads.get(name, threading.Thread()).is_alive(): with locks[name]: @@ -40,27 +41,25 @@ def run_thread_with_lock(name, target, args=()): thread.start() running_threads[name] = thread +def automatic_update_check(): + if params_memory.get_bool("ManualUpdateInitiated"): + return + + os.system("pkill -SIGUSR1 -f system.updated.updated") + while params.get("UpdaterState", encoding="utf8") != "idle": + time.sleep(60) -def automatic_update_check(frogs_go_moo, started): - update_available = params.get_bool("UpdaterFetchAvailable") - update_ready = params.get_bool("UpdateAvailable") - update_state_idle = params.get("UpdaterState", encoding='utf8') == "idle" + if not params.get_bool("UpdaterFetchAvailable"): + return - if update_ready and not started: - if not frogs_go_moo: - os.system("pkill -SIGUSR1 -f system.updated.updated") - time.sleep(30) - if params.get_bool("UpdaterFetchAvailable"): - os.system("pkill -SIGHUP -f system.updated.updated") - time.sleep(300) - HARDWARE.reboot() - elif update_available: - os.system("pkill -SIGUSR1 -f system.updated.updated") - time.sleep(30) - os.system("pkill -SIGHUP -f system.updated.updated") - elif update_state_idle: - os.system("pkill -SIGUSR1 -f system.updated.updated") + os.system("pkill -SIGHUP -f system.updated.updated") + while not params.get_bool("UpdateAvailable"): + time.sleep(60) + while params.get_bool("IsOnroad"): + time.sleep(60) + + HARDWARE.reboot() def check_assets(model_manager, theme_manager, frogpilot_toggles): if params_memory.get_bool("DownloadAllModels"): @@ -84,19 +83,19 @@ def check_assets(model_manager, theme_manager, frogpilot_toggles): if asset_to_download is not None: run_thread_with_lock("download_theme", theme_manager.download_theme, (asset_type, asset_to_download, param)) - -def update_checks(automatic_updates, frogs_go_moo, model_manager, now, screen_off, started, theme_manager, time_validated): +def update_checks(model_manager, now, theme_manager, time_validated, frogpilot_toggles): if not (is_url_pingable("https://github.com") or is_url_pingable("https://gitlab.com")): return - if automatic_updates and (screen_off or frogs_go_moo): - automatic_update_check(frogs_go_moo, started) + if frogpilot_toggles.automatic_updates: + automatic_update_check() if time_validated: update_maps(now) + run_thread_with_lock("update_mapd", update_mapd()) run_thread_with_lock("update_models", model_manager.update_models) - + run_thread_with_lock("update_themes", theme_manager.update_themes(frogpilot_toggles)) def update_maps(now): maps_selected = params.get("MapsSelected", encoding='utf8') @@ -120,15 +119,18 @@ def update_maps(now): if params.get("OSMDownloadProgress", encoding='utf-8') is None: params_memory.put("OSMDownloadLocations", maps_selected) - params.put_nonblocking("LastMapsUpdate", todays_date) - + params.put("LastMapsUpdate", todays_date) def frogpilot_thread(): config_realtime_process(5, Priority.CTRL_LOW) + error_log = os.path.join(sentry.CRASHES_DIR, 'error.txt') + if os.path.isfile(error_log): + os.remove(error_log) + params_storage = Params("/persist/params") - frogpilot_planner = FrogPilotPlanner() + frogpilot_planner = FrogPilotPlanner(error_log) frogpilot_tracking = FrogPilotTracking() frogpilot_variables = FrogPilotVariables() model_manager = ModelManager() @@ -145,35 +147,37 @@ def frogpilot_thread(): toggles_last_updated = datetime.datetime.now() - error_log = os.path.join(sentry.CRASHES_DIR, 'error.txt') - if os.path.isfile(error_log): - os.remove(error_log) - pm = messaging.PubMaster(['frogpilotPlan']) - sm = messaging.SubMaster(['carState', 'controlsState', 'deviceState', 'modelV2', 'radarState', + sm = messaging.SubMaster(['carControl', 'carState', 'controlsState', 'deviceState', 'modelV2', 'radarState', 'frogpilotCarControl', 'frogpilotCarState', 'frogpilotNavigation'], poll='modelV2', ignore_avg_freq=['radarState']) + run_thread_with_lock("update_active_theme", theme_manager.update_active_theme, (frogpilot_toggles,)) + while True: sm.update() now = datetime.datetime.now() - deviceState = sm['deviceState'] - screen_off = deviceState.screenBrightnessPercent == 0 - started = deviceState.started + + started = sm['deviceState'].started if params_memory.get_bool("FrogPilotTogglesUpdated"): frogpilot_variables.update(started) frogpilot_toggles = get_frogpilot_toggles() + if time_validated: - run_thread_with_lock("backup_toggles", backup_toggles, (params, params_storage)) + run_thread_with_lock("backup_toggles", backup_toggles, (params_storage,)) + run_thread_with_lock("update_active_theme", theme_manager.update_active_theme, (frogpilot_toggles,)) + toggles_last_updated = now toggles_updated = (now - toggles_last_updated).total_seconds() <= 1 if not started and started_previously: - frogpilot_planner = FrogPilotPlanner() + frogpilot_planner = FrogPilotPlanner(error_log) frogpilot_tracking = FrogPilotTracking() + + run_update_checks = True elif started and not started_previously: radarless_model = frogpilot_toggles.radarless_model @@ -181,7 +185,7 @@ def frogpilot_thread(): os.remove(error_log) if started and sm.updated['modelV2']: - frogpilot_planner.update(sm['carState'], sm['controlsState'], sm['frogpilotCarControl'], sm['frogpilotCarState'], + frogpilot_planner.update(sm['carControl'], sm['carState'], sm['controlsState'], sm['frogpilotCarControl'], sm['frogpilotCarState'], sm['frogpilotNavigation'], sm['modelV2'], radarless_model, sm['radarState'], frogpilot_toggles) frogpilot_planner.publish(sm, pm, frogpilot_toggles, toggles_updated) @@ -193,25 +197,24 @@ def frogpilot_thread(): started_previously = started - check_assets(model_manager, theme_manager, frogpilot_toggles) + if now.second % 2 == 0: + check_assets(model_manager, theme_manager, frogpilot_toggles) + + run_update_checks |= params_memory.get_bool("ManualUpdateInitiated") + run_update_checks |= now.second == 0 and (now.minute % 60 == 0 or frogpilot_toggles.frogs_go_moo) - if params_memory.get_bool("ManualUpdateInitiated"): - run_thread_with_lock("update_checks", update_checks, (False, frogpilot_toggles.frogs_go_moo, model_manager, now, screen_off, started, theme_manager, time_validated)) - run_thread_with_lock("update_themes", theme_manager.update_themes(frogpilot_toggles)) - elif now.second == 0: - run_update_checks = not screen_off and not started or now.minute % 15 == 0 or frogpilot_toggles.frogs_go_moo - elif run_update_checks: - run_thread_with_lock("update_checks", update_checks, (frogpilot_toggles.automatic_updates, frogpilot_toggles.frogs_go_moo, model_manager, now, screen_off, started, theme_manager, time_validated)) + if run_update_checks: + run_thread_with_lock("update_checks", update_checks, (model_manager, now, theme_manager, time_validated, frogpilot_toggles)) if time_validated: theme_manager.update_holiday() run_update_checks = False - elif not time_validated: time_validated = system_time_valid() if not time_validated: continue + theme_manager.update_holiday() run_thread_with_lock("update_models", model_manager.update_models, (True,)) run_thread_with_lock("update_themes", theme_manager.update_themes, (frogpilot_toggles, True,)) @@ -219,6 +222,5 @@ def frogpilot_thread(): def main(): frogpilot_thread() - if __name__ == "__main__": main() diff --git a/selfdrive/frogpilot/frogpilot_variables.py b/selfdrive/frogpilot/frogpilot_variables.py index a41ba95513e0cd..8a1a0d0545d9ca 100644 --- a/selfdrive/frogpilot/frogpilot_variables.py +++ b/selfdrive/frogpilot/frogpilot_variables.py @@ -2,7 +2,6 @@ import math import os import random -import time from types import SimpleNamespace @@ -18,6 +17,7 @@ from panda import ALTERNATIVE_EXPERIENCE params = Params() +params_default = Params("/data/params_default") params_memory = Params("/dev/shm/params") GearShifter = car.CarState.GearShifter @@ -35,22 +35,14 @@ RANDOM_EVENTS_PATH = os.path.join(BASEDIR, "selfdrive", "frogpilot", "assets", "random_events") THEME_SAVE_PATH = os.path.join("/data", "themes") -DEFAULT_MODEL = "alabama" -DEFAULT_MODEL_NAME = "Alabama" +DEFAULT_MODEL = "playstation" +DEFAULT_MODEL_NAME = "PlayStation®" DEFAULT_CLASSIC_MODEL = "north-dakota" DEFAULT_CLASSIC_MODEL_NAME = "North Dakota (Default)" def get_frogpilot_toggles(): - while True: - toggles = params.get("FrogPilotToggles") - if toggles is not None: - try: - return SimpleNamespace(**json.loads(toggles)) - except Exception as e: - print(f"Unexpected error while retrieving toggles: {e}, value: {toggles}") - time.sleep(0.1) - time.sleep(0.1) + return SimpleNamespace(**json.loads(params_memory.get("FrogPilotToggles", block=True))) def has_prime(): return params.get_int("PrimeType") > 0 @@ -58,308 +50,318 @@ def has_prime(): def update_frogpilot_toggles(): params_memory.put_bool("FrogPilotTogglesUpdated", True) -frogpilot_default_params: list[tuple[str, bool | bytes | int | float | str]] = [ - ("AccelerationPath", 1), - ("AccelerationProfile", 2), - ("AdjacentLeadsUI", 1), - ("AdjacentPath", 0), - ("AdjacentPathMetrics", 0), - ("AdvancedCustomUI", 0), - ("AdvancedLateralTune", 0), - ("AggressiveFollow", 1.25), - ("AggressiveJerkAcceleration", 50), - ("AggressiveJerkDanger", 100), - ("AggressiveJerkDeceleration", 50), - ("AggressiveJerkSpeed", 50), - ("AggressiveJerkSpeedDecrease", 50), - ("AggressivePersonalityProfile", 1), - ("AlertVolumeControl", 0), - ("AlwaysOnLateral", 1), - ("AlwaysOnLateralLKAS", 0), - ("AlwaysOnLateralMain", 1), - ("AMapKey1", ""), - ("AMapKey2", ""), - ("AutomaticallyUpdateModels", 1), - ("AutomaticUpdates", 1), - ("AvailableModels", ""), - ("AvailableModelsNames", ""), - ("BigMap", 0), - ("BlacklistedModels", ""), - ("BlindSpotMetrics", 1), - ("BlindSpotPath", 1), - ("BorderMetrics", 1), - ("CameraView", 3), - ("CarMake", ""), - ("CarModel", ""), - ("CarModelName", ""), - ("CECurves", 1), - ("CECurvesLead", 0), - ("CELead", 0), - ("CEModelStopTime", 8), - ("CENavigation", 1), - ("CENavigationIntersections", 0), - ("CENavigationLead", 0), - ("CENavigationTurns", 1), - ("CertifiedHerbalistDrives", 0), - ("CertifiedHerbalistScore", 0), - ("CESignalSpeed", 55), - ("CESignalLaneDetection", 1), - ("CESlowerLead", 0), - ("CESpeed", 0), - ("CESpeedLead", 0), - ("CEStoppedLead", 0), - ("ClassicModels", ""), - ("ClusterOffset", 1.015), - ("Compass", 0), - ("ConditionalExperimental", 1), - ("CrosstrekTorque", 1), - ("CurveSensitivity", 100), - ("CurveSpeedControl", 0), - ("CustomAlerts", 1), - ("CustomColors", "frog"), - ("CustomCruise", 1), - ("CustomCruiseLong", 5), - ("CustomDistanceIcons", "stock"), - ("CustomIcons", "frog-animated"), - ("CustomizationLevel", 0), - ("CustomizationLevelConfirmed", 0), - ("CustomPersonalities", 0), - ("CustomSignals", "frog"), - ("CustomSounds", "frog"), - ("CustomUI", 1), - ("DecelerationProfile", 1), - ("DefaultModelName", DEFAULT_CLASSIC_MODEL_NAME), - ("DeveloperUI", 0), - ("DeviceManagement", 1), - ("DeviceShutdown", 9), - ("DisableOnroadUploads", 0), - ("DisableOpenpilotLongitudinal", 0), - ("DisengageVolume", 101), - ("DissolvedOxygenDrives", 0), - ("DissolvedOxygenScore", 0), - ("DriverCamera", 0), - ("DuckAmigoDrives", 0), - ("DuckAmigoScore", 0), - ("DynamicPathWidth", 0), - ("DynamicPedalsOnUI", 1), - ("EngageVolume", 101), - ("ExperimentalGMTune", 0), - ("ExperimentalModeActivation", 1), - ("ExperimentalModels", ""), - ("ExperimentalModeViaDistance", 1), - ("ExperimentalModeViaLKAS", 1), - ("ExperimentalModeViaTap", 0), - ("Fahrenheit", 0), - ("ForceAutoTune", 0), - ("ForceAutoTuneOff", 0), - ("ForceFingerprint", 0), - ("ForceMPHDashboard", 0), - ("ForceStandstill", 0), - ("ForceStops", 0), - ("FPSCounter", 1), - ("FrogPilotToggles", ""), - ("FrogsGoMoosTweak", 1), - ("FullMap", 0), - ("GasRegenCmd", 1), - ("GMapKey", ""), - ("GoatScream", 0), - ("GreenLightAlert", 0), - ("HideAlerts", 0), - ("HideAOLStatusBar", 0), - ("HideCEMStatusBar", 0), - ("HideCSCUI", 0), - ("HideLeadMarker", 0), - ("HideMapIcon", 0), - ("HideMaxSpeed", 0), - ("HideSpeed", 0), - ("HideSpeedLimit", 0), - ("HolidayThemes", 1), - ("HumanAcceleration", 1), - ("HumanFollowing", 1), - ("IncreasedStoppedDistance", 3), - ("IncreaseThermalLimits", 0), - ("JerkInfo", 1), - ("LaneChangeCustomizations", 0), - ("LaneChangeTime", 1.0), - ("LaneDetectionWidth", 9), - ("LaneLinesWidth", 4), - ("LateralMetrics", 1), - ("LateralTune", 1), - ("LeadDepartingAlert", 0), - ("LeadDetectionThreshold", 35), - ("LeadInfo", 1), - ("LockDoors", 1), - ("LongitudinalMetrics", 1), - ("LongitudinalTune", 1), - ("LongPitch", 1), - ("LosAngelesDrives", 0), - ("LosAngelesScore", 0), - ("LoudBlindspotAlert", 0), - ("LowVoltageShutdown", str(VBATT_PAUSE_CHARGING)), - ("MapAcceleration", 0), - ("MapDeceleration", 0), - ("MapGears", 0), - ("MapboxPublicKey", ""), - ("MapboxSecretKey", ""), - ("MapsSelected", ""), - ("MapStyle", 0), - ("MaxDesiredAcceleration", 4.0), - ("MinimumLaneChangeSpeed", str(LANE_CHANGE_SPEED_MIN / CV.MPH_TO_MS)), - ("Model", DEFAULT_CLASSIC_MODEL), - ("ModelName", DEFAULT_CLASSIC_MODEL_NAME), - ("ModelRandomizer", 0), - ("ModelUI", 1), - ("MTSCCurvatureCheck", 1), - ("MTSCEnabled", 1), - ("NavigationModels", ""), - ("NavigationUI", 1), - ("NewLongAPI", 0), - ("NewLongAPIGM", 1), - ("NNFF", 1), - ("NNFFLite", 1), - ("NoLogging", 0), - ("NorthDakotaDrives", 0), - ("NorthDakotaScore", 0), - ("NotreDameDrives", 0), - ("NotreDameScore", 0), - ("NoUploads", 0), - ("NudgelessLaneChange", 0), - ("NumericalTemp", 1), - ("OfflineMode", 1), - ("Offset1", 5), - ("Offset2", 5), - ("Offset3", 5), - ("Offset4", 10), - ("OneLaneChange", 1), - ("OnroadDistanceButton", 0), - ("openpilotMinutes", 0), - ("PathEdgeWidth", 20), - ("PathWidth", 6.1), - ("PauseAOLOnBrake", 0), - ("PauseLateralOnSignal", 0), - ("PauseLateralSpeed", 0), - ("PedalsOnUI", 0), - ("PersonalizeOpenpilot", 1), - ("PreferredSchedule", 2), - ("PromptDistractedVolume", 101), - ("PromptVolume", 101), - ("QOLLateral", 1), - ("QOLLongitudinal", 1), - ("QOLVisuals", 1), - ("RadarlessModels", ""), - ("RadicalTurtleDrives", 0), - ("RadicalTurtleScore", 0), - ("RainbowPath", 0), - ("RandomEvents", 0), - ("RecertifiedHerbalistDrives", 0), - ("RecertifiedHerbalistScore", 0), - ("RefuseVolume", 101), - ("RelaxedFollow", 1.75), - ("RelaxedJerkAcceleration", 100), - ("RelaxedJerkDanger", 100), - ("RelaxedJerkDeceleration", 100), - ("RelaxedJerkSpeed", 100), - ("RelaxedJerkSpeedDecrease", 100), - ("RelaxedPersonalityProfile", 1), - ("ResetFrogTheme", 0), - ("ReverseCruise", 0), - ("RoadEdgesWidth", 2), - ("RoadNameUI", 1), - ("RotatingWheel", 1), - ("ScreenBrightness", 101), - ("ScreenBrightnessOnroad", 101), - ("ScreenManagement", 1), - ("ScreenRecorder", 1), - ("ScreenTimeout", 30), - ("ScreenTimeoutOnroad", 30), - ("SearchInput", 0), - ("SecretGoodOpenpilotDrives", 0), - ("SecretGoodOpenpilotScore", 0), - ("SetSpeedLimit", 0), - ("SetSpeedOffset", 0), - ("ShowCPU", 1), - ("ShowGPU", 0), - ("ShowIP", 0), - ("ShowMemoryUsage", 1), - ("ShowSLCOffset", 1), - ("ShowSteering", 1), - ("ShowStoppingPoint", 1), - ("ShowStoppingPointMetrics", 0), - ("ShowStorageLeft", 0), - ("ShowStorageUsed", 0), - ("Sidebar", 0), - ("SidebarMetrics", 1), - ("SignalMetrics", 0), - ("SLCConfirmation", 0), - ("SLCConfirmationHigher", 0), - ("SLCConfirmationLower", 0), - ("SLCFallback", 2), - ("SLCLookaheadHigher", 5), - ("SLCLookaheadLower", 5), - ("SLCOverride", 1), - ("SLCPriority1", "Dashboard"), - ("SLCPriority2", "Navigation"), - ("SLCPriority3", "Map Data"), - ("SNGHack", 1), - ("SpeedLimitChangedAlert", 1), - ("SpeedLimitController", 1), - ("SpeedLimitSources", 0), - ("StartupMessageBottom", "so I do what I want 🐸"), - ("StartupMessageTop", "Hippity hoppity this is my property"), - ("StandardFollow", 1.45), - ("StandardJerkAcceleration", 100), - ("StandardJerkDanger", 100), - ("StandardJerkDeceleration", 100), - ("StandardJerkSpeed", 100), - ("StandardJerkSpeedDecrease", 100), - ("StandardPersonalityProfile", 1), - ("StandbyMode", 0), - ("StaticPedalsOnUI", 0), - ("SteerFriction", 0.1), - ("SteerFrictionStock", 0.1), - ("SteerLatAccel", 2.5), - ("SteerLatAccelStock", 2.5), - ("SteerKP", 1), - ("SteerKPStock", 1), - ("SteerRatio", 15), - ("SteerRatioStock", 15), - ("StoppedTimer", 0), - ("TacoTune", 0), - ("ToyotaDoors", 1), - ("TrafficFollow", 0.5), - ("TrafficJerkAcceleration", 50), - ("TrafficJerkDanger", 100), - ("TrafficJerkDeceleration", 50), - ("TrafficJerkSpeed", 50), - ("TrafficJerkSpeedDecrease", 50), - ("TrafficPersonalityProfile", 1), - ("TuningInfo", 1), - ("TurnAggressiveness", 100), - ("TurnDesires", 0), - ("UnlimitedLength", 1), - ("UnlockDoors", 1), - ("UseSI", 1), - ("UseVienna", 0), - ("VisionTurnControl", 1), - ("VoltSNG", 0), - ("WarningImmediateVolume", 101), - ("WarningSoftVolume", 101), - ("WD40Drives", 0), - ("WD40Score", 0), - ("WheelIcon", "frog"), - ("WheelSpeed", 0) +frogpilot_default_params: list[tuple[str, str | bytes, int]] = [ + ("AccelerationPath", "1", 2), + ("AccelerationProfile", "2", 0), + ("AdjacentLeadsUI", "0", 3), + ("AdjacentPath", "0", 3), + ("AdjacentPathMetrics", "0", 3), + ("AdvancedCustomUI", "0", 2), + ("AdvancedLateralTune", "0", 3), + ("AggressiveFollow", "1.25", 2), + ("AggressiveJerkAcceleration", "50", 3), + ("AggressiveJerkDanger", "100", 3), + ("AggressiveJerkDeceleration", "50", 3), + ("AggressiveJerkSpeed", "50", 3), + ("AggressiveJerkSpeedDecrease", "50", 3), + ("AggressivePersonalityProfile", "1", 2), + ("AlertVolumeControl", "0", 2), + ("AlwaysOnLateral", "1", 0), + ("AlwaysOnLateralLKAS", "0", 0), + ("AlwaysOnLateralMain", "1", 0), + ("AMapKey1", "", 0), + ("AMapKey2", "", 0), + ("AutomaticallyUpdateModels", "1", 2), + ("AutomaticUpdates", "1", 0), + ("AvailableModels", "", 2), + ("AvailableModelsNames", "", 2), + ("BigMap", "0", 2), + ("BlacklistedModels", "", 2), + ("BlindSpotMetrics", "1", 2), + ("BlindSpotPath", "1", 0), + ("BorderMetrics", "0", 2), + ("CameraView", "3", 2), + ("CarMake", "", 0), + ("CarModel", "", 0), + ("CarModelName", "", 0), + ("CECurves", "1", 1), + ("CECurvesLead", "0", 1), + ("CELead", "0", 1), + ("CEModelStopTime", "8", 1), + ("CENavigation", "1", 2), + ("CENavigationIntersections", "0", 2), + ("CENavigationLead", "1", 2), + ("CENavigationTurns", "1", 2), + ("CertifiedHerbalistDrives", "0", 2), + ("CertifiedHerbalistScore", "0", 2), + ("CESignalSpeed", "55", 1), + ("CESignalLaneDetection", "1", 1), + ("CESlowerLead", "0", 1), + ("CESpeed", "0", 2), + ("CESpeedLead", "0", 2), + ("CEStoppedLead", "0", 1), + ("ClassicModels", "", 2), + ("ClusterOffset", "1.015", 2), + ("Compass", "0", 1), + ("ConditionalExperimental", "1", 1), + ("CrosstrekTorque", "1", 3), + ("CurveSensitivity", "100", 2), + ("CurveSpeedControl", "0", 1), + ("CustomAlerts", "1", 0), + ("CustomColors", "frog", 0), + ("CustomCruise", "1", 2), + ("CustomCruiseLong", "5", 2), + ("CustomDistanceIcons", "stock", 0), + ("CustomIcons", "frog-animated", 0), + ("CustomPersonalities", "0", 2), + ("CustomSignals", "frog", 0), + ("CustomSounds", "frog", 0), + ("CustomUI", "1", 0), + ("DecelerationProfile", "1", 2), + ("DefaultModelName", DEFAULT_CLASSIC_MODEL_NAME, 2), + ("DeveloperUI", "0", 2), + ("DeviceManagement", "1", 1), + ("DeviceShutdown", "9", 1), + ("DisableOnroadUploads", "0", 2), + ("DisableOpenpilotLongitudinal", "0", 2), + ("DisengageVolume", "101", 2), + ("DissolvedOxygenDrives", "0", 2), + ("DissolvedOxygenScore", "0", 2), + ("DriverCamera", "0", 1), + ("DuckAmigoDrives", "0", 2), + ("DuckAmigoScore", "0", 2), + ("DynamicPathWidth", "0", 2), + ("DynamicPedalsOnUI", "1", 2), + ("EngageVolume", "101", 2), + ("ExperimentalGMTune", "0", 2), + ("ExperimentalModeActivation", "1", 1), + ("ExperimentalModels", "", 2), + ("ExperimentalModeViaDistance", "1", 1), + ("ExperimentalModeViaLKAS", "1", 1), + ("ExperimentalModeViaTap", "0", 1), + ("Fahrenheit", "0", 2), + ("ForceAutoTune", "0", 2), + ("ForceAutoTuneOff", "0", 2), + ("ForceFingerprint", "0", 2), + ("ForceMPHDashboard", "0", 2), + ("ForceStandstill", "0", 2), + ("ForceStops", "0", 2), + ("FPSCounter", "1", 3), + ("FrogsGoMoosTweak", "1", 2), + ("FullMap", "0", 2), + ("GasRegenCmd", "1", 2), + ("GMapKey", "", 0), + ("GoatScream", "0", 2), + ("GreenLightAlert", "0", 0), + ("HideAlerts", "0", 2), + ("HideAOLStatusBar", "0", 2), + ("HideCEMStatusBar", "0", 2), + ("HideCSCUI", "0", 2), + ("HideLeadMarker", "0", 2), + ("HideMapIcon", "0", 2), + ("HideMaxSpeed", "0", 2), + ("HideSpeed", "0", 2), + ("HideSpeedLimit", "0", 2), + ("HolidayThemes", "1", 0), + ("HumanAcceleration", "1", 2), + ("HumanFollowing", "1", 2), + ("IncreasedStoppedDistance", "0", 2), + ("IncreaseThermalLimits", "0", 3), + ("JerkInfo", "0", 3), + ("LaneChangeCustomizations", "0", 1), + ("LaneChangeTime", "2.0", 1), + ("LaneDetectionWidth", "9", 2), + ("LaneLinesWidth", "4", 2), + ("LateralMetrics", "1", 3), + ("LateralTune", "1", 2), + ("LeadDepartingAlert", "0", 0), + ("LeadDetectionThreshold", "35", 3), + ("LeadInfo", "1", 3), + ("LockDoors", "1", 0), + ("LongitudinalMetrics", "1", 3), + ("LongitudinalTune", "1", 0), + ("LongPitch", "1", 2), + ("LosAngelesDrives", "0", 2), + ("LosAngelesScore", "0", 2), + ("LoudBlindspotAlert", "0", 0), + ("LowVoltageShutdown", str(VBATT_PAUSE_CHARGING), 3), + ("MapAcceleration", "0", 2), + ("MapDeceleration", "0", 2), + ("MapGears", "0", 2), + ("MapboxPublicKey", "", 0), + ("MapboxSecretKey", "", 0), + ("MapsSelected", "", 0), + ("MapStyle", "0", 2), + ("MaxDesiredAcceleration", "4.0", 3), + ("MinimumLaneChangeSpeed", str(LANE_CHANGE_SPEED_MIN / CV.MPH_TO_MS), 2), + ("Model", DEFAULT_CLASSIC_MODEL, 2), + ("ModelName", DEFAULT_CLASSIC_MODEL_NAME, 2), + ("ModelRandomizer", "0", 2), + ("ModelUI", "1", 2), + ("MTSCCurvatureCheck", "1", 2), + ("MTSCEnabled", "1", 1), + ("NavigationModels", "", 2), + ("NavigationUI", "1", 2), + ("NewLongAPI", "0", 2), + ("NewLongAPIGM", "1", 2), + ("NNFF", "1", 2), + ("NNFFLite", "1", 2), + ("NoLogging", "0", 2), + ("NorthDakotaDrives", "0", 2), + ("NorthDakotaScore", "0", 2), + ("NotreDameDrives", "0", 2), + ("NotreDameScore", "0", 2), + ("NoUploads", "0", 2), + ("NudgelessLaneChange", "0", 1), + ("NumericalTemp", "1", 2), + ("OfflineMode", "0", 2), + ("Offset1", "5", 0), + ("Offset2", "5", 0), + ("Offset3", "5", 0), + ("Offset4", "10", 0), + ("OneLaneChange", "1", 2), + ("OnroadDistanceButton", "0", 0), + ("openpilotMinutes", "0", 0), + ("PathEdgeWidth", "20", 2), + ("PathWidth", "6.1", 2), + ("PauseAOLOnBrake", "0", 2), + ("PauseLateralOnSignal", "0", 2), + ("PauseLateralSpeed", "0", 2), + ("PedalsOnUI", "0", 2), + ("PersonalizeOpenpilot", "1", 0), + ("PreferredSchedule", "2", 0), + ("PromptDistractedVolume", "101", 2), + ("PromptVolume", "101", 2), + ("QOLLateral", "1", 2), + ("QOLLongitudinal", "1", 2), + ("QOLVisuals", "1", 0), + ("RadarlessModels", "", 2), + ("RadicalTurtleDrives", "0", 2), + ("RadicalTurtleScore", "0", 2), + ("RainbowPath", "0", 1), + ("RandomEvents", "0", 1), + ("RecertifiedHerbalistDrives", "0", 2), + ("RecertifiedHerbalistScore", "0", 2), + ("RefuseVolume", "101", 2), + ("RelaxedFollow", "1.75", 2), + ("RelaxedJerkAcceleration", "100", 3), + ("RelaxedJerkDanger", "100", 3), + ("RelaxedJerkDeceleration", "100", 3), + ("RelaxedJerkSpeed", "100", 3), + ("RelaxedJerkSpeedDecrease", "100", 3), + ("RelaxedPersonalityProfile", "1", 2), + ("ResetFrogTheme", "0", 0), + ("ReverseCruise", "0", 2), + ("RoadEdgesWidth", "2", 2), + ("RoadNameUI", "1", 2), + ("RotatingWheel", "1", 1), + ("ScreenBrightness", "101", 2), + ("ScreenBrightnessOnroad", "101", 2), + ("ScreenManagement", "1", 2), + ("ScreenRecorder", "1", 2), + ("ScreenTimeout", "30", 2), + ("ScreenTimeoutOnroad", "30", 2), + ("SearchInput", "0", 0), + ("SecretGoodOpenpilotDrives", "0", 2), + ("SecretGoodOpenpilotScore", "0", 2), + ("SetSpeedLimit", "0", 2), + ("SetSpeedOffset", "0", 2), + ("ShowCPU", "1", 3), + ("ShowGPU", "0", 3), + ("ShowIP", "0", 3), + ("ShowMemoryUsage", "1", 3), + ("ShowSLCOffset", "1", 2), + ("ShowSteering", "0", 2), + ("ShowStoppingPoint", "0", 3), + ("ShowStoppingPointMetrics", "0", 3), + ("ShowStorageLeft", "0", 3), + ("ShowStorageUsed", "0", 3), + ("Sidebar", "0", 0), + ("SidebarMetrics", "1", 3), + ("SignalMetrics", "0", 2), + ("SLCConfirmation", "0", 1), + ("SLCConfirmationHigher", "0", 1), + ("SLCConfirmationLower", "0", 1), + ("SLCFallback", "2", 2), + ("SLCLookaheadHigher", "5", 2), + ("SLCLookaheadLower", "5", 2), + ("SLCOverride", "1", 2), + ("SLCPriority1", "Navigation", 2), + ("SLCPriority2", "Map Data", 2), + ("SLCPriority3", "Dashboard", 2), + ("SNGHack", "1", 2), + ("SpeedLimitChangedAlert", "1", 0), + ("SpeedLimitController", "1", 0), + ("SpeedLimitSources", "0", 3), + ("StartupMessageBottom", "so I do what I want 🐸", 0), + ("StartupMessageTop", "Hippity hoppity this is my property", 0), + ("StandardFollow", "1.45", 2), + ("StandardJerkAcceleration", "100", 3), + ("StandardJerkDanger", "100", 3), + ("StandardJerkDeceleration", "100", 3), + ("StandardJerkSpeed", "100", 3), + ("StandardJerkSpeedDecrease", "100", 3), + ("StandardPersonalityProfile", "1", 2), + ("StandbyMode", "0", 2), + ("StaticPedalsOnUI", "0", 2), + ("SteerFriction", "0", 3), + ("SteerFrictionStock", "0", 3), + ("SteerKP", "0", 3), + ("SteerKPStock", "0", 3), + ("SteerLatAccel", "0", 3), + ("SteerLatAccelStock", "0", 3), + ("SteerRatio", "0", 3), + ("SteerRatioStock", "0", 3), + ("StoppedTimer", "0", 1), + ("TacoTune", "0", 2), + ("ToyotaDoors", "1", 0), + ("TrafficFollow", "0.5", 2), + ("TrafficJerkAcceleration", "50", 3), + ("TrafficJerkDanger", "100", 3), + ("TrafficJerkDeceleration", "50", 3), + ("TrafficJerkSpeed", "50", 3), + ("TrafficJerkSpeedDecrease", "50", 3), + ("TrafficPersonalityProfile", "1", 2), + ("TuningInfo", "0", 3), + ("TuningLevel", "0", 0), + ("TuningLevelConfirmed", "0", 0), + ("TurnAggressiveness", "100", 2), + ("TurnDesires", "0", 2), + ("UnlimitedLength", "1", 2), + ("UnlockDoors", "1", 0), + ("UseSI", "1", 3), + ("UseVienna", "0", 2), + ("VisionTurnControl", "1", 1), + ("VoltSNG", "0", 2), + ("WarningImmediateVolume", "101", 2), + ("WarningSoftVolume", "101", 2), + ("WD40Drives", "0", 2), + ("WD40Score", "0", 2), + ("WheelIcon", "frog", 0), + ("WheelSpeed", "0", 2) +] + +misc_tuning_levels: list[tuple[str, str | bytes, int]] = [ + ("SLCPriority", "", 2), + ("SLCQOL", "", 2), + ("StartupAlert", "", 0) ] class FrogPilotVariables: def __init__(self): - self.default_frogpilot_toggles = SimpleNamespace(**dict(frogpilot_default_params)) self.frogpilot_toggles = SimpleNamespace() + self.tuning_levels = {key: lvl for key, _, lvl in frogpilot_default_params + misc_tuning_levels} self.development_branch = get_build_metadata().channel == "FrogPilot-Development" self.frogpilot_toggles.frogs_go_moo = os.path.isfile("/persist/frogsgomoo.py") self.frogpilot_toggles.block_user = self.development_branch and not self.frogpilot_toggles.frogs_go_moo + for k, v, _ in frogpilot_default_params: + params_default.put(k, v) + + params_memory.put("FrogPilotTuningLevels", json.dumps(self.tuning_levels)) + def update(self, started): openpilot_installed = params.get_bool("HasAcceptedTerms") @@ -368,14 +370,14 @@ def update(self, started): if msg_bytes: with car.CarParams.from_bytes(msg_bytes) as CP: - always_on_lateral_set = key == "CarParams" and CP.alternativeExperience & ALTERNATIVE_EXPERIENCE.ALWAYS_ON_LATERAL + always_on_lateral_set = CP.alternativeExperience & ALTERNATIVE_EXPERIENCE.ALWAYS_ON_LATERAL car_make = CP.carName car_model = CP.carFingerprint - has_auto_tune = (car_model == "hyundai" or car_model == "toyota") and CP.lateralTuning.which == "torque" + has_auto_tune = car_model in {"hyundai", "toyota"} and CP.lateralTuning.which == "torque" has_bsm = CP.enableBsm has_radar = not CP.radarUnavailable is_pid_car = CP.lateralTuning.which == "pid" - max_acceleration_enabled = key == "CarParams" and CP.alternativeExperience & ALTERNATIVE_EXPERIENCE.RAISE_LONGITUDINAL_LIMITS_TO_ISO_MAX + max_acceleration_enabled = CP.alternativeExperience & ALTERNATIVE_EXPERIENCE.RAISE_LONGITUDINAL_LIMITS_TO_ISO_MAX openpilot_longitudinal = CP.openpilotLongitudinalControl pcm_cruise = CP.pcmCruise else: @@ -390,6 +392,10 @@ def update(self, started): openpilot_longitudinal = False pcm_cruise = False + tuning_level = params.get_int("TuningLevel") if params.get_bool("TuningLevelConfirmed") else 3 + + default = params_default + level = self.tuning_levels toggle = self.frogpilot_toggles toggle.is_metric = params.get_bool("IsMetric") @@ -397,215 +403,215 @@ def update(self, started): small_distance_conversion = 1 if toggle.is_metric else CV.INCH_TO_CM speed_conversion = CV.KPH_TO_MS if toggle.is_metric else CV.MPH_TO_MS - toggle.advanced_custom_onroad_ui = params.get_bool("AdvancedCustomUI") - toggle.hide_alerts = toggle.advanced_custom_onroad_ui and params.get_bool("HideAlerts") - toggle.hide_lead_marker = toggle.advanced_custom_onroad_ui and params.get_bool("HideLeadMarker") - toggle.hide_map_icon = toggle.advanced_custom_onroad_ui and params.get_bool("HideMapIcon") - toggle.hide_max_speed = toggle.advanced_custom_onroad_ui and params.get_bool("HideMaxSpeed") - toggle.hide_speed = toggle.advanced_custom_onroad_ui and params.get_bool("HideSpeed") - toggle.hide_speed_limit = toggle.advanced_custom_onroad_ui and params.get_bool("HideSpeedLimit") - toggle.use_wheel_speed = toggle.advanced_custom_onroad_ui and params.get_bool("WheelSpeed") - - toggle.advanced_lateral_tuning = params.get_bool("AdvancedLateralTune") + advanced_custom_ui = params.get_bool("AdvancedCustomUI") if tuning_level >= level["AdvancedCustomUI"] else default.get_bool("AdvancedCustomUI") + toggle.hide_alerts = advanced_custom_ui and (params.get_bool("HideAlerts") if tuning_level >= level["HideAlerts"] else default.get_bool("HideAlerts")) + toggle.hide_lead_marker = advanced_custom_ui and (params.get_bool("HideLeadMarker") if tuning_level >= level["HideLeadMarker"] else default.get_bool("HideLeadMarker")) + toggle.hide_map_icon = advanced_custom_ui and (params.get_bool("HideMapIcon") if tuning_level >= level["HideMapIcon"] else default.get_bool("HideMapIcon")) + toggle.hide_max_speed = advanced_custom_ui and (params.get_bool("HideMaxSpeed") if tuning_level >= level["HideMaxSpeed"] else default.get_bool("HideMaxSpeed")) + toggle.hide_speed = advanced_custom_ui and (params.get_bool("HideSpeed") if tuning_level >= level["HideSpeed"] else default.get_bool("HideSpeed")) + toggle.hide_speed_limit = advanced_custom_ui and (params.get_bool("HideSpeedLimit") if tuning_level >= level["HideSpeedLimit"] else default.get_bool("HideSpeedLimit")) + toggle.use_wheel_speed = advanced_custom_ui and (params.get_bool("WheelSpeed") if tuning_level >= level["WheelSpeed"] else default.get_bool("WheelSpeed")) + + advanced_lateral_tuning = params.get_bool("AdvancedLateralTune") if tuning_level >= level["AdvancedLateralTune"] else default.get_bool("AdvancedLateralTune") + toggle.force_auto_tune = advanced_lateral_tuning and not has_auto_tune and not is_pid_car and (params.get_bool("ForceAutoTune") if tuning_level >= level["ForceAutoTune"] else default.get_bool("ForceAutoTune")) + toggle.force_auto_tune_off = advanced_lateral_tuning and has_auto_tune and not is_pid_car and (params.get_bool("ForceAutoTuneOff") if tuning_level >= level["ForceAutoTuneOff"] else default.get_bool("ForceAutoTuneOff")) stock_steer_friction = params.get_float("SteerFrictionStock") - toggle.steer_friction = params.get_float("SteerFriction") if toggle.advanced_lateral_tuning else stock_steer_friction - toggle.use_custom_steer_friction = toggle.steer_friction != stock_steer_friction and not is_pid_car + toggle.steer_friction = params.get_float("SteerFriction") if advanced_lateral_tuning and tuning_level >= level["SteerFriction"] else stock_steer_friction + toggle.use_custom_steer_friction = toggle.steer_friction != stock_steer_friction and not is_pid_car and not toggle.force_auto_tune or toggle.force_auto_tune_off stock_steer_kp = params.get_float("SteerKPStock") - toggle.steer_kp = params.get_float("SteerKP") if toggle.advanced_lateral_tuning else stock_steer_kp + toggle.steer_kp = params.get_float("SteerKP") if advanced_lateral_tuning and tuning_level >= level["SteerKP"] else stock_steer_kp toggle.use_custom_kp = toggle.steer_kp != stock_steer_kp and not is_pid_car stock_steer_lat_accel_factor = params.get_float("SteerLatAccelStock") - toggle.steer_lat_accel_factor = params.get_float("SteerLatAccel") if toggle.advanced_lateral_tuning else stock_steer_lat_accel_factor - toggle.use_custom_lat_accel_factor = toggle.steer_lat_accel_factor != stock_steer_lat_accel_factor and not is_pid_car + toggle.steer_lat_accel_factor = params.get_float("SteerLatAccel") if advanced_lateral_tuning and tuning_level >= level["SteerLatAccel"] else stock_steer_lat_accel_factor + toggle.use_custom_lat_accel_factor = toggle.steer_lat_accel_factor != stock_steer_lat_accel_factor and not is_pid_car and not toggle.force_auto_tune or toggle.force_auto_tune_off stock_steer_ratio = params.get_float("SteerRatioStock") - toggle.steer_ratio = params.get_float("SteerRatio") if toggle.advanced_lateral_tuning else stock_steer_ratio - toggle.use_custom_steer_ratio = toggle.steer_ratio != stock_steer_ratio - toggle.force_auto_tune = toggle.advanced_lateral_tuning and not has_auto_tune and not is_pid_car and params.get_bool("ForceAutoTune") - toggle.force_auto_tune_off = toggle.advanced_lateral_tuning and has_auto_tune and not is_pid_car and params.get_bool("ForceAutoTuneOff") - - toggle.alert_volume_control = params.get_bool("AlertVolumeControl") - toggle.disengage_volume = params.get_int("DisengageVolume") if toggle.alert_volume_control else 101 - toggle.engage_volume = params.get_int("EngageVolume") if toggle.alert_volume_control else 101 - toggle.prompt_volume = params.get_int("PromptVolume") if toggle.alert_volume_control else 101 - toggle.promptDistracted_volume = params.get_int("PromptDistractedVolume") if toggle.alert_volume_control else 101 - toggle.refuse_volume = params.get_int("RefuseVolume") if toggle.alert_volume_control else 101 - toggle.warningSoft_volume = params.get_int("WarningSoftVolume") if toggle.alert_volume_control else 101 - toggle.warningImmediate_volume = max(params.get_int("WarningImmediateVolume"), 25) if toggle.alert_volume_control else 101 - - toggle.always_on_lateral = params.get_bool("AlwaysOnLateral") + toggle.steer_ratio = params.get_float("SteerRatio") if advanced_lateral_tuning and tuning_level >= level["SteerRatio"] else stock_steer_ratio + toggle.use_custom_steer_ratio = toggle.steer_ratio != stock_steer_ratio and not toggle.force_auto_tune or toggle.force_auto_tune_off + + toggle.alert_volume_control = params.get_bool("AlertVolumeControl") if tuning_level >= level["AlertVolumeControl"] else default.get_bool("AlertVolumeControl") + toggle.disengage_volume = params.get_int("DisengageVolume") if toggle.alert_volume_control and tuning_level >= level["DisengageVolume"] else default.get_int("DisengageVolume") + toggle.engage_volume = params.get_int("EngageVolume") if toggle.alert_volume_control and tuning_level >= level["EngageVolume"] else default.get_int("EngageVolume") + toggle.prompt_volume = params.get_int("PromptVolume") if toggle.alert_volume_control and tuning_level >= level["PromptVolume"] else default.get_int("PromptVolume") + toggle.promptDistracted_volume = params.get_int("PromptDistractedVolume") if toggle.alert_volume_control and tuning_level >= level["PromptDistractedVolume"] else default.get_int("PromptDistractedVolume") + toggle.refuse_volume = params.get_int("RefuseVolume") if toggle.alert_volume_control and tuning_level >= level["RefuseVolume"] else default.get_int("RefuseVolume") + toggle.warningSoft_volume = params.get_int("WarningSoftVolume") if toggle.alert_volume_control and tuning_level >= level["WarningSoftVolume"] else default.get_int("WarningSoftVolume") + toggle.warningImmediate_volume = max(params.get_int("WarningImmediateVolume"), 25) if toggle.alert_volume_control and tuning_level >= level["WarningImmediateVolume"] else default.get_int("WarningImmediateVolume") + + toggle.always_on_lateral = params.get_bool("AlwaysOnLateral") if tuning_level >= level["AlwaysOnLateral"] else default.get_bool("AlwaysOnLateral") toggle.always_on_lateral_set = toggle.always_on_lateral and always_on_lateral_set - toggle.always_on_lateral_lkas = toggle.always_on_lateral_set and car_make != "subaru" and params.get_bool("AlwaysOnLateralLKAS") - toggle.always_on_lateral_main = toggle.always_on_lateral_set and params.get_bool("AlwaysOnLateralMain") - toggle.always_on_lateral_pause_speed = params.get_int("PauseAOLOnBrake") if toggle.always_on_lateral_set else 0 - toggle.always_on_lateral_status_bar = toggle.always_on_lateral_set and not params.get_bool("HideAOLStatusBar") - - toggle.automatic_updates = params.get_bool("AutomaticUpdates") - - toggle.cluster_offset = params.get_float("ClusterOffset") if car_make == "toyota" else 1 - - toggle.conditional_experimental_mode = openpilot_longitudinal and params.get_bool("ConditionalExperimental") - toggle.conditional_curves = toggle.conditional_experimental_mode and params.get_bool("CECurves") - toggle.conditional_curves_lead = toggle.conditional_curves and params.get_bool("CECurvesLead") - toggle.conditional_lead = toggle.conditional_experimental_mode and params.get_bool("CELead") - toggle.conditional_slower_lead = toggle.conditional_lead and params.get_bool("CESlowerLead") - toggle.conditional_stopped_lead = toggle.conditional_lead and params.get_bool("CEStoppedLead") - toggle.conditional_limit = params.get_int("CESpeed") * speed_conversion if toggle.conditional_experimental_mode else 0 - toggle.conditional_limit_lead = params.get_int("CESpeedLead") * speed_conversion if toggle.conditional_experimental_mode else 0 - toggle.conditional_navigation = toggle.conditional_experimental_mode and params.get_bool("CENavigation") - toggle.conditional_navigation_intersections = toggle.conditional_navigation and params.get_bool("CENavigationIntersections") - toggle.conditional_navigation_lead = toggle.conditional_navigation and params.get_bool("CENavigationLead") - toggle.conditional_navigation_turns = toggle.conditional_navigation and params.get_bool("CENavigationTurns") - toggle.conditional_model_stop_time = params.get_int("CEModelStopTime") if toggle.conditional_experimental_mode else 0 - toggle.conditional_signal = params.get_int("CESignalSpeed") if toggle.conditional_experimental_mode else 0 - toggle.conditional_signal_lane_detection = toggle.conditional_signal != 0 and params.get_bool("CESignalLaneDetection") - toggle.conditional_status_bar = toggle.conditional_experimental_mode and not params.get_bool("HideCEMStatusBar") + toggle.always_on_lateral_lkas = toggle.always_on_lateral_set and car_make != "subaru" and (params.get_bool("AlwaysOnLateralLKAS") if tuning_level >= level["AlwaysOnLateralLKAS"] else default.get_bool("AlwaysOnLateralLKAS")) + toggle.always_on_lateral_main = toggle.always_on_lateral_set and (params.get_bool("AlwaysOnLateralMain") if tuning_level >= level["AlwaysOnLateralMain"] else default.get_bool("AlwaysOnLateralMain")) + toggle.always_on_lateral_pause_speed = params.get_int("PauseAOLOnBrake") if toggle.always_on_lateral_set and tuning_level >= level["PauseAOLOnBrake"] else default.get_int("PauseAOLOnBrake") + toggle.always_on_lateral_status_bar = toggle.always_on_lateral_set and not (params.get_bool("HideAOLStatusBar") if tuning_level >= level["HideAOLStatusBar"] else default.get_bool("HideAOLStatusBar")) + + toggle.automatic_updates = params.get_bool("AutomaticUpdates") if tuning_level >= level["AutomaticUpdates"] else default.get_bool("AutomaticUpdates") + + toggle.cluster_offset = params.get_float("ClusterOffset") if car_make == "toyota" and tuning_level >= level["ClusterOffset"] else default.get_float("ClusterOffset") + + toggle.conditional_experimental_mode = openpilot_longitudinal and (params.get_bool("ConditionalExperimental") if tuning_level >= level["ConditionalExperimental"] else default.get_bool("ConditionalExperimental")) + toggle.conditional_curves = toggle.conditional_experimental_mode and (params.get_bool("CECurves") if tuning_level >= level["CECurves"] else default.get_bool("CECurves")) + toggle.conditional_curves_lead = toggle.conditional_curves and (params.get_bool("CECurvesLead") if tuning_level >= level["CECurvesLead"] else default.get_bool("CECurvesLead")) + toggle.conditional_lead = toggle.conditional_experimental_mode and (params.get_bool("CELead") if tuning_level >= level["CELead"] else default.get_bool("CELead")) + toggle.conditional_slower_lead = toggle.conditional_lead and (params.get_bool("CESlowerLead") if tuning_level >= level["CESlowerLead"] else default.get_bool("CESlowerLead")) + toggle.conditional_stopped_lead = toggle.conditional_lead and (params.get_bool("CEStoppedLead") if tuning_level >= level["CEStoppedLead"] else default.get_bool("CEStoppedLead")) + toggle.conditional_limit = params.get_int("CESpeed") * speed_conversion if toggle.conditional_experimental_mode and tuning_level >= level["CESpeed"] else default.get_int("CESpeed") * CV.MPH_TO_MS + toggle.conditional_limit_lead = params.get_int("CESpeedLead") * speed_conversion if toggle.conditional_experimental_mode and tuning_level >= level["CESpeedLead"] else default.get_int("CESpeedLead") * CV.MPH_TO_MS + toggle.conditional_navigation = toggle.conditional_experimental_mode and (params.get_bool("CENavigation") if tuning_level >= level["CENavigation"] else default.get_bool("CENavigation")) + toggle.conditional_navigation_intersections = toggle.conditional_navigation and (params.get_bool("CENavigationIntersections") if tuning_level >= level["CENavigationIntersections"] else default.get_bool("CENavigationIntersections")) + toggle.conditional_navigation_lead = toggle.conditional_navigation and (params.get_bool("CENavigationLead") if tuning_level >= level["CENavigationLead"] else default.get_bool("CENavigationLead")) + toggle.conditional_navigation_turns = toggle.conditional_navigation and (params.get_bool("CENavigationTurns") if tuning_level >= level["CENavigationTurns"] else default.get_bool("CENavigationTurns")) + toggle.conditional_model_stop_time = params.get_int("CEModelStopTime") if toggle.conditional_experimental_mode and tuning_level >= level["CEModelStopTime"] else default.get_int("CEModelStopTime") + toggle.conditional_signal = params.get_int("CESignalSpeed") if toggle.conditional_experimental_mode and tuning_level >= level["CESignalSpeed"] else default.get_int("CESignalSpeed") + toggle.conditional_signal_lane_detection = toggle.conditional_signal != 0 and (params.get_bool("CESignalLaneDetection") if tuning_level >= level["CESignalLaneDetection"] else default.get_bool("CESignalLaneDetection")) + toggle.conditional_status_bar = toggle.conditional_experimental_mode and (not params.get_bool("HideCEMStatusBar") if tuning_level >= level["HideCEMStatusBar"] else default.get_bool("HideCEMStatusBar")) if toggle.conditional_experimental_mode: params.put_bool("ExperimentalMode", True) - toggle.crosstrek_torque = car_model == "SUBARU_IMPREZA" and params.get_bool("CrosstrekTorque") - - toggle.curve_speed_controller = openpilot_longitudinal and params.get_bool("CurveSpeedControl") - toggle.curve_sensitivity = params.get_int("CurveSensitivity") / 100 if toggle.curve_speed_controller else 1 - toggle.hide_csc_ui = toggle.curve_speed_controller and params.get_bool("HideCSCUI") - toggle.turn_aggressiveness = params.get_int("TurnAggressiveness") / 100 if toggle.curve_speed_controller else 1 - toggle.map_turn_speed_controller = toggle.curve_speed_controller and params.get_bool("MTSCEnabled") - toggle.mtsc_curvature_check = toggle.map_turn_speed_controller and params.get_bool("MTSCCurvatureCheck") - toggle.vision_turn_controller = toggle.curve_speed_controller and params.get_bool("VisionTurnControl") - - toggle.custom_alerts = params.get_bool("CustomAlerts") - toggle.goat_scream_alert = toggle.custom_alerts and params.get_bool("GoatScream") - toggle.green_light_alert = toggle.custom_alerts and params.get_bool("GreenLightAlert") - toggle.lead_departing_alert = toggle.custom_alerts and params.get_bool("LeadDepartingAlert") - toggle.loud_blindspot_alert = has_bsm and toggle.custom_alerts and params.get_bool("LoudBlindspotAlert") - toggle.speed_limit_changed_alert = toggle.custom_alerts and params.get_bool("SpeedLimitChangedAlert") - - toggle.custom_personalities = openpilot_longitudinal and params.get_bool("CustomPersonalities") - toggle.aggressive_profile = toggle.custom_personalities and params.get_bool("AggressivePersonalityProfile") - toggle.aggressive_jerk_acceleration = clip(params.get_int("AggressiveJerkAcceleration") / 100, 0.01, 5) if toggle.aggressive_profile else 0.5 - toggle.aggressive_jerk_deceleration = clip(params.get_int("AggressiveJerkDeceleration") / 100, 0.01, 5) if toggle.aggressive_profile else 0.5 - toggle.aggressive_jerk_danger = clip(params.get_int("AggressiveJerkDanger") / 100, 0.01, 5) if toggle.aggressive_profile else 0.5 - toggle.aggressive_jerk_speed = clip(params.get_int("AggressiveJerkSpeed") / 100, 0.01, 5) if toggle.aggressive_profile else 0.5 - toggle.aggressive_jerk_speed_decrease = clip(params.get_int("AggressiveJerkSpeedDecrease") / 100, 0.01, 5) if toggle.aggressive_profile else 0.5 - toggle.aggressive_follow = clip(params.get_float("AggressiveFollow"), 1, 5) if toggle.aggressive_profile else 1.25 - toggle.standard_profile = toggle.custom_personalities and params.get_bool("StandardPersonalityProfile") - toggle.standard_jerk_acceleration = clip(params.get_int("StandardJerkAcceleration") / 100, 0.01, 5) if toggle.standard_profile else 1.0 - toggle.standard_jerk_deceleration = clip(params.get_int("StandardJerkDeceleration") / 100, 0.01, 5) if toggle.standard_profile else 1.0 - toggle.standard_jerk_danger = clip(params.get_int("StandardJerkDanger") / 100, 0.01, 5) if toggle.standard_profile else 0.5 - toggle.standard_jerk_speed = clip(params.get_int("StandardJerkSpeed") / 100, 0.01, 5) if toggle.standard_profile else 1.0 - toggle.standard_jerk_speed_decrease = clip(params.get_int("StandardJerkSpeedDecrease") / 100, 0.01, 5) if toggle.standard_profile else 1.0 - toggle.standard_follow = clip(params.get_float("StandardFollow"), 1, 5) if toggle.standard_profile else 1.45 - toggle.relaxed_profile = toggle.custom_personalities and params.get_bool("RelaxedPersonalityProfile") - toggle.relaxed_jerk_acceleration = clip(params.get_int("RelaxedJerkAcceleration") / 100, 0.01, 5) if toggle.relaxed_profile else 1.0 - toggle.relaxed_jerk_deceleration = clip(params.get_int("RelaxedJerkDeceleration") / 100, 0.01, 5) if toggle.relaxed_profile else 1.0 - toggle.relaxed_jerk_danger = clip(params.get_int("RelaxedJerkDanger") / 100, 0.01, 5) if toggle.relaxed_profile else 0.5 - toggle.relaxed_jerk_speed = clip(params.get_int("RelaxedJerkSpeed") / 100, 0.01, 5) if toggle.relaxed_profile else 1.0 - toggle.relaxed_jerk_speed_decrease = clip(params.get_int("RelaxedJerkSpeedDecrease") / 100, 0.01, 5) if toggle.relaxed_profile else 1.0 - toggle.relaxed_follow = clip(params.get_float("RelaxedFollow"), 1, 5) if toggle.relaxed_profile else 1.75 - toggle.traffic_profile = toggle.custom_personalities and params.get_bool("TrafficPersonalityProfile") - toggle.traffic_mode_jerk_acceleration = [clip(params.get_int("TrafficJerkAcceleration") / 100, 0.01, 5), toggle.aggressive_jerk_acceleration] if toggle.traffic_profile else [0.5, 0.5] - toggle.traffic_mode_jerk_deceleration = [clip(params.get_int("TrafficJerkDeceleration") / 100, 0.01, 5), toggle.aggressive_jerk_deceleration] if toggle.traffic_profile else [0.5, 0.5] - toggle.traffic_mode_jerk_danger = [clip(params.get_int("TrafficJerkDanger") / 100, 0.01, 5), toggle.aggressive_jerk_danger] if toggle.traffic_profile else [1.0, 1.0] - toggle.traffic_mode_jerk_speed = [clip(params.get_int("TrafficJerkSpeed") / 100, 0.01, 5), toggle.aggressive_jerk_speed] if toggle.traffic_profile else [0.5, 0.5] - toggle.traffic_mode_jerk_speed_decrease = [clip(params.get_int("TrafficJerkSpeedDecrease") / 100, 0.01, 5), toggle.aggressive_jerk_speed_decrease] if toggle.traffic_profile else [0.5, 0.5] - toggle.traffic_mode_t_follow = [clip(params.get_float("TrafficFollow"), 0.5, 5), toggle.aggressive_follow] if toggle.traffic_profile else [0.5, 1.0] - - toggle.custom_ui = params.get_bool("CustomUI") - toggle.acceleration_path = toggle.custom_ui and params.get_bool("AccelerationPath") - toggle.adjacent_paths = toggle.custom_ui and params.get_bool("AdjacentPath") - toggle.blind_spot_path = has_bsm and toggle.custom_ui and params.get_bool("BlindSpotPath") - toggle.compass = toggle.custom_ui and params.get_bool("Compass") - toggle.pedals_on_ui = toggle.custom_ui and params.get_bool("PedalsOnUI") - toggle.dynamic_pedals_on_ui = toggle.pedals_on_ui and params.get_bool("DynamicPedalsOnUI") - toggle.static_pedals_on_ui = toggle.pedals_on_ui and params.get_bool("StaticPedalsOnUI") - toggle.rotating_wheel = toggle.custom_ui and params.get_bool("RotatingWheel") - - toggle.developer_ui = params.get_bool("DeveloperUI") - toggle.border_metrics = toggle.developer_ui and params.get_bool("BorderMetrics") - toggle.blind_spot_metrics = has_bsm and toggle.border_metrics and params.get_bool("BlindSpotMetrics") - toggle.signal_metrics = toggle.border_metrics and params.get_bool("SignalMetrics") - toggle.steering_metrics = toggle.border_metrics and params.get_bool("ShowSteering") - toggle.show_fps = toggle.developer_ui and params.get_bool("FPSCounter") - toggle.lateral_metrics = toggle.developer_ui and params.get_bool("LateralMetrics") - toggle.adjacent_path_metrics = toggle.lateral_metrics and params.get_bool("AdjacentPathMetrics") - toggle.lateral_tuning_metrics = toggle.lateral_metrics and params.get_bool("TuningInfo") - toggle.longitudinal_metrics = toggle.developer_ui and params.get_bool("LongitudinalMetrics") - toggle.adjacent_lead_tracking = has_radar and toggle.longitudinal_metrics and params.get_bool("AdjacentLeadsUI") - toggle.lead_metrics = toggle.longitudinal_metrics and params.get_bool("LeadInfo") - toggle.jerk_metrics = toggle.longitudinal_metrics and params.get_bool("JerkInfo") - toggle.numerical_temp = toggle.developer_ui and params.get_bool("NumericalTemp") - toggle.fahrenheit = toggle.numerical_temp and params.get_bool("Fahrenheit") - toggle.sidebar_metrics = toggle.developer_ui and params.get_bool("SidebarMetrics") - toggle.cpu_metrics = toggle.sidebar_metrics and params.get_bool("ShowCPU") - toggle.gpu_metrics = toggle.sidebar_metrics and params.get_bool("ShowGPU") - toggle.ip_metrics = toggle.sidebar_metrics and params.get_bool("ShowIP") - toggle.memory_metrics = toggle.sidebar_metrics and params.get_bool("ShowMemoryUsage") - toggle.storage_left_metrics = toggle.sidebar_metrics and params.get_bool("ShowStorageLeft") - toggle.storage_used_metrics = toggle.sidebar_metrics and params.get_bool("ShowStorageUsed") - toggle.use_si_metrics = toggle.developer_ui and params.get_bool("UseSI") - - toggle.device_management = params.get_bool("DeviceManagement") - device_shutdown_setting = params.get_int("DeviceShutdown") if toggle.device_management else 33 + toggle.crosstrek_torque = car_model == "SUBARU_IMPREZA" and params.get_bool("CrosstrekTorque") if tuning_level >= level["CrosstrekTorque"] else default.get_bool("CrosstrekTorque") + + toggle.curve_speed_controller = openpilot_longitudinal and (params.get_bool("CurveSpeedControl") if tuning_level >= level["CurveSpeedControl"] else default.get_bool("CurveSpeedControl")) + toggle.curve_sensitivity = params.get_int("CurveSensitivity") / 100 if toggle.curve_speed_controller and tuning_level >= level["CurveSensitivity"] else default.get_int("CurveSensitivity") + toggle.hide_csc_ui = toggle.curve_speed_controller and (params.get_bool("HideCSCUI") if tuning_level >= level["HideCSCUI"] else default.get_bool("HideCSCUI")) + toggle.turn_aggressiveness = params.get_int("TurnAggressiveness") / 100 if toggle.curve_speed_controller and tuning_level >= level["TurnAggressiveness"] else default.get_int("TurnAggressiveness") + toggle.map_turn_speed_controller = toggle.curve_speed_controller and (params.get_bool("MTSCEnabled") if tuning_level >= level["MTSCEnabled"] else default.get_bool("MTSCEnabled")) + toggle.mtsc_curvature_check = toggle.map_turn_speed_controller and (params.get_bool("MTSCCurvatureCheck") if tuning_level >= level["MTSCCurvatureCheck"] else default.get_bool("MTSCCurvatureCheck")) + toggle.vision_turn_controller = toggle.curve_speed_controller and (params.get_bool("VisionTurnControl") if tuning_level >= level["VisionTurnControl"] else default.get_bool("VisionTurnControl")) + + toggle.custom_alerts = params.get_bool("CustomAlerts") if tuning_level >= level["CustomAlerts"] else default.get_bool("CustomAlerts") + toggle.goat_scream_alert = toggle.custom_alerts and (params.get_bool("GoatScream") if tuning_level >= level["GoatScream"] else default.get_bool("GoatScream")) + toggle.green_light_alert = toggle.custom_alerts and (params.get_bool("GreenLightAlert") if tuning_level >= level["GreenLightAlert"] else default.get_bool("GreenLightAlert")) + toggle.lead_departing_alert = toggle.custom_alerts and (params.get_bool("LeadDepartingAlert") if tuning_level >= level["LeadDepartingAlert"] else default.get_bool("LeadDepartingAlert")) + toggle.loud_blindspot_alert = has_bsm and toggle.custom_alerts and (params.get_bool("LoudBlindspotAlert") if tuning_level >= level["LoudBlindspotAlert"] else default.get_bool("LoudBlindspotAlert")) + toggle.speed_limit_changed_alert = toggle.custom_alerts and (params.get_bool("SpeedLimitChangedAlert") if tuning_level >= level["SpeedLimitChangedAlert"] else default.get_bool("SpeedLimitChangedAlert")) + + toggle.custom_personalities = openpilot_longitudinal and params.get_bool("CustomPersonalities") if tuning_level >= level["CustomPersonalities"] else default.get_bool("CustomPersonalities") + aggressive_profile = toggle.custom_personalities and (params.get_bool("AggressivePersonalityProfile") if tuning_level >= level["AggressivePersonalityProfile"] else default.get_bool("AggressivePersonalityProfile")) + toggle.aggressive_jerk_acceleration = clip(params.get_int("AggressiveJerkAcceleration") / 100, 0.01, 5) if aggressive_profile and tuning_level >= level["AggressiveJerkAcceleration"] else default.get_int("AggressiveJerkAcceleration") / 100 + toggle.aggressive_jerk_deceleration = clip(params.get_int("AggressiveJerkDeceleration") / 100, 0.01, 5) if aggressive_profile and tuning_level >= level["AggressiveJerkDeceleration"] else default.get_int("AggressiveJerkDeceleration") / 100 + toggle.aggressive_jerk_danger = clip(params.get_int("AggressiveJerkDanger") / 100, 0.01, 5) if aggressive_profile and tuning_level >= level["AggressiveJerkDanger"] else default.get_int("AggressiveJerkDanger") / 100 + toggle.aggressive_jerk_speed = clip(params.get_int("AggressiveJerkSpeed") / 100, 0.01, 5) if aggressive_profile and tuning_level >= level["AggressiveJerkSpeed"] else default.get_int("AggressiveJerkSpeed") / 100 + toggle.aggressive_jerk_speed_decrease = clip(params.get_int("AggressiveJerkSpeedDecrease") / 100, 0.01, 5) if aggressive_profile and tuning_level >= level["AggressiveJerkSpeedDecrease"] else default.get_int("AggressiveJerkSpeedDecrease") / 100 + toggle.aggressive_follow = clip(params.get_float("AggressiveFollow"), 1, 5) if aggressive_profile and tuning_level >= level["AggressiveFollow"] else default.get_float("AggressiveFollow") / 100 + standard_profile = toggle.custom_personalities and (params.get_bool("StandardPersonalityProfile") if tuning_level >= level["StandardPersonalityProfile"] else default.get_bool("StandardPersonalityProfile")) + toggle.standard_jerk_acceleration = clip(params.get_int("StandardJerkAcceleration") / 100, 0.01, 5) if standard_profile and tuning_level >= level["StandardJerkAcceleration"] else default.get_int("StandardJerkAcceleration") / 100 + toggle.standard_jerk_deceleration = clip(params.get_int("StandardJerkDeceleration") / 100, 0.01, 5) if standard_profile and tuning_level >= level["StandardJerkDeceleration"] else default.get_int("StandardJerkDeceleration") / 100 + toggle.standard_jerk_danger = clip(params.get_int("StandardJerkDanger") / 100, 0.01, 5) if standard_profile and tuning_level >= level["StandardJerkDanger"] else default.get_int("StandardJerkDanger") / 100 + toggle.standard_jerk_speed = clip(params.get_int("StandardJerkSpeed") / 100, 0.01, 5) if standard_profile and tuning_level >= level["StandardJerkSpeed"] else default.get_int("StandardJerkSpeed") / 100 + toggle.standard_jerk_speed_decrease = clip(params.get_int("StandardJerkSpeedDecrease") / 100, 0.01, 5) if standard_profile and tuning_level >= level["StandardJerkSpeedDecrease"] else default.get_int("StandardJerkSpeedDecrease") / 100 + toggle.standard_follow = clip(params.get_float("StandardFollow"), 1, 5) if standard_profile and tuning_level >= level["StandardFollow"] else default.get_float("StandardFollow") / 100 + relaxed_profile = toggle.custom_personalities and (params.get_bool("RelaxedPersonalityProfile") if tuning_level >= level["RelaxedPersonalityProfile"] else default.get_bool("RelaxedPersonalityProfile")) + toggle.relaxed_jerk_acceleration = clip(params.get_int("RelaxedJerkAcceleration") / 100, 0.01, 5) if relaxed_profile and tuning_level >= level["RelaxedJerkAcceleration"] else default.get_int("RelaxedJerkAcceleration") / 100 + toggle.relaxed_jerk_deceleration = clip(params.get_int("RelaxedJerkDeceleration") / 100, 0.01, 5) if relaxed_profile and tuning_level >= level["RelaxedJerkDeceleration"] else default.get_int("RelaxedJerkDeceleration") / 100 + toggle.relaxed_jerk_danger = clip(params.get_int("RelaxedJerkDanger") / 100, 0.01, 5) if relaxed_profile and tuning_level >= level["RelaxedJerkDanger"] else default.get_int("RelaxedJerkDanger") / 100 + toggle.relaxed_jerk_speed = clip(params.get_int("RelaxedJerkSpeed") / 100, 0.01, 5) if relaxed_profile and tuning_level >= level["RelaxedJerkSpeed"] else default.get_int("RelaxedJerkSpeed") / 100 + toggle.relaxed_jerk_speed_decrease = clip(params.get_int("RelaxedJerkSpeedDecrease") / 100, 0.01, 5) if relaxed_profile and tuning_level >= level["RelaxedJerkSpeedDecrease"] else default.get_int("RelaxedJerkSpeedDecrease") / 100 + toggle.relaxed_follow = clip(params.get_float("RelaxedFollow"), 1, 5) if relaxed_profile and tuning_level >= level["RelaxedFollow"] else default.get_float("RelaxedFollow") / 100 + traffic_profile = toggle.custom_personalities and (params.get_bool("TrafficPersonalityProfile") if tuning_level >= level["TrafficPersonalityProfile"] else default.get_bool("TrafficPersonalityProfile")) + toggle.traffic_mode_jerk_acceleration = [clip(params.get_int("TrafficJerkAcceleration") / 100, 0.01, 5) if traffic_profile and tuning_level >= level["TrafficJerkAcceleration"] else default.get_int("TrafficJerkAcceleration") / 100, toggle.aggressive_jerk_acceleration] + toggle.traffic_mode_jerk_deceleration = [clip(params.get_int("TrafficJerkDeceleration") / 100, 0.01, 5) if traffic_profile and tuning_level >= level["TrafficJerkDeceleration"] else default.get_int("TrafficJerkDeceleration") / 100, toggle.aggressive_jerk_deceleration] + toggle.traffic_mode_jerk_danger = [clip(params.get_int("TrafficJerkDanger") / 100, 0.01, 5) if traffic_profile and tuning_level >= level["TrafficJerkDanger"] else default.get_int("TrafficJerkDanger") / 100, toggle.aggressive_jerk_danger] + toggle.traffic_mode_jerk_speed = [clip(params.get_int("TrafficJerkSpeed") / 100, 0.01, 5) if traffic_profile and tuning_level >= level["TrafficJerkSpeed"] else default.get_int("TrafficJerkSpeed") / 100, toggle.aggressive_jerk_speed] + toggle.traffic_mode_jerk_speed_decrease = [clip(params.get_int("TrafficJerkSpeedDecrease") / 100, 0.01, 5) if traffic_profile and tuning_level >= level["TrafficJerkSpeedDecrease"] else default.get_int("TrafficJerkSpeedDecrease") / 100, toggle.aggressive_jerk_speed_decrease] + toggle.traffic_mode_follow = [clip(params.get_float("TrafficFollow"), 0.5, 5) if traffic_profile and tuning_level >= level["TrafficFollow"] else default.get_float("TrafficFollow") / 100, toggle.aggressive_follow] + + custom_ui = params.get_bool("CustomUI") if tuning_level >= level["CustomUI"] else default.get_bool("CustomUI") + toggle.acceleration_path = custom_ui and (params.get_bool("AccelerationPath") if tuning_level >= level["AccelerationPath"] else default.get_bool("AccelerationPath")) + toggle.adjacent_paths = custom_ui and (params.get_bool("AdjacentPath") if tuning_level >= level["AdjacentPath"] else default.get_bool("AdjacentPath")) + toggle.blind_spot_path = has_bsm and custom_ui and (params.get_bool("BlindSpotPath") if tuning_level >= level["BlindSpotPath"] else default.get_bool("BlindSpotPath")) + toggle.compass = custom_ui and (params.get_bool("Compass") if tuning_level >= level["Compass"] else default.get_bool("Compass")) + toggle.pedals_on_ui = custom_ui and (params.get_bool("PedalsOnUI") if tuning_level >= level["PedalsOnUI"] else default.get_bool("PedalsOnUI")) + toggle.dynamic_pedals_on_ui = toggle.pedals_on_ui and (params.get_bool("DynamicPedalsOnUI") if tuning_level >= level["DynamicPedalsOnUI"] else default.get_bool("DynamicPedalsOnUI")) + toggle.static_pedals_on_ui = toggle.pedals_on_ui and (params.get_bool("StaticPedalsOnUI") if tuning_level >= level["StaticPedalsOnUI"] else default.get_bool("StaticPedalsOnUI")) + toggle.rotating_wheel = custom_ui and (params.get_bool("RotatingWheel") if tuning_level >= level["RotatingWheel"] else default.get_bool("RotatingWheel")) + + toggle.developer_ui = params.get_bool("DeveloperUI") if tuning_level >= level["DeveloperUI"] else default.get_bool("DeveloperUI") + border_metrics = toggle.developer_ui and (params.get_bool("BorderMetrics") if tuning_level >= level["BorderMetrics"] else default.get_bool("BorderMetrics")) + toggle.blind_spot_metrics = has_bsm and border_metrics and (params.get_bool("BlindSpotMetrics") if tuning_level >= level["BlindSpotMetrics"] else default.get_bool("BlindSpotMetrics")) + toggle.signal_metrics = border_metrics and (params.get_bool("SignalMetrics") if tuning_level >= level["SignalMetrics"] else default.get_bool("SignalMetrics")) + toggle.steering_metrics = border_metrics and (params.get_bool("ShowSteering") if tuning_level >= level["ShowSteering"] else default.get_bool("ShowSteering")) + toggle.show_fps = toggle.developer_ui and (params.get_bool("FPSCounter") if tuning_level >= level["FPSCounter"] else default.get_bool("FPSCounter")) + lateral_metrics = toggle.developer_ui and (params.get_bool("LateralMetrics") if tuning_level >= level["LateralMetrics"] else default.get_bool("LateralMetrics")) + toggle.adjacent_path_metrics = lateral_metrics and (params.get_bool("AdjacentPathMetrics") if tuning_level >= level["AdjacentPathMetrics"] else default.get_bool("AdjacentPathMetrics")) + lateral_tuning_metrics = lateral_metrics and (params.get_bool("TuningInfo") if tuning_level >= level["TuningInfo"] else default.get_bool("TuningInfo")) + longitudinal_metrics = toggle.developer_ui and (params.get_bool("LongitudinalMetrics") if tuning_level >= level["LongitudinalMetrics"] else default.get_bool("LongitudinalMetrics")) + toggle.adjacent_lead_tracking = has_radar and longitudinal_metrics and (params.get_bool("AdjacentLeadsUI") if tuning_level >= level["AdjacentLeadsUI"] else default.get_bool("AdjacentLeadsUI")) + toggle.lead_metrics = longitudinal_metrics and (params.get_bool("LeadInfo") if tuning_level >= level["LeadInfo"] else default.get_bool("LeadInfo")) + toggle.jerk_metrics = longitudinal_metrics and (params.get_bool("JerkInfo") if tuning_level >= level["JerkInfo"] else default.get_bool("JerkInfo")) + toggle.numerical_temp = toggle.developer_ui and (params.get_bool("NumericalTemp") if tuning_level >= level["NumericalTemp"] else default.get_bool("NumericalTemp")) + toggle.fahrenheit = toggle.numerical_temp and (params.get_bool("Fahrenheit") if tuning_level >= level["Fahrenheit"] else default.get_bool("Fahrenheit")) + toggle.sidebar_metrics = toggle.developer_ui and (params.get_bool("SidebarMetrics") if tuning_level >= level["SidebarMetrics"] else default.get_bool("SidebarMetrics")) + toggle.cpu_metrics = toggle.sidebar_metrics and (params.get_bool("ShowCPU") if tuning_level >= level["ShowCPU"] else default.get_bool("ShowCPU")) + toggle.gpu_metrics = toggle.sidebar_metrics and (params.get_bool("ShowGPU") if tuning_level >= level["ShowGPU"] else default.get_bool("ShowGPU")) + toggle.ip_metrics = toggle.sidebar_metrics and (params.get_bool("ShowIP") if tuning_level >= level["ShowIP"] else default.get_bool("ShowIP")) + toggle.memory_metrics = toggle.sidebar_metrics and (params.get_bool("ShowMemoryUsage") if tuning_level >= level["ShowMemoryUsage"] else default.get_bool("ShowMemoryUsage")) + toggle.storage_left_metrics = toggle.sidebar_metrics and (params.get_bool("ShowStorageLeft") if tuning_level >= level["ShowStorageLeft"] else default.get_bool("ShowStorageLeft")) + toggle.storage_used_metrics = toggle.sidebar_metrics and (params.get_bool("ShowStorageUsed") if tuning_level >= level["ShowStorageUsed"] else default.get_bool("ShowStorageUsed")) + toggle.use_si_metrics = toggle.developer_ui and (params.get_bool("UseSI") if tuning_level >= level["UseSI"] else default.get_bool("UseSI")) + + device_management = params.get_bool("DeviceManagement") if tuning_level >= level["DeviceManagement"] else default.get_bool("DeviceManagement") + device_shutdown_setting = params.get_int("DeviceShutdown") if device_management and tuning_level >= level["DeviceShutdown"] else default.get_int("DeviceShutdown") toggle.device_shutdown_time = (device_shutdown_setting - 3) * 3600 if device_shutdown_setting >= 4 else device_shutdown_setting * (60 * 15) - toggle.increase_thermal_limits = toggle.device_management and params.get_bool("IncreaseThermalLimits") - toggle.low_voltage_shutdown = clip(params.get_float("LowVoltageShutdown"), VBATT_PAUSE_CHARGING, 12.5) if toggle.device_management else VBATT_PAUSE_CHARGING - toggle.no_logging = toggle.device_management and params.get_bool("NoLogging") or self.development_branch - toggle.no_uploads = toggle.device_management and params.get_bool("NoUploads") or self.development_branch - toggle.no_onroad_uploads = toggle.no_uploads and params.get_bool("DisableOnroadUploads") - toggle.offline_mode = toggle.device_management and params.get_bool("OfflineMode") + toggle.increase_thermal_limits = device_management and (params.get_bool("IncreaseThermalLimits") if tuning_level >= level["IncreaseThermalLimits"] else default.get_bool("IncreaseThermalLimits")) + toggle.low_voltage_shutdown = clip(params.get_float("LowVoltageShutdown"), VBATT_PAUSE_CHARGING, 12.5) if device_management and tuning_level >= level["LowVoltageShutdown"] else default.get_float("LowVoltageShutdown") + toggle.no_logging = device_management and (params.get_bool("NoLogging") if tuning_level >= level["NoLogging"] else default.get_bool("NoLogging")) + toggle.no_uploads = device_management and (params.get_bool("NoUploads") if tuning_level >= level["NoUploads"] else default.get_bool("NoUploads")) + toggle.no_onroad_uploads = toggle.no_uploads and (params.get_bool("DisableOnroadUploads") if tuning_level >= level["DisableOnroadUploads"] else default.get_bool("DisableOnroadUploads")) + toggle.offline_mode = device_management and (params.get_bool("OfflineMode") if tuning_level >= level["OfflineMode"] else default.get_bool("OfflineMode")) - toggle.experimental_gm_tune = openpilot_longitudinal and car_make == "gm" and params.get_bool("ExperimentalGMTune") + toggle.experimental_gm_tune = openpilot_longitudinal and car_make == "gm" and (params.get_bool("ExperimentalGMTune") if tuning_level >= level["ExperimentalGMTune"] else default.get_bool("ExperimentalGMTune")) - toggle.experimental_mode_via_press = openpilot_longitudinal and params.get_bool("ExperimentalModeActivation") - toggle.experimental_mode_via_distance = toggle.experimental_mode_via_press and params.get_bool("ExperimentalModeViaDistance") - toggle.experimental_mode_via_lkas = not toggle.always_on_lateral_lkas and toggle.experimental_mode_via_press and car_make != "subaru" and params.get_bool("ExperimentalModeViaLKAS") - toggle.experimental_mode_via_tap = toggle.experimental_mode_via_press and params.get_bool("ExperimentalModeViaTap") + toggle.experimental_mode_via_press = openpilot_longitudinal and (params.get_bool("ExperimentalModeActivation") if tuning_level >= level["ExperimentalModeActivation"] else default.get_bool("ExperimentalModeActivation")) + toggle.experimental_mode_via_distance = toggle.experimental_mode_via_press and (params.get_bool("ExperimentalModeViaDistance") if tuning_level >= level["ExperimentalModeViaDistance"] else default.get_bool("ExperimentalModeViaDistance")) + toggle.experimental_mode_via_lkas = not toggle.always_on_lateral_lkas and toggle.experimental_mode_via_press and car_make != "subaru" and (params.get_bool("ExperimentalModeViaLKAS") if tuning_level >= level["ExperimentalModeViaLKAS"] else default.get_bool("ExperimentalModeViaLKAS")) + toggle.experimental_mode_via_tap = toggle.experimental_mode_via_press and (params.get_bool("ExperimentalModeViaTap") if tuning_level >= level["ExperimentalModeViaTap"] else default.get_bool("ExperimentalModeViaTap")) - toggle.frogsgomoo_tweak = openpilot_longitudinal and car_make == "toyota" and params.get_bool("FrogsGoMoosTweak") + toggle.frogsgomoo_tweak = openpilot_longitudinal and car_make == "toyota" and (params.get_bool("FrogsGoMoosTweak") if tuning_level >= level["FrogsGoMoosTweak"] else default.get_bool("FrogsGoMoosTweak")) - toggle.holiday_themes = params.get_bool("HolidayThemes") - toggle.current_holiday_theme = params.get("CurrentHolidayTheme", encoding='utf-8') if params.get_bool("HolidayThemes") else None + holiday_themes = params.get_bool("HolidayThemes") if tuning_level >= level["HolidayThemes"] else default.get_bool("HolidayThemes") + toggle.current_holiday_theme = params_memory.get("CurrentHolidayTheme", encoding="utf-8") if holiday_themes else None - toggle.lane_change_customizations = params.get_bool("LaneChangeCustomizations") - toggle.lane_change_delay = params.get_float("LaneChangeTime") if toggle.lane_change_customizations else 0 - toggle.lane_detection_width = params.get_float("LaneDetectionWidth") * distance_conversion if toggle.lane_change_customizations else 0 + lane_change_customizations = params.get_bool("LaneChangeCustomizations") if tuning_level >= level["LaneChangeCustomizations"] else default.get_bool("LaneChangeCustomizations") + toggle.lane_change_delay = params.get_float("LaneChangeTime") if lane_change_customizations and tuning_level >= level["LaneChangeTime"] else default.get_float("LaneChangeTime") + toggle.lane_detection_width = params.get_float("LaneDetectionWidth") * distance_conversion if lane_change_customizations and tuning_level >= level["LaneDetectionWidth"] else default.get_float("LaneDetectionWidth") * CV.FOOT_TO_METER toggle.lane_detection = toggle.lane_detection_width != 0 - toggle.minimum_lane_change_speed = params.get_float("MinimumLaneChangeSpeed") * speed_conversion if toggle.lane_change_customizations else LANE_CHANGE_SPEED_MIN - toggle.nudgeless = toggle.lane_change_customizations and params.get_bool("NudgelessLaneChange") - toggle.one_lane_change = toggle.lane_change_customizations and params.get_bool("OneLaneChange") + toggle.minimum_lane_change_speed = params.get_float("MinimumLaneChangeSpeed") * speed_conversion if lane_change_customizations and tuning_level >= level["MinimumLaneChangeSpeed"] else default.get_float("MinimumLaneChangeSpeed") * CV.MPH_TO_MS + toggle.nudgeless = lane_change_customizations and (params.get_bool("NudgelessLaneChange") if tuning_level >= level["NudgelessLaneChange"] else default.get_bool("NudgelessLaneChange")) + toggle.one_lane_change = lane_change_customizations and (params.get_bool("OneLaneChange") if tuning_level >= level["OneLaneChange"] else default.get_bool("OneLaneChange")) - toggle.lateral_tuning = params.get_bool("LateralTune") - toggle.nnff = toggle.lateral_tuning and params.get_bool("NNFF") - toggle.nnff_lite = toggle.lateral_tuning and params.get_bool("NNFFLite") - toggle.use_turn_desires = toggle.lateral_tuning and params.get_bool("TurnDesires") + lateral_tuning = params.get_bool("LateralTune") if tuning_level >= level["LateralTune"] else default.get_bool("LateralTune") + toggle.nnff = lateral_tuning and (params.get_bool("NNFF") if tuning_level >= level["NNFF"] else default.get_bool("NNFF")) + toggle.nnff_lite = lateral_tuning and (params.get_bool("NNFFLite") if tuning_level >= level["NNFFLite"] else default.get_bool("NNFFLite")) + toggle.use_turn_desires = lateral_tuning and (params.get_bool("TurnDesires") if tuning_level >= level["TurnDesires"] else default.get_bool("TurnDesires")) - toggle.long_pitch = openpilot_longitudinal and car_make == "gm" and params.get_bool("LongPitch") + toggle.long_pitch = openpilot_longitudinal and car_make == "gm" and (params.get_bool("LongPitch") if tuning_level >= level["LongPitch"] else default.get_bool("LongPitch")) - toggle.longitudinal_tuning = openpilot_longitudinal and params.get_bool("LongitudinalTune") - toggle.acceleration_profile = params.get_int("AccelerationProfile") if toggle.longitudinal_tuning else 0 + longitudinal_tuning = openpilot_longitudinal and (params.get_bool("LongitudinalTune") if tuning_level >= level["LongitudinalTune"] else default.get_bool("LongitudinalTune")) + toggle.acceleration_profile = params.get_int("AccelerationProfile") if longitudinal_tuning and tuning_level >= level["AccelerationProfile"] else default.get_int("AccelerationProfile") toggle.sport_plus = max_acceleration_enabled and toggle.acceleration_profile == 3 - toggle.deceleration_profile = params.get_int("DecelerationProfile") if toggle.longitudinal_tuning else 0 - toggle.human_acceleration = toggle.longitudinal_tuning and params.get_bool("HumanAcceleration") - toggle.human_following = toggle.longitudinal_tuning and params.get_bool("HumanFollowing") - toggle.lead_detection_probability = clip(params.get_int("LeadDetectionThreshold") / 100, 0.01, 0.99) if toggle.longitudinal_tuning else 0.5 - toggle.max_desired_acceleration = clip(params.get_float("MaxDesiredAcceleration"), 0.1, 4.0) if toggle.longitudinal_tuning else 4.0 - toggle.taco_tune = toggle.longitudinal_tuning and params.get_bool("TacoTune") + toggle.deceleration_profile = params.get_int("DecelerationProfile") if longitudinal_tuning and tuning_level >= level["DecelerationProfile"] else default.get_int("DecelerationProfile") + toggle.human_acceleration = longitudinal_tuning and (params.get_bool("HumanAcceleration") if tuning_level >= level["HumanAcceleration"] else default.get_bool("HumanAcceleration")) + toggle.human_following = longitudinal_tuning and (params.get_bool("HumanFollowing") if tuning_level >= level["HumanFollowing"] else default.get_bool("HumanFollowing")) + toggle.lead_detection_probability = clip(params.get_int("LeadDetectionThreshold") / 100, 0.01, 0.99) if longitudinal_tuning and tuning_level >= level["LeadDetectionThreshold"] else default.get_int("LeadDetectionThreshold") + toggle.max_desired_acceleration = clip(params.get_float("MaxDesiredAcceleration"), 0.1, 4.0) if longitudinal_tuning and tuning_level >= level["MaxDesiredAcceleration"] else default.get_float("MaxDesiredAcceleration") + toggle.taco_tune = longitudinal_tuning and (params.get_bool("TacoTune") if tuning_level >= level["TacoTune"] else default.get_bool("TacoTune")) available_models = params.get("AvailableModels", encoding='utf-8') or "" available_model_names = params.get("AvailableModelsNames", encoding='utf-8') or "" - toggle.model_randomizer = params.get_bool("ModelRandomizer") + toggle.model_randomizer = params.get_bool("ModelRandomizer") if tuning_level >= level["ModelRandomizer"] else default.get_bool("ModelRandomizer") if available_models: if toggle.model_randomizer: blacklisted_models = (params.get("BlacklistedModels", encoding='utf-8') or "").split(',') existing_models = [model for model in available_models.split(',') if model not in blacklisted_models and os.path.exists(os.path.join(MODELS_PATH, f"{model}.thneed"))] - toggle.model = random.choice(existing_models) if existing_models else DEFAULT_CLASSIC_MODEL + toggle.model = random.choice(existing_models) if existing_models else default.Model else: - toggle.model = params.get("Model", encoding='utf-8') + toggle.model = params.get("Model", encoding='utf-8') if tuning_level >= level["Model"] else default.get("Model", encoding='utf-8') else: - toggle.model = DEFAULT_CLASSIC_MODEL + toggle.model = default.Model if toggle.model in available_models.split(',') and os.path.exists(os.path.join(MODELS_PATH, f"{toggle.model}.thneed")): current_model_name = available_model_names.split(',')[available_models.split(',').index(toggle.model)] params_memory.put("CurrentModelName", current_model_name) else: - toggle.model = DEFAULT_CLASSIC_MODEL + toggle.model = default.Model classic_models = params.get("ClassicModels", encoding='utf-8') or "" toggle.classic_model = classic_models and toggle.model in classic_models.split(',') navigation_models = params.get("NavigationModels", encoding='utf-8') or "" @@ -613,28 +619,28 @@ def update(self, started): radarless_models = params.get("RadarlessModels", encoding='utf-8') or "" toggle.radarless_model = radarless_models and toggle.model in radarless_models.split(',') - toggle.model_ui = params.get_bool("ModelUI") - toggle.dynamic_path_width = toggle.model_ui and params.get_bool("DynamicPathWidth") - toggle.lane_line_width = params.get_int("LaneLinesWidth") * small_distance_conversion / 200 if toggle.model_ui else 0.025 - toggle.path_edge_width = params.get_int("PathEdgeWidth") if toggle.model_ui else 20 - toggle.path_width = params.get_float("PathWidth") * distance_conversion / 2 if toggle.model_ui else 0.9 - toggle.road_edge_width = params.get_int("RoadEdgesWidth") * small_distance_conversion / 200 if toggle.model_ui else 0.025 - toggle.show_stopping_point = toggle.model_ui and params.get_bool("ShowStoppingPoint") - toggle.show_stopping_point_metrics = toggle.show_stopping_point and params.get_bool("ShowStoppingPointMetrics") - toggle.unlimited_road_ui_length = toggle.model_ui and params.get_bool("UnlimitedLength") - - toggle.navigation_ui = params.get_bool("NavigationUI") - toggle.big_map = toggle.navigation_ui and params.get_bool("BigMap") - toggle.full_map = toggle.big_map and params.get_bool("FullMap") - toggle.map_style = params.get_int("MapStyle") if toggle.navigation_ui else 0 - toggle.road_name_ui = toggle.navigation_ui and params.get_bool("RoadNameUI") - toggle.show_speed_limit_offset = toggle.navigation_ui and params.get_bool("ShowSLCOffset") - toggle.speed_limit_vienna = toggle.navigation_ui and params.get_bool("UseVienna") - - toggle.old_long_api = openpilot_longitudinal and car_make == "gm" and not params.get_bool("NewLongAPIGM") - toggle.old_long_api |= openpilot_longitudinal and car_make == "hyundai" and not params.get_bool("NewLongAPI") - - toggle.personalize_openpilot = params.get_bool("PersonalizeOpenpilot") + toggle.model_ui = params.get_bool("ModelUI") if tuning_level >= level["ModelUI"] else default.get_bool("ModelUI") + toggle.dynamic_path_width = toggle.model_ui and (params.get_bool("DynamicPathWidth") if tuning_level >= level["DynamicPathWidth"] else default.get_bool("DynamicPathWidth")) + toggle.lane_line_width = params.get_int("LaneLinesWidth") * small_distance_conversion / 200 if toggle.model_ui and tuning_level >= level["LaneLinesWidth"] else default.get_int("LaneLinesWidth") * CV.INCH_TO_CM / 200 + toggle.path_edge_width = params.get_int("PathEdgeWidth") if toggle.model_ui and tuning_level >= level["PathEdgeWidth"] else default.get_int("PathEdgeWidth") + toggle.path_width = params.get_float("PathWidth") * distance_conversion / 2 if toggle.model_ui and tuning_level >= level["PathWidth"] else default.get_float("PathWidth") * CV.FOOT_TO_METER / 2 + toggle.road_edge_width = params.get_int("RoadEdgesWidth") * small_distance_conversion / 200 if toggle.model_ui and tuning_level >= level["RoadEdgesWidth"] else default.get_int("RoadEdgesWidth") * CV.INCH_TO_CM / 200 + toggle.show_stopping_point = toggle.model_ui and (params.get_bool("ShowStoppingPoint") if tuning_level >= level["ShowStoppingPoint"] else default.get_bool("ShowStoppingPoint")) + toggle.show_stopping_point_metrics = toggle.show_stopping_point and (params.get_bool("ShowStoppingPointMetrics") if tuning_level >= level["ShowStoppingPointMetrics"] else default.get_bool("ShowStoppingPointMetrics")) + toggle.unlimited_road_ui_length = toggle.model_ui and (params.get_bool("UnlimitedLength") if tuning_level >= level["UnlimitedLength"] else default.get_bool("UnlimitedLength")) + + toggle.navigation_ui = params.get_bool("NavigationUI") if tuning_level >= level["NavigationUI"] else default.get_bool("NavigationUI") + toggle.big_map = toggle.navigation_ui and (params.get_bool("BigMap") if tuning_level >= level["BigMap"] else default.get_bool("BigMap")) + toggle.full_map = toggle.big_map and (params.get_bool("FullMap") if tuning_level >= level["FullMap"] else default.get_bool("FullMap")) + toggle.map_style = params.get_int("MapStyle") if toggle.navigation_ui and tuning_level >= level["MapStyle"] else default.get_int("MapStyle") + toggle.road_name_ui = toggle.navigation_ui and (params.get_bool("RoadNameUI") if tuning_level >= level["RoadNameUI"] else default.get_bool("RoadNameUI")) + toggle.show_speed_limit_offset = toggle.navigation_ui and (params.get_bool("ShowSLCOffset") if tuning_level >= level["ShowSLCOffset"] else default.get_bool("ShowSLCOffset")) + toggle.speed_limit_vienna = toggle.navigation_ui and (params.get_bool("UseVienna") if tuning_level >= level["UseVienna"] else default.get_bool("UseVienna")) + + toggle.old_long_api = openpilot_longitudinal and car_make == "gm" and not (params.get_bool("NewLongAPIGM") if tuning_level >= level["NewLongAPIGM"] else default.get_bool("NewLongAPIGM")) + toggle.old_long_api |= openpilot_longitudinal and car_make == "hyundai" and not (params.get_bool("NewLongAPI") if tuning_level >= level["NewLongAPI"] else default.get_bool("NewLongAPI")) + + toggle.personalize_openpilot = params.get_bool("PersonalizeOpenpilot") if tuning_level >= level["PersonalizeOpenpilot"] else default.get_bool("PersonalizeOpenpilot") toggle.color_scheme = params.get("CustomColors", encoding='utf-8') if toggle.personalize_openpilot else "stock" toggle.distance_icons = params.get("CustomDistanceIcons", encoding='utf-8') if toggle.personalize_openpilot else "stock" toggle.icon_pack = params.get("CustomIcons", encoding='utf-8') if toggle.personalize_openpilot else "stock" @@ -642,524 +648,78 @@ def update(self, started): toggle.sound_pack = params.get("CustomSounds", encoding='utf-8') if toggle.personalize_openpilot else "stock" toggle.wheel_image = params.get("WheelIcon", encoding='utf-8') if toggle.personalize_openpilot else "stock" - toggle.quality_of_life_lateral = params.get_bool("QOLLateral") - toggle.pause_lateral_below_speed = params.get_int("PauseLateralSpeed") * speed_conversion if toggle.quality_of_life_lateral else 0 - toggle.pause_lateral_below_signal = toggle.pause_lateral_below_speed != 0 and params.get_bool("PauseLateralOnSignal") - - toggle.quality_of_life_longitudinal = params.get_bool("QOLLongitudinal") - toggle.custom_cruise_increase = params.get_int("CustomCruise") if toggle.quality_of_life_longitudinal and not pcm_cruise else 1 - toggle.custom_cruise_increase_long = params.get_int("CustomCruiseLong") if toggle.quality_of_life_longitudinal and not pcm_cruise else 5 - toggle.force_standstill = toggle.quality_of_life_longitudinal and params.get_bool("ForceStandstill") - toggle.force_stops = toggle.quality_of_life_longitudinal and params.get_bool("ForceStops") - toggle.increased_stopped_distance = params.get_int("IncreasedStoppedDistance") * distance_conversion if toggle.quality_of_life_longitudinal else 0 - toggle.map_gears = toggle.quality_of_life_longitudinal and params.get_bool("MapGears") - toggle.map_acceleration = toggle.map_gears and params.get_bool("MapAcceleration") - toggle.map_deceleration = toggle.map_gears and params.get_bool("MapDeceleration") - toggle.reverse_cruise_increase = toggle.quality_of_life_longitudinal and pcm_cruise and params.get_bool("ReverseCruise") - toggle.set_speed_offset = params.get_int("SetSpeedOffset") * (1 if toggle.is_metric else CV.MPH_TO_KPH) if toggle.quality_of_life_longitudinal and not pcm_cruise else 0 - - toggle.quality_of_life_visuals = params.get_bool("QOLVisuals") - toggle.camera_view = params.get_int("CameraView") if toggle.quality_of_life_visuals else 0 - toggle.driver_camera_in_reverse = toggle.quality_of_life_visuals and params.get_bool("DriverCamera") - toggle.onroad_distance_button = toggle.quality_of_life_visuals and params.get_bool("OnroadDistanceButton") - toggle.standby_mode = toggle.quality_of_life_visuals and params.get_bool("StandbyMode") - toggle.stopped_timer = toggle.quality_of_life_visuals and params.get_bool("StoppedTimer") - - toggle.rainbow_path = params.get_bool("RainbowPath") - - toggle.random_events = params.get_bool("RandomEvents") - - toggle.screen_management = params.get_bool("ScreenManagement") - toggle.screen_brightness = params.get_int("ScreenBrightness") if toggle.screen_management else 101 - toggle.screen_brightness_onroad = params.get_int("ScreenBrightnessOnroad") if toggle.screen_management else 101 - toggle.screen_recorder = toggle.screen_management and params.get_bool("ScreenRecorder") - toggle.screen_timeout = params.get_int("ScreenTimeout") if toggle.screen_management else 30 - toggle.screen_timeout_onroad = params.get_int("ScreenTimeoutOnroad") if toggle.screen_management else 10 - - toggle.sng_hack = openpilot_longitudinal and car_make == "toyota" and params.get_bool("SNGHack") - - toggle.speed_limit_controller = openpilot_longitudinal and params.get_bool("SpeedLimitController") - toggle.force_mph_dashboard = toggle.speed_limit_controller and params.get_bool("ForceMPHDashboard") - toggle.map_speed_lookahead_higher = params.get_int("SLCLookaheadHigher") if toggle.speed_limit_controller else 0 - toggle.map_speed_lookahead_lower = params.get_int("SLCLookaheadLower") if toggle.speed_limit_controller else 0 - toggle.set_speed_limit = toggle.speed_limit_controller and params.get_bool("SetSpeedLimit") - slc_fallback_method = params.get_int("SLCFallback") if toggle.speed_limit_controller else 0 - toggle.slc_fallback_experimental_mode = toggle.speed_limit_controller and slc_fallback_method == 1 - toggle.slc_fallback_previous_speed_limit = toggle.speed_limit_controller and slc_fallback_method == 2 - toggle.slc_fallback_set_speed = toggle.speed_limit_controller and slc_fallback_method == 0 - toggle.speed_limit_confirmation = toggle.speed_limit_controller and params.get_bool("SLCConfirmation") - toggle.speed_limit_confirmation_higher = toggle.speed_limit_confirmation and params.get_bool("SLCConfirmationHigher") - toggle.speed_limit_confirmation_lower = toggle.speed_limit_confirmation and params.get_bool("SLCConfirmationLower") - toggle.speed_limit_controller_override = params.get_int("SLCOverride") if toggle.speed_limit_controller else 0 - toggle.speed_limit_controller_override_manual = toggle.speed_limit_controller_override == 1 - toggle.speed_limit_controller_override_set_speed = toggle.speed_limit_controller_override == 2 - toggle.speed_limit_offset1 = params.get_int("Offset1") * speed_conversion if toggle.speed_limit_controller else 0 - toggle.speed_limit_offset2 = params.get_int("Offset2") * speed_conversion if toggle.speed_limit_controller else 0 - toggle.speed_limit_offset3 = params.get_int("Offset3") * speed_conversion if toggle.speed_limit_controller else 0 - toggle.speed_limit_offset4 = params.get_int("Offset4") * speed_conversion if toggle.speed_limit_controller else 0 - toggle.speed_limit_priority1 = params.get("SLCPriority1", encoding='utf-8') if toggle.speed_limit_controller else None - toggle.speed_limit_priority2 = params.get("SLCPriority2", encoding='utf-8') if toggle.speed_limit_controller else None - toggle.speed_limit_priority3 = params.get("SLCPriority3", encoding='utf-8') if toggle.speed_limit_controller else None + quality_of_life_lateral = params.get_bool("QOLLateral") if tuning_level >= level["QOLLateral"] else default.get_bool("QOLLateral") + toggle.pause_lateral_below_speed = params.get_int("PauseLateralSpeed") * speed_conversion if quality_of_life_lateral and tuning_level >= level["PauseLateralSpeed"] else default.get_int("PauseLateralSpeed") * CV.MPH_TO_MS + toggle.pause_lateral_below_signal = toggle.pause_lateral_below_speed != 0 and (params.get_bool("PauseLateralOnSignal") if tuning_level >= level["PauseLateralOnSignal"] else default.get_bool("PauseLateralOnSignal")) + + quality_of_life_longitudinal = params.get_bool("QOLLongitudinal") if tuning_level >= level["QOLLongitudinal"] else default.get_bool("QOLLongitudinal") + toggle.custom_cruise_increase = params.get_int("CustomCruise") if quality_of_life_longitudinal and not pcm_cruise and tuning_level >= level["CustomCruise"] else default.get_int("CustomCruise") + toggle.custom_cruise_increase_long = params.get_int("CustomCruiseLong") if quality_of_life_longitudinal and not pcm_cruise and tuning_level >= level["CustomCruiseLong"] else default.get_int("CustomCruiseLong") + toggle.force_standstill = quality_of_life_longitudinal and (params.get_bool("ForceStandstill") if tuning_level >= level["ForceStandstill"] else default.get_bool("ForceStandstill")) + toggle.force_stops = quality_of_life_longitudinal and (params.get_bool("ForceStops") if tuning_level >= level["ForceStops"] else default.get_bool("ForceStops")) + toggle.increased_stopped_distance = params.get_int("IncreasedStoppedDistance") * distance_conversion if quality_of_life_longitudinal and tuning_level >= level["IncreasedStoppedDistance"] else default.get_int("IncreasedStoppedDistance") * CV.FOOT_TO_METER + map_gears = quality_of_life_longitudinal and (params.get_bool("MapGears") if tuning_level >= level["MapGears"] else default.get_bool("MapGears")) + toggle.map_acceleration = map_gears and (params.get_bool("MapAcceleration") if tuning_level >= level["MapAcceleration"] else default.get_bool("MapAcceleration")) + toggle.map_deceleration = map_gears and (params.get_bool("MapDeceleration") if tuning_level >= level["MapDeceleration"] else default.get_bool("MapDeceleration")) + toggle.reverse_cruise_increase = quality_of_life_longitudinal and pcm_cruise and (params.get_bool("ReverseCruise") if tuning_level >= level["ReverseCruise"] else default.get_bool("ReverseCruise")) + toggle.set_speed_offset = params.get_int("SetSpeedOffset") * (1 if toggle.is_metric else CV.MPH_TO_KPH) if quality_of_life_longitudinal and not pcm_cruise and tuning_level >= level["SetSpeedOffset"] else default.get_int("SetSpeedOffset") * CV.MPH_TO_KPH + + quality_of_life_visuals = params.get_bool("QOLVisuals") if tuning_level >= level["QOLVisuals"] else default.get_bool("QOLVisuals") + toggle.camera_view = params.get_int("CameraView") if quality_of_life_visuals and tuning_level >= level["CameraView"] else default.get_int("CameraView") + toggle.driver_camera_in_reverse = quality_of_life_visuals and (params.get_bool("DriverCamera") if tuning_level >= level["DriverCamera"] else default.get_bool("DriverCamera")) + toggle.onroad_distance_button = openpilot_longitudinal and quality_of_life_visuals and (params.get_bool("OnroadDistanceButton") if tuning_level >= level["OnroadDistanceButton"] else default.get_bool("OnroadDistanceButton")) + toggle.standby_mode = quality_of_life_visuals and (params.get_bool("StandbyMode") if tuning_level >= level["StandbyMode"] else default.get_bool("StandbyMode")) + toggle.stopped_timer = quality_of_life_visuals and (params.get_bool("StoppedTimer") if tuning_level >= level["StoppedTimer"] else default.get_bool("StoppedTimer")) + + toggle.rainbow_path = params.get_bool("RainbowPath") if tuning_level >= level["RainbowPath"] else default.get_bool("RainbowPath") + + toggle.random_events = params.get_bool("RandomEvents") if tuning_level >= level["RandomEvents"] else default.get_bool("RandomEvents") + + screen_management = params.get_bool("ScreenManagement") if tuning_level >= level["ScreenManagement"] else default.get_bool("ScreenManagement") + toggle.screen_brightness = params.get_int("ScreenBrightness") if screen_management and tuning_level >= level["ScreenBrightness"] else default.get_int("ScreenBrightness") + toggle.screen_brightness_onroad = params.get_int("ScreenBrightnessOnroad") if screen_management and tuning_level >= level["ScreenBrightnessOnroad"] else default.get_int("ScreenBrightnessOnroad") + toggle.screen_recorder = screen_management and (params.get_bool("ScreenRecorder") if tuning_level >= level["ScreenRecorder"] else default.get_bool("ScreenRecorder")) + toggle.screen_timeout = params.get_int("ScreenTimeout") if screen_management and tuning_level >= level["ScreenTimeout"] else default.get_int("ScreenTimeout") + toggle.screen_timeout_onroad = params.get_int("ScreenTimeoutOnroad") if screen_management and tuning_level >= level["ScreenTimeoutOnroad"] else default.get_int("ScreenTimeoutOnroad") + + toggle.sng_hack = openpilot_longitudinal and car_make == "toyota" and (params.get_bool("SNGHack") if tuning_level >= level["SNGHack"] else default.get_bool("SNGHack")) + + toggle.speed_limit_controller = openpilot_longitudinal and (params.get_bool("SpeedLimitController") if tuning_level >= level["SpeedLimitController"] else default.get_bool("SpeedLimitController")) + toggle.force_mph_dashboard = toggle.speed_limit_controller and (params.get_bool("ForceMPHDashboard") if tuning_level >= level["ForceMPHDashboard"] else default.get_bool("ForceMPHDashboard")) + toggle.map_speed_lookahead_higher = params.get_int("SLCLookaheadHigher") if toggle.speed_limit_controller and tuning_level >= level["SLCLookaheadHigher"] else default.get_int("SLCLookaheadHigher") + toggle.map_speed_lookahead_lower = params.get_int("SLCLookaheadLower") if toggle.speed_limit_controller and tuning_level >= level["SLCLookaheadLower"] else default.get_int("SLCLookaheadLower") + toggle.set_speed_limit = toggle.speed_limit_controller and (params.get_bool("SetSpeedLimit") if tuning_level >= level["SetSpeedLimit"] else default.get_bool("SetSpeedLimit")) + slc_fallback_method = params.get_int("SLCFallback") if toggle.speed_limit_controller and tuning_level >= level["SLCFallback"] else default.get_int("SLCFallback") + toggle.slc_fallback_experimental_mode = slc_fallback_method == 1 + toggle.slc_fallback_previous_speed_limit = slc_fallback_method == 2 + toggle.slc_fallback_set_speed = slc_fallback_method == 0 + toggle.speed_limit_confirmation = toggle.speed_limit_controller and (params.get_bool("SLCConfirmation") if tuning_level >= level["SLCConfirmation"] else default.get_bool("SLCConfirmation")) + toggle.speed_limit_confirmation_higher = toggle.speed_limit_confirmation and (params.get_bool("SLCConfirmationHigher") if tuning_level >= level["SLCConfirmationHigher"] else default.get_bool("SLCConfirmationHigher")) + toggle.speed_limit_confirmation_lower = toggle.speed_limit_confirmation and (params.get_bool("SLCConfirmationLower") if tuning_level >= level["SLCConfirmationLower"] else default.get_bool("SLCConfirmationLower")) + slc_override_method = params.get_int("SLCOverride") if toggle.speed_limit_controller and tuning_level >= level["SLCOverride"] else default.get_int("SLCOverride") + toggle.speed_limit_controller_override_manual = slc_override_method == 1 + toggle.speed_limit_controller_override_set_speed = slc_override_method == 2 + toggle.speed_limit_offset1 = params.get_int("Offset1") * speed_conversion if toggle.speed_limit_controller and tuning_level >= level["Offset1"] else default.get_int("Offset1") * CV.MPH_TO_MS + toggle.speed_limit_offset2 = params.get_int("Offset2") * speed_conversion if toggle.speed_limit_controller and tuning_level >= level["Offset2"] else default.get_int("Offset2") * CV.MPH_TO_MS + toggle.speed_limit_offset3 = params.get_int("Offset3") * speed_conversion if toggle.speed_limit_controller and tuning_level >= level["Offset3"] else default.get_int("Offset3") * CV.MPH_TO_MS + toggle.speed_limit_offset4 = params.get_int("Offset4") * speed_conversion if toggle.speed_limit_controller and tuning_level >= level["Offset4"] else default.get_int("Offset4") * CV.MPH_TO_MS + toggle.speed_limit_priority1 = params.get("SLCPriority1", encoding='utf-8') if toggle.speed_limit_controller and tuning_level >= level["SLCPriority1"] else default.get("SLCPriority1", encoding='utf-8') + toggle.speed_limit_priority2 = params.get("SLCPriority2", encoding='utf-8') if toggle.speed_limit_controller and tuning_level >= level["SLCPriority2"] else default.get("SLCPriority2", encoding='utf-8') + toggle.speed_limit_priority3 = params.get("SLCPriority3", encoding='utf-8') if toggle.speed_limit_controller and tuning_level >= level["SLCPriority3"] else default.get("SLCPriority3", encoding='utf-8') toggle.speed_limit_priority_highest = toggle.speed_limit_priority1 == "Highest" toggle.speed_limit_priority_lowest = toggle.speed_limit_priority1 == "Lowest" - toggle.speed_limit_sources = toggle.speed_limit_controller and params.get_bool("SpeedLimitSources") + toggle.speed_limit_sources = toggle.speed_limit_controller and (params.get_bool("SpeedLimitSources") if tuning_level >= level["SpeedLimitSources"] else default.get_bool("SpeedLimitSources")) - toggle.startup_alert_top = params.get("StartupMessageTop", encoding='utf-8') or "" - toggle.startup_alert_bottom = params.get("StartupMessageBottom", encoding='utf-8') or "" + toggle.startup_alert_top = params.get("StartupMessageTop", encoding='utf-8') if tuning_level >= level["StartupMessageTop"] else default.get("StartupMessageTop", encoding='utf-8') + toggle.startup_alert_bottom = params.get("StartupMessageBottom", encoding='utf-8') if tuning_level >= level["StartupMessageBottom"] else default.get("StartupMessageBottom", encoding='utf-8') toggle.tethering_config = params.get_int("TetheringEnabled") - toggle.toyota_doors = car_make == "toyota" and params.get_bool("ToyotaDoors") - toggle.lock_doors = toggle.toyota_doors and params.get_bool("LockDoors") - toggle.unlock_doors = toggle.toyota_doors and params.get_bool("UnlockDoors") - - toggle.volt_sng = car_model == "CHEVROLET_VOLT" and params.get_bool("VoltSNG") - - customization_level = params.get_int("CustomizationLevel") if params.get_bool("CustomizationLevelConfirmed") else 2 - - if customization_level == 0: - toggle.advanced_custom_onroad_ui = bool(self.default_frogpilot_toggles.AdvancedCustomUI) - toggle.hide_alerts = bool(toggle.advanced_custom_onroad_ui and self.default_frogpilot_toggles.HideAlerts) - toggle.hide_lead_marker = bool(toggle.advanced_custom_onroad_ui and self.default_frogpilot_toggles.HideLeadMarker) - toggle.hide_map_icon = bool(toggle.advanced_custom_onroad_ui and self.default_frogpilot_toggles.HideMapIcon) - toggle.hide_max_speed = bool(toggle.advanced_custom_onroad_ui and self.default_frogpilot_toggles.HideMaxSpeed) - toggle.hide_speed = bool(toggle.advanced_custom_onroad_ui and self.default_frogpilot_toggles.HideSpeed) - toggle.hide_speed_limit = bool(toggle.advanced_custom_onroad_ui and self.default_frogpilot_toggles.HideSpeedLimit) - toggle.use_wheel_speed = bool(toggle.advanced_custom_onroad_ui and self.default_frogpilot_toggles.WheelSpeed) - - toggle.advanced_lateral_tuning = bool(self.default_frogpilot_toggles.AdvancedLateralTune) - toggle.use_custom_steer_friction = False - toggle.use_custom_kp = False - toggle.use_custom_lat_accel_factor = False - toggle.use_custom_steer_ratio = False - toggle.force_auto_tune = bool(toggle.advanced_lateral_tuning and not has_auto_tune and not is_pid_car and self.default_frogpilot_toggles.ForceAutoTune) - toggle.force_auto_tune_off = bool(toggle.advanced_lateral_tuning and has_auto_tune and not is_pid_car and self.default_frogpilot_toggles.ForceAutoTuneOff) - - toggle.alert_volume_control = bool(self.default_frogpilot_toggles.AlertVolumeControl) - toggle.disengage_volume = int(self.default_frogpilot_toggles.DisengageVolume if toggle.alert_volume_control else 101) - toggle.engage_volume = int(self.default_frogpilot_toggles.EngageVolume if toggle.alert_volume_control else 101) - toggle.prompt_volume = int(self.default_frogpilot_toggles.PromptVolume if toggle.alert_volume_control else 101) - toggle.promptDistracted_volume = int(self.default_frogpilot_toggles.PromptDistractedVolume if toggle.alert_volume_control else 101) - toggle.refuse_volume = int(self.default_frogpilot_toggles.RefuseVolume if toggle.alert_volume_control else 101) - toggle.warningSoft_volume = int(self.default_frogpilot_toggles.WarningSoftVolume if toggle.alert_volume_control else 101) - toggle.warningImmediate_volume = int(self.default_frogpilot_toggles.WarningImmediateVolume if toggle.alert_volume_control else 101) - - toggle.always_on_lateral = bool(always_on_lateral_set and self.default_frogpilot_toggles.AlwaysOnLateral) - toggle.always_on_lateral_lkas = bool(toggle.always_on_lateral and car_make != "subaru" and self.default_frogpilot_toggles.AlwaysOnLateralLKAS) - toggle.always_on_lateral_main = bool(toggle.always_on_lateral and self.default_frogpilot_toggles.AlwaysOnLateralMain) - toggle.always_on_lateral_pause_speed = int(self.default_frogpilot_toggles.PauseAOLOnBrake if toggle.always_on_lateral else 0) - toggle.always_on_lateral_status_bar = bool(toggle.always_on_lateral and not self.default_frogpilot_toggles.HideAOLStatusBar) - - toggle.cluster_offset = float(self.default_frogpilot_toggles.ClusterOffset if car_make == "toyota" else 1) - - toggle.conditional_experimental_mode = bool(openpilot_longitudinal and self.default_frogpilot_toggles.ConditionalExperimental) - toggle.conditional_curves = bool(toggle.conditional_experimental_mode and self.default_frogpilot_toggles.CECurves) - toggle.conditional_curves_lead = bool(toggle.conditional_curves and self.default_frogpilot_toggles.CECurvesLead) - toggle.conditional_lead = bool(toggle.conditional_experimental_mode and self.default_frogpilot_toggles.CELead) - toggle.conditional_slower_lead = bool(toggle.conditional_lead and self.default_frogpilot_toggles.CESlowerLead) - toggle.conditional_stopped_lead = bool(toggle.conditional_lead and self.default_frogpilot_toggles.CEStoppedLead) - toggle.conditional_limit = int(self.default_frogpilot_toggles.CESpeed) * speed_conversion if toggle.conditional_experimental_mode else 0 - toggle.conditional_limit_lead = int(self.default_frogpilot_toggles.CESpeedLead) * speed_conversion if toggle.conditional_experimental_mode else 0 - toggle.conditional_navigation = bool(toggle.conditional_experimental_mode and self.default_frogpilot_toggles.CENavigation) - toggle.conditional_navigation_intersections = bool(toggle.conditional_navigation and self.default_frogpilot_toggles.CENavigationIntersections) - toggle.conditional_navigation_lead = bool(toggle.conditional_navigation and self.default_frogpilot_toggles.CENavigationLead) - toggle.conditional_navigation_turns = bool(toggle.conditional_navigation and self.default_frogpilot_toggles.CENavigationTurns) - toggle.conditional_model_stop_time = int(self.default_frogpilot_toggles.CEModelStopTime if toggle.conditional_experimental_mode else 0) - toggle.conditional_signal = int(self.default_frogpilot_toggles.CESignalSpeed if toggle.conditional_experimental_mode else 0) - toggle.conditional_signal_lane_detection = bool(toggle.conditional_signal != 0 and self.default_frogpilot_toggles.CESignalLaneDetection) - toggle.conditional_status_bar = bool(toggle.conditional_experimental_mode and not self.default_frogpilot_toggles.HideCEMStatusBar) - if toggle.conditional_experimental_mode: - params.put_bool("ExperimentalMode", True) - - toggle.crosstrek_torque = bool(car_model == "SUBARU_IMPREZA" and self.default_frogpilot_toggles.CrosstrekTorque) - - toggle.curve_speed_controller = bool(openpilot_longitudinal and self.default_frogpilot_toggles.CurveSpeedControl) - toggle.curve_sensitivity = int(self.default_frogpilot_toggles.CurveSensitivity) / 100 if toggle.curve_speed_controller else 1 - toggle.hide_csc_ui = bool(toggle.curve_speed_controller and self.default_frogpilot_toggles.HideCSCUI) - toggle.turn_aggressiveness = int(self.default_frogpilot_toggles.TurnAggressiveness) / 100 if toggle.curve_speed_controller else 1 - toggle.map_turn_speed_controller = bool(toggle.curve_speed_controller and self.default_frogpilot_toggles.MTSCEnabled) - toggle.mtsc_curvature_check = bool(toggle.map_turn_speed_controller and self.default_frogpilot_toggles.MTSCCurvatureCheck) - toggle.vision_turn_controller = bool(toggle.curve_speed_controller and self.default_frogpilot_toggles.VisionTurnControl) - - toggle.custom_personalities = bool(openpilot_longitudinal and self.default_frogpilot_toggles.CustomPersonalities) - toggle.aggressive_profile = bool(toggle.custom_personalities and self.default_frogpilot_toggles.AggressivePersonalityProfile) - toggle.aggressive_jerk_deceleration = int(self.default_frogpilot_toggles.AggressiveJerkDeceleration) / 100 if toggle.aggressive_profile else 0.5 - toggle.aggressive_jerk_danger = int(self.default_frogpilot_toggles.AggressiveJerkDanger) / 100 if toggle.aggressive_profile else 1.0 - toggle.aggressive_jerk_speed = int(self.default_frogpilot_toggles.AggressiveJerkSpeed) / 100 if toggle.aggressive_profile else 0.5 - toggle.aggressive_jerk_speed_decrease = int(self.default_frogpilot_toggles.AggressiveJerkSpeedDecrease) / 100 if toggle.aggressive_profile else 0.5 - toggle.aggressive_follow = float(self.default_frogpilot_toggles.AggressiveFollow) if toggle.aggressive_profile else 1.25 - toggle.standard_profile = bool(toggle.custom_personalities and self.default_frogpilot_toggles.StandardPersonalityProfile) - toggle.standard_jerk_acceleration = int(self.default_frogpilot_toggles.StandardJerkAcceleration) / 100 if toggle.standard_profile else 1.0 - toggle.standard_jerk_deceleration = int(self.default_frogpilot_toggles.StandardJerkDeceleration) / 100 if toggle.standard_profile else 1.0 - toggle.standard_jerk_danger = int(self.default_frogpilot_toggles.StandardJerkDanger) / 100 if toggle.standard_profile else 1.0 - toggle.standard_jerk_speed = int(self.default_frogpilot_toggles.StandardJerkSpeed) / 100 if toggle.standard_profile else 1.0 - toggle.standard_jerk_speed_decrease = int(self.default_frogpilot_toggles.StandardJerkSpeedDecrease) / 100 if toggle.standard_profile else 1.0 - toggle.standard_follow = float(self.default_frogpilot_toggles.StandardFollow) if toggle.standard_profile else 1.45 - toggle.relaxed_profile = bool(toggle.custom_personalities and self.default_frogpilot_toggles.RelaxedPersonalityProfile) - toggle.relaxed_jerk_acceleration = int(self.default_frogpilot_toggles.RelaxedJerkAcceleration) / 100 if toggle.relaxed_profile else 1.0 - toggle.relaxed_jerk_deceleration = int(self.default_frogpilot_toggles.RelaxedJerkDeceleration) / 100 if toggle.relaxed_profile else 1.0 - toggle.relaxed_jerk_danger = int(self.default_frogpilot_toggles.RelaxedJerkDanger) / 100 if toggle.relaxed_profile else 1.0 - toggle.relaxed_jerk_speed = int(self.default_frogpilot_toggles.RelaxedJerkSpeed) / 100 if toggle.relaxed_profile else 1.0 - toggle.relaxed_jerk_speed_decrease = int(self.default_frogpilot_toggles.RelaxedJerkSpeedDecrease) / 100 if toggle.relaxed_profile else 1.0 - toggle.relaxed_follow = float(self.default_frogpilot_toggles.RelaxedFollow) if toggle.relaxed_profile else 1.75 - toggle.traffic_profile = bool(toggle.custom_personalities and self.default_frogpilot_toggles.TrafficPersonalityProfile) - toggle.traffic_mode_jerk_acceleration = [int(self.default_frogpilot_toggles.TrafficJerkAcceleration) / 100, toggle.aggressive_jerk_acceleration] if toggle.traffic_profile else [0.5, 0.5] - toggle.traffic_mode_jerk_deceleration = [int(self.default_frogpilot_toggles.TrafficJerkDeceleration) / 100, toggle.aggressive_jerk_deceleration] if toggle.traffic_profile else [0.5, 0.5] - toggle.traffic_mode_jerk_danger = [int(self.default_frogpilot_toggles.TrafficJerkDanger) / 100, toggle.aggressive_jerk_danger] if toggle.traffic_profile else [1.0, 1.0] - toggle.traffic_mode_jerk_speed = [int(self.default_frogpilot_toggles.TrafficJerkSpeed) / 100, toggle.aggressive_jerk_speed] if toggle.traffic_profile else [0.5, 0.5] - toggle.traffic_mode_jerk_speed_decrease = [int(self.default_frogpilot_toggles.TrafficJerkSpeedDecrease) / 100, toggle.aggressive_jerk_speed_decrease] if toggle.traffic_profile else [0.5, 0.5] - toggle.traffic_mode_t_follow = [float(self.default_frogpilot_toggles.TrafficFollow), toggle.aggressive_follow] if toggle.traffic_profile else [0.5, 1.0] - - toggle.custom_ui = bool(self.default_frogpilot_toggles.CustomUI) - toggle.acceleration_path = bool(toggle.custom_ui and self.default_frogpilot_toggles.AccelerationPath) - toggle.adjacent_paths = bool(toggle.custom_ui and self.default_frogpilot_toggles.AdjacentPath) - toggle.blind_spot_path = bool(has_bsm and toggle.custom_ui and self.default_frogpilot_toggles.BlindSpotPath) - toggle.compass = bool(toggle.custom_ui and self.default_frogpilot_toggles.Compass) - toggle.pedals_on_ui = bool(toggle.custom_ui and self.default_frogpilot_toggles.PedalsOnUI) - toggle.dynamic_pedals_on_ui = bool(toggle.pedals_on_ui and self.default_frogpilot_toggles.DynamicPedalsOnUI) - toggle.static_pedals_on_ui = bool(toggle.pedals_on_ui and self.default_frogpilot_toggles.StaticPedalsOnUI) - toggle.rotating_wheel = bool(toggle.custom_ui and self.default_frogpilot_toggles.RotatingWheel) - - toggle.developer_ui = bool(self.default_frogpilot_toggles.DeveloperUI) - toggle.border_metrics = bool(toggle.developer_ui and self.default_frogpilot_toggles.BorderMetrics) - toggle.blind_spot_metrics = bool(has_bsm and toggle.border_metrics and self.default_frogpilot_toggles.BlindSpotMetrics) - toggle.signal_metrics = bool(toggle.border_metrics and self.default_frogpilot_toggles.SignalMetrics) - toggle.steering_metrics = bool(toggle.border_metrics and self.default_frogpilot_toggles.ShowSteering) - toggle.show_fps = bool(toggle.developer_ui and self.default_frogpilot_toggles.FPSCounter) - toggle.lateral_metrics = bool(toggle.developer_ui and self.default_frogpilot_toggles.LateralMetrics) - toggle.adjacent_path_metrics = bool(toggle.lateral_metrics and self.default_frogpilot_toggles.AdjacentPathMetrics) - toggle.lateral_tuning_metrics = bool(toggle.lateral_metrics and self.default_frogpilot_toggles.TuningInfo) - toggle.longitudinal_metrics = bool(toggle.developer_ui and self.default_frogpilot_toggles.LongitudinalMetrics) - toggle.adjacent_lead_tracking = bool(has_radar and toggle.longitudinal_metrics and self.default_frogpilot_toggles.AdjacentLeadsUI) - toggle.lead_metrics = bool(toggle.longitudinal_metrics and self.default_frogpilot_toggles.LeadInfo) - toggle.jerk_metrics = bool(toggle.longitudinal_metrics and self.default_frogpilot_toggles.JerkInfo) - toggle.numerical_temp = bool(toggle.developer_ui and self.default_frogpilot_toggles.NumericalTemp) - toggle.fahrenheit = bool(toggle.numerical_temp and self.default_frogpilot_toggles.Fahrenheit) - toggle.sidebar_metrics = bool(toggle.developer_ui and self.default_frogpilot_toggles.SidebarMetrics) - toggle.cpu_metrics = bool(toggle.sidebar_metrics and self.default_frogpilot_toggles.ShowCPU) - toggle.gpu_metrics = bool(toggle.sidebar_metrics and self.default_frogpilot_toggles.ShowGPU) - toggle.ip_metrics = bool(toggle.sidebar_metrics and self.default_frogpilot_toggles.ShowIP) - toggle.memory_metrics = bool(toggle.sidebar_metrics and self.default_frogpilot_toggles.ShowMemoryUsage) - toggle.storage_left_metrics = bool(toggle.sidebar_metrics and self.default_frogpilot_toggles.ShowStorageLeft) - toggle.storage_used_metrics = bool(toggle.sidebar_metrics and self.default_frogpilot_toggles.ShowStorageUsed) - toggle.use_si_metrics = bool(toggle.developer_ui and self.default_frogpilot_toggles.UseSI) - - toggle.device_management = bool(self.default_frogpilot_toggles.DeviceManagement) - device_shutdown_setting = int(self.default_frogpilot_toggles.DeviceShutdown) if toggle.device_management else 33 - toggle.device_shutdown_time = (device_shutdown_setting - 3) * 3600 if device_shutdown_setting >= 4 else device_shutdown_setting * (60 * 15) - toggle.increase_thermal_limits = bool(toggle.device_management and self.default_frogpilot_toggles.IncreaseThermalLimits) - toggle.low_voltage_shutdown = clip(float(self.default_frogpilot_toggles.LowVoltageShutdown), VBATT_PAUSE_CHARGING, 12.5) if toggle.device_management else VBATT_PAUSE_CHARGING - toggle.no_logging = bool(toggle.device_management and self.default_frogpilot_toggles.NoLogging or self.development_branch) - toggle.no_uploads = bool(toggle.device_management and self.default_frogpilot_toggles.NoUploads or self.development_branch) - toggle.no_onroad_uploads = bool(toggle.no_uploads and self.default_frogpilot_toggles.DisableOnroadUploads) - toggle.offline_mode = bool(toggle.device_management and self.default_frogpilot_toggles.OfflineMode) - - toggle.experimental_gm_tune = bool(openpilot_longitudinal and car_make == "gm" and self.default_frogpilot_toggles.ExperimentalGMTune) - - toggle.experimental_mode_via_press = bool(openpilot_longitudinal and self.default_frogpilot_toggles.ExperimentalModeActivation) - toggle.experimental_mode_via_distance = bool(toggle.experimental_mode_via_press and self.default_frogpilot_toggles.ExperimentalModeViaDistance) - toggle.experimental_mode_via_lkas = bool(not toggle.always_on_lateral_lkas and toggle.experimental_mode_via_press and car_make != "subaru" and self.default_frogpilot_toggles.ExperimentalModeViaLKAS) - toggle.experimental_mode_via_tap = bool(toggle.experimental_mode_via_press and self.default_frogpilot_toggles.ExperimentalModeViaTap) - - toggle.frogsgomoo_tweak = bool(openpilot_longitudinal and car_make == "toyota" and self.default_frogpilot_toggles.FrogsGoMoosTweak) - - toggle.lane_change_customizations = bool(self.default_frogpilot_toggles.LaneChangeCustomizations) - toggle.lane_change_delay = float(self.default_frogpilot_toggles.LaneChangeTime) if toggle.lane_change_customizations else 0 - toggle.lane_detection_width = float(self.default_frogpilot_toggles.LaneDetectionWidth) * distance_conversion if toggle.lane_change_customizations else 0 - toggle.lane_detection = bool(toggle.lane_detection_width != 0) - toggle.minimum_lane_change_speed = float(self.default_frogpilot_toggles.MinimumLaneChangeSpeed) * speed_conversion if toggle.lane_change_customizations else LANE_CHANGE_SPEED_MIN - toggle.nudgeless = bool(toggle.lane_change_customizations and self.default_frogpilot_toggles.NudgelessLaneChange) - toggle.one_lane_change = bool(toggle.lane_change_customizations and self.default_frogpilot_toggles.OneLaneChange) - - toggle.lateral_tuning = bool(self.default_frogpilot_toggles.LateralTune) - toggle.nnff = bool(toggle.lateral_tuning and self.default_frogpilot_toggles.NNFF) - toggle.nnff_lite = bool(toggle.lateral_tuning and self.default_frogpilot_toggles.NNFFLite) - toggle.use_turn_desires = bool(toggle.lateral_tuning and self.default_frogpilot_toggles.TurnDesires) - - toggle.long_pitch = bool(openpilot_longitudinal and car_make == "gm" and self.default_frogpilot_toggles.LongPitch) - - toggle.human_acceleration = bool(toggle.longitudinal_tuning and self.default_frogpilot_toggles.HumanAcceleration) - toggle.human_following = bool(toggle.longitudinal_tuning and self.default_frogpilot_toggles.HumanFollowing) - toggle.lead_detection_probability = clip(float(self.default_frogpilot_toggles.LeadDetectionThreshold) / 100, 0.01, 0.99) if toggle.longitudinal_tuning else 0.5 - toggle.max_desired_acceleration = clip(float(self.default_frogpilot_toggles.MaxDesiredAcceleration), 0.1, 4.0) if toggle.longitudinal_tuning else 4.0 - toggle.taco_tune = bool(toggle.longitudinal_tuning and self.default_frogpilot_toggles.TacoTune) - - toggle.model = DEFAULT_CLASSIC_MODEL - toggle.model_randomizer = self.default_frogpilot_toggles.ModelRandomizer - toggle.part_model_param = "" - toggle.classic_model = bool(classic_models and toggle.model in classic_models.split(',')) - toggle.navigationless_model = bool(navigation_models and toggle.model not in navigation_models.split(',')) - toggle.radarless_model = bool(radarless_models and toggle.model in radarless_models.split(',')) - - toggle.model_ui = bool(self.default_frogpilot_toggles.ModelUI) - toggle.dynamic_path_width = bool(toggle.model_ui and self.default_frogpilot_toggles.DynamicPathWidth) - toggle.lane_line_width = int(self.default_frogpilot_toggles.LaneLinesWidth) * small_distance_conversion / 200 if toggle.model_ui else 0.025 - toggle.path_edge_width = int(self.default_frogpilot_toggles.PathEdgeWidth) if toggle.model_ui else 20 - toggle.path_width = float(self.default_frogpilot_toggles.PathWidth) * distance_conversion / 2 if toggle.model_ui else 0.9 - toggle.road_edge_width = int(self.default_frogpilot_toggles.RoadEdgesWidth) * small_distance_conversion / 200 if toggle.model_ui else 0.025 - toggle.show_stopping_point = bool(toggle.model_ui and self.default_frogpilot_toggles.ShowStoppingPoint) - toggle.show_stopping_point_metrics = bool(toggle.show_stopping_point and self.default_frogpilot_toggles.ShowStoppingPointMetrics) - toggle.unlimited_road_ui_length = bool(toggle.model_ui and self.default_frogpilot_toggles.UnlimitedLength) - - toggle.navigation_ui = bool(self.default_frogpilot_toggles.NavigationUI) - toggle.big_map = bool(toggle.navigation_ui and params.get_bool("BigMap")) - toggle.full_map = bool(toggle.big_map and self.default_frogpilot_toggles.FullMap) - toggle.map_style = int(self.default_frogpilot_toggles.MapStyle) if toggle.navigation_ui else 0 - toggle.road_name_ui = bool(toggle.navigation_ui and self.default_frogpilot_toggles.RoadNameUI) - toggle.show_speed_limit_offset = bool(toggle.navigation_ui and self.default_frogpilot_toggles.ShowSLCOffset) - toggle.speed_limit_vienna = bool(toggle.navigation_ui and self.default_frogpilot_toggles.UseVienna) - - toggle.old_long_api = bool(openpilot_longitudinal and car_make == "gm" and not self.default_frogpilot_toggles.NewLongAPIGM) - toggle.old_long_api |= bool(openpilot_longitudinal and car_make == "hyundai" and not self.default_frogpilot_toggles.NewLongAPI) - - toggle.quality_of_life_lateral = bool(self.default_frogpilot_toggles.QOLLateral) - toggle.pause_lateral_below_speed = int(self.default_frogpilot_toggles.PauseLateralSpeed) * speed_conversion if toggle.quality_of_life_lateral else 0 - toggle.pause_lateral_below_signal = bool(toggle.pause_lateral_below_speed != 0 and self.default_frogpilot_toggles.PauseLateralOnSignal) - - toggle.quality_of_life_longitudinal = bool(self.default_frogpilot_toggles.QOLLongitudinal) - toggle.custom_cruise_increase = int(self.default_frogpilot_toggles.CustomCruise) if toggle.quality_of_life_longitudinal and not pcm_cruise else 1 - toggle.custom_cruise_increase_long = int(self.default_frogpilot_toggles.CustomCruiseLong) if toggle.quality_of_life_longitudinal and not pcm_cruise else 5 - toggle.force_standstill = bool(toggle.quality_of_life_longitudinal and self.default_frogpilot_toggles.ForceStandstill) - toggle.force_stops = bool(toggle.quality_of_life_longitudinal and self.default_frogpilot_toggles.ForceStops) - toggle.increased_stopped_distance = int(self.default_frogpilot_toggles.IncreasedStoppedDistance) * distance_conversion if toggle.quality_of_life_longitudinal else 0 - toggle.map_gears = bool(toggle.quality_of_life_longitudinal and self.default_frogpilot_toggles.MapGears) - toggle.map_acceleration = bool(toggle.map_gears and self.default_frogpilot_toggles.MapAcceleration) - toggle.map_deceleration = bool(toggle.map_gears and self.default_frogpilot_toggles.MapDeceleration) - toggle.reverse_cruise_increase = bool(toggle.quality_of_life_longitudinal and pcm_cruise and self.default_frogpilot_toggles.ReverseCruise) - toggle.set_speed_offset = int(self.default_frogpilot_toggles.SetSpeedOffset) * (1 if toggle.is_metric else CV.MPH_TO_KPH) if toggle.quality_of_life_longitudinal and not pcm_cruise else 0 - - toggle.camera_view = int(self.default_frogpilot_toggles.CameraView) if toggle.quality_of_life_visuals else 0 - toggle.driver_camera_in_reverse = bool(toggle.quality_of_life_visuals and self.default_frogpilot_toggles.DriverCamera) - toggle.standby_mode = bool(toggle.quality_of_life_visuals and self.default_frogpilot_toggles.StandbyMode) - toggle.stopped_timer = bool(toggle.quality_of_life_visuals and self.default_frogpilot_toggles.StoppedTimer) - - toggle.rainbow_path = bool(self.default_frogpilot_toggles.RainbowPath) - - toggle.random_events = bool(self.default_frogpilot_toggles.RandomEvents) - - toggle.screen_management = bool(self.default_frogpilot_toggles.ScreenManagement) - toggle.screen_brightness = int(self.default_frogpilot_toggles.ScreenBrightness) if toggle.screen_management else 101 - toggle.screen_brightness_onroad = int(self.default_frogpilot_toggles.ScreenBrightnessOnroad) if toggle.screen_management else 101 - toggle.screen_recorder = bool(toggle.screen_management and self.default_frogpilot_toggles.ScreenRecorder) - toggle.screen_timeout = int(self.default_frogpilot_toggles.ScreenTimeout) if toggle.screen_management else 30 - toggle.screen_timeout_onroad = int(self.default_frogpilot_toggles.ScreenTimeoutOnroad) if toggle.screen_management else 10 - - toggle.sng_hack = bool(openpilot_longitudinal and car_make == "toyota" and self.default_frogpilot_toggles.SNGHack) - - toggle.force_mph_dashboard = bool(toggle.speed_limit_controller and self.default_frogpilot_toggles.ForceMPHDashboard) - toggle.map_speed_lookahead_higher = int(self.default_frogpilot_toggles.SLCLookaheadHigher) if toggle.speed_limit_controller else 0 - toggle.map_speed_lookahead_lower = int(self.default_frogpilot_toggles.SLCLookaheadLower) if toggle.speed_limit_controller else 0 - toggle.set_speed_limit = bool(toggle.speed_limit_controller and self.default_frogpilot_toggles.SetSpeedLimit) - slc_fallback_method = int(self.default_frogpilot_toggles.SLCFallback) if toggle.speed_limit_controller else 0 - toggle.slc_fallback_experimental_mode = bool(toggle.speed_limit_controller and slc_fallback_method == 1) - toggle.slc_fallback_previous_speed_limit = bool(toggle.speed_limit_controller and slc_fallback_method == 2) - toggle.slc_fallback_set_speed = bool(toggle.speed_limit_controller and slc_fallback_method == 0) - toggle.speed_limit_controller_override = int(self.default_frogpilot_toggles.SLCOverride) if toggle.speed_limit_controller else 0 - toggle.speed_limit_controller_override_manual = bool(toggle.speed_limit_controller_override == 1) - toggle.speed_limit_controller_override_set_speed = bool(toggle.speed_limit_controller_override == 2) - toggle.speed_limit_priority1 = self.default_frogpilot_toggles.SLCPriority1 if toggle.speed_limit_controller else None - toggle.speed_limit_priority2 = self.default_frogpilot_toggles.SLCPriority2 if toggle.speed_limit_controller else None - toggle.speed_limit_priority3 = self.default_frogpilot_toggles.SLCPriority3 if toggle.speed_limit_controller else None - toggle.speed_limit_priority_highest = bool(toggle.speed_limit_priority1 == "Highest") - toggle.speed_limit_priority_lowest = bool(toggle.speed_limit_priority1 == "Lowest") - toggle.speed_limit_sources = bool(toggle.speed_limit_controller and self.default_frogpilot_toggles.SpeedLimitSources) - - toggle.startup_alert_top = str(self.default_frogpilot_toggles.StartupMessageTop) - toggle.startup_alert_bottom = str(self.default_frogpilot_toggles.StartupMessageBottom) - - toggle.volt_sng = bool(car_model == "CHEVROLET_VOLT" and self.default_frogpilot_toggles.VoltSNG) - - elif customization_level != 2: - toggle.advanced_custom_onroad_ui = bool(self.default_frogpilot_toggles.AdvancedCustomUI) - toggle.hide_alerts = bool(toggle.advanced_custom_onroad_ui and self.default_frogpilot_toggles.HideAlerts) - toggle.hide_lead_marker = bool(toggle.advanced_custom_onroad_ui and self.default_frogpilot_toggles.HideLeadMarker) - toggle.hide_map_icon = bool(toggle.advanced_custom_onroad_ui and self.default_frogpilot_toggles.HideMapIcon) - toggle.hide_max_speed = bool(toggle.advanced_custom_onroad_ui and self.default_frogpilot_toggles.HideMaxSpeed) - toggle.hide_speed = bool(toggle.advanced_custom_onroad_ui and self.default_frogpilot_toggles.HideSpeed) - toggle.hide_speed_limit = bool(toggle.advanced_custom_onroad_ui and self.default_frogpilot_toggles.HideSpeedLimit) - toggle.use_wheel_speed = bool(toggle.advanced_custom_onroad_ui and self.default_frogpilot_toggles.WheelSpeed) - - toggle.advanced_lateral_tuning = bool(self.default_frogpilot_toggles.AdvancedLateralTune) - toggle.use_custom_steer_friction = False - toggle.use_custom_kp = False - toggle.use_custom_lat_accel_factor = False - toggle.use_custom_steer_ratio = False - toggle.force_auto_tune = bool(toggle.advanced_lateral_tuning and not has_auto_tune and not is_pid_car and self.default_frogpilot_toggles.ForceAutoTune) - toggle.force_auto_tune_off = bool(toggle.advanced_lateral_tuning and has_auto_tune and not is_pid_car and self.default_frogpilot_toggles.ForceAutoTuneOff) - - toggle.alert_volume_control = bool(self.default_frogpilot_toggles.AlertVolumeControl) - toggle.disengage_volume = int(self.default_frogpilot_toggles.DisengageVolume if toggle.alert_volume_control else 101) - toggle.engage_volume = int(self.default_frogpilot_toggles.EngageVolume if toggle.alert_volume_control else 101) - toggle.prompt_volume = int(self.default_frogpilot_toggles.PromptVolume if toggle.alert_volume_control else 101) - toggle.promptDistracted_volume = int(self.default_frogpilot_toggles.PromptDistractedVolume if toggle.alert_volume_control else 101) - toggle.refuse_volume = int(self.default_frogpilot_toggles.RefuseVolume if toggle.alert_volume_control else 101) - toggle.warningSoft_volume = int(self.default_frogpilot_toggles.WarningSoftVolume if toggle.alert_volume_control else 101) - toggle.warningImmediate_volume = int(self.default_frogpilot_toggles.WarningImmediateVolume if toggle.alert_volume_control else 101) - - toggle.always_on_lateral_status_bar = bool(toggle.always_on_lateral and not self.default_frogpilot_toggles.HideAOLStatusBar) - - toggle.cluster_offset = float(self.default_frogpilot_toggles.ClusterOffset if car_make == "toyota" else 1) - - toggle.conditional_navigation = bool(toggle.conditional_experimental_mode and self.default_frogpilot_toggles.CENavigation) - toggle.conditional_navigation_intersections = bool(toggle.conditional_navigation and self.default_frogpilot_toggles.CENavigationIntersections) - toggle.conditional_navigation_lead = bool(toggle.conditional_navigation and self.default_frogpilot_toggles.CENavigationLead) - toggle.conditional_navigation_turns = bool(toggle.conditional_navigation and self.default_frogpilot_toggles.CENavigationTurns) - toggle.conditional_signal = int(self.default_frogpilot_toggles.CESignalSpeed if toggle.conditional_experimental_mode else 0) - toggle.conditional_signal_lane_detection = bool(toggle.conditional_signal != 0 and self.default_frogpilot_toggles.CESignalLaneDetection) - toggle.conditional_status_bar = bool(toggle.conditional_experimental_mode and not self.default_frogpilot_toggles.HideCEMStatusBar) - if toggle.conditional_experimental_mode: - params.put_bool("ExperimentalMode", True) - - toggle.crosstrek_torque = bool(car_model == "SUBARU_IMPREZA" and self.default_frogpilot_toggles.CrosstrekTorque) - - toggle.curve_sensitivity = int(self.default_frogpilot_toggles.CurveSensitivity) / 100 if toggle.curve_speed_controller else 1 - toggle.hide_csc_ui = bool(toggle.curve_speed_controller and self.default_frogpilot_toggles.HideCSCUI) - toggle.turn_aggressiveness = int(self.default_frogpilot_toggles.TurnAggressiveness) / 100 if toggle.curve_speed_controller else 1 - toggle.mtsc_curvature_check = bool(toggle.map_turn_speed_controller and self.default_frogpilot_toggles.MTSCCurvatureCheck) - - toggle.custom_personalities = bool(openpilot_longitudinal and self.default_frogpilot_toggles.CustomPersonalities) - toggle.aggressive_profile = bool(toggle.custom_personalities and self.default_frogpilot_toggles.AggressivePersonalityProfile) - toggle.aggressive_jerk_deceleration = int(self.default_frogpilot_toggles.AggressiveJerkDeceleration) / 100 if toggle.aggressive_profile else 0.5 - toggle.aggressive_jerk_danger = int(self.default_frogpilot_toggles.AggressiveJerkDanger) / 100 if toggle.aggressive_profile else 1.0 - toggle.aggressive_jerk_speed = int(self.default_frogpilot_toggles.AggressiveJerkSpeed) / 100 if toggle.aggressive_profile else 0.5 - toggle.aggressive_jerk_speed_decrease = int(self.default_frogpilot_toggles.AggressiveJerkSpeedDecrease) / 100 if toggle.aggressive_profile else 0.5 - toggle.aggressive_follow = float(self.default_frogpilot_toggles.AggressiveFollow) if toggle.aggressive_profile else 1.25 - toggle.standard_profile = bool(toggle.custom_personalities and self.default_frogpilot_toggles.StandardPersonalityProfile) - toggle.standard_jerk_acceleration = int(self.default_frogpilot_toggles.StandardJerkAcceleration) / 100 if toggle.standard_profile else 1.0 - toggle.standard_jerk_deceleration = int(self.default_frogpilot_toggles.StandardJerkDeceleration) / 100 if toggle.standard_profile else 1.0 - toggle.standard_jerk_danger = int(self.default_frogpilot_toggles.StandardJerkDanger) / 100 if toggle.standard_profile else 1.0 - toggle.standard_jerk_speed = int(self.default_frogpilot_toggles.StandardJerkSpeed) / 100 if toggle.standard_profile else 1.0 - toggle.standard_jerk_speed_decrease = int(self.default_frogpilot_toggles.StandardJerkSpeedDecrease) / 100 if toggle.standard_profile else 1.0 - toggle.standard_follow = float(self.default_frogpilot_toggles.StandardFollow) if toggle.standard_profile else 1.45 - toggle.relaxed_profile = bool(toggle.custom_personalities and self.default_frogpilot_toggles.RelaxedPersonalityProfile) - toggle.relaxed_jerk_acceleration = int(self.default_frogpilot_toggles.RelaxedJerkAcceleration) / 100 if toggle.relaxed_profile else 1.0 - toggle.relaxed_jerk_deceleration = int(self.default_frogpilot_toggles.RelaxedJerkDeceleration) / 100 if toggle.relaxed_profile else 1.0 - toggle.relaxed_jerk_danger = int(self.default_frogpilot_toggles.RelaxedJerkDanger) / 100 if toggle.relaxed_profile else 1.0 - toggle.relaxed_jerk_speed = int(self.default_frogpilot_toggles.RelaxedJerkSpeed) / 100 if toggle.relaxed_profile else 1.0 - toggle.relaxed_jerk_speed_decrease = int(self.default_frogpilot_toggles.RelaxedJerkSpeedDecrease) / 100 if toggle.relaxed_profile else 1.0 - toggle.relaxed_follow = float(self.default_frogpilot_toggles.RelaxedFollow) if toggle.relaxed_profile else 1.75 - toggle.traffic_profile = bool(toggle.custom_personalities and self.default_frogpilot_toggles.TrafficPersonalityProfile) - toggle.traffic_mode_jerk_acceleration = [int(self.default_frogpilot_toggles.TrafficJerkAcceleration) / 100, toggle.aggressive_jerk_acceleration] if toggle.traffic_profile else [0.5, 0.5] - toggle.traffic_mode_jerk_deceleration = [int(self.default_frogpilot_toggles.TrafficJerkDeceleration) / 100, toggle.aggressive_jerk_deceleration] if toggle.traffic_profile else [0.5, 0.5] - toggle.traffic_mode_jerk_danger = [int(self.default_frogpilot_toggles.TrafficJerkDanger) / 100, toggle.aggressive_jerk_danger] if toggle.traffic_profile else [1.0, 1.0] - toggle.traffic_mode_jerk_speed = [int(self.default_frogpilot_toggles.TrafficJerkSpeed) / 100, toggle.aggressive_jerk_speed] if toggle.traffic_profile else [0.5, 0.5] - toggle.traffic_mode_jerk_speed_decrease = [int(self.default_frogpilot_toggles.TrafficJerkSpeedDecrease) / 100, toggle.aggressive_jerk_speed_decrease] if toggle.traffic_profile else [0.5, 0.5] - toggle.traffic_mode_t_follow = [float(self.default_frogpilot_toggles.TrafficFollow), toggle.aggressive_follow] if toggle.traffic_profile else [0.5, 1.0] - - toggle.adjacent_paths = bool(toggle.custom_ui and self.default_frogpilot_toggles.AdjacentPath) - - toggle.developer_ui = bool(self.default_frogpilot_toggles.DeveloperUI) - toggle.border_metrics = bool(toggle.developer_ui and self.default_frogpilot_toggles.BorderMetrics) - toggle.blind_spot_metrics = bool(has_bsm and toggle.border_metrics and self.default_frogpilot_toggles.BlindSpotMetrics) - toggle.signal_metrics = bool(toggle.border_metrics and self.default_frogpilot_toggles.SignalMetrics) - toggle.steering_metrics = bool(toggle.border_metrics and self.default_frogpilot_toggles.ShowSteering) - toggle.show_fps = bool(toggle.developer_ui and self.default_frogpilot_toggles.FPSCounter) - toggle.lateral_metrics = bool(toggle.developer_ui and self.default_frogpilot_toggles.LateralMetrics) - toggle.adjacent_path_metrics = bool(toggle.lateral_metrics and self.default_frogpilot_toggles.AdjacentPathMetrics) - toggle.lateral_tuning_metrics = bool(toggle.lateral_metrics and self.default_frogpilot_toggles.TuningInfo) - toggle.longitudinal_metrics = bool(toggle.developer_ui and self.default_frogpilot_toggles.LongitudinalMetrics) - toggle.adjacent_lead_tracking = bool(has_radar and toggle.longitudinal_metrics and self.default_frogpilot_toggles.AdjacentLeadsUI) - toggle.lead_metrics = bool(toggle.longitudinal_metrics and self.default_frogpilot_toggles.LeadInfo) - toggle.jerk_metrics = bool(toggle.longitudinal_metrics and self.default_frogpilot_toggles.JerkInfo) - toggle.numerical_temp = bool(toggle.developer_ui and self.default_frogpilot_toggles.NumericalTemp) - toggle.fahrenheit = bool(toggle.numerical_temp and self.default_frogpilot_toggles.Fahrenheit) - toggle.sidebar_metrics = bool(toggle.developer_ui and self.default_frogpilot_toggles.SidebarMetrics) - toggle.cpu_metrics = bool(toggle.sidebar_metrics and self.default_frogpilot_toggles.ShowCPU) - toggle.gpu_metrics = bool(toggle.sidebar_metrics and self.default_frogpilot_toggles.ShowGPU) - toggle.ip_metrics = bool(toggle.sidebar_metrics and self.default_frogpilot_toggles.ShowIP) - toggle.memory_metrics = bool(toggle.sidebar_metrics and self.default_frogpilot_toggles.ShowMemoryUsage) - toggle.storage_left_metrics = bool(toggle.sidebar_metrics and self.default_frogpilot_toggles.ShowStorageLeft) - toggle.storage_used_metrics = bool(toggle.sidebar_metrics and self.default_frogpilot_toggles.ShowStorageUsed) - toggle.use_si_metrics = bool(toggle.developer_ui and self.default_frogpilot_toggles.UseSI) - - toggle.device_management = bool(self.default_frogpilot_toggles.DeviceManagement) - toggle.increase_thermal_limits = bool(toggle.device_management and self.default_frogpilot_toggles.IncreaseThermalLimits) - toggle.low_voltage_shutdown = clip(float(self.default_frogpilot_toggles.LowVoltageShutdown), VBATT_PAUSE_CHARGING, 12.5) if toggle.device_management else VBATT_PAUSE_CHARGING - toggle.no_logging = bool(toggle.device_management and self.default_frogpilot_toggles.NoLogging or self.development_branch) - toggle.no_uploads = bool(toggle.device_management and self.default_frogpilot_toggles.NoUploads or self.development_branch) - toggle.offline_mode = bool(toggle.device_management and self.default_frogpilot_toggles.OfflineMode) - - toggle.experimental_gm_tune = bool(openpilot_longitudinal and car_make == "gm" and self.default_frogpilot_toggles.ExperimentalGMTune) - - toggle.frogsgomoo_tweak = bool(openpilot_longitudinal and car_make == "toyota" and self.default_frogpilot_toggles.FrogsGoMoosTweak) - - toggle.lane_detection_width = float(self.default_frogpilot_toggles.LaneDetectionWidth) * distance_conversion if toggle.lane_change_customizations else 0 - toggle.lane_detection = bool(toggle.lane_detection_width != 0) - toggle.minimum_lane_change_speed = float(self.default_frogpilot_toggles.MinimumLaneChangeSpeed) * speed_conversion if toggle.lane_change_customizations else LANE_CHANGE_SPEED_MIN - - toggle.lateral_tuning = bool(self.default_frogpilot_toggles.LateralTune) - toggle.nnff_lite = bool(toggle.lateral_tuning and self.default_frogpilot_toggles.NNFFLite) - toggle.use_turn_desires = bool(toggle.lateral_tuning and self.default_frogpilot_toggles.TurnDesires) - - toggle.long_pitch = bool(openpilot_longitudinal and car_make == "gm" and self.default_frogpilot_toggles.LongPitch) - - toggle.lead_detection_probability = clip(float(self.default_frogpilot_toggles.LeadDetectionThreshold) / 100, 0.01, 0.99) if toggle.longitudinal_tuning else 0.5 - toggle.max_desired_acceleration = clip(float(self.default_frogpilot_toggles.MaxDesiredAcceleration), 0.1, 4.0) if toggle.longitudinal_tuning else 4.0 - toggle.taco_tune = bool(toggle.longitudinal_tuning and self.default_frogpilot_toggles.TacoTune) - - toggle.model = DEFAULT_CLASSIC_MODEL - toggle.model_randomizer = self.default_frogpilot_toggles.ModelRandomizer - toggle.part_model_param = "" - toggle.classic_model = bool(classic_models and toggle.model in classic_models.split(',')) - toggle.navigationless_model = bool(navigation_models and toggle.model not in navigation_models.split(',')) - toggle.radarless_model = bool(radarless_models and toggle.model in radarless_models.split(',')) - - toggle.model_ui = bool(self.default_frogpilot_toggles.ModelUI) - toggle.dynamic_path_width = bool(toggle.model_ui and self.default_frogpilot_toggles.DynamicPathWidth) - toggle.lane_line_width = int(self.default_frogpilot_toggles.LaneLinesWidth) * small_distance_conversion / 200 if toggle.model_ui else 0.025 - toggle.path_edge_width = int(self.default_frogpilot_toggles.PathEdgeWidth) if toggle.model_ui else 20 - toggle.path_width = float(self.default_frogpilot_toggles.PathWidth) * distance_conversion / 2 if toggle.model_ui else 0.9 - toggle.road_edge_width = int(self.default_frogpilot_toggles.RoadEdgesWidth) * small_distance_conversion / 200 if toggle.model_ui else 0.025 - toggle.show_stopping_point = bool(toggle.model_ui and self.default_frogpilot_toggles.ShowStoppingPoint) - toggle.show_stopping_point_metrics = bool(toggle.show_stopping_point and self.default_frogpilot_toggles.ShowStoppingPointMetrics) - toggle.unlimited_road_ui_length = bool(toggle.model_ui and self.default_frogpilot_toggles.UnlimitedLength) - - toggle.map_style = int(self.default_frogpilot_toggles.MapStyle) if toggle.navigation_ui else 0 - toggle.road_name_ui = bool(toggle.navigation_ui and self.default_frogpilot_toggles.RoadNameUI) - toggle.show_speed_limit_offset = bool(toggle.navigation_ui and self.default_frogpilot_toggles.ShowSLCOffset) - toggle.speed_limit_vienna = bool(toggle.navigation_ui and self.default_frogpilot_toggles.UseVienna) - - toggle.old_long_api = bool(openpilot_longitudinal and car_make == "gm" and not self.default_frogpilot_toggles.NewLongAPIGM) - toggle.old_long_api |= bool(openpilot_longitudinal and car_make == "hyundai" and not self.default_frogpilot_toggles.NewLongAPI) - - toggle.quality_of_life_lateral = bool(self.default_frogpilot_toggles.QOLLateral) - toggle.pause_lateral_below_speed = int(self.default_frogpilot_toggles.PauseLateralSpeed) * speed_conversion if toggle.quality_of_life_lateral else 0 - toggle.pause_lateral_below_signal = bool(toggle.pause_lateral_below_speed != 0 and self.default_frogpilot_toggles.PauseLateralOnSignal) - - toggle.custom_cruise_increase = int(self.default_frogpilot_toggles.CustomCruise) if toggle.quality_of_life_longitudinal and not pcm_cruise else 1 - toggle.custom_cruise_increase_long = int(self.default_frogpilot_toggles.CustomCruiseLong) if toggle.quality_of_life_longitudinal and not pcm_cruise else 5 - toggle.force_standstill = bool(toggle.quality_of_life_longitudinal and self.default_frogpilot_toggles.ForceStandstill) - toggle.force_stops = bool(toggle.quality_of_life_longitudinal and self.default_frogpilot_toggles.ForceStops) - toggle.reverse_cruise_increase = bool(toggle.quality_of_life_longitudinal and pcm_cruise and self.default_frogpilot_toggles.ReverseCruise) - toggle.set_speed_offset = int(self.default_frogpilot_toggles.SetSpeedOffset) * (1 if toggle.is_metric else CV.MPH_TO_KPH) if toggle.quality_of_life_longitudinal and not pcm_cruise else 0 - - toggle.camera_view = int(self.default_frogpilot_toggles.CameraView) if toggle.quality_of_life_visuals else 0 - toggle.standby_mode = bool(toggle.quality_of_life_visuals and self.default_frogpilot_toggles.StandbyMode) - - toggle.screen_management = bool(self.default_frogpilot_toggles.ScreenManagement) - toggle.screen_brightness = int(self.default_frogpilot_toggles.ScreenBrightness) if toggle.screen_management else 101 - toggle.screen_brightness_onroad = int(self.default_frogpilot_toggles.ScreenBrightnessOnroad) if toggle.screen_management else 101 - toggle.screen_recorder = bool(toggle.screen_management and self.default_frogpilot_toggles.ScreenRecorder) - toggle.screen_timeout = int(self.default_frogpilot_toggles.ScreenTimeout) if toggle.screen_management else 30 - toggle.screen_timeout_onroad = int(self.default_frogpilot_toggles.ScreenTimeoutOnroad) if toggle.screen_management else 10 - - toggle.sng_hack = bool(openpilot_longitudinal and car_make == "toyota" and self.default_frogpilot_toggles.SNGHack) - - toggle.force_mph_dashboard = bool(toggle.speed_limit_controller and self.default_frogpilot_toggles.ForceMPHDashboard) - toggle.map_speed_lookahead_higher = int(self.default_frogpilot_toggles.SLCLookaheadHigher) if toggle.speed_limit_controller else 0 - toggle.map_speed_lookahead_lower = int(self.default_frogpilot_toggles.SLCLookaheadLower) if toggle.speed_limit_controller else 0 - toggle.set_speed_limit = bool(toggle.speed_limit_controller and self.default_frogpilot_toggles.SetSpeedLimit) - toggle.speed_limit_priority1 = self.default_frogpilot_toggles.SLCPriority1 if toggle.speed_limit_controller else None - toggle.speed_limit_priority2 = self.default_frogpilot_toggles.SLCPriority2 if toggle.speed_limit_controller else None - toggle.speed_limit_priority3 = self.default_frogpilot_toggles.SLCPriority3 if toggle.speed_limit_controller else None - toggle.speed_limit_priority_highest = bool(toggle.speed_limit_priority1 == "Highest") - toggle.speed_limit_priority_lowest = bool(toggle.speed_limit_priority1 == "Lowest") - toggle.speed_limit_sources = bool(toggle.speed_limit_controller and self.default_frogpilot_toggles.SpeedLimitSources) - - toggle.startup_alert_top = str(self.default_frogpilot_toggles.StartupMessageTop) - toggle.startup_alert_bottom = str(self.default_frogpilot_toggles.StartupMessageBottom) - - toggle.volt_sng = bool(car_model == "CHEVROLET_VOLT" and self.default_frogpilot_toggles.VoltSNG) - - params.put("FrogPilotToggles", json.dumps(toggle.__dict__)) + toyota_doors = car_make == "toyota" and (params.get_bool("ToyotaDoors") if tuning_level >= level["ToyotaDoors"] else default.get_bool("ToyotaDoors")) + toggle.lock_doors = toyota_doors and (params.get_bool("LockDoors") if tuning_level >= level["LockDoors"] else default.get_bool("LockDoors")) + toggle.unlock_doors = toyota_doors and (params.get_bool("UnlockDoors") if tuning_level >= level["UnlockDoors"] else default.get_bool("UnlockDoors")) + + toggle.volt_sng = car_model == "CHEVROLET_VOLT" and (params.get_bool("VoltSNG") if tuning_level >= level["VoltSNG"] else default.get_bool("VoltSNG")) + + params_memory.put("FrogPilotToggles", json.dumps(toggle.__dict__)) params_memory.remove("FrogPilotTogglesUpdated") diff --git a/selfdrive/frogpilot/navigation/mapd.py b/selfdrive/frogpilot/navigation/mapd.py index 4bb08eb147b871..e6fd26df07586b 100644 --- a/selfdrive/frogpilot/navigation/mapd.py +++ b/selfdrive/frogpilot/navigation/mapd.py @@ -6,10 +6,6 @@ import time import urllib.request -from openpilot.common.realtime import Ratekeeper - -from openpilot.selfdrive.frogpilot.frogpilot_utilities import is_url_pingable - VERSION = 'v1' GITHUB_VERSION_URL = f"https://github.com/FrogAi/FrogPilot-Resources/raw/Versions/mapd_version_{VERSION}.json" @@ -18,16 +14,6 @@ MAPD_PATH = '/data/media/0/osm/mapd' VERSION_PATH = '/data/media/0/osm/mapd_version' -def get_latest_version(): - for url in [GITHUB_VERSION_URL, GITLAB_VERSION_URL]: - try: - with urllib.request.urlopen(url, timeout=5) as response: - return json.loads(response.read().decode('utf-8'))['version'] - except Exception as e: - print(f"Error fetching version from {url}: {e}") - print("Failed to get the latest version from both sources.") - return None - def download(current_version): urls = [ f"https://github.com/pfeiferj/openpilot-mapd/releases/download/{current_version}/mapd", @@ -45,49 +31,65 @@ def download(current_version): with open(VERSION_PATH, 'w') as version_file: version_file.write(current_version) - print(f"Successfully downloaded mapd from {url}") return True except Exception as e: - print(f"Failed to download from {url}: {e}") + print(f"Failed to download mapd from {url}: {e}") - print(f"Failed to download mapd for version {current_version} from both sources.") + print(f"Failed to download mapd for version {current_version}") return False -def ensure_mapd_is_running(): - while True: - if os.path.exists(MAPD_PATH): - try: - subprocess.run([MAPD_PATH], check=True) - except Exception as e: - print(f"Error running mapd process: {e}") - else: - print(f"Error: {MAPD_PATH} does not exist.") - time.sleep(1) +def get_installed_version(): + try: + with open(VERSION_PATH, 'r') as version_file: + return version_file.read().strip() + except FileNotFoundError: + return None + except Exception as e: + print(f"Error reading installed version: {e}") + return None -def mapd_thread(): - rk = Ratekeeper(0.05) +def get_latest_version(): + for url in [GITHUB_VERSION_URL, GITLAB_VERSION_URL]: + try: + with urllib.request.urlopen(url, timeout=5) as response: + return json.loads(response.read().decode('utf-8'))['version'] + except Exception as e: + print(f"Error fetching mapd version from {url}: {e}") + print("Failed to get the latest mapd version") + return None - while True: +def update_mapd(): + installed_version = get_installed_version() + latest_version = get_latest_version() + + if latest_version is None: + print("Could not get the latest mapd version") + return + + if installed_version != latest_version: + print("New mapd version available, stopping the mapd process for update") try: - if is_url_pingable("https://github.com"): - current_version = get_latest_version() - if current_version: - if not os.path.exists(MAPD_PATH) or not os.path.exists(VERSION_PATH) or open(VERSION_PATH).read() != current_version: - if download(current_version): - continue - ensure_mapd_is_running() + subprocess.run(["pkill", "-f", MAPD_PATH], stdout=subprocess.PIPE, stderr=subprocess.PIPE) except Exception as e: - print(f"Exception in mapd_thread: {e}") - time.sleep(1) + print(f"Error stopping mapd process: {e}") + if download(latest_version): + print(f"Updated mapd to version {latest_version}") + else: + print("Failed to update mapd") + else: + print("Mapd is up to date") - rk.keep_time() +def ensure_mapd_is_running(): + while True: + try: + subprocess.run([MAPD_PATH], check=True) + except Exception as e: + print(f"Error running mapd process: {e}") + time.sleep(60) def main(): - try: - mapd_thread() - except Exception as e: - print(f"Unhandled exception in main: {e}") + ensure_mapd_is_running() if __name__ == "__main__": main() diff --git a/selfdrive/frogpilot/navigation/ui/maps_settings.cc b/selfdrive/frogpilot/navigation/ui/maps_settings.cc index 7bc573c1f42832..7f5c53d209faa5 100644 --- a/selfdrive/frogpilot/navigation/ui/maps_settings.cc +++ b/selfdrive/frogpilot/navigation/ui/maps_settings.cc @@ -162,7 +162,7 @@ void FrogPilotMapsPanel::downloadMaps() { return; } - paramsMemory.put("OSMDownloadLocations", params.get("MapsSelected")); + params_memory.put("OSMDownloadLocations", params.get("MapsSelected")); downloadActive = true; diff --git a/selfdrive/frogpilot/navigation/ui/maps_settings.h b/selfdrive/frogpilot/navigation/ui/maps_settings.h index 2373c1ed198fcc..ce0b524946745f 100644 --- a/selfdrive/frogpilot/navigation/ui/maps_settings.h +++ b/selfdrive/frogpilot/navigation/ui/maps_settings.h @@ -65,7 +65,7 @@ class FrogPilotMapsPanel : public FrogPilotListWidget { MapSelectionControl *westMaps; Params params; - Params paramsMemory{"/dev/shm/params"}; + Params params_memory{"/dev/shm/params"}; bool countriesOpen; bool downloadActive; diff --git a/selfdrive/frogpilot/screenrecorder/omx_encoder.cc b/selfdrive/frogpilot/screenrecorder/omx_encoder.cc index 0700cd7cf0defb..69e3f5c6ec874a 100644 --- a/selfdrive/frogpilot/screenrecorder/omx_encoder.cc +++ b/selfdrive/frogpilot/screenrecorder/omx_encoder.cc @@ -209,10 +209,18 @@ OmxEncoder::OmxEncoder(const char* path, int width, int height, int fps, int bit this->height = height; this->fps = fps; + OMX_ERRORTYPE err = OMX_Init(); + if (err != OMX_ErrorNone) { + LOGE("OMX_Init failed: %x", err); + return; + } + OMX_STRING component = (OMX_STRING)("OMX.qcom.video.encoder.avc"); - int err = OMX_GetHandle(&handle, component, this, &omx_callbacks); + err = OMX_GetHandle(&handle, component, this, &omx_callbacks); if (err != OMX_ErrorNone) { - LOGE("error getting codec: %x", err); + LOGE("Error getting codec: %x", err); + OMX_Deinit(); + return; } // setup input port @@ -543,6 +551,11 @@ OmxEncoder::~OmxEncoder() { OMX_CHECK(OMX_FreeHandle(handle)); + OMX_ERRORTYPE err = OMX_Deinit(); + if (err != OMX_ErrorNone) { + LOGE("OMX_Deinit failed: %x", err); + } + OMX_BUFFERHEADERTYPE *out_buf; while (free_in.try_pop(out_buf)); while (done_out.try_pop(out_buf)); diff --git a/selfdrive/frogpilot/screenrecorder/screenrecorder.cc b/selfdrive/frogpilot/screenrecorder/screenrecorder.cc index 906063bfc57f71..be6307d7a1cc0a 100644 --- a/selfdrive/frogpilot/screenrecorder/screenrecorder.cc +++ b/selfdrive/frogpilot/screenrecorder/screenrecorder.cc @@ -5,30 +5,48 @@ #include "selfdrive/frogpilot/screenrecorder/screenrecorder.h" namespace { - inline long long milliseconds() { + long long currentMilliseconds() { return std::chrono::duration_cast(std::chrono::system_clock::now().time_since_epoch()).count(); } + + uint64_t nanosSinceBoot() { + return std::chrono::duration_cast(std::chrono::steady_clock::now().time_since_epoch()).count(); + } } -ScreenRecorder::ScreenRecorder(QWidget *parent) : QPushButton(parent), recording(false) { +ScreenRecorder::ScreenRecorder(QWidget *parent) : QPushButton(parent) { setFixedSize(btn_size, btn_size); - encoder = std::make_unique("/data/media/screen_recordings", screenWidth, screenHeight, UI_FREQ, 8 * 1024 * 1024); + std::thread encoderInitThread([this]() { + try { + encoder = std::make_unique("/data/media/screen_recordings", screenWidth, screenHeight, UI_FREQ, 8 * 1024 * 1024); + encoderReady = true; + } catch (const std::exception &e) { + std::cerr << "Error initializing OmxEncoder: " << e.what() << std::endl; + } + }); + encoderInitThread.detach(); + rgbScaleBuffer = std::make_unique(screenWidth * screenHeight * 4); QObject::connect(this, &QPushButton::clicked, this, &ScreenRecorder::toggleRecording); } ScreenRecorder::~ScreenRecorder() { - stop(); + stopRecording(); } void ScreenRecorder::toggleRecording() { - recording ? stop() : start(); + if (recording) { + stopRecording(); + } else { + startRecording(); + } } -void ScreenRecorder::start() { - if (recording) { +void ScreenRecorder::startRecording() { + if (recording || !encoderReady) { + std::cerr << "Recording already in progress or encoder not ready." << std::endl; return; } @@ -48,10 +66,10 @@ void ScreenRecorder::start() { recording = false; } - started_time = milliseconds(); + startedTime = currentMilliseconds(); } -void ScreenRecorder::stop() { +void ScreenRecorder::stopRecording() { if (!recording) { return; } @@ -69,7 +87,7 @@ void ScreenRecorder::stop() { } imageQueue.clear(); - rgbScaleBuffer.reset(new uint8_t[screenWidth * screenHeight * 4]); + rgbScaleBuffer = std::make_unique(screenWidth * screenHeight * 4); } void ScreenRecorder::openEncoder(const std::string &filename) { @@ -85,20 +103,29 @@ void ScreenRecorder::closeEncoder() { } void ScreenRecorder::encodingThreadFunction() { - uint64_t start_time = nanos_since_boot(); + uint64_t startTime = nanosSinceBoot(); while (recording) { - if (!encoder) { - break; - } - - QImage popImage; - if (imageQueue.pop_wait_for(popImage, std::chrono::milliseconds(10))) { - QImage image = popImage.convertToFormat(QImage::Format_RGBA8888); - libyuv::ARGBScale(image.bits(), image.width() * 4, image.width(), image.height(), - rgbScaleBuffer.get(), screenWidth * 4, screenWidth, screenHeight, - libyuv::kFilterBilinear); - encoder->encode_frame_rgba(rgbScaleBuffer.get(), screenWidth, screenHeight, nanos_since_boot() - start_time); + QImage image; + if (imageQueue.pop_wait_for(image, std::chrono::milliseconds(10))) { + QImage convertedImage = image.convertToFormat(QImage::Format_RGBA8888); + libyuv::ARGBScale( + convertedImage.bits(), + convertedImage.width() * 4, + convertedImage.width(), + convertedImage.height(), + rgbScaleBuffer.get(), + screenWidth * 4, + screenWidth, + screenHeight, + libyuv::kFilterBilinear + ); + encoder->encode_frame_rgba( + rgbScaleBuffer.get(), + screenWidth, + screenHeight, + nanosSinceBoot() - startTime + ); } } } @@ -109,13 +136,14 @@ void ScreenRecorder::updateScreen(double fps, bool started) { } if (!started) { - stop(); + stopRecording(); return; } - if (milliseconds() - started_time > 1000 * 60 * 3) { - stop(); - start(); + static long long recordingDurationLimit = 1000 * 60 * 3; + if (currentMilliseconds() - startedTime > recordingDurationLimit) { + stopRecording(); + startRecording(); return; } @@ -157,7 +185,7 @@ void ScreenRecorder::paintEvent(QPaintEvent *event) { painter.setPen(QPen(whiteColor(), 6)); painter.drawText(textRect, Qt::AlignLeft | Qt::AlignVCenter, tr("RECORD")); - if (recording && ((milliseconds() - started_time) / 1000) % 2 == 0) { + if (recording && ((currentMilliseconds() - startedTime) / 1000) % 2 == 0) { painter.setPen(Qt::NoPen); painter.drawEllipse(QPoint(buttonRect.right() - btn_size / 10 - centeringOffset, buttonRect.center().y()), btn_size / 10, btn_size / 10); } diff --git a/selfdrive/frogpilot/screenrecorder/screenrecorder.h b/selfdrive/frogpilot/screenrecorder/screenrecorder.h index a3f4d536e0608a..4747d6269c5759 100644 --- a/selfdrive/frogpilot/screenrecorder/screenrecorder.h +++ b/selfdrive/frogpilot/screenrecorder/screenrecorder.h @@ -9,39 +9,43 @@ class ScreenRecorder : public QPushButton { Q_OBJECT public: - explicit ScreenRecorder(QWidget *parent = 0); + explicit ScreenRecorder(QWidget *parent = nullptr); ~ScreenRecorder() override; void updateScreen(double fps, bool started); +protected: + void paintEvent(QPaintEvent *event) override; + +private slots: + void toggleRecording(); + private: void closeEncoder(); void encodingThreadFunction(); void openEncoder(const std::string &filename); - void paintEvent(QPaintEvent *event) override; - void start(); - void stop(); - void toggleRecording(); + void startRecording(); + void stopRecording(); BlockingQueue imageQueue{UI_FREQ}; - BlockingQueue encodeQueue{UI_FREQ}; inline QColor blackColor(int alpha = 255) { return QColor(0, 0, 0, alpha); } inline QColor redColor(int alpha = 255) { return QColor(201, 34, 49, alpha); } inline QColor whiteColor(int alpha = 255) { return QColor(255, 255, 255, alpha); } - QWidget *rootWidget; - - bool recording; + QWidget *rootWidget = nullptr; int screenHeight = 1080; int screenWidth = 2160; - long long started_time; + long long startedTime = 0; - std::thread encodingThread; + std::atomic encoderReady{false}; + std::atomic recording{false}; std::unique_ptr encoder; std::unique_ptr rgbScaleBuffer; + + std::thread encodingThread; }; diff --git a/selfdrive/frogpilot/ui/qt/offroad/device_settings.cc b/selfdrive/frogpilot/ui/qt/offroad/device_settings.cc index 5269561684cfe5..5234a3bc6d18d9 100644 --- a/selfdrive/frogpilot/ui/qt/offroad/device_settings.cc +++ b/selfdrive/frogpilot/ui/qt/offroad/device_settings.cc @@ -24,17 +24,7 @@ FrogPilotDevicePanel::FrogPilotDevicePanel(FrogPilotSettingsWindow *parent) : Fr if (param == "DeviceManagement") { FrogPilotParamManageControl *deviceManagementToggle = new FrogPilotParamManageControl(param, title, desc, icon); QObject::connect(deviceManagementToggle, &FrogPilotParamManageControl::manageButtonClicked, [this]() { - std::set modifiedDeviceManagementKeys = deviceManagementKeys; - - if (customizationLevel != 2) { - modifiedDeviceManagementKeys.erase("IncreaseThermalLimits"); - modifiedDeviceManagementKeys.erase("LowVoltageShutdown"); - modifiedDeviceManagementKeys.erase("NoLogging"); - modifiedDeviceManagementKeys.erase("NoUploads"); - modifiedDeviceManagementKeys.erase("OfflineMode"); - } - - showToggles(modifiedDeviceManagementKeys); + showToggles(deviceManagementKeys); }); deviceToggle = deviceManagementToggle; } else if (param == "DeviceShutdown") { @@ -110,9 +100,10 @@ FrogPilotDevicePanel::FrogPilotDevicePanel(FrogPilotSettingsWindow *parent) : Fr } void FrogPilotDevicePanel::showEvent(QShowEvent *event) { - customizationLevel = parent->customizationLevel; + frogpilot_toggle_levels = parent->frogpilot_toggle_levels; + tuningLevel = parent->tuningLevel; - toggles["ScreenManagement"]->setVisible(customizationLevel == 2); + hideToggles(); } void FrogPilotDevicePanel::updateState(const UIState &s) { @@ -127,7 +118,7 @@ void FrogPilotDevicePanel::showToggles(const std::set &keys) { setUpdatesEnabled(false); for (auto &[key, toggle] : toggles) { - toggle->setVisible(keys.find(key) != keys.end()); + toggle->setVisible(keys.find(key) != keys.end() && tuningLevel >= frogpilot_toggle_levels[key].toDouble()); } setUpdatesEnabled(true); @@ -140,11 +131,9 @@ void FrogPilotDevicePanel::hideToggles() { for (auto &[key, toggle] : toggles) { bool subToggles = deviceManagementKeys.find(key) != deviceManagementKeys.end() || screenKeys.find(key) != screenKeys.end(); - toggle->setVisible(!subToggles); + toggle->setVisible(!subToggles && tuningLevel >= frogpilot_toggle_levels[key].toDouble()); } - toggles["ScreenManagement"]->setVisible(customizationLevel == 2); - setUpdatesEnabled(true); update(); } diff --git a/selfdrive/frogpilot/ui/qt/offroad/device_settings.h b/selfdrive/frogpilot/ui/qt/offroad/device_settings.h index a1385d0590b542..4011d5923a8e8a 100644 --- a/selfdrive/frogpilot/ui/qt/offroad/device_settings.h +++ b/selfdrive/frogpilot/ui/qt/offroad/device_settings.h @@ -21,9 +21,11 @@ class FrogPilotDevicePanel : public FrogPilotListWidget { FrogPilotSettingsWindow *parent; + QJsonObject frogpilot_toggle_levels; + bool started; - int customizationLevel; + int tuningLevel; std::map toggles; diff --git a/selfdrive/frogpilot/ui/qt/offroad/frogpilot_settings.cc b/selfdrive/frogpilot/ui/qt/offroad/frogpilot_settings.cc index 211fdc20ca89c5..756eb943be9262 100644 --- a/selfdrive/frogpilot/ui/qt/offroad/frogpilot_settings.cc +++ b/selfdrive/frogpilot/ui/qt/offroad/frogpilot_settings.cc @@ -44,15 +44,39 @@ FrogPilotSettingsWindow::FrogPilotSettingsWindow(SettingsWindow *parent) : QFram FrogPilotListWidget *list = new FrogPilotListWidget(frogpilotSettingsWidget); - std::vector toggle_presets{tr("Basic"), tr("Standard"), tr("Advanced")}; - ButtonParamControl *toggle_preset = new ButtonParamControl("CustomizationLevel", tr("Customization Level"), - tr("Choose your preferred customization level. 'Standard' is recommended for most users, offering a balanced experience and automatically managing more 'Advanced' features," - " while 'Basic' is designed for those new to customization or seeking simplicity."), - "../frogpilot/assets/toggle_icons/icon_customization.png", - toggle_presets); - QObject::connect(toggle_preset, &ButtonParamControl::buttonClicked, this, &FrogPilotSettingsWindow::updatePanelVisibility); - QObject::connect(toggle_preset, &ButtonParamControl::buttonClicked, this, &updateFrogPilotToggles); - list->addItem(toggle_preset); + std::vector togglePresets{tr("Minimal"), tr("Standard"), tr("Advanced"), tr("Developer")}; + ButtonParamControl *togglePreset = new ButtonParamControl("TuningLevel", tr("Tuning Level"), + tr("Select the tuning level that best suits your needs. 'Basic' is ideal for those who prefer simplicity and ease of use, " + "'Standard' is recommended for most users, offering a balanced experience, " + "'Advanced' provides more control for experienced users, " + "while 'Developer' unlocks highly customizable settings designed for seasoned enthusiasts."), + "../frogpilot/assets/toggle_icons/icon_customization.png", + togglePresets); + int timeTo100FPHours = 100 - (paramsTracking.getInt("FrogPilotMinutes") / 60); + int timeTo250OPHours = 250 - (params.getInt("openpilotMinutes") / 60); + togglePreset->setEnabledButtons(3, timeTo100FPHours <= 0 || timeTo250OPHours <= 0); + QObject::connect(togglePreset, &ButtonParamControl::buttonClicked, [=](int id) { + tuningLevel = id; + + if (id == 3) { + FrogPilotConfirmationDialog::toggleAlert( + tr("WARNING: This unlocks some potentially dangerous settings that can DRASTICALLY alter your driving experience!"), + tr("I understand the risks."), this + ); + } + + updateFrogPilotToggles(); + updatePanelVisibility(); + }); + QObject::connect(togglePreset, &ButtonParamControl::disabledButtonClicked, [=](int id) { + if (id == 3) { + FrogPilotConfirmationDialog::toggleAlert( + tr("The 'Developer' preset is only available for users with either over 100 hours on FrogPilot, or 250 hours with openpilot."), + tr("Okay"), this + ); + } + }); + list->addItem(togglePreset); FrogPilotDevicePanel *frogpilotDevicePanel = new FrogPilotDevicePanel(this); QObject::connect(frogpilotDevicePanel, &FrogPilotDevicePanel::openParentToggle, this, &FrogPilotSettingsWindow::openParentToggle); @@ -136,12 +160,15 @@ FrogPilotSettingsWindow::FrogPilotSettingsWindow(SettingsWindow *parent) : QFram QObject::connect(parent, &SettingsWindow::closeParentToggle, this, &FrogPilotSettingsWindow::closeParentToggle); QObject::connect(parent, &SettingsWindow::closeSubParentToggle, this, &FrogPilotSettingsWindow::closeSubParentToggle); QObject::connect(parent, &SettingsWindow::updateMetric, this, &FrogPilotSettingsWindow::updateMetric); - QObject::connect(uiState(), &UIState::offroadTransition, this, &FrogPilotSettingsWindow::updateCarVariables); + + frogpilot_toggle_levels = QJsonDocument::fromJson(QString::fromStdString(params_memory.get("FrogPilotTuningLevels", true)).toUtf8()).object(); + tuningLevel = params.getInt("TuningLevel"); closeParentToggle(); } void FrogPilotSettingsWindow::showEvent(QShowEvent *event) { + updateCarVariables(); updatePanelVisibility(); } @@ -154,33 +181,9 @@ void FrogPilotSettingsWindow::closePanel() { uiState()->scene.keep_screen_on = false; } -void FrogPilotSettingsWindow::updatePanelVisibility() { - customizationLevel = params.getInt("CustomizationLevel"); - disableOpenpilotLongitudinal = params.getBool("DisableOpenpilotLongitudinal"); - - if ((hasOpenpilotLongitudinal && !disableOpenpilotLongitudinal) || customizationLevel != 0) { - drivingButton->setVisible(true); - drivingButton->setVisibleButton(0, customizationLevel == 2); - drivingButton->setVisibleButton(1, hasOpenpilotLongitudinal && !disableOpenpilotLongitudinal); - drivingButton->setVisibleButton(2, customizationLevel != 0); - update(); - } else { - drivingButton->setVisible(false); - update(); - } - navigationButton->setVisibleButton(1, !uiState()->hasPrime()); - systemButton->setVisibleButton(1, customizationLevel != 0); - - mainLayout->setCurrentWidget(frogpilotSettingsWidget); -} - void FrogPilotSettingsWindow::updateCarVariables() { - std::thread([this] { - std::string carParams = params.get("CarParamsPersistent"); - if (carParams.empty()) { - carParams = params.get("CarParams", true); - } - + std::string carParams = params.get("CarParamsPersistent"); + if (!carParams.empty()) { AlignedBuffer aligned_buf; capnp::FlatArrayMessageReader cmsg(aligned_buf.align(carParams.data(), carParams.size())); cereal::CarParams::Reader CP = cmsg.getRoot(); @@ -200,7 +203,6 @@ void FrogPilotSettingsWindow::updateCarVariables() { hasSNG = CP.getMinEnableSpeed() <= 0; isBolt = carFingerprint == "CHEVROLET_BOLT_CC" || carFingerprint == "CHEVROLET_BOLT_EUV"; isGM = carModel == "gm"; - isGMPCMCruise = CP.getCarName() == "gm" && CP.getPcmCruise(); isHKGCanFd = carModel == "hyundai" && safetyModel == cereal::CarParams::SafetyModel::HYUNDAI_CANFD; isImpreza = carFingerprint == "SUBARU_IMPREZA"; isPIDCar = CP.getLateralTuning().which() == cereal::CarParams::LateralTuning::PID; @@ -219,31 +221,31 @@ void FrogPilotSettingsWindow::updateCarVariables() { float currentRatioStock = params.getFloat("SteerRatioStock"); if (currentFrictionStock != steerFrictionStock && steerFrictionStock != 0) { - if (params.getFloat("SteerFriction") == currentFrictionStock) { - params.putFloatNonBlocking("SteerFriction", steerFrictionStock); + if (params.getFloat("SteerFriction") == currentFrictionStock || currentFrictionStock == 0) { + params.putFloat("SteerFriction", steerFrictionStock); } - params.putFloatNonBlocking("SteerFrictionStock", steerFrictionStock); + params.putFloat("SteerFrictionStock", steerFrictionStock); } if (currentKPStock != steerKPStock && currentKPStock != 0) { - if (params.getFloat("SteerKP") == currentKPStock) { - params.putFloatNonBlocking("SteerKP", steerKPStock); + if (params.getFloat("SteerKP") == currentKPStock || currentKPStock == 0) { + params.putFloat("SteerKP", steerKPStock); } - params.putFloatNonBlocking("SteerKPStock", steerKPStock); + params.putFloat("SteerKPStock", steerKPStock); } if (currentLatAccelStock != steerLatAccelStock && steerLatAccelStock != 0) { - if (params.getFloat("SteerLatAccel") == steerLatAccelStock) { - params.putFloatNonBlocking("SteerLatAccel", steerLatAccelStock); + if (params.getFloat("SteerLatAccel") == steerLatAccelStock || steerLatAccelStock == 0) { + params.putFloat("SteerLatAccel", steerLatAccelStock); } - params.putFloatNonBlocking("SteerLatAccelStock", steerLatAccelStock); + params.putFloat("SteerLatAccelStock", steerLatAccelStock); } if (currentRatioStock != steerRatioStock && steerRatioStock != 0) { - if (params.getFloat("SteerRatio") == steerRatioStock) { - params.putFloatNonBlocking("SteerRatio", steerRatioStock); + if (params.getFloat("SteerRatio") == steerRatioStock || steerRatioStock == 0) { + params.putFloat("SteerRatio", steerRatioStock); } - params.putFloatNonBlocking("SteerRatioStock", steerRatioStock); + params.putFloat("SteerRatioStock", steerRatioStock); } uiState()->scene.has_auto_tune = hasAutoTune || forcingAutoTune; @@ -263,9 +265,25 @@ void FrogPilotSettingsWindow::updateCarVariables() { } else { liveValid = false; } + } +} - emit updateCarToggles(); - }).detach(); +void FrogPilotSettingsWindow::updatePanelVisibility() { + disableOpenpilotLongitudinal = params.getBool("DisableOpenpilotLongitudinal"); + + if ((hasOpenpilotLongitudinal && !disableOpenpilotLongitudinal) || tuningLevel != 0) { + drivingButton->setVisible(true); + drivingButton->setVisibleButton(0, tuningLevel >= frogpilot_toggle_levels.value("Model").toDouble()); + drivingButton->setVisibleButton(1, hasOpenpilotLongitudinal && !disableOpenpilotLongitudinal); + update(); + } else { + drivingButton->setVisible(false); + update(); + } + navigationButton->setVisibleButton(1, !uiState()->hasPrime()); + systemButton->setVisibleButton(1, tuningLevel >= frogpilot_toggle_levels.value("DeviceManagement").toDouble() || tuningLevel >= frogpilot_toggle_levels.value("ScreenManagement").toDouble()); + + mainLayout->setCurrentWidget(frogpilotSettingsWidget); } void FrogPilotSettingsWindow::addPanelControl(FrogPilotListWidget *list, QString &title, QString &desc, std::vector &button_labels, QString &icon, std::vector &panels, QString ¤tPanel) { diff --git a/selfdrive/frogpilot/ui/qt/offroad/frogpilot_settings.h b/selfdrive/frogpilot/ui/qt/offroad/frogpilot_settings.h index a8c27615fb4e44..0d80cc1bac4b20 100644 --- a/selfdrive/frogpilot/ui/qt/offroad/frogpilot_settings.h +++ b/selfdrive/frogpilot/ui/qt/offroad/frogpilot_settings.h @@ -8,6 +8,8 @@ class FrogPilotSettingsWindow : public QFrame { public: explicit FrogPilotSettingsWindow(SettingsWindow *parent); + QJsonObject frogpilot_toggle_levels; + bool disableOpenpilotLongitudinal = false; bool forcingAutoTune = false; bool hasAutoTune = true; @@ -16,16 +18,15 @@ class FrogPilotSettingsWindow : public QFrame { bool hasExperimentalOpenpilotLongitudinal = false; bool hasNNFFLog = true; bool hasOpenpilotLongitudinal = true; - bool hasPCMCruise = true; + bool hasPCMCruise = false; bool hasRadar = true; bool hasSNG = false; bool isBolt = false; bool isGM = true; - bool isGMPCMCruise = false; bool isHKGCanFd = true; bool isImpreza = true; bool isPIDCar = false; - bool isSubaru = true; + bool isSubaru = false; bool isToyota = true; bool isVolt = true; bool liveValid = false; @@ -35,7 +36,7 @@ class FrogPilotSettingsWindow : public QFrame { float steerLatAccelStock; float steerRatioStock; - int customizationLevel; + int tuningLevel; signals: void closeMapBoxInstructions(); @@ -47,7 +48,6 @@ class FrogPilotSettingsWindow : public QFrame { void openPanel(); void openParentToggle(); void openSubParentToggle(); - void updateCarToggles(); void updateMetric(); private: @@ -62,6 +62,8 @@ class FrogPilotSettingsWindow : public QFrame { FrogPilotButtonsControl *systemButton; Params params; + Params params_memory{"/dev/shm/params"}; + Params paramsTracking{"/persist/tracking"}; QStackedLayout *mainLayout; diff --git a/selfdrive/frogpilot/ui/qt/offroad/lateral_settings.cc b/selfdrive/frogpilot/ui/qt/offroad/lateral_settings.cc index dcaa426e298993..91c08d7651fbc7 100644 --- a/selfdrive/frogpilot/ui/qt/offroad/lateral_settings.cc +++ b/selfdrive/frogpilot/ui/qt/offroad/lateral_settings.cc @@ -40,23 +40,27 @@ FrogPilotLateralPanel::FrogPilotLateralPanel(FrogPilotSettingsWindow *parent) : QObject::connect(advancedLateralTuneToggle, &FrogPilotParamManageControl::manageButtonClicked, [this]() { std::set modifiedAdvancedLateralTuneKeys = advancedLateralTuneKeys; - bool usingNNFF = hasNNFFLog && params.getBool("LateralTune") && params.getBool("NNFF"); - if (usingNNFF) { + bool forcingAutoTune = params.getBool("ForceAutoTune"); + bool forcingAutoTuneOff = params.getBool("ForceAutoTuneOff"); + if (!hasAutoTune && forcingAutoTune || hasAutoTune && !forcingAutoTuneOff) { + modifiedAdvancedLateralTuneKeys.erase("SteerFriction"); + modifiedAdvancedLateralTuneKeys.erase("SteerKP"); + modifiedAdvancedLateralTuneKeys.erase("SteerLatAccel"); + modifiedAdvancedLateralTuneKeys.erase("SteerRatio"); + } + + if (hasAutoTune) { modifiedAdvancedLateralTuneKeys.erase("ForceAutoTune"); + } else if (isPIDCar) { modifiedAdvancedLateralTuneKeys.erase("ForceAutoTuneOff"); + modifiedAdvancedLateralTuneKeys.erase("SteerFriction"); + modifiedAdvancedLateralTuneKeys.erase("SteerKP"); + modifiedAdvancedLateralTuneKeys.erase("SteerLatAccel"); } else { - if (hasAutoTune) { - modifiedAdvancedLateralTuneKeys.erase("ForceAutoTune"); - } else if (isPIDCar) { - modifiedAdvancedLateralTuneKeys.erase("ForceAutoTuneOff"); - modifiedAdvancedLateralTuneKeys.erase("SteerFriction"); - modifiedAdvancedLateralTuneKeys.erase("SteerKP"); - modifiedAdvancedLateralTuneKeys.erase("SteerLatAccel"); - } else { - modifiedAdvancedLateralTuneKeys.erase("ForceAutoTuneOff"); - } + modifiedAdvancedLateralTuneKeys.erase("ForceAutoTuneOff"); } + bool usingNNFF = hasNNFFLog && params.getBool("LateralTune") && params.getBool("NNFF"); if (!liveValid || usingNNFF) { modifiedAdvancedLateralTuneKeys.erase("SteerFriction"); modifiedAdvancedLateralTuneKeys.erase("SteerLatAccel"); @@ -87,11 +91,6 @@ FrogPilotLateralPanel::FrogPilotLateralPanel(FrogPilotSettingsWindow *parent) : modifiedAOLKeys.erase("AlwaysOnLateralLKAS"); } - if (customizationLevel != 2) { - modifiedAOLKeys.erase("AlwaysOnLateralMain"); - modifiedAOLKeys.erase("HideAOLStatusBar"); - } - showToggles(modifiedAOLKeys); }); lateralToggle = aolToggle; @@ -101,14 +100,7 @@ FrogPilotLateralPanel::FrogPilotLateralPanel(FrogPilotSettingsWindow *parent) : } else if (param == "LaneChangeCustomizations") { FrogPilotParamManageControl *laneChangeToggle = new FrogPilotParamManageControl(param, title, desc, icon); QObject::connect(laneChangeToggle, &FrogPilotParamManageControl::manageButtonClicked, [this]() { - std::set modifiedLaneChangeKeys = laneChangeKeys; - - if (customizationLevel != 2) { - modifiedLaneChangeKeys.erase("LaneDetectionWidth"); - modifiedLaneChangeKeys.erase("MinimumLaneChangeSpeed"); - } - - showToggles(modifiedLaneChangeKeys); + showToggles(laneChangeKeys); }); lateralToggle = laneChangeToggle; } else if (param == "LaneChangeTime") { @@ -130,10 +122,6 @@ FrogPilotLateralPanel::FrogPilotLateralPanel(FrogPilotSettingsWindow *parent) : modifiedLateralTuneKeys.erase("NNFFLite"); } - if (customizationLevel != 2) { - modifiedLateralTuneKeys.erase("TurnDesires"); - } - showToggles(modifiedLateralTuneKeys); }); lateralToggle = lateralTuneToggle; @@ -175,6 +163,36 @@ FrogPilotLateralPanel::FrogPilotLateralPanel(FrogPilotSettingsWindow *parent) : } }); + QObject::connect(static_cast(toggles["ForceAutoTune"]), &ToggleControl::toggleFlipped, [this](bool state) { + std::set modifiedAdvancedLateralTuneKeys = advancedLateralTuneKeys; + + modifiedAdvancedLateralTuneKeys.erase("ForceAutoTuneOff"); + + if (!hasAutoTune && state) { + modifiedAdvancedLateralTuneKeys.erase("SteerFriction"); + modifiedAdvancedLateralTuneKeys.erase("SteerKP"); + modifiedAdvancedLateralTuneKeys.erase("SteerLatAccel"); + modifiedAdvancedLateralTuneKeys.erase("SteerRatio"); + } + + showToggles(modifiedAdvancedLateralTuneKeys); + }); + + QObject::connect(static_cast(toggles["ForceAutoTuneOff"]), &ToggleControl::toggleFlipped, [this](bool state) { + std::set modifiedAdvancedLateralTuneKeys = advancedLateralTuneKeys; + + modifiedAdvancedLateralTuneKeys.erase("ForceAutoTune"); + + if (hasAutoTune && !state) { + modifiedAdvancedLateralTuneKeys.erase("SteerFriction"); + modifiedAdvancedLateralTuneKeys.erase("SteerKP"); + modifiedAdvancedLateralTuneKeys.erase("SteerLatAccel"); + modifiedAdvancedLateralTuneKeys.erase("SteerRatio"); + } + + showToggles(modifiedAdvancedLateralTuneKeys); + }); + QObject::connect(static_cast(toggles["NNFF"]), &ToggleControl::toggleFlipped, [this](bool state) { std::set modifiedLateralTuneKeys = lateralTuneKeys; @@ -234,7 +252,6 @@ FrogPilotLateralPanel::FrogPilotLateralPanel(FrogPilotSettingsWindow *parent) : }); QObject::connect(parent, &FrogPilotSettingsWindow::closeParentToggle, this, &FrogPilotLateralPanel::hideToggles); - QObject::connect(parent, &FrogPilotSettingsWindow::updateCarToggles, this, &FrogPilotLateralPanel::updateCarToggles); QObject::connect(parent, &FrogPilotSettingsWindow::updateMetric, this, &FrogPilotLateralPanel::updateMetric); QObject::connect(uiState(), &UIState::uiUpdate, this, &FrogPilotLateralPanel::updateState); @@ -242,12 +259,7 @@ FrogPilotLateralPanel::FrogPilotLateralPanel(FrogPilotSettingsWindow *parent) : } void FrogPilotLateralPanel::showEvent(QShowEvent *event) { - customizationLevel = parent->customizationLevel; - - toggles["AdvancedLateralTune"]->setVisible(customizationLevel == 2); -} - -void FrogPilotLateralPanel::updateCarToggles() { + frogpilot_toggle_levels = parent->frogpilot_toggle_levels; hasAutoTune = parent->hasAutoTune; hasNNFFLog = parent->hasNNFFLog; isPIDCar = parent->isPIDCar; @@ -257,6 +269,7 @@ void FrogPilotLateralPanel::updateCarToggles() { steerKPStock = parent->steerKPStock; steerLatAccelStock = parent->steerLatAccelStock; steerRatioStock = parent->steerRatioStock; + tuningLevel = parent->tuningLevel; steerFrictionToggle->setTitle(QString(tr("Friction (Default: %1)")).arg(QString::number(steerFrictionStock, 'f', 2))); steerKPToggle->setTitle(QString(tr("Kp Factor (Default: %1)")).arg(QString::number(steerKPStock, 'f', 2))); @@ -315,7 +328,7 @@ void FrogPilotLateralPanel::showToggles(const std::set &keys) { setUpdatesEnabled(false); for (auto &[key, toggle] : toggles) { - toggle->setVisible(keys.find(key) != keys.end()); + toggle->setVisible(keys.find(key) != keys.end() && tuningLevel >= frogpilot_toggle_levels[key].toDouble()); } setUpdatesEnabled(true); @@ -332,11 +345,9 @@ void FrogPilotLateralPanel::hideToggles() { lateralTuneKeys.find(key) != lateralTuneKeys.end() || qolKeys.find(key) != qolKeys.end(); - toggle->setVisible(!subToggles); + toggle->setVisible(!subToggles && tuningLevel >= frogpilot_toggle_levels[key].toDouble()); } - toggles["AdvancedLateralTune"]->setVisible(customizationLevel == 2); - setUpdatesEnabled(true); update(); } diff --git a/selfdrive/frogpilot/ui/qt/offroad/lateral_settings.h b/selfdrive/frogpilot/ui/qt/offroad/lateral_settings.h index 190c969212f765..ea6afc479f6018 100644 --- a/selfdrive/frogpilot/ui/qt/offroad/lateral_settings.h +++ b/selfdrive/frogpilot/ui/qt/offroad/lateral_settings.h @@ -18,7 +18,6 @@ class FrogPilotLateralPanel : public FrogPilotListWidget { void showEvent(QShowEvent *event) override; void showToggles(const std::set &keys); void updateMetric(); - void updateCarToggles(); void updateState(const UIState &s); FrogPilotParamValueButtonControl *steerFrictionToggle; @@ -28,6 +27,8 @@ class FrogPilotLateralPanel : public FrogPilotListWidget { FrogPilotSettingsWindow *parent; + QJsonObject frogpilot_toggle_levels; + Params params; bool hasAutoTune; @@ -43,7 +44,7 @@ class FrogPilotLateralPanel : public FrogPilotListWidget { float steerKPStock; float steerRatioStock; - int customizationLevel; + int tuningLevel; std::map toggles; diff --git a/selfdrive/frogpilot/ui/qt/offroad/longitudinal_settings.cc b/selfdrive/frogpilot/ui/qt/offroad/longitudinal_settings.cc index c4220fdb7d8e23..639a98de1acc8c 100644 --- a/selfdrive/frogpilot/ui/qt/offroad/longitudinal_settings.cc +++ b/selfdrive/frogpilot/ui/qt/offroad/longitudinal_settings.cc @@ -70,8 +70,8 @@ FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow * {"TacoTune", tr("'Taco Bell Run' Turn Speed Hack"), tr("Uses comma's speed hack they used to help handle left and right turns more precisely during their 2022 'Taco Bell' drive by reducing the maximum allowed speed and acceleration while turning."), ""}, {"QOLLongitudinal", tr("Quality of Life Improvements"), tr("Miscellaneous longitudinal focused features to improve your overall openpilot experience."), "../frogpilot/assets/toggle_icons/quality_of_life.png"}, - {"CustomCruise", tr("Cruise Increase Interval"), tr("Controls the interval used when increasing the cruise control speed."), ""}, - {"CustomCruiseLong", tr("Custom Cruise Interval (Long Press)"), tr("Controls the interval used when increasing the cruise control speed while holding down the button for 0.5+ seconds."), ""}, + {"CustomCruise", tr("Cruise Increase"), tr("Controls the interval used when increasing the cruise control speed."), ""}, + {"CustomCruiseLong", tr("Cruise Increase (Long Press)"), tr("Controls the interval used when increasing the cruise control speed while holding down the button for 0.5+ seconds."), ""}, {"ForceStandstill", tr("Force Keep openpilot in the Standstill State"), tr("Keeps openpilot in the 'standstill' state until the gas pedal or 'resume' button is pressed."), ""}, {"ForceStops", tr("Force Stop for 'Detected' Stop Lights/Signs"), tr("Forces a stop whenever openpilot 'detects' a potential red light/stop sign to prevent it from running the red light/stop sign."), ""}, {"IncreasedStoppedDistance", tr("Increase Stopped Distance"), tr("Increases the distance to stop behind vehicles."), ""}, @@ -158,15 +158,7 @@ FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow * } else if (param == "ConditionalExperimental") { FrogPilotParamManageControl *conditionalExperimentalToggle = new FrogPilotParamManageControl(param, title, desc, icon); QObject::connect(conditionalExperimentalToggle, &FrogPilotParamManageControl::manageButtonClicked, [this]() { - std::set modifiedConditionalExperimentalKeys = conditionalExperimentalKeys; - - if (customizationLevel != 2) { - modifiedConditionalExperimentalKeys.erase("CENavigation"); - modifiedConditionalExperimentalKeys.erase("CESignalSpeed"); - modifiedConditionalExperimentalKeys.erase("HideCEMStatusBar"); - } - - showToggles(modifiedConditionalExperimentalKeys); + showToggles(conditionalExperimentalKeys); }); longitudinalToggle = conditionalExperimentalToggle; } else if (param == "CESpeed") { @@ -206,12 +198,6 @@ FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow * modifiedCurveSpeedKeys.erase("MTSCCurvatureCheck"); } - if (customizationLevel != 2) { - modifiedCurveSpeedKeys.erase("CurveSensitivity"); - modifiedCurveSpeedKeys.erase("MTSCCurvatureCheck"); - modifiedCurveSpeedKeys.erase("TurnAggressiveness"); - } - showToggles(modifiedCurveSpeedKeys); }); longitudinalToggle = curveControlToggle; @@ -247,6 +233,14 @@ FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow * curveDetectionBtn->setCheckedButton(1, !vtscEnabled); } }); + QObject::connect(curveDetectionBtn, &FrogPilotButtonsControl::disabledButtonClicked, [=](int id) { + if (id == 0) { + FrogPilotConfirmationDialog::toggleAlert( + tr("The 'Map Based' option is only available when some 'Map Data' has been downloaded!"), + tr("Okay"), this + ); + } + }); longitudinalToggle = curveDetectionBtn; } else if (param == "CurveSensitivity" || param == "TurnAggressiveness") { longitudinalToggle = new FrogPilotParamValueControl(param, title, desc, icon, 1, 200, "%"); @@ -267,21 +261,7 @@ FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow * } else if (param == "LongitudinalTune") { FrogPilotParamManageControl *longitudinalTuneToggle = new FrogPilotParamManageControl(param, title, desc, icon); QObject::connect(longitudinalTuneToggle, &FrogPilotParamManageControl::manageButtonClicked, [this]() { - std::set modifiedLongitudinalTuneKeys = longitudinalTuneKeys; - - if (customizationLevel == 0) { - modifiedLongitudinalTuneKeys.erase("HumanAcceleration"); - modifiedLongitudinalTuneKeys.erase("HumanFollowing"); - modifiedLongitudinalTuneKeys.erase("LeadDetectionThreshold"); - modifiedLongitudinalTuneKeys.erase("MaxDesiredAcceleration"); - } else if (customizationLevel == 1) { - modifiedLongitudinalTuneKeys.erase("HumanAcceleration"); - modifiedLongitudinalTuneKeys.erase("HumanFollowing"); - modifiedLongitudinalTuneKeys.erase("LeadDetectionThreshold"); - modifiedLongitudinalTuneKeys.erase("MaxDesiredAcceleration"); - } - - showToggles(modifiedLongitudinalTuneKeys); + showToggles(longitudinalTuneKeys); }); longitudinalToggle = longitudinalTuneToggle; } else if (param == "AccelerationProfile") { @@ -314,13 +294,6 @@ FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow * modifiedQolKeys.erase("MapGears"); } - if (customizationLevel != 2) { - modifiedQolKeys.erase("ForceStandstill"); - modifiedQolKeys.erase("ForceStops"); - modifiedQolKeys.erase("ReverseCruise"); - modifiedQolKeys.erase("SetSpeedOffset"); - } - showToggles(modifiedQolKeys); }); longitudinalToggle = qolLongitudinalToggle; @@ -340,22 +313,9 @@ FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow * } else if (param == "SpeedLimitController") { FrogPilotParamManageControl *speedLimitControllerToggle = new FrogPilotParamManageControl(param, title, desc, icon); QObject::connect(speedLimitControllerToggle, &FrogPilotParamManageControl::manageButtonClicked, [this]() { - std::set modifiedSpeedLimitControllerKeys = speedLimitControllerKeys; - - if (customizationLevel == 0) { - modifiedSpeedLimitControllerKeys.erase("SLCFallback"); - modifiedSpeedLimitControllerKeys.erase("SLCOverride"); - modifiedSpeedLimitControllerKeys.erase("SLCPriority"); - modifiedSpeedLimitControllerKeys.erase("SLCQOL"); - modifiedSpeedLimitControllerKeys.erase("SpeedLimitSources"); - } else if (customizationLevel != 2) { - modifiedSpeedLimitControllerKeys.erase("SLCPriority"); - modifiedSpeedLimitControllerKeys.erase("SLCQOL"); - } - - showToggles(modifiedSpeedLimitControllerKeys); - slcOpen = true; + + showToggles(speedLimitControllerKeys); }); longitudinalToggle = speedLimitControllerToggle; } else if (param == "SLCConfirmation") { @@ -372,43 +332,35 @@ FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow * longitudinalToggle = overrideSelection; } else if (param == "SLCPriority") { ButtonControl *slcPriorityButton = new ButtonControl(title, tr("SELECT"), desc); - QStringList primaryPriorities = {tr("None"), tr("Dashboard"), tr("Map Data"), tr("Navigation"), tr("Highest"), tr("Lowest")}; - QStringList secondaryTertiaryPriorities = {tr("None"), tr("Dashboard"), tr("Map Data"), tr("Navigation")}; + QStringList primaryPriorities = {tr("Dashboard"), tr("Map Data"), tr("Navigation"), tr("Highest"), tr("Lowest")}; + QStringList otherPriorities = {tr("None"), tr("Dashboard"), tr("Map Data"), tr("Navigation")}; QStringList priorityPrompts = {tr("Select your primary priority"), tr("Select your secondary priority"), tr("Select your tertiary priority")}; QObject::connect(slcPriorityButton, &ButtonControl::clicked, [=]() { QStringList selectedPriorities; for (int i = 1; i <= 3; ++i) { - QStringList currentPriorities = (i == 1) ? primaryPriorities : secondaryTertiaryPriorities; - QStringList prioritiesToDisplay = currentPriorities; - - for (QString selectedPriority : qAsConst(selectedPriorities)) { - prioritiesToDisplay.removeAll(selectedPriority); - } + QStringList availablePriorities = (i == 1) ? primaryPriorities : otherPriorities; + availablePriorities = availablePriorities.toSet().subtract(selectedPriorities.toSet()).toList(); if (!hasDashSpeedLimits) { - prioritiesToDisplay.removeAll(tr("Dashboard")); + availablePriorities.removeAll(tr("Dashboard")); } - - if (prioritiesToDisplay.size() == 1 && prioritiesToDisplay.contains(tr("None"))) { + if (availablePriorities.size() == 1 && availablePriorities.contains(tr("None"))) { break; } - QString priorityKey = QString("SLCPriority%1").arg(i); - QString selection = MultiOptionDialog::getSelection(priorityPrompts[i - 1], prioritiesToDisplay, "", this); - + QString selection = MultiOptionDialog::getSelection(priorityPrompts[i - 1], availablePriorities, "", this); if (selection.isEmpty()) { break; } - params.putNonBlocking(priorityKey.toStdString(), selection.toStdString()); + params.put(QString("SLCPriority%1").arg(i).toStdString(), selection.toStdString()); selectedPriorities.append(selection); if (selection == tr("None")) { for (int j = i + 1; j <= 3; ++j) { - QString priorityKeyNext = QString("SLCPriority%1").arg(j); - params.putNonBlocking(priorityKeyNext.toStdString(), "None"); + params.put(QString("SLCPriority%1").arg(j).toStdString(), tr("None").toStdString()); } break; } @@ -426,10 +378,8 @@ FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow * QStringList initialPriorities; for (int i = 1; i <= 3; ++i) { - QString priorityKey = QString("SLCPriority%1").arg(i); - QString priority = QString::fromStdString(params.get(priorityKey.toStdString())); - - if (!priority.isEmpty() && primaryPriorities.contains(priority) && priority != tr("None")) { + QString priority = QString::fromStdString(params.get(QString("SLCPriority%1").arg(i).toStdString())); + if (!priority.isEmpty() && priority != tr("None") && primaryPriorities.contains(priority)) { initialPriorities.append(priority); } } @@ -590,29 +540,20 @@ FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow * QObject::connect(parent, &FrogPilotSettingsWindow::closeParentToggle, this, &FrogPilotLongitudinalPanel::hideToggles); QObject::connect(parent, &FrogPilotSettingsWindow::closeSubParentToggle, this, &FrogPilotLongitudinalPanel::hideSubToggles); - QObject::connect(parent, &FrogPilotSettingsWindow::updateCarToggles, this, &FrogPilotLongitudinalPanel::updateCarToggles); QObject::connect(parent, &FrogPilotSettingsWindow::updateMetric, this, &FrogPilotLongitudinalPanel::updateMetric); updateMetric(); } void FrogPilotLongitudinalPanel::showEvent(QShowEvent *event) { - customizationLevel = parent->customizationLevel; - - toggles["ConditionalExperimental"]->setVisible(customizationLevel != 0); - toggles["CurveSpeedControl"]->setVisible(customizationLevel != 0); - toggles["CustomPersonalities"]->setVisible(customizationLevel == 2); - toggles["ExperimentalModeActivation"]->setVisible(customizationLevel != 0); - toggles["QOLLongitudinal"]->setVisible(customizationLevel != 0); -} - -void FrogPilotLongitudinalPanel::updateCarToggles() { + frogpilot_toggle_levels = parent->frogpilot_toggle_levels; hasDashSpeedLimits = parent->hasDashSpeedLimits; hasPCMCruise = parent->hasPCMCruise; isGM = parent->isGM; isHKGCanFd = parent->isHKGCanFd; isSubaru = parent->isSubaru; isToyota = parent->isToyota; + tuningLevel = parent->tuningLevel; hideToggles(); } @@ -701,7 +642,7 @@ void FrogPilotLongitudinalPanel::showToggles(const std::set &keys) { setUpdatesEnabled(false); for (auto &[key, toggle] : toggles) { - toggle->setVisible(keys.find(key) != keys.end()); + toggle->setVisible(keys.find(key) != keys.end() && tuningLevel >= frogpilot_toggle_levels[key].toDouble()); } setUpdatesEnabled(true); @@ -729,15 +670,9 @@ void FrogPilotLongitudinalPanel::hideToggles() { standardPersonalityKeys.find(key) != standardPersonalityKeys.end() || trafficPersonalityKeys.find(key) != trafficPersonalityKeys.end(); - toggle->setVisible(!subToggles); + toggle->setVisible(!subToggles && tuningLevel >= frogpilot_toggle_levels[key].toDouble()); } - toggles["ConditionalExperimental"]->setVisible(customizationLevel != 0); - toggles["CurveSpeedControl"]->setVisible(customizationLevel != 0); - toggles["CustomPersonalities"]->setVisible(customizationLevel == 2); - toggles["ExperimentalModeActivation"]->setVisible(customizationLevel != 0); - toggles["QOLLongitudinal"]->setVisible(customizationLevel != 0); - setUpdatesEnabled(true); update(); } @@ -747,16 +682,6 @@ void FrogPilotLongitudinalPanel::hideSubToggles() { customPersonalityOpen = false; showToggles(customDrivingPersonalityKeys); } else if (slcOpen) { - std::set modifiedSpeedLimitControllerKeys = speedLimitControllerKeys; - - if (customizationLevel == 0) { - modifiedSpeedLimitControllerKeys.erase("SLCFallback"); - modifiedSpeedLimitControllerKeys.erase("SLCOverride"); - modifiedSpeedLimitControllerKeys.erase("SLCPriority"); - modifiedSpeedLimitControllerKeys.erase("SLCQOL"); - modifiedSpeedLimitControllerKeys.erase("SpeedLimitSources"); - } - - showToggles(modifiedSpeedLimitControllerKeys); + showToggles(speedLimitControllerKeys); } } diff --git a/selfdrive/frogpilot/ui/qt/offroad/longitudinal_settings.h b/selfdrive/frogpilot/ui/qt/offroad/longitudinal_settings.h index bbb023bfd1f54c..8c88d66a555e0f 100644 --- a/selfdrive/frogpilot/ui/qt/offroad/longitudinal_settings.h +++ b/selfdrive/frogpilot/ui/qt/offroad/longitudinal_settings.h @@ -19,13 +19,14 @@ class FrogPilotLongitudinalPanel : public FrogPilotListWidget { void hideToggles(); void showEvent(QShowEvent *event) override; void showToggles(const std::set &keys); - void updateCarToggles(); void updateMetric(); FrogPilotSettingsWindow *parent; FrogPilotButtonsControl *curveDetectionBtn; + QJsonObject frogpilot_toggle_levels; + Params params; bool customPersonalityOpen; @@ -39,7 +40,7 @@ class FrogPilotLongitudinalPanel : public FrogPilotListWidget { bool isToyota; bool slcOpen; - int customizationLevel; + int tuningLevel; std::map toggles; diff --git a/selfdrive/frogpilot/ui/qt/offroad/model_settings.cc b/selfdrive/frogpilot/ui/qt/offroad/model_settings.cc index cf23ec66d0ac3a..d229c1d209f73d 100644 --- a/selfdrive/frogpilot/ui/qt/offroad/model_settings.cc +++ b/selfdrive/frogpilot/ui/qt/offroad/model_settings.cc @@ -144,8 +144,8 @@ FrogPilotModelPanel::FrogPilotModelPanel(FrogPilotSettingsWindow *parent) : Frog downloadModelBtn = new ButtonControl(title, tr("DOWNLOAD"), desc); QObject::connect(downloadModelBtn, &ButtonControl::clicked, [this]() { if (downloadModelBtn->text() == tr("CANCEL")) { - paramsMemory.remove("ModelToDownload"); - paramsMemory.putBool("CancelModelDownload", true); + params_memory.remove("ModelToDownload"); + params_memory.putBool("CancelModelDownload", true); cancellingDownload = true; } else { QMap labelToModelMap; @@ -163,8 +163,8 @@ FrogPilotModelPanel::FrogPilotModelPanel(FrogPilotSettingsWindow *parent) : Frog QString modelToDownload = MultiOptionDialog::getSelection(tr("Select a driving model to download"), downloadableModels, "", this); if (!modelToDownload.isEmpty()) { modelDownloading = true; - paramsMemory.put("ModelToDownload", labelToModelMap.value(modelToDownload).toStdString()); - paramsMemory.put("ModelDownloadProgress", "0%"); + params_memory.put("ModelToDownload", labelToModelMap.value(modelToDownload).toStdString()); + params_memory.put("ModelDownloadProgress", "0%"); downloadModelBtn->setValue(tr("Downloading %1...").arg(modelToDownload.remove(QRegularExpression("[🗺️👀📡]")).trimmed())); @@ -172,7 +172,7 @@ FrogPilotModelPanel::FrogPilotModelPanel(FrogPilotSettingsWindow *parent) : Frog progressTimer->setInterval(100); QObject::connect(progressTimer, &QTimer::timeout, this, [=]() { - QString progress = QString::fromStdString(paramsMemory.get("ModelDownloadProgress")); + QString progress = QString::fromStdString(params_memory.get("ModelDownloadProgress")); bool downloadComplete = progress.contains(QRegularExpression("downloaded", QRegularExpression::CaseInsensitiveOption)); bool downloadFailed = progress.contains(QRegularExpression("cancelled|exists|failed|offline", QRegularExpression::CaseInsensitiveOption)); @@ -199,8 +199,8 @@ FrogPilotModelPanel::FrogPilotModelPanel(FrogPilotSettingsWindow *parent) : Frog downloadModelBtn->setValue(progress); - paramsMemory.remove("CancelModelDownload"); - paramsMemory.remove("ModelDownloadProgress"); + params_memory.remove("CancelModelDownload"); + params_memory.remove("ModelDownloadProgress"); progressTimer->stop(); progressTimer->deleteLater(); @@ -229,8 +229,8 @@ FrogPilotModelPanel::FrogPilotModelPanel(FrogPilotSettingsWindow *parent) : Frog downloadAllModelsBtn = new ButtonControl(title, tr("DOWNLOAD"), desc); QObject::connect(downloadAllModelsBtn, &ButtonControl::clicked, [this]() { if (downloadAllModelsBtn->text() == tr("CANCEL")) { - paramsMemory.remove("DownloadAllModels"); - paramsMemory.putBool("CancelModelDownload", true); + params_memory.remove("DownloadAllModels"); + params_memory.putBool("CancelModelDownload", true); cancellingDownload = true; } else { startDownloadAllModels(); @@ -340,7 +340,7 @@ void FrogPilotModelPanel::startDownloadAllModels() { allModelsDownloading = true; modelDownloading = true; - paramsMemory.putBool("DownloadAllModels", true); + params_memory.putBool("DownloadAllModels", true); downloadAllModelsBtn->setValue(tr("Downloading models...")); @@ -348,7 +348,7 @@ void FrogPilotModelPanel::startDownloadAllModels() { progressTimer->setInterval(100); QObject::connect(progressTimer, &QTimer::timeout, this, [=]() { - QString progress = QString::fromStdString(paramsMemory.get("ModelDownloadProgress")); + QString progress = QString::fromStdString(params_memory.get("ModelDownloadProgress")); bool downloadComplete = progress.contains(QRegularExpression("All models downloaded!", QRegularExpression::CaseInsensitiveOption)); bool downloadFailed = progress.contains(QRegularExpression("cancelled|exists|failed|offline", QRegularExpression::CaseInsensitiveOption)); @@ -364,8 +364,8 @@ void FrogPilotModelPanel::startDownloadAllModels() { downloadAllModelsBtn->setValue(progress); - paramsMemory.remove("CancelModelDownload"); - paramsMemory.remove("ModelDownloadProgress"); + params_memory.remove("CancelModelDownload"); + params_memory.remove("ModelDownloadProgress"); progressTimer->stop(); progressTimer->deleteLater(); @@ -374,7 +374,7 @@ void FrogPilotModelPanel::startDownloadAllModels() { cancellingDownload = false; modelDownloading = false; - paramsMemory.remove("DownloadAllModels"); + params_memory.remove("DownloadAllModels"); downloadAllModelsBtn->setValue(""); }); diff --git a/selfdrive/frogpilot/ui/qt/offroad/model_settings.h b/selfdrive/frogpilot/ui/qt/offroad/model_settings.h index cc3229e6c7d048..379c192c82acef 100644 --- a/selfdrive/frogpilot/ui/qt/offroad/model_settings.h +++ b/selfdrive/frogpilot/ui/qt/offroad/model_settings.h @@ -33,7 +33,7 @@ class FrogPilotModelPanel : public FrogPilotListWidget { ButtonControl *selectModelBtn; Params params; - Params paramsMemory{"/dev/shm/params"}; + Params params_memory{"/dev/shm/params"}; Params paramsStorage{"/persist/params"}; QDir modelDir{"/data/models/"}; diff --git a/selfdrive/frogpilot/ui/qt/offroad/sounds_settings.cc b/selfdrive/frogpilot/ui/qt/offroad/sounds_settings.cc index 432a133560fa50..c63ce6afe95c86 100644 --- a/selfdrive/frogpilot/ui/qt/offroad/sounds_settings.cc +++ b/selfdrive/frogpilot/ui/qt/offroad/sounds_settings.cc @@ -124,18 +124,13 @@ FrogPilotSoundsPanel::FrogPilotSoundsPanel(FrogPilotSettingsWindow *parent) : Fr } QObject::connect(parent, &FrogPilotSettingsWindow::closeParentToggle, this, &FrogPilotSoundsPanel::hideToggles); - QObject::connect(parent, &FrogPilotSettingsWindow::updateCarToggles, this, &FrogPilotSoundsPanel::updateCarToggles); } void FrogPilotSoundsPanel::showEvent(QShowEvent *event) { - customizationLevel = parent->customizationLevel; - - toggles["AlertVolumeControl"]->setVisible(customizationLevel == 2); -} - -void FrogPilotSoundsPanel::updateCarToggles() { + frogpilot_toggle_levels = parent->frogpilot_toggle_levels; hasBSM = parent->hasBSM; hasOpenpilotLongitudinal = parent->hasOpenpilotLongitudinal; + tuningLevel = parent->tuningLevel; hideToggles(); } @@ -144,7 +139,7 @@ void FrogPilotSoundsPanel::showToggles(const std::set &keys) { setUpdatesEnabled(false); for (auto &[key, toggle] : toggles) { - toggle->setVisible(keys.find(key) != keys.end()); + toggle->setVisible(keys.find(key) != keys.end() && tuningLevel >= frogpilot_toggle_levels[key].toDouble()); } setUpdatesEnabled(true); @@ -157,10 +152,9 @@ void FrogPilotSoundsPanel::hideToggles() { for (auto &[key, toggle] : toggles) { bool subToggles = alertVolumeControlKeys.find(key) != alertVolumeControlKeys.end() || customAlertsKeys.find(key) != customAlertsKeys.end(); - toggle->setVisible(!subToggles); - } - toggles["AlertVolumeControl"]->setVisible(customizationLevel == 2); + toggle->setVisible(!subToggles && tuningLevel >= frogpilot_toggle_levels[key].toDouble()); + } setUpdatesEnabled(true); update(); diff --git a/selfdrive/frogpilot/ui/qt/offroad/sounds_settings.h b/selfdrive/frogpilot/ui/qt/offroad/sounds_settings.h index 1a59f40dd9030e..5f63f83d729996 100644 --- a/selfdrive/frogpilot/ui/qt/offroad/sounds_settings.h +++ b/selfdrive/frogpilot/ui/qt/offroad/sounds_settings.h @@ -17,16 +17,17 @@ class FrogPilotSoundsPanel : public FrogPilotListWidget { void hideToggles(); void showEvent(QShowEvent *event) override; void showToggles(const std::set &keys); - void updateCarToggles(); FrogPilotSettingsWindow *parent; + QJsonObject frogpilot_toggle_levels; + Params params; bool hasBSM; bool hasOpenpilotLongitudinal; - int customizationLevel; + int tuningLevel; std::map toggles; diff --git a/selfdrive/frogpilot/ui/qt/offroad/theme_settings.cc b/selfdrive/frogpilot/ui/qt/offroad/theme_settings.cc index 6fe782ed9a80d1..24dbd9eda10446 100644 --- a/selfdrive/frogpilot/ui/qt/offroad/theme_settings.cc +++ b/selfdrive/frogpilot/ui/qt/offroad/theme_settings.cc @@ -113,11 +113,11 @@ FrogPilotThemesPanel::FrogPilotThemesPanel(FrogPilotSettingsWindow *parent) : Fr } } else if (id == 1) { if (colorDownloading) { - paramsMemory.putBool("CancelThemeDownload", true); + params_memory.putBool("CancelThemeDownload", true); cancellingDownload = true; QTimer::singleShot(2000, [=]() { - paramsMemory.putBool("CancelThemeDownload", false); + params_memory.putBool("CancelThemeDownload", false); cancellingDownload = false; colorDownloading = false; themeDownloading = false; @@ -128,9 +128,9 @@ FrogPilotThemesPanel::FrogPilotThemesPanel(FrogPilotSettingsWindow *parent) : Fr if (!colorSchemeToDownload.isEmpty()) { QString convertedColorScheme = formatColorNameForStorage(colorSchemeToDownload); - paramsMemory.put("ColorToDownload", convertedColorScheme.toStdString()); + params_memory.put("ColorToDownload", convertedColorScheme.toStdString()); downloadStatusLabel->setText("Downloading..."); - paramsMemory.put("ThemeDownloadProgress", "Downloading..."); + params_memory.put("ThemeDownloadProgress", "Downloading..."); colorDownloading = true; themeDownloading = true; @@ -241,11 +241,11 @@ FrogPilotThemesPanel::FrogPilotThemesPanel(FrogPilotSettingsWindow *parent) : Fr } } else if (id == 1) { if (distanceIconDownloading) { - paramsMemory.putBool("CancelThemeDownload", true); + params_memory.putBool("CancelThemeDownload", true); cancellingDownload = true; QTimer::singleShot(2000, [=]() { - paramsMemory.putBool("CancelThemeDownload", false); + params_memory.putBool("CancelThemeDownload", false); cancellingDownload = false; distanceIconDownloading = false; themeDownloading = false; @@ -256,9 +256,9 @@ FrogPilotThemesPanel::FrogPilotThemesPanel(FrogPilotSettingsWindow *parent) : Fr if (!iconPackToDownload.isEmpty()) { QString convertedIconPack = formatIconNameForStorage(iconPackToDownload); - paramsMemory.put("DistanceIconToDownload", convertedIconPack.toStdString()); + params_memory.put("DistanceIconToDownload", convertedIconPack.toStdString()); downloadStatusLabel->setText("Downloading..."); - paramsMemory.put("ThemeDownloadProgress", "Downloading..."); + params_memory.put("ThemeDownloadProgress", "Downloading..."); distanceIconDownloading = true; themeDownloading = true; @@ -370,11 +370,11 @@ FrogPilotThemesPanel::FrogPilotThemesPanel(FrogPilotSettingsWindow *parent) : Fr } } else if (id == 1) { if (iconDownloading) { - paramsMemory.putBool("CancelThemeDownload", true); + params_memory.putBool("CancelThemeDownload", true); cancellingDownload = true; QTimer::singleShot(2000, [=]() { - paramsMemory.putBool("CancelThemeDownload", false); + params_memory.putBool("CancelThemeDownload", false); cancellingDownload = false; iconDownloading = false; themeDownloading = false; @@ -385,9 +385,9 @@ FrogPilotThemesPanel::FrogPilotThemesPanel(FrogPilotSettingsWindow *parent) : Fr if (!iconPackToDownload.isEmpty()) { QString convertedIconPack = formatIconNameForStorage(iconPackToDownload); - paramsMemory.put("IconToDownload", convertedIconPack.toStdString()); + params_memory.put("IconToDownload", convertedIconPack.toStdString()); downloadStatusLabel->setText("Downloading..."); - paramsMemory.put("ThemeDownloadProgress", "Downloading..."); + params_memory.put("ThemeDownloadProgress", "Downloading..."); iconDownloading = true; themeDownloading = true; @@ -465,12 +465,12 @@ FrogPilotThemesPanel::FrogPilotThemesPanel(FrogPilotSettingsWindow *parent) : Fr availableSignals << formatSignalName(dirInfo.fileName()); } } - availableSignals.append("Stock"); + availableSignals.append("None"); std::sort(availableSignals.begin(), availableSignals.end()); if (id == 0) { QStringList customSignalsList = availableSignals; - customSignalsList.removeAll("Stock"); + customSignalsList.removeAll("None"); customSignalsList.removeAll(currentSignal); QString signalPackToDelete = MultiOptionDialog::getSelection(tr("Select a signal pack to delete"), customSignalsList, "", this); @@ -499,11 +499,11 @@ FrogPilotThemesPanel::FrogPilotThemesPanel(FrogPilotSettingsWindow *parent) : Fr } } else if (id == 1) { if (signalDownloading) { - paramsMemory.putBool("CancelThemeDownload", true); + params_memory.putBool("CancelThemeDownload", true); cancellingDownload = true; QTimer::singleShot(2000, [=]() { - paramsMemory.putBool("CancelThemeDownload", false); + params_memory.putBool("CancelThemeDownload", false); cancellingDownload = false; signalDownloading = false; themeDownloading = false; @@ -514,9 +514,9 @@ FrogPilotThemesPanel::FrogPilotThemesPanel(FrogPilotSettingsWindow *parent) : Fr if (!signalPackToDownload.isEmpty()) { QString convertedSignalPack = formatSignalNameForStorage(signalPackToDownload); - paramsMemory.put("SignalToDownload", convertedSignalPack.toStdString()); + params_memory.put("SignalToDownload", convertedSignalPack.toStdString()); downloadStatusLabel->setText("Downloading..."); - paramsMemory.put("ThemeDownloadProgress", "Downloading..."); + params_memory.put("ThemeDownloadProgress", "Downloading..."); signalDownloading = true; themeDownloading = true; @@ -628,11 +628,11 @@ FrogPilotThemesPanel::FrogPilotThemesPanel(FrogPilotSettingsWindow *parent) : Fr } } else if (id == 1) { if (soundDownloading) { - paramsMemory.putBool("CancelThemeDownload", true); + params_memory.putBool("CancelThemeDownload", true); cancellingDownload = true; QTimer::singleShot(2000, [=]() { - paramsMemory.putBool("CancelThemeDownload", false); + params_memory.putBool("CancelThemeDownload", false); cancellingDownload = false; soundDownloading = false; themeDownloading = false; @@ -643,9 +643,9 @@ FrogPilotThemesPanel::FrogPilotThemesPanel(FrogPilotSettingsWindow *parent) : Fr if (!soundSchemeToDownload.isEmpty()) { QString convertedSoundScheme = formatSoundNameForStorage(soundSchemeToDownload); - paramsMemory.put("SoundToDownload", convertedSoundScheme.toStdString()); + params_memory.put("SoundToDownload", convertedSoundScheme.toStdString()); downloadStatusLabel->setText("Downloading..."); - paramsMemory.put("ThemeDownloadProgress", "Downloading..."); + params_memory.put("ThemeDownloadProgress", "Downloading..."); soundDownloading = true; themeDownloading = true; @@ -757,11 +757,11 @@ FrogPilotThemesPanel::FrogPilotThemesPanel(FrogPilotSettingsWindow *parent) : Fr } } else if (id == 1) { if (wheelDownloading) { - paramsMemory.putBool("CancelThemeDownload", true); + params_memory.putBool("CancelThemeDownload", true); cancellingDownload = true; QTimer::singleShot(2000, [=]() { - paramsMemory.putBool("CancelThemeDownload", false); + params_memory.putBool("CancelThemeDownload", false); cancellingDownload = false; wheelDownloading = false; themeDownloading = false; @@ -772,9 +772,9 @@ FrogPilotThemesPanel::FrogPilotThemesPanel(FrogPilotSettingsWindow *parent) : Fr if (!wheelToDownload.isEmpty()) { QString convertedImage = formatWheelNameForStorage(wheelToDownload); - paramsMemory.put("WheelToDownload", convertedImage.toStdString()); + params_memory.put("WheelToDownload", convertedImage.toStdString()); downloadStatusLabel->setText("Downloading..."); - paramsMemory.put("ThemeDownloadProgress", "Downloading..."); + params_memory.put("ThemeDownloadProgress", "Downloading..."); themeDownloading = true; wheelDownloading = true; @@ -831,10 +831,10 @@ FrogPilotThemesPanel::FrogPilotThemesPanel(FrogPilotSettingsWindow *parent) : Fr } else if (id == 2) { QString newTop = InputDialog::getText(tr("Enter the text for the top half"), this, tr("Characters: 0/%1").arg(maxLengthTop), false, -1, currentTop, maxLengthTop).trimmed(); if (newTop.length() > 0) { - params.putNonBlocking("StartupMessageTop", newTop.toStdString()); + params.put("StartupMessageTop", newTop.toStdString()); QString newBottom = InputDialog::getText(tr("Enter the text for the bottom half"), this, tr("Characters: 0/%1").arg(maxLengthBottom), false, -1, currentBottom, maxLengthBottom).trimmed(); if (newBottom.length() > 0) { - params.putNonBlocking("StartupMessageBottom", newBottom.toStdString()); + params.put("StartupMessageBottom", newBottom.toStdString()); } } } else if (id == 3) { @@ -876,10 +876,10 @@ void FrogPilotThemesPanel::showEvent(QShowEvent *event) { soundsDownloaded = params.get("DownloadableSounds").empty(); wheelsDownloaded = params.get("DownloadableWheels").empty(); - customizationLevel = parent->customizationLevel; + frogpilot_toggle_levels = parent->frogpilot_toggle_levels; + tuningLevel = parent->tuningLevel; - toggles["RandomEvents"]->setVisible(customizationLevel != 0); - toggles["StartupAlert"]->setVisible(customizationLevel == 2); + hideToggles(); } void FrogPilotThemesPanel::updateState(const UIState &s) { @@ -891,7 +891,7 @@ void FrogPilotThemesPanel::updateState(const UIState &s) { if (personalizeOpenpilotOpen) { if (themeDownloading) { - QString progress = QString::fromStdString(paramsMemory.get("ThemeDownloadProgress")); + QString progress = QString::fromStdString(params_memory.get("ThemeDownloadProgress")); bool downloadFailed = progress.contains(QRegularExpression("cancelled|exists|Failed|offline", QRegularExpression::CaseInsensitiveOption)); if (progress != "Downloading...") { @@ -904,7 +904,7 @@ void FrogPilotThemesPanel::updateState(const UIState &s) { downloadStatusLabel->setText("Idle"); } }); - paramsMemory.remove("ThemeDownloadProgress"); + params_memory.remove("ThemeDownloadProgress"); colorDownloading = false; distanceIconDownloading = false; iconDownloading = false; @@ -958,7 +958,7 @@ void FrogPilotThemesPanel::showToggles(const std::set &keys) { setUpdatesEnabled(false); for (auto &[key, toggle] : toggles) { - toggle->setVisible(keys.find(key) != keys.end()); + toggle->setVisible(keys.find(key) != keys.end() && tuningLevel >= frogpilot_toggle_levels[key].toDouble()); } setUpdatesEnabled(true); @@ -973,12 +973,9 @@ void FrogPilotThemesPanel::hideToggles() { for (auto &[key, toggle] : toggles) { bool subToggles = customThemeKeys.find(key) != customThemeKeys.end(); - toggle->setVisible(!subToggles); + toggle->setVisible(!subToggles && tuningLevel >= frogpilot_toggle_levels[key].toDouble()); } - toggles["RandomEvents"]->setVisible(customizationLevel != 0); - toggles["StartupAlert"]->setVisible(customizationLevel == 2); - setUpdatesEnabled(true); update(); } diff --git a/selfdrive/frogpilot/ui/qt/offroad/theme_settings.h b/selfdrive/frogpilot/ui/qt/offroad/theme_settings.h index 9ddfe7b6aa3914..b16e1c5f702a8d 100644 --- a/selfdrive/frogpilot/ui/qt/offroad/theme_settings.h +++ b/selfdrive/frogpilot/ui/qt/offroad/theme_settings.h @@ -34,8 +34,10 @@ class FrogPilotThemesPanel : public FrogPilotListWidget { LabelControl *downloadStatusLabel; + QJsonObject frogpilot_toggle_levels; + Params params; - Params paramsMemory{"/dev/shm/params"}; + Params params_memory{"/dev/shm/params"}; bool cancellingDownload; bool colorDownloading; @@ -54,7 +56,7 @@ class FrogPilotThemesPanel : public FrogPilotListWidget { bool wheelDownloading; bool wheelsDownloaded; - int customizationLevel; + int tuningLevel; std::map toggles; }; diff --git a/selfdrive/frogpilot/ui/qt/offroad/utilities.cc b/selfdrive/frogpilot/ui/qt/offroad/utilities.cc index eb6a5c10868922..e9f5aa5ea8a63c 100644 --- a/selfdrive/frogpilot/ui/qt/offroad/utilities.cc +++ b/selfdrive/frogpilot/ui/qt/offroad/utilities.cc @@ -29,43 +29,36 @@ UtilitiesPanel::UtilitiesPanel(FrogPilotSettingsWindow *parent) : FrogPilotListW forceStartedBtn = new FrogPilotButtonsControl(tr("Force Started State"), tr("Forces openpilot either offroad or onroad."), {tr("OFFROAD"), tr("ONROAD"), tr("OFF")}, true); QObject::connect(forceStartedBtn, &FrogPilotButtonsControl::buttonClicked, [=](int id) { if (id == 0) { - paramsMemory.putBool("ForceOffroad", true); - paramsMemory.putBool("ForceOnroad", false); + params_memory.putBool("ForceOffroad", true); + params_memory.putBool("ForceOnroad", false); } else if (id == 1) { - paramsMemory.putBool("ForceOffroad", false); - paramsMemory.putBool("ForceOnroad", true); + params_memory.putBool("ForceOffroad", false); + params_memory.putBool("ForceOnroad", true); } else if (id == 2) { - paramsMemory.putBool("ForceOffroad", false); - paramsMemory.putBool("ForceOnroad", false); + params_memory.putBool("ForceOffroad", false); + params_memory.putBool("ForceOnroad", false); } forceStartedBtn->setCheckedButton(id); }); forceStartedBtn->setCheckedButton(2); addItem(forceStartedBtn); - ButtonControl *resetTogglesBtn = new ButtonControl(tr("Reset Toggles to Default"), tr("RESET"), tr("Resets your toggle settings back to their default settings.")); - QObject::connect(resetTogglesBtn, &ButtonControl::clicked, [=]() mutable { - QDir toggleDir("/data/params/d"); - + ButtonControl *resetTogglesBtn = new ButtonControl(tr("Reset Toggles to Default"), tr("RESET"), tr("Reset your toggle settings back to their default settings.")); + QObject::connect(resetTogglesBtn, &ButtonControl::clicked, [=]() { if (ConfirmationDialog::confirm(tr("Are you sure you want to completely reset all of your toggle settings?"), tr("Reset"), this)) { - std::thread([=]() mutable { + std::thread([=] { resetTogglesBtn->setEnabled(false); resetTogglesBtn->setValue(tr("Resetting...")); - if (toggleDir.removeRecursively()) { - toggleDir.mkpath("."); - params.putBool("DoToggleReset", true); + params.putBool("DoToggleReset", true); - resetTogglesBtn->setValue(tr("Reset!")); + resetTogglesBtn->setValue(tr("Reset!")); - util::sleep_for(2000); - resetTogglesBtn->setValue(tr("Rebooting...")); - util::sleep_for(2000); + util::sleep_for(2000); + resetTogglesBtn->setValue(tr("Rebooting...")); + util::sleep_for(2000); - Hardware::reboot(); - } else { - resetTogglesBtn->setValue(tr("Failed...")); - } + Hardware::reboot(); }).detach(); } }); diff --git a/selfdrive/frogpilot/ui/qt/offroad/utilities.h b/selfdrive/frogpilot/ui/qt/offroad/utilities.h index 93f5481c9b1e85..4be541371c7685 100644 --- a/selfdrive/frogpilot/ui/qt/offroad/utilities.h +++ b/selfdrive/frogpilot/ui/qt/offroad/utilities.h @@ -12,5 +12,5 @@ class UtilitiesPanel : public FrogPilotListWidget { FrogPilotButtonsControl *forceStartedBtn; Params params; - Params paramsMemory{"/dev/shm/params"}; + Params params_memory{"/dev/shm/params"}; }; diff --git a/selfdrive/frogpilot/ui/qt/offroad/vehicle_settings.cc b/selfdrive/frogpilot/ui/qt/offroad/vehicle_settings.cc index 7f60fac6bccda6..7d2ae94a012bb9 100644 --- a/selfdrive/frogpilot/ui/qt/offroad/vehicle_settings.cc +++ b/selfdrive/frogpilot/ui/qt/offroad/vehicle_settings.cc @@ -211,25 +211,19 @@ FrogPilotVehiclesPanel::FrogPilotVehiclesPanel(FrogPilotSettingsWindow *parent) setModels(); } - QObject::connect(parent, &FrogPilotSettingsWindow::updateCarToggles, this, &FrogPilotVehiclesPanel::updateCarToggles); QObject::connect(uiState(), &UIState::uiUpdate, this, &FrogPilotVehiclesPanel::updateState); } void FrogPilotVehiclesPanel::showEvent(QShowEvent *event) { - customizationLevel = parent->customizationLevel; - - updateToggles(); -} - -void FrogPilotVehiclesPanel::updateCarToggles() { disableOpenpilotLongitudinal = parent->disableOpenpilotLongitudinal; + frogpilot_toggle_levels = parent->frogpilot_toggle_levels; hasExperimentalOpenpilotLongitudinal = parent->hasExperimentalOpenpilotLongitudinal; hasOpenpilotLongitudinal = parent->hasOpenpilotLongitudinal; hasSNG = parent->hasSNG; isBolt = parent->isBolt; - isGMPCMCruise = parent->isGMPCMCruise; isImpreza = parent->isImpreza; isVolt = parent->isVolt; + tuningLevel = parent->tuningLevel; updateToggles(); } @@ -250,8 +244,9 @@ void FrogPilotVehiclesPanel::setModels() { void FrogPilotVehiclesPanel::updateToggles() { setUpdatesEnabled(false); - disableOpenpilotLong->setVisible((hasOpenpilotLongitudinal && !hasExperimentalOpenpilotLongitudinal && !isGMPCMCruise && customizationLevel == 2) || disableOpenpilotLongitudinal); - forceFingerprint ->setVisible(customizationLevel == 2 || isBolt); + disableOpenpilotLong->setVisible(hasOpenpilotLongitudinal && !hasExperimentalOpenpilotLongitudinal && tuningLevel >= frogpilot_toggle_levels["DisableOpenpilotLongitudinal"].toDouble()); + disableOpenpilotLong->setVisible(disableOpenpilotLong->isVisible() || disableOpenpilotLongitudinal); + forceFingerprint ->setVisible(tuningLevel >= frogpilot_toggle_levels["ForceFingerprint"].toDouble() || isBolt); selectMakeButton->setValue(carMake); selectModelButton->setValue(carModel); @@ -297,16 +292,9 @@ void FrogPilotVehiclesPanel::updateToggles() { } } - toggle->setVisible(setVisible); + toggle->setVisible(setVisible && tuningLevel >= frogpilot_toggle_levels[key].toDouble()); } - toggles["ClusterOffset"]->setVisible(toggles["ClusterOffset"]->isVisible() && customizationLevel == 2); - toggles["CrosstrekTorque"]->setVisible(toggles["CrosstrekTorque"]->isVisible() && customizationLevel == 2); - toggles["ExperimentalGMTune"]->setVisible(toggles["ExperimentalGMTune"]->isVisible() && customizationLevel == 2); - toggles["FrogsGoMoosTweak"]->setVisible(toggles["FrogsGoMoosTweak"]->isVisible() && customizationLevel == 2); - toggles["LongPitch"]->setVisible(toggles["LongPitch"]->isVisible() && customizationLevel == 2); - toggles["NewLongAPI"]->setVisible(toggles["NewLongAPI"]->isVisible() && customizationLevel == 2); - setUpdatesEnabled(true); update(); } diff --git a/selfdrive/frogpilot/ui/qt/offroad/vehicle_settings.h b/selfdrive/frogpilot/ui/qt/offroad/vehicle_settings.h index faa15611645d25..528ed35043b72c 100644 --- a/selfdrive/frogpilot/ui/qt/offroad/vehicle_settings.h +++ b/selfdrive/frogpilot/ui/qt/offroad/vehicle_settings.h @@ -13,7 +13,6 @@ class FrogPilotVehiclesPanel : public FrogPilotListWidget { private: void setModels(); void showEvent(QShowEvent *event) override; - void updateCarToggles(); void updateState(const UIState &s); void updateToggles(); @@ -22,6 +21,8 @@ class FrogPilotVehiclesPanel : public FrogPilotListWidget { FrogPilotSettingsWindow *parent; + QJsonObject frogpilot_toggle_levels; + QMap carModels; QString carMake; @@ -40,12 +41,11 @@ class FrogPilotVehiclesPanel : public FrogPilotListWidget { bool hasOpenpilotLongitudinal; bool hasSNG; bool isBolt; - bool isGMPCMCruise; bool isImpreza; bool isVolt; bool started; - int customizationLevel; + int tuningLevel; std::map toggles; diff --git a/selfdrive/frogpilot/ui/qt/offroad/visual_settings.cc b/selfdrive/frogpilot/ui/qt/offroad/visual_settings.cc index 43aa8ab0c63dfb..71297ac81ba01b 100644 --- a/selfdrive/frogpilot/ui/qt/offroad/visual_settings.cc +++ b/selfdrive/frogpilot/ui/qt/offroad/visual_settings.cc @@ -64,16 +64,6 @@ FrogPilotVisualsPanel::FrogPilotVisualsPanel(FrogPilotSettingsWindow *parent) : modifiedAccessibilityKeys.erase("OnroadDistanceButton"); } - if (customizationLevel == 0) { - modifiedAccessibilityKeys.erase("CameraView"); - modifiedAccessibilityKeys.erase("DriverCamera"); - modifiedAccessibilityKeys.erase("StandbyMode"); - modifiedAccessibilityKeys.erase("StoppedTimer"); - } else if (customizationLevel != 2) { - modifiedAccessibilityKeys.erase("CameraView"); - modifiedAccessibilityKeys.erase("StandbyMode"); - } - showToggles(modifiedAccessibilityKeys); }); visualToggle = qolToggle; @@ -185,13 +175,6 @@ FrogPilotVisualsPanel::FrogPilotVisualsPanel(FrogPilotSettingsWindow *parent) : modifiedNavigationUIKeys.erase("ShowSLCOffset"); } - if (customizationLevel != 2) { - modifiedNavigationUIKeys.erase("MapStyle"); - modifiedNavigationUIKeys.erase("RoadNameUI"); - modifiedNavigationUIKeys.erase("ShowSLCOffset"); - modifiedNavigationUIKeys.erase("UseVienna"); - } - showToggles(modifiedNavigationUIKeys); }); visualToggle = customUIToggle; @@ -243,10 +226,6 @@ FrogPilotVisualsPanel::FrogPilotVisualsPanel(FrogPilotSettingsWindow *parent) : modifiedCustomOnroadUIKeys.erase("PedalsOnUI"); } - if (customizationLevel != 2) { - modifiedCustomOnroadUIKeys.erase("AdjacentPath"); - } - showToggles(modifiedCustomOnroadUIKeys); }); visualToggle = customUIToggle; @@ -282,27 +261,17 @@ FrogPilotVisualsPanel::FrogPilotVisualsPanel(FrogPilotSettingsWindow *parent) : } QObject::connect(parent, &FrogPilotSettingsWindow::closeParentToggle, this, &FrogPilotVisualsPanel::hideToggles); - QObject::connect(parent, &FrogPilotSettingsWindow::updateCarToggles, this, &FrogPilotVisualsPanel::updateCarToggles); QObject::connect(parent, &FrogPilotSettingsWindow::updateMetric, this, &FrogPilotVisualsPanel::updateMetric); } void FrogPilotVisualsPanel::showEvent(QShowEvent *event) { - customizationLevel = parent->customizationLevel; - - toggles["AdvancedCustomUI"]->setVisible(customizationLevel == 2); - toggles["CustomUI"]->setVisible(customizationLevel != 0); - toggles["DeveloperUI"]->setVisible(customizationLevel == 2); - toggles["ModelUI"]->setVisible(customizationLevel == 2); - toggles["NavigationUI"]->setVisible(customizationLevel != 0); - toggles["QOLVisuals"]->setVisible(customizationLevel != 0 || !disableOpenpilotLongitudinal && hasOpenpilotLongitudinal); -} - -void FrogPilotVisualsPanel::updateCarToggles() { disableOpenpilotLongitudinal = parent->disableOpenpilotLongitudinal; + frogpilot_toggle_levels = parent->frogpilot_toggle_levels; hasAutoTune = parent->hasAutoTune; hasBSM = parent->hasBSM; hasOpenpilotLongitudinal = parent->hasOpenpilotLongitudinal; hasRadar = parent->hasRadar; + tuningLevel = parent->tuningLevel; hideToggles(); } @@ -348,7 +317,7 @@ void FrogPilotVisualsPanel::showToggles(const std::set &keys) { setUpdatesEnabled(false); for (auto &[key, toggle] : toggles) { - toggle->setVisible(keys.find(key) != keys.end()); + toggle->setVisible(keys.find(key) != keys.end() && tuningLevel >= frogpilot_toggle_levels[key].toDouble()); } setUpdatesEnabled(true); @@ -366,15 +335,10 @@ void FrogPilotVisualsPanel::hideToggles() { modelUIKeys.find(key) != modelUIKeys.end() || navigationUIKeys.find(key) != navigationUIKeys.end(); - toggle->setVisible(!subToggles); + toggle->setVisible(!subToggles && tuningLevel >= frogpilot_toggle_levels[key].toDouble()); } - toggles["AdvancedCustomUI"]->setVisible(customizationLevel == 2); - toggles["CustomUI"]->setVisible(customizationLevel != 0); - toggles["DeveloperUI"]->setVisible(customizationLevel == 2); - toggles["ModelUI"]->setVisible(customizationLevel == 2); - toggles["NavigationUI"]->setVisible(customizationLevel != 0); - toggles["QOLVisuals"]->setVisible(customizationLevel != 0 || !disableOpenpilotLongitudinal && hasOpenpilotLongitudinal); + toggles["QOLVisuals"]->setVisible(toggles["QOLVisuals"]->isVisible() || !disableOpenpilotLongitudinal && hasOpenpilotLongitudinal); setUpdatesEnabled(true); update(); diff --git a/selfdrive/frogpilot/ui/qt/offroad/visual_settings.h b/selfdrive/frogpilot/ui/qt/offroad/visual_settings.h index 92eed7d6e9bb62..3e77d8d26e5067 100644 --- a/selfdrive/frogpilot/ui/qt/offroad/visual_settings.h +++ b/selfdrive/frogpilot/ui/qt/offroad/visual_settings.h @@ -17,7 +17,6 @@ class FrogPilotVisualsPanel : public FrogPilotListWidget { void hideToggles(); void showEvent(QShowEvent *event) override; void showToggles(const std::set &keys); - void updateCarToggles(); void updateMetric(); FrogPilotButtonToggleControl *borderMetricsBtn; @@ -28,6 +27,8 @@ class FrogPilotVisualsPanel : public FrogPilotListWidget { Params params; + QJsonObject frogpilot_toggle_levels; + bool disableOpenpilotLongitudinal; bool hasAutoTune; bool hasBSM; @@ -35,7 +36,7 @@ class FrogPilotVisualsPanel : public FrogPilotListWidget { bool hasRadar; bool isMetric = params.getBool("IsMetric"); - int customizationLevel; + int tuningLevel; std::map toggles; diff --git a/selfdrive/frogpilot/ui/qt/widgets/frogpilot_controls.cc b/selfdrive/frogpilot/ui/qt/widgets/frogpilot_controls.cc index e44bce01e52dd0..bc82cbda65c918 100644 --- a/selfdrive/frogpilot/ui/qt/widgets/frogpilot_controls.cc +++ b/selfdrive/frogpilot/ui/qt/widgets/frogpilot_controls.cc @@ -5,8 +5,8 @@ #include "selfdrive/ui/ui.h" void updateFrogPilotToggles() { - static Params paramsMemory{"/dev/shm/params"}; - paramsMemory.putBool("FrogPilotTogglesUpdated", true); + static Params params_memory{"/dev/shm/params"}; + params_memory.putBool("FrogPilotTogglesUpdated", true); } QColor loadThemeColors(const QString &colorKey, bool clearCache) { diff --git a/selfdrive/frogpilot/ui/qt/widgets/frogpilot_controls.h b/selfdrive/frogpilot/ui/qt/widgets/frogpilot_controls.h index b4c78b959b91fb..27c02af39599f9 100644 --- a/selfdrive/frogpilot/ui/qt/widgets/frogpilot_controls.h +++ b/selfdrive/frogpilot/ui/qt/widgets/frogpilot_controls.h @@ -112,6 +112,7 @@ class FrogPilotButtonsControl : public AbstractControl { button->setMinimumWidth(minimumButtonWidth); hlayout->addWidget(button); buttonGroup->addButton(button, i); + button->installEventFilter(this); } QObject::connect(buttonGroup, QOverload::of(&QButtonGroup::buttonClicked), [=](int id) { @@ -151,6 +152,18 @@ class FrogPilotButtonsControl : public AbstractControl { signals: void buttonClicked(int id); + void disabledButtonClicked(int id); + +protected: + bool eventFilter(QObject *obj, QEvent *event) override { + if (event->type() == QEvent::MouseButtonPress) { + QPushButton *button = qobject_cast(obj); + if (button && !button->isEnabled()) { + emit disabledButtonClicked(buttonGroup->id(button)); + } + } + return AbstractControl::eventFilter(obj, event); + } private: QButtonGroup *buttonGroup; @@ -203,12 +216,6 @@ class FrogPilotButtonToggleControl : public ParamControl { } } - void setEnabledButtons(int id, bool enable) { - if (QAbstractButton *button = buttonGroup->button(id)) { - button->setEnabled(enable); - } - } - void setVisibleButton(int id, bool visible) { if (QAbstractButton *button = buttonGroup->button(id)) { button->setVisible(visible); @@ -343,7 +350,7 @@ private slots: void onButtonReleased() { if (instantUpdate) { - params.putFloatNonBlocking(key, value); + params.putFloat(key, value); } float lastValue = value; diff --git a/selfdrive/frogpilot/ui/qt/widgets/model_reviewer.cc b/selfdrive/frogpilot/ui/qt/widgets/model_reviewer.cc index 5bc2d310c55300..cc34f895e822e2 100644 --- a/selfdrive/frogpilot/ui/qt/widgets/model_reviewer.cc +++ b/selfdrive/frogpilot/ui/qt/widgets/model_reviewer.cc @@ -110,7 +110,7 @@ QPushButton *ModelReview::createButton(const QString &text, const QString &type, } void ModelReview::showEvent(QShowEvent *event) { - currentModel = QString::fromStdString(paramsMemory.get("CurrentModelName")); + currentModel = QString::fromStdString(params_memory.get("CurrentModelName")); currentModelFiltered = processModelName(currentModel); mainLayout->setCurrentIndex(modelRated ? 1 : 0); diff --git a/selfdrive/frogpilot/ui/qt/widgets/model_reviewer.h b/selfdrive/frogpilot/ui/qt/widgets/model_reviewer.h index 4f5af5c0164dc2..f3593d2c00da94 100644 --- a/selfdrive/frogpilot/ui/qt/widgets/model_reviewer.h +++ b/selfdrive/frogpilot/ui/qt/widgets/model_reviewer.h @@ -43,7 +43,7 @@ private slots: QPushButton *blacklistButton; Params params; - Params paramsMemory{"/dev/shm/params"}; + Params params_memory{"/dev/shm/params"}; QString currentModel; QString currentModelFiltered; diff --git a/selfdrive/ui/qt/home.cc b/selfdrive/ui/qt/home.cc index 3253c560229f94..f7cf65323234ee 100644 --- a/selfdrive/ui/qt/home.cc +++ b/selfdrive/ui/qt/home.cc @@ -254,7 +254,7 @@ void OffroadHome::hideEvent(QHideEvent *event) { void OffroadHome::refresh() { QString model = QString::fromStdString(params.get("ModelName")).remove(QRegularExpression("[🗺️👀📡]")).remove("(Default)").trimmed(); - if (params.getBool("CustomizationLevelConfirmed") && params.getInt("CustomizationLevel") != 2) { + if (params.getBool("TuningLevelConfirmed") && params.getInt("TuningLevel") != 2) { model = QString::fromStdString(params.get("DefaultModelName")).trimmed(); } diff --git a/selfdrive/ui/qt/offroad/settings.cc b/selfdrive/ui/qt/offroad/settings.cc index 1801b4eeeda9e7..49a8d60c0d0a16 100644 --- a/selfdrive/ui/qt/offroad/settings.cc +++ b/selfdrive/ui/qt/offroad/settings.cc @@ -233,6 +233,8 @@ DevicePanel::DevicePanel(SettingsWindow *parent) : ListWidget(parent) { if (ConfirmationDialog::confirm(tr("Are you sure you want to reset calibration?"), tr("Reset"), this)) { params.remove("CalibrationParams"); params.remove("LiveTorqueParameters"); + paramsStorage.remove("CalibrationParams"); + paramsStorage.remove("LiveTorqueParameters"); } }); addItem(resetCalibBtn); @@ -488,38 +490,38 @@ SettingsWindow::SettingsWindow(QWidget *parent) : QFrame(parent) { QObject::connect(btn, &QPushButton::clicked, [=, w = panel_frame]() { if (w->widget() == frogpilotSettingsWindow) { - bool customizationLevelConfirmed = params.getBool("CustomizationLevelConfirmed"); + bool tuningLevelConfirmed = params.getBool("TuningLevelConfirmed"); - if (!customizationLevelConfirmed) { + if (!tuningLevelConfirmed) { int frogpilotHours = paramsTracking.getInt("FrogPilotMinutes") / 60; int openpilotHours = params.getInt("openpilotMinutes") / 60; if (frogpilotHours < 1 && openpilotHours < 100) { - if (FrogPilotConfirmationDialog::toggleAlert(tr("Welcome to FrogPilot! Since you're new to FrogPilot, the 'Basic' toggle preset has been applied, but you can change this at any time via the 'Customization Level' button!"), tr("Sounds good!"), this, true)) { - params.putBool("CustomizationLevelConfirmed", true); - params.putInt("CustomizationLevel", 0); + if (FrogPilotConfirmationDialog::toggleAlert(tr("Welcome to FrogPilot! Since you're new to FrogPilot, the 'Minimal' toggle preset has been applied, but you can change this at any time via the 'Tuning Level' button!"), tr("Sounds good!"), this, true)) { + params.putBool("TuningLevelConfirmed", true); + params.putInt("TuningLevel", 0); } } else if (frogpilotHours < 50 && openpilotHours < 100) { - if (FrogPilotConfirmationDialog::toggleAlert(tr("Since you're fairly new to FrogPilot, the 'Basic' toggle preset has been applied, but you can change this at any time via the 'Customization Level' button!"), tr("Sounds good!"), this, true)) { - params.putBool("CustomizationLevelConfirmed", true); - params.putInt("CustomizationLevel", 0); + if (FrogPilotConfirmationDialog::toggleAlert(tr("Since you're fairly new to FrogPilot, the 'Minimal' toggle preset has been applied, but you can change this at any time via the 'Tuning Level' button!"), tr("Sounds good!"), this, true)) { + params.putBool("TuningLevelConfirmed", true); + params.putInt("TuningLevel", 0); } } else if (frogpilotHours < 100) { - if (openpilotHours >= 100 && frogpilotHours < 100) { - if (FrogPilotConfirmationDialog::toggleAlert(tr("Since you're experienced with openpilot, the 'Standard' toggle preset has been applied, but you can change this at any time via the 'Customization Level' button!"), tr("Sounds good!"), this, true)) { - params.putBool("CustomizationLevelConfirmed", true); - params.putInt("CustomizationLevel", 1); + if (openpilotHours >= 100) { + if (FrogPilotConfirmationDialog::toggleAlert(tr("Since you're experienced with openpilot, the 'Standard' toggle preset has been applied, but you can change this at any time via the 'Tuning Level' button!"), tr("Sounds good!"), this, true)) { + params.putBool("TuningLevelConfirmed", true); + params.putInt("TuningLevel", 1); } } else { - if (FrogPilotConfirmationDialog::toggleAlert(tr("Since you're experienced with FrogPilot, the 'Standard' toggle preset has been applied, but you can change this at any time via the 'Customization Level' button!"), tr("Sounds good!"), this, true)) { - params.putBool("CustomizationLevelConfirmed", true); - params.putInt("CustomizationLevel", 1); + if (FrogPilotConfirmationDialog::toggleAlert(tr("Since you're experienced with FrogPilot, the 'Standard' toggle preset has been applied, but you can change this at any time via the 'Tuning Level' button!"), tr("Sounds good!"), this, true)) { + params.putBool("TuningLevelConfirmed", true); + params.putInt("TuningLevel", 1); } } } else if (frogpilotHours >= 100) { - if (FrogPilotConfirmationDialog::toggleAlert(tr("Since you're very experienced with FrogPilot, the 'Advanced' toggle preset has been applied, but you can change this at any time via the 'Customization Level' button!"), tr("Sounds good!"), this, true)) { - params.putBool("CustomizationLevelConfirmed", true); - params.putInt("CustomizationLevel", 2); + if (FrogPilotConfirmationDialog::toggleAlert(tr("Since you're very experienced with FrogPilot, the 'Advanced' toggle preset has been applied, but you can change this at any time via the 'Tuning Level' button!"), tr("Sounds good!"), this, true)) { + params.putBool("TuningLevelConfirmed", true); + params.putInt("TuningLevel", 2); } } } diff --git a/selfdrive/ui/qt/offroad/settings.h b/selfdrive/ui/qt/offroad/settings.h index e2ea3ac5a04624..a862106c85cc3e 100644 --- a/selfdrive/ui/qt/offroad/settings.h +++ b/selfdrive/ui/qt/offroad/settings.h @@ -77,6 +77,9 @@ private slots: private: Params params; ButtonControl *pair_device; + + // FrogPilot variables + Params paramsStorage{"/persist/params"}; }; class TogglesPanel : public ListWidget { @@ -125,5 +128,5 @@ class SoftwarePanel : public ListWidget { ParamWatcher *fs_watch; // FrogPilot variables - Params paramsMemory{"/dev/shm/params"}; + Params params_memory{"/dev/shm/params"}; }; diff --git a/selfdrive/ui/qt/offroad/software_settings.cc b/selfdrive/ui/qt/offroad/software_settings.cc index 081e2ea5e3cd1d..8c6992d076fb43 100644 --- a/selfdrive/ui/qt/offroad/software_settings.cc +++ b/selfdrive/ui/qt/offroad/software_settings.cc @@ -44,7 +44,7 @@ SoftwarePanel::SoftwarePanel(QWidget* parent) : ListWidget(parent) { } else { std::system("pkill -SIGHUP -f system.updated.updated"); } - paramsMemory.putBool("ManualUpdateInitiated", true); + params_memory.putBool("ManualUpdateInitiated", true); }); addItem(downloadBtn); @@ -89,10 +89,9 @@ SoftwarePanel::SoftwarePanel(QWidget* parent) : ListWidget(parent) { auto uninstallBtn = new ButtonControl(tr("Uninstall %1").arg(getBrand()), tr("UNINSTALL")); connect(uninstallBtn, &ButtonControl::clicked, [&]() { if (ConfirmationDialog::confirm(tr("Are you sure you want to uninstall?"), tr("Uninstall"), this)) { - if (FrogPilotConfirmationDialog::yesorno(tr("Do you want to delete deep storage FrogPilot assets? This is 100% unrecoverable and includes FrogPilot stats and toggle settings for quick reinstalls."), this)) { - if (FrogPilotConfirmationDialog::yesorno(tr("Are you sure? This is 100% unrecoverable and includes FrogPilot stats and toggle settings for quick reinstalls."), this)) { + if (FrogPilotConfirmationDialog::yesorno(tr("Do you want to delete deep storage FrogPilot assets? This includes your toggle settings for quick reinstalls."), this)) { + if (FrogPilotConfirmationDialog::yesorno(tr("Are you sure? This is 100% unrecoverable and if you reinstall FrogPilot you'll lose all your previous settings!"), this)) { std::system("rm -rf /persist/params"); - std::system("rm -rf /persist/tracking"); } } params.putBool("DoUninstall", true); @@ -143,10 +142,10 @@ void SoftwarePanel::updateLabels() { } // updater only runs offroad or when parked - bool parked = scene.parked; + bool parked = scene.parked || scene.frogs_go_moo; - onroadLbl->setVisible(is_onroad && !parked && !scene.frogs_go_moo); - downloadBtn->setVisible(!is_onroad || parked || scene.frogs_go_moo); + onroadLbl->setVisible(is_onroad && !parked); + downloadBtn->setVisible(!is_onroad || parked); // download update QString updater_state = QString::fromStdString(params.get("UpdaterState")); diff --git a/selfdrive/ui/qt/onroad/annotated_camera.cc b/selfdrive/ui/qt/onroad/annotated_camera.cc index 8a817bc47a5dca..8c6d9929345223 100644 --- a/selfdrive/ui/qt/onroad/annotated_camera.cc +++ b/selfdrive/ui/qt/onroad/annotated_camera.cc @@ -209,29 +209,24 @@ void AnnotatedCameraWidget::drawHud(QPainter &p) { p.drawText(rect.adjusted(20, 0, 0, 0), Qt::AlignVCenter | Qt::AlignLeft, speedStr); }; - static float previousSetSpeed = 0; - if (setSpeed == previousSetSpeed) { - QRect curveSpeedRect(QPoint(set_speed_rect.right() + 25, set_speed_rect.top()), QSize(default_size.width() * 1.25, default_size.width() * 1.25)); - QPixmap scaledCurveSpeedIcon = (leftCurve ? curveSpeedLeftIcon : curveSpeedRightIcon).scaled(curveSpeedRect.size(), Qt::KeepAspectRatio, Qt::SmoothTransformation); + QRect curveSpeedRect(QPoint(set_speed_rect.right() + 25, set_speed_rect.top()), QSize(default_size.width() * 1.25, default_size.width() * 1.25)); + QPixmap scaledCurveSpeedIcon = (leftCurve ? curveSpeedLeftIcon : curveSpeedRightIcon).scaled(curveSpeedRect.size(), Qt::KeepAspectRatio, Qt::SmoothTransformation); - p.setOpacity(1.0); - p.setRenderHint(QPainter::Antialiasing); - p.drawPixmap(curveSpeedRect, scaledCurveSpeedIcon); + p.setOpacity(1.0); + p.setRenderHint(QPainter::Antialiasing); + p.drawPixmap(curveSpeedRect, scaledCurveSpeedIcon); - if (mtscEnabled) { - QRect mtscRect(curveSpeedRect.topLeft() + QPoint(0, curveSpeedRect.height() + 10), QSize(curveSpeedRect.width(), vtscControllingCurve ? 50 : 100)); + if (mtscEnabled) { + QRect mtscRect(curveSpeedRect.topLeft() + QPoint(0, curveSpeedRect.height() + 10), QSize(curveSpeedRect.width(), vtscControllingCurve ? 50 : 100)); drawCurveSpeedControl(mtscRect, mtscSpeedStr, true); - if (vtscEnabled) { - QRect vtscRect(mtscRect.topLeft() + QPoint(0, mtscRect.height() + 20), QSize(mtscRect.width(), vtscControllingCurve ? 100 : 50)); - drawCurveSpeedControl(vtscRect, vtscSpeedStr, false); - } - } else if (vtscEnabled) { - QRect vtscRect(curveSpeedRect.topLeft() + QPoint(0, curveSpeedRect.height() + 10), QSize(curveSpeedRect.width(), 150)); + if (vtscEnabled) { + QRect vtscRect(mtscRect.topLeft() + QPoint(0, mtscRect.height() + 20), QSize(mtscRect.width(), vtscControllingCurve ? 100 : 50)); drawCurveSpeedControl(vtscRect, vtscSpeedStr, false); } - } else { - previousSetSpeed = setSpeed; + } else if (vtscEnabled) { + QRect vtscRect(curveSpeedRect.topLeft() + QPoint(0, curveSpeedRect.height() + 10), QSize(curveSpeedRect.width(), 150)); + drawCurveSpeedControl(vtscRect, vtscSpeedStr, false); } } @@ -560,7 +555,7 @@ void AnnotatedCameraWidget::drawLaneLines(QPainter &painter, const UIState *s, f if (scene.show_stopping_point_metrics) { QFont font = InterFont(35, QFont::DemiBold); - QString text = QString::number(modelLength * distanceConversion) + leadDistanceUnit; + QString text = QString::number(std::nearbyint(modelLength * distanceConversion)) + leadDistanceUnit; int text_width = QFontMetrics(font).horizontalAdvance(text); QPointF text_position = last_point - QPointF(text_width / 2, stopSignImg.height() + 35); @@ -741,10 +736,10 @@ void AnnotatedCameraWidget::drawLead(QPainter &painter, const cereal::RadarState // chevron QPointF chevron[] = {{x + (sz * 1.25), y + sz}, {x, y}, {x - (sz * 1.25), y + sz}}; - if (useStockColors) { + if (useStockColors && !adjacent) { painter.setBrush(redColor(fillAlpha)); } else { - painter.setBrush(lead_marker_color); + painter.setBrush(QColor(lead_marker_color.red(), lead_marker_color.green(), lead_marker_color.blue(), fillAlpha)); } painter.drawPolygon(chevron, std::size(chevron)); @@ -864,21 +859,25 @@ void AnnotatedCameraWidget::paintEvent(QPaintEvent *event) { auto lead_right = radar_state.getLeadRight(); auto lead_left_far = radar_state.getLeadLeftFar(); auto lead_right_far = radar_state.getLeadRightFar(); + auto leads_lead = radar_state.getLeadsLead(); if (lead_left.getStatus()) { drawLead(painter, lead_left, s->scene.lead_vertices[2], v_ego, blueColor(), true); } if (lead_right.getStatus()) { - drawLead(painter, lead_right, s->scene.lead_vertices[3], v_ego, redColor(), true); + drawLead(painter, lead_right, s->scene.lead_vertices[3], v_ego, orangeColor(), true); } if (lead_left_far.getStatus()) { - drawLead(painter, lead_left_far, s->scene.lead_vertices[4], v_ego, greenColor(), true); + drawLead(painter, lead_left_far, s->scene.lead_vertices[4], v_ego, purpleColor(), true); } if (lead_right_far.getStatus()) { - drawLead(painter, lead_right_far, s->scene.lead_vertices[5], v_ego, whiteColor(), true); + drawLead(painter, lead_right_far, s->scene.lead_vertices[5], v_ego, yellowColor(), true); } if (lead_two.getStatus()) { drawLead(painter, lead_two, s->scene.lead_vertices[1], v_ego, s->scene.lead_marker_color); } else if (lead_one.getStatus()) { + if (leads_lead.getStatus()) { + drawLead(painter, leads_lead, s->scene.lead_vertices[6], v_ego, s->scene.lead_marker_color); + } drawLead(painter, lead_one, s->scene.lead_vertices[0], v_ego, s->scene.lead_marker_color); } else { lead_x = 0; @@ -921,26 +920,6 @@ void AnnotatedCameraWidget::showEvent(QShowEvent *event) { prev_draw_t = millis_since_boot(); // FrogPilot variables - if (is_metric || useSI) { - accelerationUnit = tr("m/s²"); - leadDistanceUnit = tr(mapOpen ? "m" : "meters"); - leadSpeedUnit = useSI ? tr("m/s") : tr("kph"); - - accelerationConversion = 1.0f; - distanceConversion = 1.0f; - speedConversion = is_metric ? MS_TO_KPH : MS_TO_MPH; - speedConversionMetrics = useSI ? 1.0f : MS_TO_KPH; - } else { - accelerationUnit = tr("ft/s²"); - leadDistanceUnit = tr(mapOpen ? "ft" : "feet"); - leadSpeedUnit = tr("mph"); - - accelerationConversion = METER_TO_FOOT; - distanceConversion = METER_TO_FOOT; - speedConversion = MS_TO_MPH; - speedConversionMetrics = MS_TO_MPH; - } - distance_btn->updateIcon(); experimental_btn->updateIcon(); updateSignals(); @@ -1038,6 +1017,26 @@ void AnnotatedCameraWidget::initializeFrogPilotWidgets() { } void AnnotatedCameraWidget::updateFrogPilotVariables(int alert_height, const UIScene &scene) { + if (is_metric || useSI) { + accelerationUnit = tr("m/s²"); + leadDistanceUnit = tr(mapOpen ? "m" : "meters"); + leadSpeedUnit = useSI ? tr("m/s") : tr("kph"); + + accelerationConversion = 1.0f; + distanceConversion = 1.0f; + speedConversion = is_metric ? MS_TO_KPH : MS_TO_MPH; + speedConversionMetrics = useSI ? 1.0f : MS_TO_KPH; + } else { + accelerationUnit = tr("ft/s²"); + leadDistanceUnit = tr(mapOpen ? "ft" : "feet"); + leadSpeedUnit = tr("mph"); + + accelerationConversion = METER_TO_FOOT; + distanceConversion = METER_TO_FOOT; + speedConversion = MS_TO_MPH; + speedConversionMetrics = MS_TO_MPH; + } + alertHeight = alert_height; alwaysOnLateralActive = scene.always_on_lateral_active; @@ -1093,7 +1092,7 @@ void AnnotatedCameraWidget::updateFrogPilotVariables(int alert_height, const UIS modelLength = scene.model_length; mtscEnabled = scene.mtsc_enabled; - mtscSpeed = scene.mtsc_speed * speedConversion + vCruiseDiff; + mtscSpeed = mtscEnabled ? scene.mtsc_speed * speedConversion : setSpeed; onroadDistanceButton = scene.onroad_distance_button; bool enableDistanceButton = onroadDistanceButton && !hideBottomIcons; @@ -1151,11 +1150,9 @@ void AnnotatedCameraWidget::updateFrogPilotVariables(int alert_height, const UIS useStockColors = scene.use_stock_colors; - vCruiseDiff = scene.v_cruise_diff; - vtscControllingCurve = scene.vtsc_controlling_curve; vtscEnabled = scene.vtsc_enabled; - vtscSpeed = scene.vtsc_speed * speedConversion + vCruiseDiff; + vtscSpeed = vtscEnabled ? scene.vtsc_speed * speedConversion : setSpeed; } void AnnotatedCameraWidget::paintFrogPilotWidgets(QPainter &painter) { diff --git a/selfdrive/ui/qt/onroad/annotated_camera.h b/selfdrive/ui/qt/onroad/annotated_camera.h index 56ab666315f343..7ba29548ea6135 100644 --- a/selfdrive/ui/qt/onroad/annotated_camera.h +++ b/selfdrive/ui/qt/onroad/annotated_camera.h @@ -179,7 +179,6 @@ class AnnotatedCameraWidget : public CameraWidget { float speedConversionMetrics; float unconfirmedSpeedLimit; float upcomingSpeedLimit; - float vCruiseDiff; float vtscSpeed; int alertHeight; @@ -203,8 +202,11 @@ class AnnotatedCameraWidget : public CameraWidget { std::string speedLimitSource; - inline QColor blueColor(int alpha = 255) { return QColor(0, 150, 255, alpha); } + inline QColor blueColor(int alpha = 255) { return QColor(0, 0, 255, alpha); } inline QColor greenColor(int alpha = 242) { return QColor(23, 134, 68, alpha); } + inline QColor orangeColor(int alpha = 255) { return QColor(255, 165, 0, alpha); } + inline QColor purpleColor(int alpha = 255) { return QColor(128, 0, 128, alpha); } + inline QColor yellowColor(int alpha = 255) { return QColor(255, 255, 0, alpha); } protected: void paintGL() override; diff --git a/selfdrive/ui/qt/onroad/buttons.cc b/selfdrive/ui/qt/onroad/buttons.cc index 2f0722ccb58747..e524a0dbc9a088 100644 --- a/selfdrive/ui/qt/onroad/buttons.cc +++ b/selfdrive/ui/qt/onroad/buttons.cc @@ -39,6 +39,7 @@ ExperimentalButton::~ExperimentalButton() { if (gif != nullptr) { gif->stop(); delete gif; + gif = nullptr; gif_label->hide(); } } @@ -126,12 +127,19 @@ void ExperimentalButton::updateIcon() { if (gif != nullptr) { gif->stop(); delete gif; + gif = nullptr; gif_label->hide(); } if (QFile::exists(wheel_gif_path)) { gif = new QMovie(wheel_gif_path); + if (!gif->isValid()) { + delete gif; + gif = nullptr; + return; + } + gif_label->setMovie(gif); gif_label->resize(img_size, img_size); gif_label->move((btn_size - img_size) / 2, (btn_size - img_size) / 2 + y_offset); diff --git a/selfdrive/ui/qt/onroad/onroad_home.cc b/selfdrive/ui/qt/onroad/onroad_home.cc index 0749dd2cc708d0..d4deac8fc3557d 100644 --- a/selfdrive/ui/qt/onroad/onroad_home.cc +++ b/selfdrive/ui/qt/onroad/onroad_home.cc @@ -125,7 +125,6 @@ void OnroadWindow::mousePressEvent(QMouseEvent* e) { if (scene.speed_limit_changed && nvg->newSpeedLimitRect.contains(pos)) { paramsMemory.putBool("SLCConfirmed", true); - paramsMemory.putBool("SLCConfirmedPressed", true); return; } diff --git a/selfdrive/ui/qt/sidebar.cc b/selfdrive/ui/qt/sidebar.cc index abb864eb3676a4..bd2a843f6598ab 100644 --- a/selfdrive/ui/qt/sidebar.cc +++ b/selfdrive/ui/qt/sidebar.cc @@ -63,24 +63,28 @@ void Sidebar::updateIcon(QLabel *&label, QMovie *&gif, const QString &gifPath, c gif->stop(); delete gif; gif = nullptr; - label->hide(); + if (label) { + label->hide(); + } } if (QFile::exists(selectedGifPath)) { gif = new QMovie(selectedGifPath); - if (!gif->fileName().isEmpty()) { + if (gif->isValid()) { gif->setScaledSize(btnRect.size()); - label->setGeometry(btnRect); - label->setMovie(gif); - label->show(); + if (label) { + label->setGeometry(btnRect); + label->setMovie(gif); + label->show(); + } gif->start(); - isGif = true; } else { delete gif; + gif = nullptr; isGif = false; } } else { diff --git a/selfdrive/ui/qt/widgets/controls.h b/selfdrive/ui/qt/widgets/controls.h index 1a5b2c38be70a7..cd6b1e82799dba 100644 --- a/selfdrive/ui/qt/widgets/controls.h +++ b/selfdrive/ui/qt/widgets/controls.h @@ -225,11 +225,12 @@ class ButtonParamControl : public AbstractControl { button->setMinimumWidth(minimum_button_width); hlayout->addWidget(button); button_group->addButton(button, i); + button->installEventFilter(this); } QObject::connect(button_group, QOverload::of(&QButtonGroup::buttonClicked), [=](int id) { params.put(key, std::to_string(id)); - emit buttonClicked(); + emit buttonClicked(id); }); } @@ -239,6 +240,12 @@ class ButtonParamControl : public AbstractControl { } } + void setEnabledButtons(int id, bool enable) { + if (QAbstractButton *button = button_group->button(id)) { + button->setEnabled(enable); + } + } + void setCheckedButton(int id) { button_group->button(id)->setChecked(true); } @@ -253,7 +260,19 @@ class ButtonParamControl : public AbstractControl { } signals: - void buttonClicked(); + void buttonClicked(int id); + void disabledButtonClicked(int id); + +protected: + bool eventFilter(QObject *obj, QEvent *event) override { + if (event->type() == QEvent::MouseButtonPress) { + QPushButton *button = qobject_cast(obj); + if (button && !button->isEnabled()) { + emit disabledButtonClicked(button_group->id(button)); + } + } + return AbstractControl::eventFilter(obj, event); + } private: std::string key; diff --git a/selfdrive/ui/ui.cc b/selfdrive/ui/ui.cc index 6e52e9139d1a1c..7c472e163a735f 100644 --- a/selfdrive/ui/ui.cc +++ b/selfdrive/ui/ui.cc @@ -48,16 +48,17 @@ void update_leads(UIState *s, const cereal::RadarState::Reader &radar_state, con SubMaster &sm = *(s->sm); float path_offset_z = sm["liveCalibration"].getLiveCalibration().getHeight()[0]; - cereal::RadarState::LeadData::Reader (cereal::RadarState::Reader::*get_lead_data[6])() const = { + cereal::RadarState::LeadData::Reader (cereal::RadarState::Reader::*get_lead_data[7])() const = { &cereal::RadarState::Reader::getLeadOne, &cereal::RadarState::Reader::getLeadTwo, &cereal::RadarState::Reader::getLeadLeft, &cereal::RadarState::Reader::getLeadRight, &cereal::RadarState::Reader::getLeadLeftFar, - &cereal::RadarState::Reader::getLeadRightFar + &cereal::RadarState::Reader::getLeadRightFar, + &cereal::RadarState::Reader::getLeadsLead }; - for (int i = 0; i < 6; ++i) { + for (int i = 0; i < 7; ++i) { auto lead_data = (radar_state.*get_lead_data[i])(); if (lead_data.getStatus()) { float z = line.getZ()[get_path_length_idx(line, lead_data.getDRel())]; @@ -271,7 +272,6 @@ static void update_state(UIState *s) { auto controlsState = sm["controlsState"].getControlsState(); scene.enabled = controlsState.getEnabled(); scene.experimental_mode = scene.enabled && controlsState.getExperimentalMode(); - scene.v_cruise_diff = controlsState.getVCruiseCluster() - controlsState.getVCruise(); } if (sm.updated("deviceState")) { auto deviceState = sm["deviceState"].getDeviceState(); @@ -317,7 +317,7 @@ static void update_state(UIState *s) { scene.vtsc_controlling_curve = frogpilotPlan.getVtscControllingCurve(); scene.vtsc_speed = frogpilotPlan.getVtscSpeed(); if (frogpilotPlan.getTogglesUpdated()) { - scene.frogpilot_toggles = QJsonDocument::fromJson(QString::fromStdString(params.get("FrogPilotToggles")).toUtf8()).object(); + scene.frogpilot_toggles = QJsonDocument::fromJson(QString::fromStdString(s->params_memory.get("FrogPilotToggles", true)).toUtf8()).object(); ui_update_params(s); } } @@ -490,7 +490,7 @@ void UIState::updateStatus() { } scene.started |= scene.force_onroad; - scene.started &= !paramsMemory.getBool("ForceOffroad"); + scene.started &= !params_memory.getBool("ForceOffroad"); // Handle onroad/offroad transition if (scene.started != started_prev || sm->frame == 1) { @@ -533,7 +533,7 @@ UIState::UIState(QObject *parent) : QObject(parent) { // FrogPilot variables wifi = new WifiManager(this); - scene.frogpilot_toggles = QJsonDocument::fromJson(QString::fromStdString(params.get("FrogPilotToggles")).toUtf8()).object(); + scene.frogpilot_toggles = QJsonDocument::fromJson(QString::fromStdString(params_memory.get("FrogPilotToggles", true)).toUtf8()).object(); ui_update_params(this); } @@ -548,9 +548,9 @@ void UIState::update() { emit uiUpdate(*this); // FrogPilot variables - scene.conditional_status = scene.conditional_experimental && scene.enabled ? paramsMemory.getInt("CEStatus") : 0; + scene.conditional_status = scene.conditional_experimental && scene.enabled ? params_memory.getInt("CEStatus") : 0; scene.driver_camera_timer = scene.driver_camera_in_reverse && scene.reverse ? scene.driver_camera_timer + 1 : 0; - scene.force_onroad = paramsMemory.getBool("ForceOnroad"); + scene.force_onroad = params_memory.getBool("ForceOnroad"); scene.started_timer = scene.started || started_prev ? scene.started_timer + 1 : 0; if (scene.keep_screen_on) { diff --git a/selfdrive/ui/ui.h b/selfdrive/ui/ui.h index 9cccb54f61d090..e92b2de1776a90 100644 --- a/selfdrive/ui/ui.h +++ b/selfdrive/ui/ui.h @@ -104,7 +104,7 @@ typedef struct UIScene { QPolygonF road_edge_vertices[2]; // lead - QPointF lead_vertices[6]; + QPointF lead_vertices[7]; // DMoji state float driver_pose_vals[3]; @@ -257,7 +257,6 @@ typedef struct UIScene { float steer; float unconfirmed_speed_limit; float upcoming_speed_limit; - float v_cruise_diff; float vtsc_speed; int bearing_deg; @@ -311,6 +310,8 @@ class UIState : public QObject { QTransform car_space_transform; // FrogPilot variables + Params params_memory{"/dev/shm/params"}; + WifiManager *wifi = nullptr; signals: @@ -330,9 +331,6 @@ private slots: QTimer *timer; bool started_prev = false; PrimeType prime_type = PrimeType::UNKNOWN; - - // FrogPilot variables - Params paramsMemory{"/dev/shm/params"}; }; UIState *uiState(); diff --git a/system/manager/manager.py b/system/manager/manager.py index 29dcb0efe072f3..b3e88a98eb20e2 100755 --- a/system/manager/manager.py +++ b/system/manager/manager.py @@ -29,20 +29,20 @@ def manager_init() -> None: build_metadata = get_build_metadata() params = Params() - setup_frogpilot(build_metadata, params) - params_storage = Params("/persist/params") params.clear_all(ParamKeyType.CLEAR_ON_MANAGER_START) params.clear_all(ParamKeyType.CLEAR_ON_ONROAD_TRANSITION) params.clear_all(ParamKeyType.CLEAR_ON_OFFROAD_TRANSITION) if build_metadata.release_channel: params.clear_all(ParamKeyType.DEVELOPMENT_ONLY) - convert_params(params, params_storage) - threading.Thread(target=frogpilot_boot_functions, args=(build_metadata, params, params_storage,)).start() + # FrogPilot variables + setup_frogpilot(build_metadata) + params_storage = Params("/persist/params") + convert_params(params_storage) + threading.Thread(target=frogpilot_boot_functions, args=(build_metadata, params_storage,)).start() default_params: list[tuple[str, str | bytes]] = [ ("AlwaysOnDM", "0"), - ("CalibrationParams", ""), ("CarParamsPersistent", ""), ("CompletedTrainingVersion", "0"), ("DisengageOnAccelerator", "0"), @@ -58,13 +58,13 @@ def manager_init() -> None: ("IsLdwEnabled", "0"), ("IsMetric", "0"), ("LanguageSetting", "main_en"), - ("LiveTorqueParameters", ""), ("NavSettingLeftSide", "0"), ("NavSettingTime24h", "0"), ("OpenpilotEnabledToggle", "1"), ("RecordFront", "0"), ("SshEnabled", "0"), ("TetheringEnabled", "0"), + ("UpdaterAvailableBranches", ""), ("LongitudinalPersonality", str(log.LongitudinalPersonality.standard)), ] if not PC: @@ -75,10 +75,10 @@ def manager_init() -> None: # set unset params reset_toggles = params.get_bool("DoToggleReset") - for k, v in default_params + frogpilot_default_params: + for k, v in default_params + [(k, v) for k, v, _ in frogpilot_default_params]: if params.get(k) is None or reset_toggles: if params_storage.get(k) is None or reset_toggles: - params.put(k, v if isinstance(v, bytes) else str(v).encode('utf-8')) + params.put(k, v) else: params.put(k, params_storage.get(k)) else: diff --git a/system/manager/process_config.py b/system/manager/process_config.py index 39d418c33e61f9..115b951e7556a7 100644 --- a/system/manager/process_config.py +++ b/system/manager/process_config.py @@ -72,7 +72,7 @@ def run_new_modeld(started, params, CP: car.CarParams, classic_model, frogpilot_ NativeProcess("mapsd", "selfdrive/navd", ["./mapsd"], only_onroad), PythonProcess("navmodeld", "selfdrive.modeld.navmodeld", only_onroad), NativeProcess("sensord", "system/sensord", ["./sensord"], only_onroad, enabled=not PC), - NativeProcess("ui", "selfdrive/ui", ["./ui"], always_run, watchdog_max_dt=(30 if not PC else None)), + NativeProcess("ui", "selfdrive/ui", ["./ui"], always_run, watchdog_max_dt=(5 if not PC else None)), PythonProcess("soundd", "selfdrive.ui.soundd", only_onroad), NativeProcess("locationd", "selfdrive/locationd", ["./locationd"], only_onroad), NativeProcess("pandad", "selfdrive/pandad", ["./pandad"], always_run, enabled=False), diff --git a/system/sentry.py b/system/sentry.py index 35bf570e6f1612..01f6a375e279da 100644 --- a/system/sentry.py +++ b/system/sentry.py @@ -82,21 +82,21 @@ def capture_fingerprint(candidate, params, blocked=False): for label, key_values in matched_params.items(): if label == "FrogPilot Tracking": - matched_params[label] = {k: f"{v:,}" for k, v in key_values.items()} + matched_params[label] = {key: f"{value:,}" for key, value in key_values.items()} else: - matched_params[label] = {k: int(v) if isinstance(v, float) and v.is_integer() else v for k, v in sorted(key_values.items())} + matched_params[label] = {key: int(value) if isinstance(value, float) and value.is_integer() else value for key, value in sorted(key_values.items())} with sentry_sdk.configure_scope() as scope: scope.fingerprint = [params.get("DongleId", encoding='utf-8')] for label, key_values in matched_params.items(): - scope.set_extra(label, "\n".join(f"{k}: {v}" for k, v in key_values.items())) + scope.set_extra(label, "\n".join(f"{key}: {value}" for key, value in key_values.items())) if blocked: sentry_sdk.capture_message("Blocked user from using the development branch", level='error') else: sentry_sdk.capture_message(f"Fingerprinted {candidate}", level='info') - params.put_bool_nonblocking("FingerprintLogged", True) + params.put_bool("FingerprintLogged", True) sentry_sdk.flush() diff --git a/system/updated/updated.py b/system/updated/updated.py index 180a4a54e08ec6..40fd8b898e8f0a 100755 --- a/system/updated/updated.py +++ b/system/updated/updated.py @@ -411,7 +411,7 @@ def fetch_update(self) -> None: cloudlog.info("finalize success!") # Format "Updated" to Phoenix time zone - self.params.put_nonblocking("Updated", datetime.datetime.now().astimezone(ZoneInfo('America/Phoenix')).strftime("%B %d, %Y - %I:%M%p").encode('utf8')) + self.params.put("Updated", datetime.datetime.now().astimezone(ZoneInfo('America/Phoenix')).strftime("%B %d, %Y - %I:%M%p").encode('utf8')) def main() -> None: params = Params() @@ -468,7 +468,7 @@ def main() -> None: # Format "InstallDate" to Phoenix time zone if not install_date_set: - params.put_nonblocking("InstallDate", datetime.datetime.now().astimezone(ZoneInfo('America/Phoenix')).strftime("%B %d, %Y - %I:%M%p").encode('utf8')) + params.put("InstallDate", datetime.datetime.now().astimezone(ZoneInfo('America/Phoenix')).strftime("%B %d, %Y - %I:%M%p").encode('utf8')) install_date_set = True if not (frogpilot_toggles.automatic_updates or params_memory.get_bool("ManualUpdateInitiated")):

Z%Nei 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 diff --git a/selfdrive/frogpilot/assets/active_theme/signals/traditional_100 b/selfdrive/frogpilot/assets/active_theme/signals/traditional_100 deleted file mode 100644 index e69de29bb2d1d6..00000000000000 diff --git a/selfdrive/frogpilot/assets/active_theme/signals/turn_signal_1.png b/selfdrive/frogpilot/assets/active_theme/signals/turn_signal_1.png deleted file mode 100644 index 8c2f7a54ed26a3dae6ef83581f4d88197a9bf88c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45438 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 diff --git a/selfdrive/frogpilot/assets/active_theme/signals/turn_signal_2.png b/selfdrive/frogpilot/assets/active_theme/signals/turn_signal_2.png deleted file mode 100644 index 3c7d2d9eb8a0ade223ded2f3884a6ff91b18e20a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54564 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 ZZkuWAsAZ)tSA!&gVP|v6y2_G}_&>gC{OkY# diff --git a/selfdrive/frogpilot/assets/active_theme/signals/turn_signal_3.png b/selfdrive/frogpilot/assets/active_theme/signals/turn_signal_3.png deleted file mode 100644 index b495eeae190cbcf70bd15a4d14e1d4ae6c112ffb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59581 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 diff --git a/selfdrive/frogpilot/assets/active_theme/signals/turn_signal_4.png b/selfdrive/frogpilot/assets/active_theme/signals/turn_signal_4.png deleted file mode 100644 index 024a0b03ea6c081d57eebdfe80b251aa7b883417..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 61634 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 C{mKRkpy@zHI} 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ⅅAoJ5#mWF2k60(q>2T}Y>qw{ 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 bhVZsjgIS?LR{joVYi|@}Rb?uqOhf+%QsNX@ diff --git a/selfdrive/frogpilot/assets/active_theme/signals/turn_signal_5.png b/selfdrive/frogpilot/assets/active_theme/signals/turn_signal_5.png deleted file mode 100644 index 91eb05f12f45798aabe5e667b4b5016b5b1b40e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45490 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 ZZkuWAsAZ)tSA!&gVP|v6y2_G}_&>gC{OkY# diff --git a/selfdrive/frogpilot/assets/active_theme/signals/turn_signal_blindspot.png b/selfdrive/frogpilot/assets/active_theme/signals/turn_signal_blindspot.png deleted file mode 100644 index b721266fb2f1b1cda06d582dbd0505b9dc9c4f0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38017 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 diff --git a/selfdrive/frogpilot/assets/active_theme/sounds/disengage.wav b/selfdrive/frogpilot/assets/active_theme/sounds/disengage.wav deleted file mode 100644 index d46dd9eb6cab6ba8175be3189eab038e9b5fd1bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 76844 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 diff --git a/selfdrive/frogpilot/assets/active_theme/sounds/engage.wav b/selfdrive/frogpilot/assets/active_theme/sounds/engage.wav deleted file mode 100644 index 795aa530e7ae76fa7ca4ee916db613030c9269d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 67244 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 diff --git a/selfdrive/frogpilot/assets/active_theme/steering_wheel/wheel.png b/selfdrive/frogpilot/assets/active_theme/steering_wheel/wheel.png deleted file mode 100644 index 712255984600c0fecc270564b31db3fb677003bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64941 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