From 5145bdbd8de66db92a5e6506954b8b151554dd9e Mon Sep 17 00:00:00 2001 From: FrogAi <91348155+FrogAi@users.noreply.github.com> Date: Mon, 21 Oct 2024 10:27:33 -0700 Subject: [PATCH] November 2024 Update --- README.md | 2 +- cereal/car.capnp | 20 +- cereal/custom.capnp | 44 +- cereal/log.capnp | 4 + cereal/services.py | 14 +- common/conversions.py | 2 - common/params.cc | 26 +- selfdrive/car/card.py | 19 +- selfdrive/car/ford/carcontroller.py | 4 +- selfdrive/car/honda/carcontroller.py | 4 +- selfdrive/car/hyundai/carcontroller.py | 4 +- .../lat_models/CHEVROLET_BOLT_EUV.json | 1 + selfdrive/car/toyota/carcontroller.py | 13 +- selfdrive/car/toyota/carstate.py | 2 - selfdrive/car/toyota/fingerprints.py | 57 + selfdrive/car/toyota/interface.py | 3 - selfdrive/car/toyota/values.py | 28 +- selfdrive/car/volkswagen/carcontroller.py | 4 +- selfdrive/classic_modeld/classic_modeld.py | 14 +- selfdrive/controls/controlsd.py | 29 +- selfdrive/controls/lib/desire_helper.py | 2 +- selfdrive/controls/lib/events.py | 109 +- .../lib/longitudinal_mpc_lib/long_mpc.py | 13 +- .../controls/lib/longitudinal_planner.py | 28 +- selfdrive/controls/plannerd.py | 21 +- selfdrive/controls/radard.py | 76 +- .../assets/active_theme/colors/colors.json | 6 - .../frogpilot/assets/download_functions.py | 21 +- .../halloween_week/colors/colors.json | 6 - .../world_frog_day/colors/colors.json | 44 + .../distance_icons/aggressive.gif | Bin .../distance_icons/relaxed.gif | Bin .../distance_icons/standard.gif | Bin .../distance_icons/traffic.gif | Bin .../world_frog_day/icons/button_home.gif | Bin 37045 -> 37744 bytes .../world_frog_day/signals/traditional_100 | 0 .../world_frog_day/signals/turn_signal_1.png | Bin 64120 -> 45438 bytes .../world_frog_day/signals/turn_signal_2.png | Bin 77793 -> 54564 bytes .../world_frog_day/signals/turn_signal_3.png | Bin 84999 -> 59581 bytes .../world_frog_day/signals/turn_signal_4.png | Bin 87564 -> 61634 bytes .../world_frog_day/signals/turn_signal_5.png | Bin 0 -> 45490 bytes .../world_frog_day/signals/turn_signal_6.png | Bin 0 -> 54564 bytes .../signals/turn_signal_blindspot.png | Bin 0 -> 38017 bytes .../world_frog_day/steering_wheel/wheel.png | Bin 0 -> 64941 bytes selfdrive/frogpilot/assets/model_manager.py | 178 +-- .../assets/other_images/original_bg.jpg | Bin 46411 -> 0 bytes .../random_events/icons/this_is_fine.gif | Bin 0 -> 673387 bytes .../random_events/sounds/this_is_fine.wav | Bin 0 -> 192064 bytes selfdrive/frogpilot/assets/theme_manager.py | 150 ++- .../toggle_icons/advanced_quality_of_life.png | Bin 15368 -> 0 bytes .../toggle_icons/icon_accessibility.png | Bin 0 -> 22917 bytes .../assets/toggle_icons/icon_advanced.png | Bin 17554 -> 0 bytes .../icon_advanced_calibration.png | Bin 6791 -> 0 bytes .../toggle_icons/icon_advanced_device.png | Bin 6046 -> 9304 bytes .../icon_advanced_longitudinal_tune.png | Bin 14820 -> 0 bytes .../toggle_icons/icon_advanced_model.png | Bin 4153 -> 0 bytes .../icon_advanced_personality.png | Bin 9330 -> 0 bytes .../toggle_icons/icon_advanced_road.png | Bin 9050 -> 0 bytes .../toggle_icons/icon_customization.png | Bin 0 -> 6495 bytes .../assets/toggle_icons/icon_green_light.png | Bin 11651 -> 6780 bytes .../assets/toggle_icons/icon_personality.png | Bin 0 -> 9307 bytes .../frogpilot/controls/frogpilot_planner.py | 55 +- .../lib/conditional_experimental_mode.py | 14 +- .../controls/lib/frogpilot_acceleration.py | 35 +- .../controls/lib/frogpilot_events.py | 42 +- .../controls/lib/frogpilot_following.py | 13 +- .../controls/lib/frogpilot_vcruise.py | 27 +- .../controls/lib/map_turn_speed_controller.py | 17 +- .../controls/lib/speed_limit_controller.py | 131 +- .../frogpilot/fleetmanager/fleet_manager.py | 4 +- selfdrive/frogpilot/fleetmanager/helpers.py | 6 +- selfdrive/frogpilot/frogpilot_functions.py | 162 +-- selfdrive/frogpilot/frogpilot_process.py | 114 +- selfdrive/frogpilot/frogpilot_utilities.py | 104 ++ selfdrive/frogpilot/frogpilot_variables.py | 1164 ++++++++++++++--- selfdrive/frogpilot/navigation/mapd.py | 2 +- .../frogpilot/navigation/ui/maps_settings.cc | 10 +- .../navigation/ui/primeless_settings.cc | 5 +- .../navigation/ui/primeless_settings.h | 1 + .../qt/offroad/advanced_driving_settings.cc | 935 ------------- .../ui/qt/offroad/advanced_driving_settings.h | 137 -- .../ui/qt/offroad/advanced_visual_settings.cc | 226 ---- .../ui/qt/offroad/advanced_visual_settings.h | 53 - .../frogpilot/ui/qt/offroad/data_settings.cc | 2 +- .../ui/qt/offroad/device_settings.cc | 52 +- .../frogpilot/ui/qt/offroad/device_settings.h | 5 + .../ui/qt/offroad/frogpilot_settings.cc | 70 +- .../ui/qt/offroad/frogpilot_settings.h | 9 +- .../ui/qt/offroad/lateral_settings.cc | 181 ++- .../ui/qt/offroad/lateral_settings.h | 32 +- .../ui/qt/offroad/longitudinal_settings.cc | 500 +++++-- .../ui/qt/offroad/longitudinal_settings.h | 63 +- .../frogpilot/ui/qt/offroad/model_settings.cc | 527 ++++++++ .../frogpilot/ui/qt/offroad/model_settings.h | 60 + .../ui/qt/offroad/sounds_settings.cc | 28 +- .../frogpilot/ui/qt/offroad/sounds_settings.h | 3 + .../frogpilot/ui/qt/offroad/theme_settings.cc | 42 +- .../frogpilot/ui/qt/offroad/theme_settings.h | 7 +- .../frogpilot/ui/qt/offroad/utilities.cc | 6 +- .../ui/qt/offroad/vehicle_settings.cc | 48 +- .../ui/qt/offroad/vehicle_settings.h | 19 +- .../ui/qt/offroad/visual_settings.cc | 364 +++++- .../frogpilot/ui/qt/offroad/visual_settings.h | 51 +- .../frogpilot/ui/qt/widgets/drive_stats.cc | 17 +- .../ui/qt/widgets/frogpilot_controls.cc | 19 - .../ui/qt/widgets/frogpilot_controls.h | 17 +- selfdrive/locationd/calibrationd.py | 17 +- selfdrive/locationd/torqued.py | 31 +- selfdrive/modeld/modeld.py | 19 +- selfdrive/navd/navd.py | 17 +- selfdrive/ui/SConscript | 8 +- selfdrive/ui/qt/home.cc | 5 +- selfdrive/ui/qt/offroad/settings.cc | 46 +- selfdrive/ui/qt/offroad/settings.h | 5 +- selfdrive/ui/qt/onroad/alerts.cc | 4 +- selfdrive/ui/qt/onroad/annotated_camera.cc | 191 +-- selfdrive/ui/qt/onroad/annotated_camera.h | 14 +- selfdrive/ui/qt/onroad/buttons.cc | 4 +- selfdrive/ui/qt/onroad/buttons.h | 2 +- selfdrive/ui/qt/onroad/onroad_home.cc | 28 +- selfdrive/ui/qt/sidebar.cc | 22 +- selfdrive/ui/qt/widgets/input.cc | 2 +- selfdrive/ui/soundd.py | 24 +- selfdrive/ui/ui.cc | 244 ++-- selfdrive/ui/ui.h | 76 +- system/camerad/cameras/camera_qcom2.cc | 17 - system/hardware/hardwared.py | 16 +- system/manager/manager.py | 344 +---- system/manager/process.py | 14 +- system/manager/process_config.py | 32 +- system/sentry.py | 4 +- system/updated/updated.py | 4 +- 132 files changed, 4092 insertions(+), 3425 deletions(-) create mode 100644 selfdrive/car/torque_data/lat_models/CHEVROLET_BOLT_EUV.json create mode 100644 selfdrive/frogpilot/assets/holiday_themes/world_frog_day/colors/colors.json rename selfdrive/frogpilot/assets/holiday_themes/{halloween_week => world_frog_day}/distance_icons/aggressive.gif (100%) rename selfdrive/frogpilot/assets/holiday_themes/{halloween_week => world_frog_day}/distance_icons/relaxed.gif (100%) rename selfdrive/frogpilot/assets/holiday_themes/{halloween_week => world_frog_day}/distance_icons/standard.gif (100%) rename selfdrive/frogpilot/assets/holiday_themes/{halloween_week => world_frog_day}/distance_icons/traffic.gif (100%) create mode 100644 selfdrive/frogpilot/assets/holiday_themes/world_frog_day/signals/traditional_100 create mode 100644 selfdrive/frogpilot/assets/holiday_themes/world_frog_day/signals/turn_signal_5.png create mode 100644 selfdrive/frogpilot/assets/holiday_themes/world_frog_day/signals/turn_signal_6.png create mode 100644 selfdrive/frogpilot/assets/holiday_themes/world_frog_day/signals/turn_signal_blindspot.png create mode 100644 selfdrive/frogpilot/assets/holiday_themes/world_frog_day/steering_wheel/wheel.png delete mode 100644 selfdrive/frogpilot/assets/other_images/original_bg.jpg create mode 100644 selfdrive/frogpilot/assets/random_events/icons/this_is_fine.gif create mode 100644 selfdrive/frogpilot/assets/random_events/sounds/this_is_fine.wav delete mode 100644 selfdrive/frogpilot/assets/toggle_icons/advanced_quality_of_life.png create mode 100644 selfdrive/frogpilot/assets/toggle_icons/icon_accessibility.png delete mode 100644 selfdrive/frogpilot/assets/toggle_icons/icon_advanced.png delete mode 100644 selfdrive/frogpilot/assets/toggle_icons/icon_advanced_calibration.png delete mode 100644 selfdrive/frogpilot/assets/toggle_icons/icon_advanced_longitudinal_tune.png delete mode 100644 selfdrive/frogpilot/assets/toggle_icons/icon_advanced_model.png delete mode 100644 selfdrive/frogpilot/assets/toggle_icons/icon_advanced_personality.png delete mode 100644 selfdrive/frogpilot/assets/toggle_icons/icon_advanced_road.png create mode 100644 selfdrive/frogpilot/assets/toggle_icons/icon_customization.png create mode 100644 selfdrive/frogpilot/assets/toggle_icons/icon_personality.png create mode 100644 selfdrive/frogpilot/frogpilot_utilities.py delete mode 100644 selfdrive/frogpilot/ui/qt/offroad/advanced_driving_settings.cc delete mode 100644 selfdrive/frogpilot/ui/qt/offroad/advanced_driving_settings.h delete mode 100644 selfdrive/frogpilot/ui/qt/offroad/advanced_visual_settings.cc delete mode 100644 selfdrive/frogpilot/ui/qt/offroad/advanced_visual_settings.h create mode 100644 selfdrive/frogpilot/ui/qt/offroad/model_settings.cc create mode 100644 selfdrive/frogpilot/ui/qt/offroad/model_settings.h diff --git a/README.md b/README.md index 21928a86..596db65b 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ FrogPilot is a fully open-sourced fork of openpilot, featuring clear and concise ------ FrogPilot was last updated on: -**October 21st, 2024** +**November 1st, 2024** Features ------ diff --git a/cereal/car.capnp b/cereal/car.capnp index ec40d92c..cd3f35a6 100644 --- a/cereal/car.capnp +++ b/cereal/car.capnp @@ -137,14 +137,15 @@ struct CarEvent @0x9b1657f34caf3ad3 { openpilotCrashedRandomEvent @137; pedalInterceptorNoBrake @138; speedLimitChanged @139; - torqueNNLoad @140; - trafficModeActive @141; - trafficModeInactive @142; - turningLeft @143; - turningRight @144; - vCruise69 @145; - yourFrogTriedToKillMe @146; - youveGotMail @147; + thisIsFineSteerSaturated @140; + torqueNNLoad @141; + trafficModeActive @142; + trafficModeInactive @143; + turningLeft @144; + turningRight @145; + vCruise69 @146; + yourFrogTriedToKillMe @147; + youveGotMail @148; radarCanErrorDEPRECATED @15; communityFeatureDisallowedDEPRECATED @62; @@ -453,7 +454,8 @@ struct CarControl { mail @16; nessie @17; noice @18; - uwu @19; + thisIsFine @19; + uwu @20; } } diff --git a/cereal/custom.capnp b/cereal/custom.capnp index 6b5554fe..0fa09874 100644 --- a/cereal/custom.capnp +++ b/cereal/custom.capnp @@ -54,27 +54,29 @@ struct FrogPilotPlan @0x80ae746ee2596b11 { desiredFollowDistance @4 :Float32; experimentalMode @5 :Bool; forcingStop @6 :Bool; - frogpilotEvents @7 :List(Car.CarEvent); - lateralCheck @8 :Bool; - laneWidthLeft @9 :Float32; - laneWidthRight @10 :Float32; - maxAcceleration @11 :Float32; - minAcceleration @12 :Float32; - redLight @13 :Bool; - safeObstacleDistance @14 :Int32; - safeObstacleDistanceStock @15 :Int32; - slcOverridden @16 :Bool; - slcOverriddenSpeed @17 :Float32; - slcSpeedLimit @18 :Float32; - slcSpeedLimitOffset @19 :Float32; - speedJerk @20 :Float32; - speedJerkStock @21 :Float32; - speedLimitChanged @22 :Bool; - stoppedEquivalenceFactor @23 :Int32; - tFollow @24 :Float32; - unconfirmedSlcSpeedLimit @25 :Float32; - vCruise @26 :Float32; - vtscControllingCurve @27 :Bool; + forcingStopLength @7 :Float32; + frogpilotEvents @8 :List(Car.CarEvent); + lateralCheck @9 :Bool; + laneWidthLeft @10 :Float32; + laneWidthRight @11 :Float32; + maxAcceleration @12 :Float32; + minAcceleration @13 :Float32; + redLight @14 :Bool; + safeObstacleDistance @15 :Int64; + safeObstacleDistanceStock @16 :Int64; + slcOverridden @17 :Bool; + slcOverriddenSpeed @18 :Float32; + slcSpeedLimit @19 :Float32; + slcSpeedLimitOffset @20 :Float32; + speedJerk @21 :Float32; + speedJerkStock @22 :Float32; + speedLimitChanged @23 :Bool; + stoppedEquivalenceFactor @24 :Int64; + tFollow @25 :Float32; + togglesUpdated @26 :Bool; + unconfirmedSlcSpeedLimit @27 :Float32; + vCruise @28 :Float32; + vtscControllingCurve @29 :Bool; } struct CustomReserved5 @0xa5cd762cd951a455 { diff --git a/cereal/log.capnp b/cereal/log.capnp index 3b1df446..9a944eac 100644 --- a/cereal/log.capnp +++ b/cereal/log.capnp @@ -618,6 +618,10 @@ struct RadarState @0x9a185389d6fdd05f { leadOne @3 :LeadData; leadTwo @4 :LeadData; + leadLeft @13 :LeadData; + leadRight @14 :LeadData; + leadLeftFar @15 :LeadData; + leadRightFar @16 :LeadData; cumLagMs @5 :Float32; struct LeadData { diff --git a/cereal/services.py b/cereal/services.py index 1ac0ae47..6a15c967 100755 --- a/cereal/services.py +++ b/cereal/services.py @@ -74,13 +74,6 @@ _services: dict[str, tuple] = { "userFlag": (True, 0., 1), "microphone": (True, 10., 10), - # FrogPilot - "frogpilotCarControl": (True, 100., 10), - "frogpilotCarState": (True, 100., 10), - "frogpilotDeviceState": (True, 2., 1), - "frogpilotNavigation": (True, 1., 10), - "frogpilotPlan": (True, 20., 5), - # debug "uiDebug": (True, 0., 1), "testJoystick": (True, 0.), @@ -97,6 +90,13 @@ _services: dict[str, tuple] = { "customReservedRawData0": (True, 0.), "customReservedRawData1": (True, 0.), "customReservedRawData2": (True, 0.), + + # FrogPilot + "frogpilotCarControl": (True, 100., 10), + "frogpilotCarState": (True, 100., 10), + "frogpilotDeviceState": (True, 2., 1), + "frogpilotNavigation": (True, 1., 10), + "frogpilotPlan": (True, 20., 5), } SERVICE_LIST = {name: Service(*vals) for idx, (name, vals) in enumerate(_services.items())} diff --git a/common/conversions.py b/common/conversions.py index 8554646e..62c8debd 100644 --- a/common/conversions.py +++ b/common/conversions.py @@ -12,8 +12,6 @@ class Conversions: KNOTS_TO_MS = 1. / MS_TO_KNOTS # Distance - KM_TO_MILES = KPH_TO_MPH - MILES_TO_KM = MPH_TO_KPH METER_TO_FOOT = 3.28084 FOOT_TO_METER = 1. / METER_TO_FOOT CM_TO_INCH = 1. / 2.54 diff --git a/common/params.cc b/common/params.cc index 918f714f..08eee2fe 100644 --- a/common/params.cc +++ b/common/params.cc @@ -211,12 +211,11 @@ std::unordered_map keys = { // FrogPilot parameters {"AccelerationPath", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, {"AccelerationProfile", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, + {"AdjacentLeadsUI", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"AdjacentPath", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, {"AdjacentPathMetrics", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, {"AdvancedCustomUI", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, {"AdvancedLateralTune", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, - {"AdvancedLongitudinalTune", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, - {"AdvancedQOLDriving", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"AggressiveFollow", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"AggressiveJerkAcceleration", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"AggressiveJerkDanger", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, @@ -240,7 +239,6 @@ std::unordered_map keys = { {"BlindSpotMetrics", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, {"BlindSpotPath", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, {"BorderMetrics", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, - {"CameraFPS", PERSISTENT}, {"CameraView", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, {"CancelModelDownload", PERSISTENT}, {"CancelThemeDownload", PERSISTENT}, @@ -266,6 +264,7 @@ std::unordered_map keys = { {"CESpeedLead", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"CEStatus", CLEAR_ON_OFFROAD_TRANSITION}, {"CEStoppedLead", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, + {"ClassicModels", PERSISTENT}, {"ClusterOffset", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VEHICLES}, {"ColorToDownload", PERSISTENT}, {"Compass", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, @@ -281,18 +280,24 @@ std::unordered_map keys = { {"CustomCruiseLong", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"CustomDistanceIcons", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"CustomIcons", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, - {"CustomPaths", 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}, {"CustomUI", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, {"DecelerationProfile", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, + {"DefaultModelName", CLEAR_ON_MANAGER_START}, {"DeveloperUI", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, {"DeviceManagement", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"DeviceShutdown", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"DisableCurveSpeedSmoothing", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"DisableOnroadUploads", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"DisableOpenpilotLongitudinal", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VEHICLES}, + {"DissolvedOxygenCalibrationParams", PERSISTENT}, + {"DissolvedOxygenDrives", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, + {"DissolvedOxygenLiveTorqueParameters", PERSISTENT}, + {"DissolvedOxygenScore", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"DistanceIconToDownload", PERSISTENT}, {"DisengageVolume", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, {"DoToggleReset", PERSISTENT}, @@ -303,10 +308,8 @@ std::unordered_map keys = { {"DownloadableSounds", PERSISTENT}, {"DownloadableWheels", PERSISTENT}, {"DownloadAllModels", PERSISTENT}, - {"DragonPilotTune", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VEHICLES}, {"DriveRated", CLEAR_ON_ONROAD_TRANSITION}, {"DriverCamera", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, - {"DrivingPersonalities", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"DuckAmigoCalibrationParams", PERSISTENT}, {"DuckAmigoDrives", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"DuckAmigoLiveTorqueParameters", PERSISTENT}, @@ -334,6 +337,7 @@ std::unordered_map keys = { {"FrogPilotDrives", PERSISTENT | FROGPILOT_TRACKING}, {"FrogPilotKilometers", PERSISTENT | FROGPILOT_TRACKING}, {"FrogPilotMinutes", PERSISTENT | FROGPILOT_TRACKING}, + {"FrogPilotToggles", PERSISTENT}, {"FrogPilotTogglesUpdated", PERSISTENT}, {"FrogsGoMoo", PERSISTENT}, {"FrogsGoMoosTweak", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VEHICLES}, @@ -353,8 +357,6 @@ std::unordered_map keys = { {"HideMapIcon", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, {"HideMaxSpeed", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, {"HideSpeed", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, - {"HideSpeedUI", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, - {"HideUIElements", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, {"HolidayThemes", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, {"HumanAcceleration", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"HumanFollowing", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, @@ -397,16 +399,15 @@ std::unordered_map keys = { {"MinimumLaneChangeSpeed", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"Model", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"ModelDownloadProgress", PERSISTENT}, - {"ModelManagement", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"ModelName", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"ModelRandomizer", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"ModelsDownloaded", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, - {"ModelSelector", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"ModelToDownload", PERSISTENT}, {"ModelUI", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, {"MTSCCurvatureCheck", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"MTSCEnabled", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"NavigationModels", PERSISTENT}, + {"NavigationUI", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, {"NextMapSpeedLimit", PERSISTENT}, {"NewLongAPI", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VEHICLES}, {"NewLongAPIGM", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VEHICLES}, @@ -434,6 +435,7 @@ std::unordered_map keys = { {"OneLaneChange", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"OnroadDistanceButton", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"OnroadDistanceButtonPressed", PERSISTENT}, + {"openpilotMinutes", PERSISTENT}, {"OSMDownloadBounds", PERSISTENT}, {"OSMDownloadLocations", PERSISTENT}, {"OSMDownloadProgress", CLEAR_ON_MANAGER_START}, @@ -493,7 +495,6 @@ std::unordered_map keys = { {"ShowIP", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, {"ShowMemoryUsage", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, {"ShowSLCOffset", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, - {"ShowSLCOffsetUI", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"ShowSteering", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, {"ShowStoppingPoint", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, {"ShowStoppingPointMetrics", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, @@ -503,6 +504,7 @@ std::unordered_map keys = { {"SidebarMetrics", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, {"SignalMetrics", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, {"SignalToDownload", PERSISTENT}, + {"SLCConfirmation", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"SLCConfirmationHigher", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"SLCConfirmationLower", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"SLCConfirmed", PERSISTENT}, @@ -541,6 +543,7 @@ std::unordered_map keys = { {"TacoTune", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"TetheringEnabled", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_OTHER}, {"ThemeDownloadProgress", PERSISTENT}, + {"ThemeUpdated", PERSISTENT}, {"TombRaiderCalibrationParams", PERSISTENT}, {"TombRaiderDrives", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"TombRaiderLiveTorqueParameters", PERSISTENT}, @@ -564,7 +567,6 @@ std::unordered_map keys = { {"UseSI", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, {"UseStockColors", CLEAR_ON_MANAGER_START}, {"UseVienna", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, - {"VelocityModels", PERSISTENT}, {"VisionTurnControl", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_CONTROLS}, {"VoltSNG", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VEHICLES}, {"WarningImmediateVolume", PERSISTENT | FROGPILOT_STORAGE | FROGPILOT_VISUALS}, diff --git a/selfdrive/car/card.py b/selfdrive/car/card.py index 863c1c39..1369007e 100755 --- a/selfdrive/car/card.py +++ b/selfdrive/car/card.py @@ -16,7 +16,8 @@ from openpilot.selfdrive.car.car_helpers import get_car, get_one_can from openpilot.selfdrive.car.interfaces import CarInterfaceBase from openpilot.selfdrive.controls.lib.events import Events -from openpilot.selfdrive.frogpilot.frogpilot_variables import FrogPilotVariables +from openpilot.selfdrive.frogpilot.frogpilot_utilities import update_frogpilot_toggles +from openpilot.selfdrive.frogpilot.frogpilot_variables import get_frogpilot_toggles REPLAY = "REPLAY" in os.environ @@ -28,7 +29,7 @@ class Car: def __init__(self, CI=None): self.can_sock = messaging.sub_sock('can', timeout=20) - self.sm = messaging.SubMaster(['pandaStates', 'carControl', 'onroadEvents']) + self.sm = messaging.SubMaster(['pandaStates', 'carControl', 'onroadEvents', 'frogpilotPlan']) self.pm = messaging.PubMaster(['sendcan', 'carState', 'carParams', 'carOutput', 'frogpilotCarState']) self.can_rcv_cum_timeout_counter = 0 @@ -74,10 +75,7 @@ class Car: self.rk = Ratekeeper(100, print_delay_threshold=None) # FrogPilot variables - self.frogpilot_toggles = FrogPilotVariables.toggles - FrogPilotVariables.update_frogpilot_params() - - self.update_toggles = False + self.frogpilot_toggles = get_frogpilot_toggles(True) # set alternative experiences from parameters self.disengage_on_accelerator = self.params.get_bool("DisengageOnAccelerator") @@ -97,6 +95,8 @@ class Car: self.params.put_nonblocking("CarParamsCache", cp_bytes) self.params.put_nonblocking("CarParamsPersistent", cp_bytes) + update_frogpilot_toggles() + def state_update(self) -> car.CarState: """carState update loop, driven by can""" @@ -199,11 +199,8 @@ class Car: self.rk.monitor_time() # Update FrogPilot parameters - if FrogPilotVariables.toggles_updated: - self.update_toggles = True - elif self.update_toggles: - FrogPilotVariables.update_frogpilot_params() - self.update_toggles = False + if self.sm['frogpilotPlan'].togglesUpdated: + self.frogpilot_toggles = get_frogpilot_toggles() def main(): config_realtime_process(4, Priority.CTRL_HIGH) diff --git a/selfdrive/car/ford/carcontroller.py b/selfdrive/car/ford/carcontroller.py index 4103e5f4..fc0dd012 100644 --- a/selfdrive/car/ford/carcontroller.py +++ b/selfdrive/car/ford/carcontroller.py @@ -97,9 +97,9 @@ class CarController(CarControllerBase): if self.CP.openpilotLongitudinalControl and (self.frame % CarControllerParams.ACC_CONTROL_STEP) == 0: # Both gas and accel are in m/s^2, accel is used solely for braking if frogpilot_toggles.sport_plus: - accel = clip(actuators.accel, CarControllerParams.ACCEL_MIN, min(frogpilot_toggles.max_desired_accel, get_max_allowed_accel(CS.out.vEgo))) + accel = clip(actuators.accel, CarControllerParams.ACCEL_MIN, min(frogpilot_toggles.max_desired_acceleration, get_max_allowed_accel(CS.out.vEgo))) else: - accel = clip(actuators.accel, CarControllerParams.ACCEL_MIN, min(frogpilot_toggles.max_desired_accel, CarControllerParams.ACCEL_MAX)) + accel = clip(actuators.accel, CarControllerParams.ACCEL_MIN, min(frogpilot_toggles.max_desired_acceleration, CarControllerParams.ACCEL_MAX)) gas = accel if not CC.longActive or gas < CarControllerParams.MIN_GAS: gas = CarControllerParams.INACTIVE_GAS diff --git a/selfdrive/car/honda/carcontroller.py b/selfdrive/car/honda/carcontroller.py index 153a6784..9dd120ec 100644 --- a/selfdrive/car/honda/carcontroller.py +++ b/selfdrive/car/honda/carcontroller.py @@ -219,9 +219,9 @@ class CarController(CarControllerBase): if self.CP.carFingerprint in HONDA_BOSCH: if frogpilot_toggles.sport_plus: - self.accel = clip(accel, self.params.BOSCH_ACCEL_MIN, min(frogpilot_toggles.max_desired_accel, get_max_allowed_accel(CS.out.vEgo))) + self.accel = clip(accel, self.params.BOSCH_ACCEL_MIN, min(frogpilot_toggles.max_desired_acceleration, get_max_allowed_accel(CS.out.vEgo))) else: - self.accel = clip(accel, self.params.BOSCH_ACCEL_MIN, min(frogpilot_toggles.max_desired_accel, self.params.BOSCH_ACCEL_MAX)) + self.accel = clip(accel, self.params.BOSCH_ACCEL_MIN, min(frogpilot_toggles.max_desired_acceleration, self.params.BOSCH_ACCEL_MAX)) self.gas = interp(accel, self.params.BOSCH_GAS_LOOKUP_BP, self.params.BOSCH_GAS_LOOKUP_V) stopping = actuators.longControlState == LongCtrlState.stopping diff --git a/selfdrive/car/hyundai/carcontroller.py b/selfdrive/car/hyundai/carcontroller.py index 92c0f5e4..ff037c11 100644 --- a/selfdrive/car/hyundai/carcontroller.py +++ b/selfdrive/car/hyundai/carcontroller.py @@ -82,9 +82,9 @@ class CarController(CarControllerBase): # accel + longitudinal if frogpilot_toggles.sport_plus: - accel = clip(actuators.accel, CarControllerParams.ACCEL_MIN, min(frogpilot_toggles.max_desired_accel, get_max_allowed_accel(CS.out.vEgo))) + accel = clip(actuators.accel, CarControllerParams.ACCEL_MIN, min(frogpilot_toggles.max_desired_acceleration, get_max_allowed_accel(CS.out.vEgo))) else: - accel = clip(actuators.accel, CarControllerParams.ACCEL_MIN, min(frogpilot_toggles.max_desired_accel, CarControllerParams.ACCEL_MAX)) + accel = clip(actuators.accel, CarControllerParams.ACCEL_MIN, min(frogpilot_toggles.max_desired_acceleration, CarControllerParams.ACCEL_MAX)) stopping = actuators.longControlState == LongCtrlState.stopping set_speed_in_units = hud_control.setSpeed * (CV.MS_TO_KPH if CS.is_metric else CV.MS_TO_MPH) diff --git a/selfdrive/car/torque_data/lat_models/CHEVROLET_BOLT_EUV.json b/selfdrive/car/torque_data/lat_models/CHEVROLET_BOLT_EUV.json new file mode 100644 index 00000000..f228dcfa --- /dev/null +++ b/selfdrive/car/torque_data/lat_models/CHEVROLET_BOLT_EUV.json @@ -0,0 +1 @@ +{"input_std":[[9.281861],[1.8477924],[0.7977224],[0.047467366],[1.7969038],[1.8168812],[1.8351218],[1.785757],[1.7335743],[1.6658221],[1.5893887],[0.047346078],[0.0473731],[0.047383286],[0.047291175],[0.047300573],[0.04712479],[0.046799928]],"model_test_loss":0.027355343103408813,"input_size":18,"current_date_and_time":"2023-08-05_05-11-44","input_mean":[[21.655252],[-0.07694559],[-0.006081294],[-0.007598456],[-0.07309746],[-0.075890236],[-0.07804942],[-0.076106496],[-0.07184982],[-0.06528668],[-0.060404416],[-0.0077262702],[-0.0077046235],[-0.0076850485],[-0.007687444],[-0.007708868],[-0.0077959923],[-0.008017422]],"input_vars":["v_ego","lateral_accel","lateral_jerk","roll","lateral_accel_m03","lateral_accel_m02","lateral_accel_m01","lateral_accel_p03","lateral_accel_p06","lateral_accel_p10","lateral_accel_p15","roll_m03","roll_m02","roll_m01","roll_p03","roll_p06","roll_p10","roll_p15"],"output_size":1,"layers":[{"dense_1_b":[[-0.35776415],[-0.126288],[0.007988413],[0.03850029],[-0.056796823],[0.0072075897],[0.17376427]],"dense_1_W":[[0.010538558,6.7293744,-0.007391298,-1.035045,-0.47446147,1.0940393,0.08225446,-0.5795131,0.573115,1.82923,-0.16999252,0.8818023,0.03560901,-0.9470653,-1.042151,1.1532398,1.9009485,-1.2265956],[0.009010456,-1.3618345,0.039026346,0.22943486,-0.6669799,-0.768271,-0.16828564,-0.13406865,0.19760236,-0.18953702,-0.019137766,0.1468623,0.26367718,0.4732375,0.73679143,0.62450147,0.30198866,-0.93340015],[-0.044318866,2.2138615,9.620889,-0.66480356,-0.06849887,-0.038568456,-0.30580127,-0.088089585,0.31187677,0.5968372,-1.1462088,0.13234706,0.29166338,-0.69978577,-0.01790655,-0.097928315,-0.56950736,0.7560642],[1.3758256,0.8700429,-0.24295154,0.20832618,-0.7735097,1.0379355,-0.60753095,-0.5457418,-1.0892137,-0.6708325,0.24982774,0.09251328,0.08596103,-0.58034134,-0.3046114,-0.19754426,0.006461508,0.5989185],[0.06314328,-2.492993,-0.28200585,0.49902886,0.8513198,-0.5704965,1.0960953,-0.08426956,-0.76074624,0.10669376,0.02775254,-0.42194095,-0.34657434,-0.10863868,0.17019278,0.0963825,-0.10169116,0.21243806],[0.007984091,-1.9276509,-0.0013926353,0.04057924,1.4438432,1.3440262,-2.506722,1.700801,0.72410774,0.13471895,-0.18753268,0.7303607,0.018133093,-0.71643597,0.07050904,-0.30161944,0.085108586,0.061202843],[0.9413167,-0.9954305,-0.19510143,-0.4711845,-0.12398665,-0.45175523,1.0616771,0.28550953,-0.55543137,-0.21576759,-0.2364377,-0.012782618,-0.050565187,0.257694,-0.20975965,0.00022543047,-0.08760746,0.4983852]],"activation":"σ"},{"dense_2_W":[[-0.71804935,0.017023304,-0.099854074,-0.3262651,-0.402829,-0.12073083,0.13537839],[-0.44002575,-0.1071093,-0.58886194,-0.17319413,-0.21134079,0.23135148,0.0006880979],[-0.55711204,-0.8693639,-0.6443761,-0.7382846,0.18980889,-0.6082511,-0.63103676],[0.11338112,-0.5327033,0.2856197,0.32239884,-0.72682667,0.5302305,-0.45094746],[-0.35197002,-0.14440043,-0.025249843,-0.48697743,0.3340018,-0.25992322,0.0050561456],[0.34757507,0.15670523,-0.14263277,0.50704384,-0.020171141,0.6408679,-0.3074123],[0.40258837,-0.59363264,0.35948923,-0.060853776,-0.0072541097,0.89743376,-0.49789146],[-0.63476,0.29580453,0.1689314,-0.5061521,0.24901053,-0.23218995,0.57968193],[-0.66173035,0.50861925,-0.5845035,-0.6602214,0.8341883,-0.31437424,0.8046359],[0.038493533,0.15464582,-0.04848341,-0.57820857,-0.25891733,-0.47527292,0.21441916],[-0.15464531,-0.07454202,-0.8215851,-0.12614948,-0.5924209,0.00017916794,0.24154592],[0.6091424,-0.112086505,0.1144111,-0.31035227,-0.9237534,0.041003596,-0.3542808],[0.2989792,-0.23780549,0.116059326,-0.6056522,0.5499526,-0.9001413,0.5200723]],"activation":"σ","dense_2_b":[[-0.2638964],[-0.24607328],[-0.15493082],[-0.0071187904],[-0.23515384],[-0.09098133],[-0.034066215],[0.03609036],[-0.03842933],[-0.042302527],[-0.2439947],[-0.16342077],[-0.01030317]]},{"dense_3_W":[[0.45771673,-0.2084603,0.3570187,0.35835707,0.13684571,-0.582958,0.29889587,0.43543494,0.11841301,-0.26185623,-0.4988437,0.5752996,-0.28057483],[-0.19594137,0.050280698,-0.29057446,-0.2829161,-0.16987291,-0.21278952,-0.59946907,0.21295123,0.7040468,0.53549695,-0.52553934,-0.19560973,0.6233473],[-0.19091003,0.08669418,-0.5792192,0.57799137,-0.36263424,0.6037143,0.27898273,-0.30951327,-0.3572644,0.46720102,-0.5403428,0.32415462,-0.60570025]],"activation":"identity","dense_3_b":[[-0.0047377176],[0.023170695],[-0.021546118]]},{"dense_4_W":[[-0.12453941,-1.006034,0.96776205]],"dense_4_b":[[-0.02351544]],"activation":"identity"}]} \ No newline at end of file diff --git a/selfdrive/car/toyota/carcontroller.py b/selfdrive/car/toyota/carcontroller.py index 032860e6..f1e1728a 100644 --- a/selfdrive/car/toyota/carcontroller.py +++ b/selfdrive/car/toyota/carcontroller.py @@ -54,7 +54,7 @@ class CarController(CarControllerBase): self.distance_button = 0 self.pcm_accel_compensation = 0.0 - self.permit_braking = 0.0 + self.permit_braking = True self.packer = CANPacker(dbc_name) self.accel = 0 @@ -141,10 +141,13 @@ class CarController(CarControllerBase): 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 - # TODO: sometimes when switching from brake to gas quickly, CLUTCH->ACCEL_NET shows a slow unwind. make it go to 0 immediately if (self.CP.flags & ToyotaFlags.RAISED_ACCEL_LIMIT or self.CP.flags & ToyotaFlags.NEW_TOYOTA_TUNE) and CC.longActive and not CS.out.cruiseState.standstill: # calculate amount of acceleration PCM should apply to reach target, given pitch - accel_due_to_pitch = math.sin(CS.slope_angle) * ACCELERATION_DUE_TO_GRAVITY + 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 @@ -171,9 +174,9 @@ class CarController(CarControllerBase): 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_accel, get_max_allowed_accel(CS.out.vEgo))) + 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_accel, self.params.ACCEL_MAX)) + pcm_accel_cmd = clip(pcm_accel_cmd, self.params.ACCEL_MIN, min(frogpilot_toggles.max_desired_acceleration, self.params.ACCEL_MAX)) # 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): diff --git a/selfdrive/car/toyota/carstate.py b/selfdrive/car/toyota/carstate.py index 75130c2f..6d162c84 100644 --- a/selfdrive/car/toyota/carstate.py +++ b/selfdrive/car/toyota/carstate.py @@ -64,7 +64,6 @@ class CarState(CarStateBase): self.acc_type = 1 self.lkas_hud = {} self.pcm_accel_net = 0.0 - self.slope_angle = 0.0 # FrogPilot variables self.latActive_previous = False @@ -273,7 +272,6 @@ class CarState(CarStateBase): ("BODY_CONTROL_STATE", 3), ("BODY_CONTROL_STATE_2", 2), ("ESP_CONTROL", 3), - ("VSC1S07", 20), ("EPS_STATUS", 25), ("BRAKE_MODULE", 40), ("WHEEL_SPEEDS", 80), diff --git a/selfdrive/car/toyota/fingerprints.py b/selfdrive/car/toyota/fingerprints.py index 292be96f..e3a918da 100644 --- a/selfdrive/car/toyota/fingerprints.py +++ b/selfdrive/car/toyota/fingerprints.py @@ -127,6 +127,7 @@ FW_VERSIONS = { b'\x018966333X0000\x00\x00\x00\x00', b'\x018966333X4000\x00\x00\x00\x00', b'\x01896633T16000\x00\x00\x00\x00', + b'\x01896633TA2000\x00\x00\x00\x00', b'\x028966306B2100\x00\x00\x00\x00897CF3302002\x00\x00\x00\x00', b'\x028966306B2300\x00\x00\x00\x00897CF3302002\x00\x00\x00\x00', b'\x028966306B2500\x00\x00\x00\x00897CF3302002\x00\x00\x00\x00', @@ -321,6 +322,7 @@ FW_VERSIONS = { b'F1526F4073\x00\x00\x00\x00\x00\x00', b'F1526F4121\x00\x00\x00\x00\x00\x00', b'F1526F4122\x00\x00\x00\x00\x00\x00', + b'F1526F4190\x00\x00\x00\x00\x00\x00', ], (Ecu.eps, 0x7a1, None): [ b'8965B10011\x00\x00\x00\x00\x00\x00', @@ -337,6 +339,7 @@ FW_VERSIONS = { b'\x033F401200\x00\x00\x00\x00\x00\x00\x00\x00A0202000\x00\x00\x00\x00\x00\x00\x00\x00895231203202\x00\x00\x00\x00', b'\x033F424000\x00\x00\x00\x00\x00\x00\x00\x00A0202000\x00\x00\x00\x00\x00\x00\x00\x00895231203202\x00\x00\x00\x00', b'\x033F424000\x00\x00\x00\x00\x00\x00\x00\x00A0202000\x00\x00\x00\x00\x00\x00\x00\x00895231203302\x00\x00\x00\x00', + b'\x033F435000\x00\x00\x00\x00\x00\x00\x00\x00A0202000\x00\x00\x00\x00\x00\x00\x00\x00895231203302\x00\x00\x00\x00', ], (Ecu.fwdRadar, 0x750, 0xf): [ b'8821F0W01000 ', @@ -431,6 +434,7 @@ FW_VERSIONS = { CAR.TOYOTA_COROLLA_TSS2: { (Ecu.engine, 0x700, None): [ b'\x01896630A22000\x00\x00\x00\x00', + b'\x01896630A42000\x00\x00\x00\x00', b'\x01896630ZG2000\x00\x00\x00\x00', b'\x01896630ZG5000\x00\x00\x00\x00', b'\x01896630ZG5100\x00\x00\x00\x00', @@ -525,6 +529,7 @@ FW_VERSIONS = { b'8965B16011\x00\x00\x00\x00\x00\x00', b'8965B16101\x00\x00\x00\x00\x00\x00', b'8965B16170\x00\x00\x00\x00\x00\x00', + b'8965B16260\x00\x00\x00\x00\x00\x00', b'8965B76012\x00\x00\x00\x00\x00\x00', b'8965B76050\x00\x00\x00\x00\x00\x00', b'8965B76091\x00\x00\x00\x00\x00\x00', @@ -539,6 +544,7 @@ FW_VERSIONS = { b'\x01F15260A010\x00\x00\x00\x00\x00\x00', b'\x01F15260A050\x00\x00\x00\x00\x00\x00', b'\x01F15260A070\x00\x00\x00\x00\x00\x00', + b'\x01F15260A33000\x00\x00\x00\x00', b'\x01F152612641\x00\x00\x00\x00\x00\x00', b'\x01F152612651\x00\x00\x00\x00\x00\x00', b'\x01F152612862\x00\x00\x00\x00\x00\x00', @@ -598,6 +604,7 @@ FW_VERSIONS = { b'\x028646F1601100\x00\x00\x00\x008646G2601400\x00\x00\x00\x00', b'\x028646F1601200\x00\x00\x00\x008646G2601400\x00\x00\x00\x00', b'\x028646F1601300\x00\x00\x00\x008646G2601400\x00\x00\x00\x00', + b'\x028646F1601500\x00\x00\x00\x008646G2601400\x00\x00\x00\x00', b'\x028646F4203400\x00\x00\x00\x008646G2601200\x00\x00\x00\x00', b'\x028646F76020C0\x00\x00\x00\x008646G26011A0\x00\x00\x00\x00', b'\x028646F7603100\x00\x00\x00\x008646G2601200\x00\x00\x00\x00', @@ -1005,6 +1012,33 @@ FW_VERSIONS = { b'8646F4204000\x00\x00\x00\x00', ], }, + CAR.TOYOTA_RAV4_PRIME: { + (Ecu.engine, 0x700, None): [ + b'\x018966342S7000\x00\x00\x00\x00', + b'\x018966342Z1000\x00\x00\x00\x00', + b'\x018966342Z1100\x00\x00\x00\x00', + b'\x01896634AJ7000\x00\x00\x00\x00', + ], + (Ecu.abs, 0x7b0, None): [ + b'\x01F15264228300\x00\x00\x00\x00', + b'\x01F15264228500\x00\x00\x00\x00', + b'\x01F15264284100\x00\x00\x00\x00', + b'\x01F152642F3000\x00\x00\x00\x00', + ], + (Ecu.eps, 0x7a1, None): [ + b'\x018965B4209000\x00\x00\x00\x00', + b'\x018965B4233100\x00\x00\x00\x00', + ], + (Ecu.fwdRadar, 0x750, 0xf): [ + b'\x018821F3301400\x00\x00\x00\x00', + b'\x018821F6201400\x00\x00\x00\x00', + ], + (Ecu.fwdCamera, 0x750, 0x6d): [ + b'\x028646F4205200\x00\x00\x00\x008646G4202000\x00\x00\x00\x00', + b'\x028646F4205300\x00\x00\x00\x008646G4202100\x00\x00\x00\x00', + b'\x028646F4210100\x00\x00\x00\x008646G3305000\x00\x00\x00\x00', + ], + }, CAR.TOYOTA_RAV4_TSS2: { (Ecu.engine, 0x700, None): [ b'\x01896630R58000\x00\x00\x00\x00', @@ -1226,6 +1260,28 @@ FW_VERSIONS = { b'8646F0801100\x00\x00\x00\x00', ], }, + CAR.TOYOTA_SIENNA_4TH_GEN: { + (Ecu.engine, 0x700, None): [ + b'\x01896630841000\x00\x00\x00\x00', + b'\x01896630857101\x00\x00\x00\x00', + b'\x01896630864000\x00\x00\x00\x00', + ], + (Ecu.abs, 0x7b0, None): [ + b'\x01F15260815100\x00\x00\x00\x00', + b'\x01F15260815300\x00\x00\x00\x00', + ], + (Ecu.eps, 0x7a1, None): [ + b'\x018965B4509100\x00\x00\x00\x00', + ], + (Ecu.fwdRadar, 0x750, 0xf): [ + b'\x018821F3301500\x00\x00\x00\x00', + ], + (Ecu.fwdCamera, 0x750, 0x6d): [ + b'\x028646F0802200\x00\x00\x00\x008646G4202100\x00\x00\x00\x00', + b'\x028646F0802300\x00\x00\x00\x008646G4202100\x00\x00\x00\x00', + b'\x028646F0802400\x00\x00\x00\x008646G4202100\x00\x00\x00\x00', + ], + }, CAR.LEXUS_CTH: { (Ecu.dsu, 0x791, None): [ b'881517601100\x00\x00\x00\x00', @@ -1644,6 +1700,7 @@ FW_VERSIONS = { b'8965B47070\x00\x00\x00\x00\x00\x00', ], (Ecu.fwdRadar, 0x750, 0xf): [ + b'\x018821F3301300\x00\x00\x00\x00', b'\x018821F3301400\x00\x00\x00\x00', ], (Ecu.fwdCamera, 0x750, 0x6d): [ diff --git a/selfdrive/car/toyota/interface.py b/selfdrive/car/toyota/interface.py index 21c86700..63e55166 100644 --- a/selfdrive/car/toyota/interface.py +++ b/selfdrive/car/toyota/interface.py @@ -156,9 +156,6 @@ class CarInterface(CarInterfaceBase): tune.kiV = [3.6, 2.4, 1.5] if params.get_bool("FrogsGoMoosTweak"): - if ret.flags & ToyotaFlags.NEW_TOYOTA_TUNE or ret.flags & ToyotaFlags.RAISED_ACCEL_LIMIT: - tune.kiV = [0.3] - ret.stoppingDecelRate = 0.1 # reach stopping target smoothly ret.vEgoStopping = 0.15 ret.vEgoStarting = 0.15 diff --git a/selfdrive/car/toyota/values.py b/selfdrive/car/toyota/values.py index 96bae142..7caa0efb 100644 --- a/selfdrive/car/toyota/values.py +++ b/selfdrive/car/toyota/values.py @@ -47,9 +47,7 @@ class CarControllerParams: class ToyotaFlags(IntFlag): # Detected flags HYBRID = 1 - SMART_DSU = 2 DISABLE_RADAR = 4 - RADAR_CAN_FILTER = 2048 # Static flags TSS2 = 8 @@ -59,14 +57,17 @@ class ToyotaFlags(IntFlag): # these cars use the Lane Tracing Assist (LTA) message for lateral control ANGLE_CONTROL = 128 NO_STOP_TIMER = 256 - # these cars are speculated to allow stop and go when the DSU is unplugged or disabled with sDSU + # these cars are speculated to allow stop and go when the DSU is unplugged SNG_WITHOUT_DSU = 512 # these cars can utilize 2.0 m/s^2 RAISED_ACCEL_LIMIT = 1024 + SECOC = 2048 # FrogPilot Toyota flags NEW_TOYOTA_TUNE = 4096 - ZSS = 8192 + RADAR_CAN_FILTER = 8192 + SMART_DSU = 16384 + ZSS = 32768 class Footnote(Enum): CAMRY = CarFootnote( @@ -254,6 +255,14 @@ class CAR(Platforms): TOYOTA_RAV4_TSS2.specs, flags=ToyotaFlags.RADAR_ACC | ToyotaFlags.ANGLE_CONTROL, ) + TOYOTA_RAV4_PRIME = PlatformConfig( + # TODO: Enable this docs entry when it can be suppressed from openpilot CARS.md + # [ToyotaCarDocs("Toyota RAV4 Prime 2021-23", min_enable_speed=MIN_ACC_SPEED)], + [], + CarSpecs(mass=4372. * CV.LB_TO_KG, wheelbase=2.68, steerRatio=16.88, tireStiffnessFactor=0.5533), + dbc_dict('toyota_rav4_prime_generated', 'toyota_tss2_adas'), + flags=ToyotaFlags.TSS2 | ToyotaFlags.NO_STOP_TIMER | ToyotaFlags.NO_DSU | ToyotaFlags.SECOC, + ) TOYOTA_MIRAI = ToyotaTSS2PlatformConfig( # TSS 2.5 [ToyotaCarDocs("Toyota Mirai 2021")], CarSpecs(mass=4300. * CV.LB_TO_KG, wheelbase=2.91, steerRatio=14.8, tireStiffnessFactor=0.8), @@ -264,6 +273,14 @@ class CAR(Platforms): dbc_dict('toyota_tnga_k_pt_generated', 'toyota_adas'), flags=ToyotaFlags.NO_STOP_TIMER, ) + TOYOTA_SIENNA_4TH_GEN = PlatformConfig( + # TODO: Enable this docs entry when it can be suppressed from openpilot CARS.md + # [ToyotaCarDocs("Toyota Sienna 2021-23", min_enable_speed=MIN_ACC_SPEED)], + [], + CarSpecs(mass=4625. * CV.LB_TO_KG, wheelbase=3.06, steerRatio=17.8, tireStiffnessFactor=0.444), + dbc_dict('toyota_rav4_prime_generated', 'toyota_tss2_adas'), + flags=ToyotaFlags.TSS2 | ToyotaFlags.NO_STOP_TIMER | ToyotaFlags.NO_DSU | ToyotaFlags.SECOC, + ) # Lexus LEXUS_CTH = PlatformConfig( @@ -547,6 +564,7 @@ FW_QUERY_CONFIG = FwQueryConfig( # Hybrid control computer can be on 0x7e2 (KWP) or 0x7d2 (UDS) depending on platform (Ecu.hybrid, 0x7e2, None), # Hybrid Control Assembly & Computer + (Ecu.hybrid, 0x7d2, None), # Hybrid Control Assembly & Computer (Ecu.srs, 0x780, None), # SRS Airbag # Transmission is combined with engine on some platforms, such as TSS-P RAV4 (Ecu.transmission, 0x701, None), @@ -577,6 +595,8 @@ RADAR_ACC_CAR = CAR.with_flags(ToyotaFlags.RADAR_ACC) ANGLE_CONTROL_CAR = CAR.with_flags(ToyotaFlags.ANGLE_CONTROL) +SECOC_CAR = CAR.with_flags(ToyotaFlags.SECOC) + # no resume button press required NO_STOP_TIMER_CAR = CAR.with_flags(ToyotaFlags.NO_STOP_TIMER) diff --git a/selfdrive/car/volkswagen/carcontroller.py b/selfdrive/car/volkswagen/carcontroller.py index e7e7ee1f..802a0ce4 100644 --- a/selfdrive/car/volkswagen/carcontroller.py +++ b/selfdrive/car/volkswagen/carcontroller.py @@ -83,9 +83,9 @@ class CarController(CarControllerBase): if self.frame % self.CCP.ACC_CONTROL_STEP == 0 and self.CP.openpilotLongitudinalControl: acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.longActive) if frogpilot_toggles.sport_plus: - accel = clip(actuators.accel, self.CCP.ACCEL_MIN, min(frogpilot_toggles.max_desired_accel, get_max_allowed_accel(CS.out.vEgo))) if CC.longActive else 0 + accel = clip(actuators.accel, self.CCP.ACCEL_MIN, min(frogpilot_toggles.max_desired_acceleration, get_max_allowed_accel(CS.out.vEgo))) if CC.longActive else 0 else: - accel = clip(actuators.accel, self.CCP.ACCEL_MIN, min(frogpilot_toggles.max_desired_accel, self.CCP.ACCEL_MAX)) if CC.longActive else 0 + accel = clip(actuators.accel, self.CCP.ACCEL_MIN, min(frogpilot_toggles.max_desired_acceleration, self.CCP.ACCEL_MAX)) if CC.longActive else 0 stopping = actuators.longControlState == LongCtrlState.stopping starting = actuators.longControlState == LongCtrlState.pid and (CS.esp_hold_confirmation or CS.out.vEgo < self.CP.vEgoStopping) can_sends.extend(self.CCS.create_acc_accel_control(self.packer_pt, CANBUS.pt, CS.acc_type, CC.longActive, accel, diff --git a/selfdrive/classic_modeld/classic_modeld.py b/selfdrive/classic_modeld/classic_modeld.py index 06c7cf81..c285acd6 100755 --- a/selfdrive/classic_modeld/classic_modeld.py +++ b/selfdrive/classic_modeld/classic_modeld.py @@ -27,7 +27,7 @@ from openpilot.selfdrive.classic_modeld.models.commonmodel_pyx import ModelFrame from openpilot.selfdrive.frogpilot.assets.model_manager import DEFAULT_MODEL from openpilot.selfdrive.frogpilot.frogpilot_functions import MODELS_PATH -from openpilot.selfdrive.frogpilot.frogpilot_variables import FrogPilotVariables +from openpilot.selfdrive.frogpilot.frogpilot_variables import get_frogpilot_toggles PROCESS_NAME = "selfdrive.classic_modeld.modeld" SEND_RAW_PRED = os.getenv('SEND_RAW_PRED') @@ -136,14 +136,11 @@ class ModelState: def main(demo=False): # FrogPilot variables - frogpilot_toggles = FrogPilotVariables.toggles - FrogPilotVariables.update_frogpilot_params() + frogpilot_toggles = get_frogpilot_toggles(True) enable_navigation = not frogpilot_toggles.navigationless_model radarless = frogpilot_toggles.radarless_model - update_toggles = False - cloudlog.warning("classic_modeld init") sentry.set_tag("daemon", PROCESS_NAME) @@ -347,11 +344,8 @@ def main(demo=False): last_vipc_frame_id = meta_main.frame_id # Update FrogPilot parameters - if FrogPilotVariables.toggles_updated: - update_toggles = True - elif update_toggles: - FrogPilotVariables.update_frogpilot_params() - update_toggles = False + if sm['frogpilotPlan'].togglesUpdated: + frogpilot_toggles = get_frogpilot_toggles() if __name__ == "__main__": try: diff --git a/selfdrive/controls/controlsd.py b/selfdrive/controls/controlsd.py index 4ce4dfcb..552bc90a 100644 --- a/selfdrive/controls/controlsd.py +++ b/selfdrive/controls/controlsd.py @@ -32,7 +32,7 @@ from openpilot.selfdrive.controls.lib.vehicle_model import VehicleModel from openpilot.system.hardware import HARDWARE from openpilot.selfdrive.frogpilot.controls.lib.frogpilot_acceleration import get_max_allowed_accel -from openpilot.selfdrive.frogpilot.frogpilot_variables import NON_DRIVING_GEARS, FrogPilotVariables +from openpilot.selfdrive.frogpilot.frogpilot_variables import CRUISING_SPEED, NON_DRIVING_GEARS, get_frogpilot_toggles SOFT_DISABLE_TIME = 3 # seconds LDW_MIN_SPEED = 31 * CV.MPH_TO_MS @@ -99,7 +99,7 @@ class Controls: if REPLAY: # no vipc in replay will make them ignored anyways ignore += ['roadCameraState', 'wideRoadCameraState'] - if FrogPilotVariables.toggles.radarless_model: + if get_frogpilot_toggles(True).radarless_model: ignore += ['radarState'] self.sm = messaging.SubMaster(['deviceState', 'pandaStates', 'peripheralState', 'modelV2', 'liveCalibration', 'carOutput', 'driverMonitoringState', 'longitudinalPlan', 'liveLocationKalman', @@ -164,7 +164,7 @@ class Controls: self.can_log_mono_time = 0 - self.startup_event = get_startup_event(car_recognized, not self.CP.passive, len(self.CP.carFw) > 0, self.block_user, FrogPilotVariables.toggles) + self.startup_event = get_startup_event(car_recognized, not self.CP.passive, len(self.CP.carFw) > 0, self.block_user, get_frogpilot_toggles(True)) if not sounds_available: self.events.add(EventName.soundsUnavailable, static=True) @@ -181,8 +181,7 @@ class Controls: self.rk = Ratekeeper(100, print_delay_threshold=None) # FrogPilot variables - self.frogpilot_toggles = FrogPilotVariables.toggles - FrogPilotVariables.update_frogpilot_params() + self.frogpilot_toggles = get_frogpilot_toggles(True) self.params_memory = Params("/dev/shm/params") @@ -191,11 +190,12 @@ class Controls: self.fcw_event_triggered = False self.no_entry_alert_triggered = False self.onroad_distance_pressed = False - self.radarless_model = self.frogpilot_toggles.radarless_model self.resume_pressed = False self.resume_previously_pressed = False self.steer_saturated_event_triggered = False - self.update_toggles = False + + self.radarless_model = self.frogpilot_toggles.radarless_model + self.use_old_long = self.CP.carName == "hyundai" and not self.params.get_bool("NewLongAPI") self.use_old_long |= self.CP.carName == "gm" and not self.params.get_bool("NewLongAPIGM") @@ -626,7 +626,7 @@ class Controls: t_since_plan = (self.sm.frame - self.sm.recv_frame['longitudinalPlan']) * DT_CTRL actuators.accel = self.LoC.update_old_long(CC.longActive, CS, long_plan, pid_accel_limits, t_since_plan) else: - actuators.accel = self.LoC.update(CC.longActive, CS, long_plan.aTarget, long_plan.shouldStop, pid_accel_limits) + actuators.accel = self.LoC.update(CC.longActive, CS, long_plan.aTarget, long_plan.shouldStop or self.sm['frogpilotPlan'].forcingStopLength <= 0, pid_accel_limits) if len(long_plan.speeds): actuators.speed = long_plan.speeds[-1] @@ -673,7 +673,7 @@ class Controls: good_speed = CS.vEgo > 5 max_torque = abs(self.sm['carOutput'].actuatorsOutput.steer) > 0.99 if undershooting and turning and good_speed and max_torque: - lac_log.active and self.events.add(EventName.goatSteerSaturated if self.frogpilot_toggles.goat_scream else EventName.steerSaturated) + lac_log.active and self.events.add(EventName.goatSteerSaturated if self.frogpilot_toggles.goat_scream_alert else EventName.steerSaturated) self.steer_saturated_event_triggered = True else: self.steer_saturated_event_triggered = False @@ -730,7 +730,7 @@ class Controls: self.always_on_lateral_active &= not (CS.brakePressed and CS.vEgo < self.frogpilot_toggles.always_on_lateral_pause_speed) or CS.standstill self.always_on_lateral_active = bool(self.always_on_lateral_active) - if self.frogpilot_toggles.conditional_experimental_mode or self.frogpilot_toggles.slc_fallback_experimental: + if self.frogpilot_toggles.conditional_experimental_mode or self.frogpilot_toggles.slc_fallback_experimental_mode: self.experimental_mode = self.sm['frogpilotPlan'].experimentalMode if any(be.pressed and be.type == FrogPilotButtonType.lkas for be in CS.buttonEvents): @@ -814,7 +814,7 @@ class Controls: if self.enabled: clear_event_types.add(ET.NO_ENTRY) - alerts = self.events.create_alerts(self.current_alert_types, [self.CP, CS, self.sm, self.is_metric, self.soft_disable_timer]) + alerts = self.events.create_alerts(self.current_alert_types, [self.CP, CS, self.sm, self.is_metric, self.soft_disable_timer, self.frogpilot_toggles]) self.AM.add_many(self.sm.frame, alerts) current_alert = self.AM.process_alerts(self.sm.frame, clear_event_types) if current_alert: @@ -941,11 +941,8 @@ class Controls: time.sleep(0.1) # Update FrogPilot parameters - if FrogPilotVariables.toggles_updated: - self.update_toggles = True - elif self.update_toggles: - FrogPilotVariables.update_frogpilot_params() - self.update_toggles = False + if self.sm['frogpilotPlan'].togglesUpdated: + self.frogpilot_toggles = get_frogpilot_toggles() def controlsd_thread(self): e = threading.Event() diff --git a/selfdrive/controls/lib/desire_helper.py b/selfdrive/controls/lib/desire_helper.py index 2089bb55..0f3afa95 100644 --- a/selfdrive/controls/lib/desire_helper.py +++ b/selfdrive/controls/lib/desire_helper.py @@ -68,7 +68,7 @@ class DesireHelper: self.lane_change_state = LaneChangeState.off self.lane_change_direction = LaneChangeDirection.none self.turn_direction = TurnDirection.none - elif one_blinker and below_lane_change_speed and not carstate.standstill and frogpilot_toggles.turn_desires: + elif one_blinker and below_lane_change_speed and not carstate.standstill and frogpilot_toggles.use_turn_desires: self.lane_change_state = LaneChangeState.off self.lane_change_direction = LaneChangeDirection.none self.turn_direction = TurnDirection.turnLeft if carstate.leftBlinker else TurnDirection.turnRight diff --git a/selfdrive/controls/lib/events.py b/selfdrive/controls/lib/events.py index b0ccd98c..71461905 100755 --- a/selfdrive/controls/lib/events.py +++ b/selfdrive/controls/lib/events.py @@ -4,6 +4,7 @@ import math import os from enum import IntEnum from collections.abc import Callable +from types import SimpleNamespace from cereal import log, car import cereal.messaging as messaging @@ -212,31 +213,31 @@ AlertCallbackType = Callable[[car.CarParams, car.CarState, messaging.SubMaster, def soft_disable_alert(alert_text_2: str) -> AlertCallbackType: - def func(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int) -> Alert: + def func(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, frogpilot_toggles: SimpleNamespace) -> Alert: if soft_disable_time < int(0.5 / DT_CTRL): return ImmediateDisableAlert(alert_text_2) return SoftDisableAlert(alert_text_2) return func def user_soft_disable_alert(alert_text_2: str) -> AlertCallbackType: - def func(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int) -> Alert: + def func(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, frogpilot_toggles: SimpleNamespace) -> Alert: if soft_disable_time < int(0.5 / DT_CTRL): return ImmediateDisableAlert(alert_text_2) return UserSoftDisableAlert(alert_text_2) return func -def startup_master_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int) -> Alert: +def startup_master_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, frogpilot_toggles: SimpleNamespace) -> Alert: branch = get_short_branch() # Ensure get_short_branch is cached to avoid lags on startup if "REPLAY" in os.environ: branch = "replay" return StartupAlert("WARNING: This branch is not tested", branch, alert_status=AlertStatus.userPrompt) -def below_engage_speed_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int) -> Alert: +def below_engage_speed_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, frogpilot_toggles: SimpleNamespace) -> Alert: return NoEntryAlert(f"Drive above {get_display_speed(CP.minEnableSpeed, metric)} to engage") -def below_steer_speed_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int) -> Alert: +def below_steer_speed_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, frogpilot_toggles: SimpleNamespace) -> Alert: return Alert( f"Steer Unavailable Below {get_display_speed(CP.minSteerSpeed, metric)}", "", @@ -244,7 +245,7 @@ def below_steer_speed_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.S Priority.LOW, VisualAlert.steerRequired, AudibleAlert.prompt, 0.4) -def calibration_incomplete_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int) -> Alert: +def calibration_incomplete_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, frogpilot_toggles: SimpleNamespace) -> Alert: first_word = 'Recalibration' if sm['liveCalibration'].calStatus == log.LiveCalibrationData.Status.recalibrating else 'Calibration' return Alert( f"{first_word} in Progress: {sm['liveCalibration'].calPerc:.0f}%", @@ -253,54 +254,39 @@ def calibration_incomplete_alert(CP: car.CarParams, CS: car.CarState, sm: messag Priority.LOWEST, VisualAlert.none, AudibleAlert.none, .2) -def torque_nn_load_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int) -> Alert: - model_name = Params().get("NNFFModelName", encoding='utf-8') - if model_name == "": - return Alert( - "NNFF Torque Controller not available", - "Donate logs to Twilsonco to get your car supported!", - AlertStatus.userPrompt, AlertSize.mid, - Priority.LOW, VisualAlert.none, AudibleAlert.prompt, 10.0) - else: - return Alert( - "NNFF Torque Controller loaded", - model_name, - AlertStatus.frogpilot, AlertSize.mid, - Priority.LOW, VisualAlert.none, AudibleAlert.engage, 5.0) - # *** debug alerts *** -def out_of_space_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int) -> Alert: +def out_of_space_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, frogpilot_toggles: SimpleNamespace) -> Alert: full_perc = round(100. - sm['deviceState'].freeSpacePercent) return NormalPermanentAlert("Out of Storage", f"{full_perc}% full") -def posenet_invalid_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int) -> Alert: +def posenet_invalid_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, frogpilot_toggles: SimpleNamespace) -> Alert: mdl = sm['modelV2'].velocity.x[0] if len(sm['modelV2'].velocity.x) else math.nan err = CS.vEgo - mdl msg = f"Speed Error: {err:.1f} m/s" return NoEntryAlert(msg, alert_text_1="Posenet Speed Invalid") -def process_not_running_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int) -> Alert: +def process_not_running_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, frogpilot_toggles: SimpleNamespace) -> Alert: not_running = [p.name for p in sm['managerState'].processes if not p.running and p.shouldBeRunning] msg = ', '.join(not_running) return NoEntryAlert(msg, alert_text_1="Process Not Running") -def comm_issue_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int) -> Alert: +def comm_issue_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, frogpilot_toggles: SimpleNamespace) -> Alert: bs = [s for s in sm.data.keys() if not sm.all_checks([s, ])] msg = ', '.join(bs[:4]) # can't fit too many on one line return NoEntryAlert(msg, alert_text_1="Communication Issue Between Processes") -def camera_malfunction_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int) -> Alert: +def camera_malfunction_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, frogpilot_toggles: SimpleNamespace) -> Alert: all_cams = ('roadCameraState', 'driverCameraState', 'wideRoadCameraState') bad_cams = [s.replace('State', '') for s in all_cams if s in sm.data.keys() and not sm.all_checks([s, ])] return NormalPermanentAlert("Camera Malfunction", ', '.join(bad_cams)) -def calibration_invalid_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int) -> Alert: +def calibration_invalid_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, frogpilot_toggles: SimpleNamespace) -> Alert: rpy = sm['liveCalibration'].rpyCalib yaw = math.degrees(rpy[2] if len(rpy) == 3 else math.nan) pitch = math.degrees(rpy[1] if len(rpy) == 3 else math.nan) @@ -308,34 +294,34 @@ def calibration_invalid_alert(CP: car.CarParams, CS: car.CarState, sm: messaging return NormalPermanentAlert("Calibration Invalid", angles) -def overheat_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int) -> Alert: +def overheat_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, frogpilot_toggles: SimpleNamespace) -> Alert: cpu = max(sm['deviceState'].cpuTempC, default=0.) gpu = max(sm['deviceState'].gpuTempC, default=0.) temp = max((cpu, gpu, sm['deviceState'].memoryTempC)) return NormalPermanentAlert("System Overheated", f"{temp:.0f} °C") -def low_memory_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int) -> Alert: +def low_memory_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, frogpilot_toggles: SimpleNamespace) -> Alert: return NormalPermanentAlert("Low Memory", f"{sm['deviceState'].memoryUsagePercent}% used") -def high_cpu_usage_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int) -> Alert: +def high_cpu_usage_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, frogpilot_toggles: SimpleNamespace) -> Alert: x = max(sm['deviceState'].cpuUsagePercent, default=0.) return NormalPermanentAlert("High CPU Usage", f"{x}% used") -def modeld_lagging_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int) -> Alert: +def modeld_lagging_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, frogpilot_toggles: SimpleNamespace) -> Alert: return NormalPermanentAlert("Driving Model Lagging", f"{sm['modelV2'].frameDropPerc:.1f}% frames dropped") -def wrong_car_mode_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int) -> Alert: +def wrong_car_mode_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, frogpilot_toggles: SimpleNamespace) -> Alert: text = "Enable Adaptive Cruise to Engage" if CP.carName == "honda": text = "Enable Main Switch to Engage" return NoEntryAlert(text) -def joystick_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int) -> Alert: +def joystick_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, frogpilot_toggles: SimpleNamespace) -> Alert: axes = sm['testJoystick'].axes gb, steer = list(axes)[:2] if len(axes) else (0., 0.) vals = f"Gas: {round(gb * 100.)}%, Steer: {round(steer * 100.)}%" @@ -343,11 +329,22 @@ def joystick_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, # FrogPilot Alerts -def custom_startup_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int) -> Alert: - params = Params() - return StartupAlert(params.get("StartupMessageTop", encoding='utf-8') or "", params.get("StartupMessageBottom", encoding='utf-8') or "", alert_status=AlertStatus.frogpilot) +def custom_startup_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, frogpilot_toggles: SimpleNamespace) -> Alert: + return StartupAlert(frogpilot_toggles.startup_alert_top, frogpilot_toggles.startup_alert_bottom, alert_status=AlertStatus.frogpilot) -def holiday_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int) -> Alert: + +def forcing_stop_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, frogpilot_toggles: SimpleNamespace) -> Alert: + model_length = sm['frogpilotPlan'].forcingStopLength + model_length_msg = f"{model_length:.1f} meters" if metric else f"{model_length * CV.METER_TO_FOOT:.1f} feet" + + return Alert( + f"Forcing the car to stop in {model_length_msg}", + "Press the gas pedal or 'Resume' button to override", + AlertStatus.frogpilot, AlertSize.mid, + Priority.MID, VisualAlert.none, AudibleAlert.prompt, 1.) + + +def holiday_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, frogpilot_toggles: SimpleNamespace) -> Alert: holiday_messages = { "new_years": ("Happy New Year! 🎉", "newYearsDayAlert"), "valentines": ("Happy Valentine's Day! ❤️", "valentinesDayAlert"), @@ -362,7 +359,7 @@ def holiday_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, "christmas_week": ("Merry Christmas! 🎄", "christmasAlert") } - holiday_name = Params().get("CurrentHolidayTheme", encoding='utf-8') + holiday_name = frogpilot_toggles.current_holiday_theme message, alert_type = holiday_messages.get(holiday_name, ("", "")) return Alert( @@ -371,7 +368,8 @@ def holiday_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, AlertStatus.normal, AlertSize.small, Priority.LOWEST, VisualAlert.none, AudibleAlert.engage, 5.) -def no_lane_available_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int) -> Alert: + +def no_lane_available_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, frogpilot_toggles: SimpleNamespace) -> Alert: lane_width = sm['frogpilotPlan'].laneWidthLeft if CS.leftBlinker else sm['frogpilotPlan'].laneWidthRight lane_width_msg = f"{lane_width:.1f} meters" if metric else f"{lane_width * CV.METER_TO_FOOT:.1f} feet" @@ -381,6 +379,23 @@ def no_lane_available_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.S AlertStatus.normal, AlertSize.mid, Priority.LOWEST, VisualAlert.none, AudibleAlert.none, .2) + +def torque_nn_load_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, frogpilot_toggles: SimpleNamespace) -> Alert: + model_name = Params().get("NNFFModelName", encoding='utf-8') + if model_name == "": + return Alert( + "NNFF Torque Controller not available", + "Donate logs to Twilsonco to get your car supported!", + AlertStatus.userPrompt, AlertSize.mid, + Priority.LOW, VisualAlert.none, AudibleAlert.prompt, 10.0) + else: + return Alert( + "NNFF Torque Controller loaded", + model_name, + AlertStatus.frogpilot, AlertSize.mid, + Priority.LOW, VisualAlert.none, AudibleAlert.none, 5.0) + + EVENTS: dict[int, dict[str, Alert | AlertCallbackType]] = { # ********** events with no alerts ********** @@ -1020,11 +1035,7 @@ EVENTS: dict[int, dict[str, Alert | AlertCallbackType]] = { }, EventName.forcingStop: { - ET.WARNING: Alert( - "Forcing the car to stop", - "Press the gas pedal or 'Resume' button to override", - AlertStatus.frogpilot, AlertSize.mid, - Priority.MID, VisualAlert.none, AudibleAlert.prompt, 1.), + ET.WARNING: forcing_stop_alert, }, EventName.goatSteerSaturated: { @@ -1072,7 +1083,7 @@ EVENTS: dict[int, dict[str, Alert | AlertCallbackType]] = { "openpilot crashed", "Please post the 'Error Log' in the FrogPilot Discord!", AlertStatus.normal, AlertSize.mid, - Priority.HIGH, VisualAlert.none, AudibleAlert.none, 10.), + Priority.HIGHEST, VisualAlert.none, AudibleAlert.prompt, 10.), }, EventName.pedalInterceptorNoBrake: { @@ -1091,6 +1102,14 @@ EVENTS: dict[int, dict[str, Alert | AlertCallbackType]] = { Priority.LOW, VisualAlert.none, AudibleAlert.prompt, 3.), }, + EventName.thisIsFineSteerSaturated: { + ET.WARNING: Alert( + "This is fine", + "☕", + AlertStatus.userPrompt, AlertSize.mid, + Priority.LOW, VisualAlert.steerRequired, AudibleAlert.thisIsFine, 2.), + }, + EventName.torqueNNLoad: { ET.PERMANENT: torque_nn_load_alert, }, diff --git a/selfdrive/controls/lib/longitudinal_mpc_lib/long_mpc.py b/selfdrive/controls/lib/longitudinal_mpc_lib/long_mpc.py index b9cd1907..a1445743 100644 --- a/selfdrive/controls/lib/longitudinal_mpc_lib/long_mpc.py +++ b/selfdrive/controls/lib/longitudinal_mpc_lib/long_mpc.py @@ -326,10 +326,10 @@ class LongitudinalMpc: lead_xv = np.column_stack((x_lead_traj, v_lead_traj)) return lead_xv - def process_lead(self, lead, increased_distance=0): + def process_lead(self, lead): v_ego = self.x0[1] if lead is not None and lead.status: - x_lead = lead.dRel - increased_distance + x_lead = lead.dRel v_lead = lead.vLead a_lead = lead.aLeadK a_lead_tau = lead.aLeadTau @@ -355,12 +355,11 @@ class LongitudinalMpc: self.cruise_min_a = min_a self.max_a = max_a - def update(self, lead_one, lead_two, v_cruise, x, v, a, j, radarless_model, t_follow, trafficModeActive, frogpilot_toggles, personality=log.LongitudinalPersonality.standard): + def update(self, lead_one, lead_two, v_cruise, x, v, a, j, radarless_model, t_follow, trafficModeActive, personality=log.LongitudinalPersonality.standard): v_ego = self.x0[1] self.status = lead_one.status or lead_two.status - increased_distance = max(frogpilot_toggles.increase_stopped_distance + min(10 - v_ego, 0), 0) if not trafficModeActive else 0 - lead_xv_0 = self.process_lead(lead_one, increased_distance) + lead_xv_0 = self.process_lead(lead_one) lead_xv_1 = self.process_lead(lead_two) # To estimate a safe distance from a moving lead, we calculate how much stopping @@ -370,7 +369,8 @@ class LongitudinalMpc: lead_1_obstacle = lead_xv_1[:,0] + get_stopped_equivalence_factor(lead_xv_1[:,1]) self.params[:,0] = ACCEL_MIN - self.params[:,1] = self.max_a + # negative accel constraint causes problems because negative speed is not allowed + self.params[:,1] = max(0.0, self.max_a) # Update in ACC mode or ACC/e2e blend if self.mode == 'acc': @@ -379,6 +379,7 @@ class LongitudinalMpc: # Fake an obstacle for cruise, this ensures smooth acceleration to set speed # when the leads are no factor. v_lower = v_ego + (T_IDXS * self.cruise_min_a * 1.05) + # TODO does this make sense when max_a is negative? v_upper = v_ego + (T_IDXS * self.max_a * 1.05) v_cruise_clipped = np.clip(v_cruise * np.ones(N+1), v_lower, diff --git a/selfdrive/controls/lib/longitudinal_planner.py b/selfdrive/controls/lib/longitudinal_planner.py index c087005b..0280f3e9 100644 --- a/selfdrive/controls/lib/longitudinal_planner.py +++ b/selfdrive/controls/lib/longitudinal_planner.py @@ -22,7 +22,7 @@ A_CRUISE_MAX_VALS = [1.6, 1.2, 0.8, 0.6] A_CRUISE_MAX_BP = [0., 10.0, 25., 40.] CONTROL_N_T_IDX = ModelConstants.T_IDXS[:CONTROL_N] ALLOW_THROTTLE_THRESHOLD = 0.5 -ACCEL_LIMIT_MARGIN = 0.05 +MIN_ALLOW_THROTTLE_SPEED = 2.5 # Lookup table for turns _A_TOTAL_MAX_V = [1.7, 3.2] @@ -58,7 +58,10 @@ def get_accel_from_plan(CP, speeds, accels): a_target_now = interp(DT_MDL, CONTROL_N_T_IDX, accels) v_target = interp(CP.longitudinalActuatorDelay + DT_MDL, CONTROL_N_T_IDX, speeds) - a_target = 2 * (v_target - v_target_now) / CP.longitudinalActuatorDelay - a_target_now + if v_target != v_target_now: + a_target = 2 * (v_target - v_target_now) / CP.longitudinalActuatorDelay - a_target_now + else: + a_target = a_target_now v_target_1sec = interp(CP.longitudinalActuatorDelay + DT_MDL + 1.0, CONTROL_N_T_IDX, speeds) else: @@ -183,7 +186,7 @@ class LongitudinalPlanner: throttle_prob = 1.0 return x, v, a, j, throttle_prob - def update(self, radarless_model, secretgoodopenpilot_model, sm, frogpilot_toggles): + def update(self, classic_model, radarless_model, sm, frogpilot_toggles): self.mpc.mode = 'blended' if sm['controlsState'].experimentalMode else 'acc' if len(sm['carControl'].orientationNED) == 3: @@ -209,7 +212,8 @@ class LongitudinalPlanner: accel_limits = [sm['frogpilotPlan'].minAcceleration, sm['frogpilotPlan'].maxAcceleration] if self.mpc.mode == 'acc': - accel_limits_turns = limit_accel_in_turns(v_ego, sm['carState'].steeringAngleDeg, accel_limits, self.CP) + steer_angle_without_offset = sm['carState'].steeringAngleDeg - sm['liveParameters'].angleOffsetDeg + accel_limits_turns = limit_accel_in_turns(v_ego, steer_angle_without_offset, accel_limits, self.CP) else: accel_limits_turns = [ACCEL_MIN, ACCEL_MAX] @@ -223,12 +227,13 @@ class LongitudinalPlanner: # Compute model v_ego error self.v_model_error = get_speed_error(sm['modelV2'], v_ego) x, v, a, j, throttle_prob = self.parse_model(sm['modelV2'], self.v_model_error, v_ego, frogpilot_toggles.taco_tune) - self.allow_throttle = throttle_prob > ALLOW_THROTTLE_THRESHOLD + # Don't clip at low speeds since throttle_prob doesn't account for creep + self.allow_throttle = throttle_prob > ALLOW_THROTTLE_THRESHOLD or v_ego <= MIN_ALLOW_THROTTLE_SPEED - if not self.allow_throttle and v_ego > 5.0 and secretgoodopenpilot_model: # Don't clip at low speeds since throttle_prob doesn't account for creep - # MPC breaks when accel limits would cause negative velocity within the MPC horizon, so we clip the max accel limit at vEgo/T_MAX plus a bit of margin - clipped_accel_coast = max(accel_coast, accel_limits_turns[0], -v_ego / T_IDXS_MPC[-1] + ACCEL_LIMIT_MARGIN) - accel_limits_turns[1] = min(accel_limits_turns[1], clipped_accel_coast) + if not self.allow_throttle and not classic_model: + clipped_accel_coast = max(accel_coast, accel_limits_turns[0]) + clipped_accel_coast_interp = interp(v_ego, [MIN_ALLOW_THROTTLE_SPEED, MIN_ALLOW_THROTTLE_SPEED*2], [accel_limits_turns[1], clipped_accel_coast]) + accel_limits_turns[1] = min(accel_limits_turns[1], clipped_accel_coast_interp) if force_slow_decel: v_cruise = 0.0 @@ -242,8 +247,9 @@ class LongitudinalPlanner: lead_states = [self.lead_one, self.lead_two] for index in range(len(lead_states)): if len(model_leads) > index: + distance_offset = max(frogpilot_toggles.increased_stopped_distance + min(10 - v_ego, 0), 0) if not sm['frogpilotCarState'].trafficModeActive else 0 model_lead = model_leads[index] - lead_states[index].update(model_lead.x[0], model_lead.y[0], model_lead.v[0], model_lead.a[0], model_lead.prob) + lead_states[index].update(model_lead.x[0] - distance_offset, model_lead.y[0], model_lead.v[0], model_lead.a[0], model_lead.prob) else: lead_states[index].reset() else: @@ -254,7 +260,7 @@ class LongitudinalPlanner: self.mpc.set_accel_limits(accel_limits_turns[0], accel_limits_turns[1]) self.mpc.set_cur_state(self.v_desired_filter.x, self.a_desired) self.mpc.update(self.lead_one, self.lead_two, sm['frogpilotPlan'].vCruise, x, v, a, j, radarless_model, sm['frogpilotPlan'].tFollow, - sm['frogpilotCarState'].trafficModeActive, frogpilot_toggles, personality=sm['controlsState'].personality) + sm['frogpilotCarState'].trafficModeActive, personality=sm['controlsState'].personality) self.a_desired_trajectory_full = np.interp(CONTROL_N_T_IDX, T_IDXS_MPC, self.mpc.a_solution) self.v_desired_trajectory = np.interp(CONTROL_N_T_IDX, T_IDXS_MPC, self.mpc.v_solution) diff --git a/selfdrive/controls/plannerd.py b/selfdrive/controls/plannerd.py index 3bae4ca0..3c8f51ab 100644 --- a/selfdrive/controls/plannerd.py +++ b/selfdrive/controls/plannerd.py @@ -6,7 +6,7 @@ from openpilot.common.swaglog import cloudlog from openpilot.selfdrive.controls.lib.longitudinal_planner import LongitudinalPlanner import cereal.messaging as messaging -from openpilot.selfdrive.frogpilot.frogpilot_variables import FrogPilotVariables +from openpilot.selfdrive.frogpilot.frogpilot_variables import get_frogpilot_toggles def publish_ui_plan(sm, pm, longitudinal_planner): ui_send = messaging.new_message('uiPlan') @@ -30,31 +30,26 @@ def plannerd_thread(): longitudinal_planner = LongitudinalPlanner(CP) pm = messaging.PubMaster(['longitudinalPlan', 'uiPlan']) - sm = messaging.SubMaster(['carControl', 'carState', 'controlsState', 'radarState', 'modelV2', 'frogpilotCarControl', 'frogpilotCarState', 'frogpilotPlan'], + sm = messaging.SubMaster(['carControl', 'carState', 'controlsState', 'liveParameters', 'radarState', 'modelV2', + 'frogpilotCarControl', 'frogpilotCarState', 'frogpilotPlan'], poll='modelV2', ignore_avg_freq=['radarState']) # FrogPilot variables - frogpilot_toggles = FrogPilotVariables.toggles - FrogPilotVariables.update_frogpilot_params() + frogpilot_toggles = get_frogpilot_toggles(True) + classic_model = frogpilot_toggles.classic_model radarless_model = frogpilot_toggles.radarless_model - secretgoodopenpilot_model = frogpilot_toggles.secretgoodopenpilot_model - - update_toggles = False while True: sm.update() if sm.updated['modelV2']: - longitudinal_planner.update(radarless_model, secretgoodopenpilot_model, sm, frogpilot_toggles) + longitudinal_planner.update(classic_model, radarless_model, sm, frogpilot_toggles) longitudinal_planner.publish(sm, pm) publish_ui_plan(sm, pm, longitudinal_planner) # Update FrogPilot parameters - if FrogPilotVariables.toggles_updated: - update_toggles = True - elif update_toggles: - FrogPilotVariables.update_frogpilot_params() - update_toggles = False + if sm['frogpilotPlan'].togglesUpdated: + frogpilot_toggles = get_frogpilot_toggles() def main(): plannerd_thread() diff --git a/selfdrive/controls/radard.py b/selfdrive/controls/radard.py index 2f44a8d6..9249d623 100644 --- a/selfdrive/controls/radard.py +++ b/selfdrive/controls/radard.py @@ -2,6 +2,7 @@ import importlib import math from collections import deque +from types import SimpleNamespace from typing import Any import capnp @@ -13,7 +14,7 @@ from openpilot.common.swaglog import cloudlog from openpilot.common.simple_kalman import KF1D -from openpilot.selfdrive.frogpilot.frogpilot_variables import FrogPilotVariables +from openpilot.selfdrive.frogpilot.frogpilot_variables import get_frogpilot_toggles # Default lead acceleration decay set to 50% at 1s _LEAD_ACCEL_TAU = 1.5 @@ -108,6 +109,19 @@ class Track: "radarTrackId": self.identifier, } + def potential_adjacent_lead(self, far: bool, lane_width: float, left: bool, model_data: capnp._DynamicStructReader): + adjacent_lane_max = float('inf') if far else lane_width * 1.5 + adjacent_lane_min = max(lane_width * 1.5, 4.5) if far else max(lane_width * 0.5, 1.5) + + y_delta = self.yRel + interp(self.dRel, model_data.position.x, model_data.position.y) + + if left and adjacent_lane_min < y_delta < adjacent_lane_max: + return True + elif not left and adjacent_lane_min < -y_delta < adjacent_lane_max: + return True + else: + return False + def potential_low_speed_lead(self, v_ego: float): # stop for stuff in front of you and low speed, even without model confirmation # Radar points closer than 0.75, are almost always glitches on toyota radars @@ -168,9 +182,9 @@ def get_RadarState_from_vision(lead_msg: capnp._DynamicStructReader, v_ego: floa def get_lead(v_ego: float, ready: bool, tracks: dict[int, Track], lead_msg: capnp._DynamicStructReader, - model_v_ego: float, lead_detection_threshold: float, low_speed_override: bool = True) -> dict[str, Any]: + model_v_ego: float, frogpilot_toggles: SimpleNamespace, frogpilotCarState: capnp._DynamicStructReader, low_speed_override: bool = True) -> dict[str, Any]: # Determine leads, this is where the essential logic happens - if len(tracks) > 0 and ready and lead_msg.prob > lead_detection_threshold: + if len(tracks) > 0 and ready and lead_msg.prob > frogpilot_toggles.lead_detection_probability: track = match_vision_to_track(v_ego, lead_msg, tracks) else: track = None @@ -178,7 +192,7 @@ def get_lead(v_ego: float, ready: bool, tracks: dict[int, Track], lead_msg: capn lead_dict = {'status': False} if track is not None: lead_dict = track.get_RadarState(lead_msg.prob) - elif (track is None) and ready and (lead_msg.prob > lead_detection_threshold): + elif (track is None) and ready and (lead_msg.prob > frogpilot_toggles.lead_detection_probability): lead_dict = get_RadarState_from_vision(lead_msg, v_ego, model_v_ego) if low_speed_override: @@ -190,11 +204,25 @@ def get_lead(v_ego: float, ready: bool, tracks: dict[int, Track], lead_msg: capn if (not lead_dict['status']) or (closest_track.dRel < lead_dict['dRel']): lead_dict = closest_track.get_RadarState() + if 'dRel' in lead_dict: + lead_dict['dRel'] -= max(frogpilot_toggles.increased_stopped_distance + min(10 - v_ego, 0), 0) if not frogpilotCarState.trafficModeActive else 0 + + return lead_dict + + +def get_lead_adjacent(tracks: dict[int, Track], model_data: capnp._DynamicStructReader, lane_width: float, left: bool = True, far: bool = False) -> dict[str, Any]: + lead_dict = {'status': False} + + adjacent_tracks = [c for c in tracks.values() if c.vLead > 1 and c.potential_adjacent_lead(far, lane_width, left, model_data)] + if len(adjacent_tracks) > 0: + closest_track = min(adjacent_tracks, key=lambda c: c.dRel) + lead_dict = closest_track.get_RadarState() + return lead_dict class RadarD: - def __init__(self, radar_ts: float, delay: int = 0): + def __init__(self, frogpilot_toggles, radar_ts: float, delay: int = 0): self.points: dict[int, tuple[float, float, float]] = {} self.current_time = 0.0 @@ -213,12 +241,9 @@ class RadarD: self.ready = False # FrogPilot variables - self.frogpilot_toggles = FrogPilotVariables.toggles - FrogPilotVariables.update_frogpilot_params() + self.frogpilot_toggles = frogpilot_toggles - self.velocity_model = self.frogpilot_toggles.velocity_model - - self.update_toggles = False + self.classic_model = self.frogpilot_toggles.classic_model def update(self, sm: messaging.SubMaster, rr): self.ready = sm.seen['modelV2'] @@ -263,23 +288,26 @@ class RadarD: self.radar_state.radarErrors = list(radar_errors) self.radar_state.carStateMonoTime = sm.logMonoTime['carState'] - if self.velocity_model and len(sm['modelV2'].velocity.x): - model_v_ego = sm['modelV2'].velocity.x[0] - elif len(sm['modelV2'].temporalPose.trans): + if self.classic_model and len(sm['modelV2'].temporalPose.trans): model_v_ego = sm['modelV2'].temporalPose.trans[0] + elif len(sm['modelV2'].velocity.x): + model_v_ego = sm['modelV2'].velocity.x[0] else: model_v_ego = self.v_ego leads_v3 = sm['modelV2'].leadsV3 if len(leads_v3) > 1: - self.radar_state.leadOne = get_lead(self.v_ego, self.ready, self.tracks, leads_v3[0], model_v_ego, self.frogpilot_toggles.lead_detection_threshold, low_speed_override=True) - self.radar_state.leadTwo = get_lead(self.v_ego, self.ready, self.tracks, leads_v3[1], model_v_ego, self.frogpilot_toggles.lead_detection_threshold, low_speed_override=False) + self.radar_state.leadOne = get_lead(self.v_ego, self.ready, self.tracks, leads_v3[0], model_v_ego, self.frogpilot_toggles, sm['frogpilotCarState'], low_speed_override=True) + self.radar_state.leadTwo = get_lead(self.v_ego, self.ready, self.tracks, leads_v3[1], model_v_ego, self.frogpilot_toggles, sm['frogpilotCarState'], low_speed_override=False) + + if self.frogpilot_toggles.adjacent_lead_tracking and self.ready: + self.radar_state.leadLeft = get_lead_adjacent(self.tracks, sm['modelV2'], sm['frogpilotPlan'].laneWidthLeft, left=True) + 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) # Update FrogPilot parameters - if FrogPilotVariables.toggles_updated: - self.update_toggles = True - elif self.update_toggles: - FrogPilotVariables.update_frogpilot_params() - self.update_toggles = False + if sm['frogpilotPlan'].togglesUpdated: + self.frogpilot_toggles = get_frogpilot_toggles() def publish(self, pm: messaging.PubMaster, lag_ms: float): assert self.radar_state is not None @@ -348,14 +376,14 @@ def main(): RI = RadarInterface(CP) rk = Ratekeeper(1.0 / CP.radarTimeStep, print_delay_threshold=None) - RD = RadarD(CP.radarTimeStep, RI.delay) # FrogPilot variables - frogpilot_toggles = FrogPilotVariables.toggles - FrogPilotVariables.update_frogpilot_params() + frogpilot_toggles = get_frogpilot_toggles(True) + + RD = RadarD(frogpilot_toggles, CP.radarTimeStep, RI.delay) if not frogpilot_toggles.radarless_model: - sm = messaging.SubMaster(['modelV2', 'carState'], frequency=int(1./DT_CTRL)) + sm = messaging.SubMaster(['modelV2', 'carState', 'frogpilotCarState', 'frogpilotPlan'], frequency=int(1./DT_CTRL)) pm = messaging.PubMaster(['radarState', 'liveTracks']) while 1: can_strings = messaging.drain_sock_raw(can_sock, wait_for_one=True) diff --git a/selfdrive/frogpilot/assets/active_theme/colors/colors.json b/selfdrive/frogpilot/assets/active_theme/colors/colors.json index 80e70f35..bf527d51 100644 --- a/selfdrive/frogpilot/assets/active_theme/colors/colors.json +++ b/selfdrive/frogpilot/assets/active_theme/colors/colors.json @@ -23,12 +23,6 @@ "blue": 54, "alpha": 242 }, - "RoadEdges": { - "red": 23, - "green": 134, - "blue": 68, - "alpha": 242 - }, "Sidebar1": { "red": 23, "green": 134, diff --git a/selfdrive/frogpilot/assets/download_functions.py b/selfdrive/frogpilot/assets/download_functions.py index 9057c2db..0a642e53 100644 --- a/selfdrive/frogpilot/assets/download_functions.py +++ b/selfdrive/frogpilot/assets/download_functions.py @@ -1,7 +1,7 @@ import os import requests -from openpilot.selfdrive.frogpilot.frogpilot_functions import delete_file, is_url_pingable +from openpilot.selfdrive.frogpilot.frogpilot_utilities import delete_file, is_url_pingable GITHUB_URL = "https://raw.githubusercontent.com/FrogAi/FrogPilot-Resources/" GITLAB_URL = "https://gitlab.com/FrogAi/FrogPilot-Resources/-/raw/" @@ -44,10 +44,10 @@ def handle_error(destination, error_message, error, download_param, progress_par def handle_request_error(error, destination, download_param, progress_param, params_memory): error_map = { - requests.HTTPError: lambda e: f"Server error ({e.response.status_code})" if e.response else "Server error.", requests.ConnectionError: "Connection dropped.", - requests.Timeout: "Download timed out.", - requests.RequestException: "Network request error. Check connection." + requests.HTTPError: lambda e: f"Server error ({e.response.status_code})" if e.response else "Server error.", + requests.RequestException: "Network request error. Check connection.", + requests.Timeout: "Download timed out." } error_message = error_map.get(type(error), "Unexpected error.") @@ -75,19 +75,6 @@ def get_repository_url(): return GITLAB_URL return None -def link_valid(url): - try: - response = requests.head(url, allow_redirects=True, timeout=5) - response.raise_for_status() - return True - except requests.HTTPError as e: - if e.response.status_code != 404: - handle_request_error(e, None, None, None, None) - return False - except Exception as e: - handle_request_error(e, None, None, None, None) - return False - def verify_download(file_path, url, initial_download=True): remote_file_size = get_remote_file_size(url) if remote_file_size is None: diff --git a/selfdrive/frogpilot/assets/holiday_themes/halloween_week/colors/colors.json b/selfdrive/frogpilot/assets/holiday_themes/halloween_week/colors/colors.json index 9fca3523..91690ba0 100644 --- a/selfdrive/frogpilot/assets/holiday_themes/halloween_week/colors/colors.json +++ b/selfdrive/frogpilot/assets/holiday_themes/halloween_week/colors/colors.json @@ -23,12 +23,6 @@ "blue": 255, "alpha": 255 }, - "RoadEdges": { - "red": 242, - "green": 117, - "blue": 3, - "alpha": 255 - }, "Sidebar1": { "red": 134, "green": 47, diff --git a/selfdrive/frogpilot/assets/holiday_themes/world_frog_day/colors/colors.json b/selfdrive/frogpilot/assets/holiday_themes/world_frog_day/colors/colors.json new file mode 100644 index 00000000..bf527d51 --- /dev/null +++ b/selfdrive/frogpilot/assets/holiday_themes/world_frog_day/colors/colors.json @@ -0,0 +1,44 @@ +{ + "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/holiday_themes/halloween_week/distance_icons/aggressive.gif b/selfdrive/frogpilot/assets/holiday_themes/world_frog_day/distance_icons/aggressive.gif similarity index 100% rename from selfdrive/frogpilot/assets/holiday_themes/halloween_week/distance_icons/aggressive.gif rename to selfdrive/frogpilot/assets/holiday_themes/world_frog_day/distance_icons/aggressive.gif diff --git a/selfdrive/frogpilot/assets/holiday_themes/halloween_week/distance_icons/relaxed.gif b/selfdrive/frogpilot/assets/holiday_themes/world_frog_day/distance_icons/relaxed.gif similarity index 100% rename from selfdrive/frogpilot/assets/holiday_themes/halloween_week/distance_icons/relaxed.gif rename to selfdrive/frogpilot/assets/holiday_themes/world_frog_day/distance_icons/relaxed.gif diff --git a/selfdrive/frogpilot/assets/holiday_themes/halloween_week/distance_icons/standard.gif b/selfdrive/frogpilot/assets/holiday_themes/world_frog_day/distance_icons/standard.gif similarity index 100% rename from selfdrive/frogpilot/assets/holiday_themes/halloween_week/distance_icons/standard.gif rename to selfdrive/frogpilot/assets/holiday_themes/world_frog_day/distance_icons/standard.gif diff --git a/selfdrive/frogpilot/assets/holiday_themes/halloween_week/distance_icons/traffic.gif b/selfdrive/frogpilot/assets/holiday_themes/world_frog_day/distance_icons/traffic.gif similarity index 100% rename from selfdrive/frogpilot/assets/holiday_themes/halloween_week/distance_icons/traffic.gif rename to selfdrive/frogpilot/assets/holiday_themes/world_frog_day/distance_icons/traffic.gif diff --git a/selfdrive/frogpilot/assets/holiday_themes/world_frog_day/icons/button_home.gif b/selfdrive/frogpilot/assets/holiday_themes/world_frog_day/icons/button_home.gif index 6b20a726e4ce2f4933d78c4668ee9b74a7553567..133d8d34ed1c0029e64be8a8d63761cf376013c0 100644 GIT binary patch delta 36320 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 delta 35653 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 diff --git a/selfdrive/frogpilot/assets/holiday_themes/world_frog_day/signals/traditional_100 b/selfdrive/frogpilot/assets/holiday_themes/world_frog_day/signals/traditional_100 new file mode 100644 index 00000000..e69de29b diff --git a/selfdrive/frogpilot/assets/holiday_themes/world_frog_day/signals/turn_signal_1.png b/selfdrive/frogpilot/assets/holiday_themes/world_frog_day/signals/turn_signal_1.png index 43e0b446f8ea9df6f3686c18abf2dde8aebdd945..8c2f7a54ed26a3dae6ef83581f4d88197a9bf88c 100644 GIT binary patch literal 45438 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 literal 64120 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 bSKB!wXfd6$&++0A;7?jyL9ANDDDZy(EW)RG diff --git a/selfdrive/frogpilot/assets/holiday_themes/world_frog_day/signals/turn_signal_2.png b/selfdrive/frogpilot/assets/holiday_themes/world_frog_day/signals/turn_signal_2.png index e8e147976b7330cca51b7dc7dc66c63df871cf81..3c7d2d9eb8a0ade223ded2f3884a6ff91b18e20a 100644 GIT binary patch literal 54564 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 ZZkuWAsAZ)tSA!&gVP|v6y2_G}_&>gC{OkY# literal 77793 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

48nGMXSmpF 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 diff --git a/selfdrive/frogpilot/assets/holiday_themes/world_frog_day/signals/turn_signal_3.png b/selfdrive/frogpilot/assets/holiday_themes/world_frog_day/signals/turn_signal_3.png index b59b003f95eb2fbf69700cd5419e0d39a8b7a688..b495eeae190cbcf70bd15a4d14e1d4ae6c112ffb 100644 GIT binary patch literal 59581 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 literal 84999 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%0DCsQvsBqC~5VoON^WjDhhVf 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

uyV$bFAaw>!TEoZlnZvC(n-ixEahoDW?FxQme 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 m9ynFOw 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

0RD=W>xy=(S%4zLP3c6TU;)aum;gm!h2G zEuY9^i?Z!v1A|6+eOXhjV%q)+4guJfguX)A{!kM3kqc3C%a;b?eFFGnNu@EtRx!ma zJ{1fRgkdS`Cz*ga!=V^k={@Svn+VL*` z1K9|HO=x(J#Z#RYBXM=7Z$l+P!`&&Ik5p?urdw5I@HQIAaj?L&CW;uX4HRSPa?c5O z45=k>mSMG{EHYb$GDw01m=O34OEMq|i`<|exWV05W+4Aw>t3X;;WwGPNeqC${@#Fq zJfnaz2d=azh{RhOHmf1GWeuvEel04La!XiTmhS|sXg8@*)Uy&|RV%WDGL&6$Tef}g zo6#0Gdb7-ZE5k9j?!I@e<(TIcZhAnh)q8p3qIT)3QQvE2Vg=ido|p(5V{NZI~{ zE4;OP#auWqCr*e)f+pwf9oFr;rkW}Hxz>5fv@*V8hqKm-oMux+NZ0c3%iPJ=9;ZyF zgyXF1IQ-%)uCR9$YHQZnDY0{Ob^2CtI3tzbnY1S~tlZmk5>^qRbzRIe^K65@BE9j$D*6aPr^$9`}Z{WF%lR{(j07_0iOIeK)M zewpu+`r~Kj7Cmga24S1biqZW#+@^T^_`NpGk9ju(&YKDddPN*!Ru)| ziqq5q7Ag@=yzXBr_(o%~E#vy_NDXe7=%hN$wT-Ab$_Vg{jW1p2x_8F?0aNjK9Zltb z;fef|k{xzjAUjLw@c+`xhyEQWVw?S}X$&vjn9gj!!xpP` zuQwk3J!s^_#k~_9a$oMTzJ}%QLl-J$@XBF$m%E?5yoSAZDE74Z0h^L@Wr(RB!)bHi zgmc`wrrp1MWlN!SFN0VYr)-nKP}f~0=K)r0P$!^H+2&Dr`q2z3az3fhD>!vdYvS$6 z;m}>B((c$rHH(y)4!kNL>x!T4Yl??ZO~xDN(J2j8F-{Ghxucx(g_t)D^f$`;ul#ty zc6Nh;n^|&j>p0L(q_*A$OO0%MVQc>&iFGZ`VJyK6y6-muH}xhnIC67^ z)x=EJMKDzExjMOfLt|L2M}fWjt-ti=3yZ-7 zVJ_Tx+Pl4__kr*43iavtHnsV-TN+Xm0&hA7GYp^FB$r+VV9i5Vx~(*(L-MWE_->*`9$$O>@+Ueu(?H!xx{k0E0 z*nyfM>ui}|PxoIcLkug7m1MqiFK;L^kh$xPIlZ~G@*+%_}-|VTe>%)q#qrTt6se87S7ZT5M~PO zq#J96Uq3KFeB_0sr2f^SF8RHdED>zlQCni9tpDO|@$K<>1|{pFSsJCJB-NuKCe8Hd zyPLTYRr-ixmgXJxIb+689gJ+xWJjZfeTB7AV+ux^WNt_`CszAKK<)P&BP}K|zbXTR zu*apYfY8t-Holv-|!YapOp}o?0;;j04F&0G*JgGv9^r& z={;m(6wpv&%GM9dg1($i>HhezCU7)J*r>TH(Y)>nQtvWK>hgCn!A4BKj&-C}l@z3t}3ub19&HZk! zxwpB6q$O$B#Ee0>N}Ez3eiuOZ+`n9&f}c( zzPz5#YggY^$~mnWLpOWkae0$BUtP!LFTel#y6*d#+cf=%^}+y=kLp&IEnIcNV@tQ! z>icqx!NKV)eHv=dbdI3HyBn_Doq~Fnj;G^0_Fn7k81WupED3r3Y_Co5KQ@TRzb-1? zw&)*F)|NWmzqJBLeqhvoHE-}#>i7zBWB#p4r29b64N=QGR=sT9ZCQ6&W6jB1YPUOh z_d^?c?!*MS-|_m-C8)WPQGHFf7)fuuXoN9 zpY6+y070|LzFiq8x@chcmn_obhL1;IT?SAGJG~zbva-H->o<0VA9T`}zL*Goaewu5 zp;aW-z^ZQP_rIQN1Yv@~2E{lcc~m|JLUE%w2QJHO(sT#j40-l-01dZe93lXGOx zAoOFijkhcA^!8p(wh6M;QCytXoSZJNpRbKlDHjLvD+d9h281PwvK}m`DLy@5ZbutD zclpm1gOL!PQ7%hu`29T+)+{X?gSH0nF9n`D5)Em5b|k87_y0qjoE8(1>r3&gzR zG|M!uK_f@iL|*9ASrHjgdt4sen7J4gMAD%>CsGrbgCL%ky$Q_Tz=l)Y;j!#2jSzL+ zbhcwBaQpmlb7)1Du;|&_aIG_s8ak`n{$NkxdoIsb)(<)#llFY#)W^oh&{MQlZF8x- zN9n#7x4S}&q~YGl3wxtA;B|zq9MB!i*$d|GW#13`k2Be-t%`&`@Rayp3X7 zYlK+Ke4{V2bRtVlN68%Tm3B7g|@1Mnwhm@Vpf!*7cRbq3%s$jw%KH?T}gsz$|NoO|N zo1VMMbGZS8wQbWXiAcV8xscZhN>xWryhjp6Db|D1b;S}=NYcLKG26ZrttUZgeAHfY zE>&e_@t@e0CoTNrkmDw{)W{(H)KcH%i3>>R+IhQvxWuPUU@gif)C*RsUDGTO%VM+l z)n)TJLQ2mk&FKq&kBrg`Lo0wxX0{{`{OSPc^K`wTA**^O#gvaf-eY$$b3223M46^~ zV(h_~`#mM$_B9^s|2o!UuKYGd=@&lP7iwDzHjYT!-gta2TZ3{fM~yrMDRSvb5MjfC zocxjPx+b^CG~~q(k(L1})d~XR8}lNiT_)6QLcDb^%ol|D%CqavK~{z|93*^=3;#qA zh*#0F>)bU$3TVGwHlKj_T=#XNC1JfRd)+j`kp^2sgJ>id_Tyjmi*;;s!R`F9GiakU z#pH!;-<;-fM8=%%zJNf;$j*dN>r0lhtG3FavBu2)q-pELw9b4#w(pCHkok4)!3bpTrIt@zL<)}^Lh#2+mSXuTaLE1(@syhzoxA5U1 z05Tc0@<43Tm@hQ@h*sI}TaR4k9d+8gbJfOvr@iC%%36@k)o&z^{tB<}8n0aRiaV3( z5_?D0C_rib>KNW{_-ZDtK6yD3HKyjJtnCB{3!o*K?F~vjTM;%3;PvcWv*qL1FFA&P z?=I?UAexwSx&*jEH!^$4~>Ai?KJI&i@e@dHd_gs&RrTMQ+lXYG2SQ5-0G z5L`Wo7)_kD_=Z?j3_V>wd^B-u!b+g|#qO3u2z(lz0h(;Rxy;#e7hA7M0Cw?hRD$@S z*GF0f(q%2Uy2aTi;tg(!^Zk#NOro)ZcvQgrGqQX* z;sj#3&(-i}xS5wNxn^DIE0#fdXT^9K#99v1NFF*KNdsSjG+yL?11s4*3-65PS8*W3 zJctIxos|tDr?a9fvd{dBVCRXkdBR(XlP{O;A=0up_DW+Eh)sFWnpcjC+iS6PpZ#UqpUzC38Ip=HX*WN4HvK)ns%=|g=0*6Brbg5Q6P8twahSd)IjCfLP&%eHg zX|$Y{x z#kJ4G=NnvOZ}0ka&e`pMh3_Kw^P3tjA0VbYOa0hUc;J(@3&3DkoBdSy$GoHkv%$=b6g^sMv4^(Q{9Rd+`deHRm>BbKB+-F+g;Cv<*b32NkF z&ywY-56cgIntpMT0%G8(!w^FXePshBZdhGa^OY#2P3WGuX zDXUJWxb#vV8eP6MRj+T1@$6Q?OG8X zUF0lAA(ag=VLo)w|r&eZcUx>i#!`*5AH{NkW3=Va^sbFNO``VE< ziW=(1f6HK$$oF|4df>i)X=XV6UJfE)+21OYgnhM&Q7sNx+>Vd>g{(Aq_p2}1plGm4 zj9_eI1*2YAvq31jeqZcqOeeF;u2})aIo!(YXU(3`x!2>ukT(n{HXM<7d}#zjG(ZZ;~&ZQgBP~X9t%VFa1!3(zy{k zJbJ^WlT&RZ>h1eta0vfAhjG(KvxT!Z&q)QvxB}nqOs_u)pw}%#I@&eQ&0=m*3#?+# zVA%qHOXRcv6{>KskJnbszy6;*a{ImP`16Q-4Pjd#-lfOibp-LsD>UE+u{y&ulO>;g z`ik)7U8Pq5{M+=4d<@;E1Z4sy*iSxdxo^l#6nWOq6@DDAIp%9ln}(5Vhp&(WGC0s3 z20I1skVY9i$QU({G6QS5SXlk&b&AenjzQL-NzfwFumFsGw|_(K;WN|_R+wW_-&w_c z970dy>d~%HY!ZnN;Xw{Otg2`??L05+cqPwy8EeR(8!bZ+p+$Gy3^YI-6J-+gPxP43rOFF4pmZkn%WMGf9cIHXiggPnaNTKzrHB<8ik#NFlgEW?%oJ|$4{LD; zRwA5Qxi>}ZReVq0T8C&od8O1gZBfXICA+HD&5q_YtUeoA+Ct2o35;8JtEy^ahn`WA z+VFp(Ah-u8IeWIg=#U7O@T1s{J~dhv$_?|H8z!WesUeObQcRNi;e6s%;&Q%3C+`)? zb6X)szd}jP1nsphlSpaxH3n)FYD1n%c~FB zFALqULja6*PN6r7|94UQG$+qIvyrePuh8hdg;dN*fmu{MYy^gpBlqSn7ttPKsbs{a zscN}VXoBOR)WMDF5goZ`%64N@2uYxT2?bLuqpH_W{h*{4d60uolXyiD%qjKKh;2^+RDZ#&FR z5W<+np{)j357P45?CS-cv1;6=<31v_h>MH48>qY|L)hOYOK>qDmh6{hVpgSz`}$um z0=_u7FDgL&nBW^1w)0b^&kF?w&L`3NtooKxefYru2PXdO^YK+xb-ZzVoRsDG{X=6v z^#)Js^@ucFC4n!PpR($d`ZifK`oTxmMdyU?F8N>4WL^BpkLYC{8Kp(vr{a;2LC(&X zDAckkCD}Sz<#dUQwgmi_?=&nj%1VY>54>8E(Ruaq>EeI?yl0XAkppOx6g6z+^D6B9 zlaftbL{}V$xdw{th^!+aqTBr?0=OxC2EC!%pF+sv*!Dn-xu>YPv9D8CON2yfjePa` zFPEjwZ>;<8xpuJa(vUYcjJ}UpmG&t6k$ZSAxHkmyG_p5O9+(seRKTOJOAY7LS(NcO{pT53vg_%eF1x)w8mV}FeUX6*;Xn`)i*%zp zc4^4%gc5R&TrxR-bW>mjHoTRCFiH`|@Ll`Q{7Ao`*Mtrpg6ho_t48k56wL$X4+AbT zE^&kI(0(=F{3&$0`hd0JN;7rodUKSA0#YW?4Nv@avH0q&X+jPC1Y?4R@+y4;rd9}G z`c{#QA@+7%-=kfJr?+99rvn`hyk-c4XT5tz6H96u5 z9`Wr9zsnP0(-(2RQ{C3QK2zQ;t8epb_J_NI$P9mfxxy%LF*e`B_(tqmd$u@sd%*lX z>FUv3&+$O-aoFoV@HAI-*;VXT@vk!)=E{+*?-Or$YG^1bM1mkC89;Hk3*B7C!aHXV zrS{yWm?}kJAOy_^+6&?BZZhT;4myOZ*9moG#MH$yO}E6b%v59BhfG{0tj;V)nLmyV zu4r!a2noU-iu)dO-10JB_jLD1J1ou*AKA(Hk`dt9T5WS>WXp_f zgyWzxwU97*{vEq3>h}q(+7&{y0-w<4P77aIE10g5Rm-ah7F`E{b#`m88wZM($YGn( zBSTJC@-D5vSPvt6y~Cz=o_oh-BosPE8Z3rF`i8QWfcYyKHC`EQz5oPfXX;WaG-L;;LlGSKJ)HIs_`09E$fC;r^}yBaH%d?8HW+O3a|j$E?G$KxLV!GAdg? zI-`#5-fAe=Hd~>)pvsuxVz)`yc&QVujcsBwaPUUs*|_&9i$w=GqR6jj>Q_8QYD-nZ#I5S++>pAzoXJrt+LZF z-L}D&PD_`P#b`JHm|1uwpJ)(Q2ixR7d$_UsF0VdhRl*^dN0zjwq*f^pU=L+$zLl3g z3)rmgoISAFR0V2OY?T>rG^F%3uX60DW2LVsXqI}VTVNX=l5PZ87gX4ei%kc(I+P3M z_>{EuixMYhfDQ-pZ|n-=baid4LYoPF)5k4!fH_ybI_|5~9{2aHkJnK{7zKJd`xJif zRUfUPr|*9{u!V1o_V=Gn-1L5P?rW$+rb2f*VCkRDOQ$X_Et3#5zKd>-Z&n1Qwh0kK*6SH$CC#4y!Dc7H0MBdb4>6CZWHvn=%0GbYsJ z?o<3wmY3DD!gJEZ@wTGVpzWZ<$Q5G9X=CFrUZtnFxr%kz$4?-jCN$LtuF_s+$f)Ib zIAJ zWj`mu3Y6!*TA%wBKyKv_$YOU607p+GQW~l@npG)stHV06?lzOFl6yS6A|ZAmPX|;s zLC1t-?Cso~KTnV{(2(Yze{S5cY)g9RseGotosSqfgz*aRjclLrsBiO42!L!;T%P6X zFaw?Js>WDp&~{6`#_U zbj&B-ayA+3(^$l+nIWn>aWcUb5IZz^Z$zp&A^@BN(I{;=3K-fZ*WE%H9Fb`@RrR+k z%Wqp~xdfvzeT6GL#$i`43D{;&x9Fc-*_wO7B)HzhpHeZNU%EI|X5RO>LlUt=;aUNx5A-ckx*v6%{R$sZ4RW_8TQLpWe>rzz}Re z++nY2Jd?=)yf@j4c1dMbKbkdq2-uMjhWGwM_NO__;`1i#yWjuHx|9?!{5-gXDLImV zX)J9=16@UFUprnTJ?T5pn5G_3 z6NNv%6F7J6vO53*6b_J?s#(#-aX?4{%nOeEuc5XsVpYiLwpfwbms;4D0;z2U0N3AP zIUeBFlv_;^Ew66dq$s2eau+f|qztetn40$JFMBxFpaFwZ2rI$Y@$0L6!#S(Ia(r$wy7Z1=o3`k&$?{kEWPe627-=D$j#F81pk`4LJDf%}+vd|ML0WN;3Eaw%R2II; zNWBH?aTZ$-m>ug}f4iL}P_xFN4h0hIg5}#;n7%g%1329zJ8`RRQj7Fqqfq%7I-ybS=^Wwm<01fYO4=k!a4#+tdqeSASChG;A%@ z0v+HckUEMKVOAWc|Be_AGlT~C;w94&F!zw$cX(j$kR%l4j~Y`N&2{*VUtG1gIkE{{Uh&y}P?d7+%Q*`% zgaQH~%>Wuu>~Mi7K<_{|D{S@wSBH)|^(Dls>YkY#zKxIU)U8UWPoqK+S6gyw4R%YX z$2P^v+zA%o|J&CHTR%}!E5i17ZG18R@-6|@Eb;5^44Q?PKA!T;ctw>1Zc(tS^dCY? zm_{Hv@O;!54sG}WDK0m4VSi*N>@n}1J<$W(>jJ`Ja`6SKR@LT{1^zpy<_`aY`7OY5 zPfB$9R59=U9pnm|UiV*d-y@ePV7EMEbPk3y|7YTIs$tOMDQ222BJ4`_6W5zwibdFe z3r}n^R0$Q}`8ST9@p~^Oha4{q@uRAYvv%tG7?}(ykI309*|o#x(cY;mkm3I(y5=1! zkS=MK`f6gzn%-iJw5LcuMZe%=*5)KzyKpxc`_@eV#%$OVXA4&kmykBsa2PJc6~+W% zOa+iBu@BtI@`2ioC-_aJTk{m#y+K@=|G8P%l4L_SpC+#s==SeYNal9=d~Pn4f}Q{$yD=O+K*%d03Lu+GNB=mIc>@O*gC5}mVW&G08OFz*5aX_ zbWc!NcAMKZFWLTE>gEl=LPj&cAT3q`@IhGNr}xjB>63*8ZT?p-e{XH`=}A5DI!~mq zY*kq)2slPJrdrVFX>s9KHiiw(X4h<0Tp+8wtTfa=!@)oKTi2e`I@$Tq7$4wT|kZA)CP zP}y7kv7dsVYTcKP0y`Y%70X*;qKxhB?N*f>t6q0Mk3|rkbyopDlF|&I_8#<}j_LV` z_L^jDITc_lZ~Jrr=0U-)WE_b8opoih*ONl{R%@X%r?MJ1<4qC|47%{pdD2!hp95L} zoEOH;Xp?RsgQGNV)jc}M!rsMd-+(M~onJOSEUag)tVHcEHpB^}uIK=B*MQfXROYk` z&aH264|CQ1zt0&2OeML8nZn!#+N_w0D!o6COo8PYkL)`wIP4>;tHyp11RTzzX+pY4 zuU|od4~1p+8!UZ-2J((UU=Vy#NEJ6eIMfX9K6w2VG1lwk=dOL96|O zgZQ2h*LK8r&vf@smrp%9{)gYFA5PY-sH7P423Z3a3eR{H{Se)oogaE#v-wHk>Q`Tl z$jHcv*!W=lar0;Y_-?wL@VG*r*ja1O73c0Y42h_;+O_70yG8h!tmr%LI|JbG2Zr#y zAXA*PF^}x~{DewRX#!vamstTyC3FNm=Do^EFH}PRZy$qPH5yVH*}`V0emfVo_uIR7 zTTz?-XAIj*B^$-;Nk#$;+{$|EXlROY+JqrfeUbzcBYJIKKd5hxu zKuR_e9bW8D@)#=)Al@!tfL-;2LTX7%#_|?FWSN(PBPH(G<84}2t=Md*N1ftu=iOgJ zpB>*{A+9UktihJKF3(|EoJuUeg~+Dh#W0drCD=}TyX6ky)Yf|8u;~Pu#`Hks{RXLg z;;n~a`_QG}Z7F=gN`kQv$np*?Jbsk5O7Qq2hI+rhGoq~9bbQ!2OZNF zUXg5*l2);A>6yJ7g;!Fuq!v>di;^OXJXS|(xGEfZYJaUjrWw?CeP4p0geWBI;*NYI z2k-}Tjir(&*K4R@r4T3st+JH*;+xEm>8L}Sjg63GLDp<-{W>g;S}e@b+F!vf_!G8D z1wiwNU^0+r@dm&)H!WlAWhX>$(G31J4>q{UOh`6!$F zDDr~t$Pv8B((gY(pwafTa<%dnVC(QlK2p6adie!8jA;+3egaRJLk#)4%$vVMX{uMS z5ISd!pjB{kY~y5$VhlA(&JiO-hy274GDrkrM1CHt2BR?gjXE7+x#c3Jc0VJ7-^r0$ z&9)-6{HHtJr26V6`Kw1=GrQ||^$HQ@)Y)Pb=Z})0@zvRt7ejCTtRkc_;fzQiJ0-jZ z6OjSmG{iys)-quhz^hfrC6u+@AVJA_;_+1}^9`?|t3<(@Iq_G8oE@}Y4$>{{goL6g zrJf}-K2@wbwy%OCMD!Yc4$r;q;mgIswO~*$3lN#k+1zqmNkT)9=?wboWwG0hBIKmQ z;4(ZcnL~<`L5X}B1Sju8)dE<@iV^IFVgSYfz)8bZtibQ@Axvi3OvzO%?EYNJB3&+S zq>X5S%y!1;vZc76`K1A?P(CfiVtg_|%O=gtq#lIEx;CymTz_VZMMxo98;V5?FtP3e zsL1&u7sL)JIGGJ#jWoi z!RaSY`a=X@pLy1Scix<27Sr$O4s`4%@X;C%5!9C)2kwKw84+X%$tHQ*&w$SkZ=0C& zp-O7nPpK)P2~ME-)1PkXvz}xVwuXNoE^iGu5*LP8u|sGq(0|0cJzTiAo)tx6bG`X# zr2-Ra#fjbt7aL`CCpU$rA_psa-V_KI2XgeE%W|*{AJ%+T&M(nEgK)rC9ra1LWPF|m zq(gZirklCXmA~BjPZLQ~SL$WE**PRNi8VcWUH;$&1c!Na;~y0{HzUy0XgF_KQ~|X( zjW-fH=>MeB@ox(B~WT z>Ue5v06OsX5C;y`x+$u2tz8~F8F$icrPY?~+o|OqH*0jNRUh$lV&apKVS4XiJKKKv z{esc1`{z!*vhXr}ny|2!V)*kZxAZ03)tm{t(NJNeYHh0UlmVG1{Ac~+B-^H8Mh5CQ zQ$Z$Ez!gye~H$Qu3DNu4meyo0$ebLXJ`Dlm$Y3|2=W}&Z?#T ztI!WRh!lP^-YIofTIihKE06d0BWqzOfAKjZj$h>~Q~CWO6CM8H5?D zRhA>p9FB(TJhbQx*_VOaVWUH|zLWLnsWJTMvTpIWjMkw0$C~ho$-jwKe2HrXw{U;B zDPo1}%aO055_COaG|nqtf*&PFPpU4mHRGYyqxr~QHT`k&)iw5g1>8rt546Pzx0vCQ z#tpg2=zX;FE3bIPu(?<*hT$;d<#*qEBOY*YJ(845&4~x{=>uoCk zXEKNq_gR|!tH0(Ph;ZdVV0o{nHZSs^cR86GNyw7E`Jy!$M{E9BXg5@obMJRn5%$s$ zC=&tf?#Lt_&d4yggSK~lWl`KgSOs(W2uNl^NR=QAFVxRh((uv^JT+7Y^Ns!gIsIhbb<&ttPCv={^`N85LGCF>|u>k|kM`JDr zcwyB`^4g$&5WUhi@*D`86*CvOj6(vb2AV&%EFN8rNS5glh1%L;?QSym{bRWg{`WOU z;s??1Gj5IIv`Jsp#Pqyib}8}CPRgLfr$=b$Gi&OU`t?%Xz#FK;F9J!en0|lR z+>z_HQiiD&n=dV<`>El475o?+S9XyFa1A_AbNitVbEwex*j3$uV&DhDz3Eos0K7CcNVh4iVjQ5SXS%i3IQAZ}w^te?dDo(^W`H(0Qe zY*9rv;*z#O3Qn8)_U|%qW?~Nw+v~Hm$NPR~5F zDuSNa$Qlx%!`0FjM|^hEn$rD@6>IHT;U^5&6N#~W(AG{MK&?Tt{^kGq-lZH(l1|ptPF#9S#6YbHH>X>29dWrzMbR1 zwz2e`#2f3?@N)_}e5HQ5kUph`%>ru;KNHi=LlTZy(4#G`T+(&@44-0>{yM|#fY{4I z7d38Pri-o_(9RN{*3N+#P0^d84RmA%$6+rbJE&<~Y{Emq)|^@^6TNCV;oV&9;@(27 zu@ey`5n5mSH-6DwI)5YfWP~=Ll)EpdPC2G770Oyz2I~P}4)&e8%c(7bs}{yG;0_aG z+j(j|S9cPRNs3A$g}lH_f0$wdTX8qkI9xRX{Q6(NB@O+X=m@=0eMkEP3Ak zN3M%`usTki6??WvZl|LDGDnd>~ao36hU+gg?)#H z;c;ax=`M$&n2;p3QCcg)yiJeKf%&O1YLKV_x7w*O^mM0(jAYp2+^yTn6D4Pj9qcYwRXr=H*U|{$br=@((>)1rrWdkw@J=!v_yx z_{R=^Ar}+H=A(N4!pk1wlV%kXgwvEn$XKt0)4`f;V)7`UJpybvB+UB2rTVC$N$U=} zH*kR$08_Rk{Rx_-0DRC!6DT9ON4YzN8a(X2m{>|XS5{LDIimNJ>Zicuzbaus#!Ud- zuPlRxjFT}+xT`{U7&z1sb)2uzlz0!kOb^_=Inw;nC9i6;*5^Ot{N-9|=V|`2`Gw{G z>HS{te1&F-OvS~EFN<|qR8Wa6SHS8xdN!V)=c2)P(PR@L+3F|gbdtbhbUB4$rGesI>BTldcwH$U912uFRb z3I$Aq1n8CFCmKrUS7}e|C7W>nvGt_7Z`B*yhh%5x-w{hffBmN-8eNk?=pf=+9BHJQ zI21~co7J%sAX*iAKUl`CteeACskej%Ef8aytA~1rjeZD?!^-OW9$Ed5LlTHF9!$N{ zvlo}v5Zzh&;LV0J>NP1(j!!F|ddZeGW-zXC5tl|VCcPQ+id*&qO0hD#LO;wd!p2uB zh&m?7`K&J+zF*7DivoC!shRy*kSK+o-5B{znM`YFCxYc?JuLrroh$xIa007*|UP!Ai%uz+=-R`dcqlA~8U zeE&3DyFz*Y(t$8-t1qnvYA*qz?XAIp4a}cOA}U*orPxRXG*bN}c7EN>C5>#>MhBLT zyGHantSxh1BDiBT%R&y0o@;Vi$S=%PwltuJ6gomJZJ&PqOd0N%-){wG3%p8PMXd&4 zHVRm^TGvlZwc7e(hw|9x=hxDQ^`H~!-)kwYN+aHR1OK-VA3!?hg^X$sSn?9^tNPnw zq<~(;r8f-IDh=2VcS82uhSXhvFl3m6^sak}$T!C!^_g$>$7g?7i}h1bYpd>6x#^cd z=(4KrlPpBJx&%4iYPT!j#_{fTVJuZ~>6?EL8lr_4V{(@0l`8KqRL=j{djI#`vrZ8D zh`xRu%P3Rxx8oR`Zv)syAIxKc1OY`nXs0 z7BCOj0JwVayuC^b523ChoQkfvJ6}ubRT|NIj1H*`Vtk^Wi49}8|Fpmo*0mA${CQVV z^%}CnAb|;CCQYRVp`0+{s%;_OO=a*(EYSh zKMT@g$VzhIyg6Jm$oy}lX{O_vOwaESKH$A^==+T)cD$;*+W)Vp`_B^cIijBXuewJZ zWarKcZZ<6y6-SmdEcu%b^MYjOob%n|Z_y3W(K4eYD++6wdVHxHPYqLVq`Ozqo6{gI zEaPSw%p_@o3dGT5f9Qcof3ZQHhni6f}LG2P~8SVkoi=P{DEW$(pEHldv`sL6r4NmRPzR` z`?lySk@0=nFE~N>4}5FcH|rYTmV;#Ii?S3NOn}b0j(gX~w-5QIf4O$bN~^%oJMEKX zUBQ8oXVT=FirYfE$TN%bnIoZtZ&>X7u^>Pd*`;&2)s_ zHn=uL-))lZn$VV)*pgl z-QM=TV8g6hh0^iNz8t)p9bf*`eWB`nZZqHhbKCU|qzy6^*2YCt>rb)t z5w37+_6*?ZQr!aq=|W zty_WFR97D5Z0z*hF7;o_C~)Q>&2Y{VfTGcw>BsFvGR%&*;$g_;H9>ik(UR~G7GINA z6Waab%4}QzRraAL|D)^!VZ+mj;}PDU7cUJG3e=bCdwkDwdSinQE3XrLszeGgC11r| z#t>D?b6syUYw#|e{O_a5&8e?Hmj6_k8f+humnx_WgJ;e=I=jk&JKM1?-KkFpU*qeL zA3wLBJLoUgCJ$abUV_CZ$RF)x-59oF?e%f8#y$!$EvP${wm!!Bd4e3I#E7^E$Gd_) z4isyqz7F+=y;C3~yVGzcS>ZQAE|&(DZXM8xe7@DJY>GZ*OXvnxy4%*ldT#Vfbh`6} z2VfCipUe8=2ICrCAn>8nz4?CMhK`@d5HhEaurkQbC^PF?PNC})^znkb^C2Y)hYcgR zpMJkZ`iXuEr5#vkeYg91+uFrbat`bcUy5&Y((3O{?P<|_uj5>!V!){E$K zIZ&a*v`j-nm?XD1C{|8^Dho-c#XWU?NRG$XIXrt+iy#dC38h8lL6Lg4cEJ5!tX(m1 zsb((jsA-{{D!Ts$6&krl9HQFFT;prsxi3fVB{xFHz0sKd5%ost zk2RJ9XUeMz7UO8~5&Z@^>>_TVWDX^?8|0@Ram+vl4Zk@;Oqp2_rPoxL#c~v zdX^H2$@(*{SI(itt)2T2{o;x?CN$iizp5MkMnx?WWyT+`z%PS57K4EYZmM?#u$0xSMT)bp@f#UXEw_8{sZR zGe;485Eq$&(8YUYTSu|rv3aJB3Q$a*^Vic!Y&Ws-3JFd~#~3{9`ol%41Y7ug$BBucU-5&T3%Y_TPObakN>w79fM=L@LFp< zyCI|~H30LPDT4p66JD2TZV3F&<+@G~(iBpob22eWEh!fioSWNNj^9!MJ?7zE&wawl zw#krPUyW|lXRF2Q+efr+sK!mxmFU=UD3;Y5#H2Nc1RhHC|8=yTx#hPl-Vmx6E&wfS z-G;1|dD0?_W<7eUNLCRdisC1TZOzKYWeTW!Wl{!HoJ;Z%w++PvufM>`MuMuem|y16 zU%Ck^*&L)VO^Futf=Jh02Ad)|FfX?9qs{(Xzqc<=UZ@nI6qpJHBadU5G3`l(i=^t#rE-a1z6{Xmf^@eVo>b{~3;u zZ!*6~D&_D%56GeH;y}|v#*sg|w``Wx^}dkjL~aNXLqd2cZ^f#Q!$@h@@cpz69&9eL zz=RZDL9rTTA)IhWh{YkVFlox99V4?eQ3UAtbx7p}JMQXCQ#^bB`}*ZVi?9#Z6=?>= zki7r3Lwlx0hu>Yg;MuuDv9f-S`eRrxqZ5F<|J=;@(~IH&CPZFqwQ<k+tm3P(m zx5cbsY-KB<3Fx*XTMI{GjGL)Z(890J`Lba& zF2G`XkLUfbZ$(EBGL#ttxJ89zRSXTGn+ILO5kM%TRo%t)0XpS8(iUEg6#Y}+Frk%? z{9~|b57qJ90Snlx7%mbkK&1RlgxJYVC{-a3Z8DqkW5+Lz{CQWWsaFvG@QM#c#<`B_ z)O8|m)xmo! z5kI(#E-su5#b|!|9xO%O=yFMctCr*Lw&ETv9JRJ8up5M115)~_ukDa#-@5G+E)}dZDXj@X7^tcdD0)N03kJRI7tg(TF5odbohM zsT22Z8LsUI`ncfOZE#!IYV?X+%51&L-JU}F zKqmhX54|N1Y9&JLk{9O459k-8n&AYSap9^Eyh=cLPz=!{BiDu?ZWOOWWh0|Gyl0Pa z{r|(cBpt(>5F*IXn}TD>IGgmt4eJE>Rn z=HlTDbxMXP%k(ENipSjx;EWZB@6#A#=25OLViOo~Nrp&q61Q1Lcf5xERg;DUj;-~8 z|LJ}AnAjRNZeZW}#_MIOR{XJIsEAp9JjsaK3%Mpn=m#VAO`~o8N8SxsFQ0}#0HM15 z$S)~;ssi2|MX>4IqPde1O8k5;4lu_e6A^)HaccyKWB~&40`bpo2n)pB7E~Ocj(-Af zt38j)CI6qIbMa@o|KIrb+0iz$7)EFaGs7GziQ1gc<~)ZqhlEs9lB93jY%|A35>k!O z5;c-2YEB`C6iMBxkxHd*9d8}(+i$DDm>(8GysMbP$9P$_{OyskVP}`d^dmA8*VsRrM~e zOyDC4VZlOJXV^@}ZlY(YRL*X!!5UxgE_jw@fCW{(~@Nvwbf5y3JLu~Lo51_y)CA`ar` zEwii@$GcS3VYrOE$0_C;SSB+_?UG?eF;k#W1Gb>zMvj&ez0X7=A4e*$0vf3&_aJM1 zX=(py0MmPfJL7_Ori-mcYj1>EH0$cN5G^&f?hi5zS)}g2O4KGX=(KGJ22EC02lkaG z-oFTrksMX%qP)7$5=s7}f>U?Dh1{?AbNR|9E70AzjyhaN!m)<4M>^ni%$)nNvNs*R zl6_|E(QlkXCOGlY$2_47rzr7jq_JuQ#1V8iN7K(&;{}wGj>iM zukx+6Z#B8+dIFbDRR)&v)EU%y7S)q`#0Tw zD=9tL3v~T;{tyc(lS%H=cDc8kou(<$B85!tvk1kHDwErlGsqH_N_dXCXEyZ);8&%)cv zn6liY*Su!pw(1ugjHhMdn9x)0IhtV6AoFrm@}{$MD#Ht^&lx8QNmssax&I<4iDq%v^v9q$Q~6kHiO!gdK`%xH4&Xd!MSaB~CS_^@`}nO{G^CmPtkI z;~aB2hLA>HwP1i_WU98$3#Ysv-R(r_NWej5qvGq2b{eg3WP$C7ylzFiT-uZP0ez=( zEI0-;NmRWl2DYEGGVOPFwLH>@K^~NuEu%cf4!++or>KA20RSN-*ONzf5ods8TO2N-rilbMrMZv~OAfSR)q-~d<~4$#DnRd0E8`rkquQ2ON+7c1!e$x~_w z4cKKOsv=_SlI6L&N%XXes^dA{xmJun!=`Vat+MQ0SMGDp1Hmdv<1_~di1haTT36ZOlfh>sR>fNn3lb(mlhJNIL2`i{ybD9M8HebaK*$PS*2ORm0 z)DBC~s(z7CJkp8VV@I^qT9;YW>AhkZvnXcWcBQk~l!x7NL@N(p#r^F4as#I{ft zn!VeWL_>$lOpj905AOgmD>ZV$xzpq5CdFHQ+V<-N$F8cgZKO!WDR3=~r?UT9+J4;M(1eH;zrSzX=5m>tM}&67i8#)PdzE-nCefTTie&Z?{`F` zvk_X;YbPMMk_vgNssB^@?$LVh=tulXy{(5<6t#7|Ky%7yx#poalt|CyNfAAI^T!Aw zZf9aoTku|=s;F?6(AMBazcaQ;lQCl6hZ#$cLM@v|4Hn@@xAxSB?*|uwQ_P#D{_5m* zMy*%mjs35E@`LMZPwtkfJGN=~#3~>EGgf<^vuVhNI(~a%4gO7wI1V;?C$Koy4-sLY@+#U;5nCPKSiS#!U13yT zRzXEH=`_F8)pYA(qFc5NR4b|yDOO=(*WIFdL>;~n>|OTe{xo9nS3MW0=o->*nu;up zP`keWO3f|B(Y(_bhvYuotMguQI!R^b`MT>{k?#0Nr3C$Y%_`u9Rxz$p>QX@6UJA1v zQ-l?7emZlm<;K%D0?Pfd_cydhkDv9|Dx-qm^%pCMh8qR=5<2ttb1fe*cI)84E3B%$ zgjXH2KMt;*bZ`Ww?zP!4QR8X)d^{K3nYA0mBDD17n(H2SZ-`241qELqHAGTerL^~F znC$d3HmbKcurscvmWgEdz6+`9?&6A#WiI^G#dWS8rSV*NM{)!H*!!D9=UDBTAHp+V z=y<;0r(DGNuZ-%~hs}KRM|AIrVdadl>kD!3quOILz1Nb5T1h zwM#SUSIui1z3A$5^OXbjMnNM!-*2hfWaNrdy>i!d&60WY|2SQufjF$WsK2`6bt502 zn30Yv(L=@|RN1VMbPu+uc{M02S_%11GPuc!l9q7;|Ys>lSV_kZ;=V={I;ZPG{82R>FZRvk;&x(7(%I zZ06E|z3&;G+olaS9UV|Wd^`K~6)Subsn@<~=@3Or#Ji4J*eP>8 zHBY9DqYNA=zudmylcEBv3LM}%c5#Q}`#ywlYhb0y7c=93y(x9-cE1>S?Tf1%SSS&u zQwf5@sdBX+r6n0T$ySRbPe+H8GixKc5Itgp;V0JSVt&2vT^2?sacf(I+xH_@<`DRa zh*Mquai~xQS+i1NiEW&KY~ZMAz+Z3F|2NN5Y95nRH?nak?)p~kDMLJihUi{6j6Lbq ztKQ5l;x~kxyN}b?BN`#@x&@y9R{q@j$IscE`};3+t-=Tt9K$Zd@Om8EThnFIATooF zvQUCH>}7z+pzYYnPPH{7O!`AJMZ8u|<(PFn0ZkQ#ItxSuFVf#`8#Tu3(C7x=Sb6DKAz|*_BPUx{ zl=)a$(Vv}o%m2NNjW(S&IeBNK?){J0s{ys>pmV%E&Ydm$T8IZw6@X@+Y|BFrI;v#7 zhi4JEI8|wizSYItRKo@w8~`=8;xJ0W5a%v_5Td-bG!UB+u5&*i7gpV)j)M~j2^a4< z-0K6pKsTuzUz5;I8e(TXm$b5gj_H)c`Xm>bpjTQ#rsZ!o7p+WT!#4e*!F5?⁢~4 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

T-Yf2jQT@d57gCxXJwE9(J|Cv6BASlJdeL*g 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 literal 0 HcmV?d00001 diff --git a/selfdrive/frogpilot/assets/random_events/sounds/this_is_fine.wav b/selfdrive/frogpilot/assets/random_events/sounds/this_is_fine.wav new file mode 100644 index 0000000000000000000000000000000000000000..e43f4e59ccf6a860bd7732995970bc4b183608c8 GIT binary patch literal 192064 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

qQ%NFkg#5e+HAU(0UGhZUswUS>qp9&)zpB+x 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 literal 0 HcmV?d00001 diff --git a/selfdrive/frogpilot/assets/theme_manager.py b/selfdrive/frogpilot/assets/theme_manager.py index dabf0608..1977a6ec 100644 --- a/selfdrive/frogpilot/assets/theme_manager.py +++ b/selfdrive/frogpilot/assets/theme_manager.py @@ -1,4 +1,5 @@ import glob +import json import os import re import requests @@ -11,12 +12,14 @@ from dateutil import easter from openpilot.common.basedir import BASEDIR from openpilot.common.params import Params -from openpilot.selfdrive.frogpilot.assets.download_functions import GITHUB_URL, GITLAB_URL, download_file, get_repository_url, handle_error, handle_request_error, link_valid, verify_download -from openpilot.selfdrive.frogpilot.frogpilot_functions import ACTIVE_THEME_PATH, THEME_SAVE_PATH, update_frogpilot_toggles +from openpilot.selfdrive.frogpilot.assets.download_functions import GITHUB_URL, GITLAB_URL, download_file, get_repository_url, handle_error, handle_request_error, verify_download +from openpilot.selfdrive.frogpilot.frogpilot_functions import ACTIVE_THEME_PATH, THEME_SAVE_PATH +from openpilot.selfdrive.frogpilot.frogpilot_utilities import update_frogpilot_toggles CANCEL_DOWNLOAD_PARAM = "CancelThemeDownload" DOWNLOAD_PROGRESS_PARAM = "ThemeDownloadProgress" + def update_theme_asset(asset_type, theme, holiday_theme, params): save_location = os.path.join(ACTIVE_THEME_PATH, asset_type) @@ -49,6 +52,7 @@ def update_theme_asset(asset_type, theme, holiday_theme, params): shutil.copytree(asset_location, save_location) print(f"Copied {asset_location} to {save_location}") + def update_wheel_image(image, holiday_theme=None, random_event=True): wheel_save_location = os.path.join(ACTIVE_THEME_PATH, "steering_wheel") @@ -74,6 +78,7 @@ def update_wheel_image(image, holiday_theme=None, random_event=True): print(f"Copied {source_file} to {destination_file}") break + class ThemeManager: def __init__(self): self.params = Params() @@ -90,8 +95,83 @@ class ThemeManager: @staticmethod def is_within_week_of(target_date, now): start_of_week = target_date - timedelta(days=target_date.weekday()) - end_of_week = start_of_week + timedelta(days=6) - return start_of_week <= now <= end_of_week + return start_of_week <= now < target_date + + @staticmethod + def fetch_files(url): + try: + response = requests.get(url, timeout=10) + response.raise_for_status() + return [name for name in re.findall(r'href="[^"]*\/blob\/[^"]*\/([^"]*)"', response.text) if name.lower() != "license"] + except Exception as error: + handle_request_error(error, None, None, None, None) + return [] + + @staticmethod + def fetch_assets(repo_url): + repo = "FrogAi/FrogPilot-Resources" + branches = ["Themes", "Distance-Icons", "Steering-Wheels"] + + assets = { + "themes": {}, + "distance_icons": [], + "wheels": [] + } + + if "github" in repo_url: + base_api_url = "https://api.github.com/repos" + elif "gitlab" in repo_url: + base_api_url = "https://gitlab.com/api/v4/projects" + repo = repo.replace("/", "%2F") + else: + print(f"Unsupported repository URL: {repo_url}") + return assets + + for branch in branches: + if "github" in repo_url: + api_url = f"{base_api_url}/{repo}/git/trees/{branch}?recursive=1" + elif "gitlab" in repo_url: + api_url = f"{base_api_url}/{repo}/repository/tree?ref={branch}&recursive=true" + + try: + print(f"Fetching assets from branch '{branch}': {api_url}") + response = requests.get(api_url, timeout=10) + response.raise_for_status() + content = response.json() + + if "github" in repo_url: + items = content.get('tree', []) + elif "gitlab" in repo_url: + items = content + + for item in items: + if item["type"] != "blob": + continue + + item_path = item["path"].lower() + if branch == "Themes": + theme_name = item["path"].split('/')[0] + assets["themes"].setdefault(theme_name, set()) + if "icons" in item_path: + assets["themes"][theme_name].add("icons") + elif "signals" in item_path: + assets["themes"][theme_name].add("signals") + elif "sounds" in item_path: + assets["themes"][theme_name].add("sounds") + else: + assets["themes"][theme_name].add("colors") + + elif branch == "Distance-Icons": + assets["distance_icons"].append(item["path"]) + + elif branch == "Steering-Wheels": + assets["wheels"].append(item["path"]) + + except requests.exceptions.RequestException as error: + print(f"Error occurred when fetching from branch '{branch}': {error}") + + assets["themes"] = {k: list(v) for k, v in assets["themes"].items()} + return assets def update_holiday(self): now = date.today() @@ -150,6 +230,7 @@ class ThemeManager: "wheel_image": ("wheel_image", "stock") } + theme_changed = False for asset, (asset_type, current_value) in asset_mappings.items(): if current_value != self.previous_assets.get(asset) or current_holiday_theme != self.previous_assets.get("holiday_theme"): print(f"Updating {asset}: {asset_type} with value {current_holiday_theme if current_holiday_theme else current_value}") @@ -160,9 +241,13 @@ class ThemeManager: update_theme_asset(asset_type, current_value, current_holiday_theme, self.params) self.previous_assets[asset] = current_value + theme_changed = True - self.previous_assets["holiday_theme"] = current_holiday_theme - update_frogpilot_toggles() + if theme_changed: + if current_holiday_theme: + self.previous_assets["holiday_theme"] = current_holiday_theme + self.params_memory.put_bool("ThemeUpdated", True) + update_frogpilot_toggles() def extract_zip(self, zip_file, extract_path): print(f"Extracting {zip_file} to {extract_path}") @@ -242,26 +327,6 @@ class ThemeManager: self.handle_verification_failure(extentions, theme_component, theme_name, theme_param, download_path) - @staticmethod - def fetch_files(url): - try: - response = requests.get(url, timeout=10) - response.raise_for_status() - return [name for name in re.findall(r'href="[^"]*\/blob\/[^"]*\/([^"]*)"', response.text) if name.lower() != "license"] - except Exception as error: - handle_request_error(error, None, None, None, None) - return [] - - @staticmethod - def fetch_folders(url): - try: - response = requests.get(url, timeout=10) - response.raise_for_status() - return re.findall(r'href="[^"]*\/tree\/[^"]*\/([^"]*)"', response.text) - except Exception as error: - handle_request_error(error, None, None, None, None) - return [] - def update_theme_params(self, downloadable_colors, downloadable_distance_icons, downloadable_icons, downloadable_signals, downloadable_sounds, downloadable_wheels): def filter_existing_assets(assets, subfolder): existing_themes = { @@ -333,6 +398,7 @@ class ThemeManager: def update_themes(self, boot_run=False): if not os.path.exists(THEME_SAVE_PATH): + print(f"Theme save path does not exist: {THEME_SAVE_PATH}") return repo_url = get_repository_url() @@ -343,34 +409,34 @@ class ThemeManager: if boot_run: self.validate_themes() - if repo_url == GITHUB_URL: - base_url = "https://github.com/FrogAi/FrogPilot-Resources/blob/Themes/" - distance_icons_files = self.fetch_files("https://github.com/FrogAi/FrogPilot-Resources/blob/Distance-Icons") - wheel_files = self.fetch_files("https://github.com/FrogAi/FrogPilot-Resources/blob/Steering-Wheels") - else: - base_url = "https://gitlab.com/FrogAi/FrogPilot-Resources/-/blob/Themes/" - distance_icons_files = self.fetch_files("https://github.com/FrogAi/FrogPilot-Resources/blob/Distance-Icons") - wheel_files = self.fetch_files("https://gitlab.com/FrogAi/FrogPilot-Resources/-/blob/Steering-Wheels") + assets = self.fetch_assets(repo_url) - theme_folders = self.fetch_folders(base_url) downloadable_colors = [] downloadable_icons = [] downloadable_signals = [] downloadable_sounds = [] - for theme in theme_folders: + for theme, available_assets in assets["themes"].items(): theme_name = theme.replace('_', ' ').split('.')[0].title() + print(f"Checking theme: {theme_name}") - if link_valid(f"{base_url}{theme}/colors.zip"): + if "colors" in available_assets: downloadable_colors.append(theme_name) - if link_valid(f"{base_url}{theme}/icons.zip"): + if "icons" in available_assets: downloadable_icons.append(theme_name) - if link_valid(f"{base_url}{theme}/signals.zip"): + if "signals" in available_assets: downloadable_signals.append(theme_name) - if link_valid(f"{base_url}{theme}/sounds.zip"): + if "sounds" in available_assets: downloadable_sounds.append(theme_name) - downloadable_distance_icons = [distance_icons.replace('_', ' ').split('.')[0].title() for distance_icons in distance_icons_files] - downloadable_wheels = [wheel.replace('_', ' ').split('.')[0].title() for wheel in wheel_files] + downloadable_distance_icons = [distance_icon.replace('_', ' ').split('.')[0].title() for distance_icon in assets["distance_icons"]] + downloadable_wheels = [wheel.replace('_', ' ').split('.')[0].title() for wheel in assets["wheels"]] + + print(f"Downloadable Colors: {downloadable_colors}") + print(f"Downloadable Icons: {downloadable_icons}") + print(f"Downloadable Signals: {downloadable_signals}") + print(f"Downloadable Sounds: {downloadable_sounds}") + print(f"Downloadable Distance Icons: {downloadable_distance_icons}") + print(f"Downloadable Wheels: {downloadable_wheels}") self.update_theme_params(downloadable_colors, downloadable_distance_icons, downloadable_icons, downloadable_signals, downloadable_sounds, downloadable_wheels) diff --git a/selfdrive/frogpilot/assets/toggle_icons/advanced_quality_of_life.png b/selfdrive/frogpilot/assets/toggle_icons/advanced_quality_of_life.png deleted file mode 100644 index e84f90ac0e939c74a4fcd42ebfde1643785658cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15368 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 G;Qt4zj9z#E diff --git a/selfdrive/frogpilot/assets/toggle_icons/icon_accessibility.png b/selfdrive/frogpilot/assets/toggle_icons/icon_accessibility.png new file mode 100644 index 0000000000000000000000000000000000000000..cf80f5ef96b4b9ae96ca6c1bcecfed6205c2b9b1 GIT binary patch literal 22917 zcmXt=bySo8+s7#hsewo+DUCEJ9itf~qr1CXTDrSiVjv+%cXv*@1Qe7Jk|U&_`};fR zIh?^CY;d#tbH)38y)I%tsLJC%fAt&%1qEMGK?VwZ9sBQrjR}1Is#{wKd_nbq%1fct z&QR{7pwOZy%78UL8XpDXWP8ebU48AmJ}S&{K{qVz=Wu3etK)H=jmAcM(}^4VB_{eO zDe--9T6T0yXNk`-~ySn54%=Llz!69`Sn z6d!YuSmP!m(#$mL{)ol z#QwzxT_B*W84y+x=){p-?&B1)i^jjur+Y_mSwGV&41|W)?uH+N_8PAN?+qJ_IvsJ- z2>jsG!wy1C$OdeiwEGJzosS$9mvV~;{pX^rx^9aT{9k0hZ3Yy7vY}9)WY|nGRg^KdBygVpGJs|+ zH9}VJ;Y!q{pHzkE*IXENVI0xa$gFnjdUFX&6*+^-e5@knXk|8GRys)dfRy!*Rv{vA zz%9Qz95j#X?YV>L5C-1W!+=!!`*d!Qb=LaJWLn)tnb}&%FUQrcUDmVg^W9PwnT5E^ z(XyKMIP=7Rud7~&Vot?}?X(=S<*KX~@lR|2UsjLF)TWC_(3LJ6bpl zaeMR|os-4!&o`tw=V{(!A&&s0QY?xl@Uk(yn5zsD(qE}|fyaYNL%1s#RHNMO@Ble-!^Y`1s~(n2bum=wo!*5BqbpQ z&Ac8`2&fqGVX*tBhoVit-V*2Bn&(%DWwS*S4(cVAx?gHJ+A_$DkUry3Om!p-rNu1T zUkvZ<=N1(GMEBEjXzPwdw!R2t9?be@BLeiVJqda+qnD`?Zl*i`Fz~=f9>$0BFfH&* zSmc*bJk^u5)o&Z}lCZ-L2;>HT)J^rJlwmiMplJxW#url^BF3XK?-8)oD?!S$|K~HV z-luOU-@eSd|;n^1AQ^gN9y7t-kkEDLUhZywO@C6*zJD6ulsQj zeA~2ktmlE3$}s+*bh(4J-a`1hlST!PsjUe9sfT$Ht+&`ddC0DHT|h-y+0a~%l%VD< z8&zcUm!CJS?1$mroq?JpvOaHP(R6D!g`Vd{w1>D>lL<&>2Of9|FUzW51kep#4j!Bc zHZ@w4%dr0W;~NwL+Ws)=ChB~^pcPvUVmj-`##sEmWd)sZa9R(FveF~Np}T6ESRR9= zhl*bYu>Lu8To3w`K8K3l_g3xk#XN@Nt)s%NyZ&1krma z%~u%xx`oWz_Qi~f=d^S~hY-utUsBPpoCJTU%@HbD--b4A?J=#lB#}x5*uZWj{$AJU zW7;+ABV^S*1Jp?fyg4M9KTD(q_ca|_ptZ+FY|OajZ>_gHVA2iU3^M)Iw^d{HGE^tA zG05~{K1N4#a+?Kj$q=|^;KH4@dLHhb)>{g`y|QaK0N&I~&&dYPu?EN2R4gI|s#d9g zes;Bsjzd`O*5Ci!sw0!SU$)P0$~bO>9@s%AT3^b#p=1wS>|GD~{bEO-=eaRtpX{KA zBX`8$cLR{?V4)KOExb9$_i!(xYlem+4ZLt19)Xb1rc$rYjcSMHwaIYMmI=Y^(qW@r zt~fg!Nw{R+9JX7+Q-Pnw?it*;DjMwW?!KsyrqxgDMtO45aZE-v+MX4|T!Ira)EA!o z4D-F;5m6R&qB^cbaQOOxre=9qY|5>|&Mz6XExPPQDA^gmlrhv7DSN=KNX(5bK1hg1 zSBMbPz&=BoT{)0AC5VOn_6jpK2-4o{swmYdRSP;z9=O_wUZ7-L%N@!jV(8 zMxEmIz|Ei^%|Njjr=7O;Fd230F|J-b#u~`EREXGVFx~NJiA`#Wxn(+Z2g(xO^G0eBRPqre(Z7D|(CKd&FD_CF7eD-szK8Xh!y z$Nsy8w+|sJ6%9{(ostlCxD#7~QuPlktF8%V#t7ht>-;mxt3Wa+1|0~_R09X#HaqFW zPFCFzgwZeVahY~kZTlBGQLy2BJ-$OaE2xc^in!@t;aNZO#>aA`Jf+PX-<*LxBQiPc za3!VYnZd1Cv_G<0ze0r33W7RWNX6fy@Y%*dQ7M$QW>N7PEk+X^TAep;m!+Z&Mtr+` z3xgY2ViC|4p4%DejOkOP8o%3yj-Fp>I?wR8fm{d!Aa z7YL26#KIqD=NFrPeuSE{;;D8={?ht}Tp`qb3tf|&_0QWuZc!UYtZw;pdd9h7S@i{O zZEjqjpK~jFeE9jAz~2%-K0Y2y6IGw^ENsZ_zK0fDHH80jK?BXVWRbFtjpOUX%i9;> zpfM@I7M;e`fMD`St}v3Je=L*O33W7%VT6(L*C{vY?^A#Vq6f&JvGr8<)J$&YqEF?A z9Z5`4oIH^fu5wsD-|Z1I1vD!SR+E!gS1VV-VV<2ENZ`^EeGP5CW61nos&;OD3&c}z z=H6QG*7}ga-UD!L`P_JF*2UG`@>9QY44b#l4jF_5mtsu${?)R?UU$^qO+?%_wDv}2 zRLAFwzG(VHTfo&*7|#vdF>;LldjG}~{|s<>MTG5-17a3|6*ok^WfUpB6)v*|1A?UGa=6+4yU(W$e!$lza>B3 z;3=7ZoNic8>-_$YuiDl9p8I=7J?FIZTe`pd65WveI?a17oMPCt3U*N+pTGHWA~^F{ zO^2EfJvc5wh&-R#v_rChqJiNurZhs+hk?1a4y47Zqq}JI1d(%!Vr9`}1b zN?`q)Lw31b`rBk$CB^Oh>yj&VqhY6oaDu1g#4$=r)6YK)jd4{xy}fa)UhHVot`G&D3atU}kH#yiY%-Qr3lQRWY|Q)wpy zbuz7bo1E^%(?2B6kTbpd4BXwuS=)T!u{+^{nbl_fBhQYkJjjii39DD>VTTrR*P=Vj z?zV*&XT-r)xjd&x$(VcczckinHJO>FV;}H#gci69@!WV@6Fyk%uMB_W$Y30JciJo- zUOsg~!^ubdU9Vh?u7ll9e{Y&YX|S_2NoRel5x#Ne_kxM=tH3AECUB){z3InClkVAj zp>r2}3(>cWazJPUm(@4%j^63*GExKld~|I(JNlGf9Nu<+e*qCQuzppIeL;G zb*ma~$^EYpt2*pZ@X)8=pPIU8vd(^aqW6bl*Q1nrXN&@Zb%2>D?ZZSs5d8Q_hNA`cEM{yK10t@E;k{l3~1dtGzt*{D=kK=-Q#bh zeJgE$l31pd@7t-9bO$a@*BpO?+IL#%8GL!NMr+ZoZniKtH$QYAS>E?_z7%!YYA5c6 z+2uY1f2*j1vvq9?23dhHPMEAeZ~eBan3hkX+1v8Rq4SQn|3Yt-Y}Dz!K`uM{xPq^o zGOh)>H+t-<)UJLgQpfjPI4aRL%PlwBx~?vv^khMlPaLhca*161N)$P6GqtxrAUAFe z-+X2lG0hbFW z=xawJEB|Rn<&eZTQt?4DHgM}&?e#de&KGqU3EQGMvquc;)L$By@J+d2cTbH9a4L%^ zWYxV!P#zSheg)I7Ubc-UvGa4ts&_HMk;{$T8wW(sJGLd^&aM9Hz)$8{*oF4c;DnXg z`MFmb)0thwi=P#IB319)=qa1ErEE^0Nt)+V(AOauZrTy_e;)TOOt>EsTk=sFgz?mo zAJnSoi}tZQRgbfoj;-sxu_b%P3z&qcDD=lG_4HdEUWWrP@2vTlmqG90NCS?^wJc4Kpjtl4xL(dQ zlq*}lcxQqP@Y>PUQ(VcOOpq(afy*u>l7GIEUNbey)Qou+?!qUHKS--Af zRQM2Dp6pk-f&H}KajX=1`B=;o4LzX9vYfyiVjtKK9xAXHRk*zcG+_89+EJVOL ztHX<_m0;rT-T472CAGCm}2$Oy>f!7k%7*FZ3WAkT0mF=NQX8#ln8GqLSEWjl)gd z`o|Gg)$urfVp(I{4#-sBwXGIu?0WX#7qgZu|8+pVi921NWWXi!XT7D9 z552C*?{yBvumiC}fBq76qa87q@^4@lS-yVA;`GU%v2@`!|orEJk~IDnmO9cIcpr3Gtdh%7Co8=$6+; zeNv0zafueB*-V>Rabl4pOr4rO{NJ(rW~<|W@17jCo7(XXclVfngQ(As#w7NrF&xwt11-9(Lo>`njfXu(^!)YRVCXbhbS7a;ee7F=3Mp? z;DUKn-{gqGw;03!8F1>gTg5?Lb9;zArYNEPM^BXJoUj09`>Z-^KMvT5toq+?PMxhS zA2BHh9$(6a=wJ4gb5!PUx|3tz^jEnmLg@sLV{gz1yp4Qn=0iBG+%bJIeM60wBW^ky zHquT)ry4zf7OI81Vh)yt)ngA;XjOBqv^-3KZyT46)gcdF>Lezgn@0}Y=eKf$#>yHP zYL-#~G3WKfpjhi=^kq~P&NNMB`Ks{=#*L>=WWQky^vl|;mjW1SSVrIO!kn43ojBjn zSw|krisZJ~?liVI=>(-*`T=S*r{NfP#^I&W7(_vVz;R7@cP~WAO_?hO45$#d9LmpC z(yC-+Px>@}-@KQ?CaPN=w`jUa;#V9NRu+cFpC9qS&e&=ek2g+dD0!dE0FdAE?F*|OCUq@!of%U)danP9r1YfL*2 z7|`B!v#HEC25fC9Yk#@9m1HtoZ*h5BeDS2|7roUz7fAg(aLwH(7KGMb-SWX)L^RHF zT`~2(W!Bbo@ID!Yrrla>gsnY^ynny!)tY1TzAGHm=UZrEP`y~y;1*^aXATm4HqZZn z$#};*Z*3okiy1uj?a&j53&1!DqwS%qtg1gR(0#&}{K@RJ{&?+H6OmQE4-}sQO_Je8 z$MsD$>|YSp>YML4fXB=DJ{SH{7PanlF--LUvQd%l$Nl*_)2bNs-I`sqE6-q8FjWdm z1l7^E0koYq_}2zVn4XkaO;s~KByR@;<@8~)14tKw+hbWCh1T_lB3kTYH7vSNLD$#4 zpl$v27P4U&t`}*)4x}=RRF>{kwRSR(Eq0Z3%HJw8-N*`OXR?IFuL!g~irekt5?~^y zrK*=1L1XxZ^Ie1BAuLgiuMb?Higm{F$OVwbzX@kc{3^6{9xF|6-AWIJW+r4;RV>z&*vv@f?A<@=MAqe4S&`Kdj8*+X2Kro-A##ir@;V|MuS*ovTKi(`lZ zoktr(VGM(igT=Z{QcT5Dxz+vYRM}VBmD) zo?Rib!xNR!PO8r--)A1+4zDw#Rqx8LKc2S9fD)!d3!T^BPr#gJ8m4yt zm@>eK8d-3u9h;hllF>09l|buf;DLbebCmXF^SF$31wfG4-#}fhh_D5 zlM}9GK-spgTeBEr>%Kob32xI=hJW5Mj=4*R5@taQ9oMglp%W@!T9m*>0jfB%Qxbz) z4@)RchSpE*3w=J;`SI4D*CRl81P*^8mCOj=M=QQ|YDEr?;h!SX|AxC5?=j7i(_ra{ z3%-pMFDY!dG^h3MP?kw5TVL*8d36#2sUp5KVpp6{qs^8hLfSk(oa>+zr**;#9}hP; zZ;+;mMqZiy8TxNS*iZg8P$moxln7(Gq13r3&aC%Jfz)!DB`n6qlaJPtk3wKk}{x(=XB1Js2ZQ0EAdm;*3yj>=@Rh%HO^IC-oX;# z0f2j8ki7chg#IJJ@h{>JkQ?Z-7rfx40GBs9{hZ9|Yuf~Sqa{jWm?n{t21)ap&5GdFxtEFx(HIzEJy(J zR6`9cy@S%&8IDAGhH8Xk+#N$h{!Z^BRNzM(zt|_M)0@8Hcgxor{%L=y12A8BY4ld# zN=!C9P>%XWq!Xiz$FfdMmQ@#yLLi_q7fy2VY1A_O8Jj=l7bj-qL165V1<^pRDd3rI z+kA!?L;1J)zDSG>@h0+$`|9sKl~ce%eP;k*YfR zu(vz{2$4jOfp3^Fp~r9rMe$IKXPT{v1ctN?g=Ha5s}R<*kD}U;8#Zp-e&jf@bh$%Q zLN8d7AS2twv1uinLOtcyG!zjjS!%3|UeKLfkVM+1%}ipx>`P)HaY%d_L5d3l4IsK$ z2zfAaK1P5fROTEALNUNY8*J316Gi4dF5A|Mj1`+Y#K{x_)?FuU#K>6Dj*znsOA7xmp8fLCg7g zspb1X7xWN~JtdanxI6^*+hgoahZ<9k9&zJ|>DxZAeLnut-l$c#yj9X469*Y7hfRoo z7(5q^qT80#Z9Nr_fB8Z&{0LES(wgiWvwJfkGA|`S#w8&+XE}Qu^`x@<`=P`qPgWdZ zA?SytBXCBb>q|Kra(hwBjpxRR!sKWw5rLWU=4fUTm@3&N$XUF&7W>tWNoi@x_oZ~E4`~FK-bl2nb#Ibu|5l=azj=~hE7*xet6x~M;G!<`s_1{s6;dg#Q>+?jb|H< zA&sOBL*`E4?v#A61s>zx=`A-N9Cd8Ip{5`%;)}z`M?j$mS&&DvJX^NFs3{E+5i(|j zbuGE&7jIv$d`!}S1eR?$ucr%y@Ku+uN4ci!relQAl!Ti)(qq!$4Akh1p^?Q;aDB3u z2E5RK!m?G8lz&@>;YZ#EfcxY^Klu6N&V)$n=jWC$N~~HA@AKr_YyFjDxa9ty1+f3B z?T<}0W+(7oIf8HQj4+>1QLZ6C|AnYYf_$%*H&f2i@E$q2)$nMQ<)uLzSjeqz`)*K^=l;6>XEk^ z!Qd&_>Lr7`f$43PhT)Ofo8Xa1J~9n+^i5`6e|-NFna8>@}_{yp3IvAI<5@A z0W3{#VB&h+R*P%8o&WyyhDll{UFzb;Tfik^_|sR?RBicgwu;r>`x8&qmdD=-K7wDj zJ?*;{%NWOis;wFh^%-pY1e`K#x=$bEFt%+n^*>;($xwW~K4(z;Nff14VeUE~gIhkN zhaC@|(YY^&^DwXc&VENy^`m%@peD~@Mw0Mco`>U0hml2N(DWqagGeJ2%B@e1DN07F zXsz&17yh#1o!)vU|0kF$5?To8CXE+3k!rcUbbLRYmEkt#7oh#UVhjVZN?vB^ zFB7K17VX8_0R17)Kt(OWZ%XEhlB!_maVZtOo~7U-$f*WQXY10Sn_&d4hR`%|!dGcwL?;Io#<>)PV(@h% z$XRJP$V3w5?%ouow%eV)Bgb18xy5LWZGhvFvK>abgr%Ifu_M`YLAez~!DoYH z&1^WU+yO-;=BEP52!<56*P~z}Fl;wr_4(UqwES=YWt@blJi2eDS*^|k#oH;jTum~< z_pI!{R|ysfD-i3S1jW?9gn_9h3`~FlS2DHojZcH!`kN=$#ZC#!JoKL0dce2hZ04G1gwJ)o^dc>1IOxry~2SblhrN16mG)eeaYc0u*Z^xkr_Y|ueLa$ zpNk!KjU-Ur7Yw14S518N_p^|tM(Io5Y#=$g;~rU+hiI>`LzL_XVt|5i1e9$))9VKY z>j8;-In13^CEB1Pr9CGvE>4EXzsv)-$@@vP{224+#% zskN_?BEHU%g*ITAcp8yq4p?PSkw2pX?8sI?OtMeEi`wUo`+--OeMZQ}&|lq-g~RMT^ehc2Dlynl)9IehJC9wp>{cfr0nZ8KdBBEFOu6N|Jg1{&jl|TU zA;rhrzkbDPr6skliJw!Cn&BR-2%k0ueFRXeptpgF!WCxkUXja+#DY1?RbV7jsq%m% zV}m0f(SmSA;c1i}m!Wt5w>Qjte5y$$EbgOjwW{+MPCX~+=RGA+aB+K#(5XaMN<=(^ zBK5&tP(}!b#eDg$Ufdu?>6~*_NUWFz{@~6Z-@>OUuZ`}DS{Pt13nNv_#o$5~dZ z@bOdA+^4e{zzX*xk$u|C0t0uDY>+!3_bMH}SDH96`Ky6O79qdERAc(bjL0|pQ+qpB zQg`{QW6$HCJpi8RaD6R3lxOelgCb8u7sA^Ln1J zk3-a!US)ox=VVI>JLDA`edo_G#d(rwEe69q-+dfk6s^!(2;N4L-I!)#BJW6)$I+E2 zT!LUeh(s3G8kJ&IGHSuKarFl^25M>*Jo>B6QmfIWU$>6OkY+syqAxavGs6Drlu)yB zcXI*d&FuZ`cdaX?q1lO4(qdID)T>Y zFH<;s>SuM^JmMJ#kHx~MNGw2b=m`YE@k#2U_!X+R;dG|Q$ zkwQ=LI7Fs5^Wi}!z!7tqyq`HK@rd518RSz;{lSGdc<^~MjrNlVfJ87J#ap6TZj*k9 ziaO!I`UN4@uQnXZ@ze*xgebDufqE^6K0bE&df~MS-xuajoOqPBP3b%beRZmZ2m<&f z7@AP6Yg@z>ty)o9!V)@2hKNmKe|FTBE`Bm?1A44Zmm=7DzAmq*a4L|EiF}0thL>(y z0RD+FqJwiPvvH_tGmzFD^u&|NG_6iVRcXOKDa@my@jK<#gI(|iMvPBh=4VkjE?~hX ztPPanjx`ZQfy*Jn;iV=_9eVU{oKFLv=+_#>=J@8m>{hD8QTyXQL4c+MrrY47p-!hgDm__zHdt~*xhjgGXTf_hY;;Rv zC;nG(0SXMgdP3UM914ws^8G|wY>-XYF&F+{kw(jCfqMM1lDK{b^gqEy1YomaC}acD z@AR<7cJ|>(m+6;3(tWcrvk(x=NgYf|@7SGdqrx|u9hO~M99PkBe;0-_x1}tzJy=6b8EfbTx-5EL;PwFd2 zLx1mr7bz+YG`Shr4B@&snC(hAcl+14++#7dhe4he+gBfGCma4V&+vlNa%GX&|0%UG zho4vE7=^mr*s5pw-{qt*EQKYU!p8hrP;lPB?)S*K$BZ(dy#}Aas=y@WKB4`PXRNpM zDyDF>@MS6k_6*%0Ix1p@T83!xJ+Cng1zq~Ey$W19Kk|%A)xQ8QV8P7HY*Wc0Bc0$c zb&$7}n5xZ9nH~}O*oG2DiRd^UYlw_@4=AH!w|qaZJVe zi!Zd;)|X!I<^stBXONVz-?iK-Kbs!U2o_9aT*(xZqex`WUJ!gJP2?UMumCui8E)Y= z(lyD=8kShjg9`ImFqL54%TKur>CgfIdJWJ52IvZKWRHzhc-yCM?1$j77ATKGj>thh z@TSHY_tW7H(PmmD-1iCn16@BB07@5*?24O?uv18OGfPHfEyi$d-f6y0qGo}8nA{cc z+@&olax)FC0d0#gfD0Y&+(VytQ&8-{JMccpwMbWheHfueJdEp zI&I4Uh@=~J5-09xrf7n|w&`%fvv);^8x!BcYc2ESL8X*)oF4w{-?VLLY$y*Wrjs^D zTZ{J1|Ba!@u0+DPF~QInp+jrDFvyoWPFPLXr3a4!<>)BDbLj%_nl45|_=F@t#S<~uutyHu` zynTs|L8pk%v8da8xk}*V49^hz`SU0Hbc@&F|IIORUnOAn#Q?D~?~J}!(dLot!l}RL zR|(oSG*8yx|LrS|**@7;=0Xvrw+WzKX8k)n+Q)KhL^>(M8_723!im$+ zPs_)e1U&v+py9a#mU$TPcd^V5bSBPd?1UG0RS{15}4 z0dPW3&Ub=M5Sz2gDwVTrPZ^Rc-eUTtS28x`b&~*skKMi~gBj+y+2yM}#zADnHwO7Q z2lV+AKSo1QS`JL~6#g2y&rM8n%Wg}Yqqf!V_hH(vG7((5d%ji9@uQRj`0ON$?`9p+>K zdy%J?nz1{1MU~ZSGJtIfGi)k9gkQy_8NebTr_+m;Uvz*BQVz`d+ul8Q(U;Y4t*THt_7!0xE8dy2lu zBahZp!jhY~gI(~h9#R|=_t@%m=UaPNl72PPJSwnI65IbnPXQZfE|8VLxK~V1E!tc! z^P&5&gO5#~!rLrg@m9EWiGHyaII=^T90r_6WXsBN9v{^F^o*{B03+)~f^VhT359v)xg%hG!FNTGZ6O@t(rRDPg8lOvSqGF?nh64#~R1 zHzl2EC656<9jCw}9zE+0-0BT6sQow*z!9YCLuo^QnFNeB|NKfzOIxg+vXh(oOkq;xz_T4LN^4r=Eiz)5Eo zOhgjBU{mQ#Cg82kSMivYWW8Jvh4;!J#LeFi`0Te7v4^+W7ry_1Z-DF+U_Jl6JwxxXAjhi~A58kTzAQGj2aXvHn}M^A13;!6MP`_jY< zeXCCqBNp4c|6rAZ{we;MHtzE;~WoKvfD_ zw&gbs+&3uKW4*)y;8;Uj<-=ch02kG5TnBF$nKKLY^AlcgvU?Fgn~`FP8OEPC{ZzYX zuePsaV915CH_SKpw+^f1>a_*sXlvHxTFsB|?^Vh}ex5%eDRT2uuzDurgeaS>Q~%2q&U{^sXCv$Mbv_)JgaEv2^BK@c0nO z&i>E9-zSMApG7I$h6Moy$R#^B*Uw;!trb#E9yg z^MeUS-EfTY$|0Vx-E_o1jR??5el-n{jMm)p!^j%)EzW_g^9FBF8e#udWnM!J?k^Ik zhJ40Obz70+x{>DxBtm-Z(AI_on~~kJq?d#*r7qZ;8}DCzBT`~Dil!mZUKpmX$L`TN zwoan{gGPDX0%RrzSG#5w~ndSRpK;Na}k-(^!+H!I?OKYJr-}Dlrf5`9}IKZ7i zZp_mY^H@2reqPH^001*9*AG?pbAH`r>01Erp`OjW5I8yvUlXRb$5fj#PZmrJKJ4H$ zU2BYuvyB9o{2uXR^?Zgoj0u{Cj)9}NvBMB^Xe0E4C!>0t{NfJH{C6SG^w%md7i zk^uhD-(#Z{XcL{uBk6o+V|ZAwfpfAU%)=An7k79iRaL~V^4dB?U-&b#BJU*jqFN}* zK;Rp7q8H&2rmjDvC(MNSh9c$Vi?`gL2f*z0`MG2MUh$|{z$gTZ{3=Zn-FoF?|#%f#KV3H zwp9`Y`(Rjc4x@uAiA$!{f8w?Gb7IbEYS6`Rd&AuFV5-PpWC+vbz}S*6Rm=91TF>+u z95REJVN%hEucN-}z+~TLLbLvQh)K>Nr!S`CFD)9TS!NL`{sFGIW3#@%T~Dyj(cgn3 z_rH?pd0oBK&*9grl`cxDmNdo|d0T+wC61)KCk@mB5S?mMDz;4FF>{z~A>syBh?s8g z3xQ@pmlR`N$CKKTqJ%fL%P@*lU~Y%`lSu%=M-~BQ=N58&r`-5K z;CuNYTl|Yh!pVkjN+L`ODOBaXhj-%kN*58;KEeg60L(d?r&rv8DF>Om*Z#-N z3IGRs=k^jGmu`}G-fiNfI(NGy{{y!gAiLPU2zCETz*{n$xw ziK{GK3!8KGy1DcluMOZB?LdpZLiTI3aK{XQ6^(c5pD!dx-3k#Ek!CB)PsQne`Br*c z7~LOV%Sar*_~rJz?7dkEFk$`(NBRvX#v>=T^fE71X96w+`0l7V!gX~Ne*=>q;2Bup z26r5DM`&QF1S0+f*!&RjBm1Peb81W?t3Hy{b{HYVPsN!~f~`D9&ws6Z z=&_z3^9qD})N%Za5@cTjnFUhwnDXQdan@?f#&WJ~wByV-+oY3xU|72AyP3cAty!?h zw~#q;=UPF0rrwY6o({G=bUCh#{L{ z#r!HTI}1TECd+~zL_jJDcT5RJS(kXW!cPHyn;u~9Ow|DjK$vBcH@cj{JZ7}oM$cOV zgz@FNWtWR8CKH?PYN)XxPPxZwwYDz9svGx8E){b94Td3rArH55UK`HQ%Z8B)3*^t>a$zHYlJwX$9m>+ryhMGZ+`y9S_cvS)%mi(FI23@rPc{R4 zSz?1!ADNKxQBOO9iDvvcaiktqx+^>Yx7rTS+`|jpOwkt>q^_ZFcmbuV&*+!RK!X%L z(S2b!MhNgpQ!%{&t!=d4BK=QAdGu{q`_2@z>mxc9Yb~V>kYE&3X)(L&a)F9_tXa3L z&V@lRZr^jtuEv>SwR+QYQuIw55j&!#y>$x*zysw~CG3=$L7X}M2UqgQiYcqiA_1H* z=z%e$vIv*XaL+ZHdtT!$%+bHFb+=v*Qn^*Ci{DR7iz-Rj@cvi8ue(R~OWd>!t5pqv ziaVG`|3sYjvvqSd_^FYp-Xx(|TZ#vM4NQzkHNJ1y}oYv#%P(26`2MIfZ*9^beeCdST7h8^irLh@<>IJzU zKB)}zU{G6mhvL)8k9K4pc2kb@QF{r09L+#TxQx6v;80m3spif_EAEtA=(xJ?fT8t`KP2WAMN8&E?7{;f8 zB?Sv{H1;uIOGWb%*O!}6jjPlPA>mi(gLtR7FNU=z9b3{CO0eR=jWcv11$V%&^`qE~2?*zq`f}zUPq3{$ji!zkFYaDLR!jZfSh^La2-- zRsv``Y@lj4yF>4lee6K&iZBFbki6@umU140D{hBo+w7Fc_|$u z)9SLhhXr>mD*Rm*VDK}= z>`wqB#2WxFeCJflTWFgdzV^ z80FwFyWS`^o%oEMys`gRVl5jgXQ8k~fVa>)b+j*CwC@*w@son{EO`a2)F1&E&CAV# zCcv7D2FWn0XaeU~4dEmJ4R-@!;9@3ouz)WxHq;9vvj9auL#!I%1P zI-qO{^G!g)&xrl<9*3P@u<#T(A||+lu9;8h`!c}VZbz-bPHI>H?PrVD^$dkq&c~J? zU4RuCAQ)14KJ87d+2hdN%DpPLyL}1x|Ibf8n{tYC`4-yjE$gG_x2zwbm$KZ}+sO$i zclqXE;(Slt;%w5!G6(Sk?f)_`NqUnrrBK8;#1-@w7WA{@n4ZjU-~QH^_3{U=_EXyL zC|X;Q1XNsZmHA%ainQ;epa(IK$~rUfj`;cSISN&g(;g%JwokLUUj1j-xoN!-cSbBf zN8R#Aap|nh8e>Z&3r;+g*Cm9;nly!^u+^pU3VBBerxmWJX?ac|8nE^BayZhK-vv%nvbe33 zvf|gT)c|o;Nc|1AV(D*g!uh=3L~-^p5PXyV?GooEaR3JL}DfBzTYRRO>&3E>m9uK@Uf8M#zKuGxW= z#SMBqZnYUT<~}`WS1KBPT*!W)>^rcW(q-oEe%=$-6y;AkObhEc)sa;Xh)_=Y0qJ9= zgClLyRqLK-*5`5ov!E{`4eX6z$Dl-7s#ahq`B}S~?$JVy#j#@E7r>eC%I%1Er=Go> zxPIta;V3c4E!QFHnGCP|unxqD8_?M0&A(#W7EG*rK6rZeTbMLAn$vR9wk7OXXgtOh0!>Ug1Y>ql3Y>Lg+)!AMuthK9Xy$&gg7BCs^; zGlWsb{F33G%ui9cnvc=-k@c=LYysG)9UO}t8t$>?#LyIz$L4W~|M)+Sp00nEWh@h} z#YvUt;Y%LLH?ac_RbVwqT=^J8K-Wiohez?7i`uh4{xA?aArf1%GLgocJe-W`Sl8<0 zudX#mIt{FE%hNm1?r#VD`XqE=MpZtvocZmqaps5{D5U>lZJA^YCGRv?QyeSk zkME`%Wrds|%X#r9v!+U-6>m$5{k-sywYki1z}C;p_(G<2N%ZSxYdRM|r1tKZi7=It z$<`kruQH2ADu5#Y9_+w!9QG~jHjD*j&4t@rk7e)WW8UoL)x5Tl$9DLtotIIaO{w)62aEaD&c8&^c70g93hT4CFWv2? zS>Op*UNu6w`-fiu&0?-u>(0F!7UL%myr^|(fHv?)-gP>(D*|F*3QDalmj>e9_=W7O zG}$_w@jq6Q@LKc)>w@>#h*>a_ApFT3gc01mqM9)HApG?5C$-i}eWkV8lwEF6t9CW2 zso>5;1D@-J&5m@#o7sM%qW%A?;5;0m{^Kxige&4QLgvZN=r|#Jb6iHqm1KkvIvLrS zXN7e3$lhC4vdOxfnZ3(M2-)KI`Q1No_r33Wzn|xMJ#1{fii*?6GO3pMHM?F0{k2Wo2Bv!rvZ$391rul>WpU8s7`tIbs=Xr0 zICI1U4@=-m1k3)F8yW7B{oj==QONK?Q4{3LDmIRTf5@VsJlw}^#zdtZfRfWM9NC(C zLU}8}lJv=}qUo;?1*<&+#R!9u;ZZPD;4ht}4ub=r4BY zayr|+SJ^fzvL`1d`c0f7w9|BcxKy5k5jgK7`phLejvsdo}p?}`r zsU3G^BR9SO#g>Dctr~zw#k6EN{?%f`%A&_h{%j9#G?i0^^->AMT2Jv9mWEP~od14% zO0Q4PW<0%FVSzXoE@17!Xu92H^kMC(sYD|MD)=MpV5&Q;9qry;K9lRlMn0Ma zqyHloIhtc|){gYgfG$+C}_=f;u{~ z#k`w@oBD#M<%t+C+5SzStRvSaoa*1#l$@q$i-9C@! zzW$`_y9XaHuT7yAvZx2Nqc|rqKbN8w9H=I%dPI3$A9>O(G?1a5H~!`&wG2fz#5#W2 zP&_W(dg_rj@NiM$=50QB#2c!iZ*Cs53U>Ln@V>t)*?rsL#UA_!ZUGUaycouJoix zpSgL^fiRFDPR**Pt+8e6vrvz6pdV)AS?;)7YLIJBjsc{nwLbk$W{T)KjUOi)a}B;Y zrYfz4dK2JAb3hPjKl(@HyPde3ki-pi+tP7+QReSW*nZC5iz?rYv@B5wC)$s;; z!(PnGC#$3yj{5W`z!|a0Dsnk4C^zHlY$##L3p8L zpF$Eg!fg%%^Etp&bs@0g%vYvY9DAfg#1fNWbxKg5&blq>fofr!Wt_nypk(t&-0~iI zk5PaA>#G&`S9v1!kRgC{o&=(_QF1tHAja=<@r|F>$dL5 z5;lK+3v6Uug9iT@k$#_hbpRn{>_#<;kb4Hfu=b$e?_%*y^o46ugPOEOF~LfedLX&d z19*BW3`&OWNYp$NWP8&=7O5cGeu-wf+~Ajmn*MnuVJgd>gi=8(E^%V>;OJrMt1fGF z!ibIe;~hjz+e~!uu!_<>hYv0+#$}$0VIvsU#pcgrkGhJq1xlpcF0AgJ-3CMGQYM0B z+!x?EsVh!Bn`m*s9%(8}5BP_C$|k~pt6vA}rXSFW{7SQ)8lvpW6-C%8 z_H;mbP^#sFw@}3pp?&7K=+oKS3DQDveOoo|o{Q_gSM?3;kFHvhNwWpXY0ALNYl|%1 z5@O^^fQdLm3OEDNxgV;l@3u=1 zY@7CE-CK@E&#suizZnzHd)Rs>VmV#!^*1IzGoObs%<@^@F|=Ib2IRy6;QS3?Sf8sD z&3DrYrh5AA`lsZJrUBZw?2w_gTF5&PWQZp0KdNEPo%S5-XD;VnATshL-}c)J-_`g7Ix8l299#5ZT!z&DqV zk{79aCrgN_ab#JG{xy7}SgEF;8@)n=+*|2xv4tPSq$&MX_HxfygK%+izZ}=t#)Nv( z+B1dKfRUv&9q8c%OLDO&Z@2e@TL?HSS4SD2o|gO8wDsJ^gMFEdTCL+5C8*G~Y58@N z*b*T~AUXlQ7ZW??bT9R;?3>AW&*;Zdq(@B5kfSMisHp>P+p;a#xMQ!a z4f?>|Un}&OL}&YpEIW`(gYSKxNe8ZhIK*{O-BV@p$tM3cYotkZ{`4En9C%75D(9tJ^9Wk)60t!Yk!%E;$c? z-HL@zr1w(4)$5{A>2*oO!bfI#V_J%Tmc%cmfodBv9VN`f{aBxA?D$$3|H=iqr+_H!nBg0uXBeeJv?Xn~3d znP&Tbbf=%QvKs)^`yh#5YXqDg2#fO!xGZ$&LAhE0btH(P$ck@ezrLK;E+9x`pOuQ#4)=b zjg>mpabZ{<&MVm(y~FoHN?0(CH#DbM?BR-x2{w-VM2#ubA70#Y;2?<_eFj7zj%v;K zD{&mJz|}IVuh?zB#zXtGLQ~o~Z|q~DK!o{8)13qC6LF`(!R+^+-)00IhylKZgryg9w=icDY_vWO|1J{Wpi`fmzdCX9_kX^>|xJgKRInH!9( zZONTjxh3#8XhaOlC*RBnP5T>l&755@FgH&E-vwFx>@(@RF_B^LOB$Wf-ea()4lRGY z&)N%l*IWI26kL5~m_GPTDw0Cgrnw8qU%kB)7ayoQT|@zApye8%+#CUuSf%{oF=784 zH1q^G?7bjC1&d~$fr6G_pSSh?7;CdV$ymeU*!PdPZl(@0=eG(BRO9z$gC|H@5zZlb zd51X!n|%U?wG~FyY5$OSfb*yR=r0fJcb#80FZCPjvhZS^zbqHr4~wr1tG+T%2B}U_ z9yg-asxwR>@x;S+ZXh=Tn!lA^`8T^jh{;OfDK38l_^z{jkU*4O$~Z^YK@pANZbx| zVudu#pT$};FCJs}NhNjfDSc(ci;g@0l@;A_y^jTNzZSBPLvmD4gwiL3G$i@zC?Z{K zbb>BG$Fz|3AgtYU(6q2Hqe`#8={D7|$p;GDcqhVl``W0@n zwbgmml%C97l#m@HDG7g_L;j7;cVWxjUm(xNGG|!v-oL8PU*nVzA2{C)c7u|;##m@9 z?~ik?=J`oTVme5g1pt8i4O9l=zS@8PS}Kk#n!rtt`YW4=N(McYL>Y>-Ya#9) zESEj0kABK}ZlVp9zeE;&0B4Kw<1QyJyHo#w;A`=XoXNJNk zCT$;QaHga@bPipQEive#j}@6NDhA4V_~vJhTWeL(WmlF|Rqpx$!5>VGMj1v<)T>@X z3W>1~sXpMWr!F-GbW0~Tz2$JOX^fqjzS^Vz6Oidx`>IUQ)f^7xq}Bc|Uu(2`&6+1c z5wV!LGyCMI>>BxSFg2LLb}#NyJ%dP56dAg{S__Bha9oq=F$EPn0+GUi4-Gvfmi)y)S>vS`j=W#_^>CFW-&rGiVA{1LdZxNMp17o&p{|lH_ z^icO{S8y90I+=>!MFF7%#2X{!Fy>l>@jz~wtAc)EzR+@z3A+@BH~OqEQEBPw75Ti^ z5DKk?@Xc)^+Ik)S=HgeQ-C(N%tXyBX0D+FspaEr2Zb+f<_6=2fHC7S=O)UMJ z{p9+NO8i1L|2&BBiN}$wOKLgOLABPPcnU2#O+ebp&%Qt;q-%OP54{{03o~wF2Wxzu zVrWXORMg!O=2+M1DU*xhD-4coJtusyu6N#6Twi~tgMLQPZdmEa!c=%QZbbDCbq=4& z=f;yt6qR1u+OBN-irApiSyeG}FgcpNcj5WWVRFmPk>H?#D(Aw_bw74VCCax+`5;33 z<&AVE@NEaUk7 zO3(`+ws~IYj}39=-=$pm)3+?hJ%~h z?jB2qM^a2=2VH-$se+2SC#)+fcYZ}ZsQb|N8ysSV(*PAz@R_%_Zg z87uw`w}dye2VvU+Ma*w$qJ8;W0do2w7}~5lbq8J-@70rH4gJdRKlSpS0xKws!DR*0 zF;bGy4Zdzm@v8HD03R2BN8BV#r6LqpVUpk$Z;hTPqsOZWgw#wBgQkbR>QcTQ%y}gz zB-Z9r@p!q>kRUgcrkzW+%l$u^@|N@lwd?*Q9LpX+8i7Y-GnTHB9&_r{tuhD0`vZ_g z9uQbYSohn$9@SCl5FcLCagy7M6mg+9p*226U^Z(UTEqXKviM+&{to;y-U&DVGTiAq zYqY-}@*gl06dotk<^cT&Z6p|W4}aC(Td_<CNz^z;HPgc&SO}DVkZZ8D&B+P z1+nTPTP2-A<|M;RzYM3nz|>XD>_855N-EEBW&vMKwU+Ras=CeiOl~t&i796`2lOT7 znN{TcP;N^{`&eLVI}wg9ykg>^ie&A91;InBC!uNfV;pk{9c0lYapcC_y9J^zSLT@= zqD5UE?%f!5;TArn;9cEt(@g(yQ{YztwWR@Aayry=cGY2B-%5OkMe{E~wQiX!nQ`O=?T*@w$lQNc>TK*d3M;nktMLCP7AE~G#-w{t_`s^6LCSBe7Ebvu8JhBQgsPn0v z^Xu-eK%&f5WU zl!NeJ`TB2JaxT=Q7My8WVt<4yBT{O)m)AIR$3phJT@!g9YDBR%7H z&OVA#Mw!(_S(I;TfHL2(Q5rjg<+|;e4cBc(wc&r@71y@^<&4zvCEA!f_$`{*c(&hl zpz;BU7R@npaOsx@;Q_I5QYjy{O7fYycPX1?2-KxXwv+#oCp*)kEvWX*Hl*-Zxq4?& z(NvqM8unnk4dr;Zw=MV9;JfL~>*P~3uUrgU)qH7k`-tfRU~gTkgeaMB7rehQeB^t6 wy@w0m#WM9cRGfjd7DQi3-`lO^A0PuRX@afY`HQerCL-@$)>;9>}Qf=Ug+fS*{x@)^GbZ|02kNc*K^BS!GeA`*}Ncr`~j;9RLZUX76ft_GSSpfdF3@uuVDZo%LoDsc3tY%< zE}ICvT=rCuFE_iED%V@hm2oem+|Zj@GSelA%gf>sWD@bZjW%AiKl2@&om6&k+#F00 zOE8vfTFw;WN=r*?-BfU;YDKD;sM1HY-OcNm9gJu8G`~EZR7O2tbQoBUD`fFmuDdSi z8QR(`R&^Dtl_sg+R}(l(oY6%n<2sl{6L1@0(W+8M)`X!`S)IKJzTSS3Vz>D#rcwKT z(Eq)tN|K*R%CA36q8uyfYFO{iOaRI;9+ZQxmiP8xF6!cfZ%!GW)wyeq(`e zw};4k+j)JL7EG;?>u-OqcE;4pwQ=279YeNsUC5R{CVeSVzQ*@q z+y???nIw9e%m?Xs%G69AR}~)i)x#~eT)`sYFNtrFN(#fpkwPZlrkQ=;UM58sYRq)% z7R#3vo=)fOpY7p?#yB_V+w8_tK9kou^LE&Gyv`3MGi6U_c;7FXo9XK6YT~DJ+H;hs zmF_P|yuCb1UaT}+R5m&7O&hgYtm?9I+O1m5mTD-5*_D4VR^s}CM)_o91@))te? zX*cu=><=QZv-$;@NL%+(I?TEc1%qfJGgo7i zXViqns%t>(b@`uGxi&kgUJYm0+w1cf9FYe}6jS0{Z20i~>%#`8^+E;1>GSQ;On*_f z&#(yb>*GPTV5)ZUT^hUfJ~op+!B4--@;cCy@@>A&mo_96tnn-y?9*?W3}omrkF{G z_Pu7|Ly37@4&5gN|9a_HI(oJRo!((FXq(ho&B@3-G;H`-za1(1%FOHy#ZyJKT(s+G zFO=MZBND{sbAJI!!jhBg{d_-s2F;!AvofsO`$Slf{cWYeo|8_!ETxbZWt`?qAIMj1g5<<)CIcR<>>tk8%)qM7V00b2FX*`+U6);e+UdLL zd$YA!S!W3P`t;Z~tQGb_RTzM~2OpbWQ|Zgkyu-1ewF1>&DwPDhZl{)s9AzxoK2N{2 z^2EZ})J*JgGVhJm)ZJ^0#Wk8A$ftKRxE#A153;`3c~Un2_IkM*SZ?{1j^7%pHImH4 znZ{RiWJk`*FDYg+E3S7IML{CI>9y2vCF6ILH8b?L7f$KqXEvRjCG8R$7DNNai|HirSIcyql*W5R3w+U{*VRLw#)b~*5&HExfCv)Ea z_wHmNo!z>yEh^Ws2Zf%STPs36j?;jA1YYhcxCYUw6jH#a-P5L7RwBzRF`)EX-1?S@EnD>D zW-^TIq3dr$hrn@=Y?u*zj zZ&=5ZNDEI}u;$A{r%-{+6^uK8C>o@zY<04_-0a%=+zLe|uJ9w7$$+D3`=t34j=RWb zStZLtFv|S?fBRRp9B)Se917kinS|KubI{87`5#u%)i*A5`q!1}pnI<&9MHz@YRtyc z&>t=~vUk}l?Sdt?#fOs^c=tBD0>V-)^`xk{S&=C%w7a^aVq&m4kd)Z|H00qRpCYX8 zt$EdebAx`p79O~6px87t`fHt+|o<8yZ`}$A{FvwZ{v2TgX#rkVcLPA1av$2kK04(xTjZ7l#1Nw;LhWA6zY&kq+ zOYOqYu0*VBvlbOWx9BA10v{?~o7ZsbIvMTz97QF97Pqrw_o%Jq>lzt@Df*q{KNiy% zCM$Yo;~CsAs2o@scbB_uolubf<%9mEh#P#>QId&vqg13oSk6bNzLFQ(Ih;tRNX%j) zCHc~Ry+4MJ20wL_Ba>Z5AktGG0uxz@#mIEBP$|f6G8oH7t6S+FS{4Jqk<}6}A~qwR z&*5b5P^)q0)%I*4O5=_5)784?-JHhEC+GPnS`syYgj*lG;E3M~&sIJ2WWtn-cdPAA z=88%@Uhg3oY0{^Aow(~xt<+h@FW@!}K=twmNMmthx8IEOl2Vi8p;*rr8*U=n>!qqb zf2bkw+T4md#-;dCP*AWA0FVc=V2O@h(Kkh|IClO5T@Nf z!HKWOk5@2>N1weAy2)9)diUiWvK+)EALvaeflLNIkEZa7w4o?!G#bcmQ(zSg=ZGwE z`UQHJeMmxz3~^FUh~*R%&ZhyuuhFHemd^1;+LpZ|IeabswRVGe@eqd6S1Ys0TV^sO1v_ z{9q>_Anm&_UwYP3#o>$*c7;uk@3%Nrb46f&=>*v%HQ23LsaNP~sh>Vw5PRRoO@R(- zN~cj_Q=&U0*#$Zv3b@OTNGeTu@69}ms&K$fLVRU}K{~$jyp0&Hh`Ydl2_g39tGcJc zk595m7CptsRrK4CCoWj!HE<|IY!R4rZf%||<^JLi04t|T>V@b3o#%Bw&zOj&ZGPt* z2oT9Cr|+dS)TY+#?@WOT1@P5!oGA+aRp7eXZZZ^NiuhP=5Qg^2OQ(0CT*rLAL`}Bw zy$bp}cG#yy<(w(7=QY?YCWSO7%oB>PRc_lL626Bz3BR}c{&0Tw={jXET&31be&REu zZsVlQYNO-gT%?U0fX#E!0nG37`vJh=44qUuE$eg$Iq?elK*-WduzCCeFATk^i`$!C zstisj{oqg^ zNOcEpj|RL-h_drY{6r339=k(DzALeuo1rjxiK@dV#7w?|BaNU1!M8v8mKq(-h?_8a zbr#ADY2t=mtubJ;8nfB0YL+r2-eG$L&}PDF7Cr*VvF>=jY~Oa5^cw~Bt2w<>%R7=5 zlWL! z67hQcuuQY83q5`EU@Xqz=XrKP#D{{a%!iaoUV5ye<>5cWo?uM(79X39_O)W&rWzJxk84Uw%JrCa14-&r7x6Dbhj7O9C>|%X zPFcUdIyRXmIx$+=(CIYT&CLsZqN2JW67=!H6BEQB=8`(T)NwUe$`YD`HP)>Fx&XEt z_}=DaDhoi-TA6djK5xx0syR7mnqKW^@_9N*>WXFz*|~T&Ic$lLlai8_ILl~rGDmRF zWh_&yi$Jj6o-VOQ!cMV|p}dckO6^9FP)a&4EbiVYX8982CpFUe$Qwn-tNu786CGi& zR`PeNt`|Mm{UFml_(}@8)G|sG^D*-p@DAkMj^``F9T#I^C$+5(8^r3GUti-%9&!&U zr1fqM1$6Q}{oQPY0sL3e56KWy=!&E)_{Cxv$GB@TNA(V4p#6prqFAKMA11M%YMAOn zn;i7`e~ylh3kw|91MCw6KC)_&lcE(y1CYrFtR2Pb9^>6C;Go~G0g z$G(Xz*W`|}3Vs0{i|Qy_T)?12NoaM)@y6}@qK=CbEr~;;yUWSEy!50g68+)En%CH+ z=?;IOciy+VV^a3&e!!LF?7quFRiPXuF;**QZNg>|-4hK=-F$PuRgj8v5BSP@I(X z(sYjZ4`gQh(FPH4$ehSySu2q1M}K=6KZ0g6uk#8|fZeX0T&gvfSD2H6U?{6dr8-sg z%BZoRUbB&FHLNk8IA8HpF>U0G^uq~OegTaKu61=$4aff}&R9n+KM>|2PLk+qmpsOC zdvQ(Re6k~W-Rh@@I<9Qluv`jr*UN~(Tiz^T>)sR25#Q7jK)dy;stNEe7|n6efw^;B zJ}-Y@Kdu%bI!h7zl>jc96;lS3Gxi0J$_D@8t9GNl@X7R^Gg;SxiQAhhB(kSKl72$`cM{vA4^J}(!tFNie-av>pZ3Dn9RaY;Q*ex7LC=(Vy8%n$T4fH*w zZY3(NK4)gw1%0x6>K+9}kXgTzY;seoF28 zeO918FcAxQHC9qXr>rHUAnLXBfy#-tupteLSXE=7!h@2xYHjMFu5%ha=a3%ho1ve zX9OMHx6RZ2N9;Eu(OTo*!5^1?E+U;tK}f-(=TcVK3W1A}A&4Z&+k)2#UQxbR|q4f29pYOh$4SIE@ zTHE>9fdRcu?G!3_u30Hp1QWSu5%)GPkN;zAEbkioxvqE`IsEbi+I6|k(sCVts_OOjV&iWFz+_m9P0j~J`I0d{LO~pv zEbS>3Gs2yw>Gn%CdxW!@(9+d7)h;?Y{pw!ONZd3uLl27{aGUkke;o=(fWAZbzBqkf z23Al^pyvZ25BySKNfNtwFmsh{pL$#^;`exb>T*9XrlU@FO-A1=fYmWTz={ z8l{sX1tsOvus9=P=nuV0fww<9lRL|g($oCOO`ti3keTz<33NoWEB&R9b3^#n^wbI( zfkE5twCtOgpf06Ypu@x}IC2BYpEAmNOjfS_Q|hG*YkM0t|Dj=s2G&+THk(Co>pl=on9ss#!xe$eWVh|oy<5&|KAw?d81R%d>Y%-{x7#6DXdnrwSDjjgf`Ar0n8N$(?Z4U3bx1pCw7TFKW;E#u8BdH z5ztaVvF>cNRcKH{bwc0gUrp~CYdSVabz1N(id#_jwgHhux%nP&uB&OVm0-z6^>4~* zV83=>ZuQhFR7?^`44+!e2?CK$`WwsCz#M|4=qV&YZU%E>=ac%s0h@*fM9ZqsXtvnzJxVL<_M z1)0F)2fY@!>KdQdCqt@hJ@+;CRl1lKOj;5iLX)e%cEj+YozXyw`?Tj;sjK7;MMe{Y ziEkoYL+-6X|%MxHZ~?fs6Qj37i;ob)h_3CWM|kMF_=FxuEO|LK%F zJ3Bp6Ktf8V3+Fw;3RQRU;XyCzey4>yrK#rRI=Ec_mr+Edw_TKP)HsHpQrEXH0z2Dl zvlDXCV%n>j1LGqaUj;Y7`Mr`fG&GjTdW-?X4p30znA#Kv=NIqTt9k%{Fz30*KOEo= zt2$oxE<_bthyL@KyV6ZRLV|+iSNG|#&PTM+64w0j?Sw>ruRm2sa<}l!;eOkw-a_P{=BJFQcSDP^ImMZXK=Ce>fVo!0`;^U@K#4oD0vPBT1ahvlq%8AkMpB7!w%J2KudgNjnv-jMSr&bUf zdp0c;^V@#o?a5)uf>J(hcaNB3l5H&6Wg*nLqAE5SY?T!b3aDm@vvmINZa?cQRi)e= z;u7F?{n(&|;X@aU`WU5>2F3<_?7EY6BKg-9o9(GUpt!MoW(rY>5gdIbvwCU?O~d;ECS?0$Gh&$Lsyd z=NM9K(zrorF^v3}W_E*iFFR`*R7l~>bim5a?!NUPz)xoIeGA|c7Gor*6*;EgaecjV z^v8+7VnA%GJvI1kvsA!=Cs_A=?qgr;V1;J3_r2EPtKr}Fr(-%){Z%ac6n4G6k`wv> z97_&;d9_Xh4gzFZei ztAd8VouU5x)%{N2i^?0NuN>$@bW|s=X$zpID2WyDkO==bIZwz=S>`aoq+nQHnih|7%Ys``D$&7m6mWawj)k80# z8eCSyw4wn}j!K8@t~MD$V}cXO%}yJAoEdsIbw_*mRN6{v$^~f{+v0xlq0g90RO6H6 zqw5>$lH@va5wh5)n83s6Gfd9|tO>|EMZh9hDSW@+-t7YFz3vda|IHI3)M(7{S6AUy za7A?O)=o^(m`&{Q{Z3Fb)BB~pT|>sz$lq>|j-mmQIlh0NH|QoJoP-5=6E=7n(@@1I z!s8(XVEJ^D6Cl_h0GL_FJvEui_0OksVvpO+K6C)hKUE>dc={6tlRls5HMUQvfA^wZ z(=c#lRizpZ>nJd|+|O4lqBDS%_Zg6dbTgWQCoz5_oPN9pc9GzQh`k$SEDTNaltag;|Z@%uav@gS<*kv%NdNE*s5mH|`ez^NaYK(?UXD z$w2KO2T3WN%tj#;wC@wks4A4Gf<^3`xu1)&GC$-gLgrTN=Zb8bWF z@iIAKw%sdG8`Jhil2J-2omn4&YbI9|q*I86)zq@XtXXfRmROISbgkuHR)gad_W!d0 z>W{Ok2o!%;^Jjt)<9Nccr2ay|s`t+>Iw{HJl+n$o9 zKjQo$&q3MI5s?9B86p1_AfgJKzPtu#e3WWJ@cq~ocggn}#qcDn=YT4P#7b{!_ z3Z1J9SxCY91nc{lT<6!PJ3?_o=wC<2x|a1MQKv5=;%kNS_!=lC>+gVFZmBss=iKQB zsZGr`*#O0 zX`E`b#MRFN7xXz};HF3}ULC1a_v|g!n&SB?zMPEc-pY!tU^oCytx?ucq8m z883)r;{r4Aq3j;-!%VEvgclu*Vl&!-%kc5%9@-=RPYL+ucG1;SQeioj0)PJph8#G% zMNJk#X5~qAwjmWE-4?eo7d)r{i0b~fB4F!?+)A;T0C$dTz?j6EH&%iyvolhiSOZms zfR}1v#Bz!`l4Zm9?`ue2>;|~Wo3<^*Jx}$1+pci@1Zro+T5)4TgaS&dwe#NaUbCSl ztVqj#9P;~1By+M%>Kl^0{aWbWAaAm$D7l|USn!y}=~7pK#t>2i$5gpoyZ%Iku?AtV zLaM5t;j#FX0@cvSvCV3>IF6~TCRE)MI`QA9J;?${QQE=vN$B-@w;&r@@_HhKgj{n(`4`@8pm@;Wtwn;hI>-xjuj-j-pm9oNs_Mw(ytISZ$WcWHyA zX5BJFRzICYb`x6Pk#k!&3Zs-zsAgG&5EVTZ^gsm|tW7C4>v6{jK4g{;=FFDsnS+=&;SY!GYPKH=Ml0PSlEemV8#5X<((>*k4yjp?&(=?jl8SQ zCA2se43^gGpzgU^KlODP=A5kj(&iD4MJ3z^MrQuJQv4;ei`E;33HF<_hK*n}$7MkU zl&_kfDg^X`0dc6&tTytTg1+{FEDZBJp2{B}@%yOu2hAlFUtI`r0`%^FTHwA?O@!V- zF!c2C;%FfLv&0Q;V}CRP11RgI_BuFX{hcs;7^^&ie*`(neHhq`mgH;-8C;(!2r>w; z#^!yMl>p<}n1MQXbNa?VJ`ja(o)?UTt92#^cNceJxKN>I+-zpNtTj1(Hofi#thf&i zNWn6p=EpsExIN4j0Sqw&+}9z14X$mkemqJ(=?AI>|Lb>$dMPf8>>rPbTKN9)niv>?c)*}08~f(0-LJM!!(KSRnnWRGwx$Ht{XvQ# z%!<)5B5uC-5+a+|ol!fb9t2Y=tqpIRB#KF|qd=^J(R;lE z4TnIvteg&%o=_u6e>AA2Ud2=v@ifXYd8t#jA3iytB9)l}-pw&(6Y#zlzd;ZrEb!BJ zZ$KibAf$gwSY-jg)Fv}u1aJAFbUZ8@Fq8wI$31M@uRLnnCIK3@RC*&@^PMKVxxld& zGX^0eS~qjvv_F1;Nqn$htTLo_^X0pfP4(b3p1TBG1?-Qs$8 zhz{5XXv2)3^3<@ZevXivKguzYfJn#F1Be=Bebg&ALFHf$K-Jk!7H=A3F#9+!n?wus zHWe90fM$ArsjgG3{NFi-X^*SI2NKKza;31qTWxqIz%!RXen;2Ob3`DJuoHpvtL1m^ z1_DNl8Nb7>`>vi12G8O-b*pa(6Cn-hia6f6Ybwa0@lk(+(NXgr7ZWpS`c&6wzJ|gR zhxmc>ZPEAskeXfSL~g z2_VmdBmElrMM(7&O@T*jDb(RCIws~}^yfm6V)jHZ3NcX#mOKT;X#%ut)8jYKtAFOP z4#=-)2hl5u!Shs7v*_n-_nSw)5CWX3tiWq#pB!%sc9&k}1?zWQtY&TQw* zVEowv)M-6QXh^JS&#GGEOCLdt$5o!ChHVd3ogygvY#Pt$(P-BO$QJV2It2zSl{JuuH~!^U)=4~3 zU36N{z%9i#8J2f=DoJ$|GZ+t%o5gOOq)uG}U#-`NyulR1(&h((PqYc@_N}G=c8U2qBd3p`t@^%J_(Z;-;bOTOto*mGcBeZ}U#+>Zp z?}dhr-tg2^2!dg~^s2>57Ki$@E0MeB=f9`84p83N^aLY&H+41kO_o}`NO8@A9aFW} zOB2{rtZ=WB$)0)y6WEpKL$UYYPojDz8GqMxpvcNj@ZF4-yY=%utU3>XCgU7KJs;pi z8^7OYaejd_qnh!@Luz1Pz}h;=g>w0)&2%&&uL`XyJgZJ1=D~8f_HR)3_Jzpg6TvK~ z#v87=UTOs3^37oOVoepHIiVtCd!carP{>!-fX3M58&_ty9-?31djjE%JR3e|{1|+) zTpdpZ2CUo)Gs)!a-T$CdmBc;Df15h~DPhyJ=dX-U^z5$a=JQ+%|B!rEA`e?kw4Wl`AP|{W`ujqLVviHOm~w(>W8FUOZCVh2vYu%yV~wcWUdusgY_Wv zdIMgMs9FZQY3uZu4vn?q?K85oKXW7S>O!i@OsE3!^B3zqynb6RFrv1HuF}28p|vph z!Xuv(SlB8F8y{>Q_t;0`E_k0}zU0d9Y=}v-yiRtiQ8F?z#%f|-E49Bpo$PUUy)@53 z7?wa8?3$O|^ZZ92C=~`@BM{sI;$}P*LjOT&kD+NW+b-8tHH52^|L*2{1A;%=Z-~Q? zzAOa2W)iklwWS>8OrnKgy%(QSM z$?5)w`KcpRfK|q?)2j&s)v|AQ`vT185H!hcRi;||9K1K zwv9B1P)0#@xLAbtk$^vhl%3hIfUOhZ+*~w+Dq`}JuaYYo9V_o|5q z4gm~%R#N^sAe<<4vQ;)+q=RdN>o-&_OhG{rxMZ>lm0;psBfR-DJtd|16Ll*ocfHaA zc?#cnDiwi5E_<?Zi*?LF=9NhPC!!Z z@Hmm)2r@JQCuAGxsq9!0a7|xk)^MsLbB%4C1{xlyV|IT(61jxvDDKFYU=lB^? zB-C5;;}Z!HJ%}v3!f$BY{%p>JC;R{umwFQbhvcWmLn};upqew-{$&JPfdV`8QX3sm zxKicVh09_x$giM-7GuB8OcDyr;4h7KLOlSCsir)oeSz+1M8u>uX}(K3f{*r)owV2l zdL3n#%s7f`zKll^K0%R@8_u4bNkwFIZ zT;JXW*{CC=0*fTS#wy3@0%_70+M>^j58)IdUUF^G;=Run2%(22GEogA;TL~P%XpOa zF)Pe){-|F5R(%RpOAV!@Q5P$e6wJ$5<*R{gIA5&JXW3YFum&pmN!WWP{936?GFR#h zKF^xRKRYoYXKz1F+YJlC{V=(Law-8G9d3=kBEjk~r!_L}LM=u4$ed;cUy-SxS}&VK z|Ldec4|93Oc9iVGbX6=IlWzaJg1FWfWD4R?EMlFfZJLo6~6;F z5N4Rg=Q-^{Mj%nM0?ZFSXs&}%sGxKKnrW9@m$F}|eczu6YX|3uB}Z25TFxqi4I_s( zXM8jHHd^G(aB~cJ0x(dg>@FmQ;JN$E5io0J;70MN1e6=i2?V@w+QLO5$SIhpoIRcIFLKR;af#?a5NEx`%MH3orD zkG5sjT7_n1>veb%CK1o6;Q*GNzEt87_kzAR-Dk#pG-CN?u}v7hY2j-?4B9{;{R=_H zD(0U}lPgpuwW_PS#=lB*)LfK#xYkEbcuKqWg(1zkZ2I@LSSgzuc_J>aTiMdD zFGb8^PHQ2BQnrZMH8h(MKQ?Q=yE8!avVHlABB9b(>GTDh)N~D83F(6UJ#R5>7`=<5 zTm3H}9s2p5U9iX;A-js`78q2JZ)kvBpyG4>+)(NHF0qB2Q)3WJ{_03BA}t~aSM7}<|yZhAxvO3aumVeGO|7mx%QhA&sk}NPsxs?oI5feQ(RjBh z_JCF#%rUG?PD zew-^M#9YH_vO33LVlrFGtNE*-O2SCVvku2|CfQ;$3u6MVV@eVT7KX?}S|fgz$EdzJ zz%4?nOJ0~0{CT=*41aMqF+RawBZwWtl5Mr)BJWBb;Er() zh11DO(OA8EmR3=j?*E6?RC8saCr1hOHNR?mNtAz^{BUYW^lq-5uQG@$J6^tvc_gqarhqzw4HoYc)e| z1TO5Q6dIDa^A#0{Bt=C;(ES58KT94@^QB{SR+gduxo5F%!y+Bd9HZT?+w5`T)QpS@ zElj0nfI1_C-BI~5kU=D9s8~dr89}UA<}qgk^&H>;k2Wo9*2$}2OwXBVlC+-|pVH&5 z43DONQZko%;9PDVtOaKVI{x>Jl-4#HN^?SfxKWSgN1fa#C6uucAO#a>QyEVwUxH=} z>6j%$;t0kH23SXIC((`SAHXR}zmMwAi=tDR$`j}JPWwQ>_4UVb=VLDA#cES+O*40B z^%m)<{q7nFh?2?ai|$RKT$P>b4R-tI^q8LVVw zg)AUA;VDITgU2#|bmVN1PVI6+1xb1c+9b9d%Sm z#Je7=i}f~l`AiD1fF6ArY3=gBq@(}r+ zY4xF}zOgb|`UoEzJ9)&%i}mYys-|vcvDXxrFphG;B)39E4g;OeZyRdScsbiq(JZ*i z4>S>B}Vu<+3vJ5IbLG~RtQmGSZ4uxkj&5$HG2{_Zz zmR*5LwPxDBDCdk}`hbc3nThyDa|i%eDSu%90@G@%v3@{rc%Vfcg`p`c#KWBBrruXb)tB!rkZ zvFJ6KkNGg8Xf74(*&wS^ILyZhYQcGi{SaQWh;{iLA#BV-f@#St4VLWV=XMI1>S#^547{o7h)mJG~t3-`9M0E5GG&zspM040iqS zad=QvQ25~0HhhTC+M}68GWD%sB&GiX1R#+u9hId1OfmktHB8*{7H&KPj!eLHH~VBX zG7fVNjes4QX&}Bg-GFV>g8!a#Pv;`OiWc~I-AA} zr$O`oa=cJki76RVg40DJ0K1SzqS{yEc-eyg1L@dky1j3@Z$QC5$**`c%PbWHpwkwS z8&`CEl+)yOnWFngWyfR~umAk{b8@o?q&3BF_orGa2VGTY zo=k|7C7i|Fb~(*XUSKVP!6UmyVbu98hbW6jQ5t#z%equ9gYbdP7%I4d>VP*iccQ=cmCuU?2G@gWvrxePi8vO=1 z{q{TPJn5&Z8Z9U^96IBfSa@tdIvF4X%-F*9$LD|~oysg4QXxiF z7#NiF<~HgL^{?Ja`>S6A-79!uq>ru?I6(BBzRVzTRC$WzH^@Ko0syA9J`8zL==K{r zpz(uO({vBr!o?q8r7;~C>Be|qxLHm~`s2;1P6)@!uMYkTKm1UWx!05o2K0+Ue?X-#ivL{GXqMXStWPiXsEiPTz+5zxcSX4h5 zz#jvmr4kkQUnQ$;@KYHo*H-ncQQvjkdD7hw)yBJ0iS_$`(|4DiE@&1pw>LGL#^1Xb zh`zQ&8jXYoF8#-PFM$yYar0-`vHcGRQu``N>x-^Op z8+u`uNUMe+(_aYR!e+GwmYw8GF+@@mym21sZ+}?LmGm7WQ;^eLZm`z-^|DYB zO7benyO22er!ZiVVL1`CZt96!C%cW5pA!U_R#R!x0n}9w0MG-1Q3h^(R3{8YQm11z z1}Y_LP5@|VoTgLD#(XbX^fg~;>0VvIxS+5DF-Da5t_y|BNsrwt5r>Utv(TlO@kxQ>_Pue}rt zQDA_4JSxhTtK({pnFcz5O^$_kmgoNWhv^Uq2xzu{zZW326C%^})wEy(T)cd5J28R^ zzl8`|72dCkC=na)S_AuZK5bCSI2x8gdsMT?Gfhr_N5%VC z<-|rwf@n(#E-{XvIwvod2Gm%*|JcekDzoObL!s7iYou)p{W6E&t)S82KZ$Nj)OX~cn0bP>>Zoab_FfjSJ53(T}WjviAcx;;iaLfRU=`b|Z z$M6)Nys>Wf0aCA1zRbf7=)ZuZLWKnXm$Wr_g< zdV%xt7cC70qGLV@*F<=%auTF}8s%pgrHDX9@cM|RiHY9u!9j!iAU4!_pgZqt_QvmE z_7M${KI&XlKRHYny))YTqV1vmU*J-0n{_yW=F1P5ccEHo%hX-4QzIODv)^v`>*il5M{5HL{Y%fPZ41(Led&6D_W3%m7v?Dk0f8wg*d|NCzU zh!S#`g0xflSVgT@I|D^6n5kk}1!D2u>Y;Q^Q*^4uBywpq*5oG-e;r61AakccSRxf% z0LZd%gcviPoV(+hIuZAvU_of>sHx_e^gf4Oje@E|}Pz)g<<4(~0jWX$*$H*~WwwN&G zHHr0_eMivAxt#`@XKvbz(Ht6-kNdi1G07NR`ki?YnXKzY9cocds_A z$-f%_-r9NF@|fH^BVBEZ9R|K0`XXR6`fS2x=U4n~mfb{RHZBqtJ7a#snXS+=ImZMLd|p*AU$89u`SZ`7m!uO+@C9x$ z#IFZPAVLjQ1UPvd!TFt2%-4x~f61Q_e)GvBHqhXaJcM9ra;{pW_xg`wr?XUCwym8M zSu|O-!ax$YGO>%Vd@{`!iYZ8zNG&isJ0Dc_F+og0kP5m&X1kK+Bla7}RM=aG`6u0{ zqoF6`f8in|idSI&q$?}zXAF9uN;D{6B$>?GR^!5Uy_Fr)wKO|z5JOIw^o#d0X`4mqwBi% zBFU8sjbs0vEAG!HaXK0X=*h%g=CS*D$;9+fM&g>JoNjA?1LTi;9>BON0ZvZBePbfG zJn;PVg?E^l4j)G{dWp*kkL!T^(Pp0oTH2hqjowf2a^(jYi(9t52rOa4?_u8DW(Jw0 zo12PwG9R2L3005s2%h=gLQbLE|7aX;8HpS1c_NydiAoaq3X!+hd}=#$CXL#2s&fv4H+e&f9USb=^m0-2fx zc3#X{HT(Ai)tou}+1WhYWjfJ5i`qSSJ6&wtQFulMX|s^5kCCRwsU#BTz%qX}yX$%F zO!l{3j24R9<{uudit3M6;Z7^D7YIvQssGK5{B3fy^Q96IJo2uXK3u2N?uq;S&8vdM z#62eQt4P~IUA@iKY@u4ijP+E!=M<6IIqs1^epqMlIy(#xu&R)mq(W0azsmau^6|OO z**R3t@3?0k78=DE+7%)Xfwu#_yfaO_c-ZL@ac^>j{cv2`Mn+6CUypc6k>0034$i-w zZ=TYH%0WT}VlE>b*MSb}4s--LoZ2Q!8cfpNORrjED05a5M3kW?weNPtO+Qfs-=b~a zI=*>QXu13E#lIrXpl5-3I~RN?X6Om!l~AKW;TBkS%kACApqepJyywGyXAm9EfRZ!Y zqs8~PKinvHRzO3_+=L@ z)BHNu)~7e@4~xK*&HeS(-4KQNZN=>^_WHiZ=lb`S-`lSBSt8n(ZdYm_ z-{lBg_E1x$^jENzleeM|0FK$?^s4Y=0+v-cwI3@{PieMjFqyG}pb7W`0&sNjp8>gI zMoUDc`w#gyd+pa8BSKiv%AlWbiA7NRIh)+SkVL$a;(h8MXAQy0YJbrhNTjkdm5lXz z+BZM4RXO^@E}|yb=4N%|`MJ~KA=GU9WpL~|kPn#%wIqGkFBuSGtU3QD#i8y?Vqzi% zD!{1Zx-3NO_n%p+(Dv2e3^ROKko&ONrSWl&UV0NHKvFLfjbS8bi{$~;&q>sl_6Re(9*A&sjk%n zIjHa)7D_gWxS_-`p#>5HAx9w8S3-AVwZXuF*fWhq;M8+}zeACV_ZJ9$JgJl-ml61n z%V0RVvY>#%#N<6Lv-!3dg4&RbhDRR=lg7)y+aZwmytVspiY@4yDN)<31uuqtT_W|s zJaCv75V3CUER77v)JJ8)f4u2*culqU}&BXv(K(_b= z!+cjLv(Aw12(ia%;hyfHxcXk1RVZk?w9r_UJKyl0a689>Eab4j zEj>NZ(Bul+@IkhR1YefjM0mN$gbl|)9mCGo+0H5=z^0oA1bJ|8p8nGBJ)MwtIC~u9 ziyh56an3hv^K;Li83yyj2rP@6&fjiKs&XGyJW2_+C3r$G=elSH=PpYHDj2vF=*sgb4QuOljf$G zoP*YiQpl=&xO2IlwwH*ou-jVtf{A(-tmEsA9WB=)K+l}1=b+XWKA0hj46q|lQrOj( zd(sMmOypnw-FrTm#%_-*fT19q9EN1o)$d=DZfw=|G&ir{INpBd1XjU&{srlIP(hhN zEBkL#ZH(VHSGW@czR%3UN5b5&9tV;*g(8b8GaYo9GI0d(PE{>h*IsU|UY{6t41 zh#c8EU3el~Mp6z*P6+Rsk(F?sS7&JeHM?GMk1S!~kJTMxKt#^0`meW*QP(|= zc)G#F04jXbryL~ym&JFj1DTxvon(2rWy#lOa5wqyU6H5*ThHMrYv{>=%>f;BL(HOc z(74TuZEj}2xlu^OQv!2yX zv@F&`O^p-u;!Css!E03bvp5tyuCCls2YwO*);91L(AD+fO&r#>L8TGu%;w66Pk%8f zsN5qP3{c;`mzo80bgZ6SmNen6%@rzkQX|7h`9NV9SB}p1zf`90cP&C*pMv@x#v|LB zM(T@GIY|LO`MExsq@05L>You6#-)fLI-8zy^%4Uxz_PM35@Taw-V7r-zH#}@5NutC z-gGv+% zd7uThBX<4mzSZz(jep=iWAn`o-SzLCw>v66ucqHBhT~omaPg2%&EhV#cnqz8S|gQ{ z)J_PM{wfAOyt+Eonu_+>M+(;$%HQQ*4N-pxa3CI^UCV+8^>!Bl%9}v-s9+MZN7J zWtSCz>+c6%i=*q#+339^4B7CpnCh563`Fu$lY`wiKH^Z(1Y4-;a3wJXW&9{ z8fg?-*J1hK;KfHph$|&|LEd8lX1<^z=jr#C0BCppnTK^>r2WZ!eOvSR_WzuZK7J25 z9zR@Fny>x;~gCpyYybq_xhoZ{c{wQ!fm9h(_ZfIoun3x!rDVyw#YAd|ppZ5C~ z%9e~H#4lW9bsWkj*ot3FSsy-g*0hOdkVz#}8KL>@=Dy-C`s0yN}KYn(#GzcCWqbw-f z2EsAUndt7}7`B(weS2MLx?9uJI5?WZC+qMQLkpG&dMPTNwFZ1EnXfH?zJ;Pta)6Us ziFHm*+n?iR@k=ezRAo}0K7$_DNslgK;b;=v03~HSfzNYlCSpB0_n*LC1Oz*Rtg%?` zVmQNoE-g9eJ3PeiHSR);)8CHb1K2^E8{gamQrA=(mx_H%Bgu1$gOo|UuLbS{U%^ZP z36i$TnXh8n*8G(S%E$PJx-BDE0HGyL`{5prEo)@khsJmEywjkN93MXxaCt2IHQvg* z|F60A&(ViBI^{AJ392{zniZQB@XS;FRq(>NT7~EU|p9mj~*C2 zbOuhjQHZ!>2HoQGG89pn^`<#_bDxe5?tQ%Xi4KYH5r`@&@$dUNriNim&YzLSORSm$ z@!Nh5k_f2lOB-C%jGYZ6gI0jrVw@jIQgsLL~vsCJCWJ$j|q7dXoBp(h1rZu>y9P_CHHaeVy%z2 zk~kFPz~uBC^T%M3i0iz6Q!i2$d50_nxUk<9P}%a#^Lfz8g!xhMDp=OnS42);KKd(Z z?@ZFR7%D{L4e1Mt(s&18PzcX(-(t(*AxaQ**wOf)*?nc0K17NG(*4PncKq(`S}6`J zaLf~rd3r{ zg#9=n)Qgmz%8hBZ$_o;+759MEIOZstt*(my1Vx6Y{s+KkVIoPo0Y3H7!pA%>=L4O2 z&<;jqE)gY2VU^mh^0?TISOYS^Jt=_ZnY*LBzLWL9rwQCYqceE|d?#LsPVP{G7TeF* zcBV*{S>(HSu;X#B9}#17bC5iW(K>j)=+AKw8%Trp)}rXV!{%pGJ2ve{OWtM=rsR#q zqBObde<0c0iJ{VdpQ-#PZFu?NmP=E7q22W%e_ZR_%qk!M3SoZXAal*ntSd0w_IjXR zMc!^Q@eUe}$3(VH*d|jjf~5jM=liie`MR`qLQ`fs9N-_5;7rWG2TW+j+c@nz3PC)* zaW}`3$j1QEmF_Rn_u+l+%+&(MTm{X{+FHwhbZ*ec`#W^`@=^X5GEizWblLv`Qe0I9 z+1>MJ;WpJ5CK7hJ%!^MDgPP&v!cyk}}D{jTNTSFB1~%JSEg1Wvu9 zM{&EG{CbW}C^p)(J`}BqDkG{iGD4P>f>OW5@|))297JIlCqcizn@V4m`n>AjohHGn zNz^Nz`^NmtVM z^rqQ#E_*ArF}H)GP{%yS-I-{MTMW0Y$B*Y)Q`#<$&}U=ZSV)rE=No4AX2>^q36S`s5^Pz z`%z8=Vkl3X(UR8}7$BN@k335~GlmshQgRS^c({}|*E?}=V#>jvX#j@DoaZ20L46=a zWmFN~N&K5${q`$L0COq?y5w9`#Qdp4=@ z6M0K=m<)bCVHHADUb)AfoR3)?t>EB82Ao4pTGadgoURm9RP5B*jeS2hk~y0{1)(%d zUpEf5de*L%>pYA3o0bgw%dc|(An?b)1SxWR8*OX06wH7sv8aP?2fEwP+jceZlRG;< zhcKh(@!5gFS!Lg8nJhe7GD8U00(1*C4M3L+fWc04ZS3|4A~8pCg`ijr;s&HSQjG`8 z7P}4fONL-qu0&TVFUcA~{2+b-k-oM5l3qpSGhQE%$K^vh3egpWiMbq{1l&4hc|cL@U@nB_Jfyj?8?_~As~@lg_QJ<+LjlrC#QmhfY0nkzq9N^tMs{c&@?Ze~s5QgDE9vsIC25i-WtZwTd zuO%bxAwqHU?!4$9Douep;ymj1#lkWa`}pgFZTcV!lPzLtZHAQ z?8$Wma5uIi!}G;%UtRh0BN}tzI5nD!eR2h+A6JDGQRgteMqE2JR9?&|@CBYjEKE2e z_w^r9KfmwR3fWJv+mX6F;IY+E%;Oin^>CadgkXvlcln;y@g2A@&1Sk-;bHtD$v&Si z9UZ^tr__EYax3VN&1{iI|Cn-%0wf$GJAW{<=Ee zxETcrrE+xZg2u)rDQ%mJqS#{i-dR_E3$9846hd*AuOBkafeSZYhA zKmE@nr(`2t7yyKf3@I51O4RLixd<~n>w-r`kRB?nflfYIeJ zle(cSb1gbQtg`)hsw9gAL8_Kj_c-zKRaB%t0r&K1lm)+x3o}kV_1m}Sy@$)r1PNWs zc>)2HYE>cJetQ(aKte`(f#t?@n3J_*9}q>rr<53!Eqnl&Z*h+Tm#iQ!6qcqfdqEL*YWPhQ5zEyo)R@V^BdURbe!=D zNk*#n1UO|6O^-}7(30YBD+EbxNlqK6| z8t#CAcX8jxF9%L3^`$H*>Tg}cz9z#ytMtxC`uZ*yYMo@OijUlto`sAAS0g1Rqxu}i zR&8*n7JGaC*;Qj^YGTOWMv)F67-pneFN>HivOufLP>E3Xf1S=O&?d$(Nas4JKczj(D`)I=>0oF;Vm7^(5 zqL%6F6EFc?F)^@9mcl~HC1Xa`C%%kr{g1a>%Zn=S7>Qd%?dYVLn&;_Y!XuM!bJM<9 zloCIPO+Ca|lFTbuG@$t3?yiZ)Y{d)n$w5lsj)_+}k*qll<>4-Dp+&jLJ0Fgd%6aer zVL+RK8ly@6MbYUs2H$vwMP-^Agn#tlwgYILeM9zCTbt^;ODaKpNk;ii!fzO25Pk37 zshJ<7l!6N<*hVtOUi$7CcM=y&kKp4A6B*VOC{0)7v!i`J`96VRSPAenhN~(*_X;_i z$IP-$W|mPER*SpxJcqC-r}pwX>$5hs7>JXm&YY7l`~#-42+K>na!R9F>tgz^+2C2| zCV%T8WmLVlQ*WdJ+nLq3-V~FM|LzwepWHPjKE=vwKi=Ilp0}4rI68MuLJ>f?TVS;} zr=+R<>s>m>Uh|Kqu+dCl3{z}3<3rD4mh&@yuDcjY)W@N1VM7Ri-OyO;Ic0GY2P^CS zg8CCBM~+Vv9WF+I8k3e0bcZ|Gil4mzQ8xCO6o@RmN{dL&{tM5Q2&^>XrLWCg{mp4k zv;rMKRoD)BQakYS0%MH){%jqHD+ckdKq9T%IC!5*>IixOW8~*fBlbw9YtNukthUns z1?Tn(svU4bEhCA_#&D|$HuMVY)G6MikPmlRv&Jw`spLb#Zw-!@o}eZrLN;Z_8FzJ` z?KR#hW50kt6I~4M4Gjegvo$5Xl<6*O9zZ7P#omy$i59&aGCAvC%-l*GzycW0xPr&7 zer@`oPBViCfrx%Ao()*_CNaY6(S#PS+@MsXh&@P0b3}AXXwWiOp6lij9UY{{lXA6< zc5SdQL0Oe#(FT&J>}-;NpRa>MeN_?GHtMe%7|7@iqjB~&xQiTB`DD?!9nZ+PIBKNI z2w^wvm((s-SI4Y3x4|m>_=ZN%NK0LKJ8?rpMM2|fW<*2S|0OcPoG!t{T8}ufAh<$y z(MFSFrRD97a&N^U75O}Ai;e{+c0ODXO8O$|{;9?3Pqs$`MwEP>R+Nb6T@10Y?WwjC z@8@J%ow%^*<`$`SglQHzyM|qF>6;sZTrr_#?KDTn4;CB4I-2_Dh|z3c3TSsDi-w*s cYV{TnIqt>busaoY_h$)DNnRaQBWr>Ee{OS#m;e9( diff --git a/selfdrive/frogpilot/assets/toggle_icons/icon_advanced_device.png b/selfdrive/frogpilot/assets/toggle_icons/icon_advanced_device.png index 6d577060820f1714e0fa24d218a64aa82199f86f..f849ec1324c71605c3f84e11f35d6c5262dca4c6 100644 GIT binary patch literal 9304 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 literal 6046 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 diff --git a/selfdrive/frogpilot/assets/toggle_icons/icon_advanced_model.png b/selfdrive/frogpilot/assets/toggle_icons/icon_advanced_model.png deleted file mode 100644 index c299a1e793e24f8af93a1dc42b3a4826fd55db96..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4153 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 T<2|UK05j>GyM!;$whj3Qddq0> diff --git a/selfdrive/frogpilot/assets/toggle_icons/icon_advanced_personality.png b/selfdrive/frogpilot/assets/toggle_icons/icon_advanced_personality.png deleted file mode 100644 index 2ce09a567a1c7b0a2b724a7087e65e5a0f636d27..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9330 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 C?3}Uy diff --git a/selfdrive/frogpilot/assets/toggle_icons/icon_advanced_road.png b/selfdrive/frogpilot/assets/toggle_icons/icon_advanced_road.png deleted file mode 100644 index 765133448451276d6b7371524ec367d66ce53aaf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9050 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 O08|t-KGKLciAE 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 literal 11651 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 UQ0+W{scOUnd3Cum8B^4M0XjK|ApigX diff --git a/selfdrive/frogpilot/assets/toggle_icons/icon_personality.png b/selfdrive/frogpilot/assets/toggle_icons/icon_personality.png new file mode 100644 index 0000000000000000000000000000000000000000..4f552c59b4752bdf1a42cbda4be842525d2ba8ae GIT binary patch literal 9307 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 literal 0 HcmV?d00001 diff --git a/selfdrive/frogpilot/controls/frogpilot_planner.py b/selfdrive/frogpilot/controls/frogpilot_planner.py index 53789076..ad586694 100644 --- a/selfdrive/frogpilot/controls/frogpilot_planner.py +++ b/selfdrive/frogpilot/controls/frogpilot_planner.py @@ -12,7 +12,7 @@ from openpilot.selfdrive.frogpilot.controls.lib.frogpilot_acceleration import Fr from openpilot.selfdrive.frogpilot.controls.lib.frogpilot_events import FrogPilotEvents from openpilot.selfdrive.frogpilot.controls.lib.frogpilot_following import FrogPilotFollowing from openpilot.selfdrive.frogpilot.controls.lib.frogpilot_vcruise import FrogPilotVCruise -from openpilot.selfdrive.frogpilot.frogpilot_functions import MovingAverageCalculator, calculate_lane_width, calculate_road_curvature, update_frogpilot_toggles +from openpilot.selfdrive.frogpilot.frogpilot_utilities import MovingAverageCalculator, calculate_lane_width, calculate_road_curvature from openpilot.selfdrive.frogpilot.frogpilot_variables import CRUISING_SPEED, MODEL_LENGTH, NON_DRIVING_GEARS, PLANNER_TIME, THRESHOLD class FrogPilotPlanner: @@ -29,23 +29,21 @@ class FrogPilotPlanner: self.tracking_lead_mac = MovingAverageCalculator() self.lateral_check = False - self.lead_departing = False self.model_stopped = False self.slower_lead = False - self.taking_curve_quickly = False self.tracking_lead = False self.model_length = 0 self.road_curvature = 1 - self.tracking_lead_distance = 0 self.v_cruise = 0 def update(self, carState, controlsState, frogpilotCarControl, frogpilotCarState, frogpilotNavigation, modelData, radarless_model, radarState, frogpilot_toggles): if radarless_model: model_leads = list(modelData.leadsV3) if len(model_leads) > 0: + distance_offset = max(frogpilot_toggles.increased_stopped_distance + min(10 - v_ego, 0), 0) if not frogpilotCarState.trafficModeActive else 0 model_lead = model_leads[0] - self.lead_one.update(model_lead.x[0], model_lead.y[0], model_lead.v[0], model_lead.a[0], model_lead.prob) + self.lead_one.update(model_lead.x[0] - distance_offset, model_lead.y[0], model_lead.v[0], model_lead.a[0], model_lead.prob) else: self.lead_one.reset() else: @@ -55,41 +53,25 @@ class FrogPilotPlanner: v_ego = max(carState.vEgo, 0) v_lead = self.lead_one.vLead - driving_gear = carState.gearShifter not in NON_DRIVING_GEARS - - distance_offset = max(frogpilot_toggles.increase_stopped_distance + min(10 - v_ego, 0), 0) if not frogpilotCarState.trafficModeActive else 0 - lead_distance = self.lead_one.dRel - distance_offset - stopping_distance = STOP_DISTANCE + distance_offset - self.frogpilot_acceleration.update(controlsState, frogpilotCarState, v_cruise, 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 driving_gear: - self.cem.update(carState, frogpilotNavigation, modelData, v_ego, v_lead, frogpilot_toggles) + if run_cem and (controlsState.enabled or frogpilotCarControl.alwaysOnLateralActive) and carState.gearShifter not in NON_DRIVING_GEARS: + self.cem.update(carState, frogpilotCarState, frogpilotNavigation, modelData, v_ego, v_lead, frogpilot_toggles) else: self.cem.stop_light_detected = False - self.frogpilot_events.update(carState, controlsState, frogpilotCarControl, frogpilotCarState, modelData, frogpilot_toggles) - self.frogpilot_following.update(carState.aEgo, controlsState, frogpilotCarState, lead_distance, stopping_distance, v_ego, v_lead, frogpilot_toggles) + self.frogpilot_events.update(carState, controlsState, frogpilotCarControl, frogpilotCarState, self.lead_one.dRel, modelData, v_lead, frogpilot_toggles) + self.frogpilot_following.update(carState.aEgo, controlsState, frogpilotCarState, self.lead_one.dRel, v_ego, v_lead, frogpilot_toggles) - check_lane_width = frogpilot_toggles.adjacent_lanes or frogpilot_toggles.adjacent_path_metrics or frogpilot_toggles.blind_spot_path or frogpilot_toggles.lane_detection - if check_lane_width and v_ego >= frogpilot_toggles.minimum_lane_change_speed: + check_lane_width = frogpilot_toggles.adjacent_paths or frogpilot_toggles.adjacent_path_metrics or frogpilot_toggles.blind_spot_path or frogpilot_toggles.lane_detection + if check_lane_width and v_ego >= frogpilot_toggles.minimum_lane_change_speed or frogpilot_toggles.adjacent_lead_tracking: self.lane_width_left = calculate_lane_width(modelData.laneLines[0], modelData.laneLines[1], modelData.roadEdges[0]) self.lane_width_right = calculate_lane_width(modelData.laneLines[3], modelData.laneLines[2], modelData.roadEdges[1]) else: self.lane_width_left = 0 self.lane_width_right = 0 - if frogpilot_toggles.lead_departing_alert and self.tracking_lead and driving_gear and carState.standstill: - if self.tracking_lead_distance == 0: - self.tracking_lead_distance = lead_distance - - self.lead_departing = lead_distance - self.tracking_lead_distance > 1 - self.lead_departing &= v_lead > 1 - else: - self.lead_departing = False - self.tracking_lead_distance = 0 - self.lateral_check = v_ego >= frogpilot_toggles.pause_lateral_below_speed self.lateral_check |= frogpilot_toggles.pause_lateral_below_signal and not (carState.leftBlinker or carState.rightBlinker) self.lateral_check |= carState.standstill @@ -100,26 +82,20 @@ class FrogPilotPlanner: self.road_curvature = calculate_road_curvature(modelData, v_ego) if not carState.standstill else 1 - if frogpilot_toggles.random_events and v_ego > CRUISING_SPEED and driving_gear: - self.taking_curve_quickly = v_ego > (1 / self.road_curvature)**0.75 * 2 > CRUISING_SPEED * 2 and abs(carState.steeringAngleDeg) > 30 - else: - self.taking_curve_quickly = False - - self.tracking_lead = self.set_lead_status(lead_distance, stopping_distance, v_ego) + 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) - if self.frogpilot_events.frame == 1: # Force update to check the current state of "Always On Lateral" and holiday theme - update_frogpilot_toggles() + def set_lead_status(self, frogpilotCarState, v_ego, frogpilot_toggles): + distance_offset = max(frogpilot_toggles.increased_stopped_distance + min(10 - v_ego, 0), 0) if not frogpilotCarState.trafficModeActive else 0 - def set_lead_status(self, lead_distance, stopping_distance, v_ego): following_lead = self.lead_one.status - following_lead &= 1 < lead_distance < self.model_length + stopping_distance + following_lead &= 1 < self.lead_one.dRel - distance_offset < self.model_length + STOP_DISTANCE following_lead &= v_ego > CRUISING_SPEED or self.tracking_lead self.tracking_lead_mac.add_data(following_lead) return self.tracking_lead_mac.get_moving_average() >= THRESHOLD - def publish(self, sm, pm, frogpilot_toggles): + def publish(self, sm, pm, frogpilot_toggles, toggles_updated): frogpilot_plan_send = messaging.new_message('frogpilotPlan') frogpilot_plan_send.valid = sm.all_checks(service_list=['carState', 'controlsState']) frogpilotPlan = frogpilot_plan_send.frogpilotPlan @@ -142,6 +118,7 @@ class FrogPilotPlanner: frogpilotPlan.experimentalMode = self.cem.experimental_mode or self.frogpilot_vcruise.slc.experimental_mode frogpilotPlan.forcingStop = self.frogpilot_vcruise.forcing_stop + frogpilotPlan.forcingStopLength = self.frogpilot_vcruise.tracked_model_length frogpilotPlan.frogpilotEvents = self.frogpilot_events.events.to_msg() @@ -162,6 +139,8 @@ class FrogPilotPlanner: frogpilotPlan.speedLimitChanged = self.frogpilot_vcruise.speed_limit_changed frogpilotPlan.unconfirmedSlcSpeedLimit = self.frogpilot_vcruise.slc.desired_speed_limit + frogpilotPlan.togglesUpdated = toggles_updated + frogpilotPlan.vCruise = self.v_cruise pm.send('frogpilotPlan', frogpilot_plan_send) diff --git a/selfdrive/frogpilot/controls/lib/conditional_experimental_mode.py b/selfdrive/frogpilot/controls/lib/conditional_experimental_mode.py index 4930774b..cf070263 100644 --- a/selfdrive/frogpilot/controls/lib/conditional_experimental_mode.py +++ b/selfdrive/frogpilot/controls/lib/conditional_experimental_mode.py @@ -1,6 +1,6 @@ from openpilot.common.params import Params -from openpilot.selfdrive.frogpilot.frogpilot_functions import MovingAverageCalculator +from openpilot.selfdrive.frogpilot.frogpilot_utilities import MovingAverageCalculator from openpilot.selfdrive.frogpilot.frogpilot_variables import CITY_SPEED_LIMIT, CRUISING_SPEED, THRESHOLD class ConditionalExperimentalMode: @@ -16,14 +16,14 @@ class ConditionalExperimentalMode: self.experimental_mode = False self.stop_light_detected = False - def update(self, carState, frogpilotNavigation, modelData, v_ego, v_lead, frogpilot_toggles): + def update(self, carState, frogpilotCarState, frogpilotNavigation, modelData, v_ego, v_lead, frogpilot_toggles): if frogpilot_toggles.experimental_mode_via_press: self.status_value = self.params_memory.get_int("CEStatus") else: self.status_value = 0 if self.status_value not in {1, 2, 3, 4, 5, 6} and not carState.standstill: - self.update_conditions(self.frogpilot_planner.tracking_lead, v_ego, v_lead, frogpilot_toggles) + self.update_conditions(frogpilotCarState, self.frogpilot_planner.tracking_lead, v_ego, v_lead, frogpilot_toggles) self.experimental_mode = self.check_conditions(carState, frogpilotNavigation, modelData, self.frogpilot_planner.frogpilot_following.following_lead, v_ego, v_lead, frogpilot_toggles) self.params_memory.put_int("CEStatus", self.status_value if self.experimental_mode else 0) else: @@ -66,10 +66,10 @@ class ConditionalExperimentalMode: return False - def update_conditions(self, tracking_lead, v_ego, v_lead, frogpilot_toggles): + def update_conditions(self, frogpilotCarState, tracking_lead, v_ego, v_lead, frogpilot_toggles): self.curve_detection(tracking_lead, v_ego, frogpilot_toggles) self.slow_lead(tracking_lead, v_lead, frogpilot_toggles) - self.stop_sign_and_light(tracking_lead, v_ego, frogpilot_toggles) + self.stop_sign_and_light(frogpilotCarState, tracking_lead, v_ego, frogpilot_toggles) def curve_detection(self, tracking_lead, v_ego, frogpilot_toggles): curve_detected = (1 / self.frogpilot_planner.road_curvature)**0.5 < v_ego @@ -87,8 +87,8 @@ class ConditionalExperimentalMode: else: self.slow_lead_detected = False - def stop_sign_and_light(self, tracking_lead, v_ego, frogpilot_toggles): - if not (self.curve_detected or tracking_lead): + def stop_sign_and_light(self, frogpilotCarState, tracking_lead, v_ego, frogpilot_toggles): + if not (self.curve_detected or tracking_lead or frogpilotCarState.trafficModeActive): model_stopping = self.frogpilot_planner.model_length < v_ego * frogpilot_toggles.conditional_model_stop_time self.stop_light_mac.add_data(self.frogpilot_planner.model_stopped or model_stopping) diff --git a/selfdrive/frogpilot/controls/lib/frogpilot_acceleration.py b/selfdrive/frogpilot/controls/lib/frogpilot_acceleration.py index e3d7c70b..a239b11e 100644 --- a/selfdrive/frogpilot/controls/lib/frogpilot_acceleration.py +++ b/selfdrive/frogpilot/controls/lib/frogpilot_acceleration.py @@ -3,16 +3,14 @@ from openpilot.common.numpy_fast import clip, interp from openpilot.selfdrive.car.interfaces import ACCEL_MIN, ACCEL_MAX from openpilot.selfdrive.controls.lib.longitudinal_planner import A_CRUISE_MIN, get_max_accel -from openpilot.selfdrive.frogpilot.frogpilot_variables import CITY_SPEED_LIMIT, CRUISING_SPEED +A_CRUISE_MIN_ECO = A_CRUISE_MIN / 2 +A_CRUISE_MIN_SPORT = A_CRUISE_MIN * 2 -A_CRUISE_MIN_ECO = A_CRUISE_MIN / 4 -A_CRUISE_MIN_SPORT = A_CRUISE_MIN / 2 - - # MPH = [ 0., 11, 22, 34, 45, 56, 89] -A_CRUISE_MAX_BP_CUSTOM = [ 0., 5., 10., 15., 20., 25., 40.] + # MPH = [0.0, 11, 22, 34, 45, 56, 89] +A_CRUISE_MAX_BP_CUSTOM = [0.0, 5., 10., 15., 20., 25., 40.] A_CRUISE_MAX_VALS_ECO = [2.0, 1.5, 1.0, 0.8, 0.6, 0.4, 0.2] A_CRUISE_MAX_VALS_SPORT = [3.0, 2.5, 2.0, 1.5, 1.0, 0.8, 0.6] -A_CRUISE_MAX_VALS_SPORT_PLUS = [4.0, 3.5, 3.0, 2.0, 1.0, 0.8, 0.6] +A_CRUISE_MAX_VALS_SPORT_PLUS = [4.0, 3.5, 3.0, 2.5, 2.0, 1.5, 1.0] def get_max_accel_eco(v_ego): return interp(v_ego, A_CRUISE_MAX_BP_CUSTOM, A_CRUISE_MAX_VALS_ECO) @@ -24,10 +22,7 @@ def get_max_accel_sport_plus(v_ego): return interp(v_ego, A_CRUISE_MAX_BP_CUSTOM, A_CRUISE_MAX_VALS_SPORT_PLUS) def get_max_accel_ramp_off(max_accel, v_cruise, v_ego): - return interp(v_ego, [0., v_cruise * 0.5, v_cruise * 0.75, v_cruise], [max_accel, max_accel, max_accel / 2, max_accel / 4]) - -def get_max_accel_ramp_off_highway(max_accel, v_cruise, v_ego): - return interp(v_ego, [0., v_cruise * 0.75, v_cruise], [max_accel, max_accel, max_accel / 2]) + return interp(v_cruise - v_ego, [0., 1., 5., 10.], [0., 0.25, 0.75, max_accel]) def get_max_allowed_accel(v_ego): return interp(v_ego, [0., 5., 20.], [4.0, 4.0, 2.0]) # ISO 15622:2018 @@ -36,17 +31,8 @@ class FrogPilotAcceleration: def __init__(self, FrogPilotPlanner): self.frogpilot_planner = FrogPilotPlanner - self.acceleration_jerk = 0 - self.base_acceleration_jerk = 0 - self.base_speed_jerk = 0 - self.danger_jerk = 0 self.max_accel = 0 self.min_accel = 0 - self.safe_obstacle_distance = 0 - self.safe_obstacle_distance_stock = 0 - self.speed_jerk = 0 - self.stopped_equivalence_factor = 0 - self.t_follow = 0 def update(self, controlsState, frogpilotCarState, v_cruise, v_ego, frogpilot_toggles): eco_gear = frogpilotCarState.ecoGear @@ -77,17 +63,10 @@ class FrogPilotAcceleration: if frogpilot_toggles.human_acceleration: if self.frogpilot_planner.frogpilot_following.following_lead and not frogpilotCarState.trafficModeActive: self.max_accel = clip(self.frogpilot_planner.lead_one.aLeadK, get_max_accel_sport_plus(v_ego), get_max_allowed_accel(v_ego)) - if self.frogpilot_planner.v_cruise < CITY_SPEED_LIMIT: - self.max_accel = get_max_accel_ramp_off(self.max_accel, self.frogpilot_planner.v_cruise, v_ego) - else: - self.max_accel = get_max_accel_ramp_off_highway(self.max_accel, self.frogpilot_planner.v_cruise, v_ego) - - self.max_accel = min(self.max_accel, frogpilot_toggles.max_desired_accel) + self.max_accel = min(get_max_accel_ramp_off(self.max_accel, self.frogpilot_planner.v_cruise, v_ego), self.max_accel) if controlsState.experimentalMode: self.min_accel = ACCEL_MIN - elif min(self.frogpilot_planner.frogpilot_vcruise.mtsc_target, self.frogpilot_planner.frogpilot_vcruise.vtsc_target) < v_cruise: - self.min_accel = A_CRUISE_MIN elif frogpilot_toggles.map_deceleration and (eco_gear or sport_gear): if eco_gear: self.min_accel = A_CRUISE_MIN_ECO diff --git a/selfdrive/frogpilot/controls/lib/frogpilot_events.py b/selfdrive/frogpilot/controls/lib/frogpilot_events.py index 3793ed7c..147a54fd 100644 --- a/selfdrive/frogpilot/controls/lib/frogpilot_events.py +++ b/selfdrive/frogpilot/controls/lib/frogpilot_events.py @@ -23,6 +23,7 @@ class FrogPilotEvents: self.accel30_played = False self.accel35_played = False self.accel40_played = False + self.always_on_lateral_active_previously = False self.dejaVu_played = False self.fcw_played = False self.firefox_played = False @@ -33,16 +34,16 @@ class FrogPilotEvents: self.previous_traffic_mode = False self.random_event_played = False self.stopped_for_light = False + self.this_is_fine_played = False self.vCruise69_played = False self.youveGotMail_played = False self.frame = 0 self.max_acceleration = 0 self.random_event_timer = 0 + self.tracking_lead_distance = 0 - def update(self, carState, controlsState, frogpilotCarControl, frogpilotCarState, modelData, frogpilot_toggles): - v_cruise = max(controlsState.vCruise, controlsState.vCruiseCluster) - + def update(self, carState, controlsState, frogpilotCarControl, frogpilotCarState, lead_distance, modelData, v_lead, frogpilot_toggles): self.events.clear() if self.random_event_played: @@ -63,12 +64,21 @@ class FrogPilotEvents: else: self.stopped_for_light = False - if not self.holiday_theme_played and frogpilot_toggles.current_holiday_theme != None and self.frame >= 10: + if not self.holiday_theme_played and frogpilot_toggles.current_holiday_theme is not None and self.frame >= 10: self.events.add(EventName.holidayActive) self.holiday_theme_played = True - if self.frogpilot_planner.lead_departing: - self.events.add(EventName.leadDeparting) + if frogpilot_toggles.lead_departing_alert and self.frogpilot_planner.tracking_lead and carState.standstill: + if self.tracking_lead_distance == 0: + self.tracking_lead_distance = lead_distance + + lead_departing = lead_distance - self.tracking_lead_distance > 1 + lead_departing &= v_lead > 1 + + if lead_departing: + self.events.add(EventName.leadDeparting) + 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 frogpilot_toggles.random_events: @@ -109,10 +119,11 @@ class FrogPilotEvents: self.random_event_played = True self.max_acceleration = 0 - if not self.dejaVu_played and self.frogpilot_planner.taking_curve_quickly: - self.events.add(EventName.dejaVuCurve) - self.dejaVu_played = True - self.random_event_played = True + if not self.dejaVu_played and carState.vEgo > CRUISING_SPEED * 2: + if carState.vEgo > (1 / self.frogpilot_planner.road_curvature)**0.75 * 2 > CRUISING_SPEED * 2 and abs(carState.steeringAngleDeg) > 30: + self.events.add(EventName.dejaVuCurve) + self.dejaVu_played = True + self.random_event_played = True if not self.no_entry_alert_played and frogpilotCarControl.noEntryEventTriggered: self.events.add(EventName.hal9000) @@ -125,6 +136,8 @@ class FrogPilotEvents: event_choices.append("firefoxSteerSaturated") if not self.goat_played: event_choices.append("goatSteerSaturated") + if not self.this_is_fine_played: + event_choices.append("thisIsFineSteerSaturated") if self.frame % 100 == 0 and event_choices: event_choice = random.choice(event_choices) @@ -138,9 +151,14 @@ class FrogPilotEvents: update_wheel_image("goat") self.params_memory.put_bool("UpdateWheelImage", True) self.goat_played = True + elif event_choice == "thisIsFineSteerSaturated": + self.events.add(EventName.thisIsFineSteerSaturated) + update_wheel_image("this_is_fine") + self.params_memory.put_bool("UpdateWheelImage", True) + self.this_is_fine_played = True self.random_event_played = True - if not self.vCruise69_played and 70 > v_cruise * (1 if frogpilot_toggles.is_metric else CV.KPH_TO_MPH) >= 69: + if not self.vCruise69_played and 70 > max(controlsState.vCruise, controlsState.vCruiseCluster) * (1 if frogpilot_toggles.is_metric else CV.KPH_TO_MPH) >= 69: self.events.add(EventName.vCruise69) self.vCruise69_played = True self.random_event_played = True @@ -157,7 +175,7 @@ class FrogPilotEvents: self.random_event_played = True self.always_on_lateral_active_previously = frogpilotCarControl.alwaysOnLateralActive - if frogpilot_toggles.speed_limit_alert and self.frogpilot_planner.frogpilot_vcruise.speed_limit_changed: + 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 self.params.get("NNFFModelName", encoding='utf-8') is not None: diff --git a/selfdrive/frogpilot/controls/lib/frogpilot_following.py b/selfdrive/frogpilot/controls/lib/frogpilot_following.py index 2be1a0b9..1c385fa2 100644 --- a/selfdrive/frogpilot/controls/lib/frogpilot_following.py +++ b/selfdrive/frogpilot/controls/lib/frogpilot_following.py @@ -1,6 +1,5 @@ from openpilot.common.numpy_fast import clip, interp - -from openpilot.selfdrive.controls.lib.longitudinal_mpc_lib.long_mpc import COMFORT_BRAKE, get_jerk_factor, get_safe_obstacle_distance, get_stopped_equivalence_factor, get_T_FOLLOW +from openpilot.selfdrive.controls.lib.longitudinal_mpc_lib.long_mpc import COMFORT_BRAKE, STOP_DISTANCE, get_jerk_factor, get_safe_obstacle_distance, get_stopped_equivalence_factor, get_T_FOLLOW from openpilot.selfdrive.frogpilot.frogpilot_variables import CITY_SPEED_LIMIT, CRUISING_SPEED @@ -23,7 +22,7 @@ class FrogPilotFollowing: self.stopped_equivalence_factor = 0 self.t_follow = 0 - def update(self, aEgo, controlsState, frogpilotCarState, lead_distance, stopping_distance, v_ego, v_lead, frogpilot_toggles): + def update(self, aEgo, controlsState, frogpilotCarState, lead_distance, v_ego, v_lead, frogpilot_toggles): if frogpilotCarState.trafficModeActive: if aEgo >= 0: self.base_acceleration_jerk = interp(v_ego, TRAFFIC_MODE_BP, frogpilot_toggles.traffic_mode_jerk_acceleration) @@ -68,17 +67,17 @@ class FrogPilotFollowing: self.safe_obstacle_distance = int(get_safe_obstacle_distance(v_ego, self.t_follow)) self.safe_obstacle_distance_stock = self.safe_obstacle_distance self.stopped_equivalence_factor = int(get_stopped_equivalence_factor(v_lead)) - self.update_follow_values(lead_distance, stopping_distance, v_ego, v_lead, frogpilot_toggles) + self.update_follow_values(lead_distance, v_ego, v_lead, frogpilot_toggles) else: self.safe_obstacle_distance = 0 self.safe_obstacle_distance_stock = 0 self.stopped_equivalence_factor = 0 - def update_follow_values(self, lead_distance, stopping_distance, v_ego, v_lead, frogpilot_toggles): + 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(stopping_distance - v_ego, 0) * max(v_lead - v_ego, 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 @@ -87,7 +86,7 @@ class FrogPilotFollowing: # 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: distance_factor = max(lead_distance - (v_lead * self.t_follow), 1) - far_lead_offset = max(lead_distance - (v_ego * self.t_follow) - stopping_distance + (v_lead - CITY_SPEED_LIMIT), 0) + 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) if frogpilot_toggles.human_following: self.acceleration_jerk *= braking_offset diff --git a/selfdrive/frogpilot/controls/lib/frogpilot_vcruise.py b/selfdrive/frogpilot/controls/lib/frogpilot_vcruise.py index cc1b4a56..09a9bab4 100644 --- a/selfdrive/frogpilot/controls/lib/frogpilot_vcruise.py +++ b/selfdrive/frogpilot/controls/lib/frogpilot_vcruise.py @@ -36,16 +36,18 @@ class FrogPilotVCruise: self.vtsc_target = 0 def update(self, carState, controlsState, frogpilotCarControl, frogpilotCarState, frogpilotNavigation, modelData, v_cruise, v_ego, frogpilot_toggles): - force_stop_enabled = frogpilot_toggles.force_stops and self.frogpilot_planner.cem.stop_light_detected and controlsState.enabled - force_stop_enabled &= self.frogpilot_planner.model_length < 100 - force_stop_enabled &= self.override_force_stop_timer <= 0 + force_stop = frogpilot_toggles.force_stops and self.frogpilot_planner.cem.stop_light_detected and controlsState.enabled + force_stop &= self.frogpilot_planner.model_length < 150 + force_stop &= self.override_force_stop_timer <= 0 - self.force_stop_timer = self.force_stop_timer + DT_MDL if force_stop_enabled else 0 + self.force_stop_timer = self.force_stop_timer + DT_MDL if force_stop else 0 + + force_stop_enabled = self.force_stop_timer >= 1 self.override_force_stop |= not frogpilot_toggles.force_standstill and carState.standstill and self.frogpilot_planner.tracking_lead self.override_force_stop |= carState.gasPressed self.override_force_stop |= frogpilotCarControl.resumePressed - self.override_force_stop &= self.force_stop_timer >= 1 + self.override_force_stop &= force_stop_enabled if self.override_force_stop: self.override_force_stop_timer = 10 @@ -79,8 +81,8 @@ class FrogPilotVCruise: self.slc.update(frogpilotCarState.dashboardSpeedLimit, controlsState.enabled, frogpilotNavigation.navigationSpeedLimit, v_cruise, v_ego, frogpilot_toggles) unconfirmed_slc_target = self.slc.desired_speed_limit - if (frogpilot_toggles.speed_limit_alert or frogpilot_toggles.speed_limit_confirmation_lower or frogpilot_toggles.speed_limit_confirmation_higher) 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 + if (frogpilot_toggles.speed_limit_changed_alert or frogpilot_toggles.speed_limit_confirmation_lower or frogpilot_toggles.speed_limit_confirmation_higher) 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 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 @@ -142,13 +144,10 @@ class FrogPilotVCruise: self.forcing_stop = True v_cruise = -1 - elif self.force_stop_timer >= 1 and not self.override_force_stop: - if self.tracked_model_length == 0: - self.tracked_model_length = self.frogpilot_planner.model_length - + elif force_stop_enabled and not self.override_force_stop: self.forcing_stop = True - self.tracked_model_length -= v_ego * DT_MDL - v_cruise = min((self.tracked_model_length / PLANNER_TIME) - 1, v_cruise) + self.tracked_model_length = max(self.tracked_model_length - v_ego * DT_MDL, 0) + v_cruise = min((self.tracked_model_length // PLANNER_TIME), v_cruise) else: if not self.frogpilot_planner.cem.stop_light_detected: @@ -156,7 +155,7 @@ class FrogPilotVCruise: self.forcing_stop = False - self.tracked_model_length = 0 + self.tracked_model_length = self.frogpilot_planner.model_length 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])) diff --git a/selfdrive/frogpilot/controls/lib/map_turn_speed_controller.py b/selfdrive/frogpilot/controls/lib/map_turn_speed_controller.py index a29e9108..f72e374e 100644 --- a/selfdrive/frogpilot/controls/lib/map_turn_speed_controller.py +++ b/selfdrive/frogpilot/controls/lib/map_turn_speed_controller.py @@ -2,14 +2,14 @@ import json import math -from openpilot.common.conversions import Conversions as CV from openpilot.common.numpy_fast import interp from openpilot.common.params import Params +from openpilot.selfdrive.frogpilot.frogpilot_utilities import calculate_distance_to_point +from openpilot.selfdrive.frogpilot.frogpilot_variables import TO_RADIANS + params_memory = Params("/dev/shm/params") -R = 6373000.0 # approximate radius of earth in meters -TO_RADIANS = math.pi / 180 TARGET_JERK = -0.6 # m/s^3 should match up with the long planner TARGET_ACCEL = -1.2 # m/s^2 should match up with the long planner TARGET_OFFSET = 1.0 # seconds - This controls how soon before the curve you reach the target velocity. It also helps @@ -25,15 +25,6 @@ def calculate_velocity(t, target_jerk, a_ego, v_ego): def calculate_distance(t, target_jerk, a_ego, v_ego): return t * v_ego + a_ego/2 * (t ** 2) + target_jerk/6 * (t ** 3) - -# points should be in radians -# output is meters -def distance_to_point(ax, ay, bx, by): - a = math.sin((bx-ax)/2)*math.sin((bx-ax)/2) + math.cos(ax) * math.cos(bx)*math.sin((by-ay)/2)*math.sin((by-ay)/2) - c = 2 * math.atan2(math.sqrt(a), math.sqrt(1-a)) - - return R * c # in meters - class MapTurnSpeedController: def __init__(self): self.target_lat = 0.0 @@ -62,7 +53,7 @@ class MapTurnSpeedController: target_velocity = target_velocities[i] tlat = target_velocity["latitude"] tlon = target_velocity["longitude"] - d = distance_to_point(lat * TO_RADIANS, lon * TO_RADIANS, tlat * TO_RADIANS, tlon * TO_RADIANS) + d = calculate_distance_to_point(lat * TO_RADIANS, lon * TO_RADIANS, tlat * TO_RADIANS, tlon * TO_RADIANS) distances.append(d) if d < min_dist: min_dist = d diff --git a/selfdrive/frogpilot/controls/lib/speed_limit_controller.py b/selfdrive/frogpilot/controls/lib/speed_limit_controller.py index 1e9dab50..feaf2495 100644 --- a/selfdrive/frogpilot/controls/lib/speed_limit_controller.py +++ b/selfdrive/frogpilot/controls/lib/speed_limit_controller.py @@ -1,128 +1,103 @@ # PFEIFER - SLC - Modified by FrogAi for FrogPilot import json -import math -from openpilot.common.conversions import Conversions as CV from openpilot.common.params import Params -from openpilot.selfdrive.frogpilot.frogpilot_variables import FrogPilotVariables - -R = 6373000.0 # approximate radius of earth in meters -TO_RADIANS = math.pi / 180 - -# points should be in radians -# output is meters -def distance_to_point(ax, ay, bx, by): - a = math.sin((bx - ax) / 2) * math.sin((bx - ax) / 2) + math.cos(ax) * math.cos(bx) * math.sin((by - ay) / 2) * math.sin((by - ay) / 2) - c = 2 * math.atan2(math.sqrt(a), math.sqrt(1 - a)) - return R * c # in meters +from openpilot.selfdrive.frogpilot.frogpilot_utilities import calculate_distance_to_point +from openpilot.selfdrive.frogpilot.frogpilot_variables import TO_RADIANS class SpeedLimitController: def __init__(self): - self.frogpilot_toggles = FrogPilotVariables.toggles - FrogPilotVariables.update_frogpilot_params() - self.params = Params() self.params_memory = Params("/dev/shm/params") - self.car_speed_limit = 0 # m/s - self.map_speed_limit = 0 # m/s - self.max_speed_limit = 0 # m/s - self.nav_speed_limit = 0 # m/s - self.prv_speed_limit = self.params.get_float("PreviousSpeedLimit") + self.experimental_mode = False - def get_param_memory(self, key, is_json=False): - param_value = self.params_memory.get(key) - if param_value is None: - return {} if is_json else 0.0 - return json.loads(param_value) if is_json else float(param_value) + self.desired_speed_limit = 0 + self.offset = 0 + self.speed_limit = 0 - def update_previous_limit(self, speed_limit): - if self.prv_speed_limit != speed_limit: - self.params.put_float_nonblocking("PreviousSpeedLimit", speed_limit) - self.prv_speed_limit = speed_limit + self.previous_speed_limit = self.params.get_float("PreviousSpeedLimit") - def update(self, dashboardSpeedLimit, enabled, navigationSpeedLimit, v_cruise, v_ego, frogpilot_toggles): - self.car_speed_limit = dashboardSpeedLimit - self.write_map_state(v_ego) - self.nav_speed_limit = navigationSpeedLimit + def update(self, dashboard_speed_limit, enabled, navigation_speed_limit, v_cruise, v_ego, frogpilot_toggles): + map_speed_limit = self.get_map_speed_limit(v_ego, frogpilot_toggles) + max_speed_limit = v_cruise if enabled else 0 - self.max_speed_limit = v_cruise if enabled else 0 + self.speed_limit = self.get_speed_limit(dashboard_speed_limit, map_speed_limit, max_speed_limit, navigation_speed_limit, frogpilot_toggles) + self.offset = self.get_offset(frogpilot_toggles) + self.desired_speed_limit = self.get_desired_speed_limit() - self.frogpilot_toggles = frogpilot_toggles + self.experimental_mode = self.speed_limit == 0 and frogpilot_toggles.slc_fallback_experimental_mode - def write_map_state(self, v_ego): - self.map_speed_limit = self.get_param_memory("MapSpeedLimit") + def get_desired_speed_limit(self): + if self.speed_limit > 1: + if self.previous_speed_limit != self.speed_limit: + self.params.put_float_nonblocking("PreviousSpeedLimit", self.speed_limit) + self.previous_speed_limit = self.speed_limit + return self.speed_limit + self.offset + return 0 - next_map_speed_limit = self.get_param_memory("NextMapSpeedLimit", is_json=True) - next_map_speed_limit_value = next_map_speed_limit.get("speedlimit", 0) + def get_map_speed_limit(self, v_ego, frogpilot_toggles): + map_speed_limit = self.params_memory.get_float("MapSpeedLimit") + + next_map_speed_limit = json.loads(self.params_memory.get("NextMapSpeedLimit")) next_map_speed_limit_lat = next_map_speed_limit.get("latitude", 0) next_map_speed_limit_lon = next_map_speed_limit.get("longitude", 0) + next_map_speed_limit_value = next_map_speed_limit.get("speedlimit", 0) - position = self.get_param_memory("LastGPSPosition", is_json=True) + position = json.loads(self.params_memory.get("LastGPSPosition")) lat = position.get("latitude", 0) lon = position.get("longitude", 0) if next_map_speed_limit_value > 1: - d = distance_to_point(lat * TO_RADIANS, lon * TO_RADIANS, next_map_speed_limit_lat * TO_RADIANS, next_map_speed_limit_lon * TO_RADIANS) + d = calculate_distance_to_point(lat * TO_RADIANS, lon * TO_RADIANS, next_map_speed_limit_lat * TO_RADIANS, next_map_speed_limit_lon * TO_RADIANS) - if self.prv_speed_limit < next_map_speed_limit_value: - max_d = self.frogpilot_toggles.map_speed_lookahead_higher * v_ego + if self.previous_speed_limit < next_map_speed_limit_value: + max_d = frogpilot_toggles.map_speed_lookahead_higher * v_ego else: - max_d = self.frogpilot_toggles.map_speed_lookahead_lower * v_ego + max_d = frogpilot_toggles.map_speed_lookahead_lower * v_ego if d < max_d: - self.map_speed_limit = next_map_speed_limit_value + map_speed_limit = next_map_speed_limit_value - @property - def experimental_mode(self): - return self.speed_limit == 0 and self.frogpilot_toggles.slc_fallback_experimental + return map_speed_limit - @property - def desired_speed_limit(self): - if self.speed_limit > 1: - self.update_previous_limit(self.speed_limit) - return self.speed_limit + self.offset - return 0 - - @property - def offset(self): + def get_offset(self, frogpilot_toggles): if self.speed_limit < 13.5: - return self.frogpilot_toggles.offset1 + return frogpilot_toggles.speed_limit_offset1 if self.speed_limit < 24: - return self.frogpilot_toggles.offset2 + return frogpilot_toggles.speed_limit_offset2 if self.speed_limit < 29: - return self.frogpilot_toggles.offset3 - return self.frogpilot_toggles.offset4 + return frogpilot_toggles.speed_limit_offset3 + return frogpilot_toggles.speed_limit_offset4 - @property - def speed_limit(self): - limits = [self.car_speed_limit, self.map_speed_limit, self.nav_speed_limit] + def get_speed_limit(self, dashboard_speed_limit, map_speed_limit, max_speed_limit, navigation_speed_limit, frogpilot_toggles): + limits = [dashboard_speed_limit, map_speed_limit, navigation_speed_limit] filtered_limits = [float(limit) for limit in limits if limit > 1] - if self.frogpilot_toggles.speed_limit_priority_highest and filtered_limits: + if frogpilot_toggles.speed_limit_priority_highest and filtered_limits: return max(filtered_limits) - if self.frogpilot_toggles.speed_limit_priority_lowest and filtered_limits: + if frogpilot_toggles.speed_limit_priority_lowest and filtered_limits: return min(filtered_limits) speed_limits = { - "Dashboard": self.car_speed_limit, - "Offline Maps": self.map_speed_limit, - "Navigation": self.nav_speed_limit, + "Dashboard": dashboard_speed_limit, + "Offline Maps": map_speed_limit, + "Navigation": navigation_speed_limit, } for priority in [ - self.frogpilot_toggles.speed_limit_priority1, - self.frogpilot_toggles.speed_limit_priority2, - self.frogpilot_toggles.speed_limit_priority3, + frogpilot_toggles.speed_limit_priority1, + frogpilot_toggles.speed_limit_priority2, + frogpilot_toggles.speed_limit_priority3, ]: - if speed_limits.get(priority, 0) in filtered_limits: + if speed_limits.get(priority) in filtered_limits: return speed_limits[priority] - if self.frogpilot_toggles.slc_fallback_previous: - return self.prv_speed_limit + if frogpilot_toggles.slc_fallback_previous_speed_limit: + return self.previous_speed_limit - if self.frogpilot_toggles.use_set_speed: - return self.max_speed_limit + if frogpilot_toggles.slc_fallback_set_speed: + return max_speed_limit return 0 diff --git a/selfdrive/frogpilot/fleetmanager/fleet_manager.py b/selfdrive/frogpilot/fleetmanager/fleet_manager.py index 34aff472..38f7535e 100644 --- a/selfdrive/frogpilot/fleetmanager/fleet_manager.py +++ b/selfdrive/frogpilot/fleetmanager/fleet_manager.py @@ -35,7 +35,7 @@ from openpilot.common.realtime import set_core_affinity from openpilot.common.swaglog import cloudlog from openpilot.system.hardware.hw import Paths -from openpilot.selfdrive.frogpilot.frogpilot_variables import FrogPilotVariables +from openpilot.selfdrive.frogpilot.frogpilot_variables import has_prime app = Flask(__name__) @@ -190,7 +190,7 @@ def addr_input(): return redirect(url_for('nav_confirmation', addr=addr, lon=lon, lat=lat)) else: return render_template("error.html") - elif FrogPilotVariables.has_prime: + elif has_prime(): return render_template("prime.html") # amap stuff elif SearchInput == 1: diff --git a/selfdrive/frogpilot/fleetmanager/helpers.py b/selfdrive/frogpilot/fleetmanager/helpers.py index b0bfd7c6..d20700ac 100644 --- a/selfdrive/frogpilot/fleetmanager/helpers.py +++ b/selfdrive/frogpilot/fleetmanager/helpers.py @@ -43,6 +43,8 @@ from openpilot.system.loggerd.xattr_cache import getxattr from urllib.parse import parse_qs, quote import openpilot.system.sentry as sentry +from openpilot.selfdrive.frogpilot.frogpilot_utilities import update_frogpilot_toggles + pi = 3.1415926535897932384626 x_pi = 3.14159265358979324 * 3000.0 / 180.0 a = 6378245.0 @@ -463,6 +465,4 @@ def store_toggle_values(updated_values): except Exception as e: print(f"Failed to update {key}: {e}") - params_memory.put_bool("FrogPilotTogglesUpdated", True) - time.sleep(1) - params_memory.put_bool("FrogPilotTogglesUpdated", False) + update_frogpilot_toggles() diff --git a/selfdrive/frogpilot/frogpilot_functions.py b/selfdrive/frogpilot/frogpilot_functions.py index ed917cab..fae07c24 100644 --- a/selfdrive/frogpilot/frogpilot_functions.py +++ b/selfdrive/frogpilot/frogpilot_functions.py @@ -1,59 +1,33 @@ import datetime -import errno import filecmp import glob -import numpy as np import os import shutil import subprocess -import sys import tarfile -import threading import time -import urllib.request from openpilot.common.basedir import BASEDIR -from openpilot.common.numpy_fast import interp, mean 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.frogpilot_utilities import copy_if_exists, run_cmd + ACTIVE_THEME_PATH = os.path.join(BASEDIR, "selfdrive", "frogpilot", "assets", "active_theme") MODELS_PATH = os.path.join("/data", "models") RANDOM_EVENTS_PATH = os.path.join(BASEDIR, "selfdrive", "frogpilot", "assets", "random_events") THEME_SAVE_PATH = os.path.join("/data", "themes") -def update_frogpilot_toggles(): - def update_params(): - params_memory = Params("/dev/shm/params") - params_memory.put_bool("FrogPilotTogglesUpdated", True) - time.sleep(1) - params_memory.put_bool("FrogPilotTogglesUpdated", False) - threading.Thread(target=update_params).start() - -def cleanup_backups(directory, limit, minimum_backup_size=0, compressed=False): - 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 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 old_backup in backups[limit:]: - 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_directory(backup, destination, success_message, fail_message, minimum_backup_size=0, params=None, compressed=False): compressed_backup = f"{destination}.tar.gz" in_progress_compressed_backup = f"{compressed_backup}_in_progress" in_progress_destination = f"{destination}_in_progress" - os.makedirs(in_progress_destination, exist_ok=False) - try: + os.makedirs(in_progress_destination, exist_ok=False) + if not compressed: if os.path.exists(destination): print("Backup already exists. Aborting.") @@ -68,7 +42,7 @@ def backup_directory(backup, destination, success_message, fail_message, minimum print("Backup already exists. Aborting.") return - run_cmd(["sudo", "rsync", "-avq", os.path.join(backup, "."), in_progress_destination], success_message, fail_message) + run_cmd(["sudo", "rsync", "-avq", os.path.join(backup, ".")], in_progress_destination, success_message, fail_message) with tarfile.open(in_progress_compressed_backup, "w:gz") as tar: tar.add(in_progress_destination, arcname=os.path.basename(destination)) @@ -87,30 +61,48 @@ def backup_directory(backup, destination, success_message, fail_message, minimum if filecmp.cmp(compressed_backup, latest_backup, shallow=False): run_cmd(["sudo", "rm", "-rf", compressed_backup], f"Deleted identical backup: {os.path.basename(compressed_backup)}", f"Failed to delete identical backup: {os.path.basename(compressed_backup)}") else: - if filecmp.dircmp(destination, latest_backup).left_only == []: + if not subprocess.call(["rsync", "-nrc", "--delete", destination + "/", latest_backup + "/"]): run_cmd(["sudo", "rm", "-rf", destination], f"Deleted identical backup: {os.path.basename(destination)}", f"Failed to delete identical backup: {os.path.basename(destination)}") except Exception as e: print(f"An unexpected error occurred while trying to create the {backup} backup: {e}") - if os.path.exists(in_progress_destination): - try: - shutil.rmtree(in_progress_destination) - except Exception as e: - print(f"An unexpected error occurred while trying to delete the incomplete {backup} backup: {e}") - if os.path.exists(in_progress_compressed_backup): try: os.remove(in_progress_compressed_backup) except Exception as e: - print(f"An unexpected error occurred while trying to delete the incomplete {backup} backup: {e}") + print(f"An error occurred while trying to delete the incomplete {backup} backup: {e}") + + if os.path.exists(in_progress_destination): + try: + shutil.rmtree(in_progress_destination) + except Exception as e: + print(f"An error occurred while trying to delete the incomplete {backup} backup: {e}") + + +def cleanup_backups(directory, limit, minimum_backup_size=0, 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"): + if 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)}"): + backups.remove(backup) + + if compressed: + for backup in backups[:]: + if os.path.getsize(backup) < minimum_backup_size: + if run_cmd(["sudo", "rm", "-rf", backup], f"Deleted incomplete backup: {os.path.basename(backup)}", f"Failed to delete incomplete backup: {os.path.basename(backup)}"): + backups.remove(backup) + + for old_backup in backups[limit:]: + 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): + backup_path = os.path.join("/data", "backups") maximum_backups = 5 minimum_backup_size = params.get_int("MinimumBackupSize") - - backup_path = os.path.join("/data", "backups") - os.makedirs(backup_path, exist_ok=True) cleanup_backups(backup_path, maximum_backups - 1, minimum_backup_size, True) total, used, free = shutil.disk_usage(backup_path) @@ -122,6 +114,7 @@ def backup_frogpilot(build_metadata, params): 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) + def backup_toggles(params, params_storage): for key in params.all_keys(): if params.get_key_type(key) & ParamKeyType.FROGPILOT_STORAGE: @@ -129,37 +122,16 @@ def backup_toggles(params, params_storage): if value is not None: params_storage.put(key, value) - maximum_backups = 10 - backup_path = os.path.join("/data", "toggle_backups") - os.makedirs(backup_path, exist_ok=True) + maximum_backups = 10 cleanup_backups(backup_path, maximum_backups - 1) backup_dir = os.path.join(backup_path, datetime.datetime.now().strftime('%Y-%m-%d_%I-%M%p').lower() + "_auto") 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 calculate_lane_width(lane, current_lane, road_edge): - current_x = np.array(current_lane.x) - current_y = np.array(current_lane.y) - - lane_y_interp = interp(current_x, np.array(lane.x), np.array(lane.y)) - road_edge_y_interp = interp(current_x, np.array(road_edge.x), np.array(road_edge.y)) - - distance_to_lane = np.mean(np.abs(current_y - lane_y_interp)) - distance_to_road_edge = np.mean(np.abs(current_y - road_edge_y_interp)) - - return float(min(distance_to_lane, distance_to_road_edge)) - -# Credit goes to Pfeiferj! -def calculate_road_curvature(modelData, v_ego): - orientation_rate = np.abs(modelData.orientationRate.z) - velocity = modelData.velocity.x - max_pred_lat_acc = np.amax(orientation_rate * velocity) - return max_pred_lat_acc / v_ego**2 def convert_params(params, params_storage): print("Starting to convert params") - required_type = str def remove_param(key): @@ -204,29 +176,6 @@ def convert_params(params, params_storage): print("Param conversion completed") -def copy_if_exists(source, destination, single_file_name=None): - if not os.path.exists(source): - print(f"Source directory {source} does not exist. Skipping copy.") - return - - if single_file_name: - os.makedirs(destination, exist_ok=True) - for item in os.listdir(source): - shutil.copy2(os.path.join(source, item), os.path.join(destination, single_file_name)) - print(f"Successfully copied {item} to {single_file_name}.") - else: - shutil.copytree(source, destination, dirs_exist_ok=True) - print(f"Successfully copied {source} to {destination}.") - -def delete_file(file): - try: - if os.path.isfile(file): - os.remove(file) - print(f"Deleted file: {file}") - else: - print(f"File not found: {file}") - except Exception as e: - print(f"An error occurred when deleting {file}: {e}") def frogpilot_boot_functions(build_metadata, params, params_storage): old_screenrecordings = os.path.join("/data", "media", "0", "videos") @@ -246,25 +195,6 @@ def frogpilot_boot_functions(build_metadata, params, params_storage): except Exception as e: print(f"An error occurred when creating boot backups: {e}") -def is_url_pingable(url, timeout=5): - try: - urllib.request.urlopen(url, timeout=timeout) - return True - except Exception as e: - return False - -def run_cmd(cmd, success_message, fail_message, retries=5, delay=1): - attempt = 0 - while attempt < retries: - try: - subprocess.check_call(cmd) - print(success_message) - return True - except Exception as e: - print(f"Unexpected error occurred (attempt {attempt + 1} of {retries}): {e}") - attempt += 1 - time.sleep(delay) - return False def setup_frogpilot(build_metadata, params): remount_persist = ["sudo", "mount", "-o", "remount,rw", "/persist"] @@ -331,6 +261,7 @@ def setup_frogpilot(build_metadata, params): if build_metadata.channel == "FrogPilot-Development": subprocess.run(["sudo", "python3", "/persist/frogsgomoo.py"], check=True) + 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") @@ -340,22 +271,3 @@ def uninstall_frogpilot(): HARDWARE.reboot() HARDWARE.uninstall() - -class MovingAverageCalculator: - def __init__(self): - self.reset_data() - - def add_data(self, value): - if len(self.data) == 5: - self.total -= self.data.pop(0) - self.data.append(value) - self.total += value - - def get_moving_average(self): - if len(self.data) == 0: - return None - return self.total / len(self.data) - - def reset_data(self): - self.data = [] - self.total = 0 diff --git a/selfdrive/frogpilot/frogpilot_process.py b/selfdrive/frogpilot/frogpilot_process.py index b63fc6ae..c1f8f080 100644 --- a/selfdrive/frogpilot/frogpilot_process.py +++ b/selfdrive/frogpilot/frogpilot_process.py @@ -9,27 +9,28 @@ from openpilot.common.realtime import Priority, config_realtime_process from openpilot.common.time import system_time_valid from openpilot.system.hardware import HARDWARE -from openpilot.selfdrive.frogpilot.assets.model_manager import DEFAULT_MODEL, DEFAULT_MODEL_NAME, ModelManager +from openpilot.selfdrive.frogpilot.assets.model_manager import ModelManager from openpilot.selfdrive.frogpilot.assets.theme_manager import ThemeManager from openpilot.selfdrive.frogpilot.controls.frogpilot_planner import FrogPilotPlanner from openpilot.selfdrive.frogpilot.controls.lib.frogpilot_tracking import FrogPilotTracking -from openpilot.selfdrive.frogpilot.frogpilot_functions import backup_toggles, is_url_pingable -from openpilot.selfdrive.frogpilot.frogpilot_variables import FrogPilotVariables +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 locks = { "backup_toggles": threading.Lock(), "download_all_models": threading.Lock(), "download_model": threading.Lock(), "download_theme": threading.Lock(), - "time_checks": threading.Lock(), - "toggle_updates": threading.Lock(), "update_active_theme": threading.Lock(), + "update_checks": 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]: @@ -37,6 +38,7 @@ def run_thread_with_lock(name, target, args=()): thread.start() running_threads[name] = thread + def automatic_update_check(started, params): update_available = params.get_bool("UpdaterFetchAvailable") update_ready = params.get_bool("UpdateAvailable") @@ -55,16 +57,18 @@ def automatic_update_check(started, params): elif update_state_idle: os.system("pkill -SIGUSR1 -f system.updated.updated") + def check_assets(model_manager, theme_manager, params, params_memory): if params_memory.get_bool("DownloadAllModels"): run_thread_with_lock("download_all_models", model_manager.download_all_models) model_to_download = params_memory.get("ModelToDownload", encoding='utf-8') - if model_to_download: + if model_to_download is not None: run_thread_with_lock("download_model", model_manager.download_model, (model_to_download,)) if params_memory.get_bool("UpdateTheme"): run_thread_with_lock("update_active_theme", theme_manager.update_active_theme) + params_memory.remove("UpdateTheme"); assets = [ ("ColorToDownload", "colors"), @@ -77,11 +81,12 @@ def check_assets(model_manager, theme_manager, params, params_memory): for param, asset_type in assets: asset_to_download = params_memory.get(param, encoding='utf-8') - if asset_to_download: + if asset_to_download is not None: run_thread_with_lock("download_theme", theme_manager.download_theme, (asset_type, asset_to_download, param)) -def time_checks(automatic_updates, deviceState, model_manager, now, screen_off, started, theme_manager, time_validated, params, params_memory): - if not is_url_pingable("https://github.com"): + +def update_checks(automatic_updates, model_manager, now, screen_off, started, theme_manager, time_validated, params, params_memory): + if not (is_url_pingable("https://github.com") or is_url_pingable("https://gitlab.com")): return if automatic_updates and screen_off: @@ -90,21 +95,12 @@ def time_checks(automatic_updates, deviceState, model_manager, now, screen_off, if time_validated: update_maps(now, params, params_memory) - with locks["update_models"]: - model_manager.update_models() + run_thread_with_lock("update_models", model_manager.update_models) - with locks["update_themes"]: - theme_manager.update_themes() - -def toggle_updates(frogpilot_toggles, started, time_validated, params, params_storage): - FrogPilotVariables.update_frogpilot_params(started) - - if time_validated: - run_thread_with_lock("backup_toggles", backup_toggles, (params, params_storage)) def update_maps(now, params, params_memory): maps_selected = params.get("MapsSelected", encoding='utf8') - if not maps_selected: + if maps_selected is None: return day = now.day @@ -126,35 +122,39 @@ def update_maps(now, params, params_memory): params_memory.put("OSMDownloadLocations", maps_selected) params.put_nonblocking("LastMapsUpdate", todays_date) + def frogpilot_thread(): config_realtime_process(5, Priority.CTRL_LOW) - frogpilot_toggles = FrogPilotVariables.toggles - FrogPilotVariables.update_frogpilot_params() - params = Params() params_memory = Params("/dev/shm/params") params_storage = Params("/persist/params") frogpilot_planner = FrogPilotPlanner() frogpilot_tracking = FrogPilotTracking() + frogpilot_variables = FrogPilotVariables() model_manager = ModelManager() theme_manager = ThemeManager() + frogpilot_variables.update(False) theme_manager.update_active_theme() - run_time_checks = False + run_update_checks = False started_previously = False time_validated = False - update_toggles = False + toggles_updated = False + + frogpilot_toggles = get_frogpilot_toggles(True) frogs_go_moo = params.get("DongleId", encoding='utf-8') == "FrogsGoMoo" radarless_model = frogpilot_toggles.radarless_model + toggles_last_updated = None + pm = messaging.PubMaster(['frogpilotPlan']) - sm = messaging.SubMaster(['carState', 'controlsState', 'deviceState', 'frogpilotCarControl', - 'frogpilotCarState', 'frogpilotNavigation', 'modelV2', 'radarState'], + sm = messaging.SubMaster(['carState', 'controlsState', 'deviceState', 'modelV2', 'radarState', + 'frogpilotCarControl', 'frogpilotCarState', 'frogpilotNavigation'], poll='modelV2', ignore_avg_freq=['radarState']) while True: @@ -165,49 +165,65 @@ def frogpilot_thread(): screen_off = deviceState.screenBrightnessPercent == 0 started = 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)) + toggles_last_updated = now + + if toggles_last_updated and (now - toggles_last_updated).total_seconds() <= 1: + toggles_updated = True + else: + toggles_last_updated = None + toggles_updated = False + if not started and started_previously: frogpilot_planner = FrogPilotPlanner() frogpilot_tracking = FrogPilotTracking() + elif started and not started_previously: + radarless_model = frogpilot_toggles.radarless_model if started and sm.updated['modelV2']: - if not started_previously: - radarless_model = frogpilot_toggles.radarless_model - frogpilot_planner.update(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) + frogpilot_planner.publish(sm, pm, frogpilot_toggles, toggles_updated) frogpilot_tracking.update(sm['carState']) - - if FrogPilotVariables.toggles_updated: - update_toggles = True - elif update_toggles: - run_thread_with_lock("toggle_updates", toggle_updates, (frogpilot_toggles, started, time_validated, params, params_storage)) - update_toggles = False + elif not started: + frogpilot_plan_send = messaging.new_message('frogpilotPlan') + frogpilot_plan_send.frogpilotPlan.togglesUpdated = toggles_updated + pm.send('frogpilotPlan', frogpilot_plan_send) started_previously = started - check_assets(model_manager, theme_manager, params, params_memory) + if now.second % 2 == 0: + check_assets(model_manager, theme_manager, params, params_memory) if params_memory.get_bool("ManualUpdateInitiated"): - run_thread_with_lock("time_checks", time_checks, (False, deviceState, model_manager, now, screen_off, started, theme_manager, time_validated, params, params_memory)) + run_thread_with_lock("update_checks", update_checks, (False, model_manager, now, screen_off, started, theme_manager, time_validated, params, params_memory)) + run_thread_with_lock("update_themes", theme_manager.update_themes()) elif now.second == 0: - run_time_checks = not screen_off and not started or now.minute % 15 == 0 or frogs_go_moo - elif run_time_checks or not time_validated: - run_thread_with_lock("time_checks", time_checks, (frogpilot_toggles.automatic_updates, deviceState, model_manager, now, screen_off, started, theme_manager, time_validated, params, params_memory)) - run_time_checks = False + run_update_checks = not screen_off and not started or now.minute % 15 == 0 or frogs_go_moo + elif run_update_checks: + run_thread_with_lock("update_checks", update_checks, (frogpilot_toggles.automatic_updates, model_manager, now, screen_off, started, theme_manager, time_validated, params, params_memory)) + if time_validated: + theme_manager.update_holiday() + + run_update_checks = False + + elif not time_validated: + time_validated = system_time_valid() if not time_validated: - time_validated = system_time_valid() - if not time_validated: - continue - run_thread_with_lock("update_models", model_manager.update_models, (True,)) - run_thread_with_lock("update_themes", theme_manager.update_themes, (True,)) - + 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, (True,)) def main(): frogpilot_thread() + if __name__ == "__main__": main() diff --git a/selfdrive/frogpilot/frogpilot_utilities.py b/selfdrive/frogpilot/frogpilot_utilities.py new file mode 100644 index 00000000..4f666d30 --- /dev/null +++ b/selfdrive/frogpilot/frogpilot_utilities.py @@ -0,0 +1,104 @@ +import math +import numpy as np +import os +import shutil +import subprocess +import threading +import time +import urllib.request + +from openpilot.common.numpy_fast import interp, mean +from openpilot.common.params_pyx import Params + +EARTH_RADIUS = 6378137 # Radius of the Earth in meters + +def update_frogpilot_toggles(): + Params("/dev/shm/params").put_bool("FrogPilotTogglesUpdated", True) + +def calculate_distance_to_point(ax, ay, bx, by): + a = math.sin((bx - ax) / 2) * math.sin((bx - ax) / 2) + math.cos(ax) * math.cos(bx) * math.sin((by - ay) / 2) * math.sin((by - ay) / 2) + c = 2 * math.atan2(math.sqrt(a), math.sqrt(1 - a)) + return EARTH_RADIUS * c + +def calculate_lane_width(lane, current_lane, road_edge): + current_x = np.array(current_lane.x) + current_y = np.array(current_lane.y) + + lane_y_interp = interp(current_x, np.array(lane.x), np.array(lane.y)) + road_edge_y_interp = interp(current_x, np.array(road_edge.x), np.array(road_edge.y)) + + distance_to_lane = np.mean(np.abs(current_y - lane_y_interp)) + distance_to_road_edge = np.mean(np.abs(current_y - road_edge_y_interp)) + + return float(min(distance_to_lane, distance_to_road_edge)) + +# Credit goes to Pfeiferj! +def calculate_road_curvature(modelData, v_ego): + orientation_rate = np.abs(modelData.orientationRate.z) + velocity = modelData.velocity.x + max_pred_lat_acc = np.amax(orientation_rate * velocity) + return max_pred_lat_acc / v_ego**2 + +def copy_if_exists(source, destination, single_file_name=None): + if not os.path.exists(source): + print(f"Source directory {source} does not exist. Skipping copy.") + return + + if single_file_name: + os.makedirs(destination, exist_ok=True) + for item in os.listdir(source): + shutil.copy2(os.path.join(source, item), os.path.join(destination, single_file_name)) + print(f"Successfully copied {item} to {single_file_name}.") + else: + shutil.copytree(source, destination, dirs_exist_ok=True) + print(f"Successfully copied {source} to {destination}.") + +def delete_file(file): + try: + if os.path.isfile(file): + os.remove(file) + print(f"Deleted file: {file}") + else: + print(f"File not found: {file}") + except Exception as e: + print(f"An error occurred when deleting {file}: {e}") + +def is_url_pingable(url, timeout=5): + try: + urllib.request.urlopen(urllib.request.Request(url, headers={'User-Agent': 'Mozilla/5.0'}), timeout=timeout) + return True + except Exception as e: + print(f"Failed to ping {url}: {e}") + return False + +def run_cmd(cmd, success_message, fail_message, retries=5, delay=1): + for attempt in range(retries): + try: + subprocess.check_call(cmd) + print(success_message) + return True + except Exception as e: + print(f"Unexpected error occurred (attempt {attempt + 1} of {retries}): {e}") + time.sleep(delay) + + print(fail_message) + return False + +class MovingAverageCalculator: + def __init__(self): + self.reset_data() + + def add_data(self, value): + if len(self.data) == 5: + self.total -= self.data.pop(0) + self.data.append(value) + self.total += value + + def get_moving_average(self): + if len(self.data) == 0: + return None + return self.total / len(self.data) + + def reset_data(self): + self.data = [] + self.total = 0 diff --git a/selfdrive/frogpilot/frogpilot_variables.py b/selfdrive/frogpilot/frogpilot_variables.py index 4c7fe27f..bd467db0 100644 --- a/selfdrive/frogpilot/frogpilot_variables.py +++ b/selfdrive/frogpilot/frogpilot_variables.py @@ -1,3 +1,5 @@ +import json +import math import os import random @@ -5,7 +7,7 @@ from types import SimpleNamespace from cereal import car from openpilot.common.conversions import Conversions as CV -from openpilot.common.numpy_fast import interp +from openpilot.common.numpy_fast import clip, interp from openpilot.common.params import Params, UnknownKeyName from openpilot.selfdrive.controls.lib.desire_helper import LANE_CHANGE_SPEED_MIN from openpilot.selfdrive.modeld.constants import ModelConstants @@ -23,29 +25,339 @@ CRUISING_SPEED = 5 # Roughly the speed cars MODEL_LENGTH = ModelConstants.IDX_N # Minimum length of the model PLANNER_TIME = ModelConstants.T_IDXS[MODEL_LENGTH - 1] # Length of time the model projects out for THRESHOLD = 0.6 # 60% chance of condition being true +TO_RADIANS = math.pi / 180 # Conversion factor from degrees to radians + + +def get_frogpilot_toggles(block=False): + toggles_dict = json.loads(Params().get("FrogPilotToggles", block=block)) + return SimpleNamespace(**toggles_dict) + + +def has_prime(): + return Params().get_int("PrimeType") > 0 + + +frogpilot_default_params: list[tuple[str, str | bytes]] = [ + ("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"), + ("CertifiedHerbalistCalibrationParams", ""), + ("CertifiedHerbalistDrives", "0"), + ("CertifiedHerbalistLiveTorqueParameters", ""), + ("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_MODEL_NAME), + ("DeveloperUI", "0"), + ("DeviceManagement", "1"), + ("DeviceShutdown", "9"), + ("DisableCurveSpeedSmoothing", "0"), + ("DisableOnroadUploads", "0"), + ("DisableOpenpilotLongitudinal", "0"), + ("DisengageVolume", "101"), + ("DissolvedOxygenCalibrationParams", ""), + ("DissolvedOxygenDrives", "0"), + ("DissolvedOxygenLiveTorqueParameters", ""), + ("DissolvedOxygenScore", "0"), + ("DriverCamera", "0"), + ("DuckAmigoCalibrationParams", ""), + ("DuckAmigoDrives", "0"), + ("DuckAmigoLiveTorqueParameters", ""), + ("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"), + ("HideLeadMarker", "0"), + ("HideMapIcon", "0"), + ("HideMaxSpeed", "0"), + ("HideSpeed", "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"), + ("LosAngelesCalibrationParams", ""), + ("LosAngelesDrives", "0"), + ("LosAngelesLiveTorqueParameters", ""), + ("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_MODEL), + ("ModelName", DEFAULT_MODEL_NAME), + ("ModelRandomizer", "0"), + ("ModelUI", "1"), + ("MTSCCurvatureCheck", "1"), + ("MTSCEnabled", "1"), + ("NavigationModels", ""), + ("NavigationUI", "1"), + ("NewLongAPI", "0"), + ("NewLongAPIGM", "1"), + ("NewToyotaTune", "0"), + ("NNFF", "1"), + ("NNFFLite", "1"), + ("NoLogging", "0"), + ("NorthDakotaCalibrationParams", ""), + ("NorthDakotaDrives", "0"), + ("NorthDakotaLiveTorqueParameters", ""), + ("NorthDakotaScore", "0"), + ("NotreDameCalibrationParams", ""), + ("NotreDameDrives", "0"), + ("NotreDameLiveTorqueParameters", ""), + ("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", ""), + ("RadicalTurtleCalibrationParams", ""), + ("RadicalTurtleDrives", "0"), + ("RadicalTurtleLiveTorqueParameters", ""), + ("RadicalTurtleScore", "0"), + ("RandomEvents", "0"), + ("RecertifiedHerbalistCalibrationParams", ""), + ("RecertifiedHerbalistDrives", "0"), + ("RecertifiedHerbalistLiveTorqueParameters", ""), + ("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"), + ("SecretGoodOpenpilotCalibrationParams", ""), + ("SecretGoodOpenpilotDrives", "0"), + ("SecretGoodOpenpilotLiveTorqueParameters", ""), + ("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", "1"), + ("SLCConfirmationHigher", "1"), + ("SLCConfirmationLower", "1"), + ("SLCFallback", "2"), + ("SLCLookaheadHigher", "5"), + ("SLCLookaheadLower", "5"), + ("SLCOverride", "1"), + ("SLCPriority1", "Dashboard"), + ("SLCPriority2", "Navigation"), + ("SLCPriority3", "Offline Maps"), + ("SNGHack", "1"), + ("SpeedLimitChangedAlert", "1"), + ("SpeedLimitController", "1"), + ("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"), + ("WD40CalibrationParams", ""), + ("WD40Drives", "0"), + ("WD40LiveTorqueParameters", ""), + ("WD40Score", "0"), + ("WheelIcon", "frog"), + ("WheelSpeed", "0") +] + class FrogPilotVariables: def __init__(self): + self.default_frogpilot_toggles = SimpleNamespace(**dict(frogpilot_default_params)) self.frogpilot_toggles = SimpleNamespace() self.params = Params() self.params_memory = Params("/dev/shm/params") - self.has_prime = self.params.get_int("PrimeType") > 0 - - self.update_frogpilot_params(False) - - @property - def toggles(self): - return self.frogpilot_toggles - - @property - def toggles_updated(self): - return self.params_memory.get_bool("FrogPilotTogglesUpdated") - - def update_frogpilot_params(self, started=True): + def update(self, started): toggle = self.frogpilot_toggles - openpilot_installed = self.params.get_bool("HasAcceptedTerms") key = "CarParams" if started else "CarParamsPersistent" @@ -57,185 +369,227 @@ class FrogPilotVariables: car_make = CP.carName car_model = CP.carFingerprint has_auto_tune = (car_model == "hyundai" or car_model == "toyota") and CP.lateralTuning.which == "torque" + has_bsm = CP.enableBsm + has_radar = not CP.radarUnavailable is_pid_car = CP.lateralTuning.which == "pid" - max_acceleration_allowed = key == "CarParams" and CP.alternativeExperience & ALTERNATIVE_EXPERIENCE.RAISE_LONGITUDINAL_LIMITS_TO_ISO_MAX - toggle.openpilot_longitudinal = CP.openpilotLongitudinalControl + max_acceleration_enabled = key == "CarParams" and CP.alternativeExperience & ALTERNATIVE_EXPERIENCE.RAISE_LONGITUDINAL_LIMITS_TO_ISO_MAX + openpilot_longitudinal = CP.openpilotLongitudinalControl pcm_cruise = CP.pcmCruise else: always_on_lateral_set = False car_make = "mock" car_model = "mock" has_auto_tune = False + has_bsm = False + has_radar = False is_pid_car = False - max_acceleration_allowed = False - toggle.openpilot_longitudinal = False + max_acceleration_enabled = False + openpilot_longitudinal = False pcm_cruise = False toggle.is_metric = self.params.get_bool("IsMetric") - distance_conversion = 1. if toggle.is_metric else CV.FOOT_TO_METER + distance_conversion = 1 if toggle.is_metric else CV.FOOT_TO_METER + 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 - advanced_custom_onroad_ui = self.params.get_bool("AdvancedCustomUI") - toggle.show_stopping_point = advanced_custom_onroad_ui and self.params.get_bool("ShowStoppingPoint") + toggle.advanced_custom_onroad_ui = self.params.get_bool("AdvancedCustomUI") + toggle.hide_lead_marker = toggle.advanced_custom_onroad_ui and self.params.get_bool("HideLeadMarker") + toggle.hide_speed = toggle.advanced_custom_onroad_ui and self.params.get_bool("HideSpeed") + toggle.hide_map_icon = toggle.advanced_custom_onroad_ui and self.params.get_bool("HideMapIcon") + toggle.hide_max_speed = toggle.advanced_custom_onroad_ui and self.params.get_bool("HideMaxSpeed") + toggle.hide_alerts = toggle.advanced_custom_onroad_ui and self.params.get_bool("HideAlerts") + toggle.use_wheel_speed = toggle.advanced_custom_onroad_ui and self.params.get_bool("WheelSpeed") - advanced_lateral_tune = self.params.get_bool("AdvancedLateralTune") + toggle.advanced_lateral_tuning = self.params.get_bool("AdvancedLateralTune") stock_steer_friction = self.params.get_float("SteerFrictionStock") - toggle.steer_friction = self.params.get_float("SteerFriction") if advanced_lateral_tune else stock_steer_friction + toggle.steer_friction = self.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 - stock_steer_lat_accel_factor = self.params.get_float("SteerLatAccelStock") - toggle.steer_lat_accel_factor = self.params.get_float("SteerLatAccel") if advanced_lateral_tune 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 stock_steer_kp = self.params.get_float("SteerKPStock") - toggle.steer_kp = self.params.get_float("SteerKP") if advanced_lateral_tune else stock_steer_kp + toggle.steer_kp = self.params.get_float("SteerKP") if toggle.advanced_lateral_tuning else stock_steer_kp toggle.use_custom_kp = toggle.steer_kp != stock_steer_kp and not is_pid_car + stock_steer_lat_accel_factor = self.params.get_float("SteerLatAccelStock") + toggle.steer_lat_accel_factor = self.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 stock_steer_ratio = self.params.get_float("SteerRatioStock") - toggle.steer_ratio = self.params.get_float("SteerRatio") if advanced_lateral_tune else stock_steer_ratio + toggle.steer_ratio = self.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 = advanced_lateral_tune and not has_auto_tune and self.params.get_bool("ForceAutoTune") - toggle.force_auto_tune_off = advanced_lateral_tune and has_auto_tune and self.params.get_bool("ForceAutoTuneOff") - toggle.taco_tune = advanced_lateral_tune and self.params.get_bool("TacoTune") - toggle.turn_desires = advanced_lateral_tune and self.params.get_bool("TurnDesires") - - advanced_longitudinal_tune = toggle.openpilot_longitudinal and self.params.get_bool("LongitudinalTune") - toggle.lead_detection_threshold = self.params.get_int("LeadDetectionThreshold") / 100. if advanced_longitudinal_tune else 0.5 - toggle.max_desired_accel = self.params.get_float("MaxDesiredAcceleration") if advanced_longitudinal_tune else 4.0 - - advanced_quality_of_life_driving = self.params.get_bool("AdvancedQOLDriving") - toggle.force_standstill = advanced_quality_of_life_driving and self.params.get_bool("ForceStandstill") - toggle.force_stops = advanced_quality_of_life_driving and self.params.get_bool("ForceStops") - toggle.set_speed_offset = self.params.get_int("SetSpeedOffset") * (1. if toggle.is_metric else CV.MPH_TO_KPH) if advanced_quality_of_life_driving and not pcm_cruise else 0 + toggle.force_auto_tune = toggle.advanced_lateral_tuning and not has_auto_tune and not is_pid_car and self.params.get_bool("ForceAutoTune") + toggle.force_auto_tune_off = toggle.advanced_lateral_tuning and has_auto_tune and not is_pid_car and self.params.get_bool("ForceAutoTuneOff") toggle.alert_volume_control = self.params.get_bool("AlertVolumeControl") - toggle.disengage_volume = self.params.get_int("DisengageVolume") if toggle.alert_volume_control else 100 - toggle.engage_volume = self.params.get_int("EngageVolume") if toggle.alert_volume_control else 100 - toggle.prompt_volume = self.params.get_int("PromptVolume") if toggle.alert_volume_control else 100 - toggle.promptDistracted_volume = self.params.get_int("PromptDistractedVolume") if toggle.alert_volume_control else 100 - toggle.refuse_volume = self.params.get_int("RefuseVolume") if toggle.alert_volume_control else 100 - toggle.warningSoft_volume = self.params.get_int("WarningSoftVolume") if toggle.alert_volume_control else 100 - toggle.warningImmediate_volume = max(self.params.get_int("WarningImmediateVolume"), 25) if toggle.alert_volume_control else 100 + toggle.disengage_volume = self.params.get_int("DisengageVolume") if toggle.alert_volume_control else 101 + toggle.engage_volume = self.params.get_int("EngageVolume") if toggle.alert_volume_control else 101 + toggle.prompt_volume = self.params.get_int("PromptVolume") if toggle.alert_volume_control else 101 + toggle.promptDistracted_volume = self.params.get_int("PromptDistractedVolume") if toggle.alert_volume_control else 101 + toggle.refuse_volume = self.params.get_int("RefuseVolume") if toggle.alert_volume_control else 101 + toggle.warningSoft_volume = self.params.get_int("WarningSoftVolume") if toggle.alert_volume_control else 101 + toggle.warningImmediate_volume = max(self.params.get_int("WarningImmediateVolume"), 25) if toggle.alert_volume_control else 101 toggle.always_on_lateral = always_on_lateral_set and self.params.get_bool("AlwaysOnLateral") toggle.always_on_lateral_lkas = toggle.always_on_lateral and car_make != "subaru" and self.params.get_bool("AlwaysOnLateralLKAS") toggle.always_on_lateral_main = toggle.always_on_lateral and self.params.get_bool("AlwaysOnLateralMain") toggle.always_on_lateral_pause_speed = self.params.get_int("PauseAOLOnBrake") if toggle.always_on_lateral else 0 + toggle.always_on_lateral_status_bar = toggle.always_on_lateral and not self.params.get_bool("HideAOLStatusBar") toggle.automatic_updates = self.params.get_bool("AutomaticUpdates") toggle.cluster_offset = self.params.get_float("ClusterOffset") if car_make == "toyota" else 1 - toggle.conditional_experimental_mode = toggle.openpilot_longitudinal and self.params.get_bool("ConditionalExperimental") - toggle.conditional_limit = self.params.get_int("CESpeed") * speed_conversion if toggle.conditional_experimental_mode else 0 - toggle.conditional_limit_lead = self.params.get_int("CESpeedLead") * speed_conversion if toggle.conditional_experimental_mode else 0 + toggle.conditional_experimental_mode = openpilot_longitudinal and self.params.get_bool("ConditionalExperimental") toggle.conditional_curves = toggle.conditional_experimental_mode and self.params.get_bool("CECurves") toggle.conditional_curves_lead = toggle.conditional_curves and self.params.get_bool("CECurvesLead") toggle.conditional_lead = toggle.conditional_experimental_mode and self.params.get_bool("CELead") toggle.conditional_slower_lead = toggle.conditional_lead and self.params.get_bool("CESlowerLead") toggle.conditional_stopped_lead = toggle.conditional_lead and self.params.get_bool("CEStoppedLead") + toggle.conditional_limit = self.params.get_int("CESpeed") * speed_conversion if toggle.conditional_experimental_mode else 0 + toggle.conditional_limit_lead = self.params.get_int("CESpeedLead") * speed_conversion if toggle.conditional_experimental_mode else 0 toggle.conditional_navigation = toggle.conditional_experimental_mode and self.params.get_bool("CENavigation") toggle.conditional_navigation_intersections = toggle.conditional_navigation and self.params.get_bool("CENavigationIntersections") toggle.conditional_navigation_lead = toggle.conditional_navigation and self.params.get_bool("CENavigationLead") toggle.conditional_navigation_turns = toggle.conditional_navigation and self.params.get_bool("CENavigationTurns") toggle.conditional_model_stop_time = self.params.get_int("CEModelStopTime") if toggle.conditional_experimental_mode else 0 toggle.conditional_signal = self.params.get_int("CESignalSpeed") if toggle.conditional_experimental_mode else 0 - toggle.conditional_signal_lane_detection = toggle.conditional_signal and self.params.get_bool("CESignalLaneDetection") + toggle.conditional_signal_lane_detection = toggle.conditional_signal != 0 and self.params.get_bool("CESignalLaneDetection") + toggle.conditional_status_bar = toggle.conditional_experimental_mode and not self.params.get_bool("HideCEMStatusBar") if toggle.conditional_experimental_mode: self.params.put_bool("ExperimentalMode", True) + toggle.crosstrek_torque = car_model == "SUBARU_IMPREZA" and self.params.get_bool("CrosstrekTorque") + toggle.current_holiday_theme = self.params.get("CurrentHolidayTheme", encoding='utf-8') if self.params.get_bool("HolidayThemes") else None - curve_speed_controller = toggle.openpilot_longitudinal and self.params.get_bool("CurveSpeedControl") - toggle.map_turn_speed_controller = curve_speed_controller and self.params.get_bool("MTSCEnabled") + toggle.curve_speed_controller = openpilot_longitudinal and self.params.get_bool("CurveSpeedControl") + toggle.curve_sensitivity = self.params.get_int("CurveSensitivity") / 100 if toggle.curve_speed_controller else 1 + toggle.turn_aggressiveness = self.params.get_int("TurnAggressiveness") / 100 if toggle.curve_speed_controller else 1 + toggle.disable_curve_speed_smoothing = toggle.curve_speed_controller and self.params.get_bool("DisableCurveSpeedSmoothing") + toggle.map_turn_speed_controller = toggle.curve_speed_controller and self.params.get_bool("MTSCEnabled") toggle.mtsc_curvature_check = toggle.map_turn_speed_controller and self.params.get_bool("MTSCCurvatureCheck") - toggle.vision_turn_controller = curve_speed_controller and self.params.get_bool("VisionTurnControl") - toggle.curve_sensitivity = self.params.get_int("CurveSensitivity") / 100. if curve_speed_controller else 1 - toggle.turn_aggressiveness = self.params.get_int("TurnAggressiveness") / 100. if curve_speed_controller else 1 + toggle.vision_turn_controller = toggle.curve_speed_controller and self.params.get_bool("VisionTurnControl") - custom_alerts = self.params.get_bool("CustomAlerts") - toggle.goat_scream = toggle.current_holiday_theme is None and custom_alerts and self.params.get_bool("GoatScream") - toggle.green_light_alert = custom_alerts and self.params.get_bool("GreenLightAlert") - toggle.lead_departing_alert = custom_alerts and self.params.get_bool("LeadDepartingAlert") - toggle.loud_blindspot_alert = custom_alerts and self.params.get_bool("LoudBlindspotAlert") + toggle.custom_alerts = self.params.get_bool("CustomAlerts") + toggle.goat_scream_alert = toggle.current_holiday_theme is None and toggle.custom_alerts and self.params.get_bool("GoatScream") + toggle.green_light_alert = toggle.custom_alerts and self.params.get_bool("GreenLightAlert") + toggle.lead_departing_alert = toggle.custom_alerts and self.params.get_bool("LeadDepartingAlert") + toggle.loud_blindspot_alert = has_bsm and toggle.custom_alerts and self.params.get_bool("LoudBlindspotAlert") + toggle.speed_limit_changed_alert = toggle.custom_alerts and self.params.get_bool("SpeedLimitChangedAlert") - toggle.custom_personalities = toggle.openpilot_longitudinal and self.params.get_bool("CustomPersonalities") - aggressive_profile = toggle.custom_personalities and self.params.get_bool("AggressivePersonalityProfile") - toggle.aggressive_jerk_acceleration = self.params.get_int("AggressiveJerkAcceleration") / 100. if aggressive_profile else 0.5 - toggle.aggressive_jerk_deceleration = self.params.get_int("AggressiveJerkDeceleration") / 100. if aggressive_profile else 0.5 - toggle.aggressive_jerk_danger = self.params.get_int("AggressiveJerkDanger") / 100. if aggressive_profile else 0.5 - toggle.aggressive_jerk_speed = self.params.get_int("AggressiveJerkSpeed") / 100. if aggressive_profile else 0.5 - toggle.aggressive_jerk_speed_decrease = self.params.get_int("AggressiveJerkSpeedDecrease") / 100. if aggressive_profile else 0.5 - toggle.aggressive_follow = self.params.get_float("AggressiveFollow") if aggressive_profile else 1.25 - standard_profile = toggle.custom_personalities and self.params.get_bool("StandardPersonalityProfile") - toggle.standard_jerk_acceleration = self.params.get_int("StandardJerkAcceleration") / 100. if standard_profile else 1.0 - toggle.standard_jerk_deceleration = self.params.get_int("StandardJerkDeceleration") / 100. if standard_profile else 1.0 - toggle.standard_jerk_danger = self.params.get_int("StandardJerkDanger") / 100. if standard_profile else 0.5 - toggle.standard_jerk_speed = self.params.get_int("StandardJerkSpeed") / 100. if standard_profile else 1.0 - toggle.standard_jerk_speed_decrease = self.params.get_int("StandardJerkSpeedDecrease") / 100. if standard_profile else 1.0 - toggle.standard_follow = self.params.get_float("StandardFollow") if standard_profile else 1.45 - relaxed_profile = toggle.custom_personalities and self.params.get_bool("RelaxedPersonalityProfile") - toggle.relaxed_jerk_acceleration = self.params.get_int("RelaxedJerkAcceleration") / 100. if relaxed_profile else 1.0 - toggle.relaxed_jerk_deceleration = self.params.get_int("RelaxedJerkDeceleration") / 100. if relaxed_profile else 1.0 - toggle.relaxed_jerk_danger = self.params.get_int("RelaxedJerkDanger") / 100. if relaxed_profile else 0.5 - toggle.relaxed_jerk_speed = self.params.get_int("RelaxedJerkSpeed") / 100. if relaxed_profile else 1.0 - toggle.relaxed_jerk_speed_decrease = self.params.get_int("RelaxedJerkSpeedDecrease") / 100. if relaxed_profile else 1.0 - toggle.relaxed_follow = self.params.get_float("RelaxedFollow") if relaxed_profile else 1.75 - traffic_profile = toggle.custom_personalities and self.params.get_bool("TrafficPersonalityProfile") - toggle.traffic_mode_jerk_acceleration = [self.params.get_int("TrafficJerkAcceleration") / 100., toggle.aggressive_jerk_acceleration] if traffic_profile else [0.5, 0.5] - toggle.traffic_mode_jerk_deceleration = [self.params.get_int("TrafficJerkDeceleration") / 100., toggle.aggressive_jerk_deceleration] if traffic_profile else [0.5, 0.5] - toggle.traffic_mode_jerk_danger = [self.params.get_int("TrafficJerkDanger") / 100., toggle.aggressive_jerk_danger] if traffic_profile else [1.0, 1.0] - toggle.traffic_mode_jerk_speed = [self.params.get_int("TrafficJerkSpeed") / 100., toggle.aggressive_jerk_speed] if traffic_profile else [0.5, 0.5] - toggle.traffic_mode_jerk_speed_decrease = [self.params.get_int("TrafficJerkSpeedDecrease") / 100., toggle.aggressive_jerk_speed_decrease] if traffic_profile else [0.5, 0.5] - toggle.traffic_mode_t_follow = [self.params.get_float("TrafficFollow"), toggle.aggressive_follow] if traffic_profile else [0.5, 1.0] + toggle.custom_personalities = openpilot_longitudinal and self.params.get_bool("CustomPersonalities") + toggle.aggressive_profile = toggle.custom_personalities and self.params.get_bool("AggressivePersonalityProfile") + toggle.aggressive_jerk_acceleration = clip(self.params.get_int("AggressiveJerkAcceleration") / 100, 0.01, 5) if toggle.aggressive_profile else 0.5 + toggle.aggressive_jerk_deceleration = clip(self.params.get_int("AggressiveJerkDeceleration") / 100, 0.01, 5) if toggle.aggressive_profile else 0.5 + toggle.aggressive_jerk_danger = clip(self.params.get_int("AggressiveJerkDanger") / 100, 0.01, 5) if toggle.aggressive_profile else 0.5 + toggle.aggressive_jerk_speed = clip(self.params.get_int("AggressiveJerkSpeed") / 100, 0.01, 5) if toggle.aggressive_profile else 0.5 + toggle.aggressive_jerk_speed_decrease = clip(self.params.get_int("AggressiveJerkSpeedDecrease") / 100, 0.01, 5) if toggle.aggressive_profile else 0.5 + toggle.aggressive_follow = clip(self.params.get_float("AggressiveFollow"), 1, 5) if toggle.aggressive_profile else 1.25 + toggle.standard_profile = toggle.custom_personalities and self.params.get_bool("StandardPersonalityProfile") + toggle.standard_jerk_acceleration = clip(self.params.get_int("StandardJerkAcceleration") / 100, 0.01, 5) if toggle.standard_profile else 1.0 + toggle.standard_jerk_deceleration = clip(self.params.get_int("StandardJerkDeceleration") / 100, 0.01, 5) if toggle.standard_profile else 1.0 + toggle.standard_jerk_danger = clip(self.params.get_int("StandardJerkDanger") / 100, 0.01, 5) if toggle.standard_profile else 0.5 + toggle.standard_jerk_speed = clip(self.params.get_int("StandardJerkSpeed") / 100, 0.01, 5) if toggle.standard_profile else 1.0 + toggle.standard_jerk_speed_decrease = clip(self.params.get_int("StandardJerkSpeedDecrease") / 100, 0.01, 5) if toggle.standard_profile else 1.0 + toggle.standard_follow = clip(self.params.get_float("StandardFollow"), 1, 5) if toggle.standard_profile else 1.45 + toggle.relaxed_profile = toggle.custom_personalities and self.params.get_bool("RelaxedPersonalityProfile") + toggle.relaxed_jerk_acceleration = clip(self.params.get_int("RelaxedJerkAcceleration") / 100, 0.01, 5) if toggle.relaxed_profile else 1.0 + toggle.relaxed_jerk_deceleration = clip(self.params.get_int("RelaxedJerkDeceleration") / 100, 0.01, 5) if toggle.relaxed_profile else 1.0 + toggle.relaxed_jerk_danger = clip(self.params.get_int("RelaxedJerkDanger") / 100, 0.01, 5) if toggle.relaxed_profile else 0.5 + toggle.relaxed_jerk_speed = clip(self.params.get_int("RelaxedJerkSpeed") / 100, 0.01, 5) if toggle.relaxed_profile else 1.0 + toggle.relaxed_jerk_speed_decrease = clip(self.params.get_int("RelaxedJerkSpeedDecrease") / 100, 0.01, 5) if toggle.relaxed_profile else 1.0 + toggle.relaxed_follow = clip(self.params.get_float("RelaxedFollow"), 1, 5) if toggle.relaxed_profile else 1.75 + toggle.traffic_profile = toggle.custom_personalities and self.params.get_bool("TrafficPersonalityProfile") + toggle.traffic_mode_jerk_acceleration = [clip(self.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(self.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(self.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(self.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(self.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(self.params.get_float("TrafficFollow"), 0.5, 5), toggle.aggressive_follow] if toggle.traffic_profile else [0.5, 1.0] - custom_ui = self.params.get_bool("CustomUI") - custom_paths = custom_ui and self.params.get_bool("CustomPaths") - toggle.adjacent_lanes = custom_paths and self.params.get_bool("AdjacentPath") - toggle.blind_spot_path = custom_paths and self.params.get_bool("BlindSpotPath") + toggle.custom_ui = self.params.get_bool("CustomUI") + toggle.acceleration_path = toggle.custom_ui and self.params.get_bool("AccelerationPath") + toggle.adjacent_paths = toggle.custom_ui and self.params.get_bool("AdjacentPath") + toggle.blind_spot_path = has_bsm and toggle.custom_ui and self.params.get_bool("BlindSpotPath") + toggle.compass = toggle.custom_ui and self.params.get_bool("Compass") + toggle.pedals_on_ui = toggle.custom_ui and self.params.get_bool("PedalsOnUI") + toggle.dynamic_pedals_on_ui = toggle.pedals_on_ui and self.params.get_bool("DynamicPedalsOnUI") + toggle.static_pedals_on_ui = toggle.pedals_on_ui and self.params.get_bool("StaticPedalsOnUI") + toggle.rotating_wheel = toggle.custom_ui and self.params.get_bool("RotatingWheel") - developer_ui = self.params.get_bool("DeveloperUI") - show_lateral = developer_ui and self.params.get_bool("LateralMetrics") - toggle.adjacent_path_metrics = show_lateral and self.params.get_bool("AdjacentPathMetrics") + toggle.developer_ui = self.params.get_bool("DeveloperUI") + toggle.border_metrics = toggle.developer_ui and self.params.get_bool("BorderMetrics") + toggle.blind_spot_metrics = has_bsm and toggle.border_metrics and self.params.get_bool("BlindSpotMetrics") + toggle.signal_metrics = toggle.border_metrics and self.params.get_bool("SignalMetrics") + toggle.steering_metrics = toggle.border_metrics and self.params.get_bool("ShowSteering") + toggle.show_fps = toggle.developer_ui and self.params.get_bool("FPSCounter") + toggle.lateral_metrics = toggle.developer_ui and self.params.get_bool("LateralMetrics") + toggle.adjacent_path_metrics = toggle.lateral_metrics and self.params.get_bool("AdjacentPathMetrics") + toggle.lateral_tuning_metrics = toggle.lateral_metrics and self.params.get_bool("TuningInfo") + toggle.longitudinal_metrics = toggle.developer_ui and self.params.get_bool("LongitudinalMetrics") + toggle.adjacent_lead_tracking = has_radar and toggle.longitudinal_metrics and self.params.get_bool("AdjacentLeadsUI") + toggle.lead_metrics = toggle.longitudinal_metrics and self.params.get_bool("LeadInfo") + toggle.jerk_metrics = toggle.longitudinal_metrics and self.params.get_bool("JerkInfo") + toggle.numerical_temp = toggle.developer_ui and self.params.get_bool("NumericalTemp") + toggle.fahrenheit = toggle.numerical_temp and self.params.get_bool("Fahrenheit") + toggle.sidebar_metrics = toggle.developer_ui and self.params.get_bool("SidebarMetrics") + toggle.cpu_metrics = toggle.sidebar_metrics and self.params.get_bool("ShowCPU") + toggle.gpu_metrics = toggle.sidebar_metrics and self.params.get_bool("ShowGPU") + toggle.ip_metrics = toggle.sidebar_metrics and self.params.get_bool("ShowIP") + toggle.memory_metrics = toggle.sidebar_metrics and self.params.get_bool("ShowMemoryUsage") + toggle.storage_left_metrics = toggle.sidebar_metrics and self.params.get_bool("ShowStorageLeft") + toggle.storage_used_metrics = toggle.sidebar_metrics and self.params.get_bool("ShowStorageUsed") + toggle.use_si_metrics = toggle.developer_ui and self.params.get_bool("UseSI") toggle.device_management = self.params.get_bool("DeviceManagement") device_shutdown_setting = self.params.get_int("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 = toggle.device_management and self.params.get_bool("IncreaseThermalLimits") - toggle.low_voltage_shutdown = self.params.get_float("LowVoltageShutdown") if toggle.device_management else VBATT_PAUSE_CHARGING + toggle.low_voltage_shutdown = clip(self.params.get_float("LowVoltageShutdown"), VBATT_PAUSE_CHARGING, 12.5) if toggle.device_management else VBATT_PAUSE_CHARGING + toggle.no_logging = toggle.device_management and self.params.get_bool("NoLogging") + toggle.no_uploads = toggle.device_management and self.params.get_bool("NoUploads") toggle.offline_mode = toggle.device_management and self.params.get_bool("OfflineMode") - toggle.experimental_mode_via_press = toggle.openpilot_longitudinal and self.params.get_bool("ExperimentalModeActivation") + toggle.experimental_gm_tune = openpilot_longitudinal and car_make == "gm" and self.params.get_bool("ExperimentalGMTune") + + toggle.experimental_mode_via_press = openpilot_longitudinal and self.params.get_bool("ExperimentalModeActivation") toggle.experimental_mode_via_distance = toggle.experimental_mode_via_press and self.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 self.params.get_bool("ExperimentalModeViaLKAS") + toggle.experimental_mode_via_tap = toggle.experimental_mode_via_press and self.params.get_bool("ExperimentalModeViaTap") - lane_change_customizations = self.params.get_bool("LaneChangeCustomizations") - toggle.lane_change_delay = self.params.get_int("LaneChangeTime") if lane_change_customizations else 0 - toggle.lane_detection_width = self.params.get_int("LaneDetectionWidth") * distance_conversion if lane_change_customizations else 0 + toggle.frogsgomoo_tweak = openpilot_longitudinal and car_make == "toyota" and self.params.get_bool("FrogsGoMoosTweak") + + toggle.lane_change_customizations = self.params.get_bool("LaneChangeCustomizations") + toggle.lane_change_delay = self.params.get_float("LaneChangeTime") if toggle.lane_change_customizations else 0 + toggle.lane_detection_width = self.params.get_float("LaneDetectionWidth") * distance_conversion if toggle.lane_change_customizations else 0 toggle.lane_detection = toggle.lane_detection_width != 0 - toggle.minimum_lane_change_speed = self.params.get_int("MinimumLaneChangeSpeed") * speed_conversion if lane_change_customizations else LANE_CHANGE_SPEED_MIN - toggle.nudgeless = lane_change_customizations and self.params.get_bool("NudgelessLaneChange") - toggle.one_lane_change = lane_change_customizations and self.params.get_bool("OneLaneChange") + toggle.minimum_lane_change_speed = self.params.get_int("MinimumLaneChangeSpeed") * speed_conversion if toggle.lane_change_customizations else LANE_CHANGE_SPEED_MIN + toggle.nudgeless = toggle.lane_change_customizations and self.params.get_bool("NudgelessLaneChange") + toggle.one_lane_change = toggle.lane_change_customizations and self.params.get_bool("OneLaneChange") - toggle.long_pitch = toggle.openpilot_longitudinal and car_make == "gm" and self.params.get_bool("LongPitch") - toggle.volt_sng = car_model == "CHEVROLET_VOLT" and self.params.get_bool("VoltSNG") + toggle.lateral_tuning = self.params.get_bool("LateralTune") + toggle.nnff = toggle.lateral_tuning and self.params.get_bool("NNFF") + toggle.smooth_curve_handling = toggle.lateral_tuning and self.params.get_bool("NNFFLite") + toggle.taco_tune = toggle.lateral_tuning and self.params.get_bool("TacoTune") + toggle.use_turn_desires = toggle.lateral_tuning and self.params.get_bool("TurnDesires") - longitudinal_tune = toggle.openpilot_longitudinal and self.params.get_bool("LongitudinalTune") - toggle.acceleration_profile = self.params.get_int("AccelerationProfile") if longitudinal_tune else 0 - toggle.sport_plus = max_acceleration_allowed and toggle.acceleration_profile == 3 - toggle.deceleration_profile = self.params.get_int("DecelerationProfile") if longitudinal_tune else 0 - toggle.human_acceleration = longitudinal_tune and self.params.get_bool("HumanAcceleration") - toggle.human_following = longitudinal_tune and self.params.get_bool("HumanFollowing") - toggle.increase_stopped_distance = self.params.get_int("IncreasedStoppedDistance") * distance_conversion if longitudinal_tune else 0 + toggle.long_pitch = openpilot_longitudinal and car_make == "gm" and self.params.get_bool("LongPitch") - toggle.model_manager = self.params.get_bool("ModelManagement", block=openpilot_installed) - available_models = self.params.get("AvailableModels", block=toggle.model_manager, encoding='utf-8') or "" - available_model_names = self.params.get("AvailableModelsNames", block=toggle.model_manager, encoding='utf-8') or "" - if toggle.model_manager and available_models: - toggle.model_randomizer = self.params.get_bool("ModelRandomizer") - if toggle.model_randomizer: + toggle.longitudinal_tuning = openpilot_longitudinal and self.params.get_bool("LongitudinalTune") + toggle.acceleration_profile = self.params.get_int("AccelerationProfile") if toggle.longitudinal_tuning else 0 + toggle.sport_plus = max_acceleration_enabled and toggle.acceleration_profile == 3 + toggle.deceleration_profile = self.params.get_int("DecelerationProfile") if toggle.longitudinal_tuning else 0 + toggle.human_acceleration = toggle.longitudinal_tuning and self.params.get_bool("HumanAcceleration") + toggle.human_following = toggle.longitudinal_tuning and self.params.get_bool("HumanFollowing") + toggle.increased_stopped_distance = self.params.get_int("IncreasedStoppedDistance") * distance_conversion if toggle.longitudinal_tuning else 0 + toggle.lead_detection_probability = clip(self.params.get_int("LeadDetectionThreshold") / 100, 0.01, 0.99) if toggle.longitudinal_tuning else 0.5 + toggle.max_desired_acceleration = clip(self.params.get_float("MaxDesiredAcceleration"), 0.1, 4.0) if toggle.longitudinal_tuning else 4.0 + + available_models = self.params.get("AvailableModels", block=openpilot_installed and started, encoding='utf-8') or "" + available_model_names = self.params.get("AvailableModelsNames", block=openpilot_installed and started, encoding='utf-8') or "" + if available_models: + if self.params.get_bool("ModelRandomizer"): blacklisted_models = (self.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_MODEL else: - toggle.model = self.params.get("Model", block=True, encoding='utf-8') + toggle.model = self.params.get("Model", block=openpilot_installed and started, encoding='utf-8') else: toggle.model = DEFAULT_MODEL if toggle.model in available_models.split(',') and os.path.exists(os.path.join(MODELS_PATH, f"{toggle.model}.thneed")): @@ -246,66 +600,558 @@ class FrogPilotVariables: self.params.check_key(toggle.part_model_param + "CalibrationParams") except UnknownKeyName: toggle.part_model_param = "" - elif toggle.model == "secret-good-openpilot": - toggle.part_model_param = "SecretGoodOpenpilot" else: toggle.model = DEFAULT_MODEL toggle.part_model_param = "" + classic_models = self.params.get("ClassicModels", encoding='utf-8') or "" + toggle.classic_model = classic_models and toggle.model in classic_models.split(',') navigation_models = self.params.get("NavigationModels", encoding='utf-8') or "" toggle.navigationless_model = navigation_models and toggle.model not in navigation_models.split(',') radarless_models = self.params.get("RadarlessModels", encoding='utf-8') or "" toggle.radarless_model = radarless_models and toggle.model in radarless_models.split(',') - toggle.secretgoodopenpilot_model = toggle.model == "secret-good-openpilot" - velocity_models = self.params.get("VelocityModels", encoding='utf-8') or "" - toggle.velocity_model = velocity_models and toggle.model in velocity_models.split(',') + + toggle.model_ui = self.params.get_bool("ModelUI") + toggle.dynamic_path_width = toggle.model_ui and self.params.get_bool("DynamicPathWidth") + toggle.lane_line_width = self.params.get_int("LaneLinesWidth") * small_distance_conversion / 200 if toggle.model_ui else 0.025 + toggle.path_edge_width = self.params.get_int("PathEdgeWidth") if toggle.model_ui else 20 + toggle.path_width = self.params.get_float("PathWidth") * distance_conversion / 2 if toggle.model_ui else 0.9 + toggle.road_edge_width = self.params.get_int("RoadEdgesWidth") * small_distance_conversion / 200 if toggle.model_ui else 0.025 + toggle.show_stopping_point = toggle.model_ui and self.params.get_bool("ShowStoppingPoint") + toggle.show_stopping_point_metrics = toggle.show_stopping_point and self.params.get_bool("ShowStoppingPointMetrics") + toggle.unlimited_road_ui_length = toggle.model_ui and self.params.get_bool("UnlimitedLength") + + toggle.navigation_ui = self.params.get_bool("NavigationUI") + toggle.big_map = toggle.navigation_ui and self.params.get_bool("BigMap") + toggle.full_map = toggle.big_map and self.params.get_bool("FullMap") + toggle.map_style = self.params.get_int("MapStyle") if toggle.navigation_ui else 0 + toggle.road_name_ui = toggle.navigation_ui and self.params.get_bool("RoadNameUI") + toggle.show_speed_limit_offset = toggle.navigation_ui and self.params.get_bool("ShowSLCOffset") + toggle.speed_limit_vienna = toggle.navigation_ui and self.params.get_bool("UseVienna") + + toggle.new_long_api_gm = openpilot_longitudinal and car_make == "gm" and self.params.get_bool("NewLongAPIGM") + toggle.new_long_api_hkg = openpilot_longitudinal and car_make == "hyundai" and self.params.get_bool("NewLongAPI") + + toggle.new_toyota_tune = openpilot_longitudinal and car_make == "toyota" and self.params.get_bool("NewToyotaTune") toggle.personalize_openpilot = self.params.get_bool("PersonalizeOpenpilot") - toggle.sound_pack = self.params.get("CustomSignals", encoding='utf-8') if toggle.personalize_openpilot else "stock" + toggle.color_scheme = self.params.get("CustomColors", encoding='utf-8') if toggle.personalize_openpilot else "stock" + toggle.distance_icons = self.params.get("CustomDistanceIcons", encoding='utf-8') if toggle.personalize_openpilot else "stock" + toggle.icon_pack = self.params.get("CustomIcons", encoding='utf-8') if toggle.personalize_openpilot else "stock" + toggle.signal_icons = self.params.get("CustomSignals", encoding='utf-8') if toggle.personalize_openpilot else "stock" + toggle.sound_pack = self.params.get("CustomSounds", encoding='utf-8') if toggle.personalize_openpilot else "stock" toggle.wheel_image = self.params.get("WheelIcon", encoding='utf-8') if toggle.personalize_openpilot else "stock" - quality_of_life_lateral = self.params.get_bool("QOLLateral") - toggle.pause_lateral_below_speed = self.params.get_int("PauseLateralSpeed") * speed_conversion if quality_of_life_lateral else 0 - - quality_of_life_longitudinal = self.params.get_bool("QOLLongitudinal") - toggle.custom_cruise_increase = self.params.get_int("CustomCruise") if quality_of_life_longitudinal and not pcm_cruise else 1 - toggle.custom_cruise_increase_long = self.params.get_int("CustomCruiseLong") if quality_of_life_longitudinal and not pcm_cruise else 5 - toggle.distance_icons = self.params.get("CustomDistanceIcons", encoding='utf-8') if quality_of_life_longitudinal and self.params.get_bool("OnroadDistanceButton") else "stock" - map_gears = quality_of_life_longitudinal and self.params.get_bool("MapGears") - toggle.map_acceleration = map_gears and self.params.get_bool("MapAcceleration") - toggle.map_deceleration = map_gears and self.params.get_bool("MapDeceleration") + toggle.quality_of_life_lateral = self.params.get_bool("QOLLateral") + toggle.pause_lateral_below_speed = self.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 self.params.get_bool("PauseLateralOnSignal") - toggle.reverse_cruise_increase = quality_of_life_longitudinal and pcm_cruise and self.params.get_bool("ReverseCruise") + + toggle.quality_of_life_longitudinal = self.params.get_bool("QOLLongitudinal") + toggle.custom_cruise_increase = self.params.get_int("CustomCruise") if toggle.quality_of_life_longitudinal and not pcm_cruise else 1 + toggle.custom_cruise_increase_long = self.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 self.params.get_bool("ForceStandstill") + toggle.force_stops = toggle.quality_of_life_longitudinal and self.params.get_bool("ForceStops") + toggle.map_gears = toggle.quality_of_life_longitudinal and self.params.get_bool("MapGears") + toggle.map_acceleration = toggle.map_gears and self.params.get_bool("MapAcceleration") + toggle.map_deceleration = toggle.map_gears and self.params.get_bool("MapDeceleration") + toggle.reverse_cruise_increase = toggle.quality_of_life_longitudinal and pcm_cruise and self.params.get_bool("ReverseCruise") + toggle.set_speed_offset = self.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 = self.params.get_bool("QOLVisuals") + toggle.camera_view = self.params.get_int("CameraView") if toggle.quality_of_life_visuals else 0 + toggle.driver_camera_in_reverse = toggle.quality_of_life_visuals and self.params.get_bool("DriverCamera") + toggle.onroad_distance_button = toggle.quality_of_life_visuals and self.params.get_bool("OnroadDistanceButton") + toggle.standby_mode = toggle.quality_of_life_visuals and self.params.get_bool("StandbyMode") + toggle.stopped_timer = toggle.quality_of_life_visuals and self.params.get_bool("StoppedTimer") toggle.random_events = self.params.get_bool("RandomEvents") - toggle.sng_hack = toggle.openpilot_longitudinal and car_make == "toyota" and self.params.get_bool("SNGHack") + toggle.screen_management = self.params.get_bool("ScreenManagement") + toggle.screen_brightness = self.params.get_int("ScreenBrightness") if toggle.screen_management else 101 + toggle.screen_brightness_onroad = self.params.get_int("ScreenBrightnessOnroad") if toggle.screen_management else 101 + toggle.screen_recorder = toggle.screen_management and self.params.get_bool("ScreenRecorder") + toggle.screen_timeout = self.params.get_int("ScreenTimeout") if toggle.screen_management else 30 + toggle.screen_timeout_onroad = self.params.get_int("ScreenTimeoutOnroad") if toggle.screen_management else 10 - toggle.speed_limit_controller = toggle.openpilot_longitudinal and self.params.get_bool("SpeedLimitController") + toggle.sng_hack = openpilot_longitudinal and car_make == "toyota" and self.params.get_bool("SNGHack") + + toggle.speed_limit_controller = openpilot_longitudinal and self.params.get_bool("SpeedLimitController") toggle.force_mph_dashboard = toggle.speed_limit_controller and self.params.get_bool("ForceMPHDashboard") toggle.map_speed_lookahead_higher = self.params.get_int("SLCLookaheadHigher") if toggle.speed_limit_controller else 0 toggle.map_speed_lookahead_lower = self.params.get_int("SLCLookaheadLower") if toggle.speed_limit_controller else 0 - toggle.offset1 = self.params.get_int("Offset1") * speed_conversion if toggle.speed_limit_controller else 0 - toggle.offset2 = self.params.get_int("Offset2") * speed_conversion if toggle.speed_limit_controller else 0 - toggle.offset3 = self.params.get_int("Offset3") * speed_conversion if toggle.speed_limit_controller else 0 - toggle.offset4 = self.params.get_int("Offset4") * speed_conversion if toggle.speed_limit_controller else 0 toggle.set_speed_limit = toggle.speed_limit_controller and self.params.get_bool("SetSpeedLimit") - toggle.speed_limit_alert = toggle.speed_limit_controller and self.params.get_bool("SpeedLimitChangedAlert") - toggle.speed_limit_confirmation_higher = toggle.speed_limit_controller and self.params.get_bool("SLCConfirmationHigher") - toggle.speed_limit_confirmation_lower = toggle.speed_limit_controller and self.params.get_bool("SLCConfirmationLower") - speed_limit_controller_override = self.params.get_int("SLCOverride") if toggle.speed_limit_controller else 0 - toggle.speed_limit_controller_override_manual = speed_limit_controller_override == 1 - toggle.speed_limit_controller_override_set_speed = speed_limit_controller_override == 2 - toggle.use_set_speed = toggle.speed_limit_controller and self.params.get_int("SLCFallback") == 0 - toggle.slc_fallback_experimental = toggle.speed_limit_controller and self.params.get_int("SLCFallback") == 1 - toggle.slc_fallback_previous = toggle.speed_limit_controller and self.params.get_int("SLCFallback") == 2 + slc_fallback_method = self.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 self.params.get_bool("SLCConfirmation") + toggle.speed_limit_confirmation_higher = toggle.speed_limit_confirmation and self.params.get_bool("SLCConfirmationHigher") + toggle.speed_limit_confirmation_lower = toggle.speed_limit_confirmation and self.params.get_bool("SLCConfirmationLower") + toggle.speed_limit_controller_override = self.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 = self.params.get_int("Offset1") * speed_conversion if toggle.speed_limit_controller else 0 + toggle.speed_limit_offset2 = self.params.get_int("Offset2") * speed_conversion if toggle.speed_limit_controller else 0 + toggle.speed_limit_offset3 = self.params.get_int("Offset3") * speed_conversion if toggle.speed_limit_controller else 0 + toggle.speed_limit_offset4 = self.params.get_int("Offset4") * speed_conversion if toggle.speed_limit_controller else 0 toggle.speed_limit_priority1 = self.params.get("SLCPriority1", encoding='utf-8') if toggle.speed_limit_controller else None toggle.speed_limit_priority2 = self.params.get("SLCPriority2", encoding='utf-8') if toggle.speed_limit_controller else None toggle.speed_limit_priority3 = self.params.get("SLCPriority3", encoding='utf-8') if toggle.speed_limit_controller else None toggle.speed_limit_priority_highest = toggle.speed_limit_priority1 == "Highest" toggle.speed_limit_priority_lowest = toggle.speed_limit_priority1 == "Lowest" - toyota_doors = car_make == "toyota" and self.params.get_bool("ToyotaDoors") - toggle.lock_doors = toyota_doors and self.params.get_bool("LockDoors") - toggle.unlock_doors = toyota_doors and self.params.get_bool("UnlockDoors") + toggle.startup_alert_top = self.params.get("StartupMessageTop", encoding='utf-8') or "" + toggle.startup_alert_bottom = self.params.get("StartupMessageBottom", encoding='utf-8') or "" -FrogPilotVariables = FrogPilotVariables() + toggle.tethering_config = self.params.get_int("TetheringEnabled") + + toggle.toyota_doors = car_make == "toyota" and self.params.get_bool("ToyotaDoors") + toggle.lock_doors = toggle.toyota_doors and self.params.get_bool("LockDoors") + toggle.unlock_doors = toggle.toyota_doors and self.params.get_bool("UnlockDoors") + + toggle.volt_sng = car_model == "CHEVROLET_VOLT" and self.params.get_bool("VoltSNG") + + customization_level = self.params.get_int("CustomizationLevel") if self.params.get_bool("CustomizationLevelConfirmed") else 2 + + if customization_level == 0: + toggle.advanced_custom_onroad_ui = self.default_frogpilot_toggles.AdvancedCustomUI + toggle.hide_lead_marker = toggle.advanced_custom_onroad_ui and self.default_frogpilot_toggles.HideLeadMarker + toggle.hide_speed = toggle.advanced_custom_onroad_ui and self.default_frogpilot_toggles.HideSpeed + toggle.hide_map_icon = toggle.advanced_custom_onroad_ui and self.default_frogpilot_toggles.HideMapIcon + toggle.hide_max_speed = toggle.advanced_custom_onroad_ui and self.default_frogpilot_toggles.HideMaxSpeed + toggle.hide_alerts = toggle.advanced_custom_onroad_ui and self.default_frogpilot_toggles.HideAlerts + toggle.use_wheel_speed = toggle.advanced_custom_onroad_ui and self.default_frogpilot_toggles.WheelSpeed + + toggle.advanced_lateral_tuning = 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 = 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 = toggle.advanced_lateral_tuning and has_auto_tune and not is_pid_car and self.default_frogpilot_toggles.ForceAutoTuneOff + + toggle.alert_volume_control = self.default_frogpilot_toggles.AlertVolumeControl + toggle.disengage_volume = self.default_frogpilot_toggles.DisengageVolume if toggle.alert_volume_control else 101 + toggle.engage_volume = self.default_frogpilot_toggles.EngageVolume if toggle.alert_volume_control else 101 + toggle.prompt_volume = self.default_frogpilot_toggles.PromptVolume if toggle.alert_volume_control else 101 + toggle.promptDistracted_volume = self.default_frogpilot_toggles.PromptDistractedVolume if toggle.alert_volume_control else 101 + toggle.refuse_volume = self.default_frogpilot_toggles.RefuseVolume if toggle.alert_volume_control else 101 + toggle.warningSoft_volume = self.default_frogpilot_toggles.WarningSoftVolume if toggle.alert_volume_control else 101 + toggle.warningImmediate_volume = self.default_frogpilot_toggles.WarningImmediateVolume if toggle.alert_volume_control else 101 + + toggle.always_on_lateral = always_on_lateral_set and self.default_frogpilot_toggles.AlwaysOnLateral + toggle.always_on_lateral_lkas = toggle.always_on_lateral and car_make != "subaru" and self.default_frogpilot_toggles.AlwaysOnLateralLKAS + toggle.always_on_lateral_main = toggle.always_on_lateral and self.default_frogpilot_toggles.AlwaysOnLateralMain + toggle.always_on_lateral_pause_speed = self.default_frogpilot_toggles.PauseAOLOnBrake if toggle.always_on_lateral else 0 + toggle.always_on_lateral_status_bar = toggle.always_on_lateral and not self.default_frogpilot_toggles.HideAOLStatusBar + + toggle.cluster_offset = self.default_frogpilot_toggles.ClusterOffset if car_make == "toyota" else 1 + + toggle.conditional_experimental_mode = openpilot_longitudinal and self.default_frogpilot_toggles.ConditionalExperimental + toggle.conditional_curves = toggle.conditional_experimental_mode and self.default_frogpilot_toggles.CECurves + toggle.conditional_curves_lead = toggle.conditional_curves and self.default_frogpilot_toggles.CECurvesLead + toggle.conditional_lead = toggle.conditional_experimental_mode and self.default_frogpilot_toggles.CELead + toggle.conditional_slower_lead = toggle.conditional_lead and self.default_frogpilot_toggles.CESlowerLead + toggle.conditional_stopped_lead = toggle.conditional_lead and self.default_frogpilot_toggles.CEStoppedLead + toggle.conditional_limit = self.default_frogpilot_toggles.CESpeed * speed_conversion if toggle.conditional_experimental_mode else 0 + toggle.conditional_limit_lead = self.default_frogpilot_toggles.CESpeedLead * speed_conversion if toggle.conditional_experimental_mode else 0 + toggle.conditional_navigation = toggle.conditional_experimental_mode and self.default_frogpilot_toggles.CENavigation + toggle.conditional_navigation_intersections = toggle.conditional_navigation and self.default_frogpilot_toggles.CENavigationIntersections + toggle.conditional_navigation_lead = toggle.conditional_navigation and self.default_frogpilot_toggles.CENavigationLead + toggle.conditional_navigation_turns = toggle.conditional_navigation and self.default_frogpilot_toggles.CENavigationTurns + toggle.conditional_model_stop_time = self.default_frogpilot_toggles.CEModelStopTime if toggle.conditional_experimental_mode else 0 + toggle.conditional_signal = self.default_frogpilot_toggles.CESignalSpeed if toggle.conditional_experimental_mode else 0 + toggle.conditional_signal_lane_detection = toggle.conditional_signal != 0 and self.default_frogpilot_toggles.CESignalLaneDetection + toggle.conditional_status_bar = toggle.conditional_experimental_mode and not self.default_frogpilot_toggles.HideCEMStatusBar + if toggle.conditional_experimental_mode: + self.params.put_bool("ExperimentalMode", True) + + toggle.crosstrek_torque = car_model == "SUBARU_IMPREZA" and self.default_frogpilot_toggles.CrosstrekTorque + + toggle.curve_speed_controller = openpilot_longitudinal and self.default_frogpilot_toggles.CurveSpeedControl + toggle.curve_sensitivity = self.default_frogpilot_toggles.CurveSensitivity / 100 if toggle.curve_speed_controller else 1 + toggle.turn_aggressiveness = self.default_frogpilot_toggles.TurnAggressiveness / 100 if toggle.curve_speed_controller else 1 + toggle.disable_curve_speed_smoothing = toggle.curve_speed_controller and self.default_frogpilot_toggles.DisableCurveSpeedSmoothing + toggle.map_turn_speed_controller = toggle.curve_speed_controller and self.default_frogpilot_toggles.MTSCEnabled + toggle.mtsc_curvature_check = toggle.map_turn_speed_controller and self.default_frogpilot_toggles.MTSCCurvatureCheck + toggle.vision_turn_controller = toggle.curve_speed_controller and self.default_frogpilot_toggles.VisionTurnControl + + toggle.custom_personalities = openpilot_longitudinal and self.default_frogpilot_toggles.CustomPersonalities + toggle.aggressive_profile = toggle.custom_personalities and self.default_frogpilot_toggles.AggressivePersonalityProfile + toggle.aggressive_jerk_deceleration = self.default_frogpilot_toggles.AggressiveJerkDeceleration / 100 if toggle.aggressive_profile else 0.5 + toggle.aggressive_jerk_danger = self.default_frogpilot_toggles.AggressiveJerkDanger / 100 if toggle.aggressive_profile else 1.0 + toggle.aggressive_jerk_speed = self.default_frogpilot_toggles.AggressiveJerkSpeed / 100 if toggle.aggressive_profile else 0.5 + toggle.aggressive_jerk_speed_decrease = self.default_frogpilot_toggles.AggressiveJerkSpeedDecrease / 100 if toggle.aggressive_profile else 0.5 + toggle.aggressive_follow = self.default_frogpilot_toggles.AggressiveFollow if toggle.aggressive_profile else 1.25 + toggle.standard_profile = toggle.custom_personalities and self.default_frogpilot_toggles.StandardPersonalityProfile + toggle.standard_jerk_acceleration = self.default_frogpilot_toggles.StandardJerkAcceleration / 100 if toggle.standard_profile else 1.0 + toggle.standard_jerk_deceleration = self.default_frogpilot_toggles.StandardJerkDeceleration / 100 if toggle.standard_profile else 1.0 + toggle.standard_jerk_danger = self.default_frogpilot_toggles.StandardJerkDanger / 100 if toggle.standard_profile else 1.0 + toggle.standard_jerk_speed = self.default_frogpilot_toggles.StandardJerkSpeed / 100 if toggle.standard_profile else 1.0 + toggle.standard_jerk_speed_decrease = self.default_frogpilot_toggles.StandardJerkSpeedDecrease / 100 if toggle.standard_profile else 1.0 + toggle.standard_follow = self.default_frogpilot_toggles.StandardFollow if toggle.standard_profile else 1.45 + toggle.relaxed_profile = toggle.custom_personalities and self.default_frogpilot_toggles.RelaxedPersonalityProfile + toggle.relaxed_jerk_acceleration = self.default_frogpilot_toggles.RelaxedJerkAcceleration / 100 if toggle.relaxed_profile else 1.0 + toggle.relaxed_jerk_deceleration = self.default_frogpilot_toggles.RelaxedJerkDeceleration / 100 if toggle.relaxed_profile else 1.0 + toggle.relaxed_jerk_danger = self.default_frogpilot_toggles.RelaxedJerkDanger / 100 if toggle.relaxed_profile else 1.0 + toggle.relaxed_jerk_speed = self.default_frogpilot_toggles.RelaxedJerkSpeed / 100 if toggle.relaxed_profile else 1.0 + toggle.relaxed_jerk_speed_decrease = self.default_frogpilot_toggles.RelaxedJerkSpeedDecrease / 100 if toggle.relaxed_profile else 1.0 + toggle.relaxed_follow = self.default_frogpilot_toggles.RelaxedFollow if toggle.relaxed_profile else 1.75 + toggle.traffic_profile = toggle.custom_personalities and self.default_frogpilot_toggles.TrafficPersonalityProfile + toggle.traffic_mode_jerk_acceleration = [self.default_frogpilot_toggles.TrafficJerkAcceleration / 100, toggle.aggressive_jerk_acceleration] if toggle.traffic_profile else [0.5, 0.5] + toggle.traffic_mode_jerk_deceleration = [self.default_frogpilot_toggles.TrafficJerkDeceleration / 100, toggle.aggressive_jerk_deceleration] if toggle.traffic_profile else [0.5, 0.5] + toggle.traffic_mode_jerk_danger = [self.default_frogpilot_toggles.TrafficJerkDanger / 100, toggle.aggressive_jerk_danger] if toggle.traffic_profile else [1.0, 1.0] + toggle.traffic_mode_jerk_speed = [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 = [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 = [self.default_frogpilot_toggles.TrafficFollow, toggle.aggressive_follow] if toggle.traffic_profile else [0.5, 1.0] + + toggle.custom_ui = self.default_frogpilot_toggles.CustomUI + toggle.acceleration_path = toggle.custom_ui and self.default_frogpilot_toggles.AccelerationPath + toggle.adjacent_paths = toggle.custom_ui and self.default_frogpilot_toggles.AdjacentPath + toggle.blind_spot_path = has_bsm and toggle.custom_ui and self.default_frogpilot_toggles.BlindSpotPath + toggle.compass = toggle.custom_ui and self.default_frogpilot_toggles.Compass + toggle.pedals_on_ui = toggle.custom_ui and self.default_frogpilot_toggles.PedalsOnUI + toggle.dynamic_pedals_on_ui = toggle.pedals_on_ui and self.default_frogpilot_toggles.DynamicPedalsOnUI + toggle.static_pedals_on_ui = toggle.pedals_on_ui and self.default_frogpilot_toggles.StaticPedalsOnUI + toggle.rotating_wheel = toggle.custom_ui and self.default_frogpilot_toggles.RotatingWheel + + toggle.developer_ui = self.default_frogpilot_toggles.DeveloperUI + toggle.border_metrics = toggle.developer_ui and self.default_frogpilot_toggles.BorderMetrics + toggle.blind_spot_metrics = has_bsm and toggle.border_metrics and self.default_frogpilot_toggles.BlindSpotMetrics + toggle.signal_metrics = toggle.border_metrics and self.default_frogpilot_toggles.SignalMetrics + toggle.steering_metrics = toggle.border_metrics and self.default_frogpilot_toggles.ShowSteering + toggle.show_fps = toggle.developer_ui and self.default_frogpilot_toggles.FPSCounter + toggle.lateral_metrics = toggle.developer_ui and self.default_frogpilot_toggles.LateralMetrics + toggle.adjacent_path_metrics = toggle.lateral_metrics and self.default_frogpilot_toggles.AdjacentPathMetrics + toggle.lateral_tuning_metrics = toggle.lateral_metrics and self.default_frogpilot_toggles.TuningInfo + toggle.longitudinal_metrics = toggle.developer_ui and self.default_frogpilot_toggles.LongitudinalMetrics + toggle.adjacent_lead_tracking = has_radar and toggle.longitudinal_metrics and self.default_frogpilot_toggles.AdjacentLeadsUI + toggle.lead_metrics = toggle.longitudinal_metrics and self.default_frogpilot_toggles.LeadInfo + toggle.jerk_metrics = toggle.longitudinal_metrics and self.default_frogpilot_toggles.JerkInfo + toggle.numerical_temp = toggle.developer_ui and self.default_frogpilot_toggles.NumericalTemp + toggle.fahrenheit = toggle.numerical_temp and self.default_frogpilot_toggles.Fahrenheit + toggle.sidebar_metrics = toggle.developer_ui and self.default_frogpilot_toggles.SidebarMetrics + toggle.cpu_metrics = toggle.sidebar_metrics and self.default_frogpilot_toggles.ShowCPU + toggle.gpu_metrics = toggle.sidebar_metrics and self.default_frogpilot_toggles.ShowGPU + toggle.ip_metrics = toggle.sidebar_metrics and self.default_frogpilot_toggles.ShowIP + toggle.memory_metrics = toggle.sidebar_metrics and self.default_frogpilot_toggles.ShowMemoryUsage + toggle.storage_left_metrics = toggle.sidebar_metrics and self.default_frogpilot_toggles.ShowStorageLeft + toggle.storage_used_metrics = toggle.sidebar_metrics and self.default_frogpilot_toggles.ShowStorageUsed + toggle.use_si_metrics = toggle.developer_ui and self.default_frogpilot_toggles.UseSI + + toggle.device_management = self.default_frogpilot_toggles.DeviceManagement + device_shutdown_setting = 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 = toggle.device_management and self.default_frogpilot_toggles.IncreaseThermalLimits + toggle.low_voltage_shutdown = clip(self.default_frogpilot_toggles.LowVoltageShutdown, VBATT_PAUSE_CHARGING, 12.5) if toggle.device_management else VBATT_PAUSE_CHARGING + toggle.no_logging = toggle.device_management and self.default_frogpilot_toggles.NoLogging + toggle.no_uploads = toggle.device_management and self.default_frogpilot_toggles.NoUploads + toggle.offline_mode = toggle.device_management and self.default_frogpilot_toggles.OfflineMode + + toggle.experimental_gm_tune = openpilot_longitudinal and car_make == "gm" and self.default_frogpilot_toggles.ExperimentalGMTune + + toggle.experimental_mode_via_press = openpilot_longitudinal and self.default_frogpilot_toggles.ExperimentalModeActivation + toggle.experimental_mode_via_distance = toggle.experimental_mode_via_press and self.default_frogpilot_toggles.ExperimentalModeViaDistance + toggle.experimental_mode_via_lkas = 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 = toggle.experimental_mode_via_press and self.default_frogpilot_toggles.ExperimentalModeViaTap + + toggle.frogsgomoo_tweak = openpilot_longitudinal and car_make == "toyota" and self.default_frogpilot_toggles.FrogsGoMoosTweak + + toggle.lane_change_customizations = self.default_frogpilot_toggles.LaneChangeCustomizations + toggle.lane_change_delay = self.default_frogpilot_toggles.LaneChangeTime if toggle.lane_change_customizations else 0 + toggle.lane_detection_width = self.default_frogpilot_toggles.LaneDetectionWidth * distance_conversion if toggle.lane_change_customizations else 0 + toggle.lane_detection = toggle.lane_detection_width != 0 + toggle.minimum_lane_change_speed = self.default_frogpilot_toggles.MinimumLaneChangeSpeed * speed_conversion if toggle.lane_change_customizations else LANE_CHANGE_SPEED_MIN + toggle.nudgeless = toggle.lane_change_customizations and self.default_frogpilot_toggles.NudgelessLaneChange + toggle.one_lane_change = toggle.lane_change_customizations and self.default_frogpilot_toggles.OneLaneChange + + toggle.lateral_tuning = self.default_frogpilot_toggles.LateralTune + toggle.nnff = toggle.lateral_tuning and self.default_frogpilot_toggles.NNFF + toggle.smooth_curve_handling = toggle.lateral_tuning and self.default_frogpilot_toggles.NNFFLite + toggle.taco_tune = toggle.lateral_tuning and self.default_frogpilot_toggles.TacoTune + toggle.use_turn_desires = toggle.lateral_tuning and self.default_frogpilot_toggles.TurnDesires + + toggle.long_pitch = openpilot_longitudinal and car_make == "gm" and self.default_frogpilot_toggles.LongPitch + + toggle.human_acceleration = toggle.longitudinal_tuning and self.default_frogpilot_toggles.HumanAcceleration + toggle.human_following = toggle.longitudinal_tuning and self.default_frogpilot_toggles.HumanFollowing + toggle.increased_stopped_distance = self.default_frogpilot_toggles.IncreasedStoppedDistance * distance_conversion if toggle.longitudinal_tuning else 0 + toggle.lead_detection_probability = clip(self.default_frogpilot_toggles.LeadDetectionThreshold / 100, 0.01, 0.99) if toggle.longitudinal_tuning else 0.5 + toggle.max_desired_acceleration = clip(self.default_frogpilot_toggles.MaxDesiredAcceleration, 0.1, 4.0) if toggle.longitudinal_tuning else 4.0 + + toggle.model = DEFAULT_MODEL + toggle.part_model_param = "" + toggle.classic_model = classic_models and toggle.model in classic_models.split(',') + toggle.navigationless_model = navigation_models and toggle.model not in navigation_models.split(',') + toggle.radarless_model = radarless_models and toggle.model in radarless_models.split(',') + + toggle.model_ui = self.default_frogpilot_toggles.ModelUI + toggle.dynamic_path_width = toggle.model_ui and self.default_frogpilot_toggles.DynamicPathWidth + toggle.lane_line_width = self.default_frogpilot_toggles.LaneLinesWidth * small_distance_conversion / 200 if toggle.model_ui else 0.025 + toggle.path_edge_width = self.default_frogpilot_toggles.PathEdgeWidth if toggle.model_ui else 20 + toggle.path_width = self.default_frogpilot_toggles.PathWidth * distance_conversion / 2 if toggle.model_ui else 0.9 + toggle.road_edge_width = self.default_frogpilot_toggles.RoadEdgesWidth * small_distance_conversion / 200 if toggle.model_ui else 0.025 + toggle.show_stopping_point = toggle.model_ui and self.default_frogpilot_toggles.ShowStoppingPoint + toggle.show_stopping_point_metrics = toggle.show_stopping_point and self.default_frogpilot_toggles.ShowStoppingPointMetrics + toggle.unlimited_road_ui_length = toggle.model_ui and self.default_frogpilot_toggles.UnlimitedLength + + toggle.navigation_ui = self.default_frogpilot_toggles.NavigationUI + toggle.big_map = toggle.navigation_ui and self.params.get_bool("BigMap") + toggle.full_map = toggle.big_map and self.default_frogpilot_toggles.FullMap + toggle.map_style = self.default_frogpilot_toggles.MapStyle if toggle.navigation_ui else 0 + toggle.road_name_ui = toggle.navigation_ui and self.default_frogpilot_toggles.RoadNameUI + toggle.show_speed_limit_offset = toggle.navigation_ui and self.default_frogpilot_toggles.ShowSLCOffset + toggle.speed_limit_vienna = toggle.navigation_ui and self.default_frogpilot_toggles.UseVienna + + toggle.new_long_api_gm = openpilot_longitudinal and car_make == "gm" and self.default_frogpilot_toggles.NewLongAPIGM + toggle.new_long_api_hkg = openpilot_longitudinal and car_make == "hyundai" and self.default_frogpilot_toggles.NewLongAPI + + toggle.new_toyota_tune = openpilot_longitudinal and car_make == "toyota" and self.default_frogpilot_toggles.NewToyotaTune + + toggle.quality_of_life_lateral = self.default_frogpilot_toggles.QOLLateral + toggle.pause_lateral_below_speed = self.default_frogpilot_toggles.PauseLateralSpeed * speed_conversion if toggle.quality_of_life_lateral else 0 + + toggle.quality_of_life_longitudinal = self.default_frogpilot_toggles.QOLLongitudinal + toggle.custom_cruise_increase = self.default_frogpilot_toggles.CustomCruise if toggle.quality_of_life_longitudinal and not pcm_cruise else 1 + toggle.custom_cruise_increase_long = self.default_frogpilot_toggles.CustomCruiseLong if toggle.quality_of_life_longitudinal and not pcm_cruise else 5 + toggle.force_standstill = toggle.quality_of_life_longitudinal and self.default_frogpilot_toggles.ForceStandstill + toggle.force_stops = toggle.quality_of_life_longitudinal and self.default_frogpilot_toggles.ForceStops + toggle.map_gears = toggle.quality_of_life_longitudinal and self.default_frogpilot_toggles.MapGears + toggle.map_acceleration = toggle.map_gears and self.default_frogpilot_toggles.MapAcceleration + toggle.map_deceleration = toggle.map_gears and self.default_frogpilot_toggles.MapDeceleration + toggle.pause_lateral_below_signal = toggle.pause_lateral_below_speed != 0 and self.default_frogpilot_toggles.PauseLateralOnSignal + toggle.reverse_cruise_increase = toggle.quality_of_life_longitudinal and pcm_cruise and self.default_frogpilot_toggles.ReverseCruise + toggle.set_speed_offset = 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 = self.default_frogpilot_toggles.CameraView if toggle.quality_of_life_visuals else 0 + toggle.driver_camera_in_reverse = toggle.quality_of_life_visuals and self.default_frogpilot_toggles.DriverCamera + toggle.standby_mode = toggle.quality_of_life_visuals and self.default_frogpilot_toggles.StandbyMode + toggle.stopped_timer = toggle.quality_of_life_visuals and self.default_frogpilot_toggles.StoppedTimer + + toggle.random_events = self.default_frogpilot_toggles.RandomEvents + + toggle.screen_management = self.default_frogpilot_toggles.ScreenManagement + toggle.screen_brightness = self.default_frogpilot_toggles.ScreenBrightness if toggle.screen_management else 101 + toggle.screen_brightness_onroad = self.default_frogpilot_toggles.ScreenBrightnessOnroad if toggle.screen_management else 101 + toggle.screen_recorder = toggle.screen_management and self.default_frogpilot_toggles.ScreenRecorder + toggle.screen_timeout = self.default_frogpilot_toggles.ScreenTimeout if toggle.screen_management else 30 + toggle.screen_timeout_onroad = self.default_frogpilot_toggles.ScreenTimeoutOnroad if toggle.screen_management else 10 + + toggle.sng_hack = openpilot_longitudinal and car_make == "toyota" and self.default_frogpilot_toggles.SNGHack + + toggle.force_mph_dashboard = toggle.speed_limit_controller and self.default_frogpilot_toggles.ForceMPHDashboard + toggle.map_speed_lookahead_higher = self.default_frogpilot_toggles.SLCLookaheadHigher if toggle.speed_limit_controller else 0 + toggle.map_speed_lookahead_lower = self.default_frogpilot_toggles.SLCLookaheadLower if toggle.speed_limit_controller else 0 + toggle.set_speed_limit = toggle.speed_limit_controller and self.default_frogpilot_toggles.SetSpeedLimit + slc_fallback_method = self.default_frogpilot_toggles.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_controller_override = self.default_frogpilot_toggles.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_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 = toggle.speed_limit_priority1 == "Highest" + toggle.speed_limit_priority_lowest = toggle.speed_limit_priority1 == "Lowest" + toggle.speed_limit_vienna = toggle.speed_limit_controller and self.default_frogpilot_toggles.UseVienna + + toggle.startup_alert_top = self.default_frogpilot_toggles.StartupMessageTop + toggle.startup_alert_bottom = self.default_frogpilot_toggles.StartupMessageBottom + + toggle.volt_sng = car_model == "CHEVROLET_VOLT" and self.default_frogpilot_toggles.VoltSNG + + elif customization_level != 2: + toggle.advanced_custom_onroad_ui = self.default_frogpilot_toggles.AdvancedCustomUI + toggle.hide_lead_marker = toggle.advanced_custom_onroad_ui and self.default_frogpilot_toggles.HideLeadMarker + toggle.hide_speed = toggle.advanced_custom_onroad_ui and self.default_frogpilot_toggles.HideSpeed + toggle.hide_map_icon = toggle.advanced_custom_onroad_ui and self.default_frogpilot_toggles.HideMapIcon + toggle.hide_max_speed = toggle.advanced_custom_onroad_ui and self.default_frogpilot_toggles.HideMaxSpeed + toggle.hide_alerts = toggle.advanced_custom_onroad_ui and self.default_frogpilot_toggles.HideAlerts + toggle.use_wheel_speed = toggle.advanced_custom_onroad_ui and self.default_frogpilot_toggles.WheelSpeed + + toggle.advanced_lateral_tuning = 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 = 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 = toggle.advanced_lateral_tuning and has_auto_tune and not is_pid_car and self.default_frogpilot_toggles.ForceAutoTuneOff + + toggle.alert_volume_control = self.default_frogpilot_toggles.AlertVolumeControl + toggle.disengage_volume = self.default_frogpilot_toggles.DisengageVolume if toggle.alert_volume_control else 101 + toggle.engage_volume = self.default_frogpilot_toggles.EngageVolume if toggle.alert_volume_control else 101 + toggle.prompt_volume = self.default_frogpilot_toggles.PromptVolume if toggle.alert_volume_control else 101 + toggle.promptDistracted_volume = self.default_frogpilot_toggles.PromptDistractedVolume if toggle.alert_volume_control else 101 + toggle.refuse_volume = self.default_frogpilot_toggles.RefuseVolume if toggle.alert_volume_control else 101 + toggle.warningSoft_volume = self.default_frogpilot_toggles.WarningSoftVolume if toggle.alert_volume_control else 101 + toggle.warningImmediate_volume = self.default_frogpilot_toggles.WarningImmediateVolume if toggle.alert_volume_control else 101 + + toggle.always_on_lateral_status_bar = toggle.always_on_lateral and not self.default_frogpilot_toggles.HideAOLStatusBar + + toggle.cluster_offset = self.default_frogpilot_toggles.ClusterOffset if car_make == "toyota" else 1 + + toggle.conditional_navigation = toggle.conditional_experimental_mode and self.default_frogpilot_toggles.CENavigation + toggle.conditional_navigation_intersections = toggle.conditional_navigation and self.default_frogpilot_toggles.CENavigationIntersections + toggle.conditional_navigation_lead = toggle.conditional_navigation and self.default_frogpilot_toggles.CENavigationLead + toggle.conditional_navigation_turns = toggle.conditional_navigation and self.default_frogpilot_toggles.CENavigationTurns + toggle.conditional_signal = self.default_frogpilot_toggles.CESignalSpeed if toggle.conditional_experimental_mode else 0 + toggle.conditional_signal_lane_detection = toggle.conditional_signal != 0 and self.default_frogpilot_toggles.CESignalLaneDetection + toggle.conditional_status_bar = toggle.conditional_experimental_mode and not self.default_frogpilot_toggles.HideCEMStatusBar + if toggle.conditional_experimental_mode: + self.params.put_bool("ExperimentalMode", True) + + toggle.crosstrek_torque = car_model == "SUBARU_IMPREZA" and self.default_frogpilot_toggles.CrosstrekTorque + + toggle.curve_sensitivity = self.default_frogpilot_toggles.CurveSensitivity / 100 if toggle.curve_speed_controller else 1 + toggle.turn_aggressiveness = self.default_frogpilot_toggles.TurnAggressiveness / 100 if toggle.curve_speed_controller else 1 + toggle.mtsc_curvature_check = toggle.map_turn_speed_controller and self.default_frogpilot_toggles.MTSCCurvatureCheck + + toggle.custom_personalities = openpilot_longitudinal and self.default_frogpilot_toggles.CustomPersonalities + toggle.aggressive_profile = toggle.custom_personalities and self.default_frogpilot_toggles.AggressivePersonalityProfile + toggle.aggressive_jerk_deceleration = self.default_frogpilot_toggles.AggressiveJerkDeceleration / 100 if toggle.aggressive_profile else 0.5 + toggle.aggressive_jerk_danger = self.default_frogpilot_toggles.AggressiveJerkDanger / 100 if toggle.aggressive_profile else 1.0 + toggle.aggressive_jerk_speed = self.default_frogpilot_toggles.AggressiveJerkSpeed / 100 if toggle.aggressive_profile else 0.5 + toggle.aggressive_jerk_speed_decrease = self.default_frogpilot_toggles.AggressiveJerkSpeedDecrease / 100 if toggle.aggressive_profile else 0.5 + toggle.aggressive_follow = self.default_frogpilot_toggles.AggressiveFollow if toggle.aggressive_profile else 1.25 + toggle.standard_profile = toggle.custom_personalities and self.default_frogpilot_toggles.StandardPersonalityProfile + toggle.standard_jerk_acceleration = self.default_frogpilot_toggles.StandardJerkAcceleration / 100 if toggle.standard_profile else 1.0 + toggle.standard_jerk_deceleration = self.default_frogpilot_toggles.StandardJerkDeceleration / 100 if toggle.standard_profile else 1.0 + toggle.standard_jerk_danger = self.default_frogpilot_toggles.StandardJerkDanger / 100 if toggle.standard_profile else 1.0 + toggle.standard_jerk_speed = self.default_frogpilot_toggles.StandardJerkSpeed / 100 if toggle.standard_profile else 1.0 + toggle.standard_jerk_speed_decrease = self.default_frogpilot_toggles.StandardJerkSpeedDecrease / 100 if toggle.standard_profile else 1.0 + toggle.standard_follow = self.default_frogpilot_toggles.StandardFollow if toggle.standard_profile else 1.45 + toggle.relaxed_profile = toggle.custom_personalities and self.default_frogpilot_toggles.RelaxedPersonalityProfile + toggle.relaxed_jerk_acceleration = self.default_frogpilot_toggles.RelaxedJerkAcceleration / 100 if toggle.relaxed_profile else 1.0 + toggle.relaxed_jerk_deceleration = self.default_frogpilot_toggles.RelaxedJerkDeceleration / 100 if toggle.relaxed_profile else 1.0 + toggle.relaxed_jerk_danger = self.default_frogpilot_toggles.RelaxedJerkDanger / 100 if toggle.relaxed_profile else 1.0 + toggle.relaxed_jerk_speed = self.default_frogpilot_toggles.RelaxedJerkSpeed / 100 if toggle.relaxed_profile else 1.0 + toggle.relaxed_jerk_speed_decrease = self.default_frogpilot_toggles.RelaxedJerkSpeedDecrease / 100 if toggle.relaxed_profile else 1.0 + toggle.relaxed_follow = self.default_frogpilot_toggles.RelaxedFollow if toggle.relaxed_profile else 1.75 + toggle.traffic_profile = toggle.custom_personalities and self.default_frogpilot_toggles.TrafficPersonalityProfile + toggle.traffic_mode_jerk_acceleration = [self.default_frogpilot_toggles.TrafficJerkAcceleration / 100, toggle.aggressive_jerk_acceleration] if toggle.traffic_profile else [0.5, 0.5] + toggle.traffic_mode_jerk_deceleration = [self.default_frogpilot_toggles.TrafficJerkDeceleration / 100, toggle.aggressive_jerk_deceleration] if toggle.traffic_profile else [0.5, 0.5] + toggle.traffic_mode_jerk_danger = [self.default_frogpilot_toggles.TrafficJerkDanger / 100, toggle.aggressive_jerk_danger] if toggle.traffic_profile else [1.0, 1.0] + toggle.traffic_mode_jerk_speed = [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 = [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 = [self.default_frogpilot_toggles.TrafficFollow, toggle.aggressive_follow] if toggle.traffic_profile else [0.5, 1.0] + + toggle.adjacent_paths = toggle.custom_ui and self.default_frogpilot_toggles.AdjacentPath + + toggle.developer_ui = self.default_frogpilot_toggles.DeveloperUI + toggle.border_metrics = toggle.developer_ui and self.default_frogpilot_toggles.BorderMetrics + toggle.blind_spot_metrics = has_bsm and toggle.border_metrics and self.default_frogpilot_toggles.BlindSpotMetrics + toggle.signal_metrics = toggle.border_metrics and self.default_frogpilot_toggles.SignalMetrics + toggle.steering_metrics = toggle.border_metrics and self.default_frogpilot_toggles.ShowSteering + toggle.show_fps = toggle.developer_ui and self.default_frogpilot_toggles.FPSCounter + toggle.lateral_metrics = toggle.developer_ui and self.default_frogpilot_toggles.LateralMetrics + toggle.adjacent_path_metrics = toggle.lateral_metrics and self.default_frogpilot_toggles.AdjacentPathMetrics + toggle.lateral_tuning_metrics = toggle.lateral_metrics and self.default_frogpilot_toggles.TuningInfo + toggle.longitudinal_metrics = toggle.developer_ui and self.default_frogpilot_toggles.LongitudinalMetrics + toggle.adjacent_lead_tracking = has_radar and toggle.longitudinal_metrics and self.default_frogpilot_toggles.AdjacentLeadsUI + toggle.lead_metrics = toggle.longitudinal_metrics and self.default_frogpilot_toggles.LeadInfo + toggle.jerk_metrics = toggle.longitudinal_metrics and self.default_frogpilot_toggles.JerkInfo + toggle.numerical_temp = toggle.developer_ui and self.default_frogpilot_toggles.NumericalTemp + toggle.fahrenheit = toggle.numerical_temp and self.default_frogpilot_toggles.Fahrenheit + toggle.sidebar_metrics = toggle.developer_ui and self.default_frogpilot_toggles.SidebarMetrics + toggle.cpu_metrics = toggle.sidebar_metrics and self.default_frogpilot_toggles.ShowCPU + toggle.gpu_metrics = toggle.sidebar_metrics and self.default_frogpilot_toggles.ShowGPU + toggle.ip_metrics = toggle.sidebar_metrics and self.default_frogpilot_toggles.ShowIP + toggle.memory_metrics = toggle.sidebar_metrics and self.default_frogpilot_toggles.ShowMemoryUsage + toggle.storage_left_metrics = toggle.sidebar_metrics and self.default_frogpilot_toggles.ShowStorageLeft + toggle.storage_used_metrics = toggle.sidebar_metrics and self.default_frogpilot_toggles.ShowStorageUsed + toggle.use_si_metrics = toggle.developer_ui and self.default_frogpilot_toggles.UseSI + + toggle.device_management = self.default_frogpilot_toggles.DeviceManagement + toggle.increase_thermal_limits = toggle.device_management and self.default_frogpilot_toggles.IncreaseThermalLimits + toggle.low_voltage_shutdown = clip(self.default_frogpilot_toggles.LowVoltageShutdown, VBATT_PAUSE_CHARGING, 12.5) if toggle.device_management else VBATT_PAUSE_CHARGING + toggle.no_logging = toggle.device_management and self.default_frogpilot_toggles.NoLogging + toggle.no_uploads = toggle.device_management and self.default_frogpilot_toggles.NoUploads + toggle.offline_mode = toggle.device_management and self.default_frogpilot_toggles.OfflineMode + + toggle.experimental_gm_tune = openpilot_longitudinal and car_make == "gm" and self.default_frogpilot_toggles.ExperimentalGMTune + + toggle.frogsgomoo_tweak = openpilot_longitudinal and car_make == "toyota" and self.default_frogpilot_toggles.FrogsGoMoosTweak + + toggle.lane_detection_width = self.default_frogpilot_toggles.LaneDetectionWidth * distance_conversion if toggle.lane_change_customizations else 0 + toggle.lane_detection = toggle.lane_detection_width != 0 + toggle.minimum_lane_change_speed = self.default_frogpilot_toggles.MinimumLaneChangeSpeed * speed_conversion if toggle.lane_change_customizations else LANE_CHANGE_SPEED_MIN + + toggle.lateral_tuning = self.default_frogpilot_toggles.LateralTune + toggle.smooth_curve_handling = toggle.lateral_tuning and self.default_frogpilot_toggles.NNFFLite + toggle.taco_tune = toggle.lateral_tuning and self.default_frogpilot_toggles.TacoTune + toggle.use_turn_desires = toggle.lateral_tuning and self.default_frogpilot_toggles.TurnDesires + + toggle.long_pitch = openpilot_longitudinal and car_make == "gm" and self.default_frogpilot_toggles.LongPitch + + toggle.lead_detection_probability = clip(self.default_frogpilot_toggles.LeadDetectionThreshold / 100, 0.01, 0.99) if toggle.longitudinal_tuning else 0.5 + toggle.max_desired_acceleration = clip(self.default_frogpilot_toggles.MaxDesiredAcceleration, 0.1, 4.0) if toggle.longitudinal_tuning else 4.0 + + toggle.model = DEFAULT_MODEL + toggle.part_model_param = "" + toggle.classic_model = classic_models and toggle.model in classic_models.split(',') + toggle.navigationless_model = navigation_models and toggle.model not in navigation_models.split(',') + toggle.radarless_model = radarless_models and toggle.model in radarless_models.split(',') + + toggle.model_ui = self.default_frogpilot_toggles.ModelUI + toggle.dynamic_path_width = toggle.model_ui and self.default_frogpilot_toggles.DynamicPathWidth + toggle.lane_line_width = self.default_frogpilot_toggles.LaneLinesWidth * small_distance_conversion / 200 if toggle.model_ui else 0.025 + toggle.path_edge_width = self.default_frogpilot_toggles.PathEdgeWidth if toggle.model_ui else 20 + toggle.path_width = self.default_frogpilot_toggles.PathWidth * distance_conversion / 2 if toggle.model_ui else 0.9 + toggle.road_edge_width = self.default_frogpilot_toggles.RoadEdgesWidth * small_distance_conversion / 200 if toggle.model_ui else 0.025 + toggle.show_stopping_point = toggle.model_ui and self.default_frogpilot_toggles.ShowStoppingPoint + toggle.show_stopping_point_metrics = toggle.show_stopping_point and self.default_frogpilot_toggles.ShowStoppingPointMetrics + toggle.unlimited_road_ui_length = toggle.model_ui and self.default_frogpilot_toggles.UnlimitedLength + + toggle.map_style = self.default_frogpilot_toggles.MapStyle if toggle.navigation_ui else 0 + toggle.road_name_ui = toggle.navigation_ui and self.default_frogpilot_toggles.RoadNameUI + toggle.show_speed_limit_offset = toggle.navigation_ui and self.default_frogpilot_toggles.ShowSLCOffset + toggle.speed_limit_vienna = toggle.navigation_ui and self.default_frogpilot_toggles.UseVienna + + toggle.new_long_api_gm = openpilot_longitudinal and car_make == "gm" and self.default_frogpilot_toggles.NewLongAPIGM + toggle.new_long_api_hkg = openpilot_longitudinal and car_make == "hyundai" and self.default_frogpilot_toggles.NewLongAPI + + toggle.new_toyota_tune = openpilot_longitudinal and car_make == "toyota" and self.default_frogpilot_toggles.NewToyotaTune + + toggle.quality_of_life_lateral = self.default_frogpilot_toggles.QOLLateral + toggle.pause_lateral_below_speed = self.default_frogpilot_toggles.PauseLateralSpeed * speed_conversion if toggle.quality_of_life_lateral else 0 + + toggle.custom_cruise_increase = self.default_frogpilot_toggles.CustomCruise if toggle.quality_of_life_longitudinal and not pcm_cruise else 1 + toggle.custom_cruise_increase_long = self.default_frogpilot_toggles.CustomCruiseLong if toggle.quality_of_life_longitudinal and not pcm_cruise else 5 + toggle.force_standstill = toggle.quality_of_life_longitudinal and self.default_frogpilot_toggles.ForceStandstill + toggle.force_stops = toggle.quality_of_life_longitudinal and self.default_frogpilot_toggles.ForceStops + toggle.pause_lateral_below_signal = toggle.pause_lateral_below_speed != 0 and self.default_frogpilot_toggles.PauseLateralOnSignal + toggle.reverse_cruise_increase = toggle.quality_of_life_longitudinal and pcm_cruise and self.default_frogpilot_toggles.ReverseCruise + toggle.set_speed_offset = 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.quality_of_life_visuals = self.default_frogpilot_toggles.QOLVisuals + toggle.camera_view = self.default_frogpilot_toggles.CameraView if toggle.quality_of_life_visuals else 0 + toggle.standby_mode = toggle.quality_of_life_visuals and self.default_frogpilot_toggles.StandbyMode + + toggle.screen_management = self.default_frogpilot_toggles.ScreenManagement + toggle.screen_brightness = self.default_frogpilot_toggles.ScreenBrightness if toggle.screen_management else 101 + toggle.screen_brightness_onroad = self.default_frogpilot_toggles.ScreenBrightnessOnroad if toggle.screen_management else 101 + toggle.screen_recorder = toggle.screen_management and self.default_frogpilot_toggles.ScreenRecorder + toggle.screen_timeout = self.default_frogpilot_toggles.ScreenTimeout if toggle.screen_management else 30 + toggle.screen_timeout_onroad = self.default_frogpilot_toggles.ScreenTimeoutOnroad if toggle.screen_management else 10 + + toggle.sng_hack = openpilot_longitudinal and car_make == "toyota" and self.default_frogpilot_toggles.SNGHack + + toggle.force_mph_dashboard = toggle.speed_limit_controller and self.default_frogpilot_toggles.ForceMPHDashboard + toggle.map_speed_lookahead_higher = self.default_frogpilot_toggles.SLCLookaheadHigher if toggle.speed_limit_controller else 0 + toggle.map_speed_lookahead_lower = self.default_frogpilot_toggles.SLCLookaheadLower if toggle.speed_limit_controller else 0 + toggle.set_speed_limit = 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 = toggle.speed_limit_priority1 == "Highest" + toggle.speed_limit_priority_lowest = toggle.speed_limit_priority1 == "Lowest" + toggle.speed_limit_vienna = toggle.speed_limit_controller and self.default_frogpilot_toggles.UseVienna + + toggle.startup_alert_top = self.default_frogpilot_toggles.StartupMessageTop + toggle.startup_alert_bottom = self.default_frogpilot_toggles.StartupMessageBottom + + toggle.volt_sng = car_model == "CHEVROLET_VOLT" and self.default_frogpilot_toggles.VoltSNG + + self.params.put("FrogPilotToggles", json.dumps(toggle.__dict__)) + self.params_memory.remove("FrogPilotTogglesUpdated") diff --git a/selfdrive/frogpilot/navigation/mapd.py b/selfdrive/frogpilot/navigation/mapd.py index 9fbd6f82..898fd48d 100644 --- a/selfdrive/frogpilot/navigation/mapd.py +++ b/selfdrive/frogpilot/navigation/mapd.py @@ -8,7 +8,7 @@ import urllib.request from openpilot.common.realtime import Ratekeeper -from openpilot.selfdrive.frogpilot.frogpilot_functions import is_url_pingable +from openpilot.selfdrive.frogpilot.frogpilot_utilities import is_url_pingable VERSION = 'v1' diff --git a/selfdrive/frogpilot/navigation/ui/maps_settings.cc b/selfdrive/frogpilot/navigation/ui/maps_settings.cc index c25150c0..91ea0bd0 100644 --- a/selfdrive/frogpilot/navigation/ui/maps_settings.cc +++ b/selfdrive/frogpilot/navigation/ui/maps_settings.cc @@ -8,14 +8,14 @@ FrogPilotMapsPanel::FrogPilotMapsPanel(FrogPilotSettingsWindow *parent) : FrogPilotListWidget(parent) { std::vector scheduleOptions{tr("Manually"), tr("Weekly"), tr("Monthly")}; - preferredSchedule = new ButtonParamControl("PreferredSchedule", tr("Maps Scheduler"), - tr("Choose the frequency for updating maps with the latest OpenStreetMap (OSM) changes. " + preferredSchedule = new ButtonParamControl("PreferredSchedule", tr("Automatically Update Maps"), + tr("Controls the frequency at which maps update with the latest OpenStreetMap (OSM) changes. " "Weekly updates begin at midnight every Sunday, while monthly updates start at midnight on the 1st of each month."), "", scheduleOptions); addItem(preferredSchedule); - selectMapsButton = new FrogPilotButtonsControl(tr("Select Offline Maps"), tr("Select your maps to use with 'Curve Speed Control' and 'Speed Limit Controller'."), {tr("COUNTRIES"), tr("STATES")}); + selectMapsButton = new FrogPilotButtonsControl(tr("Select Offline Maps"), tr("Offline maps to use with 'Curve Speed Control' and 'Speed Limit Controller'."), {tr("COUNTRIES"), tr("STATES")}); QObject::connect(selectMapsButton, &FrogPilotButtonsControl::buttonClicked, [this](int id) { if (id == 0) { countriesOpen = true; @@ -25,7 +25,7 @@ FrogPilotMapsPanel::FrogPilotMapsPanel(FrogPilotSettingsWindow *parent) : FrogPi }); addItem(selectMapsButton); - downloadMapsButton = new ButtonControl(tr("Download Maps"), tr("DOWNLOAD"), tr("Download your selected maps to use with 'Curve Speed Control' and 'Speed Limit Controller'.")); + downloadMapsButton = new ButtonControl(tr("Download Maps"), tr("DOWNLOAD"), tr("Downloads the selected maps to use with 'Curve Speed Control' and 'Speed Limit Controller'.")); QObject::connect(downloadMapsButton, &ButtonControl::clicked, [this] { if (downloadMapsButton->text() == tr("CANCEL")) { cancelDownload(); @@ -45,7 +45,7 @@ FrogPilotMapsPanel::FrogPilotMapsPanel(FrogPilotSettingsWindow *parent) : FrogPi downloadStatus->setVisible(false); downloadTimeElapsed->setVisible(false); - removeMapsButton = new ButtonControl(tr("Remove Maps"), tr("REMOVE"), tr("Remove your downloaded maps to clear up storage space.")); + removeMapsButton = new ButtonControl(tr("Remove Maps"), tr("REMOVE"), tr("Removes downloaded maps to clear up storage space.")); QObject::connect(removeMapsButton, &ButtonControl::clicked, [this] { if (FrogPilotConfirmationDialog::yesorno(tr("Are you sure you want to delete all of your downloaded maps?"), this)) { std::thread([this] { diff --git a/selfdrive/frogpilot/navigation/ui/primeless_settings.cc b/selfdrive/frogpilot/navigation/ui/primeless_settings.cc index f181ab04..230970c8 100644 --- a/selfdrive/frogpilot/navigation/ui/primeless_settings.cc +++ b/selfdrive/frogpilot/navigation/ui/primeless_settings.cc @@ -5,14 +5,14 @@ FrogPilotPrimelessPanel::FrogPilotPrimelessPanel(FrogPilotSettingsWindow *parent std::vector searchOptions{tr("MapBox"), tr("Amap"), tr("Google")}; searchInput = new ButtonParamControl("SearchInput", tr("Destination Search Provider"), - tr("Select a search provider for destination queries in Navigate on Openpilot. Options include MapBox (recommended), Amap, and Google Maps."), + tr("The search provider used for destination queries in 'Navigate on Openpilot'. Options include 'MapBox' (recommended), 'Amap', and 'Google Maps'."), "", searchOptions); addItem(searchInput); createMapboxKeyControl(publicMapboxKeyControl, tr("Public Mapbox Key"), "MapboxPublicKey", "pk."); createMapboxKeyControl(secretMapboxKeyControl, tr("Secret Mapbox Key"), "MapboxSecretKey", "sk."); - setupButton = new ButtonControl(tr("Mapbox Setup Instructions"), tr("VIEW"), tr("View the instructions to set up MapBox for 'Primeless Navigation'."), this); + setupButton = new ButtonControl(tr("MapBox Setup Instructions"), tr("VIEW"), tr("View the instructions to set up 'MapBox' for 'Primeless Navigation'."), this); QObject::connect(setupButton, &ButtonControl::clicked, [this]() { displayMapboxInstructions(true); openMapBoxInstructions(); @@ -91,6 +91,7 @@ void FrogPilotPrimelessPanel::hideEvent(QHideEvent *event) { } void FrogPilotPrimelessPanel::mousePressEvent(QMouseEvent *event) { + closeMapBoxInstructions(); displayMapboxInstructions(false); } diff --git a/selfdrive/frogpilot/navigation/ui/primeless_settings.h b/selfdrive/frogpilot/navigation/ui/primeless_settings.h index 690f0842..a5cd413f 100644 --- a/selfdrive/frogpilot/navigation/ui/primeless_settings.h +++ b/selfdrive/frogpilot/navigation/ui/primeless_settings.h @@ -9,6 +9,7 @@ public: explicit FrogPilotPrimelessPanel(FrogPilotSettingsWindow *parent); signals: + void closeMapBoxInstructions(); void openMapBoxInstructions(); private: diff --git a/selfdrive/frogpilot/ui/qt/offroad/advanced_driving_settings.cc b/selfdrive/frogpilot/ui/qt/offroad/advanced_driving_settings.cc deleted file mode 100644 index 9bff861e..00000000 --- a/selfdrive/frogpilot/ui/qt/offroad/advanced_driving_settings.cc +++ /dev/null @@ -1,935 +0,0 @@ -#include "selfdrive/frogpilot/ui/qt/offroad/advanced_driving_settings.h" - -FrogPilotAdvancedDrivingPanel::FrogPilotAdvancedDrivingPanel(FrogPilotSettingsWindow *parent) : FrogPilotListWidget(parent), parent(parent) { - const std::vector> advancedToggles { - {"AdvancedLateralTune", tr("Advanced Lateral Tuning"), tr("Advanced settings that control how openpilot manages steering."), "../frogpilot/assets/toggle_icons/icon_advanced_lateral_tune.png"}, - {"SteerFriction", steerFrictionStock != 0 ? QString(tr("Friction (Default: %1)")).arg(QString::number(steerFrictionStock, 'f', 2)) : tr("Friction"), tr("The resistance in steering. Higher values provide more stable steering but can make it feel heavy, while lower values allow lighter steering but may feel too sensitive."), ""}, - {"SteerKP", steerKPStock != 0 ? QString(tr("Kp Factor (Default: %1)")).arg(QString::number(steerKPStock, 'f', 2)) : tr("Kp Factor"), tr("How aggressively the car corrects its steering. Higher values offer quicker corrections but may feel jerky, while lower values make steering smoother but slower to respond."), ""}, - {"SteerLatAccel", steerLatAccelStock != 0 ? QString(tr("Lateral Accel (Default: %1)")).arg(QString::number(steerLatAccelStock, 'f', 2)) : tr("Lateral Accel"), tr("Adjust how fast the car can steer from side to side. Higher values allow quicker lane changes but can feel unstable, while lower values provide smoother steering but may feel sluggish."), ""}, - {"SteerRatio", steerRatioStock != 0 ? QString(tr("Steer Ratio (Default: %1)")).arg(QString::number(steerRatioStock, 'f', 2)) : tr("Steer Ratio"), tr("Adjust how much openpilot needs to turn the wheel to steer. Higher values feel like driving a truck, more stable at high speeds, but harder to steer quickly at low speeds, while lower values feel like a go-kart, easier to steer in tight spots but more sensitive and less stable at high speeds."), ""}, - {"TacoTune", tr("comma's 2022 Taco Bell Turn Hack"), tr("Use comma's hack they used to help handle left and right turns more precisely during their 2022 'Taco Bell' drive."), ""}, - {"ForceAutoTune", tr("Force Auto Tune On"), tr("Forces comma's auto lateral tuning for unsupported vehicles."), ""}, - {"ForceAutoTuneOff", tr("Force Auto Tune Off"), tr("Forces comma's auto lateral tuning off for supported vehicles."), ""}, - {"TurnDesires", tr("Force Turn Desires Below Lane Change Speed"), tr("Force the model to use turn desires when driving below the minimum lane change speed to help make left and right turns more precisely."), ""}, - - {"AdvancedLongitudinalTune", tr("Advanced Longitudinal Tuning"), tr("Advanced settings that control how openpilot manages speed and acceleration."), "../frogpilot/assets/toggle_icons/icon_advanced_longitudinal_tune.png"}, - {"LeadDetectionThreshold", tr("Lead Detection Confidence"), tr("How sensitive openpilot is to detecting vehicles ahead. A lower value can help detect vehicles sooner and from farther away, but may occasionally mistake other objects for vehicles."), ""}, - {"MaxDesiredAcceleration", tr("Maximum Acceleration Rate"), tr("Set a cap on how fast openpilot can accelerate to prevent high acceleration at low speeds."), ""}, - - {"AdvancedQOLDriving", tr("Advanced Quality of Life"), tr("Miscellaneous advanced features to improve your overall openpilot experience."), "../frogpilot/assets/toggle_icons/advanced_quality_of_life.png"}, - {"ForceStandstill", tr("Force Keep openpilot in the Standstill State"), tr("Keep openpilot in the 'standstill' state until the gas pedal or 'resume' button is pressed."), ""}, - {"ForceStops", tr("Force Stop for 'Detected' Stop Lights/Signs"), tr("Whenever openpilot 'detects' a potential stop light/stop sign, force a stop where it originally detected it to prevent running the potential red light/stop sign."), ""}, - {"SetSpeedOffset", tr("Set Speed Offset"), tr("How much higher or lower the set speed should be compared to your current set speed. For example, if you prefer to drive 5 mph above the speed limit, this setting will automatically add that difference when you adjust your set speed."), ""}, - - {"CustomPersonalities", tr("Customize Driving Personalities"), tr("Customize the personality profiles to suit your preferences."), "../frogpilot/assets/toggle_icons/icon_advanced_personality.png"}, - {"TrafficPersonalityProfile", tr("Traffic Personality"), tr("Customize the 'Traffic' personality profile, tailored for navigating through traffic."), "../frogpilot/assets/stock_theme/distance_icons/traffic.png"}, - {"TrafficFollow", tr("Following Distance"), tr("The minimum following distance in 'Traffic Mode.' openpilot will adjust dynamically between this value and the 'Aggressive' profile distance based on your speed."), ""}, - {"TrafficJerkAcceleration", tr("Acceleration Sensitivity"), tr("How sensitive openpilot is to changes in acceleration in 'Traffic Mode.' Higher values result in smoother, more gradual acceleration and deceleration, while lower values allow for faster changes that may feel more abrupt."), ""}, - {"TrafficJerkDeceleration", tr("Deceleration Sensitivity"), tr("Controls how sensitive openpilot is to changes in deceleration in 'Traffic Mode.' Higher values result in smoother, more gradual braking, while lower values allow for quicker, more responsive braking that may feel abrupt."), ""}, - {"TrafficJerkDanger", tr("Safety Distance Sensitivity"), tr("Adjusts how cautious openpilot is around other vehicles or obstacles in 'Traffic Mode.' Higher values increase following distances and prioritize safety, leading to more cautious driving, while lower values allow for closer following but may reduce reaction time."), ""}, - {"TrafficJerkSpeed", tr("Speed Increase Responsiveness"), tr("Controls how quickly openpilot adjusts speed in 'Traffic Mode.' Higher values ensure smoother, more gradual speed changes, while lower values enable quicker adjustments that might feel sharper or less smooth."), ""}, - {"TrafficJerkSpeedDecrease", tr("Speed Decrease Responsiveness"), tr("Sets how quickly openpilot adjusts to decreasing speeds in 'Traffic Mode.' Higher values ensure smoother transitions when slowing down, while lower values allow for quicker, more responsive speed reductions that might feel sharper."), ""}, - {"ResetTrafficPersonality", tr("Reset Settings"), tr("Restore the 'Traffic Mode' settings to their default values."), ""}, - - {"AggressivePersonalityProfile", tr("Aggressive Personality"), tr("Customize the 'Aggressive' personality profile, designed for a more assertive driving style."), "../frogpilot/assets/stock_theme/distance_icons/aggressive.png"}, - {"AggressiveFollow", tr("Following Distance"), tr("Set the following distance for 'Aggressive' mode. This determines roughly how many seconds you'll follow behind the car ahead.\n\nDefault: 1.25 seconds."), ""}, - {"AggressiveJerkAcceleration", tr("Acceleration Sensitivity"), tr("Controls how sensitive openpilot is to acceleration changes in 'Aggressive' mode. Higher values make acceleration and deceleration smoother but slower, while lower values allow quicker changes that may feel jerky.\n\nDefault: 0.5."), ""}, - {"AggressiveJerkDeceleration", tr("Deceleration Sensitivity"), tr("Controls how sensitive openpilot is to deceleration in 'Aggressive' mode. Higher values result in smoother braking, while lower values allow for more immediate braking that may feel abrupt.\n\nDefault: 0.5."), ""}, - {"AggressiveJerkDanger", tr("Safety Distance Sensitivity"), tr("Adjusts how cautious openpilot is around vehicles or obstacles in 'Aggressive' mode. Higher values make it more cautious, while lower values allow for closer following, increasing the risk of sudden braking.\n\nDefault: 1.0."), ""}, - {"AggressiveJerkSpeed", tr("Speed Increase Responsiveness"), tr("Controls how quickly openpilot adjusts speed in 'Aggressive' mode. Higher values result in smoother but slower speed changes, while lower values make speed adjustments quicker but potentially more abrupt.\n\nDefault: 0.5."), ""}, - {"AggressiveJerkSpeedDecrease", tr("Speed Decrease Responsiveness"), tr("Sets how quickly openpilot adjusts to speed reductions in 'Aggressive' mode. Higher values ensure smoother transitions when slowing down, while lower values allow for quicker, more responsive speed decreases that may feel sharp.\n\nDefault: 0.5."), ""}, - {"ResetAggressivePersonality", tr("Reset Settings"), tr("Restore the 'Aggressive' settings to their default values."), ""}, - - {"StandardPersonalityProfile", tr("Standard Personality"), tr("Customize the 'Standard' personality profile, optimized for balanced driving."), "../frogpilot/assets/stock_theme/distance_icons/standard.png"}, - {"StandardFollow", tr("Following Distance"), tr("Set the following distance for 'Standard' mode. This determines roughly how many seconds you'll follow behind the car ahead.\n\nDefault: 1.45 seconds."), ""}, - {"StandardJerkAcceleration", tr("Acceleration Sensitivity"), tr("Controls how sensitive openpilot is to acceleration changes in 'Standard' mode. Higher values make acceleration and deceleration smoother but slower, while lower values allow quicker changes that may feel jerky.\n\nDefault: 1.0."), ""}, - {"StandardJerkDeceleration", tr("Deceleration Sensitivity"), tr("Controls how sensitive openpilot is to deceleration in 'Standard' mode. Higher values result in smoother braking, while lower values allow for quicker, more immediate braking that may feel abrupt.\n\nDefault: 1.0."), ""}, - {"StandardJerkDanger", tr("Safety Distance Sensitivity"), tr("Adjusts how cautious openpilot is around vehicles or obstacles in 'Standard' mode. Higher values make it more cautious, while lower values allow for closer following, increasing the risk of sudden braking.\n\nDefault: 1.0."), ""}, - {"StandardJerkSpeed", tr("Speed Increase Responsiveness"), tr("Controls how quickly openpilot adjusts speed in 'Standard' mode. Higher values result in smoother but slower speed changes, while lower values make speed adjustments quicker but potentially more abrupt.\n\nDefault: 1.0."), ""}, - {"StandardJerkSpeedDecrease", tr("Speed Decrease Responsiveness"), tr("Sets how quickly openpilot adjusts to speed reductions in 'Standard' mode. Higher values ensure smoother transitions when slowing down, while lower values allow for quicker, more responsive speed decreases that may feel sharp.\n\nDefault: 1.0."), ""}, - {"ResetStandardPersonality", tr("Reset Settings"), tr("Restore the 'Standard' settings to their default values."), ""}, - - {"RelaxedPersonalityProfile", tr("Relaxed Personality"), tr("Customize the 'Relaxed' personality profile, ideal for a more laid-back driving style."), "../frogpilot/assets/stock_theme/distance_icons/relaxed.png"}, - {"RelaxedFollow", tr("Following Distance"), tr("Set the following distance for 'Relaxed' mode. This determines roughly how many seconds you'll follow behind the car ahead.\n\nDefault: 1.75 seconds."), ""}, - {"RelaxedJerkAcceleration", tr("Acceleration Sensitivity"), tr("Controls how sensitive openpilot is to acceleration changes in 'Relaxed' mode. Higher values make acceleration and deceleration smoother but slower, while lower values allow quicker changes that may feel jerky.\n\nDefault: 1.0."), ""}, - {"RelaxedJerkDeceleration", tr("Deceleration Sensitivity"), tr("Controls how sensitive openpilot is to deceleration in 'Relaxed' mode. Higher values result in smoother braking, while lower values allow for quicker, more immediate braking that may feel abrupt.\n\nDefault: 1.0."), ""}, - {"RelaxedJerkDanger", tr("Safety Distance Sensitivity"), tr("Adjusts how cautious openpilot is around vehicles or obstacles in 'Relaxed' mode. Higher values make it more cautious, while lower values allow for closer following, increasing the risk of sudden braking.\n\nDefault: 1.0."), ""}, - {"RelaxedJerkSpeed", tr("Speed Increase Responsiveness"), tr("Controls how quickly openpilot adjusts speed in 'Relaxed' mode. Higher values result in smoother but slower speed changes, while lower values make speed adjustments quicker but potentially more abrupt.\n\nDefault: 1.0."), ""}, - {"RelaxedJerkSpeedDecrease", tr("Speed Decrease Responsiveness"), tr("Sets how quickly openpilot adjusts to speed reductions in 'Relaxed' mode. Higher values ensure smoother transitions when slowing down, while lower values allow for quicker, more responsive speed decreases that may feel sharp.\n\nDefault: 1.0."), ""}, - {"ResetRelaxedPersonality", tr("Reset Settings"), tr("Restore the 'Relaxed' settings to their default values."), ""}, - - {"ModelManagement", tr("Model Management"), tr("Manage the driving models used by openpilot."), "../frogpilot/assets/toggle_icons/icon_advanced_model.png"}, - {"AutomaticallyUpdateModels", tr("Automatically Update and Download Models"), tr("Automatically download new or updated driving models."), ""}, - {"ModelRandomizer", tr("Model Randomizer"), tr("A random model is selected and can be reviewed at the end of each drive if it's longer than 15 minutes to help find your preferred model."), ""}, - {"ManageBlacklistedModels", tr("Manage Model Blacklist"), tr("Control which models are blacklisted and won't be used for future drives."), ""}, - {"ResetScores", tr("Reset Model Scores"), tr("Clear the ratings you've given to the driving models."), ""}, - {"ReviewScores", tr("Review Model Scores"), tr("View the ratings you've assigned to the driving models."), ""}, - {"DeleteModel", tr("Delete Model"), tr("Remove the selected driving model from your device."), ""}, - {"DownloadModel", tr("Download Model"), tr("Download undownloaded driving models."), ""}, - {"DownloadAllModels", tr("Download All Models"), tr("Download all undownloaded driving models."), ""}, - {"SelectModel", tr("Select Model"), tr("Select which model openpilot uses to drive."), ""}, - {"ResetCalibrations", tr("Reset Model Calibrations"), tr("Reset calibration settings for the driving models."), ""}, - }; - - for (const auto &[param, title, desc, icon] : advancedToggles) { - AbstractControl *advancedDrivingToggle; - - if (param == "AdvancedLateralTune") { - FrogPilotParamManageControl *advancedLateralTuneToggle = new FrogPilotParamManageControl(param, title, desc, icon); - QObject::connect(advancedLateralTuneToggle, &FrogPilotParamManageControl::manageButtonClicked, [this]() { - std::set modifiedLateralTuneKeys = lateralTuneKeys; - - bool usingNNFF = hasNNFFLog && params.getBool("LateralTune") && params.getBool("NNFF"); - if (usingNNFF) { - modifiedLateralTuneKeys.erase("ForceAutoTune"); - modifiedLateralTuneKeys.erase("ForceAutoTuneOff"); - } else { - if (hasAutoTune) { - modifiedLateralTuneKeys.erase("ForceAutoTune"); - } else if (isPIDCar) { - modifiedLateralTuneKeys.erase("ForceAutoTuneOff"); - modifiedLateralTuneKeys.erase("SteerFriction"); - modifiedLateralTuneKeys.erase("SteerKP"); - modifiedLateralTuneKeys.erase("SteerLatAccel"); - } else { - modifiedLateralTuneKeys.erase("ForceAutoTuneOff"); - } - } - - if (!liveValid || usingNNFF) { - modifiedLateralTuneKeys.erase("SteerFriction"); - modifiedLateralTuneKeys.erase("SteerLatAccel"); - } - - showToggles(modifiedLateralTuneKeys); - }); - advancedDrivingToggle = advancedLateralTuneToggle; - } else if (param == "SteerFriction") { - std::vector steerFrictionToggleNames{"Reset"}; - advancedDrivingToggle = new FrogPilotParamValueButtonControl(param, title, desc, icon, 0.01, 0.25, QString(), std::map(), 0.01, {}, steerFrictionToggleNames, false); - } else if (param == "SteerKP") { - std::vector steerKPToggleNames{"Reset"}; - advancedDrivingToggle = new FrogPilotParamValueButtonControl(param, title, desc, icon, steerKPStock * 0.50, steerKPStock * 1.50, QString(), std::map(), 0.01, {}, steerKPToggleNames, false); - } else if (param == "SteerLatAccel") { - std::vector steerLatAccelToggleNames{"Reset"}; - advancedDrivingToggle = new FrogPilotParamValueButtonControl(param, title, desc, icon, steerLatAccelStock * 0.25, steerLatAccelStock * 1.25, QString(), std::map(), 0.01, {}, steerLatAccelToggleNames, false); - } else if (param == "SteerRatio") { - std::vector steerRatioToggleNames{"Reset"}; - advancedDrivingToggle = new FrogPilotParamValueButtonControl(param, title, desc, icon, steerRatioStock * 0.75, steerRatioStock * 1.25, QString(), std::map(), 0.01, {}, steerRatioToggleNames, false); - - } else if (param == "AdvancedLongitudinalTune") { - FrogPilotParamManageControl *advancedLongitudinalTuneToggle = new FrogPilotParamManageControl(param, title, desc, icon); - QObject::connect(advancedLongitudinalTuneToggle, &FrogPilotParamManageControl::manageButtonClicked, [this]() { - std::set modifiedLongitudinalTuneKeys = longitudinalTuneKeys; - - bool radarlessModel = QString::fromStdString(params.get("RadarlessModels")).split(",").contains(QString::fromStdString(params.get("Model"))); - if (radarlessModel) { - modifiedLongitudinalTuneKeys.erase("LeadDetectionThreshold"); - } - - showToggles(modifiedLongitudinalTuneKeys); - }); - advancedDrivingToggle = advancedLongitudinalTuneToggle; - } else if (param == "LeadDetectionThreshold") { - advancedDrivingToggle = new FrogPilotParamValueControl(param, title, desc, icon, 1, 99, "%"); - } else if (param == "MaxDesiredAcceleration") { - advancedDrivingToggle = new FrogPilotParamValueControl(param, title, desc, icon, 0.1, 4.0, "m/s", std::map(), 0.1); - - } else if (param == "AdvancedQOLDriving") { - FrogPilotParamManageControl *advancedQOLToggle = new FrogPilotParamManageControl(param, title, desc, icon); - QObject::connect(advancedQOLToggle, &FrogPilotParamManageControl::manageButtonClicked, [this]() { - std::set modifiedQolKeys = qolKeys; - - if (hasPCMCruise) { - modifiedQolKeys.erase("SetSpeedOffset"); - } - - showToggles(modifiedQolKeys); - }); - advancedDrivingToggle = advancedQOLToggle; - } else if (param == "SetSpeedOffset") { - advancedDrivingToggle = new FrogPilotParamValueControl(param, title, desc, icon, 0, 99, tr("mph")); - - } else if (param == "CustomPersonalities") { - FrogPilotParamManageControl *customPersonalitiesToggle = new FrogPilotParamManageControl(param, title, desc, icon); - QObject::connect(customPersonalitiesToggle, &FrogPilotParamManageControl::manageButtonClicked, [this]() { - showToggles(customDrivingPersonalityKeys); - }); - advancedDrivingToggle = customPersonalitiesToggle; - } else if (param == "ResetTrafficPersonality" || param == "ResetAggressivePersonality" || param == "ResetStandardPersonality" || param == "ResetRelaxedPersonality") { - FrogPilotButtonsControl *profileBtn = new FrogPilotButtonsControl(title, desc, {tr("Reset")}); - advancedDrivingToggle = profileBtn; - } else if (param == "TrafficPersonalityProfile") { - FrogPilotParamManageControl *trafficPersonalityToggle = new FrogPilotParamManageControl(param, title, desc, icon); - QObject::connect(trafficPersonalityToggle, &FrogPilotParamManageControl::manageButtonClicked, [this]() { - customPersonalityOpen = true; - openSubParentToggle(); - showToggles(trafficPersonalityKeys); - }); - advancedDrivingToggle = trafficPersonalityToggle; - } else if (param == "AggressivePersonalityProfile") { - FrogPilotParamManageControl *aggressivePersonalityToggle = new FrogPilotParamManageControl(param, title, desc, icon); - QObject::connect(aggressivePersonalityToggle, &FrogPilotParamManageControl::manageButtonClicked, [this]() { - customPersonalityOpen = true; - openSubParentToggle(); - showToggles(aggressivePersonalityKeys); - }); - advancedDrivingToggle = aggressivePersonalityToggle; - } else if (param == "StandardPersonalityProfile") { - FrogPilotParamManageControl *standardPersonalityToggle = new FrogPilotParamManageControl(param, title, desc, icon); - QObject::connect(standardPersonalityToggle, &FrogPilotParamManageControl::manageButtonClicked, [this]() { - customPersonalityOpen = true; - openSubParentToggle(); - showToggles(standardPersonalityKeys); - }); - advancedDrivingToggle = standardPersonalityToggle; - } else if (param == "RelaxedPersonalityProfile") { - FrogPilotParamManageControl *relaxedPersonalityToggle = new FrogPilotParamManageControl(param, title, desc, icon); - QObject::connect(relaxedPersonalityToggle, &FrogPilotParamManageControl::manageButtonClicked, [this]() { - customPersonalityOpen = true; - openSubParentToggle(); - showToggles(relaxedPersonalityKeys); - }); - advancedDrivingToggle = relaxedPersonalityToggle; - } else if (trafficPersonalityKeys.find(param) != trafficPersonalityKeys.end() || - aggressivePersonalityKeys.find(param) != aggressivePersonalityKeys.end() || - standardPersonalityKeys.find(param) != standardPersonalityKeys.end() || - relaxedPersonalityKeys.find(param) != relaxedPersonalityKeys.end()) { - if (param == "TrafficFollow" || param == "AggressiveFollow" || param == "StandardFollow" || param == "RelaxedFollow") { - if (param == "TrafficFollow") { - advancedDrivingToggle = new FrogPilotParamValueControl(param, title, desc, icon, 0.5, 5, tr(" seconds"), std::map(), 0.01); - } else { - advancedDrivingToggle = new FrogPilotParamValueControl(param, title, desc, icon, 1, 5, tr(" seconds"), std::map(), 0.01); - } - } else { - advancedDrivingToggle = new FrogPilotParamValueControl(param, title, desc, icon, 1, 500, "%"); - } - - } else if (param == "ModelManagement") { - FrogPilotParamManageControl *modelManagementToggle = new FrogPilotParamManageControl(param, title, desc, icon); - QObject::connect(modelManagementToggle, &FrogPilotParamManageControl::manageButtonClicked, [this]() { - availableModelNames = QString::fromStdString(params.get("AvailableModelsNames")).split(","); - availableModels = QString::fromStdString(params.get("AvailableModels")).split(","); - experimentalModels = QString::fromStdString(params.get("ExperimentalModels")).split(","); - - modelManagementOpen = true; - - QString currentModel = QString::fromStdString(params.get("Model")) + ".thneed"; - QStringList modelFiles = modelDir.entryList({"*.thneed"}, QDir::Files); - modelFiles.removeAll(currentModel); - haveModelsDownloaded = modelFiles.size() > 1; - modelsDownloaded = params.getBool("ModelsDownloaded"); - - showToggles(modelManagementKeys); - }); - advancedDrivingToggle = modelManagementToggle; - } else if (param == "ModelRandomizer") { - FrogPilotParamManageControl *modelRandomizerToggle = new FrogPilotParamManageControl(param, title, desc, icon); - QObject::connect(modelRandomizerToggle, &FrogPilotParamManageControl::manageButtonClicked, [this]() { - openSubParentToggle(); - showToggles(modelRandomizerKeys); - updateModelLabels(); - }); - advancedDrivingToggle = modelRandomizerToggle; - } else if (param == "ManageBlacklistedModels") { - FrogPilotButtonsControl *blacklistBtn = new FrogPilotButtonsControl(title, desc, {tr("ADD"), tr("REMOVE")}); - QObject::connect(blacklistBtn, &FrogPilotButtonsControl::buttonClicked, [this](int id) { - QStringList blacklistedModels = QString::fromStdString(params.get("BlacklistedModels")).split(",", QString::SkipEmptyParts); - QStringList selectableModels = availableModelNames; - - for (QString &model : blacklistedModels) { - selectableModels.removeAll(model); - if (model.contains("(Default)")) { - blacklistedModels.move(blacklistedModels.indexOf(model), 0); - } - } - - if (id == 0) { - if (selectableModels.size() == 1) { - FrogPilotConfirmationDialog::toggleAlert(tr("There's no more models to blacklist! The only available model is \"%1\"!").arg(selectableModels.first()), tr("OK"), this); - } else { - QString selectedModel = MultiOptionDialog::getSelection(tr("Select a model to add to the blacklist"), selectableModels, "", this); - if (!selectedModel.isEmpty()) { - if (ConfirmationDialog::confirm(tr("Are you sure you want to add the '%1' model to the blacklist?").arg(selectedModel), tr("Add"), this)) { - if (!blacklistedModels.contains(selectedModel)) { - blacklistedModels.append(selectedModel); - params.putNonBlocking("BlacklistedModels", blacklistedModels.join(",").toStdString()); - paramsStorage.putNonBlocking("BlacklistedModels", blacklistedModels.join(",").toStdString()); - } - } - } - } - } else if (id == 1) { - QString selectedModel = MultiOptionDialog::getSelection(tr("Select a model to remove from the blacklist"), blacklistedModels, "", this); - if (!selectedModel.isEmpty()) { - if (ConfirmationDialog::confirm(tr("Are you sure you want to remove the '%1' model from the blacklist?").arg(selectedModel), tr("Remove"), this)) { - if (blacklistedModels.contains(selectedModel)) { - blacklistedModels.removeAll(selectedModel); - params.putNonBlocking("BlacklistedModels", blacklistedModels.join(",").toStdString()); - paramsStorage.putNonBlocking("BlacklistedModels", blacklistedModels.join(",").toStdString()); - } - } - } - } - }); - advancedDrivingToggle = blacklistBtn; - } else if (param == "ResetScores") { - ButtonControl *resetCalibrationsBtn = new ButtonControl(title, tr("RESET"), desc); - QObject::connect(resetCalibrationsBtn, &ButtonControl::clicked, [this]() { - if (FrogPilotConfirmationDialog::yesorno(tr("Reset all model scores?"), this)) { - for (const QString &model : availableModelNames) { - QString cleanedModel = processModelName(model); - params.remove(QString("%1Drives").arg(cleanedModel).toStdString()); - paramsStorage.remove(QString("%1Drives").arg(cleanedModel).toStdString()); - params.remove(QString("%1Score").arg(cleanedModel).toStdString()); - paramsStorage.remove(QString("%1Score").arg(cleanedModel).toStdString()); - } - updateModelLabels(); - } - }); - advancedDrivingToggle = reinterpret_cast(resetCalibrationsBtn); - } else if (param == "ReviewScores") { - ButtonControl *reviewScoresBtn = new ButtonControl(title, tr("VIEW"), desc); - QObject::connect(reviewScoresBtn, &ButtonControl::clicked, [this]() { - openSubSubParentToggle(); - - for (LabelControl *label : labelControls) { - label->setVisible(true); - } - - for (auto &[key, toggle] : toggles) { - toggle->setVisible(false); - } - }); - advancedDrivingToggle = reinterpret_cast(reviewScoresBtn); - } else if (param == "DeleteModel") { - deleteModelBtn = new ButtonControl(title, tr("DELETE"), desc); - QObject::connect(deleteModelBtn, &ButtonControl::clicked, [this]() { - QStringList deletableModels, existingModels = modelDir.entryList({"*.thneed"}, QDir::Files); - QMap labelToFileMap; - QString currentModel = QString::fromStdString(params.get("Model")) + ".thneed"; - - for (int i = 0; i < availableModels.size(); ++i) { - QString modelFile = availableModels[i] + ".thneed"; - if (existingModels.contains(modelFile) && modelFile != currentModel && !availableModelNames[i].contains("(Default)")) { - deletableModels.append(availableModelNames[i]); - labelToFileMap[availableModelNames[i]] = modelFile; - } - } - - QString selectedModel = MultiOptionDialog::getSelection(tr("Select a model to delete"), deletableModels, "", this); - if (!selectedModel.isEmpty()) { - if (ConfirmationDialog::confirm(tr("Are you sure you want to delete the '%1' model?").arg(selectedModel), tr("Delete"), this)) { - std::thread([=]() { - modelDeleting = true; - modelsDownloaded = false; - update(); - - params.putBoolNonBlocking("ModelsDownloaded", false); - deleteModelBtn->setValue(tr("Deleting...")); - - QFile::remove(modelDir.absoluteFilePath(labelToFileMap[selectedModel])); - deleteModelBtn->setValue(tr("Deleted!")); - - util::sleep_for(1000); - deleteModelBtn->setValue(""); - modelDeleting = false; - - QStringList modelFiles = modelDir.entryList({"*.thneed"}, QDir::Files); - modelFiles.removeAll(currentModel); - - haveModelsDownloaded = modelFiles.size() > 1; - update(); - }).detach(); - } - } - }); - advancedDrivingToggle = reinterpret_cast(deleteModelBtn); - } else if (param == "DownloadModel") { - 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); - cancellingDownload = true; - - device()->resetInteractiveTimeout(30); - } else { - QMap labelToModelMap; - QStringList existingModels = modelDir.entryList({"*.thneed"}, QDir::Files); - QStringList downloadableModels; - - for (int i = 0; i < availableModels.size(); ++i) { - QString modelFile = availableModels[i] + ".thneed"; - if (!existingModels.contains(modelFile) && !availableModelNames[i].contains("(Default)")) { - downloadableModels.append(availableModelNames[i]); - labelToModelMap.insert(availableModelNames[i], availableModels[i]); - } - } - - QString modelToDownload = MultiOptionDialog::getSelection(tr("Select a driving model to download"), downloadableModels, "", this); - if (!modelToDownload.isEmpty()) { - device()->resetInteractiveTimeout(300); - - modelDownloading = true; - paramsMemory.put("ModelToDownload", labelToModelMap.value(modelToDownload).toStdString()); - paramsMemory.put("ModelDownloadProgress", "0%"); - - downloadModelBtn->setValue(tr("Downloading %1...").arg(modelToDownload.remove(QRegularExpression("[🗺️👀📡]")).trimmed())); - - QTimer *progressTimer = new QTimer(this); - progressTimer->setInterval(100); - - QObject::connect(progressTimer, &QTimer::timeout, this, [=]() { - QString progress = QString::fromStdString(paramsMemory.get("ModelDownloadProgress")); - bool downloadComplete = progress.contains(QRegularExpression("downloaded", QRegularExpression::CaseInsensitiveOption)); - bool downloadFailed = progress.contains(QRegularExpression("cancelled|exists|failed|offline", QRegularExpression::CaseInsensitiveOption)); - - if (!progress.isEmpty() && progress != "0%") { - downloadModelBtn->setValue(progress); - } - - if (downloadComplete || downloadFailed) { - bool lastModelDownloaded = downloadComplete; - - if (downloadComplete) { - haveModelsDownloaded = true; - update(); - } - - if (downloadComplete) { - for (const QString &model : availableModels) { - if (!QFile::exists(modelDir.filePath(model + ".thneed"))) { - lastModelDownloaded = false; - break; - } - } - } - - downloadModelBtn->setValue(progress); - - paramsMemory.remove("CancelModelDownload"); - paramsMemory.remove("ModelDownloadProgress"); - - progressTimer->stop(); - progressTimer->deleteLater(); - - QTimer::singleShot(2000, this, [=]() { - cancellingDownload = false; - modelDownloading = false; - - downloadModelBtn->setValue(""); - - if (lastModelDownloaded) { - modelsDownloaded = true; - update(); - - params.putBoolNonBlocking("ModelsDownloaded", modelsDownloaded); - } - - device()->resetInteractiveTimeout(30); - }); - } - }); - progressTimer->start(); - } - } - }); - advancedDrivingToggle = reinterpret_cast(downloadModelBtn); - } else if (param == "DownloadAllModels") { - 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); - cancellingDownload = true; - - device()->resetInteractiveTimeout(30); - } else { - device()->resetInteractiveTimeout(300); - - startDownloadAllModels(); - } - }); - advancedDrivingToggle = reinterpret_cast(downloadAllModelsBtn); - } else if (param == "SelectModel") { - selectModelBtn = new ButtonControl(title, tr("SELECT"), desc); - QObject::connect(selectModelBtn, &ButtonControl::clicked, [this]() { - QSet modelFilesBaseNames = QSet::fromList(modelDir.entryList({"*.thneed"}, QDir::Files).replaceInStrings(QRegExp("\\.thneed$"), "")); - QStringList selectableModels; - - for (int i = 0; i < availableModels.size(); ++i) { - if (modelFilesBaseNames.contains(availableModels[i]) || availableModelNames[i].contains("(Default)")) { - selectableModels.append(availableModelNames[i]); - } - } - - QString modelToSelect = MultiOptionDialog::getSelection(tr("Select a model - 🗺️ = Navigation | 📡 = Radar | 👀 = VOACC"), selectableModels, "", this); - if (!modelToSelect.isEmpty()) { - selectModelBtn->setValue(modelToSelect); - int modelIndex = availableModelNames.indexOf(modelToSelect); - - params.putNonBlocking("Model", availableModels.at(modelIndex).toStdString()); - params.putNonBlocking("ModelName", modelToSelect.toStdString()); - - if (experimentalModels.contains(availableModels.at(modelIndex))) { - FrogPilotConfirmationDialog::toggleAlert(tr("WARNING: This is a very experimental model and may drive dangerously!"), tr("I understand the risks."), this); - } - - QString model = availableModelNames.at(modelIndex); - QString part_model_param = processModelName(model); - - if (!params.checkKey(part_model_param.toStdString() + "CalibrationParams") || !params.checkKey(part_model_param.toStdString() + "LiveTorqueParameters")) { - if (FrogPilotConfirmationDialog::yesorno(tr("Start with a fresh calibration for the newly selected model?"), this)) { - params.remove("CalibrationParams"); - params.remove("LiveTorqueParameters"); - } - } - - if (started) { - if (FrogPilotConfirmationDialog::toggle(tr("Reboot required to take effect."), tr("Reboot Now"), this)) { - Hardware::reboot(); - } - } - } - }); - selectModelBtn->setValue(QString::fromStdString(params.get("ModelName"))); - advancedDrivingToggle = reinterpret_cast(selectModelBtn); - } else if (param == "ResetCalibrations") { - FrogPilotButtonsControl *resetCalibrationsBtn = new FrogPilotButtonsControl(title, desc, {tr("RESET ALL"), tr("RESET ONE")}); - QObject::connect(resetCalibrationsBtn, &FrogPilotButtonsControl::showDescriptionEvent, this, &FrogPilotAdvancedDrivingPanel::updateCalibrationDescription); - QObject::connect(resetCalibrationsBtn, &FrogPilotButtonsControl::buttonClicked, [=](int id) { - if (id == 0) { - if (FrogPilotConfirmationDialog::yesorno(tr("Are you sure you want to completely reset all of your model calibrations?"), this)) { - for (const QString &model : availableModelNames) { - QString cleanedModel = processModelName(model); - params.remove(QString("%1CalibrationParams").arg(cleanedModel).toStdString()); - paramsStorage.remove(QString("%1CalibrationParams").arg(cleanedModel).toStdString()); - params.remove(QString("%1LiveTorqueParameters").arg(cleanedModel).toStdString()); - paramsStorage.remove(QString("%1LiveTorqueParameters").arg(cleanedModel).toStdString()); - } - } - } else if (id == 1) { - QStringList selectableModelLabels; - for (int i = 0; i < availableModels.size(); ++i) { - selectableModelLabels.append(availableModelNames[i]); - } - - QString modelToReset = MultiOptionDialog::getSelection(tr("Select a model to reset"), selectableModelLabels, "", this); - if (!modelToReset.isEmpty()) { - if (FrogPilotConfirmationDialog::yesorno(tr("Are you sure you want to completely reset this model's calibrations?"), this)) { - QString cleanedModel = processModelName(modelToReset); - params.remove(QString("%1CalibrationParams").arg(cleanedModel).toStdString()); - paramsStorage.remove(QString("%1CalibrationParams").arg(cleanedModel).toStdString()); - params.remove(QString("%1LiveTorqueParameters").arg(cleanedModel).toStdString()); - paramsStorage.remove(QString("%1LiveTorqueParameters").arg(cleanedModel).toStdString()); - } - } - } - }); - advancedDrivingToggle = resetCalibrationsBtn; - - } else { - advancedDrivingToggle = new ParamControl(param, title, desc, icon); - } - - addItem(advancedDrivingToggle); - toggles[param] = advancedDrivingToggle; - - makeConnections(advancedDrivingToggle); - - if (FrogPilotParamManageControl *frogPilotManageToggle = qobject_cast(advancedDrivingToggle)) { - QObject::connect(frogPilotManageToggle, &FrogPilotParamManageControl::manageButtonClicked, this, &FrogPilotAdvancedDrivingPanel::openParentToggle); - } - - QObject::connect(advancedDrivingToggle, &AbstractControl::showDescriptionEvent, [this]() { - update(); - }); - } - - QObject::connect(static_cast(toggles["ModelManagement"]), &ToggleControl::toggleFlipped, [this](bool state) { - modelManagement = state; - }); - - QObject::connect(static_cast(toggles["ModelRandomizer"]), &ToggleControl::toggleFlipped, [this](bool state) { - modelRandomizer = state; - if (state && !modelsDownloaded) { - if (FrogPilotConfirmationDialog::yesorno(tr("The 'Model Randomizer' only works with downloaded models. Do you want to download all the driving models?"), this)) { - startDownloadAllModels(); - } - } - }); - - steerFrictionToggle = static_cast(toggles["SteerFriction"]); - QObject::connect(steerFrictionToggle, &FrogPilotParamValueButtonControl::buttonClicked, [this]() { - params.putFloat("SteerFriction", steerFrictionStock); - steerFrictionToggle->refresh(); - updateFrogPilotToggles(); - }); - - steerKPToggle = static_cast(toggles["SteerKP"]); - QObject::connect(steerKPToggle, &FrogPilotParamValueButtonControl::buttonClicked, [this]() { - params.putFloat("SteerKP", steerKPStock); - steerKPToggle->refresh(); - updateFrogPilotToggles(); - }); - - steerLatAccelToggle = static_cast(toggles["SteerLatAccel"]); - QObject::connect(steerLatAccelToggle, &FrogPilotParamValueButtonControl::buttonClicked, [this]() { - params.putFloat("SteerLatAccel", steerLatAccelStock); - steerLatAccelToggle->refresh(); - updateFrogPilotToggles(); - }); - - steerRatioToggle = static_cast(toggles["SteerRatio"]); - QObject::connect(steerRatioToggle, &FrogPilotParamValueButtonControl::buttonClicked, [this]() { - params.putFloat("SteerRatio", steerRatioStock); - steerRatioToggle->refresh(); - updateFrogPilotToggles(); - }); - - FrogPilotParamValueControl *trafficFollowToggle = static_cast(toggles["TrafficFollow"]); - FrogPilotParamValueControl *trafficAccelerationToggle = static_cast(toggles["TrafficJerkAcceleration"]); - FrogPilotParamValueControl *trafficDecelerationToggle = static_cast(toggles["TrafficJerkDeceleration"]); - FrogPilotParamValueControl *trafficDangerToggle = static_cast(toggles["TrafficJerkDanger"]); - FrogPilotParamValueControl *trafficSpeedToggle = static_cast(toggles["TrafficJerkSpeed"]); - FrogPilotParamValueControl *trafficSpeedDecreaseToggle = static_cast(toggles["TrafficJerkSpeedDecrease"]); - FrogPilotButtonsControl *trafficResetButton = static_cast(toggles["ResetTrafficPersonality"]); - QObject::connect(trafficResetButton, &FrogPilotButtonsControl::buttonClicked, this, [=]() { - if (FrogPilotConfirmationDialog::yesorno(tr("Are you sure you want to completely reset your settings for the 'Traffic Mode' personality?"), this)) { - params.putFloat("TrafficFollow", 0.5); - params.putFloat("TrafficJerkAcceleration", 50); - params.putFloat("TrafficJerkDeceleration", 50); - params.putFloat("TrafficJerkDanger", 100); - params.putFloat("TrafficJerkSpeed", 50); - params.putFloat("TrafficJerkSpeedDecrease", 50); - trafficFollowToggle->refresh(); - trafficAccelerationToggle->refresh(); - trafficDecelerationToggle->refresh(); - trafficDangerToggle->refresh(); - trafficSpeedToggle->refresh(); - trafficSpeedDecreaseToggle->refresh(); - updateFrogPilotToggles(); - } - }); - - FrogPilotParamValueControl *aggressiveFollowToggle = static_cast(toggles["AggressiveFollow"]); - FrogPilotParamValueControl *aggressiveAccelerationToggle = static_cast(toggles["AggressiveJerkAcceleration"]); - FrogPilotParamValueControl *aggressiveDecelerationToggle = static_cast(toggles["AggressiveJerkDeceleration"]); - FrogPilotParamValueControl *aggressiveDangerToggle = static_cast(toggles["AggressiveJerkDanger"]); - FrogPilotParamValueControl *aggressiveSpeedToggle = static_cast(toggles["AggressiveJerkSpeed"]); - FrogPilotParamValueControl *aggressiveSpeedDecreaseToggle = static_cast(toggles["AggressiveJerkSpeedDecrease"]); - FrogPilotButtonsControl *aggressiveResetButton = static_cast(toggles["ResetAggressivePersonality"]); - QObject::connect(aggressiveResetButton, &FrogPilotButtonsControl::buttonClicked, this, [=]() { - if (FrogPilotConfirmationDialog::yesorno(tr("Are you sure you want to completely reset your settings for the 'Aggressive' personality?"), this)) { - params.putFloat("AggressiveFollow", 1.25); - params.putFloat("AggressiveJerkAcceleration", 50); - params.putFloat("AggressiveJerkDeceleration", 50); - params.putFloat("AggressiveJerkDanger", 100); - params.putFloat("AggressiveJerkSpeed", 50); - params.putFloat("AggressiveJerkSpeedDecrease", 50); - aggressiveFollowToggle->refresh(); - aggressiveAccelerationToggle->refresh(); - aggressiveDecelerationToggle->refresh(); - aggressiveDangerToggle->refresh(); - aggressiveSpeedToggle->refresh(); - aggressiveSpeedDecreaseToggle->refresh(); - updateFrogPilotToggles(); - } - }); - - FrogPilotParamValueControl *standardFollowToggle = static_cast(toggles["StandardFollow"]); - FrogPilotParamValueControl *standardAccelerationToggle = static_cast(toggles["StandardJerkAcceleration"]); - FrogPilotParamValueControl *standardDecelerationToggle = static_cast(toggles["StandardJerkDeceleration"]); - FrogPilotParamValueControl *standardDangerToggle = static_cast(toggles["StandardJerkDanger"]); - FrogPilotParamValueControl *standardSpeedToggle = static_cast(toggles["StandardJerkSpeed"]); - FrogPilotParamValueControl *standardSpeedDecreaseToggle = static_cast(toggles["StandardJerkSpeedDecrease"]); - FrogPilotButtonsControl *standardResetButton = static_cast(toggles["ResetStandardPersonality"]); - QObject::connect(standardResetButton, &FrogPilotButtonsControl::buttonClicked, this, [=]() { - if (FrogPilotConfirmationDialog::yesorno(tr("Are you sure you want to completely reset your settings for the 'Standard' personality?"), this)) { - params.putFloat("StandardFollow", 1.45); - params.putFloat("StandardJerkAcceleration", 100); - params.putFloat("StandardJerkDeceleration", 100); - params.putFloat("StandardJerkDanger", 100); - params.putFloat("StandardJerkSpeed", 100); - params.putFloat("StandardJerkSpeedDecrease", 100); - standardFollowToggle->refresh(); - standardAccelerationToggle->refresh(); - standardDecelerationToggle->refresh(); - standardDangerToggle->refresh(); - standardSpeedToggle->refresh(); - standardSpeedDecreaseToggle->refresh(); - updateFrogPilotToggles(); - } - }); - - FrogPilotParamValueControl *relaxedFollowToggle = static_cast(toggles["RelaxedFollow"]); - FrogPilotParamValueControl *relaxedAccelerationToggle = static_cast(toggles["RelaxedJerkAcceleration"]); - FrogPilotParamValueControl *relaxedDecelerationToggle = static_cast(toggles["RelaxedJerkDeceleration"]); - FrogPilotParamValueControl *relaxedDangerToggle = static_cast(toggles["RelaxedJerkDanger"]); - FrogPilotParamValueControl *relaxedSpeedToggle = static_cast(toggles["RelaxedJerkSpeed"]); - FrogPilotParamValueControl *relaxedSpeedDecreaseToggle = static_cast(toggles["RelaxedJerkSpeedDecrease"]); - FrogPilotButtonsControl *relaxedResetButton = static_cast(toggles["ResetRelaxedPersonality"]); - QObject::connect(relaxedResetButton, &FrogPilotButtonsControl::buttonClicked, this, [=]() { - if (FrogPilotConfirmationDialog::yesorno(tr("Are you sure you want to completely reset your settings for the 'Relaxed' personality?"), this)) { - params.putFloat("RelaxedFollow", 1.75); - params.putFloat("RelaxedJerkAcceleration", 100); - params.putFloat("RelaxedJerkDeceleration", 100); - params.putFloat("RelaxedJerkDanger", 100); - params.putFloat("RelaxedJerkSpeed", 100); - params.putFloat("RelaxedJerkSpeedDecrease", 100); - relaxedFollowToggle->refresh(); - relaxedAccelerationToggle->refresh(); - relaxedDecelerationToggle->refresh(); - relaxedDangerToggle->refresh(); - relaxedSpeedToggle->refresh(); - relaxedSpeedDecreaseToggle->refresh(); - updateFrogPilotToggles(); - } - }); - - QObject::connect(parent, &FrogPilotSettingsWindow::closeParentToggle, this, &FrogPilotAdvancedDrivingPanel::hideToggles); - QObject::connect(parent, &FrogPilotSettingsWindow::closeSubParentToggle, this, &FrogPilotAdvancedDrivingPanel::hideSubToggles); - QObject::connect(parent, &FrogPilotSettingsWindow::closeSubSubParentToggle, this, &FrogPilotAdvancedDrivingPanel::hideSubSubToggles); - QObject::connect(parent, &FrogPilotSettingsWindow::updateCarToggles, this, &FrogPilotAdvancedDrivingPanel::updateCarToggles); - QObject::connect(parent, &FrogPilotSettingsWindow::updateMetric, this, &FrogPilotAdvancedDrivingPanel::updateMetric); - QObject::connect(uiState(), &UIState::uiUpdate, this, &FrogPilotAdvancedDrivingPanel::updateState); - - updateMetric(); -} - -void FrogPilotAdvancedDrivingPanel::updateMetric() { - bool previousIsMetric = isMetric; - isMetric = params.getBool("IsMetric"); - - if (isMetric != previousIsMetric) { - double speedConversion = isMetric ? MILE_TO_KM : KM_TO_MILE; - - params.putFloatNonBlocking("SetSpeedOffset", params.getFloat("SetSpeedOffset") * speedConversion); - } - - FrogPilotParamValueControl *setSpeedOffsetToggle = static_cast(toggles["SetSpeedOffset"]); - - if (isMetric) { - setSpeedOffsetToggle->updateControl(0, 150, tr("kph")); - } else { - setSpeedOffsetToggle->updateControl(0, 99, tr("mph")); - } -} - -void FrogPilotAdvancedDrivingPanel::showEvent(QShowEvent *event) { - modelManagement = params.getBool("ModelManagement"); - modelRandomizer = params.getBool("ModelRandomizer"); -} - -void FrogPilotAdvancedDrivingPanel::updateCarToggles() { - disableOpenpilotLongitudinal = parent->disableOpenpilotLongitudinal; - hasAutoTune = parent->hasAutoTune; - hasNNFFLog = parent->hasNNFFLog; - hasOpenpilotLongitudinal = parent->hasOpenpilotLongitudinal; - hasPCMCruise = parent->hasPCMCruise; - isPIDCar = parent->isPIDCar; - liveValid = parent->liveValid; - steerFrictionStock = parent->steerFrictionStock; - steerKPStock = parent->steerKPStock; - steerLatAccelStock = parent->steerLatAccelStock; - steerRatioStock = parent->steerRatioStock; - - 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))); - steerKPToggle->updateControl(steerKPStock * 0.50, steerKPStock * 1.50); - steerLatAccelToggle->setTitle(QString(tr("Lateral Accel (Default: %1)")).arg(QString::number(steerLatAccelStock, 'f', 2))); - steerLatAccelToggle->updateControl(steerLatAccelStock * 0.75, steerLatAccelStock * 1.25); - steerRatioToggle->setTitle(QString(tr("Steer Ratio (Default: %1)")).arg(QString::number(steerRatioStock, 'f', 2))); - steerRatioToggle->updateControl(steerRatioStock * 0.75, steerRatioStock * 1.25); - - hideToggles(); -} - -void FrogPilotAdvancedDrivingPanel::updateState(const UIState &s) { - if (!isVisible()) return; - - if (modelManagementOpen) { - downloadAllModelsBtn->setText(modelDownloading && allModelsDownloading ? tr("CANCEL") : tr("DOWNLOAD")); - downloadModelBtn->setText(modelDownloading && !allModelsDownloading ? tr("CANCEL") : tr("DOWNLOAD")); - - deleteModelBtn->setEnabled(!modelDeleting && !modelDownloading); - downloadAllModelsBtn->setEnabled(s.scene.online && !cancellingDownload && !modelDeleting && (!modelDownloading || allModelsDownloading) && !modelsDownloaded); - downloadModelBtn->setEnabled(s.scene.online && !cancellingDownload && !modelDeleting && !allModelsDownloading && !modelsDownloaded); - selectModelBtn->setEnabled(!modelDeleting && !modelDownloading && !modelRandomizer); - } - - started = s.scene.started; -} - -void FrogPilotAdvancedDrivingPanel::startDownloadAllModels() { - allModelsDownloading = true; - modelDownloading = true; - - paramsMemory.putBool("DownloadAllModels", true); - - downloadAllModelsBtn->setValue(tr("Downloading models...")); - - QTimer *progressTimer = new QTimer(this); - progressTimer->setInterval(100); - - QObject::connect(progressTimer, &QTimer::timeout, this, [=]() { - QString progress = QString::fromStdString(paramsMemory.get("ModelDownloadProgress")); - bool downloadComplete = progress.contains(QRegularExpression("All models downloaded!", QRegularExpression::CaseInsensitiveOption)); - bool downloadFailed = progress.contains(QRegularExpression("cancelled|exists|failed|offline", QRegularExpression::CaseInsensitiveOption)); - - if (!progress.isEmpty() && progress != "0%") { - downloadAllModelsBtn->setValue(progress); - } - - if (downloadComplete || downloadFailed) { - if (downloadComplete) { - haveModelsDownloaded = true; - update(); - } - - downloadAllModelsBtn->setValue(progress); - - paramsMemory.remove("CancelModelDownload"); - paramsMemory.remove("ModelDownloadProgress"); - - progressTimer->stop(); - progressTimer->deleteLater(); - - QTimer::singleShot(2000, this, [=]() { - cancellingDownload = false; - modelDownloading = false; - - paramsMemory.remove("DownloadAllModels"); - - downloadAllModelsBtn->setValue(""); - - device()->resetInteractiveTimeout(30); - }); - } - }); - progressTimer->start(); -} - -void FrogPilotAdvancedDrivingPanel::updateCalibrationDescription() { - QString model = QString::fromStdString(params.get("ModelName")); - QString part_model_param = processModelName(model); - - QString desc = - tr("openpilot requires the device to be mounted within 4° left or right and " - "within 5° up or 9° down. openpilot is continuously calibrating, resetting is rarely required."); - std::string calib_bytes = params.get(part_model_param.toStdString() + "CalibrationParams"); - if (!calib_bytes.empty()) { - try { - AlignedBuffer aligned_buf; - capnp::FlatArrayMessageReader cmsg(aligned_buf.align(calib_bytes.data(), calib_bytes.size())); - auto calib = cmsg.getRoot().getLiveCalibration(); - if (calib.getCalStatus() != cereal::LiveCalibrationData::Status::UNCALIBRATED) { - double pitch = calib.getRpyCalib()[1] * (180 / M_PI); - double yaw = calib.getRpyCalib()[2] * (180 / M_PI); - desc += tr(" Your device is pointed %1° %2 and %3° %4.") - .arg(QString::number(std::abs(pitch), 'g', 1), pitch > 0 ? tr("down") : tr("up"), - QString::number(std::abs(yaw), 'g', 1), yaw > 0 ? tr("left") : tr("right")); - } - } catch (kj::Exception) { - qInfo() << "invalid CalibrationParams"; - } - } - qobject_cast(sender())->setDescription(desc); -} - -void FrogPilotAdvancedDrivingPanel::updateModelLabels() { - QVector> modelScores; - for (QString &model : availableModelNames) { - QString cleanedModel = processModelName(model); - int score = params.getInt((cleanedModel + "Score").toStdString()); - - if (model.contains("(Default)")) { - modelScores.prepend(qMakePair(model, score)); - } else { - modelScores.append(qMakePair(model, score)); - } - } - - labelControls.clear(); - - for (QPair &pair : modelScores) { - QString scoreDisplay = pair.second == 0 ? "N/A" : QString::number(pair.second) + "%"; - LabelControl *labelControl = new LabelControl(pair.first, scoreDisplay, ""); - labelControls.append(labelControl); - addItem(labelControl); - } - - for (LabelControl *label : labelControls) { - label->setVisible(false); - } -} - -void FrogPilotAdvancedDrivingPanel::showToggles(const std::set &keys) { - setUpdatesEnabled(false); - - for (auto &[key, toggle] : toggles) { - toggle->setVisible(keys.find(key) != keys.end()); - } - - setUpdatesEnabled(true); - update(); -} - -void FrogPilotAdvancedDrivingPanel::hideToggles() { - setUpdatesEnabled(false); - - customPersonalityOpen = false; - modelManagementOpen = false; - - for (LabelControl *label : labelControls) { - label->setVisible(false); - } - - std::set longitudinalKeys = {"AdvancedLongitudinalTune", "CustomPersonalities"}; - for (auto &[key, toggle] : toggles) { - bool subToggles = aggressivePersonalityKeys.find(key) != aggressivePersonalityKeys.end() || - customDrivingPersonalityKeys.find(key) != customDrivingPersonalityKeys.end() || - lateralTuneKeys.find(key) != lateralTuneKeys.end() || - longitudinalTuneKeys.find(key) != longitudinalTuneKeys.end() || - modelManagementKeys.find(key) != modelManagementKeys.end() || - modelRandomizerKeys.find(key) != modelRandomizerKeys.end() || - qolKeys.find(key) != qolKeys.end() || - relaxedPersonalityKeys.find(key) != relaxedPersonalityKeys.end() || - standardPersonalityKeys.find(key) != standardPersonalityKeys.end() || - trafficPersonalityKeys.find(key) != trafficPersonalityKeys.end(); - - if (disableOpenpilotLongitudinal || !hasOpenpilotLongitudinal) { - if (longitudinalKeys.find(key) != longitudinalKeys.end()) { - toggle->setVisible(false); - continue; - } - } - - toggle->setVisible(!subToggles); - } - - setUpdatesEnabled(true); - update(); -} - -void FrogPilotAdvancedDrivingPanel::hideSubToggles() { - if (customPersonalityOpen) { - customPersonalityOpen = false; - showToggles(customDrivingPersonalityKeys); - } else if (modelManagementOpen) { - for (LabelControl *label : labelControls) { - label->setVisible(false); - } - showToggles(modelManagementKeys); - } -} - -void FrogPilotAdvancedDrivingPanel::hideSubSubToggles() { - if (modelManagementOpen) { - for (LabelControl *label : labelControls) { - label->setVisible(false); - } - showToggles(modelRandomizerKeys); - } -} diff --git a/selfdrive/frogpilot/ui/qt/offroad/advanced_driving_settings.h b/selfdrive/frogpilot/ui/qt/offroad/advanced_driving_settings.h deleted file mode 100644 index 2e89c0a9..00000000 --- a/selfdrive/frogpilot/ui/qt/offroad/advanced_driving_settings.h +++ /dev/null @@ -1,137 +0,0 @@ -#pragma once - -#include - -#include "selfdrive/frogpilot/ui/qt/offroad/frogpilot_settings.h" - -class FrogPilotAdvancedDrivingPanel : public FrogPilotListWidget { - Q_OBJECT - -public: - explicit FrogPilotAdvancedDrivingPanel(FrogPilotSettingsWindow *parent); - -signals: - void openParentToggle(); - void openSubParentToggle(); - void openSubSubParentToggle(); - -protected: - void showEvent(QShowEvent *event) override; - -private: - void hideSubToggles(); - void hideSubSubToggles(); - void hideToggles(); - void showToggles(const std::set &keys); - - void startDownloadAllModels(); - void updateCalibrationDescription(); - void updateCarToggles(); - void updateMetric(); - void updateModelLabels(); - void updateState(const UIState &s); - - std::set aggressivePersonalityKeys = { - "AggressiveFollow", "AggressiveJerkAcceleration", "AggressiveJerkDeceleration", - "AggressiveJerkDanger", "AggressiveJerkSpeed", "AggressiveJerkSpeedDecrease", - "ResetAggressivePersonality" - }; - - std::set customDrivingPersonalityKeys = { - "AggressivePersonalityProfile", "RelaxedPersonalityProfile", "StandardPersonalityProfile", - "TrafficPersonalityProfile" - }; - - std::set lateralTuneKeys = { - "ForceAutoTune", "ForceAutoTuneOff", "SteerFriction", - "SteerLatAccel", "SteerKP", "SteerRatio", "TacoTune", - "TurnDesires" - }; - - std::set longitudinalTuneKeys = { - "LeadDetectionThreshold", "MaxDesiredAcceleration" - }; - - std::set modelManagementKeys = { - "AutomaticallyUpdateModels", "DeleteModel", "DownloadModel", - "DownloadAllModels", "ModelRandomizer", "ResetCalibrations", - "SelectModel" - }; - - std::set modelRandomizerKeys = { - "ManageBlacklistedModels", "ResetScores", "ReviewScores" - }; - - std::set qolKeys = { - "ForceStandstill", "ForceStops", "SetSpeedOffset" - }; - - std::set relaxedPersonalityKeys = { - "RelaxedFollow", "RelaxedJerkAcceleration", "RelaxedJerkDeceleration", - "RelaxedJerkDanger", "RelaxedJerkSpeed", "RelaxedJerkSpeedDecrease", - "ResetRelaxedPersonality" - }; - - std::set standardPersonalityKeys = { - "StandardFollow", "StandardJerkAcceleration", "StandardJerkDeceleration", - "StandardJerkDanger", "StandardJerkSpeed", "StandardJerkSpeedDecrease", - "ResetStandardPersonality" - }; - - std::set trafficPersonalityKeys = { - "TrafficFollow", "TrafficJerkAcceleration", "TrafficJerkDeceleration", - "TrafficJerkDanger", "TrafficJerkSpeed", "TrafficJerkSpeedDecrease", - "ResetTrafficPersonality" - }; - - ButtonControl *deleteModelBtn; - ButtonControl *downloadAllModelsBtn; - ButtonControl *downloadModelBtn; - ButtonControl *selectModelBtn; - - FrogPilotParamValueButtonControl *steerFrictionToggle; - FrogPilotParamValueButtonControl *steerLatAccelToggle; - FrogPilotParamValueButtonControl *steerKPToggle; - FrogPilotParamValueButtonControl *steerRatioToggle; - - FrogPilotSettingsWindow *parent; - - Params params; - Params paramsMemory{"/dev/shm/params"}; - Params paramsStorage{"/persist/params"}; - - QDir modelDir{"/data/models/"}; - - QList labelControls; - - QStringList availableModelNames; - QStringList availableModels; - QStringList experimentalModels; - - bool allModelsDownloading; - bool cancellingDownload; - bool customPersonalityOpen; - bool disableOpenpilotLongitudinal; - bool hasAutoTune; - bool hasNNFFLog; - bool hasOpenpilotLongitudinal; - bool hasPCMCruise; - bool haveModelsDownloaded; - bool isMetric = params.getBool("IsMetric"); - bool isPIDCar; - bool liveValid; - bool modelDeleting; - bool modelDownloading; - bool modelManagement; - bool modelManagementOpen; - bool modelRandomizer; - bool modelsDownloaded; - bool started; - - float steerFrictionStock; - float steerLatAccelStock; - float steerKPStock; - float steerRatioStock; - - std::map toggles; -}; diff --git a/selfdrive/frogpilot/ui/qt/offroad/advanced_visual_settings.cc b/selfdrive/frogpilot/ui/qt/offroad/advanced_visual_settings.cc deleted file mode 100644 index c66d0c6e..00000000 --- a/selfdrive/frogpilot/ui/qt/offroad/advanced_visual_settings.cc +++ /dev/null @@ -1,226 +0,0 @@ -#include "selfdrive/frogpilot/ui/qt/offroad/advanced_visual_settings.h" - -FrogPilotAdvancedVisualsPanel::FrogPilotAdvancedVisualsPanel(FrogPilotSettingsWindow *parent) : FrogPilotListWidget(parent), parent(parent) { - const std::vector> advancedToggles { - {"AdvancedCustomUI", tr("Advanced Onroad UI Widgets"), tr("Advanced user customizations for the Onroad UI."), "../frogpilot/assets/toggle_icons/icon_advanced_road.png"}, - {"CameraView", tr("Camera View"), tr("Camera view for the onroad UI. This is purely a visual change and doesn't impact how openpilot drives."), ""}, - {"ShowStoppingPoint", tr("Display Stopping Points"), tr("Display an image on the screen where openpilot is detecting a potential red light/stop sign."), ""}, - {"HideLeadMarker", tr("Hide Lead Marker"), tr("Hide the marker for the vehicle ahead on the screen."), ""}, - {"HideSpeed", tr("Hide Speed"), tr("Hide the speed indicator in the onroad UI. Additional toggle allows it to be hidden/shown via tapping the speed itself."), ""}, - {"HideUIElements", tr("Hide UI Elements"), tr("Hide the selected UI elements from the onroad screen."), ""}, - {"WheelSpeed", tr("Use Wheel Speed"), tr("Use the wheel speed instead of the cluster speed in the onroad UI."), ""}, - - {"DeveloperUI", tr("Developer UI"), tr("Show detailed information about openpilot's internal operations."), "../frogpilot/assets/toggle_icons/icon_advanced_device.png"}, - {"BorderMetrics", tr("Border Metrics"), tr("Display performance metrics around the edge of the screen while driving."), ""}, - {"FPSCounter", tr("FPS Display"), tr("Display the 'Frames Per Second' (FPS) at the bottom of the screen while driving."), ""}, - {"LateralMetrics", tr("Lateral Metrics"), tr("Display metrics related to steering control at the top of the screen while driving."), ""}, - {"LongitudinalMetrics", tr("Longitudinal Metrics"), tr("Display metrics related to acceleration, speed, and desired following distance at the top of the screen while driving."), ""}, - {"NumericalTemp", tr("Numerical Temperature Gauge"), tr("Show exact temperature readings instead of general status labels like 'GOOD', 'OK', or 'HIGH' in the sidebar."), ""}, - {"SidebarMetrics", tr("Sidebar"), tr("Display system information like CPU, GPU, RAM usage, IP address, and storage space in the sidebar."), ""}, - {"UseSI", tr("Use International System of Units"), tr("Display measurements using the 'International System of Units' (SI)."), ""}, - - {"ModelUI", tr("Model UI"), tr("Customize the model visualizations on the screen."), "../frogpilot/assets/toggle_icons/icon_advanced_calibration.png"}, - {"LaneLinesWidth", tr("Lane Lines Width"), tr("How thick the lane lines appear on the display.\n\nDefault matches the MUTCD standard of 4 inches."), ""}, - {"PathEdgeWidth", tr("Path Edges Width"), tr("The width of the edges of the driving path to represent different modes and statuses.\n\nDefault is 20% of the total path width.\n\nColor Guide:\n- Blue: Navigation\n- Light Blue: 'Always On Lateral'\n- Green: Default\n- Orange: 'Experimental Mode'\n- Red: 'Traffic Mode'\n- Yellow: 'Conditional Experimental Mode' Overridden"), ""}, - {"PathWidth", tr("Path Width"), tr("How wide the driving path appears on your screen.\n\nDefault (6.1 feet / 1.9 meters) matches the width of a 2019 Lexus ES 350."), ""}, - {"RoadEdgesWidth", tr("Road Edges Width"), tr("How thick the road edges appear on the display.\n\nDefault matches half of the MUTCD standard lane line width of 4 inches."), ""}, - {"UnlimitedLength", tr("'Unlimited' Road UI"), tr("Extend the display of the path, lane lines, and road edges as far as the model can see."), ""}, - }; - - for (const auto &[param, title, desc, icon] : advancedToggles) { - AbstractControl *advancedVisualToggle; - - if (param == "AdvancedCustomUI") { - FrogPilotParamManageControl *advancedCustomUIToggle = new FrogPilotParamManageControl(param, title, desc, icon); - QObject::connect(advancedCustomUIToggle, &FrogPilotParamManageControl::manageButtonClicked, [this]() { - showToggles(advancedCustomOnroadUIKeys); - }); - advancedVisualToggle = advancedCustomUIToggle; - } else if (param == "CameraView") { - std::vector cameraOptions{tr("Auto"), tr("Driver"), tr("Standard"), tr("Wide")}; - ButtonParamControl *preferredCamera = new ButtonParamControl(param, title, desc, icon, cameraOptions); - advancedVisualToggle = preferredCamera; - } else if (param == "HideSpeed") { - std::vector hideSpeedToggles{"HideSpeedUI"}; - std::vector hideSpeedToggleNames{tr("Control Via UI")}; - advancedVisualToggle = new FrogPilotButtonToggleControl(param, title, desc, hideSpeedToggles, hideSpeedToggleNames); - } else if (param == "HideUIElements") { - std::vector uiElementsToggles{"HideAlerts", "HideMapIcon", "HideMaxSpeed"}; - std::vector uiElementsToggleNames{tr("Alerts"), tr("Map Icon"), tr("Max Speed")}; - advancedVisualToggle = new FrogPilotButtonToggleControl(param, title, desc, uiElementsToggles, uiElementsToggleNames); - } else if (param == "ShowStoppingPoint") { - std::vector stoppingPointToggles{"ShowStoppingPointMetrics"}; - std::vector stoppingPointToggleNames{tr("Show Distance")}; - advancedVisualToggle = new FrogPilotButtonToggleControl(param, title, desc, stoppingPointToggles, stoppingPointToggleNames); - - } else if (param == "DeveloperUI") { - FrogPilotParamManageControl *developerUIToggle = new FrogPilotParamManageControl(param, title, desc, icon); - QObject::connect(developerUIToggle, &FrogPilotParamManageControl::manageButtonClicked, [this]() { - borderMetricsBtn->setVisibleButton(0, hasBSM); - lateralMetricsBtn->setVisibleButton(1, hasAutoTune); - - std::set modifiedDeveloperUIKeys = developerUIKeys; - - if (disableOpenpilotLongitudinal || !hasOpenpilotLongitudinal) { - modifiedDeveloperUIKeys.erase("LongitudinalMetrics"); - } - - showToggles(modifiedDeveloperUIKeys); - }); - advancedVisualToggle = developerUIToggle; - } else if (param == "BorderMetrics") { - std::vector borderToggles{"BlindSpotMetrics", "ShowSteering", "SignalMetrics"}; - std::vector borderToggleNames{tr("Blind Spot"), tr("Steering Torque"), tr("Turn Signal")}; - borderMetricsBtn = new FrogPilotButtonToggleControl(param, title, desc, borderToggles, borderToggleNames); - advancedVisualToggle = borderMetricsBtn; - } else if (param == "LateralMetrics") { - std::vector lateralToggles{"AdjacentPathMetrics", "TuningInfo"}; - std::vector lateralToggleNames{tr("Adjacent Path Metrics"), tr("Auto Tune")}; - lateralMetricsBtn = new FrogPilotButtonToggleControl(param, title, desc, lateralToggles, lateralToggleNames); - advancedVisualToggle = lateralMetricsBtn; - } else if (param == "LongitudinalMetrics") { - std::vector longitudinalToggles{"LeadInfo", "JerkInfo"}; - std::vector longitudinalToggleNames{tr("Lead Info"), tr("Jerk Values")}; - longitudinalMetricsBtn = new FrogPilotButtonToggleControl(param, title, desc, longitudinalToggles, longitudinalToggleNames); - advancedVisualToggle = longitudinalMetricsBtn; - } else if (param == "NumericalTemp") { - std::vector temperatureToggles{"Fahrenheit"}; - std::vector temperatureToggleNames{tr("Fahrenheit")}; - advancedVisualToggle = new FrogPilotButtonToggleControl(param, title, desc, temperatureToggles, temperatureToggleNames); - } else if (param == "SidebarMetrics") { - std::vector sidebarMetricsToggles{"ShowCPU", "ShowGPU", "ShowIP", "ShowMemoryUsage", "ShowStorageLeft", "ShowStorageUsed"}; - std::vector sidebarMetricsToggleNames{tr("CPU"), tr("GPU"), tr("IP"), tr("RAM"), tr("SSD Left"), tr("SSD Used")}; - FrogPilotButtonToggleControl *sidebarMetricsToggle = new FrogPilotButtonToggleControl(param, title, desc, sidebarMetricsToggles, sidebarMetricsToggleNames, false, 150); - QObject::connect(sidebarMetricsToggle, &FrogPilotButtonToggleControl::buttonClicked, [this](int index) { - if (index == 0) { - params.putBool("ShowGPU", false); - } else if (index == 1) { - params.putBool("ShowCPU", false); - } else if (index == 3) { - params.putBool("ShowStorageLeft", false); - params.putBool("ShowStorageUsed", false); - } else if (index == 4) { - params.putBool("ShowMemoryUsage", false); - params.putBool("ShowStorageUsed", false); - } else if (index == 5) { - params.putBool("ShowMemoryUsage", false); - params.putBool("ShowStorageLeft", false); - } - }); - advancedVisualToggle = sidebarMetricsToggle; - - } else if (param == "ModelUI") { - FrogPilotParamManageControl *modelUIToggle = new FrogPilotParamManageControl(param, title, desc, icon); - QObject::connect(modelUIToggle, &FrogPilotParamManageControl::manageButtonClicked, [this]() { - std::set modifiedModelUIKeysKeys = modelUIKeys; - - if (disableOpenpilotLongitudinal || !hasOpenpilotLongitudinal) { - modifiedModelUIKeysKeys.erase("HideLeadMarker"); - } - - showToggles(modifiedModelUIKeysKeys); - }); - advancedVisualToggle = modelUIToggle; - } else if (param == "LaneLinesWidth" || param == "RoadEdgesWidth") { - advancedVisualToggle = new FrogPilotParamValueControl(param, title, desc, icon, 0, 24, tr(" inches")); - } else if (param == "PathEdgeWidth") { - advancedVisualToggle = new FrogPilotParamValueControl(param, title, desc, icon, 0, 100, tr("%")); - } else if (param == "PathWidth") { - advancedVisualToggle = new FrogPilotParamValueControl(param, title, desc, icon, 0, 10, tr(" feet"), std::map(), 0.1); - - } else { - advancedVisualToggle = new ParamControl(param, title, desc, icon); - } - - addItem(advancedVisualToggle); - toggles[param] = advancedVisualToggle; - - makeConnections(advancedVisualToggle); - - if (FrogPilotParamManageControl *frogPilotManageToggle = qobject_cast(advancedVisualToggle)) { - QObject::connect(frogPilotManageToggle, &FrogPilotParamManageControl::manageButtonClicked, this, &FrogPilotAdvancedVisualsPanel::openParentToggle); - } - - QObject::connect(advancedVisualToggle, &AbstractControl::showDescriptionEvent, [this]() { - update(); - }); - } - - QObject::connect(parent, &FrogPilotSettingsWindow::closeParentToggle, this, &FrogPilotAdvancedVisualsPanel::hideToggles); - QObject::connect(parent, &FrogPilotSettingsWindow::updateCarToggles, this, &FrogPilotAdvancedVisualsPanel::updateCarToggles); - QObject::connect(parent, &FrogPilotSettingsWindow::updateMetric, this, &FrogPilotAdvancedVisualsPanel::updateMetric); - - updateMetric(); -} - -void FrogPilotAdvancedVisualsPanel::updateCarToggles() { - disableOpenpilotLongitudinal = parent->disableOpenpilotLongitudinal; - hasAutoTune = parent->hasAutoTune; - hasBSM = parent->hasBSM; - hasOpenpilotLongitudinal = parent->hasOpenpilotLongitudinal; - - hideToggles(); -} - -void FrogPilotAdvancedVisualsPanel::updateMetric() { - bool previousIsMetric = isMetric; - isMetric = params.getBool("IsMetric"); - - if (isMetric != previousIsMetric) { - double smallDistanceConversion = isMetric ? INCH_TO_CM : CM_TO_INCH; - double distanceConversion = isMetric ? FOOT_TO_METER : METER_TO_FOOT; - - params.putFloatNonBlocking("LaneLinesWidth", params.getFloat("LaneLinesWidth") * smallDistanceConversion); - params.putFloatNonBlocking("RoadEdgesWidth", params.getFloat("RoadEdgesWidth") * smallDistanceConversion); - - params.putFloatNonBlocking("PathWidth", params.getFloat("PathWidth") * distanceConversion); - } - - FrogPilotParamValueControl *laneLinesWidthToggle = static_cast(toggles["LaneLinesWidth"]); - FrogPilotParamValueControl *pathWidthToggle = static_cast(toggles["PathWidth"]); - FrogPilotParamValueControl *roadEdgesWidthToggle = static_cast(toggles["RoadEdgesWidth"]); - - if (isMetric) { - laneLinesWidthToggle->setDescription(tr("Adjust how thick the lane lines appear on the display.\n\nDefault matches the Vienna standard of 10 centimeters.")); - roadEdgesWidthToggle->setDescription(tr("Adjust how thick the road edges appear on the display.\n\nDefault matches half of the Vienna standard of 10 centimeters.")); - - laneLinesWidthToggle->updateControl(0, 60, tr(" centimeters")); - roadEdgesWidthToggle->updateControl(0, 60, tr(" centimeters")); - - pathWidthToggle->updateControl(0, 3, tr(" meters")); - } else { - laneLinesWidthToggle->setDescription(tr("Adjust how thick the lane lines appear on the display.\n\nDefault matches the MUTCD standard of 4 inches.")); - roadEdgesWidthToggle->setDescription(tr("Adjust how thick the road edges appear on the display.\n\nDefault matches half of the MUTCD standard of 4 inches.")); - - laneLinesWidthToggle->updateControl(0, 24, tr(" inches")); - roadEdgesWidthToggle->updateControl(0, 24, tr(" inches")); - - pathWidthToggle->updateControl(0, 10, tr(" feet")); - } -} - -void FrogPilotAdvancedVisualsPanel::showToggles(const std::set &keys) { - setUpdatesEnabled(false); - - for (auto &[key, toggle] : toggles) { - toggle->setVisible(keys.find(key) != keys.end()); - } - - setUpdatesEnabled(true); - update(); -} - -void FrogPilotAdvancedVisualsPanel::hideToggles() { - setUpdatesEnabled(false); - - for (auto &[key, toggle] : toggles) { - bool subToggles = advancedCustomOnroadUIKeys.find(key) != advancedCustomOnroadUIKeys.end() || - developerUIKeys.find(key) != developerUIKeys.end() || - modelUIKeys.find(key) != modelUIKeys.end(); - - toggle->setVisible(!subToggles); - } - - setUpdatesEnabled(true); - update(); -} diff --git a/selfdrive/frogpilot/ui/qt/offroad/advanced_visual_settings.h b/selfdrive/frogpilot/ui/qt/offroad/advanced_visual_settings.h deleted file mode 100644 index 20ad9901..00000000 --- a/selfdrive/frogpilot/ui/qt/offroad/advanced_visual_settings.h +++ /dev/null @@ -1,53 +0,0 @@ -#pragma once - -#include - -#include "selfdrive/frogpilot/ui/qt/offroad/frogpilot_settings.h" - -class FrogPilotAdvancedVisualsPanel : public FrogPilotListWidget { - Q_OBJECT - -public: - explicit FrogPilotAdvancedVisualsPanel(FrogPilotSettingsWindow *parent); - -signals: - void openParentToggle(); - -private: - void hideToggles(); - void showToggles(const std::set &keys); - void updateCarToggles(); - void updateMetric(); - - std::set advancedCustomOnroadUIKeys = { - "CameraView", "HideLeadMarker", "HideSpeed", - "HideUIElements", "ShowStoppingPoint", "WheelSpeed" - }; - - std::set developerUIKeys = { - "BorderMetrics", "FPSCounter", "LateralMetrics", - "LongitudinalMetrics", "NumericalTemp", - "SidebarMetrics", "UseSI" - }; - - std::set modelUIKeys = { - "LaneLinesWidth", "PathEdgeWidth", "PathWidth", - "RoadEdgesWidth", "UnlimitedLength" - }; - - FrogPilotButtonToggleControl *borderMetricsBtn; - FrogPilotButtonToggleControl *lateralMetricsBtn; - FrogPilotButtonToggleControl *longitudinalMetricsBtn; - - FrogPilotSettingsWindow *parent; - - Params params; - - bool disableOpenpilotLongitudinal; - bool hasAutoTune; - bool hasBSM; - bool hasOpenpilotLongitudinal; - bool isMetric = params.getBool("IsMetric"); - - std::map toggles; -}; diff --git a/selfdrive/frogpilot/ui/qt/offroad/data_settings.cc b/selfdrive/frogpilot/ui/qt/offroad/data_settings.cc index 930e82c9..dbc1d42f 100644 --- a/selfdrive/frogpilot/ui/qt/offroad/data_settings.cc +++ b/selfdrive/frogpilot/ui/qt/offroad/data_settings.cc @@ -3,7 +3,7 @@ #include "selfdrive/frogpilot/ui/qt/offroad/data_settings.h" FrogPilotDataPanel::FrogPilotDataPanel(FrogPilotSettingsWindow *parent) : FrogPilotListWidget(parent) { - ButtonControl *deleteDrivingDataBtn = new ButtonControl(tr("Delete Driving Footage and Data"), tr("DELETE"), tr("This button provides a swift and secure way to permanently delete all stored driving footage and data from your device. Ideal for maintaining privacy or freeing up space.")); + ButtonControl *deleteDrivingDataBtn = new ButtonControl(tr("Delete Driving Footage and Data"), tr("DELETE"), tr("Permanently deletes all stored driving footage and data from your device. Ideal for maintaining privacy or freeing up space.")); QObject::connect(deleteDrivingDataBtn, &ButtonControl::clicked, [=]() { if (ConfirmationDialog::confirm(tr("Are you sure you want to permanently delete all of your driving footage and data?"), tr("Delete"), this)) { std::thread([=] { diff --git a/selfdrive/frogpilot/ui/qt/offroad/device_settings.cc b/selfdrive/frogpilot/ui/qt/offroad/device_settings.cc index f74da2bf..40e0ac12 100644 --- a/selfdrive/frogpilot/ui/qt/offroad/device_settings.cc +++ b/selfdrive/frogpilot/ui/qt/offroad/device_settings.cc @@ -1,21 +1,21 @@ #include "selfdrive/frogpilot/ui/qt/offroad/device_settings.h" -FrogPilotDevicePanel::FrogPilotDevicePanel(FrogPilotSettingsWindow *parent) : FrogPilotListWidget(parent) { +FrogPilotDevicePanel::FrogPilotDevicePanel(FrogPilotSettingsWindow *parent) : FrogPilotListWidget(parent), parent(parent) { const std::vector> deviceToggles { {"DeviceManagement", tr("Device Settings"), tr("Device behavior settings."), "../frogpilot/assets/toggle_icons/icon_device.png"}, - {"DeviceShutdown", tr("Device Shutdown Timer"), tr("How long the device stays on after you stop driving."), ""}, - {"OfflineMode", tr("Disable Internet Requirement"), tr("The device can work without an internet connection for as long as you need."), ""}, - {"IncreaseThermalLimits", tr("Increase Thermal Safety Limit"), tr("The device can run at higher temperatures than recommended."), ""}, - {"LowVoltageShutdown", tr("Low Battery Shutdown Threshold"), tr("Shut down the device when the car's battery gets too low to prevent damage to the 12V battery."), ""}, - {"NoLogging", tr("Turn Off Data Tracking"), tr("Disable all tracking to improve privacy."), ""}, - {"NoUploads", tr("Turn Off Data Uploads"), tr("Stop the device from sending any data to the servers."), ""}, + {"DeviceShutdown", tr("Device Shutdown Timer"), tr("Controls how long the device stays on after you stop driving."), ""}, + {"OfflineMode", tr("Disable Internet Requirement"), tr("Allows the device to work without an internet connection."), ""}, + {"IncreaseThermalLimits", tr("Increase Thermal Safety Limit"), tr("Allows the device to run at higher temperatures than recommended."), ""}, + {"LowVoltageShutdown", tr("Low Battery Shutdown Threshold"), tr("Manages the threshold for shutting down the device to protect the car's battery from excessive drain and potential damage."), ""}, + {"NoLogging", tr("Turn Off Data Tracking"), tr("Disables all data tracking to improve privacy."), ""}, + {"NoUploads", tr("Turn Off Data Uploads"), tr("Stops the device from sending any data to the servers."), ""}, {"ScreenManagement", tr("Screen Settings"), tr("Screen behavior settings."), "../frogpilot/assets/toggle_icons/icon_light.png"}, - {"ScreenBrightness", tr("Screen Brightness (Offroad)"), tr("The screen brightness when you're not driving."), ""}, - {"ScreenBrightnessOnroad", tr("Screen Brightness (Onroad)"), tr("The screen brightness while you're driving."), ""}, - {"ScreenRecorder", tr("Screen Recorder"), tr("Display a button in the onroad UI to record the screen."), ""}, - {"ScreenTimeout", tr("Screen Timeout (Offroad)"), tr("How long it takes for the screen to turn off when you're not driving."), ""}, - {"ScreenTimeoutOnroad", tr("Screen Timeout (Onroad)"), tr("How long it takes for the screen to turn off while you're driving."), ""} + {"ScreenBrightness", tr("Screen Brightness (Offroad)"), tr("Controls the screen brightness when you're not driving."), ""}, + {"ScreenBrightnessOnroad", tr("Screen Brightness (Onroad)"), tr("Controls the screen brightness while you're driving."), ""}, + {"ScreenRecorder", tr("Screen Recorder"), tr("Enables a button in the onroad UI to record the screen."), ""}, + {"ScreenTimeout", tr("Screen Timeout (Offroad)"), tr("Controls how long it takes for the screen to turn off when you're not driving."), ""}, + {"ScreenTimeoutOnroad", tr("Screen Timeout (Onroad)"), tr("Controls how long it takes for the screen to turn off while you're driving."), ""} }; for (const auto &[param, title, desc, icon] : deviceToggles) { @@ -24,7 +24,17 @@ FrogPilotDevicePanel::FrogPilotDevicePanel(FrogPilotSettingsWindow *parent) : Fr if (param == "DeviceManagement") { FrogPilotParamManageControl *deviceManagementToggle = new FrogPilotParamManageControl(param, title, desc, icon); QObject::connect(deviceManagementToggle, &FrogPilotParamManageControl::manageButtonClicked, [this]() { - showToggles(deviceManagementKeys); + std::set modifiedDeviceManagementKeys = deviceManagementKeys; + + if (customizationLevel != 2) { + modifiedDeviceManagementKeys.erase("IncreaseThermalLimits"); + modifiedDeviceManagementKeys.erase("LowVoltageShutdown"); + modifiedDeviceManagementKeys.erase("NoLogging"); + modifiedDeviceManagementKeys.erase("NoUploads"); + modifiedDeviceManagementKeys.erase("OfflineMode"); + } + + showToggles(modifiedDeviceManagementKeys); }); deviceToggle = deviceManagementToggle; } else if (param == "DeviceShutdown") { @@ -43,14 +53,16 @@ FrogPilotDevicePanel::FrogPilotDevicePanel(FrogPilotSettingsWindow *parent) : Fr } else if (param == "ScreenManagement") { FrogPilotParamManageControl *screenToggle = new FrogPilotParamManageControl(param, title, desc, icon); QObject::connect(screenToggle, &FrogPilotParamManageControl::manageButtonClicked, [this]() { - showToggles(screenKeys); + std::set modifiedScreenKeys = screenKeys; + + showToggles(modifiedScreenKeys); }); deviceToggle = screenToggle; } else if (param == "ScreenBrightness" || param == "ScreenBrightnessOnroad") { std::map brightnessLabels; int minBrightness = (param == "ScreenBrightnessOnroad") ? 0 : 1; - for (int i = 1; i <= 101; ++i) { - brightnessLabels[i] = (i == 101) ? tr("Auto") : QString::number(i) + "%"; + for (int i = 0; i <= 101; ++i) { + brightnessLabels[i] = i == 101 ? tr("Auto") : i == 0 ? tr("Screen Off") : QString::number(i) + "%"; } deviceToggle = new FrogPilotParamValueControl(param, title, desc, icon, minBrightness, 101, QString(), brightnessLabels, 1, false, true); } else if (param == "ScreenTimeout" || param == "ScreenTimeoutOnroad") { @@ -118,6 +130,12 @@ FrogPilotDevicePanel::FrogPilotDevicePanel(FrogPilotSettingsWindow *parent) : Fr hideToggles(); } +void FrogPilotDevicePanel::showEvent(QShowEvent *event) { + customizationLevel = parent->customizationLevel; + + toggles["ScreenManagement"]->setVisible(customizationLevel == 2); +} + void FrogPilotDevicePanel::updateState(const UIState &s) { started = s.scene.started; } @@ -142,6 +160,8 @@ void FrogPilotDevicePanel::hideToggles() { toggle->setVisible(!subToggles); } + 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 d8d552b3..64133520 100644 --- a/selfdrive/frogpilot/ui/qt/offroad/device_settings.h +++ b/selfdrive/frogpilot/ui/qt/offroad/device_settings.h @@ -15,6 +15,7 @@ signals: private: void hideToggles(); + void showEvent(QShowEvent *event) override; void showToggles(const std::set &keys); void updateState(const UIState &s); @@ -28,9 +29,13 @@ private: "ScreenTimeout", "ScreenTimeoutOnroad" }; + FrogPilotSettingsWindow *parent; + Params params; bool started; + int customizationLevel; + std::map toggles; }; diff --git a/selfdrive/frogpilot/ui/qt/offroad/frogpilot_settings.cc b/selfdrive/frogpilot/ui/qt/offroad/frogpilot_settings.cc index 213a763c..7577aff6 100644 --- a/selfdrive/frogpilot/ui/qt/offroad/frogpilot_settings.cc +++ b/selfdrive/frogpilot/ui/qt/offroad/frogpilot_settings.cc @@ -5,13 +5,12 @@ #include "selfdrive/frogpilot/navigation/ui/maps_settings.h" #include "selfdrive/frogpilot/navigation/ui/primeless_settings.h" -#include "selfdrive/frogpilot/ui/qt/offroad/advanced_driving_settings.h" -#include "selfdrive/frogpilot/ui/qt/offroad/advanced_visual_settings.h" #include "selfdrive/frogpilot/ui/qt/offroad/data_settings.h" #include "selfdrive/frogpilot/ui/qt/offroad/device_settings.h" #include "selfdrive/frogpilot/ui/qt/offroad/frogpilot_settings.h" #include "selfdrive/frogpilot/ui/qt/offroad/lateral_settings.h" #include "selfdrive/frogpilot/ui/qt/offroad/longitudinal_settings.h" +#include "selfdrive/frogpilot/ui/qt/offroad/model_settings.h" #include "selfdrive/frogpilot/ui/qt/offroad/sounds_settings.h" #include "selfdrive/frogpilot/ui/qt/offroad/theme_settings.h" #include "selfdrive/frogpilot/ui/qt/offroad/utilities.h" @@ -45,13 +44,15 @@ FrogPilotSettingsWindow::FrogPilotSettingsWindow(SettingsWindow *parent) : QFram FrogPilotListWidget *list = new FrogPilotListWidget(frogpilotSettingsWidget); - FrogPilotAdvancedDrivingPanel *frogpilotAdvancedDrivingPanel = new FrogPilotAdvancedDrivingPanel(this); - QObject::connect(frogpilotAdvancedDrivingPanel, &FrogPilotAdvancedDrivingPanel::openParentToggle, this, &FrogPilotSettingsWindow::openParentToggle); - QObject::connect(frogpilotAdvancedDrivingPanel, &FrogPilotAdvancedDrivingPanel::openSubParentToggle, this, &FrogPilotSettingsWindow::openSubParentToggle); - QObject::connect(frogpilotAdvancedDrivingPanel, &FrogPilotAdvancedDrivingPanel::openSubSubParentToggle, this, &FrogPilotSettingsWindow::openSubSubParentToggle); - - FrogPilotAdvancedVisualsPanel *frogpilotAdvancedVisualsPanel = new FrogPilotAdvancedVisualsPanel(this); - QObject::connect(frogpilotAdvancedVisualsPanel, &FrogPilotAdvancedVisualsPanel::openParentToggle, this, &FrogPilotSettingsWindow::openParentToggle); + 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); FrogPilotDevicePanel *frogpilotDevicePanel = new FrogPilotDevicePanel(this); QObject::connect(frogpilotDevicePanel, &FrogPilotDevicePanel::openParentToggle, this, &FrogPilotSettingsWindow::openParentToggle); @@ -63,10 +64,15 @@ FrogPilotSettingsWindow::FrogPilotSettingsWindow(SettingsWindow *parent) : QFram QObject::connect(frogpilotLongitudinalPanel, &FrogPilotLongitudinalPanel::openParentToggle, this, &FrogPilotSettingsWindow::openParentToggle); QObject::connect(frogpilotLongitudinalPanel, &FrogPilotLongitudinalPanel::openSubParentToggle, this, &FrogPilotSettingsWindow::openSubParentToggle); + FrogPilotModelPanel *frogpilotModelPanel = new FrogPilotModelPanel(this); + QObject::connect(frogpilotModelPanel, &FrogPilotModelPanel::openParentToggle, this, &FrogPilotSettingsWindow::openParentToggle); + QObject::connect(frogpilotModelPanel, &FrogPilotModelPanel::openSubParentToggle, this, &FrogPilotSettingsWindow::openSubParentToggle); + FrogPilotMapsPanel *frogpilotMapsPanel = new FrogPilotMapsPanel(this); QObject::connect(frogpilotMapsPanel, &FrogPilotMapsPanel::openMapSelection, this, &FrogPilotSettingsWindow::openMapSelection); FrogPilotPrimelessPanel *frogpilotPrimelessPanel = new FrogPilotPrimelessPanel(this); + QObject::connect(frogpilotPrimelessPanel, &FrogPilotPrimelessPanel::closeMapBoxInstructions, this, &FrogPilotSettingsWindow::closeMapBoxInstructions); QObject::connect(frogpilotPrimelessPanel, &FrogPilotPrimelessPanel::openMapBoxInstructions, this, &FrogPilotSettingsWindow::openMapBoxInstructions); FrogPilotSoundsPanel *frogpilotSoundsPanel = new FrogPilotSoundsPanel(this); @@ -79,9 +85,8 @@ FrogPilotSettingsWindow::FrogPilotSettingsWindow(SettingsWindow *parent) : QFram QObject::connect(frogpilotVisualsPanel, &FrogPilotVisualsPanel::openParentToggle, this, &FrogPilotSettingsWindow::openParentToggle); std::vector>> panels = { - {tr("Advanced Settings"), {frogpilotAdvancedDrivingPanel, frogpilotAdvancedVisualsPanel}}, {tr("Alerts and Sounds"), {frogpilotSoundsPanel}}, - {tr("Driving Controls"), {frogpilotLongitudinalPanel, frogpilotLateralPanel}}, + {tr("Driving Controls"), {frogpilotModelPanel, frogpilotLongitudinalPanel, frogpilotLateralPanel}}, {tr("Navigation"), {frogpilotMapsPanel, frogpilotPrimelessPanel}}, {tr("System Management"), {new FrogPilotDataPanel(this), frogpilotDevicePanel, new UtilitiesPanel(this)}}, {tr("Theme and Appearance"), {frogpilotVisualsPanel, frogpilotThemesPanel}}, @@ -89,7 +94,6 @@ FrogPilotSettingsWindow::FrogPilotSettingsWindow(SettingsWindow *parent) : QFram }; std::vector icons = { - "../frogpilot/assets/toggle_icons/icon_advanced.png", "../frogpilot/assets/toggle_icons/icon_sound.png", "../frogpilot/assets/toggle_icons/icon_steering.png", "../frogpilot/assets/toggle_icons/icon_map.png", @@ -99,7 +103,6 @@ FrogPilotSettingsWindow::FrogPilotSettingsWindow(SettingsWindow *parent) : QFram }; std::vector descriptions = { - tr("Advanced FrogPilot features for more experienced users."), tr("Options to customize FrogPilot's sound alerts and notifications."), tr("FrogPilot features that impact acceleration, braking, and steering."), tr("Offline maps downloader and 'Navigate On openpilot (NOO)' settings."), @@ -109,9 +112,8 @@ FrogPilotSettingsWindow::FrogPilotSettingsWindow(SettingsWindow *parent) : QFram }; std::vector> buttonLabels = { - {tr("DRIVING"), tr("VISUALS")}, {tr("MANAGE")}, - {tr("GAS / BRAKE"), tr("STEERING")}, + {tr("DRIVING MODEL"), tr("GAS / BRAKE"), tr("STEERING")}, {tr("OFFLINE MAPS"), tr("PRIMELESS NAVIGATION")}, {tr("DATA"), tr("DEVICE"), tr("UTILITIES")}, {tr("APPEARANCE"), tr("THEME")}, @@ -119,7 +121,7 @@ FrogPilotSettingsWindow::FrogPilotSettingsWindow(SettingsWindow *parent) : QFram }; for (size_t i = 0; i < panels.size(); ++i) { - addPanelControl(list, panels[i].first, descriptions[i], buttonLabels[i], icons[i], panels[i].second, panels[i].first == tr("Driving Controls"), panels[i].first == tr("Navigation")); + addPanelControl(list, panels[i].first, descriptions[i], buttonLabels[i], icons[i], panels[i].second, panels[i].first); } frogpilotSettingsLayout->addWidget(new ScrollView(list, frogpilotSettingsWidget)); @@ -133,11 +135,8 @@ FrogPilotSettingsWindow::FrogPilotSettingsWindow(SettingsWindow *parent) : QFram QObject::connect(parent, &SettingsWindow::closePanel, this, &FrogPilotSettingsWindow::closePanel); QObject::connect(parent, &SettingsWindow::closeParentToggle, this, &FrogPilotSettingsWindow::closeParentToggle); QObject::connect(parent, &SettingsWindow::closeSubParentToggle, this, &FrogPilotSettingsWindow::closeSubParentToggle); - QObject::connect(parent, &SettingsWindow::closeSubSubParentToggle, this, &FrogPilotSettingsWindow::closeSubSubParentToggle); QObject::connect(parent, &SettingsWindow::updateMetric, this, &FrogPilotSettingsWindow::updateMetric); QObject::connect(uiState(), &UIState::offroadTransition, this, &FrogPilotSettingsWindow::updateCarVariables); - - updateCarVariables(); } void FrogPilotSettingsWindow::showEvent(QShowEvent *event) { @@ -152,10 +151,18 @@ void FrogPilotSettingsWindow::closePanel() { } void FrogPilotSettingsWindow::updatePanelVisibility() { + customizationLevel = params.getInt("CustomizationLevel"); disableOpenpilotLongitudinal = params.getBool("DisableOpenpilotLongitudinal"); - drivingButton->setVisibleButton(0, hasOpenpilotLongitudinal && !disableOpenpilotLongitudinal); + if ((hasOpenpilotLongitudinal && !disableOpenpilotLongitudinal) || customizationLevel != 0) { + drivingButton->setVisibleButton(0, customizationLevel == 2); + drivingButton->setVisibleButton(1, hasOpenpilotLongitudinal && !disableOpenpilotLongitudinal); + drivingButton->setVisibleButton(2, customizationLevel != 0); + } else { + drivingButton->setVisible(false); + } navigationButton->setVisibleButton(1, !uiState()->hasPrime()); + systemButton->setVisibleButton(1, customizationLevel != 0); mainLayout->setCurrentWidget(frogpilotSettingsWidget); } @@ -183,7 +190,9 @@ void FrogPilotSettingsWindow::updateCarVariables() { hasNNFFLog = checkNNFFLogFileExists(carFingerprint); hasOpenpilotLongitudinal = hasLongitudinalControl(CP); hasPCMCruise = CP.getPcmCruise(); + hasRadar = !CP.getRadarUnavailable(); 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; @@ -236,17 +245,21 @@ void FrogPilotSettingsWindow::updateCarVariables() { hasNNFFLog = true; hasOpenpilotLongitudinal = true; hasPCMCruise = true; + hasRadar = true; hasSNG = false; + isGM = true; isGMPCMCruise = false; isHKGCanFd = true; isImpreza = true; - isSubaru = false; + isPIDCar = false; + isSubaru = true; isToyota = true; + isToyotaTuneSupported = true; isVolt = true; } std::string liveTorqueParamsKey; - if (params.getBool("ModelManagement")) { + if (customizationLevel == 2) { QString model = QString::fromStdString(params.get("ModelName")); QString part_model_param = processModelName(model); liveTorqueParamsKey = part_model_param.toStdString() + "LiveTorqueParameters"; @@ -255,13 +268,13 @@ void FrogPilotSettingsWindow::updateCarVariables() { } if (params.checkKey(liveTorqueParamsKey)) { - auto torqueParams = params.get(liveTorqueParamsKey); + std::string torqueParams = params.get(liveTorqueParamsKey); if (!torqueParams.empty()) { AlignedBuffer aligned_buf; capnp::FlatArrayMessageReader cmsg(aligned_buf.align(torqueParams.data(), torqueParams.size())); cereal::Event::Reader LTP = cmsg.getRoot(); - auto liveTorqueParams = LTP.getLiveTorqueParameters(); + cereal::LiveTorqueParametersData::Reader liveTorqueParams = LTP.getLiveTorqueParameters(); liveValid = liveTorqueParams.getLiveValid(); } else { @@ -274,7 +287,7 @@ void FrogPilotSettingsWindow::updateCarVariables() { emit updateCarToggles(); } -void FrogPilotSettingsWindow::addPanelControl(FrogPilotListWidget *list, QString &title, QString &desc, std::vector &button_labels, QString &icon, std::vector &panels, bool isDrivingPanel, bool isNavigationPanel) { +void FrogPilotSettingsWindow::addPanelControl(FrogPilotListWidget *list, QString &title, QString &desc, std::vector &button_labels, QString &icon, std::vector &panels, QString ¤tPanel) { std::vector panelContainers; panelContainers.reserve(panels.size()); @@ -287,12 +300,15 @@ void FrogPilotSettingsWindow::addPanelControl(FrogPilotListWidget *list, QString } FrogPilotButtonsControl *button; - if (isDrivingPanel) { + if (currentPanel == tr("Driving Controls")) { drivingButton = new FrogPilotButtonsControl(title, desc, button_labels, false, true, icon); button = drivingButton; - } else if (isNavigationPanel) { + } else if (currentPanel == tr("Navigation")) { navigationButton = new FrogPilotButtonsControl(title, desc, button_labels, false, true, icon); button = navigationButton; + } else if (currentPanel == tr("System Management")) { + systemButton = new FrogPilotButtonsControl(title, desc, button_labels, false, true, icon); + button = systemButton; } else { button = new FrogPilotButtonsControl(title, desc, button_labels, false, true, icon); } diff --git a/selfdrive/frogpilot/ui/qt/offroad/frogpilot_settings.h b/selfdrive/frogpilot/ui/qt/offroad/frogpilot_settings.h index be87b154..90e384ee 100644 --- a/selfdrive/frogpilot/ui/qt/offroad/frogpilot_settings.h +++ b/selfdrive/frogpilot/ui/qt/offroad/frogpilot_settings.h @@ -16,7 +16,9 @@ public: bool hasNNFFLog; bool hasOpenpilotLongitudinal; bool hasPCMCruise; + bool hasRadar; bool hasSNG; + bool isBolt; bool isGM; bool isGMPCMCruise; bool isHKGCanFd; @@ -34,23 +36,23 @@ public: float steerLatAccelStock; float steerRatioStock; + int customizationLevel; + signals: void closeMapBoxInstructions(); void closeMapSelection(); void closeParentToggle(); void closeSubParentToggle(); - void closeSubSubParentToggle(); void openMapBoxInstructions(); void openMapSelection(); void openPanel(); void openParentToggle(); void openSubParentToggle(); - void openSubSubParentToggle(); void updateCarToggles(); void updateMetric(); private: - void addPanelControl(FrogPilotListWidget *list, QString &title, QString &desc, std::vector &button_labels, QString &icon, std::vector &panels, bool isDrivingPanel, bool isNavigationPanel); + void addPanelControl(FrogPilotListWidget *list, QString &title, QString &desc, std::vector &button_labels, QString &icon, std::vector &panels, QString ¤tPanel); void closePanel(); void showEvent(QShowEvent *event) override; void updateCarVariables(); @@ -58,6 +60,7 @@ private: FrogPilotButtonsControl *drivingButton; FrogPilotButtonsControl *navigationButton; + FrogPilotButtonsControl *systemButton; Params params; diff --git a/selfdrive/frogpilot/ui/qt/offroad/lateral_settings.cc b/selfdrive/frogpilot/ui/qt/offroad/lateral_settings.cc index c6040a91..2042570c 100644 --- a/selfdrive/frogpilot/ui/qt/offroad/lateral_settings.cc +++ b/selfdrive/frogpilot/ui/qt/offroad/lateral_settings.cc @@ -2,22 +2,32 @@ FrogPilotLateralPanel::FrogPilotLateralPanel(FrogPilotSettingsWindow *parent) : FrogPilotListWidget(parent), parent(parent) { const std::vector> lateralToggles { + {"AdvancedLateralTune", tr("Advanced Lateral Tuning"), tr("Advanced settings for fine tuning openpilot's lateral controls."), "../frogpilot/assets/toggle_icons/icon_advanced_lateral_tune.png"}, + {"SteerFriction", steerFrictionStock != 0 ? QString(tr("Friction (Default: %1)")).arg(QString::number(steerFrictionStock, 'f', 2)) : tr("Friction"), tr("Adjusts the resistance in steering. Higher values provide more stable steering but can make it feel heavy, while lower values allow lighter steering but may feel too sensitive."), ""}, + {"SteerKP", steerKPStock != 0 ? QString(tr("Kp Factor (Default: %1)")).arg(QString::number(steerKPStock, 'f', 2)) : tr("Kp Factor"), tr("Adjusts how aggressively the car corrects its steering. Higher values offer quicker corrections but may feel jerky, while lower values make steering smoother but slower to respond."), ""}, + {"SteerLatAccel", steerLatAccelStock != 0 ? QString(tr("Lateral Accel (Default: %1)")).arg(QString::number(steerLatAccelStock, 'f', 2)) : tr("Lateral Accel"), tr("Adjusts how fast the car can steer from side to side. Higher values allow quicker lane changes but can feel unstable, while lower values provide smoother steering but may feel sluggish."), ""}, + {"SteerRatio", steerRatioStock != 0 ? QString(tr("Steer Ratio (Default: %1)")).arg(QString::number(steerRatioStock, 'f', 2)) : tr("Steer Ratio"), tr("Adjusts how much openpilot needs to turn the wheel to steer. Higher values feel like driving a truck, more stable at high speeds, but harder to steer quickly at low speeds, while lower values feel like a go-kart, easier to steer in tight spots but more sensitive and less stable at high speeds."), ""}, + {"ForceAutoTune", tr("Force Auto Tune On"), tr("Forces comma's auto lateral tuning for unsupported vehicles."), ""}, + {"ForceAutoTuneOff", tr("Force Auto Tune Off"), tr("Forces comma's auto lateral tuning off for supported vehicles."), ""}, + {"AlwaysOnLateral", tr("Always on Lateral"), tr("openpilot's steering control stays active even when the brake or gas pedals are pressed.\n\nDeactivate only occurs with the 'Cruise Control' button."), "../frogpilot/assets/toggle_icons/icon_always_on_lateral.png"}, - {"AlwaysOnLateralLKAS", tr("Control with LKAS Button"), tr("'Always on Lateral' gets turned on or off using the 'LKAS' button."), ""}, - {"AlwaysOnLateralMain", tr("Enable with Cruise Control"), tr("'Always on Lateral' gets turned on by pressing the 'Cruise Control' button bypassing the requirement to enable openpilot first."), ""}, - {"PauseAOLOnBrake", tr("Pause on Brake Below"), tr("'Always on Lateral' pauses when the brake pedal is pressed below the set speed."), ""}, - {"HideAOLStatusBar", tr("Hide the Status Bar"), tr("The status bar for 'Always on Lateral' is hidden."), ""}, + {"AlwaysOnLateralLKAS", tr("Control with LKAS Button"), tr("Controls the current state of 'Always on Lateral' with the 'LKAS' button."), ""}, + {"AlwaysOnLateralMain", tr("Enable with Cruise Control"), tr("Activates 'Always on Lateral' whenever 'Cruise Control' is active bypassing the requirement to enable openpilot first."), ""}, + {"PauseAOLOnBrake", tr("Pause on Brake Below"), tr("Pauses 'Always on Lateral' when the brake pedal is pressed below the set speed."), ""}, + {"HideAOLStatusBar", tr("Hide the Status Bar"), tr("Hides status bar for 'Always On Lateral'."), ""}, {"LaneChangeCustomizations", tr("Lane Change Settings"), tr("How openpilot handles lane changes."), "../frogpilot/assets/toggle_icons/icon_lane.png"}, - {"NudgelessLaneChange", tr("Hands-Free Lane Change"), tr("Lane changes are conducted without needing to touch the steering wheel upon turn signal activation."), ""}, - {"LaneChangeTime", tr("Lane Change Delay"), tr("How long openpilot waits before changing lanes."), ""}, - {"LaneDetectionWidth", tr("Lane Width Requirement"), tr("The minimum lane width for openpilot to detect a lane as a lane."), ""}, - {"MinimumLaneChangeSpeed", tr("Minimum Speed for Lane Change"), tr("The minimum speed required for openpilot to perform a lane change."), ""}, - {"OneLaneChange", tr("Single Lane Change Per Signal"), tr("Lane changes are limited to one per turn signal activation."), ""}, + {"NudgelessLaneChange", tr("Automatic Lane Changes"), tr("Conducts lane changes without needing to touch the steering wheel upon turn signal activation."), ""}, + {"LaneChangeTime", tr("Lane Change Delay"), tr("Delays lane changes by the set time to prevent sudden changes."), ""}, + {"LaneDetectionWidth", tr("Lane Width Requirement"), tr("Sets the minimum lane width for openpilot to detect a lane as a lane."), ""}, + {"MinimumLaneChangeSpeed", tr("Minimum Speed for Lane Change"), tr("Sets the minimum speed required for openpilot to perform a lane change."), ""}, + {"OneLaneChange", tr("Only One Lane Change Per Signal"), tr("Limits lane changes to one per turn signal activation."), ""}, - {"LateralTune", tr("Lateral Tuning"), tr("Settings that control how openpilot manages steering."), "../frogpilot/assets/toggle_icons/icon_lateral_tune.png"}, - {"NNFF", tr("Neural Network Feedforward (NNFF)"), tr("Twilsonco's 'Neural Network FeedForward' for more precise steering control."), ""}, - {"NNFFLite", tr("Smooth Curve Handling"), tr("Smoother steering when entering and exiting curves with Twilsonco's torque adjustments."), ""}, + {"LateralTune", tr("Lateral Tuning"), tr("Settings for fine tuning openpilot's lateral controls."), "../frogpilot/assets/toggle_icons/icon_lateral_tune.png"}, + {"TacoTune", tr("comma's 2022 Taco Bell Turn Hack"), tr("Uses comma's hack they used to help handle left and right turns more precisely during their 2022 'Taco Bell' drive."), ""}, + {"TurnDesires", tr("Force Turn Desires Below Lane Change Speed"), tr("Forces the model to use turn desires when driving below the minimum lane change speed to help make left and right turns more precisely."), ""}, + {"NNFF", tr("Neural Network Feedforward (NNFF)"), tr("Uses Twilsonco's 'Neural Network FeedForward' for more precise steering control."), ""}, + {"NNFFLite", tr("Smooth Curve Handling"), tr("Smoothens the steering control when entering and exiting curves by using Twilsonco's torque adjustments."), ""}, {"QOLLateral", tr("Quality of Life Improvements"), tr("Miscellaneous lateral focused features to improve your overall openpilot experience."), "../frogpilot/assets/toggle_icons/quality_of_life.png"}, {"PauseLateralSpeed", tr("Pause Steering Below"), tr("Pauses steering control when driving below the set speed."), ""} @@ -26,7 +36,50 @@ FrogPilotLateralPanel::FrogPilotLateralPanel(FrogPilotSettingsWindow *parent) : for (const auto &[param, title, desc, icon] : lateralToggles) { AbstractControl *lateralToggle; - if (param == "AlwaysOnLateral") { + if (param == "AdvancedLateralTune") { + FrogPilotParamManageControl *advancedLateralTuneToggle = new FrogPilotParamManageControl(param, title, desc, icon); + QObject::connect(advancedLateralTuneToggle, &FrogPilotParamManageControl::manageButtonClicked, [this]() { + std::set modifiedAdvancedLateralTuneKeys = advancedLateralTuneKeys; + + bool usingNNFF = hasNNFFLog && params.getBool("LateralTune") && params.getBool("NNFF"); + if (usingNNFF) { + modifiedAdvancedLateralTuneKeys.erase("ForceAutoTune"); + modifiedAdvancedLateralTuneKeys.erase("ForceAutoTuneOff"); + } 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"); + } + } + + if (!liveValid || usingNNFF) { + modifiedAdvancedLateralTuneKeys.erase("SteerFriction"); + modifiedAdvancedLateralTuneKeys.erase("SteerLatAccel"); + } + + showToggles(modifiedAdvancedLateralTuneKeys); + }); + lateralToggle = advancedLateralTuneToggle; + } else if (param == "SteerFriction") { + std::vector steerFrictionToggleNames{"Reset"}; + lateralToggle = new FrogPilotParamValueButtonControl(param, title, desc, icon, 0.01, 0.25, QString(), std::map(), 0.01, {}, steerFrictionToggleNames, false, false); + } else if (param == "SteerKP") { + std::vector steerKPToggleNames{"Reset"}; + lateralToggle = new FrogPilotParamValueButtonControl(param, title, desc, icon, steerKPStock * 0.50, steerKPStock * 1.50, QString(), std::map(), 0.01, {}, steerKPToggleNames, false, false); + } else if (param == "SteerLatAccel") { + std::vector steerLatAccelToggleNames{"Reset"}; + lateralToggle = new FrogPilotParamValueButtonControl(param, title, desc, icon, steerLatAccelStock * 0.25, steerLatAccelStock * 1.25, QString(), std::map(), 0.01, {}, steerLatAccelToggleNames, false, false); + } else if (param == "SteerRatio") { + std::vector steerRatioToggleNames{"Reset"}; + lateralToggle = new FrogPilotParamValueButtonControl(param, title, desc, icon, steerRatioStock * 0.75, steerRatioStock * 1.25, QString(), std::map(), 0.01, {}, steerRatioToggleNames, false, false); + + } else if (param == "AlwaysOnLateral") { FrogPilotParamManageControl *aolToggle = new FrogPilotParamManageControl(param, title, desc, icon); QObject::connect(aolToggle, &FrogPilotParamManageControl::manageButtonClicked, [this]() { std::set modifiedAOLKeys = aolKeys; @@ -35,12 +88,37 @@ FrogPilotLateralPanel::FrogPilotLateralPanel(FrogPilotSettingsWindow *parent) : modifiedAOLKeys.erase("AlwaysOnLateralLKAS"); } + if (customizationLevel != 2) { + modifiedAOLKeys.erase("AlwaysOnLateralMain"); + modifiedAOLKeys.erase("HideAOLStatusBar"); + } + showToggles(modifiedAOLKeys); }); lateralToggle = aolToggle; } else if (param == "PauseAOLOnBrake") { lateralToggle = new FrogPilotParamValueControl(param, title, desc, icon, 0, 99, tr("mph")); + } 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); + }); + lateralToggle = laneChangeToggle; + } else if (param == "LaneChangeTime") { + lateralToggle = new FrogPilotParamValueControl(param, title, desc, icon, 0, 5, tr(" seconds"), {{0, "Instant"}, {10, "1.0 second"}}, 0.1); + } else if (param == "LaneDetectionWidth") { + lateralToggle = new FrogPilotParamValueControl(param, title, desc, icon, 0, 15, tr(" feet"), std::map(), 0.1); + } else if (param == "MinimumLaneChangeSpeed") { + lateralToggle = new FrogPilotParamValueControl(param, title, desc, icon, 0, 99, tr("mph")); + } else if (param == "LateralTune") { FrogPilotParamManageControl *lateralTuneToggle = new FrogPilotParamManageControl(param, title, desc, icon); QObject::connect(lateralTuneToggle, &FrogPilotParamManageControl::manageButtonClicked, [this]() { @@ -53,6 +131,11 @@ FrogPilotLateralPanel::FrogPilotLateralPanel(FrogPilotSettingsWindow *parent) : modifiedLateralTuneKeys.erase("NNFFLite"); } + if (customizationLevel != 2) { + modifiedLateralTuneKeys.erase("TacoTune"); + modifiedLateralTuneKeys.erase("TurnDesires"); + } + showToggles(modifiedLateralTuneKeys); }); lateralToggle = lateralTuneToggle; @@ -66,27 +149,10 @@ FrogPilotLateralPanel::FrogPilotLateralPanel(FrogPilotSettingsWindow *parent) : } else if (param == "PauseLateralSpeed") { std::vector pauseLateralToggles{"PauseLateralOnSignal"}; std::vector pauseLateralToggleNames{"Turn Signal Only"}; - lateralToggle = new FrogPilotParamValueButtonControl(param, title, desc, icon, 0, 99, tr("mph"), std::map(), 1, pauseLateralToggles, pauseLateralToggleNames); + lateralToggle = new FrogPilotParamValueButtonControl(param, title, desc, icon, 0, 99, tr("mph"), std::map(), 1, pauseLateralToggles, pauseLateralToggleNames, true); } else if (param == "PauseLateralOnSignal") { lateralToggle = new FrogPilotParamValueControl(param, title, desc, icon, 0, 99, tr("mph")); - } else if (param == "LaneChangeCustomizations") { - FrogPilotParamManageControl *laneChangeToggle = new FrogPilotParamManageControl(param, title, desc, icon); - QObject::connect(laneChangeToggle, &FrogPilotParamManageControl::manageButtonClicked, [this]() { - showToggles(laneChangeKeys); - }); - lateralToggle = laneChangeToggle; - } else if (param == "LaneChangeTime") { - std::map laneChangeTimeLabels; - for (int i = 0; i <= 10; ++i) { - laneChangeTimeLabels[i] = i == 0 ? "Instant" : QString::number(i / 2.0) + " seconds"; - } - lateralToggle = new FrogPilotParamValueControl(param, title, desc, icon, 0, 10, QString(), laneChangeTimeLabels); - } else if (param == "LaneDetectionWidth") { - lateralToggle = new FrogPilotParamValueControl(param, title, desc, icon, 0, 15, tr(" feet"), std::map(), 0.1); - } else if (param == "MinimumLaneChangeSpeed") { - lateralToggle = new FrogPilotParamValueControl(param, title, desc, icon, 0, 99, tr("mph")); - } else { lateralToggle = new ParamControl(param, title, desc, icon); } @@ -141,6 +207,34 @@ FrogPilotLateralPanel::FrogPilotLateralPanel(FrogPilotSettingsWindow *parent) : }); } + steerFrictionToggle = static_cast(toggles["SteerFriction"]); + QObject::connect(steerFrictionToggle, &FrogPilotParamValueButtonControl::buttonClicked, [this]() { + params.putFloat("SteerFriction", steerFrictionStock); + steerFrictionToggle->refresh(); + updateFrogPilotToggles(); + }); + + steerKPToggle = static_cast(toggles["SteerKP"]); + QObject::connect(steerKPToggle, &FrogPilotParamValueButtonControl::buttonClicked, [this]() { + params.putFloat("SteerKP", steerKPStock); + steerKPToggle->refresh(); + updateFrogPilotToggles(); + }); + + steerLatAccelToggle = static_cast(toggles["SteerLatAccel"]); + QObject::connect(steerLatAccelToggle, &FrogPilotParamValueButtonControl::buttonClicked, [this]() { + params.putFloat("SteerLatAccel", steerLatAccelStock); + steerLatAccelToggle->refresh(); + updateFrogPilotToggles(); + }); + + steerRatioToggle = static_cast(toggles["SteerRatio"]); + QObject::connect(steerRatioToggle, &FrogPilotParamValueButtonControl::buttonClicked, [this]() { + params.putFloat("SteerRatio", steerRatioStock); + steerRatioToggle->refresh(); + updateFrogPilotToggles(); + }); + QObject::connect(parent, &FrogPilotSettingsWindow::closeParentToggle, this, &FrogPilotLateralPanel::hideToggles); QObject::connect(parent, &FrogPilotSettingsWindow::updateCarToggles, this, &FrogPilotLateralPanel::updateCarToggles); QObject::connect(parent, &FrogPilotSettingsWindow::updateMetric, this, &FrogPilotLateralPanel::updateMetric); @@ -149,10 +243,30 @@ FrogPilotLateralPanel::FrogPilotLateralPanel(FrogPilotSettingsWindow *parent) : updateMetric(); } +void FrogPilotLateralPanel::showEvent(QShowEvent *event) { + customizationLevel = parent->customizationLevel; + + toggles["AdvancedLateralTune"]->setVisible(customizationLevel == 2); +} + void FrogPilotLateralPanel::updateCarToggles() { hasAutoTune = parent->hasAutoTune; hasNNFFLog = parent->hasNNFFLog; + isPIDCar = parent->isPIDCar; isSubaru = parent->isSubaru; + liveValid = parent->liveValid; + steerFrictionStock = parent->steerFrictionStock; + steerKPStock = parent->steerKPStock; + steerLatAccelStock = parent->steerLatAccelStock; + steerRatioStock = parent->steerRatioStock; + + 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))); + steerKPToggle->updateControl(steerKPStock * 0.50, steerKPStock * 1.50); + steerLatAccelToggle->setTitle(QString(tr("Lateral Accel (Default: %1)")).arg(QString::number(steerLatAccelStock, 'f', 2))); + steerLatAccelToggle->updateControl(steerLatAccelStock * 0.75, steerLatAccelStock * 1.25); + steerRatioToggle->setTitle(QString(tr("Steer Ratio (Default: %1)")).arg(QString::number(steerRatioStock, 'f', 2))); + steerRatioToggle->updateControl(steerRatioStock * 0.75, steerRatioStock * 1.25); hideToggles(); } @@ -214,7 +328,8 @@ void FrogPilotLateralPanel::hideToggles() { setUpdatesEnabled(false); for (auto &[key, toggle] : toggles) { - bool subToggles = aolKeys.find(key) != aolKeys.end() || + bool subToggles = advancedLateralTuneKeys.find(key) != advancedLateralTuneKeys.end() || + aolKeys.find(key) != aolKeys.end() || laneChangeKeys.find(key) != laneChangeKeys.end() || lateralTuneKeys.find(key) != lateralTuneKeys.end() || qolKeys.find(key) != qolKeys.end(); @@ -222,6 +337,8 @@ void FrogPilotLateralPanel::hideToggles() { toggle->setVisible(!subToggles); } + 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 82d39415..e84845fa 100644 --- a/selfdrive/frogpilot/ui/qt/offroad/lateral_settings.h +++ b/selfdrive/frogpilot/ui/qt/offroad/lateral_settings.h @@ -15,30 +15,41 @@ signals: private: void hideToggles(); + void showEvent(QShowEvent *event) override; void showToggles(const std::set &keys); void updateMetric(); void updateCarToggles(); void updateState(const UIState &s); + std::set advancedLateralTuneKeys = { + "ForceAutoTune", "ForceAutoTuneOff", "SteerFriction", + "SteerLatAccel", "SteerKP", "SteerRatio" + }; + std::set aolKeys = { - "AlwaysOnLateralLKAS", "AlwaysOnLateralMain", - "HideAOLStatusBar", "PauseAOLOnBrake" + "AlwaysOnLateralLKAS", "AlwaysOnLateralMain", "HideAOLStatusBar", + "PauseAOLOnBrake" }; std::set laneChangeKeys = { - "LaneChangeTime", "LaneDetectionWidth", - "MinimumLaneChangeSpeed", "NudgelessLaneChange", - "OneLaneChange" + "LaneChangeTime", "LaneDetectionWidth", "MinimumLaneChangeSpeed", + "NudgelessLaneChange", "OneLaneChange" }; std::set lateralTuneKeys = { - "NNFF", "NNFFLite" + "NNFF", "NNFFLite", "TacoTune", + "TurnDesires" }; std::set qolKeys = { "PauseLateralSpeed" }; + FrogPilotParamValueButtonControl *steerFrictionToggle; + FrogPilotParamValueButtonControl *steerLatAccelToggle; + FrogPilotParamValueButtonControl *steerKPToggle; + FrogPilotParamValueButtonControl *steerRatioToggle; + FrogPilotSettingsWindow *parent; Params params; @@ -46,8 +57,17 @@ private: bool hasAutoTune; bool hasNNFFLog; bool isMetric = params.getBool("IsMetric"); + bool isPIDCar; bool isSubaru; + bool liveValid; bool started; + float steerFrictionStock; + float steerLatAccelStock; + float steerKPStock; + float steerRatioStock; + + int customizationLevel; + std::map toggles; }; diff --git a/selfdrive/frogpilot/ui/qt/offroad/longitudinal_settings.cc b/selfdrive/frogpilot/ui/qt/offroad/longitudinal_settings.cc index 2f85dd0d..a3897f78 100644 --- a/selfdrive/frogpilot/ui/qt/offroad/longitudinal_settings.cc +++ b/selfdrive/frogpilot/ui/qt/offroad/longitudinal_settings.cc @@ -2,68 +2,169 @@ FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow *parent) : FrogPilotListWidget(parent), parent(parent) { const std::vector> longitudinalToggles { - {"ConditionalExperimental", tr("Conditional Experimental Mode"), tr("Automatically switches to 'Experimental Mode' when specific conditions are met."), "../frogpilot/assets/toggle_icons/icon_conditional.png"}, - {"CESpeed", tr("Below"), tr("'Experimental Mode' is active when driving below the set speed without a lead vehicle."), ""}, - {"CECurves", tr("Curve Detected Ahead"), tr("'Experimental Mode' is active when a curve is detected in the road ahead."), ""}, - {"CELead", tr("Lead Detected Ahead"), tr("'Experimental Mode' is active when a slower or stopped vehicle is detected ahead."), ""}, - {"CENavigation", tr("Navigation Data"), tr("'Experimental Mode' is active based on navigation data, such as upcoming intersections or turns."), ""}, - {"CEModelStopTime", tr("openpilot Wants to Stop In"), tr("'Experimental Mode' is active when openpilot wants to stop such as for a stop sign or red light."), ""}, - {"CESignalSpeed", tr("Turn Signal Below"), tr("'Experimental Mode' is active when using turn signals below the set speed."), ""}, - {"HideCEMStatusBar", tr("Hide the Status Bar"), tr("The status bar for 'Conditional Experimental Mode' is hidden."), ""}, + {"ConditionalExperimental", tr("Conditional Experimental Mode"), tr("Automatically switch to 'Experimental Mode' when specific conditions are met."), "../frogpilot/assets/toggle_icons/icon_conditional.png"}, + {"CESpeed", tr("Below"), tr("Triggers 'Experimental Mode' when driving below the set speed without a lead vehicle."), ""}, + {"CECurves", tr("Curve Detected Ahead"), tr("Triggers 'Experimental Mode' when a curve is detected in the road ahead."), ""}, + {"CELead", tr("Lead Detected Ahead"), tr("Triggers 'Experimental Mode' when a slower or stopped vehicle is detected ahead."), ""}, + {"CENavigation", tr("Navigation Data"), tr("Triggers 'Experimental Mode' based on navigation data, such as upcoming intersections or turns."), ""}, + {"CEModelStopTime", tr("openpilot Wants to Stop In"), tr("Triggers 'Experimental Mode' when openpilot wants to stop such as for a stop sign or red light."), ""}, + {"CESignalSpeed", tr("Turn Signal Below"), tr("Triggers 'Experimental Mode' when using turn signals below the set speed."), ""}, + {"HideCEMStatusBar", tr("Hide the Status Bar"), tr("Hides status bar for 'Conditional Experimental Mode'."), ""}, {"CurveSpeedControl", tr("Curve Speed Control"), tr("Automatically slow down for curves detected ahead or through the downloaded maps."), "../frogpilot/assets/toggle_icons/icon_speed_map.png"}, - {"CurveDetectionMethod", tr("Curve Detection Method"), tr("The method used to detect curves."), ""}, - {"MTSCCurvatureCheck", tr("Curve Detection Failsafe"), tr("Curve control is triggered only when a curve is detected ahead. Use this as a failsafe to prevent false positives when using the 'Map Based' method."), ""}, - {"CurveSensitivity", tr("Curve Sensitivity"), tr("How sensitive openpilot is to detecting curves. Higher values trigger earlier responses at the risk of triggering too often, while lower values increase confidence at the risk of triggering too infrequently."), ""}, - {"TurnAggressiveness", tr("Turn Speed Aggressiveness"), tr("How aggressive openpilot takes turns. Higher values result in quicker turns, while lower values provide gentler turns."), ""}, + {"CurveDetectionMethod", tr("Curve Detection Method"), tr("Uses data from either the downloaded maps or the model to determine where curves are."), ""}, + {"MTSCCurvatureCheck", tr("Curve Detection Failsafe"), tr("Triggers 'Curve Speed Control' only when a curve is detected with the model as well when using the 'Map Based' method."), ""}, + {"CurveSensitivity", tr("Curve Detection Sensitivity"), tr("Controls how sensitive openpilot is to detecting curves. Higher values trigger earlier responses at the risk of triggering too often, while lower values increase confidence at the risk of triggering too infrequently."), ""}, + {"TurnAggressiveness", tr("Speed Aggressiveness"), tr("Controls how aggressive openpilot takes turns. Higher values result in faster turns, while lower values result in slower turns."), ""}, {"DisableCurveSpeedSmoothing", tr("Disable Speed Value Smoothing In the UI"), tr("Speed value smoothing is disabled in the UI to instead display the exact speed requested by the curve control."), ""}, - {"ExperimentalModeActivation", tr("Experimental Mode Activation"), tr("'Experimental Mode' is toggled off/on using the steering wheel buttons or the on-screen controls.\n\nThis overrides 'Conditional Experimental Mode'."), "../assets/img_experimental_white.svg"}, - {"ExperimentalModeViaLKAS", tr("Click the LKAS Button"), tr("'Experimental Mode' is toggled by pressing the 'LKAS' button on the steering wheel."), ""}, - {"ExperimentalModeViaTap", tr("Double-Tap the Screen"), tr("'Experimental Mode' is toggled by double-tapping the onroad UI within 0.5 seconds."), ""}, - {"ExperimentalModeViaDistance", tr("Long Press the Distance Button"), tr("'Experimental Mode' is toggled by holding the 'distance' button on the steering wheel for 0.5+ seconds."), ""}, + {"CustomPersonalities", tr("Customize Driving Personalities"), tr("Customize the personality profiles to suit your driving style."), "../frogpilot/assets/toggle_icons/icon_personality.png"}, + {"TrafficPersonalityProfile", tr("Traffic Personality"), tr("Customizes the 'Traffic' personality profile, tailored for navigating through traffic."), "../frogpilot/assets/stock_theme/distance_icons/traffic.png"}, + {"TrafficFollow", tr("Following Distance"), tr("Controls the minimum following distance in 'Traffic' mode. openpilot will automatically dynamically between this value and the 'Aggressive' profile distance based on your current speed."), ""}, + {"TrafficJerkAcceleration", tr("Acceleration Sensitivity"), tr("Controls how sensitive openpilot is to changes in acceleration in 'Traffic' mode. Higher values result in smoother, more gradual acceleration, while lower values allow for quicker, more responsive changes that may feel abrupt."), ""}, + {"TrafficJerkDeceleration", tr("Deceleration Sensitivity"), tr("Controls how sensitive openpilot is to changes in deceleration in 'Traffic' mode. Higher values result in smoother, more gradual deceleration, while lower values allow for quicker, more responsive changes that may feel abrupt."), ""}, + {"TrafficJerkDanger", tr("Safety Distance Sensitivity"), tr("Adjusts how cautious openpilot is around other vehicles or obstacles in 'Traffic' mode. Higher values increase following distances and prioritize safety, leading to more cautious driving, while lower values allow for closer following but may reduce reaction time."), ""}, + {"TrafficJerkSpeed", tr("Speed Increase Responsiveness"), tr("Controls how quickly openpilot increases speed in 'Traffic' mode. Higher values ensure smoother, more gradual speed changes when accelerating, while lower values allow for quicker, more responsive changes that may feel abrupt."), ""}, + {"TrafficJerkSpeedDecrease", tr("Speed Decrease Responsiveness"), tr("Sets how quickly openpilot adjusts to decreasing speeds in 'Traffic' mode. Higher values ensure smoother, more gradual speed changes when slowing down, while lower values allow for quicker, more responsive changes that may feel abrupt."), ""}, + {"ResetTrafficPersonality", tr("Reset Settings"), tr("Restores the 'Traffic Mode' settings to their default values."), ""}, + + {"AggressivePersonalityProfile", tr("Aggressive Personality"), tr("Customize the 'Aggressive' personality profile, designed for a more assertive driving style."), "../frogpilot/assets/stock_theme/distance_icons/aggressive.png"}, + {"AggressiveFollow", tr("Following Distance"), tr("Sets the following distance for 'Aggressive' mode. This determines roughly how many seconds you'll follow behind the car ahead.\n\nDefault: 1.25 seconds."), ""}, + {"AggressiveJerkAcceleration", tr("Acceleration Sensitivity"), tr("Controls how sensitive openpilot is to changes in acceleration in 'Aggressive' mode. Higher values result in smoother, more gradual acceleration, while lower values allow for quicker, more responsive changes that may feel abrupt.\n\nDefault: 0.5."), ""}, + {"AggressiveJerkDeceleration", tr("Deceleration Sensitivity"), tr("Controls how sensitive openpilot is to changes in deceleration in 'Aggressive' mode. Higher values result in smoother, more gradual deceleration, while lower values allow for quicker, more responsive changes that may feel abrupt.\n\nDefault: 0.5."), ""}, + {"AggressiveJerkDanger", tr("Safety Distance Sensitivity"), tr("Adjusts how cautious openpilot is around other vehicles or obstacles in 'Aggressive' mode. Higher values increase following distances and prioritize safety, leading to more cautious driving, while lower values allow for closer following but may reduce reaction time.\n\nDefault: 1.0."), ""}, + {"AggressiveJerkSpeed", tr("Speed Increase Responsiveness"), tr("Controls how quickly openpilot increases speed in 'Aggressive' mode. Higher values ensure smoother, more gradual speed changes when accelerating, while lower values allow for quicker, more responsive changes that may feel abrupt.\n\nDefault: 0.5."), ""}, + {"AggressiveJerkSpeedDecrease", tr("Speed Decrease Responsiveness"), tr("Sets how quickly openpilot adjusts to decreasing speeds in 'Aggressive' mode. Higher values ensure smoother, more gradual speed changes when slowing down, while lower values allow for quicker, more responsive changes that may feel abrupt.\n\nDefault: 0.5."), ""}, + {"ResetAggressivePersonality", tr("Reset Settings"), tr("Restores the 'Aggressive' settings to their default values."), ""}, + + {"StandardPersonalityProfile", tr("Standard Personality"), tr("Customize the 'Standard' personality profile, optimized for balanced driving."), "../frogpilot/assets/stock_theme/distance_icons/standard.png"}, + {"StandardFollow", tr("Following Distance"), tr("Set the following distance for 'Standard' mode. This determines roughly how many seconds you'll follow behind the car ahead.\n\nDefault: 1.45 seconds."), ""}, + {"StandardJerkAcceleration", tr("Acceleration Sensitivity"), tr("Controls how sensitive openpilot is to changes in acceleration in 'Standard' mode. Higher values result in smoother, more gradual acceleration, while lower values allow for quicker, more responsive changes that may feel abrupt.\n\nDefault: 1.0."), ""}, + {"StandardJerkDeceleration", tr("Deceleration Sensitivity"), tr("Controls how sensitive openpilot is to changes in deceleration in 'Standard' mode. Higher values result in smoother braking, while lower values allow for quicker, more immediate braking that may feel abrupt.\n\nDefault: 1.0."), ""}, + {"StandardJerkDanger", tr("Safety Distance Sensitivity"), tr("Adjusts how cautious openpilot is around other vehicles or obstacles in 'Standard' mode. Higher values increase following distances and prioritize safety, leading to more cautious driving, while lower values allow for closer following but may reduce reaction time.\n\nDefault: 1.0."), ""}, + {"StandardJerkSpeed", tr("Speed Increase Responsiveness"), tr("Controls how quickly openpilot increases speed in 'Standard' mode. Higher values ensure smoother, more gradual speed changes when accelerating, while lower values allow for quicker, more responsive changes that may feel abrupt.\n\nDefault: 1.0."), ""}, + {"StandardJerkSpeedDecrease", tr("Speed Decrease Responsiveness"), tr("Sets how quickly openpilot adjusts to decreasing speeds in 'Standard' mode. Higher values ensure smoother, more gradual speed changes when slowing down, while lower values allow for quicker, more responsive changes that may feel abrupt.\n\nDefault: 1.0."), ""}, + {"ResetStandardPersonality", tr("Reset Settings"), tr("Restores the 'Standard' settings to their default values."), ""}, + + {"RelaxedPersonalityProfile", tr("Relaxed Personality"), tr("Customize the 'Relaxed' personality profile, ideal for a more laid-back driving style."), "../frogpilot/assets/stock_theme/distance_icons/relaxed.png"}, + {"RelaxedFollow", tr("Following Distance"), tr("Set the following distance for 'Relaxed' mode. This determines roughly how many seconds you'll follow behind the car ahead.\n\nDefault: 1.75 seconds."), ""}, + {"RelaxedJerkAcceleration", tr("Acceleration Sensitivity"), tr("Controls how sensitive openpilot is to changes in acceleration in 'Relaxed' mode. Higher values result in smoother, more gradual acceleration, while lower values allow for quicker, more responsive changes that may feel abrupt.\n\nDefault: 1.0."), ""}, + {"RelaxedJerkDeceleration", tr("Deceleration Sensitivity"), tr("Controls how sensitive openpilot is to changes in deceleration in 'Relaxed' mode. Higher values result in smoother braking, while lower values allow for quicker, more immediate braking that may feel abrupt.\n\nDefault: 1.0."), ""}, + {"RelaxedJerkDanger", tr("Safety Distance Sensitivity"), tr("Adjusts how cautious openpilot is around other vehicles or obstacles in 'Relaxed' mode. Higher values increase following distances and prioritize safety, leading to more cautious driving, while lower values allow for closer following but may reduce reaction time.\n\nDefault: 1.0."), ""}, + {"RelaxedJerkSpeed", tr("Speed Increase Responsiveness"), tr("Controls how quickly openpilot increases speed in 'Relaxed' mode. Higher values ensure smoother, more gradual speed changes when accelerating, while lower values allow for quicker, more responsive changes that may feel abrupt.\n\nDefault: 1.0."), ""}, + {"RelaxedJerkSpeedDecrease", tr("Speed Decrease Responsiveness"), tr("Sets how quickly openpilot adjusts to decreasing speeds in 'Relaxed' mode. Higher values ensure smoother, more gradual speed changes when slowing down, while lower values allow for quicker, more responsive changes that may feel abrupt.\n\nDefault: 1.0."), ""}, + {"ResetRelaxedPersonality", tr("Reset Settings"), tr("Restores the 'Relaxed' settings to their default values."), ""}, + + {"ExperimentalModeActivation", tr("Experimental Mode Activation"), tr("Toggle 'Experimental Mode' on/off using either the steering wheel buttons or screen.\n\nThis overrides 'Conditional Experimental Mode'."), "../assets/img_experimental_white.svg"}, + {"ExperimentalModeViaLKAS", tr("Click the LKAS Button"), tr("Toggles 'Experimental Mode' by pressing the 'LKAS' button on the steering wheel."), ""}, + {"ExperimentalModeViaTap", tr("Double-Tap the Screen"), tr("Toggles 'Experimental Mode' by double-tapping the onroad UI within a 0.5 second period."), ""}, + {"ExperimentalModeViaDistance", tr("Long Press the Distance Button"), tr("Toggles 'Experimental Mode' by holding down the 'distance' button on the steering wheel for 0.5 seconds."), ""}, {"LongitudinalTune", tr("Longitudinal Tuning"), tr("Settings that control how openpilot manages speed and acceleration."), "../frogpilot/assets/toggle_icons/icon_longitudinal_tune.png"}, - {"AccelerationProfile", tr("Acceleration Profile"), tr("Choose between a sporty or eco-friendly acceleration rate."), ""}, - {"DecelerationProfile", tr("Deceleration Profile"), tr("Choose between a sporty or eco-friendly deceleration rate."), ""}, - {"HumanAcceleration", tr("Human-Like Acceleration"), tr("Uses the lead's acceleration rate when at a takeoff and ramps off the acceleration rate when approaching the maximum set speed for a smoother max speed approach."), ""}, - {"HumanFollowing", tr("Human-Like Following Distance"), tr("Dynamically adjusts the following distance to feel more natural when approaching slower or stopped vehicles."), ""}, + {"AccelerationProfile", tr("Acceleration Profile"), tr("Enables either a sporty or eco-friendly acceleration rate. 'Sport+' aims to make openpilot accelerate as fast as possible."), ""}, + {"DecelerationProfile", tr("Deceleration Profile"), tr("Enables either a sporty or eco-friendly deceleration rate."), ""}, + {"HumanAcceleration", tr("Human-Like Acceleration"), tr("Uses the lead's acceleration rate when at a takeoff and ramps off the acceleration rate when approaching the maximum set speed for a more 'human-like' driving experience."), ""}, + {"HumanFollowing", tr("Human-Like Following Distance"), tr("Dynamically adjusts the following distance when approaching slower or stopped vehicles for a more 'human-like' driving experience."), ""}, {"IncreasedStoppedDistance", tr("Increase Stopped Distance"), tr("Increases the distance to stop behind vehicles."), ""}, + {"LeadDetectionThreshold", tr("Lead Detection Confidence"), tr("Controls how sensitive openpilot is to detecting vehicles ahead. A lower value can help detect vehicles sooner and from farther away, but increases the chance openpilot mistakes other objects for vehicles."), ""}, + {"MaxDesiredAcceleration", tr("Maximum Acceleration Rate"), tr("Sets a cap on how fast openpilot can accelerate."), ""}, {"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("Interval used when increasing the cruise control speed."), ""}, - {"CustomCruiseLong", tr("Custom Cruise Interval (Long Press)"), tr("Interval used when increasing the cruise control speed when holding down the button for 0.5+ seconds."), ""}, - {"MapGears", tr("Map Accel/Decel to Gears"), tr("Map the acceleration and deceleration profiles to the 'Eco' or 'Sport' gear modes."), ""}, - {"OnroadDistanceButton", tr("Onroad Personality Button"), tr("The current driving personality is displayed on the screen. Tap to switch personalities, or long press for 2.5 seconds to activate 'Traffic Mode'."), ""}, - {"ReverseCruise", tr("Reverse Cruise Increase"), tr("The long press feature is reversed in order to increase speed by 5 mph instead of 1."), ""}, + {"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."), ""}, + {"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."), ""}, + {"SetSpeedOffset", tr("Set Speed Offset"), tr("Controls how much higher or lower the set speed should be compared to your current set speed. For example, if you prefer to drive 5 mph above the speed limit, this setting will automatically add that difference when you adjust your set speed."), ""}, + {"MapGears", tr("Map Accel/Decel to Gears"), tr("Maps the acceleration and deceleration profiles to your car's 'Eco' or 'Sport' gear modes."), ""}, + {"ReverseCruise", tr("Reverse Cruise Increase"), tr("Reverses the long press cruise increase feature to increase the max speed by 5 mph instead of 1 on short presses."), ""}, - {"SpeedLimitController", tr("Speed Limit Controller"), tr("Automatically adjust your max speed to match the speed limit using 'Open Street Maps', 'Navigate on openpilot', or your car's dashboard (Toyota/Lexus/HKG only)."), "../assets/offroad/icon_speed_limit.png"}, - {"SLCConfirmation", tr("Confirm New Speed Limits"), tr("Require manual confirmation before using a new speed limit."), ""}, - {"SLCFallback", tr("Fallback Method"), tr("Choose what happens when no speed limit data is available."), ""}, - {"SLCOverride", tr("Override Method"), tr("Choose how you want to override the current speed limit.\n\n"), ""}, - {"SLCPriority", tr("Speed Limit Source Priority"), tr("Set the order of priority for speed limit data sources."), ""}, - {"SLCOffsets", tr("Speed Limit Offsets"), tr("Manage toggles related to 'Speed Limit Controller's controls."), ""}, - {"Offset1", tr("Speed Limit Offset (0-34 mph)"), tr("Set the speed limit offset for speeds between 0 and 34 mph."), ""}, - {"Offset2", tr("Speed Limit Offset (35-54 mph)"), tr("Set the speed limit offset for speeds between 35 and 54 mph."), ""}, - {"Offset3", tr("Speed Limit Offset (55-64 mph)"), tr("Set the speed limit offset for speeds between 55 and 64 mph."), ""}, - {"Offset4", tr("Speed Limit Offset (65-99 mph)"), tr("Set the speed limit offset for speeds between 65 and 99 mph."), ""}, + {"SpeedLimitController", tr("Speed Limit Controller"), tr("Automatically adjust your max speed to match the speed limit using downloaded 'Open Street Maps' data, 'Navigate on openpilot', or your car's dashboard (Toyota/Lexus/HKG only)."), "../assets/offroad/icon_speed_limit.png"}, + {"SLCConfirmation", tr("Confirm New Speed Limits"), tr("Enables manual confirmations before using a new speed limit."), ""}, + {"SLCFallback", tr("Fallback Method"), tr("Controls what happens when no speed limit data is available."), ""}, + {"SLCOverride", tr("Override Method"), tr("Controls how the current speed limit is overriden.\n\n"), ""}, {"SLCQOL", tr("Quality of Life Improvements"), tr("Miscellaneous 'Speed Limit Controller' focused features to improve your overall openpilot experience."), ""}, - {"ForceMPHDashboard", tr("Force MPH Readings from Dashboard"), tr("Force speed limit readings in MPH from the dashboard if it normally displays in KPH."), ""}, - {"SLCLookaheadHigher", tr("Prepare for Higher Speed Limits"), tr("Set a lookahead value to prepare for upcoming higher speed limits based on map data."), ""}, - {"SLCLookaheadLower", tr("Prepare for Lower Speed Limits"), tr("Set a lookahead value to prepare for upcoming lower speed limits based on map data."), ""}, - {"SetSpeedLimit", tr("Set Speed to Current Limit"), tr("Set your max speed to match the current speed limit when enabling openpilot."), ""}, - {"SLCVisuals", tr("Visual Settings"), tr("Manage visual settings for the 'Speed Limit Controller'."), ""}, - {"UseVienna", tr("Use Vienna-Style Speed Signs"), tr("Switch to Vienna-style (EU) speed limit signs instead of MUTCD (US)."), ""}, - {"ShowSLCOffset", tr("Show Speed Limit Offset"), tr("Display the speed limit offset separately in the onroad UI when using the Speed Limit Controller."), ""}, + {"ForceMPHDashboard", tr("Force MPH Readings from Dashboard"), tr("Forces speed limit readings from the dashboard to MPH if it normally displays them in KPH."), ""}, + {"SLCLookaheadHigher", tr("Prepare for Higher Speed Limits"), tr("Sets a lookahead value to prepare for upcoming higher speed limits when using downloaded map data."), ""}, + {"SLCLookaheadLower", tr("Prepare for Lower Speed Limits"), tr("Sets a lookahead value to prepare for upcoming lower speed limits when using downloaded map data."), ""}, + {"SetSpeedLimit", tr("Set Speed to Current Limit"), tr("Sets your max speed to match the current speed limit when enabling openpilot."), ""}, + {"SLCPriority", tr("Speed Limit Source Priority"), tr("Sets the order of priority for speed limit data sources."), ""}, + {"SLCOffsets", tr("Speed Limit Offsets"), tr("Set speed limit offsets to drive over the posted speed limit."), ""}, + {"Offset1", tr("Speed Limit Offset (0-34 mph)"), tr("Sets the speed limit offset for speeds between 0 and 34 mph."), ""}, + {"Offset2", tr("Speed Limit Offset (35-54 mph)"), tr("Sets the speed limit offset for speeds between 35 and 54 mph."), ""}, + {"Offset3", tr("Speed Limit Offset (55-64 mph)"), tr("Sets the speed limit offset for speeds between 55 and 64 mph."), ""}, + {"Offset4", tr("Speed Limit Offset (65-99 mph)"), tr("Sets the speed limit offset for speeds between 65 and 99 mph."), ""}, }; for (const auto &[param, title, desc, icon] : longitudinalToggles) { AbstractControl *longitudinalToggle; - if (param == "ConditionalExperimental") { + if (param == "CustomPersonalities") { + FrogPilotParamManageControl *customPersonalitiesToggle = new FrogPilotParamManageControl(param, title, desc, icon); + QObject::connect(customPersonalitiesToggle, &FrogPilotParamManageControl::manageButtonClicked, [this]() { + showToggles(customDrivingPersonalityKeys); + }); + longitudinalToggle = customPersonalitiesToggle; + } else if (param == "ResetTrafficPersonality" || param == "ResetAggressivePersonality" || param == "ResetStandardPersonality" || param == "ResetRelaxedPersonality") { + FrogPilotButtonsControl *profileBtn = new FrogPilotButtonsControl(title, desc, {tr("Reset")}); + longitudinalToggle = profileBtn; + } else if (param == "TrafficPersonalityProfile") { + FrogPilotParamManageControl *trafficPersonalityToggle = new FrogPilotParamManageControl(param, title, desc, icon); + QObject::connect(trafficPersonalityToggle, &FrogPilotParamManageControl::manageButtonClicked, [this]() { + customPersonalityOpen = true; + openSubParentToggle(); + showToggles(trafficPersonalityKeys); + }); + longitudinalToggle = trafficPersonalityToggle; + } else if (param == "AggressivePersonalityProfile") { + FrogPilotParamManageControl *aggressivePersonalityToggle = new FrogPilotParamManageControl(param, title, desc, icon); + QObject::connect(aggressivePersonalityToggle, &FrogPilotParamManageControl::manageButtonClicked, [this]() { + customPersonalityOpen = true; + openSubParentToggle(); + showToggles(aggressivePersonalityKeys); + }); + longitudinalToggle = aggressivePersonalityToggle; + } else if (param == "StandardPersonalityProfile") { + FrogPilotParamManageControl *standardPersonalityToggle = new FrogPilotParamManageControl(param, title, desc, icon); + QObject::connect(standardPersonalityToggle, &FrogPilotParamManageControl::manageButtonClicked, [this]() { + customPersonalityOpen = true; + openSubParentToggle(); + showToggles(standardPersonalityKeys); + }); + longitudinalToggle = standardPersonalityToggle; + } else if (param == "RelaxedPersonalityProfile") { + FrogPilotParamManageControl *relaxedPersonalityToggle = new FrogPilotParamManageControl(param, title, desc, icon); + QObject::connect(relaxedPersonalityToggle, &FrogPilotParamManageControl::manageButtonClicked, [this]() { + customPersonalityOpen = true; + openSubParentToggle(); + showToggles(relaxedPersonalityKeys); + }); + longitudinalToggle = relaxedPersonalityToggle; + } else if (trafficPersonalityKeys.find(param) != trafficPersonalityKeys.end() || + aggressivePersonalityKeys.find(param) != aggressivePersonalityKeys.end() || + standardPersonalityKeys.find(param) != standardPersonalityKeys.end() || + relaxedPersonalityKeys.find(param) != relaxedPersonalityKeys.end()) { + if (param == "TrafficFollow" || param == "AggressiveFollow" || param == "StandardFollow" || param == "RelaxedFollow") { + if (param == "TrafficFollow") { + longitudinalToggle = new FrogPilotParamValueControl(param, title, desc, icon, 0.5, 5, tr(" seconds"), std::map(), 0.01); + } else { + longitudinalToggle = new FrogPilotParamValueControl(param, title, desc, icon, 1, 5, tr(" seconds"), std::map(), 0.01); + } + } else { + longitudinalToggle = new FrogPilotParamValueControl(param, title, desc, icon, 1, 500, "%"); + } + + } else if (param == "ConditionalExperimental") { FrogPilotParamManageControl *conditionalExperimentalToggle = new FrogPilotParamManageControl(param, title, desc, icon); QObject::connect(conditionalExperimentalToggle, &FrogPilotParamManageControl::manageButtonClicked, [this]() { - showToggles(conditionalExperimentalKeys); + std::set modifiedConditionalExperimentalKeys = conditionalExperimentalKeys; + + if (customizationLevel != 2) { + modifiedConditionalExperimentalKeys.erase("CENavigation"); + modifiedConditionalExperimentalKeys.erase("CESignalSpeed"); + modifiedConditionalExperimentalKeys.erase("HideCEMStatusBar"); + } + + showToggles(modifiedConditionalExperimentalKeys); }); longitudinalToggle = conditionalExperimentalToggle; } else if (param == "CESpeed") { @@ -84,15 +185,11 @@ FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow * std::vector navigationToggleNames{tr("Intersections"), tr("Turns"), tr("With Lead")}; longitudinalToggle = new FrogPilotButtonToggleControl(param, title, desc, navigationToggles, navigationToggleNames); } else if (param == "CEModelStopTime") { - std::map modelStopTimeLabels; - for (int i = 0; i <= 10; ++i) { - modelStopTimeLabels[i] = (i == 0) ? tr("Off") : QString::number(i) + " seconds"; - } - longitudinalToggle = new FrogPilotParamValueControl(param, title, desc, icon, 0, 10, QString(), modelStopTimeLabels); + longitudinalToggle = new FrogPilotParamValueControl(param, title, desc, icon, 0, 10, tr(" seconds"), {{0, "Off"}}); } else if (param == "CESignalSpeed") { std::vector ceSignalToggles{"CESignalLaneDetection"}; - std::vector ceSignalToggleNames{"Lane Detection"}; - longitudinalToggle = new FrogPilotParamValueButtonControl(param, title, desc, icon, 0, 99, tr("mph"), std::map(), 1.0, ceSignalToggles, ceSignalToggleNames); + std::vector ceSignalToggleNames{"Only For Detected Lanes"}; + longitudinalToggle = new FrogPilotParamValueButtonControl(param, title, desc, icon, 0, 99, tr("mph"), std::map(), 1.0, ceSignalToggles, ceSignalToggleNames, true); } else if (param == "CurveSpeedControl") { FrogPilotParamManageControl *curveControlToggle = new FrogPilotParamManageControl(param, title, desc, icon); @@ -107,6 +204,12 @@ FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow * modifiedCurveSpeedKeys.erase("MTSCCurvatureCheck"); } + if (customizationLevel != 2) { + modifiedCurveSpeedKeys.erase("CurveSensitivity"); + modifiedCurveSpeedKeys.erase("MTSCCurvatureCheck"); + modifiedCurveSpeedKeys.erase("TurnAggressiveness"); + } + showToggles(modifiedCurveSpeedKeys); }); longitudinalToggle = curveControlToggle; @@ -162,19 +265,38 @@ FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow * } else if (param == "LongitudinalTune") { FrogPilotParamManageControl *longitudinalTuneToggle = new FrogPilotParamManageControl(param, title, desc, icon); QObject::connect(longitudinalTuneToggle, &FrogPilotParamManageControl::manageButtonClicked, [this]() { - showToggles(longitudinalTuneKeys); + std::set modifiedLongitudinalTuneKeys = longitudinalTuneKeys; + + if (customizationLevel == 0) { + modifiedLongitudinalTuneKeys.erase("HumanAcceleration"); + modifiedLongitudinalTuneKeys.erase("HumanFollowing"); + modifiedLongitudinalTuneKeys.erase("IncreasedStoppedDistance"); + modifiedLongitudinalTuneKeys.erase("LeadDetectionThreshold"); + modifiedLongitudinalTuneKeys.erase("MaxDesiredAcceleration"); + } else if (customizationLevel == 1) { + modifiedLongitudinalTuneKeys.erase("HumanAcceleration"); + modifiedLongitudinalTuneKeys.erase("HumanFollowing"); + modifiedLongitudinalTuneKeys.erase("LeadDetectionThreshold"); + modifiedLongitudinalTuneKeys.erase("MaxDesiredAcceleration"); + } + + showToggles(modifiedLongitudinalTuneKeys); }); longitudinalToggle = longitudinalTuneToggle; } else if (param == "AccelerationProfile") { - std::vector profileOptions{tr("Standard"), tr("Eco"), tr("Sport"), tr("Sport+")}; - ButtonParamControl *profileSelection = new ButtonParamControl(param, title, desc, icon, profileOptions); - longitudinalToggle = profileSelection; + std::vector accelerationProfiles{tr("Standard"), tr("Eco"), tr("Sport"), tr("Sport+")}; + ButtonParamControl *accelerationProfileToggle = new ButtonParamControl(param, title, desc, icon, accelerationProfiles); + longitudinalToggle = accelerationProfileToggle; } else if (param == "DecelerationProfile") { - std::vector profileOptions{tr("Standard"), tr("Eco"), tr("Sport")}; - ButtonParamControl *profileSelection = new ButtonParamControl(param, title, desc, icon, profileOptions); - longitudinalToggle = profileSelection; + std::vector decelerationProfiles{tr("Standard"), tr("Eco"), tr("Sport")}; + ButtonParamControl *decelerationProfileToggle = new ButtonParamControl(param, title, desc, icon, decelerationProfiles); + longitudinalToggle = decelerationProfileToggle; } else if (param == "IncreasedStoppedDistance") { - longitudinalToggle = new FrogPilotParamValueControl(param, title, desc, icon, 0, 15, tr(" feet")); + longitudinalToggle = new FrogPilotParamValueControl(param, title, desc, icon, 0, 10, tr(" feet")); + } else if (param == "LeadDetectionThreshold") { + longitudinalToggle = new FrogPilotParamValueControl(param, title, desc, icon, 1, 99, "%"); + } else if (param == "MaxDesiredAcceleration") { + longitudinalToggle = new FrogPilotParamValueControl(param, title, desc, icon, 0.1, 4.0, "m/s", std::map(), 0.1); } else if (param == "QOLLongitudinal") { FrogPilotParamManageControl *qolLongitudinalToggle = new FrogPilotParamManageControl(param, title, desc, icon); @@ -186,12 +308,20 @@ FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow * } else { modifiedQolKeys.erase("CustomCruise"); modifiedQolKeys.erase("CustomCruiseLong"); + modifiedQolKeys.erase("SetSpeedOffset"); } - if (!isToyota && !isGM && !isHKGCanFd) { + if (!(isGM || isHKGCanFd || isToyota)) { modifiedQolKeys.erase("MapGears"); } + if (customizationLevel != 2) { + modifiedQolKeys.erase("ForceStandstill"); + modifiedQolKeys.erase("ForceStops"); + modifiedQolKeys.erase("ReverseCruise"); + modifiedQolKeys.erase("SetSpeedOffset"); + } + showToggles(modifiedQolKeys); }); longitudinalToggle = qolLongitudinalToggle; @@ -203,58 +333,39 @@ FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow * std::vector mapGearsToggles{"MapAcceleration", "MapDeceleration"}; std::vector mapGearsToggleNames{tr("Acceleration"), tr("Deceleration")}; longitudinalToggle = new FrogPilotButtonToggleControl(param, title, desc, mapGearsToggles, mapGearsToggleNames); + } else if (param == "SetSpeedOffset") { + longitudinalToggle = new FrogPilotParamValueControl(param, title, desc, icon, 0, 99, tr("mph")); } else if (param == "SpeedLimitController") { FrogPilotParamManageControl *speedLimitControllerToggle = new FrogPilotParamManageControl(param, title, desc, icon); QObject::connect(speedLimitControllerToggle, &FrogPilotParamManageControl::manageButtonClicked, [this]() { - bool slcLower = params.getBool("SLCConfirmationLower"); - bool slcHigher = params.getBool("SLCConfirmationHigher"); + std::set modifiedSpeedLimitControllerKeys = speedLimitControllerKeys; - slcConfirmationBtn->setCheckedButton(0, slcLower); - slcConfirmationBtn->setCheckedButton(1, slcHigher); - slcConfirmationBtn->setCheckedButton(2, !(slcLower || slcHigher)); + if (customizationLevel == 0) { + modifiedSpeedLimitControllerKeys.erase("SLCFallback"); + modifiedSpeedLimitControllerKeys.erase("SLCOverride"); + modifiedSpeedLimitControllerKeys.erase("SLCPriority"); + modifiedSpeedLimitControllerKeys.erase("SLCQOL"); + } else if (customizationLevel != 2) { + modifiedSpeedLimitControllerKeys.erase("SLCPriority"); + modifiedSpeedLimitControllerKeys.erase("SLCQOL"); + } + + showToggles(modifiedSpeedLimitControllerKeys); slcOpen = true; - showToggles(speedLimitControllerKeys); }); longitudinalToggle = speedLimitControllerToggle; } else if (param == "SLCConfirmation") { - slcConfirmationBtn = new FrogPilotButtonsControl(title, desc, {tr("Lower Limits"), tr("Higher Limits"), tr("None")}, true, false); - QObject::connect(slcConfirmationBtn, &FrogPilotButtonsControl::buttonClicked, [=](int id) { - bool lowerEnabled = params.getBool("SLCConfirmationLower"); - bool higherEnabled = params.getBool("SLCConfirmationHigher"); - - if (id == 0) { - params.putBool("SLCConfirmationLower", !lowerEnabled); - slcConfirmationBtn->setCheckedButton(0, !lowerEnabled); - slcConfirmationBtn->setCheckedButton(2, false); - - if (lowerEnabled & !higherEnabled) { - slcConfirmationBtn->setCheckedButton(2, true); - } - } else if (id == 1) { - params.putBool("SLCConfirmationHigher", !higherEnabled); - slcConfirmationBtn->setCheckedButton(1, !higherEnabled); - slcConfirmationBtn->setCheckedButton(2, false); - - if (higherEnabled & !lowerEnabled) { - slcConfirmationBtn->setCheckedButton(2, true); - } - } else { - params.putBool("SLCConfirmationLower", false); - params.putBool("SLCConfirmationHigher", false); - slcConfirmationBtn->setCheckedButton(0, false); - slcConfirmationBtn->setCheckedButton(1, false); - slcConfirmationBtn->setCheckedButton(2, true); - } - }); - longitudinalToggle = slcConfirmationBtn; + std::vector confirmationToggles{"SLCConfirmationLower", "SLCConfirmationHigher"}; + std::vector confirmationToggleNames{tr("Lower Limits"), tr("Higher Limits")}; + longitudinalToggle = new FrogPilotButtonToggleControl(param, title, desc, confirmationToggles, confirmationToggleNames); } else if (param == "SLCFallback") { std::vector fallbackOptions{tr("Set Speed"), tr("Experimental Mode"), tr("Previous Limit")}; ButtonParamControl *fallbackSelection = new ButtonParamControl(param, title, desc, icon, fallbackOptions); longitudinalToggle = fallbackSelection; } else if (param == "SLCOverride") { - std::vector overrideOptions{tr("None"), tr("Gas Pedal Press"), tr("Cruise Set Speed")}; + std::vector overrideOptions{tr("None"), tr("Set With Gas Pedal"), tr("Max Set Speed")}; ButtonParamControl *overrideSelection = new ButtonParamControl(param, title, desc, icon, overrideOptions); longitudinalToggle = overrideSelection; } else if (param == "SLCPriority") { @@ -269,7 +380,8 @@ FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow * for (int i = 1; i <= 3; ++i) { QStringList currentPriorities = (i == 1) ? primaryPriorities : secondaryTertiaryPriorities; QStringList prioritiesToDisplay = currentPriorities; - for (const auto &selectedPriority : qAsConst(selectedPriorities)) { + + for (QString selectedPriority : qAsConst(selectedPriorities)) { prioritiesToDisplay.removeAll(selectedPriority); } @@ -284,12 +396,24 @@ FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow * QString priorityKey = QString("SLCPriority%1").arg(i); QString selection = MultiOptionDialog::getSelection(priorityPrompts[i - 1], prioritiesToDisplay, "", this); - if (selection.isEmpty()) break; + if (selection.isEmpty()) { + break; + } params.putNonBlocking(priorityKey.toStdString(), selection.toStdString()); selectedPriorities.append(selection); - if (selection == tr("Lowest") || selection == tr("Highest") || selection == tr("None")) break; + if (selection == tr("None")) { + for (int j = i + 1; j <= 3; ++j) { + QString priorityKeyNext = QString("SLCPriority%1").arg(j); + params.putNonBlocking(priorityKeyNext.toStdString(), "None"); + } + break; + } + + if (selection == tr("Lowest") || selection == tr("Highest")) { + break; + } updateFrogPilotToggles(); } @@ -335,19 +459,8 @@ FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow * longitudinalToggle = reinterpret_cast(manageSLCQOLBtn); } else if (param == "SLCLookaheadHigher" || param == "SLCLookaheadLower") { longitudinalToggle = new FrogPilotParamValueControl(param, title, desc, icon, 0, 60, tr(" seconds")); - } else if (param == "SLCVisuals") { - ButtonControl *manageSLCVisualsBtn = new ButtonControl(title, tr("MANAGE"), desc); - QObject::connect(manageSLCVisualsBtn, &ButtonControl::clicked, [this]() { - openSubParentToggle(); - showToggles(speedLimitControllerVisualsKeys); - }); - longitudinalToggle = reinterpret_cast(manageSLCVisualsBtn); } else if (param == "Offset1" || param == "Offset2" || param == "Offset3" || param == "Offset4") { longitudinalToggle = new FrogPilotParamValueControl(param, title, desc, icon, -99, 99, tr("mph")); - } else if (param == "ShowSLCOffset") { - std::vector slcOffsetToggles{"ShowSLCOffsetUI"}; - std::vector slcOffsetToggleNames{tr("Control Via UI")}; - longitudinalToggle = new FrogPilotButtonToggleControl(param, title, desc, slcOffsetToggles, slcOffsetToggleNames); } else { longitudinalToggle = new ParamControl(param, title, desc, icon); @@ -373,6 +486,106 @@ FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow * } }); + FrogPilotParamValueControl *trafficFollowToggle = static_cast(toggles["TrafficFollow"]); + FrogPilotParamValueControl *trafficAccelerationToggle = static_cast(toggles["TrafficJerkAcceleration"]); + FrogPilotParamValueControl *trafficDecelerationToggle = static_cast(toggles["TrafficJerkDeceleration"]); + FrogPilotParamValueControl *trafficDangerToggle = static_cast(toggles["TrafficJerkDanger"]); + FrogPilotParamValueControl *trafficSpeedToggle = static_cast(toggles["TrafficJerkSpeed"]); + FrogPilotParamValueControl *trafficSpeedDecreaseToggle = static_cast(toggles["TrafficJerkSpeedDecrease"]); + FrogPilotButtonsControl *trafficResetButton = static_cast(toggles["ResetTrafficPersonality"]); + QObject::connect(trafficResetButton, &FrogPilotButtonsControl::buttonClicked, this, [=]() { + if (FrogPilotConfirmationDialog::yesorno(tr("Are you sure you want to completely reset your settings for 'Traffic Mode'?"), this)) { + params.putFloat("TrafficFollow", 0.5); + params.putFloat("TrafficJerkAcceleration", 50); + params.putFloat("TrafficJerkDeceleration", 50); + params.putFloat("TrafficJerkDanger", 100); + params.putFloat("TrafficJerkSpeed", 50); + params.putFloat("TrafficJerkSpeedDecrease", 50); + trafficFollowToggle->refresh(); + trafficAccelerationToggle->refresh(); + trafficDecelerationToggle->refresh(); + trafficDangerToggle->refresh(); + trafficSpeedToggle->refresh(); + trafficSpeedDecreaseToggle->refresh(); + updateFrogPilotToggles(); + } + }); + + FrogPilotParamValueControl *aggressiveFollowToggle = static_cast(toggles["AggressiveFollow"]); + FrogPilotParamValueControl *aggressiveAccelerationToggle = static_cast(toggles["AggressiveJerkAcceleration"]); + FrogPilotParamValueControl *aggressiveDecelerationToggle = static_cast(toggles["AggressiveJerkDeceleration"]); + FrogPilotParamValueControl *aggressiveDangerToggle = static_cast(toggles["AggressiveJerkDanger"]); + FrogPilotParamValueControl *aggressiveSpeedToggle = static_cast(toggles["AggressiveJerkSpeed"]); + FrogPilotParamValueControl *aggressiveSpeedDecreaseToggle = static_cast(toggles["AggressiveJerkSpeedDecrease"]); + FrogPilotButtonsControl *aggressiveResetButton = static_cast(toggles["ResetAggressivePersonality"]); + QObject::connect(aggressiveResetButton, &FrogPilotButtonsControl::buttonClicked, this, [=]() { + if (FrogPilotConfirmationDialog::yesorno(tr("Are you sure you want to completely reset your settings for the 'Aggressive' personality?"), this)) { + params.putFloat("AggressiveFollow", 1.25); + params.putFloat("AggressiveJerkAcceleration", 50); + params.putFloat("AggressiveJerkDeceleration", 50); + params.putFloat("AggressiveJerkDanger", 100); + params.putFloat("AggressiveJerkSpeed", 50); + params.putFloat("AggressiveJerkSpeedDecrease", 50); + aggressiveFollowToggle->refresh(); + aggressiveAccelerationToggle->refresh(); + aggressiveDecelerationToggle->refresh(); + aggressiveDangerToggle->refresh(); + aggressiveSpeedToggle->refresh(); + aggressiveSpeedDecreaseToggle->refresh(); + updateFrogPilotToggles(); + } + }); + + FrogPilotParamValueControl *standardFollowToggle = static_cast(toggles["StandardFollow"]); + FrogPilotParamValueControl *standardAccelerationToggle = static_cast(toggles["StandardJerkAcceleration"]); + FrogPilotParamValueControl *standardDecelerationToggle = static_cast(toggles["StandardJerkDeceleration"]); + FrogPilotParamValueControl *standardDangerToggle = static_cast(toggles["StandardJerkDanger"]); + FrogPilotParamValueControl *standardSpeedToggle = static_cast(toggles["StandardJerkSpeed"]); + FrogPilotParamValueControl *standardSpeedDecreaseToggle = static_cast(toggles["StandardJerkSpeedDecrease"]); + FrogPilotButtonsControl *standardResetButton = static_cast(toggles["ResetStandardPersonality"]); + QObject::connect(standardResetButton, &FrogPilotButtonsControl::buttonClicked, this, [=]() { + if (FrogPilotConfirmationDialog::yesorno(tr("Are you sure you want to completely reset your settings for the 'Standard' personality?"), this)) { + params.putFloat("StandardFollow", 1.45); + params.putFloat("StandardJerkAcceleration", 100); + params.putFloat("StandardJerkDeceleration", 100); + params.putFloat("StandardJerkDanger", 100); + params.putFloat("StandardJerkSpeed", 100); + params.putFloat("StandardJerkSpeedDecrease", 100); + standardFollowToggle->refresh(); + standardAccelerationToggle->refresh(); + standardDecelerationToggle->refresh(); + standardDangerToggle->refresh(); + standardSpeedToggle->refresh(); + standardSpeedDecreaseToggle->refresh(); + updateFrogPilotToggles(); + } + }); + + FrogPilotParamValueControl *relaxedFollowToggle = static_cast(toggles["RelaxedFollow"]); + FrogPilotParamValueControl *relaxedAccelerationToggle = static_cast(toggles["RelaxedJerkAcceleration"]); + FrogPilotParamValueControl *relaxedDecelerationToggle = static_cast(toggles["RelaxedJerkDeceleration"]); + FrogPilotParamValueControl *relaxedDangerToggle = static_cast(toggles["RelaxedJerkDanger"]); + FrogPilotParamValueControl *relaxedSpeedToggle = static_cast(toggles["RelaxedJerkSpeed"]); + FrogPilotParamValueControl *relaxedSpeedDecreaseToggle = static_cast(toggles["RelaxedJerkSpeedDecrease"]); + FrogPilotButtonsControl *relaxedResetButton = static_cast(toggles["ResetRelaxedPersonality"]); + QObject::connect(relaxedResetButton, &FrogPilotButtonsControl::buttonClicked, this, [=]() { + if (FrogPilotConfirmationDialog::yesorno(tr("Are you sure you want to completely reset your settings for the 'Relaxed' personality?"), this)) { + params.putFloat("RelaxedFollow", 1.75); + params.putFloat("RelaxedJerkAcceleration", 100); + params.putFloat("RelaxedJerkDeceleration", 100); + params.putFloat("RelaxedJerkDanger", 100); + params.putFloat("RelaxedJerkSpeed", 100); + params.putFloat("RelaxedJerkSpeedDecrease", 100); + relaxedFollowToggle->refresh(); + relaxedAccelerationToggle->refresh(); + relaxedDecelerationToggle->refresh(); + relaxedDangerToggle->refresh(); + relaxedSpeedToggle->refresh(); + relaxedSpeedDecreaseToggle->refresh(); + updateFrogPilotToggles(); + } + }); + QObject::connect(parent, &FrogPilotSettingsWindow::closeParentToggle, this, &FrogPilotLongitudinalPanel::hideToggles); QObject::connect(parent, &FrogPilotSettingsWindow::closeSubParentToggle, this, &FrogPilotLongitudinalPanel::hideSubToggles); QObject::connect(parent, &FrogPilotSettingsWindow::updateCarToggles, this, &FrogPilotLongitudinalPanel::updateCarToggles); @@ -381,6 +594,16 @@ FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow * 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() { hasDashSpeedLimits = parent->hasDashSpeedLimits; hasPCMCruise = parent->hasPCMCruise; @@ -411,6 +634,7 @@ void FrogPilotLongitudinalPanel::updateMetric() { params.putFloatNonBlocking("Offset2", params.getFloat("Offset2") * speedConversion); params.putFloatNonBlocking("Offset3", params.getFloat("Offset3") * speedConversion); params.putFloatNonBlocking("Offset4", params.getFloat("Offset4") * speedConversion); + params.putFloatNonBlocking("SetSpeedOffset", params.getFloat("SetSpeedOffset") * speedConversion); } FrogPilotDualParamControl *ceSpeedToggle = reinterpret_cast(toggles["CESpeed"]); @@ -422,6 +646,7 @@ void FrogPilotLongitudinalPanel::updateMetric() { FrogPilotParamValueControl *offset3Toggle = static_cast(toggles["Offset3"]); FrogPilotParamValueControl *offset4Toggle = static_cast(toggles["Offset4"]); FrogPilotParamValueControl *increasedStoppedDistanceToggle = static_cast(toggles["IncreasedStoppedDistance"]); + FrogPilotParamValueControl *setSpeedOffsetToggle = static_cast(toggles["SetSpeedOffset"]); if (isMetric) { offset1Toggle->setTitle(tr("Speed Limit Offset (0-34 kph)")); @@ -429,10 +654,10 @@ void FrogPilotLongitudinalPanel::updateMetric() { offset3Toggle->setTitle(tr("Speed Limit Offset (55-64 kph)")); offset4Toggle->setTitle(tr("Speed Limit Offset (65-99 kph)")); - offset1Toggle->setDescription(tr("Set speed limit offset for limits between 0-34 kph.")); - offset2Toggle->setDescription(tr("Set speed limit offset for limits between 35-54 kph.")); - offset3Toggle->setDescription(tr("Set speed limit offset for limits between 55-64 kph.")); - offset4Toggle->setDescription(tr("Set speed limit offset for limits between 65-99 kph.")); + offset1Toggle->setDescription(tr("Sets the speed limit offset for speeds between 0-34 kph.")); + offset2Toggle->setDescription(tr("Sets the speed limit offset for speeds between 35-54 kph.")); + offset3Toggle->setDescription(tr("Sets the speed limit offset for speeds between 55-64 kph.")); + offset4Toggle->setDescription(tr("Sets the speed limit offset for speeds between 65-99 kph.")); ceSignal->updateControl(0, 150, tr("kph")); ceSpeedToggle->updateControl(0, 150, tr("kph")); @@ -442,18 +667,19 @@ void FrogPilotLongitudinalPanel::updateMetric() { offset2Toggle->updateControl(-99, 99, tr("kph")); offset3Toggle->updateControl(-99, 99, tr("kph")); offset4Toggle->updateControl(-99, 99, tr("kph")); + setSpeedOffsetToggle->updateControl(0, 150, tr("kph")); - increasedStoppedDistanceToggle->updateControl(0, 5, tr(" meters")); + increasedStoppedDistanceToggle->updateControl(0, 3, tr(" meters")); } else { offset1Toggle->setTitle(tr("Speed Limit Offset (0-34 mph)")); offset2Toggle->setTitle(tr("Speed Limit Offset (35-54 mph)")); offset3Toggle->setTitle(tr("Speed Limit Offset (55-64 mph)")); offset4Toggle->setTitle(tr("Speed Limit Offset (65-99 mph)")); - offset1Toggle->setDescription(tr("Set speed limit offset for limits between 0-34 mph.")); - offset2Toggle->setDescription(tr("Set speed limit offset for limits between 35-54 mph.")); - offset3Toggle->setDescription(tr("Set speed limit offset for limits between 55-64 mph.")); - offset4Toggle->setDescription(tr("Set speed limit offset for limits between 65-99 mph.")); + offset1Toggle->setDescription(tr("Sets the speed limit offset for speeds between 0-34 mph.")); + offset2Toggle->setDescription(tr("Sets the speed limit offset for speeds between 35-54 mph.")); + offset3Toggle->setDescription(tr("Sets the speed limit offset for speeds between 55-64 mph.")); + offset4Toggle->setDescription(tr("Sets the speed limit offset for speeds between 65-99 mph.")); ceSignal->updateControl(0, 99, tr("mph")); ceSpeedToggle->updateControl(0, 99, tr("mph")); @@ -463,8 +689,9 @@ void FrogPilotLongitudinalPanel::updateMetric() { offset2Toggle->updateControl(-99, 99, tr("mph")); offset3Toggle->updateControl(-99, 99, tr("mph")); offset4Toggle->updateControl(-99, 99, tr("mph")); + setSpeedOffsetToggle->updateControl(0, 99, tr("mph")); - increasedStoppedDistanceToggle->updateControl(0, 15, tr(" feet")); + increasedStoppedDistanceToggle->updateControl(0, 10, tr(" feet")); } } @@ -482,28 +709,51 @@ void FrogPilotLongitudinalPanel::showToggles(const std::set &keys) { void FrogPilotLongitudinalPanel::hideToggles() { setUpdatesEnabled(false); + customPersonalityOpen = false; slcOpen = false; for (auto &[key, toggle] : toggles) { - bool subToggles = conditionalExperimentalKeys.find(key) != conditionalExperimentalKeys.end() || + bool subToggles = aggressivePersonalityKeys.find(key) != aggressivePersonalityKeys.end() || + conditionalExperimentalKeys.find(key) != conditionalExperimentalKeys.end() || curveSpeedKeys.find(key) != curveSpeedKeys.end() || + customDrivingPersonalityKeys.find(key) != customDrivingPersonalityKeys.end() || experimentalModeActivationKeys.find(key) != experimentalModeActivationKeys.end() || longitudinalTuneKeys.find(key) != longitudinalTuneKeys.end() || qolKeys.find(key) != qolKeys.end() || + relaxedPersonalityKeys.find(key) != relaxedPersonalityKeys.end() || speedLimitControllerKeys.find(key) != speedLimitControllerKeys.end() || speedLimitControllerOffsetsKeys.find(key) != speedLimitControllerOffsetsKeys.end() || speedLimitControllerQOLKeys.find(key) != speedLimitControllerQOLKeys.end() || - speedLimitControllerVisualsKeys.find(key) != speedLimitControllerVisualsKeys.end(); + standardPersonalityKeys.find(key) != standardPersonalityKeys.end() || + trafficPersonalityKeys.find(key) != trafficPersonalityKeys.end(); toggle->setVisible(!subToggles); } + 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(); } void FrogPilotLongitudinalPanel::hideSubToggles() { - if (slcOpen) { - showToggles(speedLimitControllerKeys); + if (customPersonalityOpen) { + 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"); + } + + showToggles(modifiedSpeedLimitControllerKeys); } } diff --git a/selfdrive/frogpilot/ui/qt/offroad/longitudinal_settings.h b/selfdrive/frogpilot/ui/qt/offroad/longitudinal_settings.h index 306abfc4..e18c86a9 100644 --- a/selfdrive/frogpilot/ui/qt/offroad/longitudinal_settings.h +++ b/selfdrive/frogpilot/ui/qt/offroad/longitudinal_settings.h @@ -17,40 +17,58 @@ signals: private: void hideSubToggles(); void hideToggles(); + void showEvent(QShowEvent *event) override; void showToggles(const std::set &keys); void updateCarToggles(); void updateMetric(); + std::set aggressivePersonalityKeys = { + "AggressiveFollow", "AggressiveJerkAcceleration", "AggressiveJerkDeceleration", + "AggressiveJerkDanger", "AggressiveJerkSpeed", "AggressiveJerkSpeedDecrease", + "ResetAggressivePersonality" + }; + std::set conditionalExperimentalKeys = { - "CESpeed", "CESpeedLead", "CECurves", "CELead", - "CEModelStopTime", "CENavigation", "CESignalSpeed", - "HideCEMStatusBar" + "CESpeed", "CESpeedLead", "CECurves", + "CELead", "CEModelStopTime", "CENavigation", + "CESignalSpeed", "HideCEMStatusBar" }; std::set curveSpeedKeys = { - "CurveDetectionMethod", "CurveSensitivity", - "DisableCurveSpeedSmoothing", "MTSCCurvatureCheck", - "TurnAggressiveness" + "CurveDetectionMethod", "CurveSensitivity", "DisableCurveSpeedSmoothing", + "MTSCCurvatureCheck", "TurnAggressiveness" + }; + + std::set customDrivingPersonalityKeys = { + "AggressivePersonalityProfile", "RelaxedPersonalityProfile", "StandardPersonalityProfile", + "TrafficPersonalityProfile" }; std::set experimentalModeActivationKeys = { - "ExperimentalModeViaDistance", "ExperimentalModeViaLKAS", - "ExperimentalModeViaTap" + "ExperimentalModeViaDistance", "ExperimentalModeViaLKAS", "ExperimentalModeViaTap" }; std::set longitudinalTuneKeys = { - "AccelerationProfile", "DecelerationProfile", - "HumanAcceleration", "HumanFollowing", "IncreasedStoppedDistance" + "AccelerationProfile", "DecelerationProfile", "HumanAcceleration", + "HumanFollowing", "IncreasedStoppedDistance", "LeadDetectionThreshold", + "MaxDesiredAcceleration" }; std::set qolKeys = { - "CustomCruise", "CustomCruiseLong", "MapGears", - "OnroadDistanceButton", "ReverseCruise" + "CustomCruise", "CustomCruiseLong", "ForceStandstill", + "ForceStops", "MapGears", "ReverseCruise", + "SetSpeedOffset" + }; + + std::set relaxedPersonalityKeys = { + "RelaxedFollow", "RelaxedJerkAcceleration", "RelaxedJerkDeceleration", + "RelaxedJerkDanger", "RelaxedJerkSpeed", "RelaxedJerkSpeedDecrease", + "ResetRelaxedPersonality" }; std::set speedLimitControllerKeys = { - "SLCConfirmation", "SLCOffsets", "SLCFallback", "SLCOverride", - "SLCPriority", "SLCQOL", "SLCVisuals" + "SLCConfirmation", "SLCOffsets", "SLCFallback", + "SLCOverride", "SLCPriority", "SLCQOL" }; std::set speedLimitControllerOffsetsKeys = { @@ -62,17 +80,26 @@ private: "SLCLookaheadLower" }; - std::set speedLimitControllerVisualsKeys = { - "ShowSLCOffset", "UseVienna" + std::set standardPersonalityKeys = { + "StandardFollow", "StandardJerkAcceleration", "StandardJerkDeceleration", + "StandardJerkDanger", "StandardJerkSpeed", "StandardJerkSpeedDecrease", + "ResetStandardPersonality" + }; + + std::set trafficPersonalityKeys = { + "TrafficFollow", "TrafficJerkAcceleration", "TrafficJerkDeceleration", + "TrafficJerkDanger", "TrafficJerkSpeed", "TrafficJerkSpeedDecrease", + "ResetTrafficPersonality" }; FrogPilotSettingsWindow *parent; FrogPilotButtonsControl *curveDetectionBtn; - FrogPilotButtonsControl *slcConfirmationBtn; Params params; + bool customPersonalityOpen; + bool disableOpenpilotLongitudinal; bool hasPCMCruise; bool hasDashSpeedLimits; bool isGM; @@ -82,5 +109,7 @@ private: bool isToyota; bool slcOpen; + int customizationLevel; + std::map toggles; }; diff --git a/selfdrive/frogpilot/ui/qt/offroad/model_settings.cc b/selfdrive/frogpilot/ui/qt/offroad/model_settings.cc new file mode 100644 index 00000000..396995d7 --- /dev/null +++ b/selfdrive/frogpilot/ui/qt/offroad/model_settings.cc @@ -0,0 +1,527 @@ +#include "selfdrive/frogpilot/ui/qt/offroad/model_settings.h" + +FrogPilotModelPanel::FrogPilotModelPanel(FrogPilotSettingsWindow *parent) : FrogPilotListWidget(parent) { + const std::vector> modelToggles { + {"AutomaticallyUpdateModels", tr("Automatically Update and Download Models"), tr("Automatically downloads new models and updates them if needed."), ""}, + + {"ModelRandomizer", tr("Model Randomizer"), tr("Randomly selects a model each drive and brings up a prompt at the end of the drive to review the model if it's longer than 15 minutes to help find your preferred model."), ""}, + {"ManageBlacklistedModels", tr("Manage Model Blacklist"), tr("Controls which models are blacklisted and won't be used for future drives."), ""}, + {"ResetScores", tr("Reset Model Scores"), tr("Clears the ratings you've given to the driving models."), ""}, + {"ReviewScores", tr("Review Model Scores"), tr("Displays the ratings you've assigned to the driving models."), ""}, + + {"DeleteModel", tr("Delete Model"), tr("Removes the selected driving model from your device."), ""}, + {"DownloadModel", tr("Download Model"), tr("Downloads the selected driving model."), ""}, + {"DownloadAllModels", tr("Download All Models"), tr("Downloads all undownloaded driving models."), ""}, + {"SelectModel", tr("Select Model"), tr("Selects which model openpilot uses to drive."), ""}, + {"ResetCalibrations", tr("Reset Model Calibrations"), tr("Resets calibration settings for the driving models."), ""}, + }; + + for (const auto &[param, title, desc, icon] : modelToggles) { + AbstractControl *modelToggle; + + if (param == "ModelRandomizer") { + FrogPilotParamManageControl *modelRandomizerToggle = new FrogPilotParamManageControl(param, title, desc, icon); + QObject::connect(modelRandomizerToggle, &FrogPilotParamManageControl::manageButtonClicked, [this]() { + showToggles(modelRandomizerKeys); + updateModelLabels(); + }); + modelToggle = modelRandomizerToggle; + } else if (param == "ManageBlacklistedModels") { + FrogPilotButtonsControl *blacklistBtn = new FrogPilotButtonsControl(title, desc, {tr("ADD"), tr("REMOVE")}); + QObject::connect(blacklistBtn, &FrogPilotButtonsControl::buttonClicked, [this](int id) { + QStringList blacklistedModels = QString::fromStdString(params.get("BlacklistedModels")).split(",", QString::SkipEmptyParts); + QStringList selectableModels = availableModelNames; + + for (QString &model : blacklistedModels) { + selectableModels.removeAll(model); + if (model.contains("(Default)")) { + blacklistedModels.move(blacklistedModels.indexOf(model), 0); + } + } + + if (id == 0) { + if (selectableModels.size() == 1) { + FrogPilotConfirmationDialog::toggleAlert(tr("There's no more models to blacklist! The only available model is \"%1\"!").arg(selectableModels.first()), tr("OK"), this); + } else { + QString selectedModel = MultiOptionDialog::getSelection(tr("Select a model to add to the blacklist"), selectableModels, "", this); + if (!selectedModel.isEmpty()) { + if (ConfirmationDialog::confirm(tr("Are you sure you want to add the '%1' model to the blacklist?").arg(selectedModel), tr("Add"), this)) { + if (!blacklistedModels.contains(selectedModel)) { + blacklistedModels.append(selectedModel); + params.putNonBlocking("BlacklistedModels", blacklistedModels.join(",").toStdString()); + paramsStorage.putNonBlocking("BlacklistedModels", blacklistedModels.join(",").toStdString()); + } + } + } + } + } else if (id == 1) { + QString selectedModel = MultiOptionDialog::getSelection(tr("Select a model to remove from the blacklist"), blacklistedModels, "", this); + if (!selectedModel.isEmpty()) { + if (ConfirmationDialog::confirm(tr("Are you sure you want to remove the '%1' model from the blacklist?").arg(selectedModel), tr("Remove"), this)) { + if (blacklistedModels.contains(selectedModel)) { + blacklistedModels.removeAll(selectedModel); + params.putNonBlocking("BlacklistedModels", blacklistedModels.join(",").toStdString()); + paramsStorage.putNonBlocking("BlacklistedModels", blacklistedModels.join(",").toStdString()); + } + } + } + } + }); + modelToggle = blacklistBtn; + } else if (param == "ResetScores") { + ButtonControl *resetCalibrationsBtn = new ButtonControl(title, tr("RESET"), desc); + QObject::connect(resetCalibrationsBtn, &ButtonControl::clicked, [this]() { + if (FrogPilotConfirmationDialog::yesorno(tr("Reset all model scores?"), this)) { + for (const QString &model : availableModelNames) { + QString cleanedModel = processModelName(model); + params.remove(QString("%1Drives").arg(cleanedModel).toStdString()); + paramsStorage.remove(QString("%1Drives").arg(cleanedModel).toStdString()); + params.remove(QString("%1Score").arg(cleanedModel).toStdString()); + paramsStorage.remove(QString("%1Score").arg(cleanedModel).toStdString()); + } + updateModelLabels(); + } + }); + modelToggle = reinterpret_cast(resetCalibrationsBtn); + } else if (param == "ReviewScores") { + ButtonControl *reviewScoresBtn = new ButtonControl(title, tr("VIEW"), desc); + QObject::connect(reviewScoresBtn, &ButtonControl::clicked, [this]() { + openSubParentToggle(); + + for (LabelControl *label : labelControls) { + label->setVisible(true); + } + + for (auto &[key, toggle] : toggles) { + toggle->setVisible(false); + } + }); + modelToggle = reinterpret_cast(reviewScoresBtn); + } else if (param == "DeleteModel") { + deleteModelBtn = new ButtonControl(title, tr("DELETE"), desc); + QObject::connect(deleteModelBtn, &ButtonControl::clicked, [this]() { + QStringList deletableModels, existingModels = modelDir.entryList({"*.thneed"}, QDir::Files); + QMap labelToFileMap; + QString currentModel = QString::fromStdString(params.get("Model")) + ".thneed"; + + for (int i = 0; i < availableModels.size(); ++i) { + QString modelFile = availableModels[i] + ".thneed"; + if (existingModels.contains(modelFile) && modelFile != currentModel && !availableModelNames[i].contains("(Default)")) { + deletableModels.append(availableModelNames[i]); + labelToFileMap[availableModelNames[i]] = modelFile; + } + } + + QString selectedModel = MultiOptionDialog::getSelection(tr("Select a model to delete"), deletableModels, "", this); + if (!selectedModel.isEmpty()) { + if (ConfirmationDialog::confirm(tr("Are you sure you want to delete the '%1' model?").arg(selectedModel), tr("Delete"), this)) { + std::thread([=]() { + modelDeleting = true; + modelsDownloaded = false; + update(); + + params.putBoolNonBlocking("ModelsDownloaded", false); + deleteModelBtn->setValue(tr("Deleting...")); + + QFile::remove(modelDir.absoluteFilePath(labelToFileMap[selectedModel])); + deleteModelBtn->setValue(tr("Deleted!")); + + util::sleep_for(1000); + deleteModelBtn->setValue(""); + modelDeleting = false; + + QStringList modelFiles = modelDir.entryList({"*.thneed"}, QDir::Files); + modelFiles.removeAll(currentModel); + + haveModelsDownloaded = modelFiles.size() > 1; + update(); + }).detach(); + } + } + }); + modelToggle = reinterpret_cast(deleteModelBtn); + } else if (param == "DownloadModel") { + 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); + cancellingDownload = true; + + device()->resetInteractiveTimeout(30); + } else { + QMap labelToModelMap; + QStringList existingModels = modelDir.entryList({"*.thneed"}, QDir::Files); + QStringList downloadableModels; + + for (int i = 0; i < availableModels.size(); ++i) { + QString modelFile = availableModels[i] + ".thneed"; + if (!existingModels.contains(modelFile) && !availableModelNames[i].contains("(Default)")) { + downloadableModels.append(availableModelNames[i]); + labelToModelMap.insert(availableModelNames[i], availableModels[i]); + } + } + + QString modelToDownload = MultiOptionDialog::getSelection(tr("Select a driving model to download"), downloadableModels, "", this); + if (!modelToDownload.isEmpty()) { + device()->resetInteractiveTimeout(300); + + modelDownloading = true; + paramsMemory.put("ModelToDownload", labelToModelMap.value(modelToDownload).toStdString()); + paramsMemory.put("ModelDownloadProgress", "0%"); + + downloadModelBtn->setValue(tr("Downloading %1...").arg(modelToDownload.remove(QRegularExpression("[🗺️👀📡]")).trimmed())); + + QTimer *progressTimer = new QTimer(this); + progressTimer->setInterval(100); + + QObject::connect(progressTimer, &QTimer::timeout, this, [=]() { + QString progress = QString::fromStdString(paramsMemory.get("ModelDownloadProgress")); + bool downloadComplete = progress.contains(QRegularExpression("downloaded", QRegularExpression::CaseInsensitiveOption)); + bool downloadFailed = progress.contains(QRegularExpression("cancelled|exists|failed|offline", QRegularExpression::CaseInsensitiveOption)); + + if (!progress.isEmpty() && progress != "0%") { + downloadModelBtn->setValue(progress); + } + + if (downloadComplete || downloadFailed) { + bool lastModelDownloaded = downloadComplete; + + if (downloadComplete) { + haveModelsDownloaded = true; + update(); + } + + if (downloadComplete) { + for (const QString &model : availableModels) { + if (!QFile::exists(modelDir.filePath(model + ".thneed"))) { + lastModelDownloaded = false; + break; + } + } + } + + downloadModelBtn->setValue(progress); + + paramsMemory.remove("CancelModelDownload"); + paramsMemory.remove("ModelDownloadProgress"); + + progressTimer->stop(); + progressTimer->deleteLater(); + + QTimer::singleShot(2000, this, [=]() { + cancellingDownload = false; + modelDownloading = false; + + downloadModelBtn->setValue(""); + + if (lastModelDownloaded) { + modelsDownloaded = true; + update(); + + params.putBoolNonBlocking("ModelsDownloaded", modelsDownloaded); + } + + device()->resetInteractiveTimeout(30); + }); + } + }); + progressTimer->start(); + } + } + }); + modelToggle = reinterpret_cast(downloadModelBtn); + } else if (param == "DownloadAllModels") { + 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); + cancellingDownload = true; + + device()->resetInteractiveTimeout(30); + } else { + device()->resetInteractiveTimeout(300); + + startDownloadAllModels(); + } + }); + modelToggle = reinterpret_cast(downloadAllModelsBtn); + } else if (param == "SelectModel") { + selectModelBtn = new ButtonControl(title, tr("SELECT"), desc); + QObject::connect(selectModelBtn, &ButtonControl::clicked, [this]() { + QSet modelFilesBaseNames = QSet::fromList(modelDir.entryList({"*.thneed"}, QDir::Files).replaceInStrings(QRegExp("\\.thneed$"), "")); + QStringList selectableModels; + + for (int i = 0; i < availableModels.size(); ++i) { + if (modelFilesBaseNames.contains(availableModels[i]) || availableModelNames[i].contains("(Default)")) { + selectableModels.append(availableModelNames[i]); + } + } + + QString modelToSelect = MultiOptionDialog::getSelection(tr("Select a model - 🗺️ = Navigation | 📡 = Radar | 👀 = VOACC"), selectableModels, "", this); + if (!modelToSelect.isEmpty()) { + selectModelBtn->setValue(modelToSelect); + int modelIndex = availableModelNames.indexOf(modelToSelect); + + params.put("Model", availableModels.at(modelIndex).toStdString()); + params.put("ModelName", modelToSelect.toStdString()); + + if (experimentalModels.contains(availableModels.at(modelIndex))) { + FrogPilotConfirmationDialog::toggleAlert(tr("WARNING: This is a very experimental model and may drive dangerously!"), tr("I understand the risks."), this); + } + + QString model = availableModelNames.at(modelIndex); + QString part_model_param = processModelName(model); + + if (!params.checkKey(part_model_param.toStdString() + "CalibrationParams") || !params.checkKey(part_model_param.toStdString() + "LiveTorqueParameters")) { + if (FrogPilotConfirmationDialog::yesorno(tr("Start with a fresh calibration for the newly selected model?"), this)) { + params.remove("CalibrationParams"); + params.remove("LiveTorqueParameters"); + } + } + + if (started) { + if (FrogPilotConfirmationDialog::toggle(tr("Reboot required to take effect."), tr("Reboot Now"), this)) { + Hardware::reboot(); + } + } + + updateFrogPilotToggles(); + } + }); + selectModelBtn->setValue(QString::fromStdString(params.get("ModelName"))); + modelToggle = reinterpret_cast(selectModelBtn); + } else if (param == "ResetCalibrations") { + FrogPilotButtonsControl *resetCalibrationsBtn = new FrogPilotButtonsControl(title, desc, {tr("RESET ALL"), tr("RESET ONE")}); + QObject::connect(resetCalibrationsBtn, &FrogPilotButtonsControl::showDescriptionEvent, this, &FrogPilotModelPanel::updateCalibrationDescription); + QObject::connect(resetCalibrationsBtn, &FrogPilotButtonsControl::buttonClicked, [=](int id) { + if (id == 0) { + if (FrogPilotConfirmationDialog::yesorno(tr("Are you sure you want to completely reset all of your model calibrations?"), this)) { + for (const QString &model : availableModelNames) { + QString cleanedModel = processModelName(model); + params.remove(QString("%1CalibrationParams").arg(cleanedModel).toStdString()); + paramsStorage.remove(QString("%1CalibrationParams").arg(cleanedModel).toStdString()); + params.remove(QString("%1LiveTorqueParameters").arg(cleanedModel).toStdString()); + paramsStorage.remove(QString("%1LiveTorqueParameters").arg(cleanedModel).toStdString()); + } + } + } else if (id == 1) { + QStringList selectableModelLabels; + for (int i = 0; i < availableModels.size(); ++i) { + selectableModelLabels.append(availableModelNames[i]); + } + + QString modelToReset = MultiOptionDialog::getSelection(tr("Select a model to reset"), selectableModelLabels, "", this); + if (!modelToReset.isEmpty()) { + if (FrogPilotConfirmationDialog::yesorno(tr("Are you sure you want to completely reset this model's calibrations?"), this)) { + QString cleanedModel = processModelName(modelToReset); + params.remove(QString("%1CalibrationParams").arg(cleanedModel).toStdString()); + paramsStorage.remove(QString("%1CalibrationParams").arg(cleanedModel).toStdString()); + params.remove(QString("%1LiveTorqueParameters").arg(cleanedModel).toStdString()); + paramsStorage.remove(QString("%1LiveTorqueParameters").arg(cleanedModel).toStdString()); + } + } + } + }); + modelToggle = resetCalibrationsBtn; + + } else { + modelToggle = new ParamControl(param, title, desc, icon); + } + + addItem(modelToggle); + toggles[param] = modelToggle; + + makeConnections(modelToggle); + + if (FrogPilotParamManageControl *frogPilotManageToggle = qobject_cast(modelToggle)) { + QObject::connect(frogPilotManageToggle, &FrogPilotParamManageControl::manageButtonClicked, this, &FrogPilotModelPanel::openParentToggle); + } + + QObject::connect(modelToggle, &AbstractControl::showDescriptionEvent, [this]() { + update(); + }); + } + + QObject::connect(static_cast(toggles["ModelRandomizer"]), &ToggleControl::toggleFlipped, [this](bool state) { + modelRandomizer = state; + if (state && !modelsDownloaded) { + if (FrogPilotConfirmationDialog::yesorno(tr("The 'Model Randomizer' only works with downloaded models. Do you want to download all the driving models?"), this)) { + startDownloadAllModels(); + } + } + }); + + QObject::connect(parent, &FrogPilotSettingsWindow::closeParentToggle, this, &FrogPilotModelPanel::hideToggles); + QObject::connect(parent, &FrogPilotSettingsWindow::closeSubParentToggle, this, &FrogPilotModelPanel::hideSubToggles); + QObject::connect(uiState(), &UIState::uiUpdate, this, &FrogPilotModelPanel::updateState); + + hideToggles(); +} + +void FrogPilotModelPanel::showEvent(QShowEvent *event) { + QString currentModel = QString::fromStdString(params.get("Model")) + ".thneed"; + + availableModelNames = QString::fromStdString(params.get("AvailableModelsNames")).split(","); + availableModels = QString::fromStdString(params.get("AvailableModels")).split(","); + experimentalModels = QString::fromStdString(params.get("ExperimentalModels")).split(","); + + modelRandomizer = params.getBool("ModelRandomizer"); + modelsDownloaded = params.getBool("ModelsDownloaded"); + + QStringList modelFiles = modelDir.entryList({"*.thneed"}, QDir::Files); + modelFiles.removeAll(currentModel); + haveModelsDownloaded = modelFiles.size() > 1; +} + +void FrogPilotModelPanel::updateState(const UIState &s) { + if (!isVisible()) return; + + downloadAllModelsBtn->setText(modelDownloading && allModelsDownloading ? tr("CANCEL") : tr("DOWNLOAD")); + downloadModelBtn->setText(modelDownloading && !allModelsDownloading ? tr("CANCEL") : tr("DOWNLOAD")); + + deleteModelBtn->setEnabled(!modelDeleting && !modelDownloading); + downloadAllModelsBtn->setEnabled(s.scene.online && !cancellingDownload && !modelDeleting && (!modelDownloading || allModelsDownloading) && !modelsDownloaded); + downloadModelBtn->setEnabled(s.scene.online && !cancellingDownload && !modelDeleting && !allModelsDownloading && !modelsDownloaded); + selectModelBtn->setEnabled(!modelDeleting && !modelDownloading && !modelRandomizer); + + started = s.scene.started; +} + +void FrogPilotModelPanel::startDownloadAllModels() { + allModelsDownloading = true; + modelDownloading = true; + + paramsMemory.putBool("DownloadAllModels", true); + + downloadAllModelsBtn->setValue(tr("Downloading models...")); + + QTimer *progressTimer = new QTimer(this); + progressTimer->setInterval(100); + + QObject::connect(progressTimer, &QTimer::timeout, this, [=]() { + QString progress = QString::fromStdString(paramsMemory.get("ModelDownloadProgress")); + bool downloadComplete = progress.contains(QRegularExpression("All models downloaded!", QRegularExpression::CaseInsensitiveOption)); + bool downloadFailed = progress.contains(QRegularExpression("cancelled|exists|failed|offline", QRegularExpression::CaseInsensitiveOption)); + + if (!progress.isEmpty() && progress != "0%") { + downloadAllModelsBtn->setValue(progress); + } + + if (downloadComplete || downloadFailed) { + if (downloadComplete) { + haveModelsDownloaded = true; + update(); + } + + downloadAllModelsBtn->setValue(progress); + + paramsMemory.remove("CancelModelDownload"); + paramsMemory.remove("ModelDownloadProgress"); + + progressTimer->stop(); + progressTimer->deleteLater(); + + QTimer::singleShot(2000, this, [=]() { + cancellingDownload = false; + modelDownloading = false; + + paramsMemory.remove("DownloadAllModels"); + + downloadAllModelsBtn->setValue(""); + + device()->resetInteractiveTimeout(30); + }); + } + }); + progressTimer->start(); +} + +void FrogPilotModelPanel::updateCalibrationDescription() { + QString model = QString::fromStdString(params.get("ModelName")); + QString part_model_param = processModelName(model); + + QString desc = + tr("openpilot requires the device to be mounted within 4° left or right and " + "within 5° up or 9° down. openpilot is continuously calibrating, resetting is rarely required."); + std::string calib_bytes = params.get(part_model_param.toStdString() + "CalibrationParams"); + if (!calib_bytes.empty()) { + try { + AlignedBuffer aligned_buf; + capnp::FlatArrayMessageReader cmsg(aligned_buf.align(calib_bytes.data(), calib_bytes.size())); + auto calib = cmsg.getRoot().getLiveCalibration(); + if (calib.getCalStatus() != cereal::LiveCalibrationData::Status::UNCALIBRATED) { + double pitch = calib.getRpyCalib()[1] * (180 / M_PI); + double yaw = calib.getRpyCalib()[2] * (180 / M_PI); + desc += tr(" Your device is pointed %1° %2 and %3° %4.") + .arg(QString::number(std::abs(pitch), 'g', 1), pitch > 0 ? tr("down") : tr("up"), + QString::number(std::abs(yaw), 'g', 1), yaw > 0 ? tr("left") : tr("right")); + } + } catch (kj::Exception) { + qInfo() << "invalid CalibrationParams"; + } + } + qobject_cast(sender())->setDescription(desc); +} + +void FrogPilotModelPanel::updateModelLabels() { + QVector> modelScores; + for (QString &model : availableModelNames) { + QString cleanedModel = processModelName(model); + int score = params.getInt((cleanedModel + "Score").toStdString()); + + if (model.contains("(Default)")) { + modelScores.prepend(qMakePair(model, score)); + } else { + modelScores.append(qMakePair(model, score)); + } + } + + labelControls.clear(); + + for (QPair &pair : modelScores) { + QString scoreDisplay = pair.second == 0 ? "N/A" : QString::number(pair.second) + "%"; + LabelControl *labelControl = new LabelControl(pair.first, scoreDisplay, ""); + labelControls.append(labelControl); + addItem(labelControl); + } + + for (LabelControl *label : labelControls) { + label->setVisible(false); + } +} + +void FrogPilotModelPanel::showToggles(const std::set &keys) { + setUpdatesEnabled(false); + + for (auto &[key, toggle] : toggles) { + toggle->setVisible(keys.find(key) != keys.end()); + } + + setUpdatesEnabled(true); + update(); +} + +void FrogPilotModelPanel::hideToggles() { + setUpdatesEnabled(false); + + for (LabelControl *label : labelControls) { + label->setVisible(false); + } + + for (auto &[key, toggle] : toggles) { + bool subToggles = modelRandomizerKeys.find(key) != modelRandomizerKeys.end(); + + toggle->setVisible(!subToggles); + } + + setUpdatesEnabled(true); + update(); +} + +void FrogPilotModelPanel::hideSubToggles() { + for (LabelControl *label : labelControls) { + label->setVisible(false); + } +} diff --git a/selfdrive/frogpilot/ui/qt/offroad/model_settings.h b/selfdrive/frogpilot/ui/qt/offroad/model_settings.h new file mode 100644 index 00000000..4b7fd1d7 --- /dev/null +++ b/selfdrive/frogpilot/ui/qt/offroad/model_settings.h @@ -0,0 +1,60 @@ +#pragma once + +#include + +#include "selfdrive/frogpilot/ui/qt/offroad/frogpilot_settings.h" + +class FrogPilotModelPanel : public FrogPilotListWidget { + Q_OBJECT + +public: + explicit FrogPilotModelPanel(FrogPilotSettingsWindow *parent); + +signals: + void openParentToggle(); + void openSubParentToggle(); + +protected: + void showEvent(QShowEvent *event) override; + +private: + void hideSubToggles(); + void hideToggles(); + void showToggles(const std::set &keys); + void startDownloadAllModels(); + void updateCalibrationDescription(); + void updateModelLabels(); + void updateState(const UIState &s); + + std::set modelRandomizerKeys = { + "ManageBlacklistedModels", "ResetScores", "ReviewScores" + }; + + ButtonControl *deleteModelBtn; + ButtonControl *downloadAllModelsBtn; + ButtonControl *downloadModelBtn; + ButtonControl *selectModelBtn; + + Params params; + Params paramsMemory{"/dev/shm/params"}; + Params paramsStorage{"/persist/params"}; + + QDir modelDir{"/data/models/"}; + + QList labelControls; + + QStringList availableModelNames; + QStringList availableModels; + QStringList experimentalModels; + + bool allModelsDownloading; + bool cancellingDownload; + bool haveModelsDownloaded; + bool modelDeleting; + bool modelDownloading; + bool modelRandomizer; + bool modelsDownloaded; + bool started; + + std::map toggles; +}; diff --git a/selfdrive/frogpilot/ui/qt/offroad/sounds_settings.cc b/selfdrive/frogpilot/ui/qt/offroad/sounds_settings.cc index 4aaf032c..e161c0c7 100644 --- a/selfdrive/frogpilot/ui/qt/offroad/sounds_settings.cc +++ b/selfdrive/frogpilot/ui/qt/offroad/sounds_settings.cc @@ -11,12 +11,12 @@ FrogPilotSoundsPanel::FrogPilotSoundsPanel(FrogPilotSettingsWindow *parent) : Fr {"WarningSoftVolume", tr("Warning Soft Volume"), tr("Related alerts:\n\nBRAKE!, Risk of Collision\nTAKE CONTROL IMMEDIATELY"), ""}, {"WarningImmediateVolume", tr("Warning Immediate Volume"), tr("Related alerts:\n\nDISENGAGE IMMEDIATELY, Driver Distracted\nDISENGAGE IMMEDIATELY, Driver Unresponsive"), ""}, - {"CustomAlerts", tr("Custom Alerts"), tr("Enable custom alerts for openpilot events."), "../frogpilot/assets/toggle_icons/icon_green_light.png"}, - {"GoatScream", tr("Goat Scream Steering Saturated Alert"), tr("Enable the famed 'Goat Scream' that has brought both joy and anger to FrogPilot users all around the world!"), ""}, - {"GreenLightAlert", tr("Green Light Alert"), tr("Get an alert when a traffic light changes from red to green."), ""}, - {"LeadDepartingAlert", tr("Lead Departing Alert"), tr("Get an alert when the lead vehicle starts departing when at a standstill."), ""}, - {"LoudBlindspotAlert", tr("Loud Blindspot Alert"), tr("Enable a louder alert for when a vehicle is detected in the blindspot when attempting to change lanes."), ""}, - {"SpeedLimitChangedAlert", tr("Speed Limit Change Alert"), tr("Trigger an alert when the speed limit changes."), ""}, + {"CustomAlerts", tr("Custom Alerts"), tr("Custom alerts for openpilot events."), "../frogpilot/assets/toggle_icons/icon_green_light.png"}, + {"GoatScream", tr("Goat Scream Steering Saturated Alert"), tr("Enables the famed 'Goat Scream' that has brought both joy and anger to FrogPilot users all around the world!"), ""}, + {"GreenLightAlert", tr("Green Light Alert"), tr("Plays an alert when a traffic light changes from red to green."), ""}, + {"LeadDepartingAlert", tr("Lead Departing Alert"), tr("Plays an alert when the lead vehicle starts departing when at a standstill."), ""}, + {"LoudBlindspotAlert", tr("Loud Blindspot Alert"), tr("Plays a louder alert for when a vehicle is detected in the blindspot when attempting to change lanes."), ""}, + {"SpeedLimitChangedAlert", tr("Speed Limit Change Alert"), tr("Plays an alert when the speed limit changes."), ""}, }; for (const auto &[param, title, desc, icon] : soundsToggles) { @@ -29,10 +29,14 @@ FrogPilotSoundsPanel::FrogPilotSoundsPanel(FrogPilotSettingsWindow *parent) : Fr }); soundsToggle = alertVolumeControlToggle; } else if (alertVolumeControlKeys.find(param) != alertVolumeControlKeys.end()) { + std::map volumeLabels; + for (int i = 0; i <= 101; ++i) { + volumeLabels[i] = i == 101 ? tr("Auto") : i == 0 ? tr("Muted") : QString::number(i) + "%"; + } if (param == "WarningImmediateVolume") { - soundsToggle = new FrogPilotParamValueControl(param, title, desc, icon, 25, 100, "%"); + soundsToggle = new FrogPilotParamValueControl(param, title, desc, icon, 25, 101, QString(), volumeLabels); } else { - soundsToggle = new FrogPilotParamValueControl(param, title, desc, icon, 0, 100, "%"); + soundsToggle = new FrogPilotParamValueControl(param, title, desc, icon, 0, 101, QString(), volumeLabels); } } else if (param == "CustomAlerts") { @@ -74,6 +78,12 @@ FrogPilotSoundsPanel::FrogPilotSoundsPanel(FrogPilotSettingsWindow *parent) : Fr QObject::connect(parent, &FrogPilotSettingsWindow::updateCarToggles, this, &FrogPilotSoundsPanel::updateCarToggles); } +void FrogPilotSoundsPanel::showEvent(QShowEvent *event) { + customizationLevel = parent->customizationLevel; + + toggles["AlertVolumeControl"]->setVisible(customizationLevel == 2); +} + void FrogPilotSoundsPanel::updateCarToggles() { hasBSM = parent->hasBSM; hasOpenpilotLongitudinal = parent->hasOpenpilotLongitudinal; @@ -101,6 +111,8 @@ void FrogPilotSoundsPanel::hideToggles() { toggle->setVisible(!subToggles); } + toggles["AlertVolumeControl"]->setVisible(customizationLevel == 2); + setUpdatesEnabled(true); update(); } diff --git a/selfdrive/frogpilot/ui/qt/offroad/sounds_settings.h b/selfdrive/frogpilot/ui/qt/offroad/sounds_settings.h index 7414eeed..11929d59 100644 --- a/selfdrive/frogpilot/ui/qt/offroad/sounds_settings.h +++ b/selfdrive/frogpilot/ui/qt/offroad/sounds_settings.h @@ -15,6 +15,7 @@ signals: private: void hideToggles(); + void showEvent(QShowEvent *event) override; void showToggles(const std::set &keys); void updateCarToggles(); @@ -36,5 +37,7 @@ private: bool hasBSM; bool hasOpenpilotLongitudinal; + int customizationLevel; + std::map toggles; }; diff --git a/selfdrive/frogpilot/ui/qt/offroad/theme_settings.cc b/selfdrive/frogpilot/ui/qt/offroad/theme_settings.cc index 88fb36a9..cb8e8da7 100644 --- a/selfdrive/frogpilot/ui/qt/offroad/theme_settings.cc +++ b/selfdrive/frogpilot/ui/qt/offroad/theme_settings.cc @@ -3,19 +3,19 @@ FrogPilotThemesPanel::FrogPilotThemesPanel(FrogPilotSettingsWindow *parent) : FrogPilotListWidget(parent), parent(parent) { const std::vector> themeToggles { {"PersonalizeOpenpilot", tr("Custom Theme"), tr("Custom openpilot themes."), "../frogpilot/assets/toggle_icons/frog.png"}, - {"CustomColors", tr("Color Scheme"), tr("Themed color schemes.\n\nWant to submit your own color scheme? Share it in the 'feature-request' channel on the FrogPilot Discord!"), ""}, - {"CustomDistanceIcon", "Distance Button", "Themed distance button icons.\n\nWant to submit your own icon pack? Share it in the 'feature-request' channel on the FrogPilot Discord!", ""}, - {"CustomIcons", tr("Icon Pack"), tr("Themed icon packs.\n\nWant to submit your own icons? Share them in the 'feature-request' channel on the FrogPilot Discord!"), ""}, - {"CustomSounds", tr("Sound Pack"), tr("Themed sound effects.\n\nWant to submit your own sounds? Share them in the 'feature-request' channel on the FrogPilot Discord!"), ""}, - {"WheelIcon", tr("Steering Wheel"), tr("Custom steering wheel icons."), ""}, - {"CustomSignals", tr("Turn Signal Animation"), tr("Themed turn signal animations.\n\nWant to submit your own animations? Share them in the 'feature-request' channel on the FrogPilot Discord!"), ""}, + {"CustomColors", tr("Color Scheme"), tr("Changes out openpilot's color scheme.\n\nWant to submit your own color scheme? Share it in the 'custom-themes' channel on the FrogPilot Discord!"), ""}, + {"CustomDistanceIcons", "Distance Button", "Changes out openpilot's distance button icons.\n\nWant to submit your own icon pack? Share it in the 'custom-themes' channel on the FrogPilot Discord!", ""}, + {"CustomIcons", tr("Icon Pack"), tr("Changes out openpilot's icon pack.\n\nWant to submit your own icons? Share them in the 'custom-themes' channel on the FrogPilot Discord!"), ""}, + {"CustomSounds", tr("Sound Pack"), tr("Changes out openpilot's sound effects.\n\nWant to submit your own sounds? Share them in the 'custom-themes' channel on the FrogPilot Discord!"), ""}, + {"WheelIcon", tr("Steering Wheel"), tr("Enables a custom steering wheel icon in the top right of the screen."), ""}, + {"CustomSignals", tr("Turn Signal Animation"), tr("Enables themed turn signal animations.\n\nWant to submit your own animations? Share them in the 'custom-themes' channel on the FrogPilot Discord!"), ""}, {"DownloadStatusLabel", tr("Download Status"), "", ""}, - {"HolidayThemes", tr("Holiday Themes"), tr("Change the openpilot theme based on the current holiday. Minor holidays last one day, while major holidays (Easter, Christmas, Halloween, etc.) last a week."), "../frogpilot/assets/toggle_icons/icon_calendar.png"}, + {"HolidayThemes", tr("Holiday Themes"), tr("Changes the openpilot theme based on the current holiday. Minor holidays last one day, while major holidays (Easter, Christmas, Halloween, etc.) last the entire week."), "../frogpilot/assets/toggle_icons/icon_calendar.png"}, - {"RandomEvents", tr("Random Events"), tr("Random cosmetic events that happen during certain driving conditions. These events are purely for fun and don't affect driving controls!"), "../frogpilot/assets/toggle_icons/icon_random.png"}, + {"RandomEvents", tr("Random Events"), tr("Enables random cosmetic events that happen during certain driving conditions. These events are purely for fun and don't affect driving controls!"), "../frogpilot/assets/toggle_icons/icon_random.png"}, - {"StartupAlert", tr("Startup Alert"), tr("Custom 'Startup' alert message that appears when you start driving."), "../frogpilot/assets/toggle_icons/icon_message.png"} + {"StartupAlert", tr("Startup Alert"), tr("Controls the text of the 'Startup' alert message that appears when you start the drive."), "../frogpilot/assets/toggle_icons/icon_message.png"} }; for (const auto &[param, title, desc, icon] : themeToggles) { @@ -162,7 +162,7 @@ FrogPilotThemesPanel::FrogPilotThemesPanel(FrogPilotSettingsWindow *parent) : Fr } manageCustomColorsBtn->setValue(currentColor); themeToggle = manageCustomColorsBtn; - } else if (param == "CustomDistanceIcon") { + } else if (param == "CustomDistanceIcons") { manageDistanceIconsBtn = new FrogPilotButtonsControl(title, desc, {tr("DELETE"), tr("DOWNLOAD"), tr("SELECT")}); std::function formatIconName = [](QString name) -> QString { @@ -847,10 +847,10 @@ FrogPilotThemesPanel::FrogPilotThemesPanel(FrogPilotSettingsWindow *parent) : Fr params.put("StartupMessageTop", frogpilotTop.toStdString()); params.put("StartupMessageBottom", frogpilotBottom.toStdString()); } else if (id == 2) { - QString newTop = InputDialog::getText(tr("Enter your text for the top half"), this, tr("Characters: 0/%1").arg(maxLengthTop), false, -1, currentTop, maxLengthTop).trimmed(); + 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()); - QString newBottom = InputDialog::getText(tr("Enter your text for the bottom half"), this, tr("Characters: 0/%1").arg(maxLengthBottom), false, -1, currentBottom, maxLengthBottom).trimmed(); + 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()); } @@ -859,6 +859,8 @@ FrogPilotThemesPanel::FrogPilotThemesPanel(FrogPilotSettingsWindow *parent) : Fr params.remove("StartupMessageTop"); params.remove("StartupMessageBottom"); } + + updateFrogPilotToggles(); }); themeToggle = startupAlertButton; @@ -889,7 +891,6 @@ FrogPilotThemesPanel::FrogPilotThemesPanel(FrogPilotSettingsWindow *parent) : Fr }); QObject::connect(parent, &FrogPilotSettingsWindow::closeParentToggle, this, &FrogPilotThemesPanel::hideToggles); - QObject::connect(parent, &FrogPilotSettingsWindow::updateCarToggles, this, &FrogPilotThemesPanel::updateCarToggles); QObject::connect(uiState(), &UIState::uiUpdate, this, &FrogPilotThemesPanel::updateState); } @@ -900,17 +901,17 @@ void FrogPilotThemesPanel::showEvent(QShowEvent *event) { signalsDownloaded = params.get("DownloadableSignals").empty(); soundsDownloaded = params.get("DownloadableSounds").empty(); wheelsDownloaded = params.get("DownloadableWheels").empty(); -} -void FrogPilotThemesPanel::updateCarToggles() { - disableOpenpilotLongitudinal = parent->disableOpenpilotLongitudinal; - hasOpenpilotLongitudinal = parent->hasOpenpilotLongitudinal; + customizationLevel = parent->customizationLevel; - hideToggles(); + toggles["RandomEvents"]->setVisible(customizationLevel != 0); + toggles["StartupAlert"]->setVisible(customizationLevel == 2); } void FrogPilotThemesPanel::updateState(const UIState &s) { - if (!isVisible()) return; + if (!isVisible()) { + return; + } if (personalizeOpenpilotOpen) { if (themeDownloading) { @@ -999,6 +1000,9 @@ void FrogPilotThemesPanel::hideToggles() { toggle->setVisible(!subToggles); } + 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 ebfe2547..7c08fecb 100644 --- a/selfdrive/frogpilot/ui/qt/offroad/theme_settings.h +++ b/selfdrive/frogpilot/ui/qt/offroad/theme_settings.h @@ -19,11 +19,10 @@ signals: private: void hideToggles(); void showToggles(const std::set &keys); - void updateCarToggles(); void updateState(const UIState &s); std::set customThemeKeys = { - "CustomColors", "CustomDistanceIcon", "CustomIcons", + "CustomColors", "CustomDistanceIcons", "CustomIcons", "CustomSignals", "CustomSounds", "DownloadStatusLabel", "WheelIcon" }; @@ -45,10 +44,8 @@ private: bool cancellingDownload; bool colorDownloading; bool colorsDownloaded; - bool disableOpenpilotLongitudinal; bool distanceIconDownloading; bool distanceIconsDownloaded; - bool hasOpenpilotLongitudinal; bool iconDownloading; bool iconsDownloaded; bool personalizeOpenpilotOpen; @@ -61,5 +58,7 @@ private: bool wheelDownloading; bool wheelsDownloaded; + int customizationLevel; + std::map toggles; }; diff --git a/selfdrive/frogpilot/ui/qt/offroad/utilities.cc b/selfdrive/frogpilot/ui/qt/offroad/utilities.cc index 5b8462fb..b64a62db 100644 --- a/selfdrive/frogpilot/ui/qt/offroad/utilities.cc +++ b/selfdrive/frogpilot/ui/qt/offroad/utilities.cc @@ -3,7 +3,7 @@ #include "selfdrive/frogpilot/ui/qt/offroad/utilities.h" UtilitiesPanel::UtilitiesPanel(FrogPilotSettingsWindow *parent) : FrogPilotListWidget(parent) { - ButtonControl *flashPandaBtn = new ButtonControl(tr("Flash Panda"), tr("FLASH"), tr("Use this button to flash the Panda device's firmware if you're running into issues.")); + ButtonControl *flashPandaBtn = new ButtonControl(tr("Flash Panda"), tr("FLASH"), tr("Flashes the Panda device's firmware if you're running into issues.")); QObject::connect(flashPandaBtn, &ButtonControl::clicked, [=]() { if (ConfirmationDialog::confirm(tr("Are you sure you want to flash the Panda?"), tr("Flash"), this)) { std::thread([=]() { @@ -26,7 +26,7 @@ UtilitiesPanel::UtilitiesPanel(FrogPilotSettingsWindow *parent) : FrogPilotListW }); addItem(flashPandaBtn); - forceStartedBtn = new FrogPilotButtonsControl(tr("Force Started State"), tr("Force openpilot either offroad or onroad."), {tr("OFFROAD"), tr("ONROAD"), tr("OFF")}, true); + 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); @@ -43,7 +43,7 @@ UtilitiesPanel::UtilitiesPanel(FrogPilotSettingsWindow *parent) : FrogPilotListW forceStartedBtn->setCheckedButton(2); addItem(forceStartedBtn); - ButtonControl *resetTogglesBtn = new ButtonControl(tr("Reset Toggles to Default"), tr("RESET"), tr("Reset your toggle settings back to their default settings.")); + 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, [=]() { if (ConfirmationDialog::confirm(tr("Are you sure you want to completely reset all of your toggle settings?"), tr("Reset"), this)) { std::thread([=] { diff --git a/selfdrive/frogpilot/ui/qt/offroad/vehicle_settings.cc b/selfdrive/frogpilot/ui/qt/offroad/vehicle_settings.cc index d9ed9c4e..5589deee 100644 --- a/selfdrive/frogpilot/ui/qt/offroad/vehicle_settings.cc +++ b/selfdrive/frogpilot/ui/qt/offroad/vehicle_settings.cc @@ -110,11 +110,11 @@ FrogPilotVehiclesPanel::FrogPilotVehiclesPanel(FrogPilotSettingsWindow *parent) addItem(selectModelButton); selectModelButton->setVisible(false); - ParamControl *forceFingerprint = new ParamControl("ForceFingerprint", tr("Disable Automatic Fingerprint Detection"), tr("Forces the selected fingerprint and prevents it from ever changing."), ""); + forceFingerprint = new ParamControl("ForceFingerprint", tr("Disable Automatic Fingerprint Detection"), tr("Forces the selected fingerprint and prevents it from ever changing."), ""); addItem(forceFingerprint); bool disableOpenpilotLongState = params.getBool("DisableOpenpilotLongitudinal"); - disableOpenpilotLong = new ToggleControl(tr("Disable openpilot Longitudinal Control"), tr("Disable openpilot longitudinal control and use stock ACC instead."), "", disableOpenpilotLongState); + disableOpenpilotLong = new ToggleControl(tr("Disable openpilot Longitudinal Control"), tr("Disables openpilot longitudinal control and uses the car's stock ACC instead."), "", disableOpenpilotLongState); QObject::connect(disableOpenpilotLong, &ToggleControl::toggleFlipped, [this](bool state) { if (state) { if (FrogPilotConfirmationDialog::yesorno(tr("Are you sure you want to completely disable openpilot longitudinal control?"), this)) { @@ -134,20 +134,20 @@ FrogPilotVehiclesPanel::FrogPilotVehiclesPanel(FrogPilotSettingsWindow *parent) addItem(disableOpenpilotLong); std::vector> vehicleToggles { - {"VoltSNG", tr("2017 Volt Stop and Go Hack"), tr("Force stop and go for the 2017 Chevy Volt."), ""}, - {"ExperimentalGMTune", tr("Experimental GM Tune"), tr("FrogsGoMoo's experimental GM tune that is based on nothing but guesswork. Use at your own risk!"), ""}, - {"LongPitch", tr("Uphill/Downhill Smoothing"), tr("Smoothen the car’s gas and brake response when driving on slopes."), ""}, - {"NewLongAPIGM", tr("Use comma's New Longitudinal API"), tr("Comma's new longitudinal control system that has shown great improvement with acceleration and braking, but has a few issues on some GM vehicles."), ""}, + {"VoltSNG", tr("2017 Volt Stop and Go Hack"), tr("Forces stop and go for the 2017 Chevy Volt."), ""}, + {"ExperimentalGMTune", tr("Experimental GM Tune"), tr("Enables FrogsGoMoo's experimental GM tune that is based on nothing but guesswork. Use at your own risk!"), ""}, + {"LongPitch", tr("Uphill/Downhill Smoothing"), tr("Smoothens the gas and brake response when driving on slopes."), ""}, + {"NewLongAPIGM", tr("Use comma's New Longitudinal API"), tr("Enables comma's new control system that has shown great improvement with acceleration and braking, but has a few issues on some GM vehicles."), ""}, - {"NewLongAPI", tr("Use comma's New Longitudinal API"), tr("Use comma's new longitudinal control system that has shown great improvement with acceleration and braking, but has a few issues on Hyundai/Kia/Genesis."), ""}, + {"NewLongAPI", tr("Use comma's New Longitudinal API"), tr("Enables comma's new control system that has shown great improvement with acceleration and braking, but has a few issues on Hyundai/Kia/Genesis."), ""}, {"CrosstrekTorque", tr("Subaru Crosstrek Torque Increase"), tr("Increases the maximum allowed torque for the Subaru Crosstrek."), ""}, - {"ToyotaDoors", tr("Automatically Lock/Unlock Doors"), tr("Automatically lock the doors when in drive and unlock when in park."), ""}, - {"ClusterOffset", tr("Cluster Speed Offset"), tr("Set the cluster offset openpilot uses to try and match the speed displayed on the dash."), ""}, - {"NewToyotaTune", tr("comma's New Toyota/Lexus Tune"), tr("Activate comma's latest Toyota tuning, expertly crafted by Shane for enhanced vehicle performance."), ""}, - {"FrogsGoMoosTweak", tr("FrogsGoMoo's Personal Tweaks"), tr("Use FrogsGoMoo's personal tweaks to the Toyota tune focused around his 2019 Lexus ES 350 to take off a bit quicker and stop a bit smoother."), ""}, - {"SNGHack", tr("Stop and Go Hack"), tr("Force stop and go for vehicles without stock stop and go functionality."), ""}, + {"ToyotaDoors", tr("Automatically Lock/Unlock Doors"), tr("Automatically locks the doors when in drive and unlocks when in park."), ""}, + {"ClusterOffset", tr("Cluster Speed Offset"), tr("Sets the cluster offset openpilot uses to try and match the speed displayed on the dash."), ""}, + {"NewToyotaTune", tr("comma's New Toyota/Lexus Tune"), tr("Enables comma's latest Toyota tuning, expertly crafted by Shane for enhanced vehicle performance."), ""}, + {"FrogsGoMoosTweak", tr("FrogsGoMoo's Personal Tweaks"), tr("Enables FrogsGoMoo's personal tweaks to the Toyota tune focused around his 2019 Lexus ES 350 to take off a bit quicker and stop a bit smoother."), ""}, + {"SNGHack", tr("Stop and Go Hack"), tr("Forces stop and go for vehicles without stock stop and go functionality."), ""}, }; for (const auto &[param, title, desc, icon] : vehicleToggles) { @@ -159,7 +159,7 @@ FrogPilotVehiclesPanel::FrogPilotVehiclesPanel(FrogPilotSettingsWindow *parent) vehicleToggle = new FrogPilotButtonToggleControl(param, title, desc, lockToggles, lockToggleNames); } else if (param == "ClusterOffset") { std::vector clusterOffsetToggleNames{"Reset"}; - vehicleToggle = new FrogPilotParamValueButtonControl(param, title, desc, icon, 1.000, 1.050, "x", std::map(), 0.001, {}, clusterOffsetToggleNames, false); + vehicleToggle = new FrogPilotParamValueButtonControl(param, title, desc, icon, 1.000, 1.050, "x", std::map(), 0.001, {}, clusterOffsetToggleNames, false, false); } else { vehicleToggle = new ParamControl(param, title, desc, icon); @@ -216,11 +216,18 @@ FrogPilotVehiclesPanel::FrogPilotVehiclesPanel(FrogPilotSettingsWindow *parent) QObject::connect(uiState(), &UIState::uiUpdate, this, &FrogPilotVehiclesPanel::updateState); } +void FrogPilotVehiclesPanel::showEvent(QShowEvent *event) { + customizationLevel = parent->customizationLevel; + + updateToggles(); +} + void FrogPilotVehiclesPanel::updateCarToggles() { disableOpenpilotLongitudinal = parent->disableOpenpilotLongitudinal; hasExperimentalOpenpilotLongitudinal = parent->hasExperimentalOpenpilotLongitudinal; hasOpenpilotLongitudinal = parent->hasOpenpilotLongitudinal; hasSNG = parent->hasSNG; + isBolt = parent->isBolt; isGMPCMCruise = parent->isGMPCMCruise; isImpreza = parent->isImpreza; isToyotaTuneSupported = parent->isToyotaTuneSupported; @@ -230,7 +237,9 @@ void FrogPilotVehiclesPanel::updateCarToggles() { } void FrogPilotVehiclesPanel::updateState(const UIState &s) { - if (!isVisible()) return; + if (!isVisible()) { + return; + } started = s.scene.started; } @@ -243,7 +252,8 @@ void FrogPilotVehiclesPanel::setModels() { void FrogPilotVehiclesPanel::updateToggles() { setUpdatesEnabled(false); - disableOpenpilotLong->setVisible((hasOpenpilotLongitudinal && !hasExperimentalOpenpilotLongitudinal && !isGMPCMCruise) || disableOpenpilotLongitudinal); + disableOpenpilotLong->setVisible((hasOpenpilotLongitudinal && !hasExperimentalOpenpilotLongitudinal && !isGMPCMCruise && customizationLevel == 2) || disableOpenpilotLongitudinal); + forceFingerprint ->setVisible(customizationLevel == 2 || isBolt); selectMakeButton->setValue(carMake); selectModelButton->setValue(carModel); @@ -294,6 +304,14 @@ void FrogPilotVehiclesPanel::updateToggles() { toggle->setVisible(setVisible); } + 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); + toggles["NewToyotaTune"]->setVisible(toggles["NewToyotaTune"]->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 568798a1..1eb992d3 100644 --- a/selfdrive/frogpilot/ui/qt/offroad/vehicle_settings.h +++ b/selfdrive/frogpilot/ui/qt/offroad/vehicle_settings.h @@ -12,12 +12,14 @@ public: private: void setModels(); + void showEvent(QShowEvent *event) override; void updateCarToggles(); void updateState(const UIState &s); void updateToggles(); std::set gmKeys = { - "ExperimentalGMTune", "LongPitch", "NewLongAPIGM", "VoltSNG" + "ExperimentalGMTune", "LongPitch", "NewLongAPIGM", + "VoltSNG" }; std::set hyundaiKeys = { @@ -29,8 +31,8 @@ private: }; std::set longitudinalKeys = { - "ExperimentalGMTune", "LongPitch", "NewLongAPI", "NewLongAPIGM", - "SNGHack", "VoltSNG" + "ExperimentalGMTune", "LongPitch", "NewLongAPI", + "NewLongAPIGM", "SNGHack", "VoltSNG" }; std::set sngKeys = { @@ -42,8 +44,8 @@ private: }; std::set toyotaKeys = { - "ClusterOffset", "FrogsGoMoosTweak", "NewToyotaTune", "SNGHack", - "ToyotaDoors" + "ClusterOffset", "FrogsGoMoosTweak", "NewToyotaTune", + "SNGHack", "ToyotaDoors" }; std::set toyotaTuneKeys = { @@ -59,12 +61,14 @@ private: FrogPilotSettingsWindow *parent; + QMap carModels; + QString carMake; QString carModel; QStringList models; - QMap carModels; + ParamControl *forceFingerprint; Params params; @@ -74,11 +78,14 @@ private: bool hasExperimentalOpenpilotLongitudinal; bool hasOpenpilotLongitudinal; bool hasSNG; + bool isBolt; bool isGMPCMCruise; bool isImpreza; bool isToyotaTuneSupported; bool isVolt; bool started; + int customizationLevel; + std::map toggles; }; diff --git a/selfdrive/frogpilot/ui/qt/offroad/visual_settings.cc b/selfdrive/frogpilot/ui/qt/offroad/visual_settings.cc index bfa9b392..e058e474 100644 --- a/selfdrive/frogpilot/ui/qt/offroad/visual_settings.cc +++ b/selfdrive/frogpilot/ui/qt/offroad/visual_settings.cc @@ -2,40 +2,253 @@ FrogPilotVisualsPanel::FrogPilotVisualsPanel(FrogPilotSettingsWindow *parent) : FrogPilotListWidget(parent), parent(parent) { const std::vector> visualToggles { - {"CustomUI", tr("Onroad UI Widgets"), tr("Custom FrogPilot widgets used in the onroad user interface."), "../assets/offroad/icon_road.png"}, - {"Compass", tr("Compass"), tr("A compass in the onroad UI to show the current driving direction."), ""}, - {"DynamicPathWidth", tr("Dynamic Path Width"), tr("Automatically adjust the width of the driving path display based on the current engagement state:\n\nFully engaged = 100%\nAlways On Lateral Active = 75%\nFully disengaged = 50%"), ""}, - {"PedalsOnUI", tr("Gas/Brake Pedal Indicators"), tr("Pedal indicators in the onroad UI that change opacity based on the pressure applied."), ""}, - {"CustomPaths", tr("Paths"), tr("Projected acceleration path, detected lanes, and vehicles in the blind spot."), ""}, - {"RoadNameUI", tr("Road Name"), tr("The current road name is displayed at the bottom of the screen using data from 'OpenStreetMap'."), ""}, - {"RotatingWheel", tr("Rotating Steering Wheel"), tr("The steering wheel in the onroad UI rotates along with your steering wheel movements."), ""}, + {"QOLVisuals", tr("Accessibility"), tr("Visual features to improve your overall openpilot experience."), "../frogpilot/assets/toggle_icons/icon_accessibility.png"}, + {"CameraView", tr("Camera View"), tr("Changes the camera view display. This is purely a visual change and doesn't impact how openpilot drives."), ""}, + {"OnroadDistanceButton", tr("Onroad Personality Button"), tr("Displays the current driving personality on the screen. Tap to switch personalities, or long press for 2.5 seconds to activate 'Traffic' mode."), ""}, + {"DriverCamera", tr("Show Driver Camera When In Reverse"), tr("Displays the driver camera feed when the vehicle is in reverse."), ""}, + {"StandbyMode", tr("Standby Mode"), tr("Turns the screen off when driving and automatically wakes it up if engagement state changes or important alerts occur."), ""}, + {"StoppedTimer", tr("Stopped Timer"), tr("Activates a timer when stopped to indicate how long the vehicle has been stopped for."), ""}, - {"QOLVisuals", tr("Quality of Life Improvements"), tr("Miscellaneous visual focused features to improve your overall openpilot experience."), "../frogpilot/assets/toggle_icons/quality_of_life.png"}, - {"BigMap", tr("Larger Map Display"), tr("A larger size of the map in the onroad UI for easier navigation readings."), ""}, - {"MapStyle", tr("Map Style"), tr("Custom map styles for the map used during navigation."), ""}, - {"StandbyMode", tr("Screen Standby Mode"), tr("The screen is turned off after it times out when driving, but it automatically wakes up if engagement state changes or important alerts occur."), ""}, - {"DriverCamera", tr("Show Driver Camera When In Reverse"), tr("The driver camera feed is displayed when the vehicle is in reverse."), ""}, - {"StoppedTimer", tr("Stopped Timer"), tr("A timer on the onroad UI to indicate how long the vehicle has been stopped."), ""} + {"AdvancedCustomUI", tr("Advanced UI Controls"), tr("Advanced features to fine tune your personalized UI."), "../frogpilot/assets/toggle_icons/icon_advanced_device.png"}, + {"HideSpeed", tr("Hide Current Speed"), tr("Hides the current speed."), ""}, + {"HideLeadMarker", tr("Hide Lead Marker"), tr("Hides the marker for the vehicle ahead."), ""}, + {"HideMapIcon", tr("Hide Map Icon"), tr("Hides the map icon."), ""}, + {"HideMaxSpeed", tr("Hide Max Speed"), tr("Hides the max speed."), ""}, + {"HideAlerts", tr("Hide Non-Critical Alerts"), tr("Hides non-critical alerts."), ""}, + {"WheelSpeed", tr("Use Wheel Speed"), tr("Uses the wheel speed instead of the cluster speed. This is purely a visual change and doesn't impact how openpilot drives."), ""}, + + {"DeveloperUI", tr("Developer Metrics"), tr("Show detailed information about openpilot's internal operations."), "../assets/offroad/icon_shell.png"}, + {"BorderMetrics", tr("Border Metrics"), tr("Displays performance metrics around the edge of the screen while driving."), ""}, + {"FPSCounter", tr("FPS Display"), tr("Displays the 'Frames Per Second' (FPS) at the bottom of the screen while driving."), ""}, + {"LateralMetrics", tr("Lateral Metrics"), tr("Displays metrics related to steering control at the top of the screen while driving."), ""}, + {"LongitudinalMetrics", tr("Longitudinal Metrics"), tr("Displays metrics related to acceleration, speed, and desired following distance at the top of the screen while driving."), ""}, + {"NumericalTemp", tr("Numerical Temperature Gauge"), tr("Shows exact temperature readings instead of status labels like 'GOOD', 'OK', or 'HIGH' in the sidebar."), ""}, + {"SidebarMetrics", tr("Sidebar"), tr("Displays system information like CPU, GPU, RAM usage, IP address, and storage space in the sidebar."), ""}, + {"UseSI", tr("Use International System of Units"), tr("Displays measurements using the 'International System of Units' (SI)."), ""}, + + {"ModelUI", tr("Model UI"), tr("Customize the model visualizations on the screen."), "../frogpilot/assets/toggle_icons/icon_vtc.png"}, + {"DynamicPathWidth", tr("Dynamic Path Width"), tr("Automatically adjusts the width of the driving path display based on the current engagement state:\n\nFully engaged = 100%\nAlways On Lateral Active = 75%\nFully disengaged = 50%"), ""}, + {"LaneLinesWidth", tr("Lane Lines Width"), tr("Controls the thickness the lane lines appear on the display.\n\nDefault matches the MUTCD standard of 4 inches."), ""}, + {"PathEdgeWidth", tr("Path Edges Width"), tr("Controls the width of the edges of the driving path to represent different modes and statuses.\n\nDefault is 20% of the total path width.\n\nColor Guide:\n- Blue: Navigation\n- Light Blue: 'Always On Lateral'\n- Green: Default\n- Orange: 'Experimental Mode'\n- Red: 'Traffic Mode'\n- Yellow: 'Conditional Experimental Mode' Overridden"), ""}, + {"PathWidth", tr("Path Width"), tr("Controls how wide the driving path appears on your screen.\n\nDefault (6.1 feet / 1.9 meters) matches the width of a 2019 Lexus ES 350."), ""}, + {"RoadEdgesWidth", tr("Road Edges Width"), tr("Controls how thick the road edges appear on the display.\n\nDefault matches half of the MUTCD standard lane line width of 4 inches."), ""}, + {"ShowStoppingPoint", tr("Stopping Point"), tr("Displays an image on the screen where openpilot is detecting a potential red light/stop sign."), ""}, + {"UnlimitedLength", tr("'Unlimited' Road UI"), tr("Extends the display of the path, lane lines, and road edges as far as the model can see."), ""}, + + {"NavigationUI", tr("Navigation Widgets"), tr("Wwidgets focused around navigation."), "../frogpilot/assets/toggle_icons/icon_map.png"}, + {"BigMap", tr("Larger Map Display"), tr("Increases the size of the map for easier navigation readings."), ""}, + {"MapStyle", tr("Map Style"), tr("Swaps out the stock map style for community created ones."), ""}, + {"RoadNameUI", tr("Road Name"), tr("Displays the current road name at the bottom of the screen using data from 'OpenStreetMap'."), ""}, + {"ShowSLCOffset", tr("Show Speed Limit Offset"), tr("Displays the speed limit offset separately in the onroad UI when using 'Speed Limit Controller'."), ""}, + {"UseVienna", tr("Use Vienna-Style Speed Signs"), tr("Forces Vienna-style (EU) speed limit signs instead of MUTCD (US)."), ""}, + + {"CustomUI", tr("Onroad Screen Widgets"), tr("Custom FrogPilot widgets used in the onroad user interface."), "../assets/offroad/icon_road.png"}, + {"AccelerationPath", tr("Acceleration Path"), tr("Projects a path based on openpilot's current desired acceleration or deceleration."), ""}, + {"AdjacentPath", tr("Adjacent Lanes"), tr("Projects paths for the adjascent lanes."), ""}, + {"BlindSpotPath", tr("Blind Spot Path"), tr("Projects a red path when vehicles are detected in the blind spot for the respective lane."), ""}, + {"Compass", tr("Compass"), tr("Displays a compass to show the current driving direction."), ""}, + {"PedalsOnUI", tr("Gas / Brake Pedal Indicators"), tr("Displays pedal indicators to indicate when either of the pedals are currently being used."), ""}, + {"RotatingWheel", tr("Rotating Steering Wheel"), tr("Rotates the steering wheel in the onroad UI rotates along with your steering wheel movements."), ""} }; for (const auto &[param, title, desc, icon] : visualToggles) { AbstractControl *visualToggle; - if (param == "CustomUI") { + if (param == "QOLVisuals") { + FrogPilotParamManageControl *qolToggle = new FrogPilotParamManageControl(param, title, desc, icon); + QObject::connect(qolToggle, &FrogPilotParamManageControl::manageButtonClicked, [this]() { + std::set modifiedAccessibilityKeys = accessibilityKeys; + + if (disableOpenpilotLongitudinal || !hasOpenpilotLongitudinal) { + 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; + } else if (param == "CameraView") { + std::vector cameraOptions{tr("Auto"), tr("Driver"), tr("Standard"), tr("Wide")}; + ButtonParamControl *preferredCamera = new ButtonParamControl(param, title, desc, icon, cameraOptions); + visualToggle = preferredCamera; + + } else if (param == "AdvancedCustomUI") { + FrogPilotParamManageControl *advancedCustomUIToggle = new FrogPilotParamManageControl(param, title, desc, icon); + QObject::connect(advancedCustomUIToggle, &FrogPilotParamManageControl::manageButtonClicked, [this]() { + std::set modifiedAdvancedCustomOnroadUIKeys = advancedCustomOnroadUIKeys; + + if (disableOpenpilotLongitudinal || !hasOpenpilotLongitudinal) { + modifiedAdvancedCustomOnroadUIKeys.erase("HideLeadMarker"); + } + + showToggles(modifiedAdvancedCustomOnroadUIKeys); + }); + visualToggle = advancedCustomUIToggle; + + } else if (param == "DeveloperUI") { + FrogPilotParamManageControl *developerUIToggle = new FrogPilotParamManageControl(param, title, desc, icon); + QObject::connect(developerUIToggle, &FrogPilotParamManageControl::manageButtonClicked, [this]() { + borderMetricsBtn->setVisibleButton(0, hasBSM); + lateralMetricsBtn->setVisibleButton(1, hasAutoTune); + longitudinalMetricsBtn->setVisibleButton(0, hasRadar); + + std::set modifiedDeveloperUIKeys = developerUIKeys; + + if (disableOpenpilotLongitudinal || !hasOpenpilotLongitudinal) { + modifiedDeveloperUIKeys.erase("LongitudinalMetrics"); + } + + showToggles(modifiedDeveloperUIKeys); + }); + visualToggle = developerUIToggle; + } else if (param == "BorderMetrics") { + std::vector borderToggles{"BlindSpotMetrics", "ShowSteering", "SignalMetrics"}; + std::vector borderToggleNames{tr("Blind Spot"), tr("Steering Torque"), tr("Turn Signal")}; + borderMetricsBtn = new FrogPilotButtonToggleControl(param, title, desc, borderToggles, borderToggleNames); + visualToggle = borderMetricsBtn; + } else if (param == "LateralMetrics") { + std::vector lateralToggles{"AdjacentPathMetrics", "TuningInfo"}; + std::vector lateralToggleNames{tr("Adjacent Path Metrics"), tr("Auto Tune")}; + lateralMetricsBtn = new FrogPilotButtonToggleControl(param, title, desc, lateralToggles, lateralToggleNames); + visualToggle = lateralMetricsBtn; + } else if (param == "LongitudinalMetrics") { + std::vector longitudinalToggles{"AdjacentLeadsUI", "LeadInfo", "JerkInfo"}; + std::vector longitudinalToggleNames{tr("Adjacent Leads"), tr("Lead Info"), tr("Jerk Values")}; + longitudinalMetricsBtn = new FrogPilotButtonToggleControl(param, title, desc, longitudinalToggles, longitudinalToggleNames); + visualToggle = longitudinalMetricsBtn; + } else if (param == "NumericalTemp") { + std::vector temperatureToggles{"Fahrenheit"}; + std::vector temperatureToggleNames{tr("Fahrenheit")}; + visualToggle = new FrogPilotButtonToggleControl(param, title, desc, temperatureToggles, temperatureToggleNames); + } else if (param == "SidebarMetrics") { + std::vector sidebarMetricsToggles{"ShowCPU", "ShowGPU", "ShowIP", "ShowMemoryUsage", "ShowStorageLeft", "ShowStorageUsed"}; + std::vector sidebarMetricsToggleNames{tr("CPU"), tr("GPU"), tr("IP"), tr("RAM"), tr("SSD Left"), tr("SSD Used")}; + FrogPilotButtonToggleControl *sidebarMetricsToggle = new FrogPilotButtonToggleControl(param, title, desc, sidebarMetricsToggles, sidebarMetricsToggleNames, false, 150); + QObject::connect(sidebarMetricsToggle, &FrogPilotButtonToggleControl::buttonClicked, [sidebarMetricsToggle, this](int index) { + if (index == 0) { + params.putBool("ShowGPU", false); + } else if (index == 1) { + params.putBool("ShowCPU", false); + } else if (index == 3) { + params.putBool("ShowStorageLeft", false); + params.putBool("ShowStorageUsed", false); + } else if (index == 4) { + params.putBool("ShowMemoryUsage", false); + params.putBool("ShowStorageUsed", false); + } else if (index == 5) { + params.putBool("ShowMemoryUsage", false); + params.putBool("ShowStorageLeft", false); + } + sidebarMetricsToggle->refresh(); + }); + visualToggle = sidebarMetricsToggle; + + } else if (param == "ModelUI") { + FrogPilotParamManageControl *modelUIToggle = new FrogPilotParamManageControl(param, title, desc, icon); + QObject::connect(modelUIToggle, &FrogPilotParamManageControl::manageButtonClicked, [this]() { + std::set modifiedModelUIKeys = modelUIKeys; + + if (disableOpenpilotLongitudinal || !hasOpenpilotLongitudinal) { + modifiedModelUIKeys.erase("ShowStoppingPoint"); + } + + showToggles(modifiedModelUIKeys); + }); + visualToggle = modelUIToggle; + } else if (param == "LaneLinesWidth" || param == "RoadEdgesWidth") { + visualToggle = new FrogPilotParamValueControl(param, title, desc, icon, 0, 24, tr(" inches")); + } else if (param == "PathEdgeWidth") { + visualToggle = new FrogPilotParamValueControl(param, title, desc, icon, 0, 100, tr("%")); + } else if (param == "PathWidth") { + visualToggle = new FrogPilotParamValueControl(param, title, desc, icon, 0, 10, tr(" feet"), std::map(), 0.1); + } else if (param == "ShowStoppingPoint") { + std::vector stoppingPointToggles{"ShowStoppingPointMetrics"}; + std::vector stoppingPointToggleNames{tr("Show Distance")}; + visualToggle = new FrogPilotButtonToggleControl(param, title, desc, stoppingPointToggles, stoppingPointToggleNames); + + } else if (param == "NavigationUI") { FrogPilotParamManageControl *customUIToggle = new FrogPilotParamManageControl(param, title, desc, icon); QObject::connect(customUIToggle, &FrogPilotParamManageControl::manageButtonClicked, [this]() { - customPathsBtn->setVisibleButton(0, hasBSM); + std::set modifiedNavigationUIKeys = navigationUIKeys; + if (disableOpenpilotLongitudinal || !hasOpenpilotLongitudinal || !params.getBool("SpeedLimitController")) { + modifiedNavigationUIKeys.erase("ShowSLCOffset"); + } + + if (customizationLevel != 2) { + modifiedNavigationUIKeys.erase("MapStyle"); + modifiedNavigationUIKeys.erase("RoadNameUI"); + modifiedNavigationUIKeys.erase("ShowSLCOffset"); + modifiedNavigationUIKeys.erase("UseVienna"); + } + + showToggles(modifiedNavigationUIKeys); + }); + visualToggle = customUIToggle; + } else if (param == "BigMap") { + std::vector mapToggles{"FullMap"}; + std::vector mapToggleNames{tr("Full Map")}; + visualToggle = new FrogPilotButtonToggleControl(param, title, desc, mapToggles, mapToggleNames); + } else if (param == "MapStyle") { + QMap styleMap { + {0, tr("Stock openpilot")}, + {1, tr("Mapbox Streets")}, + {2, tr("Mapbox Outdoors")}, + {3, tr("Mapbox Light")}, + {4, tr("Mapbox Dark")}, + {5, tr("Mapbox Satellite")}, + {6, tr("Mapbox Satellite Streets")}, + {7, tr("Mapbox Navigation Day")}, + {8, tr("Mapbox Navigation Night")}, + {9, tr("Mapbox Traffic Night")}, + {10, tr("mike854's (Satellite hybrid)")} + }; + + ButtonControl *mapStyleButton = new ButtonControl(title, tr("SELECT"), desc); + QObject::connect(mapStyleButton, &ButtonControl::clicked, [this, mapStyleButton, styleMap]() { + QString selection = MultiOptionDialog::getSelection(tr("Select a map style"), styleMap.values(), "", this); + if (!selection.isEmpty()) { + int selectedStyle = styleMap.key(selection); + params.putInt("MapStyle", selectedStyle); + mapStyleButton->setValue(selection); + updateFrogPilotToggles(); + } + }); + int currentStyle = params.getInt("MapStyle"); + mapStyleButton->setValue(styleMap[currentStyle]); + + visualToggle = mapStyleButton; + + } else if (param == "CustomUI") { + FrogPilotParamManageControl *customUIToggle = new FrogPilotParamManageControl(param, title, desc, icon); + QObject::connect(customUIToggle, &FrogPilotParamManageControl::manageButtonClicked, [this]() { std::set modifiedCustomOnroadUIKeys = customOnroadUIKeys; + if (!hasBSM) { + modifiedCustomOnroadUIKeys.erase("BlindSpotPath"); + } + + if (disableOpenpilotLongitudinal || !hasOpenpilotLongitudinal) { + modifiedCustomOnroadUIKeys.erase("AccelerationPath"); + modifiedCustomOnroadUIKeys.erase("PedalsOnUI"); + } + + if (customizationLevel != 2) { + modifiedCustomOnroadUIKeys.erase("AdjacentPath"); + } + showToggles(modifiedCustomOnroadUIKeys); }); visualToggle = customUIToggle; - } else if (param == "CustomPaths") { - std::vector pathToggles{"AccelerationPath", "AdjacentPath", "BlindSpotPath"}; - std::vector pathToggleNames{tr("Acceleration"), tr("Adjacent"), tr("Blind Spot")}; - customPathsBtn = new FrogPilotButtonToggleControl(param, title, desc, pathToggles, pathToggleNames); - visualToggle = customPathsBtn; } else if (param == "PedalsOnUI") { std::vector pedalsToggles{"DynamicPedalsOnUI", "StaticPedalsOnUI"}; std::vector pedalsToggleNames{tr("Dynamic"), tr("Static")}; @@ -49,49 +262,6 @@ FrogPilotVisualsPanel::FrogPilotVisualsPanel(FrogPilotSettingsWindow *parent) : }); visualToggle = pedalsToggle; - } else if (param == "QOLVisuals") { - FrogPilotParamManageControl *qolToggle = new FrogPilotParamManageControl(param, title, desc, icon); - QObject::connect(qolToggle, &FrogPilotParamManageControl::manageButtonClicked, [this]() { - showToggles(qolKeys); - }); - visualToggle = qolToggle; - } else if (param == "BigMap") { - std::vector mapToggles{"FullMap"}; - std::vector mapToggleNames{tr("Full Map")}; - visualToggle = new FrogPilotButtonToggleControl(param, title, desc, mapToggles, mapToggleNames); - } else if (param == "MapStyle") { - QMap styleMap = { - {0, tr("Stock openpilot")}, - {1, tr("Mapbox Streets")}, - {2, tr("Mapbox Outdoors")}, - {3, tr("Mapbox Light")}, - {4, tr("Mapbox Dark")}, - {5, tr("Mapbox Satellite")}, - {6, tr("Mapbox Satellite Streets")}, - {7, tr("Mapbox Navigation Day")}, - {8, tr("Mapbox Navigation Night")}, - {9, tr("Mapbox Traffic Night")}, - {10, tr("mike854's (Satellite hybrid)")}, - }; - - QStringList styles = styleMap.values(); - ButtonControl *mapStyleButton = new ButtonControl(title, tr("SELECT"), desc); - QObject::connect(mapStyleButton, &ButtonControl::clicked, [=]() { - QStringList styles = styleMap.values(); - QString selection = MultiOptionDialog::getSelection(tr("Select a map style"), styles, "", this); - if (!selection.isEmpty()) { - int selectedStyle = styleMap.key(selection); - params.putIntNonBlocking("MapStyle", selectedStyle); - mapStyleButton->setValue(selection); - updateFrogPilotToggles(); - } - }); - - int currentStyle = params.getInt("MapStyle"); - mapStyleButton->setValue(styleMap[currentStyle]); - - visualToggle = mapStyleButton; - } else { visualToggle = new ParamControl(param, title, desc, icon); } @@ -112,14 +282,67 @@ 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; + hasAutoTune = parent->hasAutoTune; hasBSM = parent->hasBSM; + hasOpenpilotLongitudinal = parent->hasOpenpilotLongitudinal; + hasRadar = parent->hasRadar; hideToggles(); } +void FrogPilotVisualsPanel::updateMetric() { + bool previousIsMetric = isMetric; + isMetric = params.getBool("IsMetric"); + + if (isMetric != previousIsMetric) { + double smallDistanceConversion = isMetric ? INCH_TO_CM : CM_TO_INCH; + double distanceConversion = isMetric ? FOOT_TO_METER : METER_TO_FOOT; + + params.putFloatNonBlocking("LaneLinesWidth", params.getFloat("LaneLinesWidth") * smallDistanceConversion); + params.putFloatNonBlocking("RoadEdgesWidth", params.getFloat("RoadEdgesWidth") * smallDistanceConversion); + + params.putFloatNonBlocking("PathWidth", params.getFloat("PathWidth") * distanceConversion); + } + + FrogPilotParamValueControl *laneLinesWidthToggle = static_cast(toggles["LaneLinesWidth"]); + FrogPilotParamValueControl *pathWidthToggle = static_cast(toggles["PathWidth"]); + FrogPilotParamValueControl *roadEdgesWidthToggle = static_cast(toggles["RoadEdgesWidth"]); + + if (isMetric) { + laneLinesWidthToggle->setDescription(tr("Adjust how thick the lane lines appear on the display.\n\nDefault matches the Vienna standard of 10 centimeters.")); + roadEdgesWidthToggle->setDescription(tr("Adjust how thick the road edges appear on the display.\n\nDefault matches half of the Vienna standard of 10 centimeters.")); + + laneLinesWidthToggle->updateControl(0, 60, tr(" centimeters")); + roadEdgesWidthToggle->updateControl(0, 60, tr(" centimeters")); + + pathWidthToggle->updateControl(0, 3, tr(" meters")); + } else { + laneLinesWidthToggle->setDescription(tr("Adjust how thick the lane lines appear on the display.\n\nDefault matches the MUTCD standard of 4 inches.")); + roadEdgesWidthToggle->setDescription(tr("Adjust how thick the road edges appear on the display.\n\nDefault matches half of the MUTCD standard of 4 inches.")); + + laneLinesWidthToggle->updateControl(0, 24, tr(" inches")); + roadEdgesWidthToggle->updateControl(0, 24, tr(" inches")); + + pathWidthToggle->updateControl(0, 10, tr(" feet")); + } +} + void FrogPilotVisualsPanel::showToggles(const std::set &keys) { setUpdatesEnabled(false); @@ -135,12 +358,23 @@ void FrogPilotVisualsPanel::hideToggles() { setUpdatesEnabled(false); for (auto &[key, toggle] : toggles) { - bool subToggles = customOnroadUIKeys.find(key) != customOnroadUIKeys.end() || - qolKeys.find(key) != qolKeys.end(); + bool subToggles = accessibilityKeys.find(key) != accessibilityKeys.end() || + advancedCustomOnroadUIKeys.find(key) != advancedCustomOnroadUIKeys.end() || + customOnroadUIKeys.find(key) != customOnroadUIKeys.end() || + developerUIKeys.find(key) != developerUIKeys.end() || + modelUIKeys.find(key) != modelUIKeys.end() || + navigationUIKeys.find(key) != navigationUIKeys.end(); toggle->setVisible(!subToggles); } + 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); + setUpdatesEnabled(true); update(); } diff --git a/selfdrive/frogpilot/ui/qt/offroad/visual_settings.h b/selfdrive/frogpilot/ui/qt/offroad/visual_settings.h index 0a4dd5a5..ea88ee6c 100644 --- a/selfdrive/frogpilot/ui/qt/offroad/visual_settings.h +++ b/selfdrive/frogpilot/ui/qt/offroad/visual_settings.h @@ -15,26 +15,59 @@ signals: private: void hideToggles(); + void showEvent(QShowEvent *event) override; void showToggles(const std::set &keys); void updateCarToggles(); + void updateMetric(); - std::set customOnroadUIKeys = { - "Compass", "CustomPaths", "DynamicPathWidth", - "PedalsOnUI", "RoadNameUI", "RotatingWheel" - }; - - std::set qolKeys = { - "BigMap", "DriverCamera", "MapStyle", + std::set accessibilityKeys = { + "CameraView", "DriverCamera", "OnroadDistanceButton", "StandbyMode", "StoppedTimer" }; - FrogPilotSettingsWindow *parent; + std::set advancedCustomOnroadUIKeys = { + "HideAlerts", "HideLeadMarker", "HideMapIcon", + "HideMaxSpeed", "HideSpeed", "WheelSpeed" + }; - FrogPilotButtonToggleControl *customPathsBtn; + std::set customOnroadUIKeys = { + "AccelerationPath", "AdjacentPath", "BlindSpotPath", + "Compass", "PedalsOnUI", "RotatingWheel" + }; + + std::set developerUIKeys = { + "BorderMetrics", "FPSCounter", "LateralMetrics", + "LongitudinalMetrics", "NumericalTemp", + "SidebarMetrics", "UseSI" + }; + + std::set modelUIKeys = { + "DynamicPathWidth", "LaneLinesWidth", "PathEdgeWidth", + "PathWidth", "RoadEdgesWidth", "ShowStoppingPoint", + "UnlimitedLength" + }; + + std::set navigationUIKeys = { + "BigMap", "MapStyle", "RoadNameUI", + "ShowSLCOffset", "UseVienna" + }; + + FrogPilotButtonToggleControl *borderMetricsBtn; + FrogPilotButtonToggleControl *lateralMetricsBtn; + FrogPilotButtonToggleControl *longitudinalMetricsBtn; + + FrogPilotSettingsWindow *parent; Params params; + bool disableOpenpilotLongitudinal; + bool hasAutoTune; bool hasBSM; + bool hasOpenpilotLongitudinal; + bool hasRadar; + bool isMetric = params.getBool("IsMetric"); + + int customizationLevel; std::map toggles; }; diff --git a/selfdrive/frogpilot/ui/qt/widgets/drive_stats.cc b/selfdrive/frogpilot/ui/qt/widgets/drive_stats.cc index 07586a88..bcae7692 100644 --- a/selfdrive/frogpilot/ui/qt/widgets/drive_stats.cc +++ b/selfdrive/frogpilot/ui/qt/widgets/drive_stats.cc @@ -61,13 +61,6 @@ void DriveStats::addStatsLayouts(const QString &title, StatsLabels &labels, bool main_layout->addStretch(1); } -void DriveStats::updateFrogPilotStats(const QJsonObject &obj, StatsLabels &labels) { - labels.routes->setText(QString::number(paramsTracking.getInt("FrogPilotDrives"))); - labels.distance->setText(QString::number(int(paramsTracking.getFloat("FrogPilotKilometers") * (metric ? 1 : KM_TO_MILE)))); - labels.distance_unit->setText(getDistanceUnit()); - labels.hours->setText(QString::number(int(paramsTracking.getFloat("FrogPilotMinutes") / 60))); -} - void DriveStats::updateStatsForLabel(const QJsonObject &obj, StatsLabels &labels) { labels.routes->setText(QString::number((int)obj["routes"].toDouble())); labels.distance->setText(QString::number(int(obj["distance"].toDouble() * (metric ? MILE_TO_KM : 1)))); @@ -75,12 +68,22 @@ void DriveStats::updateStatsForLabel(const QJsonObject &obj, StatsLabels &labels labels.hours->setText(QString::number((int)(obj["minutes"].toDouble() / 60))); } +void DriveStats::updateFrogPilotStats(const QJsonObject &obj, StatsLabels &labels) { + labels.routes->setText(QString::number(paramsTracking.getInt("FrogPilotDrives"))); + labels.distance->setText(QString::number(int(paramsTracking.getFloat("FrogPilotKilometers") * (metric ? 1 : KM_TO_MILE)))); + labels.distance_unit->setText(getDistanceUnit()); + labels.hours->setText(QString::number(int(paramsTracking.getFloat("FrogPilotMinutes") / 60))); +} + void DriveStats::updateStats() { QJsonObject json = stats.object(); updateFrogPilotStats(json["frogpilot"].toObject(), frogPilot); updateStatsForLabel(json["all"].toObject(), all); updateStatsForLabel(json["week"].toObject(), week); + + int all_time_minutes = (int)(json["all"].toObject()["minutes"].toDouble()); + params.put("openpilotMinutes", QString::number(all_time_minutes).toStdString()); } void DriveStats::parseResponse(const QString &response, bool success) { diff --git a/selfdrive/frogpilot/ui/qt/widgets/frogpilot_controls.cc b/selfdrive/frogpilot/ui/qt/widgets/frogpilot_controls.cc index c135a393..242f8cea 100644 --- a/selfdrive/frogpilot/ui/qt/widgets/frogpilot_controls.cc +++ b/selfdrive/frogpilot/ui/qt/widgets/frogpilot_controls.cc @@ -6,26 +6,7 @@ void updateFrogPilotToggles() { static Params paramsMemory{"/dev/shm/params"}; - static std::atomic isUpdating(false); - static std::thread resetThread; - - bool expected = false; - if (!isUpdating.compare_exchange_strong(expected, true)) { - return; - } - - if (resetThread.joinable()) { - resetThread.join(); - } - paramsMemory.putBool("FrogPilotTogglesUpdated", true); - - resetThread = std::thread([&]() { - util::sleep_for(1000); - paramsMemory.putBool("FrogPilotTogglesUpdated", false); - - isUpdating.store(false); - }); } 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 d456abbe..86178cbd 100644 --- a/selfdrive/frogpilot/ui/qt/widgets/frogpilot_controls.h +++ b/selfdrive/frogpilot/ui/qt/widgets/frogpilot_controls.h @@ -197,7 +197,7 @@ public: for (int i = 0; i < buttons.size(); ++i) { QAbstractButton *button = buttons[i]; if (button) { - button->setVisible(state); + button->setEnabled(state); button->setChecked(params.getBool(buttonParams[i].toStdString())); } } @@ -280,6 +280,8 @@ class FrogPilotParamValueControl : public AbstractControl { Q_OBJECT public: + QLabel *valueLabel; + FrogPilotParamValueControl(const QString ¶m, const QString &title, const QString &desc, const QString &icon, const float minValue, const float maxValue, const QString &label = "", const std::map &valueLabels = {}, const float interval = 1.0f, const bool compactSize = false, const bool instantUpdate = false) @@ -379,7 +381,7 @@ private: } void updateValueDisplay() { - int intValue = static_cast(value); + int intValue = static_cast(value / interval); if (valueLabels.count(intValue)) { valueLabel->setText(valueLabels.at(intValue)); } else { @@ -411,8 +413,6 @@ private: Params params; - QLabel *valueLabel; - QPushButton decrementButton; QPushButton incrementButton; @@ -442,12 +442,11 @@ public: const float minValue, const float maxValue, const QString &label = "", const std::map &valueLabels = {}, const float interval = 1.0f, const std::vector &buttonParams = {}, const std::vector &buttonLabels = {}, - const bool checkable = true, const int minimumButtonWidth = 225) + const bool leftButton = false, const bool checkable = true, const int minimumButtonWidth = 225) : FrogPilotParamValueControl(param, title, desc, icon, minValue, maxValue, label, valueLabels, interval, true), buttonParams(buttonParams), buttonGroup(new QButtonGroup(this)), checkable(checkable) { - buttonGroup->setExclusive(false); for (int i = 0; i < buttonLabels.size(); ++i) { @@ -456,7 +455,11 @@ public: button->setStyleSheet(buttonStyle); button->setMinimumWidth(minimumButtonWidth); - hlayout->addWidget(button); + if (leftButton) { + hlayout->insertWidget(hlayout->indexOf(valueLabel) - 1, button); + } else { + hlayout->addWidget(button); + } buttonGroup->addButton(button, i); } diff --git a/selfdrive/locationd/calibrationd.py b/selfdrive/locationd/calibrationd.py index 363f1859..268634e5 100755 --- a/selfdrive/locationd/calibrationd.py +++ b/selfdrive/locationd/calibrationd.py @@ -20,7 +20,7 @@ from openpilot.common.realtime import set_realtime_priority from openpilot.common.transformations.orientation import rot_from_euler, euler_from_rot from openpilot.common.swaglog import cloudlog -from openpilot.selfdrive.frogpilot.frogpilot_variables import FrogPilotVariables +from openpilot.selfdrive.frogpilot.frogpilot_variables import get_frogpilot_toggles MIN_SPEED_FILTER = 15 * CV.MPH_TO_MS MAX_VEL_ANGLE_STD = np.radians(0.25) @@ -61,19 +61,13 @@ def moving_avg_with_linear_decay(prev_mean: np.ndarray, new_val: np.ndarray, idx class Calibrator: def __init__(self, param_put: bool = False): - # FrogPilot variables - frogpilot_toggles = FrogPilotVariables.toggles - FrogPilotVariables.update_frogpilot_params() - - self.update_toggles = False - self.param_put = param_put self.not_car = False # Read saved calibration self.params = Params() - self.calibration_key = frogpilot_toggles.part_model_param + "CalibrationParams" + self.calibration_key = get_frogpilot_toggles(True).part_model_param + "CalibrationParams" calibration_params = self.params.get(self.calibration_key) rpy_init = RPY_INIT wide_from_device_euler = WIDE_FROM_DEVICE_EULER_INIT @@ -175,13 +169,6 @@ class Calibrator: if self.param_put and write_this_cycle: self.params.put_nonblocking(self.calibration_key, self.get_msg(True).to_bytes()) - # Update FrogPilot parameters - if FrogPilotVariables.toggles_updated: - self.update_toggles = True - elif self.update_toggles: - FrogPilotVariables.update_frogpilot_params() - self.update_toggles = False - def handle_v_ego(self, v_ego: float) -> None: self.v_ego = v_ego diff --git a/selfdrive/locationd/torqued.py b/selfdrive/locationd/torqued.py index e457096b..29a5eff2 100755 --- a/selfdrive/locationd/torqued.py +++ b/selfdrive/locationd/torqued.py @@ -11,7 +11,7 @@ from openpilot.common.swaglog import cloudlog from openpilot.selfdrive.controls.lib.vehicle_model import ACCELERATION_DUE_TO_GRAVITY from openpilot.selfdrive.locationd.helpers import PointBuckets, ParameterEstimator -from openpilot.selfdrive.frogpilot.frogpilot_variables import FrogPilotVariables +from openpilot.selfdrive.frogpilot.frogpilot_variables import get_frogpilot_toggles HISTORY = 5 # secs POINTS_PER_BUCKET = 1500 @@ -52,13 +52,7 @@ class TorqueBuckets(PointBuckets): class TorqueEstimator(ParameterEstimator): - def __init__(self, CP, decimated=False): - # FrogPilot variables - frogpilot_toggles = FrogPilotVariables.toggles - FrogPilotVariables.update_frogpilot_params() - - self.update_toggles = False - + def __init__(self, CP, torque_cache, decimated=False): self.hist_len = int(HISTORY / DT_MDL) self.lag = CP.steerActuatorDelay + .2 # from controlsd if decimated: @@ -101,8 +95,6 @@ class TorqueEstimator(ParameterEstimator): # try to restore cached params params = Params() params_cache = params.get("CarParamsPrevRoute") - self.torque_key = frogpilot_toggles.part_model_param + "LiveTorqueParameters" - torque_cache = params.get(self.torque_key) if params_cache is not None and torque_cache is not None: try: with log.Event.from_bytes(torque_cache) as log_evt: @@ -165,13 +157,6 @@ class TorqueEstimator(ParameterEstimator): self.filtered_params[param].update(value) self.filtered_params[param].update_alpha(self.decay) - # Update FrogPilot parameters - if FrogPilotVariables.toggles_updated: - self.update_toggles = True - elif self.update_toggles: - FrogPilotVariables.update_frogpilot_params() - self.update_toggles = False - def handle_log(self, t, which, msg): if which == "carControl": self.raw_points["carControl_t"].append(t + self.lag) @@ -239,16 +224,12 @@ def main(demo=False): sm = messaging.SubMaster(['carControl', 'carOutput', 'carState', 'liveLocationKalman'], poll='liveLocationKalman') params = Params() - with car.CarParams.from_bytes(params.get("CarParams", block=True)) as CP: - estimator = TorqueEstimator(CP) - - # FrogPilot variables - frogpilot_toggles = FrogPilotVariables.toggles - FrogPilotVariables.update_frogpilot_params() - - torque_key = frogpilot_toggles.part_model_param + "LiveTorqueParameters" + torque_key = get_frogpilot_toggles(True).part_model_param + "LiveTorqueParameters" torque_cache = params.get(torque_key) + with car.CarParams.from_bytes(params.get("CarParams", block=True)) as CP: + estimator = TorqueEstimator(CP, torque_cache) + while True: sm.update() if sm.all_checks(): diff --git a/selfdrive/modeld/modeld.py b/selfdrive/modeld/modeld.py index 86cea2e0..ea242e3f 100755 --- a/selfdrive/modeld/modeld.py +++ b/selfdrive/modeld/modeld.py @@ -26,7 +26,7 @@ from openpilot.selfdrive.modeld.constants import ModelConstants from openpilot.selfdrive.modeld.models.commonmodel_pyx import ModelFrame, CLContext from openpilot.selfdrive.frogpilot.frogpilot_functions import MODELS_PATH -from openpilot.selfdrive.frogpilot.frogpilot_variables import FrogPilotVariables +from openpilot.selfdrive.frogpilot.frogpilot_variables import get_frogpilot_toggles PROCESS_NAME = "selfdrive.modeld.modeld" SEND_RAW_PRED = os.getenv('SEND_RAW_PRED') @@ -134,12 +134,6 @@ class ModelState: def main(demo=False): - # FrogPilot variables - frogpilot_toggles = FrogPilotVariables.toggles - FrogPilotVariables.update_frogpilot_params() - - update_toggles = False - cloudlog.warning("modeld init") sentry.set_tag("daemon", PROCESS_NAME) @@ -150,6 +144,10 @@ def main(demo=False): cloudlog.warning("setting up CL context") cl_context = CLContext() cloudlog.warning("CL context ready; loading model") + + # FrogPilot variables + frogpilot_toggles = get_frogpilot_toggles(True) + model = ModelState(cl_context, frogpilot_toggles) cloudlog.warning("models loaded, modeld starting") @@ -311,11 +309,8 @@ def main(demo=False): last_vipc_frame_id = meta_main.frame_id # Update FrogPilot parameters - if FrogPilotVariables.toggles_updated: - update_toggles = True - elif update_toggles: - FrogPilotVariables.update_frogpilot_params() - update_toggles = False + if sm['frogpilotPlan'].togglesUpdated: + frogpilot_toggles = get_frogpilot_toggles() if __name__ == "__main__": try: diff --git a/selfdrive/navd/navd.py b/selfdrive/navd/navd.py index 40f25b1a..1387f823 100755 --- a/selfdrive/navd/navd.py +++ b/selfdrive/navd/navd.py @@ -18,7 +18,7 @@ from openpilot.selfdrive.navd.helpers import (Coordinate, coordinate_from_param, parse_banner_instructions) from openpilot.common.swaglog import cloudlog -from openpilot.selfdrive.frogpilot.frogpilot_variables import FrogPilotVariables +from openpilot.selfdrive.frogpilot.frogpilot_variables import get_frogpilot_toggles, has_prime REROUTE_DISTANCE = 25 MANEUVER_TRANSITION_THRESHOLD = 10 @@ -57,7 +57,7 @@ class RouteEngine: if "MAPBOX_TOKEN" in os.environ: self.mapbox_token = os.environ["MAPBOX_TOKEN"] self.mapbox_host = "https://api.mapbox.com" - elif not FrogPilotVariables.has_prime: + elif not has_prime(): self.mapbox_token = self.params.get("MapboxSecretKey", encoding='utf8') self.mapbox_host = "https://api.mapbox.com" else: @@ -65,15 +65,13 @@ class RouteEngine: self.mapbox_host = os.getenv('MAPS_HOST', 'https://maps.comma.ai') # FrogPilot variables - self.frogpilot_toggles = FrogPilotVariables.toggles - FrogPilotVariables.update_frogpilot_params() + self.frogpilot_toggles = get_frogpilot_toggles(True) self.stop_coord = [] self.stop_signal = [] self.approaching_intersection = False self.approaching_turn = False - self.update_toggles = False self.nav_speed_limit = 0 @@ -96,11 +94,8 @@ class RouteEngine: cloudlog.exception("navd.failed_to_compute") # Update FrogPilot parameters - if FrogPilotVariables.toggles_updated: - self.update_toggles = True - elif self.update_toggles: - FrogPilotVariables.update_frogpilot_params() - self.update_toggles = False + if self.sm['frogpilotPlan'].togglesUpdated: + self.frogpilot_toggles = get_frogpilot_toggles() def update_location(self): location = self.sm['liveLocationKalman'] @@ -467,7 +462,7 @@ class RouteEngine: def main(): pm = messaging.PubMaster(['navInstruction', 'navRoute', 'frogpilotNavigation']) - sm = messaging.SubMaster(['carState', 'liveLocationKalman', 'managerState']) + sm = messaging.SubMaster(['carState', 'liveLocationKalman', 'managerState', 'frogpilotPlan']) rk = Ratekeeper(1.0) route_engine = RouteEngine(sm, pm) diff --git a/selfdrive/ui/SConscript b/selfdrive/ui/SConscript index 2d64a829..aa9587dc 100644 --- a/selfdrive/ui/SConscript +++ b/selfdrive/ui/SConscript @@ -46,12 +46,12 @@ frogpilot_src = ["../frogpilot/navigation/ui/maps_settings.cc", "../frogpilot/na "../frogpilot/screenrecorder/omx_encoder.cc", "../frogpilot/screenrecorder/screenrecorder.cc", "../frogpilot/navigation/ui/navigation_functions.cc", "../frogpilot/ui/qt/widgets/drive_stats.cc", "../frogpilot/ui/qt/widgets/frogpilot_controls.cc", "../frogpilot/ui/qt/widgets/model_reviewer.cc", - "../frogpilot/ui/qt/offroad/advanced_driving_settings.cc", "../frogpilot/ui/qt/offroad/advanced_visual_settings.cc", "../frogpilot/ui/qt/offroad/data_settings.cc", "../frogpilot/ui/qt/offroad/device_settings.cc", "../frogpilot/ui/qt/offroad/frogpilot_settings.cc", "../frogpilot/ui/qt/offroad/longitudinal_settings.cc", - "../frogpilot/ui/qt/offroad/lateral_settings.cc", "../frogpilot/ui/qt/offroad/sounds_settings.cc", - "../frogpilot/ui/qt/offroad/theme_settings.cc", "../frogpilot/ui/qt/offroad/utilities.cc", - "../frogpilot/ui/qt/offroad/vehicle_settings.cc", "../frogpilot/ui/qt/offroad/visual_settings.cc"] + "../frogpilot/ui/qt/offroad/lateral_settings.cc", "../frogpilot/ui/qt/offroad/model_settings.cc", + "../frogpilot/ui/qt/offroad/sounds_settings.cc", "../frogpilot/ui/qt/offroad/theme_settings.cc", + "../frogpilot/ui/qt/offroad/utilities.cc", "../frogpilot/ui/qt/offroad/vehicle_settings.cc", + "../frogpilot/ui/qt/offroad/visual_settings.cc"] qt_src += frogpilot_src diff --git a/selfdrive/ui/qt/home.cc b/selfdrive/ui/qt/home.cc index 43a59ecd..e8f39cca 100644 --- a/selfdrive/ui/qt/home.cc +++ b/selfdrive/ui/qt/home.cc @@ -249,7 +249,10 @@ void OffroadHome::hideEvent(QHideEvent *event) { } void OffroadHome::refresh() { - QString model = QString::fromStdString(params.get("ModelName")); + QString model = QString::fromStdString(params.get("ModelName")).remove(QRegularExpression("[🗺️👀📡]")).trimmed(); + if (params.getBool("CustomizationLevelConfirmed") && params.getInt("CustomizationLevel") != 2) { + model = QString::fromStdString(params.get("DefaultModelName")); + } if (model.contains("(Default)")) { model = model.remove("(Default)").trimmed(); diff --git a/selfdrive/ui/qt/offroad/settings.cc b/selfdrive/ui/qt/offroad/settings.cc index f0fd395a..74a0cdd8 100644 --- a/selfdrive/ui/qt/offroad/settings.cc +++ b/selfdrive/ui/qt/offroad/settings.cc @@ -363,7 +363,7 @@ void DevicePanel::showEvent(QShowEvent *event) { ListWidget::showEvent(event); // Frogpilot variables - resetCalibBtn->setVisible(!params.getBool("ModelManagement")); + resetCalibBtn->setVisible(params.getInt("CustomizationLevel") != 2); } void SettingsWindow::hideEvent(QHideEvent *event) { @@ -377,7 +377,6 @@ void SettingsWindow::hideEvent(QHideEvent *event) { panelOpen = false; parentToggleOpen = false; subParentToggleOpen = false; - subSubParentToggleOpen = false; } void SettingsWindow::showEvent(QShowEvent *event) { @@ -422,9 +421,6 @@ SettingsWindow::SettingsWindow(QWidget *parent) : QFrame(parent) { } else if (mapSelectionOpen) { closeMapSelection(); mapSelectionOpen = false; - } else if (subSubParentToggleOpen) { - closeSubSubParentToggle(); - subSubParentToggleOpen = false; } else if (subParentToggleOpen) { closeSubParentToggle(); subParentToggleOpen = false; @@ -451,12 +447,12 @@ SettingsWindow::SettingsWindow(QWidget *parent) : QFrame(parent) { QObject::connect(toggles, &TogglesPanel::updateMetric, this, &SettingsWindow::updateMetric); FrogPilotSettingsWindow *frogpilotSettingsWindow = new FrogPilotSettingsWindow(this); + QObject::connect(frogpilotSettingsWindow, &FrogPilotSettingsWindow::closeMapBoxInstructions, [this]() {mapboxInstructionsOpen=false;}); QObject::connect(frogpilotSettingsWindow, &FrogPilotSettingsWindow::openMapBoxInstructions, [this]() {mapboxInstructionsOpen=true;}); QObject::connect(frogpilotSettingsWindow, &FrogPilotSettingsWindow::openMapSelection, [this]() {mapSelectionOpen=true;}); QObject::connect(frogpilotSettingsWindow, &FrogPilotSettingsWindow::openPanel, [this]() {panelOpen=true;}); QObject::connect(frogpilotSettingsWindow, &FrogPilotSettingsWindow::openParentToggle, [this]() {parentToggleOpen=true;}); QObject::connect(frogpilotSettingsWindow, &FrogPilotSettingsWindow::openSubParentToggle, [this]() {subParentToggleOpen=true;}); - QObject::connect(frogpilotSettingsWindow, &FrogPilotSettingsWindow::openSubSubParentToggle, [this]() {subSubParentToggleOpen=true;}); QList> panels = { {tr("Device"), device}, @@ -497,6 +493,44 @@ SettingsWindow::SettingsWindow(QWidget *parent) : QFrame(parent) { panel_widget->addWidget(panel_frame); QObject::connect(btn, &QPushButton::clicked, [=, w = panel_frame]() { + if (w->widget() == frogpilotSettingsWindow) { + bool customizationLevelConfirmed = params.getBool("CustomizationLevelConfirmed"); + + if (!customizationLevelConfirmed) { + 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)) { + params.putBoolNonBlocking("CustomizationLevelConfirmed", true); + params.putIntNonBlocking("CustomizationLevel", 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)) { + params.putBoolNonBlocking("CustomizationLevelConfirmed", true); + params.putIntNonBlocking("CustomizationLevel", 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)) { + params.putBoolNonBlocking("CustomizationLevelConfirmed", true); + params.putIntNonBlocking("CustomizationLevel", 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)) { + params.putBoolNonBlocking("CustomizationLevelConfirmed", true); + params.putIntNonBlocking("CustomizationLevel", 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)) { + params.putBoolNonBlocking("CustomizationLevelConfirmed", true); + params.putIntNonBlocking("CustomizationLevel", 2); + } + } + } + } + if (mapboxInstructionsOpen) { closeMapBoxInstructions(); mapboxInstructionsOpen = false; diff --git a/selfdrive/ui/qt/offroad/settings.h b/selfdrive/ui/qt/offroad/settings.h index 6a3ef27d..5b93ab01 100644 --- a/selfdrive/ui/qt/offroad/settings.h +++ b/selfdrive/ui/qt/offroad/settings.h @@ -40,7 +40,6 @@ signals: void closePanel(); void closeParentToggle(); void closeSubParentToggle(); - void closeSubSubParentToggle(); void updateMetric(); private: @@ -50,12 +49,14 @@ private: QStackedWidget *panel_widget; // FrogPilot variables + Params params; + Params paramsTracking{"/persist/tracking"}; + bool mapboxInstructionsOpen; bool mapSelectionOpen; bool panelOpen; bool parentToggleOpen; bool subParentToggleOpen; - bool subSubParentToggleOpen; }; class DevicePanel : public ListWidget { diff --git a/selfdrive/ui/qt/onroad/alerts.cc b/selfdrive/ui/qt/onroad/alerts.cc index 355c7175..8e2a2c84 100644 --- a/selfdrive/ui/qt/onroad/alerts.cc +++ b/selfdrive/ui/qt/onroad/alerts.cc @@ -17,8 +17,8 @@ void OnroadAlerts::updateState(const UIState &s) { hide_alerts = scene.hide_alerts; road_name_ui = scene.road_name_ui; - show_aol_status_bar = scene.show_aol_status_bar; - show_cem_status_bar = scene.show_cem_status_bar; + show_aol_status_bar = scene.aol_status_bar; + show_cem_status_bar = scene.cem_status_bar; } void OnroadAlerts::clear() { diff --git a/selfdrive/ui/qt/onroad/annotated_camera.cc b/selfdrive/ui/qt/onroad/annotated_camera.cc index fe965a76..5ef225b8 100644 --- a/selfdrive/ui/qt/onroad/annotated_camera.cc +++ b/selfdrive/ui/qt/onroad/annotated_camera.cc @@ -65,7 +65,7 @@ void AnnotatedCameraWidget::updateState(int alert_height, const UIState &s) { // Handle older routes where vEgoCluster is not set v_ego_cluster_seen = v_ego_cluster_seen || car_state.getVEgoCluster() != 0.0; - float v_ego = v_ego_cluster_seen && !s.scene.wheel_speed ? car_state.getVEgoCluster() : car_state.getVEgo(); + float v_ego = v_ego_cluster_seen && !s.scene.use_wheel_speed ? car_state.getVEgoCluster() : car_state.getVEgo(); speed = cs_alive ? std::max(0.0, v_ego) : 0.0; speed *= s.scene.is_metric ? MS_TO_KPH : MS_TO_MPH; @@ -77,7 +77,7 @@ void AnnotatedCameraWidget::updateState(int alert_height, const UIState &s) { } has_us_speed_limit = (nav_alive && speed_limit_sign == cereal::NavInstruction::SpeedLimitSign::MUTCD) || (speedLimitController && !useViennaSLCSign); - has_eu_speed_limit = (nav_alive && speed_limit_sign == cereal::NavInstruction::SpeedLimitSign::VIENNA) && !(speedLimitController && !useViennaSLCSign) || (speedLimitController && useViennaSLCSign); + has_eu_speed_limit = (nav_alive && speed_limit_sign == cereal::NavInstruction::SpeedLimitSign::VIENNA) || (speedLimitController && useViennaSLCSign); is_metric = s.scene.is_metric; speedUnit = s.scene.is_metric ? tr("km/h") : tr("mph"); hideBottomIcons = (cs.getAlertSize() != cereal::ControlsState::AlertSize::NONE || turnSignalAnimation && (turnSignalLeft || turnSignalRight) && (signalStyle == "traditional" || signalStyle == "traditional_gif") || bigMapOpen); @@ -147,8 +147,6 @@ void AnnotatedCameraWidget::drawHud(QPainter &p) { ), 10)); } else if (trafficModeActive) { p.setPen(QPen(redColor(), 10)); - } else if (reverseCruise) { - p.setPen(QPen(blueColor(), 6)); } else { p.setPen(QPen(whiteColor(75), 6)); } @@ -333,11 +331,7 @@ void AnnotatedCameraWidget::drawLaneLines(QPainter &painter, const UIState *s, f // road edges for (int i = 0; i < std::size(scene.road_edge_vertices); ++i) { - if (useStockColors) { - painter.setBrush(QColor::fromRgbF(1.0, 0, 0, std::clamp(1.0 - scene.road_edge_stds[i], 0.0, 1.0))); - } else { - painter.setBrush(scene.road_edges_color); - } + painter.setBrush(QColor::fromRgbF(1.0, 0, 0, std::clamp(1.0 - scene.road_edge_stds[i], 0.0, 1.0))); painter.drawPolygon(scene.road_edge_vertices[i]); } @@ -367,14 +361,11 @@ void AnnotatedCameraWidget::drawLaneLines(QPainter &painter, const UIState *s, f // If acceleration is between -0.25 and 0.25, resort to the theme color if (std::abs(acceleration[i]) < 0.25 && !useStockColors) { QColor color = scene.path_color; - - bg.setColorAt(0.0, color); - - color.setAlphaF(0.5); - bg.setColorAt(0.5, color); - - color.setAlphaF(0.1); - bg.setColorAt(1.0, color); + bg.setColorAt(0.0f, color); + color.setAlphaF(0.5f); + bg.setColorAt(0.5f, color); + color.setAlphaF(0.1f); + bg.setColorAt(1.0f, color); } else { // speed up: 120, slow down: 0 float path_hue = fmax(fmin(60 + acceleration[i] * 35, 120), 0); @@ -402,15 +393,13 @@ void AnnotatedCameraWidget::drawLaneLines(QPainter &painter, const UIState *s, f if (scene.show_stopping_point && scene.red_light && speed > 1 && !(conditionalStatus == 1 || conditionalStatus == 3 || conditionalStatus == 5)) { QPointF last_point = scene.track_vertices.last(); - QPointF adjusted_point = last_point - QPointF(stopSignImg.width() / 2, stopSignImg.height()); painter.drawPixmap(adjusted_point, stopSignImg); if (scene.show_stopping_point_metrics) { - QString text = QString::number(modelLength * distanceConversion) + leadDistanceUnit; QFont font = InterFont(35, QFont::DemiBold); - QFontMetrics fm(font); - int text_width = fm.horizontalAdvance(text); + QString text = QString::number(modelLength * distanceConversion) + leadDistanceUnit; + int text_width = QFontMetrics(font).horizontalAdvance(text); QPointF text_position = last_point - QPointF(text_width / 2, stopSignImg.height() + 35); painter.save(); @@ -425,9 +414,9 @@ void AnnotatedCameraWidget::drawLaneLines(QPainter &painter, const UIState *s, f if (scene.blind_spot_path) { QLinearGradient bs(0, height(), 0, 0); - bs.setColorAt(0.0, QColor::fromHslF(0 / 360., 0.75, 0.50, 0.6)); - bs.setColorAt(0.5, QColor::fromHslF(0 / 360., 0.75, 0.50, 0.4)); - bs.setColorAt(1.0, QColor::fromHslF(0 / 360., 0.75, 0.50, 0.2)); + bs.setColorAt(0.0f, QColor::fromHslF(0 / 360.0f, 0.75f, 0.5f, 0.6f)); + bs.setColorAt(0.5f, QColor::fromHslF(0 / 360.0f, 0.75f, 0.5f, 0.4f)); + bs.setColorAt(1.0f, QColor::fromHslF(0 / 360.0f, 0.75f, 0.5f, 0.2f)); painter.setBrush(bs); if (blindSpotLeft) { @@ -439,67 +428,68 @@ void AnnotatedCameraWidget::drawLaneLines(QPainter &painter, const UIState *s, f } // Paint adjacent lane paths - if ((scene.adjacent_path || scene.adjacent_path_metrics) && v_ego > scene.minimum_lane_change_speed) { - const float minLaneWidth = laneDetectionWidth * 0.5f; - const float maxLaneWidth = laneDetectionWidth * 1.5f; + if ((scene.adjacent_path || scene.adjacent_path_metrics) && v_ego >= scene.minimum_lane_change_speed) { + QLinearGradient ap(0, height(), 0, 0); - auto paintLane = [&](const QPolygonF &lane, float laneWidth, bool blindspot) { - QLinearGradient gradient(0, height(), 0, 0); + std::function setAdjacentPathColors = [&](float hue) { + ap.setColorAt(0.0f, QColor::fromHslF(hue / 360.0f, 0.75f, 0.5f, 0.6f)); + ap.setColorAt(0.5f, QColor::fromHslF(hue / 360.0f, 0.75f, 0.5f, 0.4f)); + ap.setColorAt(1.0f, QColor::fromHslF(hue / 360.0f, 0.75f, 0.5f, 0.2f)); + }; - bool redPath = laneWidth < minLaneWidth || laneWidth > maxLaneWidth || blindspot; - float hue = redPath ? 0.0f : 120.0f * (laneWidth - minLaneWidth) / (maxLaneWidth - minLaneWidth); - float hueF = hue / 360.0f; + std::function drawAdjacentLane = [&](const QPolygonF &lane, float laneWidth, bool isBlindSpot) { + if (isBlindSpot) { + setAdjacentPathColors(0.0f); + } else { + float hue = 120.0f * (1 - fmin(fabs(laneWidth - laneDetectionWidth) / (laneDetectionWidth / 2), 1)); + setAdjacentPathColors(hue); + } - gradient.setColorAt(0.0, QColor::fromHslF(hueF, 0.75f, 0.50f, 0.6f)); - gradient.setColorAt(0.5, QColor::fromHslF(hueF, 0.75f, 0.50f, 0.4f)); - gradient.setColorAt(1.0, QColor::fromHslF(hueF, 0.75f, 0.50f, 0.2f)); - - painter.setBrush(gradient); + painter.setBrush(ap); painter.drawPolygon(lane); if (scene.adjacent_path_metrics) { painter.setFont(InterFont(30, QFont::DemiBold)); painter.setPen(Qt::white); - QRectF boundingRect = lane.boundingRect(); - QString text = blindspot ? tr("Vehicle in blind spot") : QString::number(laneWidth * distanceConversion, 'f', 2) + leadDistanceUnit; - painter.drawText(boundingRect, Qt::AlignCenter, text); - + QString text = isBlindSpot ? tr("Vehicle in blind spot") : QString::number(laneWidth * distanceConversion, 'f', 2) + leadDistanceUnit; + painter.drawText(lane.boundingRect(), Qt::AlignCenter, text); painter.setPen(Qt::NoPen); } }; - paintLane(scene.track_adjacent_vertices[4], scene.lane_width_left, blindSpotLeft); - paintLane(scene.track_adjacent_vertices[5], scene.lane_width_right, blindSpotRight); + drawAdjacentLane(scene.track_adjacent_vertices[4], scene.lane_width_left, blindSpotLeft); + drawAdjacentLane(scene.track_adjacent_vertices[5], scene.lane_width_right, blindSpotRight); } // Paint path edges QLinearGradient pe(0, height(), 0, 0); - auto setGradientColors = [&](const QColor &baseColor) { - pe.setColorAt(0.0, baseColor); + + std::function setPathEdgeColors = [&](QLinearGradient &gradient, const QColor &baseColor) { + gradient.setColorAt(0.0f, baseColor); QColor color = baseColor; - color.setAlphaF(0.5); - pe.setColorAt(0.5, color); - color.setAlphaF(0.1); - pe.setColorAt(1.0, color); + color.setAlphaF(0.5f); + gradient.setColorAt(0.5f, color); + color.setAlphaF(0.1f); + gradient.setColorAt(1.0f, color); }; if (alwaysOnLateralActive) { - setGradientColors(bg_colors[STATUS_ALWAYS_ON_LATERAL_ACTIVE]); + setPathEdgeColors(pe, bg_colors[STATUS_ALWAYS_ON_LATERAL_ACTIVE]); } else if (conditionalStatus == 1 || conditionalStatus == 3 || conditionalStatus == 5) { - setGradientColors(bg_colors[STATUS_CONDITIONAL_OVERRIDDEN]); + setPathEdgeColors(pe, bg_colors[STATUS_CONDITIONAL_OVERRIDDEN]); } else if (experimentalMode) { - setGradientColors(bg_colors[STATUS_EXPERIMENTAL_MODE_ACTIVE]); + setPathEdgeColors(pe, bg_colors[STATUS_EXPERIMENTAL_MODE_ACTIVE]); } else if (trafficModeActive) { - setGradientColors(bg_colors[STATUS_TRAFFIC_MODE_ACTIVE]); + setPathEdgeColors(pe, bg_colors[STATUS_TRAFFIC_MODE_ACTIVE]); } else if (scene.navigate_on_openpilot) { - setGradientColors(bg_colors[STATUS_NAVIGATION_ACTIVE]); + setPathEdgeColors(pe, bg_colors[STATUS_NAVIGATION_ACTIVE]); } else if (!useStockColors) { - setGradientColors(scene.path_edges_color); + setPathEdgeColors(pe, scene.path_edges_color); } else { - pe.setColorAt(0.0, QColor::fromHslF(148 / 360., 0.94, 0.51, 1.0)); - pe.setColorAt(0.5, QColor::fromHslF(112 / 360., 1.00, 0.68, 0.5)); - pe.setColorAt(1.0, QColor::fromHslF(112 / 360., 1.00, 0.68, 0.1)); + pe.setColorAt(0.0f, QColor::fromHslF(148 / 360.0f, 0.94f, 0.51f, 1.0f)); + pe.setColorAt(0.5f, QColor::fromHslF(112 / 360.0f, 1.00f, 0.68f, 0.5f)); + pe.setColorAt(1.0f, QColor::fromHslF(112 / 360.0f, 1.00f, 0.68f, 0.1f)); } QPainterPath path; @@ -559,12 +549,12 @@ void AnnotatedCameraWidget::drawDriverState(QPainter &painter, const UIState *s) painter.restore(); } -void AnnotatedCameraWidget::drawLead(QPainter &painter, const cereal::RadarState::LeadData::Reader &lead_data, const QPointF &vd, float v_ego, const QColor lead_marker_color) { +void AnnotatedCameraWidget::drawLead(QPainter &painter, const cereal::RadarState::LeadData::Reader &lead_data, const QPointF &vd, float v_ego, const QColor &lead_marker_color, bool adjacent) { painter.save(); - const float speedBuff = useStockColors ? 10. : 25.; // Make the center of the chevron appear sooner if a theme is active - const float leadBuff = useStockColors ? 40. : 100.; // Make the center of the chevron appear sooner if a theme is active - const float d_rel = lead_data.getDRel(); + const float speedBuff = useStockColors || adjacent ? 10. : 25.; // Make the center of the chevron appear sooner if a theme is active + const float leadBuff = useStockColors || adjacent ? 40. : 100.; // Make the center of the chevron appear sooner if a theme is active + const float d_rel = lead_data.getDRel() + (adjacent ? fabs(lead_data.getYRel()) : 0); const float v_rel = lead_data.getVRel(); float fillAlpha = 0; @@ -576,7 +566,7 @@ void AnnotatedCameraWidget::drawLead(QPainter &painter, const cereal::RadarState fillAlpha = (int)(fmin(fillAlpha, 255)); } - float sz = std::clamp((25 * 30) / (d_rel / 3 + 30), 15.0f, 30.0f) * 2.35; + float sz = std::clamp((25 * 30) / (d_rel / 3 + 30), adjacent ? 5.0f : 15.0f, adjacent ? 20.0f : 30.0f) * 2.35; float x = std::clamp((float)vd.x(), 0.f, width() - sz / 2); float y = std::fmin(height() - sz * .6, (float)vd.y()); @@ -602,21 +592,38 @@ void AnnotatedCameraWidget::drawLead(QPainter &painter, const cereal::RadarState painter.setPen(Qt::white); painter.setFont(InterFont(35, QFont::Bold)); - QString text = QString("%1 %2 | %3 %4 | %5 %6") - .arg(qRound(d_rel * distanceConversion)) - .arg(leadDistanceUnit) - .arg(qRound(lead_speed * speedConversion)) - .arg(leadSpeedUnit) - .arg(QString::number(d_rel / std::max(v_ego, 1.0f), 'f', 1)) - .arg("s"); + QString text; + if (adjacent) { + text = QString("%1 %2 | %3 %4") + .arg(qRound(d_rel * distanceConversion)) + .arg(leadDistanceUnit) + .arg(qRound(lead_speed * speedConversion)) + .arg(leadSpeedUnit); + } else { + text = QString("%1 %2 | %3 %4 | %5 %6") + .arg(qRound(d_rel * distanceConversion)) + .arg(leadDistanceUnit) + .arg(qRound(lead_speed * speedConversion)) + .arg(leadSpeedUnit) + .arg(QString::number(d_rel / std::max(v_ego, 1.0f), 'f', 1)) + .arg("s"); + } QFontMetrics metrics(painter.font()); int middle_x = (chevron[2].x() + chevron[0].x()) / 2; + int textHeight = metrics.height(); int textWidth = metrics.horizontalAdvance(text); int text_x = middle_x - textWidth / 2; - int text_y = chevron[0].y() + metrics.height() + 5; + int text_y = chevron[0].y() + textHeight + 5; - painter.drawText(text_x, text_y, text); + if (!adjacent) { + lead_x = x + text_x + textWidth; + lead_y = y + text_y + textHeight; + } + + if (!adjacent || fabs((x + text_x + textWidth) - lead_x) >= textWidth || fabs((y + text_y + textHeight) - lead_y) >= textHeight) { + painter.drawText(text_x, text_y, text); + } } painter.restore(); @@ -691,11 +698,29 @@ void AnnotatedCameraWidget::paintEvent(QPaintEvent *event) { update_leads(s, radar_state, model.getPosition()); auto lead_one = radar_state.getLeadOne(); auto lead_two = radar_state.getLeadTwo(); - if (lead_one.getStatus()) { - drawLead(painter, lead_one, s->scene.lead_vertices[0], v_ego, s->scene.lead_marker_color); + auto lead_left = radar_state.getLeadLeft(); + auto lead_right = radar_state.getLeadRight(); + auto lead_left_far = radar_state.getLeadLeftFar(); + auto lead_right_far = radar_state.getLeadRightFar(); + 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); + } + if (lead_left_far.getStatus()) { + drawLead(painter, lead_left_far, s->scene.lead_vertices[4], v_ego, greenColor(), true); + } + if (lead_right_far.getStatus()) { + drawLead(painter, lead_right_far, s->scene.lead_vertices[5], v_ego, whiteColor(), 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()) { + drawLead(painter, lead_one, s->scene.lead_vertices[0], v_ego, s->scene.lead_marker_color); + } else { + lead_x = 0; + lead_y = 0; } } } @@ -846,7 +871,7 @@ void AnnotatedCameraWidget::updateFrogPilotVariables(int alert_height, const UIS alertHeight = alert_height; alwaysOnLateralActive = scene.always_on_lateral_active; - showAlwaysOnLateralStatusBar = scene.show_aol_status_bar; + showAlwaysOnLateralStatusBar = scene.aol_status_bar; blindSpotLeft = scene.blind_spot_left; blindSpotRight = scene.blind_spot_right; @@ -861,10 +886,10 @@ void AnnotatedCameraWidget::updateFrogPilotVariables(int alert_height, const UIS bottom_layout->setAlignment(compass_img, (rightHandDM ? Qt::AlignLeft : Qt::AlignRight)); } - conditionalSpeed = scene.conditional_speed; - conditionalSpeedLead = scene.conditional_speed_lead; + conditionalSpeed = scene.conditional_limit; + conditionalSpeedLead = scene.conditional_limit_lead; conditionalStatus = scene.conditional_status; - showConditionalExperimentalStatusBar = scene.show_cem_status_bar; + showConditionalExperimentalStatusBar = scene.cem_status_bar; cruiseAdjustment = scene.disable_curve_speed_smoothing || !is_cruise_set ? fmax(setSpeed - scene.adjusted_cruise, 0) : fmax(0.25 * (setSpeed - scene.adjusted_cruise) + 0.75 * cruiseAdjustment - 1, 0); vtscControllingCurve = scene.vtsc_controlling_curve; @@ -882,7 +907,7 @@ void AnnotatedCameraWidget::updateFrogPilotVariables(int alert_height, const UIS laneDetectionWidth = scene.lane_detection_width; - leadInfo = scene.lead_info; + leadInfo = scene.lead_metrics; obstacleDistance = scene.obstacle_distance; obstacleDistanceStock = scene.obstacle_distance_stock; @@ -910,8 +935,6 @@ void AnnotatedCameraWidget::updateFrogPilotVariables(int alert_height, const UIS pedal_icons->updateState(scene); } - reverseCruise = scene.reverse_cruise; - roadNameUI = scene.road_name_ui; bool enableScreenRecorder = scene.screen_recorder && !mapOpen; @@ -921,12 +944,12 @@ void AnnotatedCameraWidget::updateFrogPilotVariables(int alert_height, const UIS } speedLimitController = scene.speed_limit_controller; - showSLCOffset = speedLimitController && scene.show_slc_offset; + showSLCOffset = speedLimitController && scene.show_speed_limit_offset; slcOverridden = speedLimitController && scene.speed_limit_overridden; slcSpeedLimitOffset = scene.speed_limit_offset * (is_metric ? MS_TO_KPH : MS_TO_MPH); speedLimitChanged = speedLimitController && scene.speed_limit_changed; unconfirmedSpeedLimit = speedLimitController ? scene.unconfirmed_speed_limit : 0; - useViennaSLCSign = scene.use_vienna_slc_sign; + useViennaSLCSign = scene.speed_limit_vienna; bool stoppedTimer = scene.stopped_timer && scene.standstill && scene.started_timer / UI_FREQ >= 10 && !mapOpen; if (stoppedTimer) { @@ -944,7 +967,7 @@ void AnnotatedCameraWidget::updateFrogPilotVariables(int alert_height, const UIS turnSignalLeft = scene.turn_signal_left; turnSignalRight = scene.turn_signal_right; - useSI = scene.use_si; + useSI = scene.use_si_metrics; useStockColors = scene.use_stock_colors; } diff --git a/selfdrive/ui/qt/onroad/annotated_camera.h b/selfdrive/ui/qt/onroad/annotated_camera.h index ed7abc88..19d7212b 100644 --- a/selfdrive/ui/qt/onroad/annotated_camera.h +++ b/selfdrive/ui/qt/onroad/annotated_camera.h @@ -90,15 +90,14 @@ private: bool wide_cam_requested = false; // FrogPilot widgets - void initializeFrogPilotWidgets(); - void paintFrogPilotWidgets(QPainter &painter); - void updateFrogPilotVariables(int alert_height, const UIScene &scene); - void updateSignals(); - void drawLeadInfo(QPainter &p); void drawSLCConfirmation(QPainter &p); void drawStatusBar(QPainter &p); void drawTurnSignals(QPainter &p); + void initializeFrogPilotWidgets(); + void paintFrogPilotWidgets(QPainter &painter); + void updateFrogPilotVariables(int alert_height, const UIScene &scene); + void updateSignals(); // FrogPilot variables Params paramsMemory{"/dev/shm/params"}; @@ -122,7 +121,6 @@ private: bool leadInfo; bool mapOpen; bool onroadDistanceButton; - bool reverseCruise; bool roadNameUI; bool showAlwaysOnLateralStatusBar; bool showConditionalExperimentalStatusBar; @@ -145,6 +143,8 @@ private: float cruiseAdjustment; float distanceConversion; float laneDetectionWidth; + float lead_x; + float lead_y; float slcSpeedLimitOffset; float speedConversion; float unconfirmedSpeedLimit; @@ -191,7 +191,7 @@ protected: void showEvent(QShowEvent *event) override; void updateFrameMat() override; void drawLaneLines(QPainter &painter, const UIState *s, float v_ego); - void drawLead(QPainter &painter, const cereal::RadarState::LeadData::Reader &lead_data, const QPointF &vd, float v_ego, const QColor lead_marker_color); + void drawLead(QPainter &painter, const cereal::RadarState::LeadData::Reader &lead_data, const QPointF &vd, float v_ego, const QColor &lead_marker_color, bool adjacent = false); void drawHud(QPainter &p); void drawDriverState(QPainter &painter, const UIState *s); void paintEvent(QPaintEvent *event) override; diff --git a/selfdrive/ui/qt/onroad/buttons.cc b/selfdrive/ui/qt/onroad/buttons.cc index 73a95455..969d5e54 100644 --- a/selfdrive/ui/qt/onroad/buttons.cc +++ b/selfdrive/ui/qt/onroad/buttons.cc @@ -56,7 +56,7 @@ void ExperimentalButton::changeMode() { } } -void ExperimentalButton::updateState(const UIState &s, bool lead_info) { +void ExperimentalButton::updateState(const UIState &s, bool lead_metrics) { const auto cs = (*s.sm)["controlsState"].getControlsState(); bool eng = cs.getEngageable() || cs.getEnabled() || always_on_lateral_active; if ((cs.getExperimentalMode() != experimental_mode) || (eng != engageable)) { @@ -77,7 +77,7 @@ void ExperimentalButton::updateState(const UIState &s, bool lead_info) { rotating_wheel = scene.rotating_wheel; traffic_mode_active = scene.traffic_mode_active; use_stock_wheel = scene.use_stock_wheel; - y_offset = lead_info ? 10 : 0; + y_offset = lead_metrics ? 10 : 0; if (rotating_wheel && steering_angle_deg != scene.steering_angle_deg) { steering_angle_deg = scene.steering_angle_deg; diff --git a/selfdrive/ui/qt/onroad/buttons.h b/selfdrive/ui/qt/onroad/buttons.h index bfe143b6..ec08db2b 100644 --- a/selfdrive/ui/qt/onroad/buttons.h +++ b/selfdrive/ui/qt/onroad/buttons.h @@ -14,7 +14,7 @@ class ExperimentalButton : public QPushButton { public: explicit ExperimentalButton(QWidget *parent = 0); - void updateState(const UIState &s, bool lead_info); + void updateState(const UIState &s, bool lead_metrics); // FrogPilot widgets ~ExperimentalButton(); diff --git a/selfdrive/ui/qt/onroad/onroad_home.cc b/selfdrive/ui/qt/onroad/onroad_home.cc index 3634f99b..6a9aced2 100644 --- a/selfdrive/ui/qt/onroad/onroad_home.cc +++ b/selfdrive/ui/qt/onroad/onroad_home.cc @@ -95,10 +95,10 @@ void OnroadWindow::updateState(const UIState &s) { liveValid = scene.live_valid; showBlindspot = scene.show_blind_spot && (blindSpotLeft || blindSpotRight); showFPS = scene.show_fps; - showJerk = scene.show_jerk; - showSignal = scene.show_signal && (turnSignalLeft || turnSignalRight); - showSteering = scene.show_steering; - showTuning = scene.show_tuning; + showJerk = scene.jerk_metrics; + showSignal = scene.signal_metrics && (turnSignalLeft || turnSignalRight); + showSteering = scene.steering_metrics; + showTuning = scene.lateral_tuning_metrics; speedJerk = scene.speed_jerk; speedJerkDifference = scene.speed_jerk_difference; steer = scene.steer; @@ -127,9 +127,6 @@ void OnroadWindow::mousePressEvent(QMouseEvent* e) { QRect leftRect(0, 0, size.width() / 2, size.height()); QRect rightRect(size.width() / 2, 0, size.width() / 2, size.height()); - QRect hideSpeedRect(rect().center().x() - 175, 50, 350, 350); - QRect speedLimitRect(7, 250, 225, 225); - if (scene.speed_limit_changed && (leftRect.contains(pos) || rightRect.contains(pos))) { bool slcConfirmed = leftRect.contains(pos) ? !scene.right_hand_drive : scene.right_hand_drive; paramsMemory.putBoolNonBlocking("SLCConfirmed", slcConfirmed); @@ -137,19 +134,7 @@ void OnroadWindow::mousePressEvent(QMouseEvent* e) { return; } - if (hideSpeedRect.contains(pos) && scene.hide_speed_ui) { - scene.hide_speed = !scene.hide_speed; - params.putBoolNonBlocking("HideSpeed", scene.hide_speed); - return; - } - - if (speedLimitRect.contains(pos) && scene.show_slc_offset_ui) { - scene.show_slc_offset = !scene.show_slc_offset; - params.putBoolNonBlocking("ShowSLCOffset", scene.show_slc_offset); - return; - } - - if (scene.experimental_mode_via_screen && pos != timeoutPoint) { + if (scene.experimental_mode_via_tap && pos != timeoutPoint) { if (clickTimer.isActive()) { clickTimer.stop(); @@ -427,9 +412,8 @@ void OnroadWindow::paintEvent(QPaintEvent *event) { avgFPS = totalFPS / fpsQueue.size(); } - QString fpsDisplayString = QString("FPS: %1 (%2) | Min: %3 | Max: %4 | Avg: %5") + QString fpsDisplayString = QString("FPS: %1 | Min: %3 | Max: %4 | Avg: %5") .arg(qRound(fps)) - .arg(paramsMemory.getInt("CameraFPS")) .arg(qRound(minFPS)) .arg(qRound(maxFPS)) .arg(qRound(avgFPS)); diff --git a/selfdrive/ui/qt/sidebar.cc b/selfdrive/ui/qt/sidebar.cc index abadeaca..a0de00fb 100644 --- a/selfdrive/ui/qt/sidebar.cc +++ b/selfdrive/ui/qt/sidebar.cc @@ -114,8 +114,8 @@ void Sidebar::mousePressEvent(QMouseEvent *event) { isCPU = (showChip == 1); isGPU = (showChip == 2); - scene.is_CPU = isCPU; - scene.is_GPU = isGPU; + scene.cpu_metrics = isCPU; + scene.gpu_metrics = isGPU; params.putBoolNonBlocking("ShowCPU", isCPU); params.putBoolNonBlocking("ShowGPU", isGPU); @@ -129,9 +129,9 @@ void Sidebar::mousePressEvent(QMouseEvent *event) { isStorageLeft = (showMemory == 2); isStorageUsed = (showMemory == 3); - scene.is_memory = isMemoryUsage; - scene.is_storage_left = isStorageLeft; - scene.is_storage_used = isStorageUsed; + scene.memory_metrics = isMemoryUsage; + scene.storage_left_metrics = isStorageLeft; + scene.storage_used_metrics = isStorageUsed; params.putBoolNonBlocking("ShowMemoryUsage", isMemoryUsage); params.putBoolNonBlocking("ShowStorageLeft", isStorageLeft); @@ -239,15 +239,15 @@ void Sidebar::updateState(const UIState &s) { // FrogPilot variables const UIScene &scene = s.scene; - isCPU = scene.is_CPU; + isCPU = scene.cpu_metrics; isFahrenheit = scene.fahrenheit; - isGPU = scene.is_GPU; - isIP = scene.is_IP; - isMemoryUsage = scene.is_memory; + isGPU = scene.gpu_metrics; + isIP = scene.ip_metrics; + isMemoryUsage = scene.memory_metrics; isNumericalTemp = scene.numerical_temp; isRandomEvents = scene.random_events; - isStorageLeft = scene.is_storage_left; - isStorageUsed = scene.is_storage_used; + isStorageLeft = scene.storage_left_metrics; + isStorageUsed = scene.storage_used_metrics; isSidebarMetrics = scene.sidebar_metrics; bool useStockColors = scene.use_stock_colors; diff --git a/selfdrive/ui/qt/widgets/input.cc b/selfdrive/ui/qt/widgets/input.cc index a69442e2..1f916ad0 100644 --- a/selfdrive/ui/qt/widgets/input.cc +++ b/selfdrive/ui/qt/widgets/input.cc @@ -214,7 +214,7 @@ ConfirmationDialog::ConfirmationDialog(const QString &prompt_text, const QString #confirm_btn:pressed { background-color: #3049F4; } )"); QVBoxLayout *main_layout = new QVBoxLayout(container); - main_layout->setContentsMargins(32, rich ? 32 : 120, 32, 32); + main_layout->setContentsMargins(32, 32, 32, 32); QLabel *prompt = new QLabel(prompt_text, this); prompt->setWordWrap(true); diff --git a/selfdrive/ui/soundd.py b/selfdrive/ui/soundd.py index 75e23837..99d3eb91 100644 --- a/selfdrive/ui/soundd.py +++ b/selfdrive/ui/soundd.py @@ -15,7 +15,7 @@ from openpilot.common.swaglog import cloudlog from openpilot.system import micd from openpilot.selfdrive.frogpilot.frogpilot_functions import ACTIVE_THEME_PATH, RANDOM_EVENTS_PATH -from openpilot.selfdrive.frogpilot.frogpilot_variables import FrogPilotVariables +from openpilot.selfdrive.frogpilot.frogpilot_variables import get_frogpilot_toggles SAMPLE_RATE = 48000 SAMPLE_BUFFER = 4096 # (approx 100ms) @@ -55,6 +55,7 @@ sound_list: dict[int, tuple[str, int | None, float]] = { AudibleAlert.nessie: ("nessie.wav", 1, MAX_VOLUME), AudibleAlert.noice: ("noice.wav", 1, MAX_VOLUME), AudibleAlert.promptRepeat: ("prompt_repeat.wav", None, MAX_VOLUME), + AudibleAlert.thisIsFine: ("this_is_fine.wav", None, MAX_VOLUME), AudibleAlert.uwu: ("uwu.wav", 1, MAX_VOLUME), } @@ -79,8 +80,9 @@ class Soundd: self.spl_filter_weighted = FirstOrderFilter(0, 2.5, FILTER_DT, initialized=False) # FrogPilot variables - self.frogpilot_toggles = FrogPilotVariables.toggles - FrogPilotVariables.update_frogpilot_params() + self.frogpilot_toggles = get_frogpilot_toggles(True) + + self.auto_volume = 0 self.previous_sound_pack = None @@ -97,11 +99,10 @@ class Soundd: AudibleAlert.mail: MAX_VOLUME, AudibleAlert.nessie: MAX_VOLUME, AudibleAlert.noice: MAX_VOLUME, + AudibleAlert.thisIsFine: MAX_VOLUME, AudibleAlert.uwu: MAX_VOLUME, } - self.update_toggles = False - self.update_frogpilot_sounds() def load_sounds(self): @@ -186,7 +187,7 @@ class Soundd: # sounddevice must be imported after forking processes import sounddevice as sd - sm = messaging.SubMaster(['controlsState', 'microphone']) + sm = messaging.SubMaster(['controlsState', 'microphone', 'frogpilotPlan']) with self.get_stream(sd) as stream: rk = Ratekeeper(20) @@ -197,6 +198,8 @@ class Soundd: if sm.updated['microphone'] and self.current_alert == AudibleAlert.none: # only update volume filter when not playing alert if self.frogpilot_toggles.alert_volume_control: + self.spl_filter_weighted.update(sm["microphone"].soundPressureWeightedDb) + self.auto_volume = self.calculate_volume(float(self.spl_filter_weighted.x)) self.current_volume = 0.0 else: self.spl_filter_weighted.update(sm["microphone"].soundPressureWeightedDb) @@ -204,6 +207,8 @@ class Soundd: elif self.frogpilot_toggles.alert_volume_control and self.current_alert in self.volume_map: self.current_volume = self.volume_map[self.current_alert] / 100.0 + if self.current_volume == 1.01: + self.current_volume = self.auto_volume elif self.current_alert in self.random_events_map: self.current_volume = self.random_events_map[self.current_alert] @@ -215,12 +220,9 @@ class Soundd: assert stream.active # Update FrogPilot parameters - if FrogPilotVariables.toggles_updated: - self.update_toggles = True - elif self.update_toggles: - FrogPilotVariables.update_frogpilot_params() + if sm['frogpilotPlan'].togglesUpdated: + self.frogpilot_toggles = get_frogpilot_toggles() self.update_frogpilot_sounds() - self.update_toggles = False def update_frogpilot_sounds(self): self.volume_map = { diff --git a/selfdrive/ui/ui.cc b/selfdrive/ui/ui.cc index d8a21994..2dda847f 100644 --- a/selfdrive/ui/ui.cc +++ b/selfdrive/ui/ui.cc @@ -45,12 +45,16 @@ int get_path_length_idx(const cereal::XYZTData::Reader &line, const float path_h } void update_leads(UIState *s, const cereal::RadarState::Reader &radar_state, const cereal::XYZTData::Reader &line) { - cereal::RadarState::LeadData::Reader (cereal::RadarState::Reader::*get_lead_data[2])() const = { + cereal::RadarState::LeadData::Reader (cereal::RadarState::Reader::*get_lead_data[6])() 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 }; - for (int i = 0; i < 2; ++i) { + for (int i = 0; i < 6; ++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())]; @@ -129,7 +133,7 @@ void update_model(UIState *s, auto lead_count = model.getLeadsV3().size(); if (lead_count > 0) { auto lead_one = model.getLeadsV3()[0]; - scene.has_lead = lead_one.getProb() > scene.lead_detection_threshold; + scene.has_lead = lead_one.getProb() > scene.lead_detection_probability; if (scene.has_lead) { const float lead_d = lead_one.getX()[0] * 2.; @@ -140,7 +144,7 @@ void update_model(UIState *s, } } else { auto lead_one = (*s->sm)["radarState"].getRadarState().getLeadOne(); - scene.has_lead = lead_one.getModelProb() > scene.lead_detection_threshold; + scene.has_lead = lead_one.getModelProb() > scene.lead_detection_probability; if (scene.has_lead) { const float lead_d = lead_one.getDRel() * 2.; @@ -148,7 +152,7 @@ void update_model(UIState *s, } } max_idx = get_path_length_idx(plan_position, max_distance); - update_line_data(s, plan_position, scene.model_ui ? path_width * (1 - scene.path_edge_width / 100.0f) : 0.9, 1.22, &scene.track_vertices, max_idx, false); + update_line_data(s, plan_position, scene.model_ui ? path_width * (1 - (scene.path_edge_width / 100.0f)) : 0.9, 1.22, &scene.track_vertices, max_idx, false); // Update path edges update_line_data(s, plan_position, scene.model_ui ? path_width : 0, 1.22, &scene.track_edge_vertices, max_idx, false); @@ -196,6 +200,7 @@ static void update_sockets(UIState *s) { } static void update_state(UIState *s) { + Params params = Params(); SubMaster &sm = *(s->sm); UIScene &scene = s->scene; @@ -297,6 +302,10 @@ static void update_state(UIState *s) { scene.stopped_equivalence = frogpilotPlan.getStoppedEquivalenceFactor(); scene.unconfirmed_speed_limit = frogpilotPlan.getUnconfirmedSlcSpeedLimit(); scene.vtsc_controlling_curve = frogpilotPlan.getVtscControllingCurve(); + if (frogpilotPlan.getTogglesUpdated()) { + scene.frogpilot_toggles = QJsonDocument::fromJson(QString::fromStdString(params.get("FrogPilotToggles")).toUtf8()).object(); + ui_update_params(uiState()); + } } if (sm.updated("liveLocationKalman")) { auto liveLocationKalman = sm["liveLocationKalman"].getLiveLocationKalman(); @@ -332,142 +341,94 @@ void ui_update_params(UIState *s) { s->scene.is_metric = params.getBool("IsMetric"); s->scene.map_on_left = params.getBool("NavSettingLeftSide"); - ui_update_frogpilot_params(s, params); + ui_update_frogpilot_params(s); } -void ui_update_frogpilot_params(UIState *s, Params ¶ms) { +void ui_update_frogpilot_params(UIState *s) { UIScene &scene = s->scene; - 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(); - scene.longitudinal_control = hasLongitudinalControl(CP); - } - - float distance_conversion = scene.is_metric ? 1.0f : FOOT_TO_METER; - float small_distance_conversion = scene.is_metric ? 1.0f : INCH_TO_CM; - float speed_conversion = scene.is_metric ? 1 / MS_TO_KPH : 1 / MS_TO_MPH; - - bool advanced_custom_onroad_ui = params.getBool("AdvancedCustomUI"); - scene.camera_view = advanced_custom_onroad_ui ? params.getInt("CameraView") : 0; - scene.hide_lead_marker = advanced_custom_onroad_ui && params.getBool("HideLeadMarker"); - scene.hide_speed = advanced_custom_onroad_ui && params.getBool("HideSpeed"); - scene.hide_speed_ui = scene.hide_speed && params.getBool("HideSpeedUI"); - bool hide_ui_elements = advanced_custom_onroad_ui && params.getBool("HideUIElements"); - scene.hide_alerts = hide_ui_elements && params.getBool("HideAlerts"); - scene.hide_map_icon = hide_ui_elements && params.getBool("HideMapIcon"); - scene.hide_max_speed = hide_ui_elements && params.getBool("HideMaxSpeed"); - scene.show_stopping_point = advanced_custom_onroad_ui && params.getBool("ShowStoppingPoint"); - scene.show_stopping_point_metrics = scene.show_stopping_point && params.getBool("ShowStoppingPointMetrics"); - scene.wheel_speed = advanced_custom_onroad_ui && params.getBool("WheelSpeed"); - - bool always_on_lateral = params.getBool("AlwaysOnLateral"); - scene.show_aol_status_bar = always_on_lateral && !params.getBool("HideAOLStatusBar"); - - bool personalize_openpilot = params.getBool("PersonalizeOpenpilot"); + scene.acceleration_path = static_cast(scene.frogpilot_toggles.value("acceleration_path").toBool()); + scene.adjacent_path = static_cast(scene.frogpilot_toggles.value("adjacent_paths").toBool()); + scene.adjacent_path_metrics = static_cast(scene.frogpilot_toggles.value("adjacent_path_metrics").toBool()); + scene.aol_status_bar = static_cast(scene.frogpilot_toggles.value("always_on_lateral_status_bar").toBool()); + scene.big_map = static_cast(scene.frogpilot_toggles.value("big_map").toBool()); + scene.blind_spot_path = static_cast(scene.frogpilot_toggles.value("blind_spot_path").toBool()); + scene.camera_view = scene.frogpilot_toggles.value("camera_view").toDouble(); + scene.cem_status_bar = static_cast(scene.frogpilot_toggles.value("conditional_status_bar").toBool()); + scene.compass = static_cast(scene.frogpilot_toggles.value("compass").toBool()); + scene.conditional_experimental = static_cast(scene.frogpilot_toggles.value("conditional_experimental_mode").toBool()); + scene.conditional_limit = scene.frogpilot_toggles.value("conditional_limit").toDouble(); + scene.conditional_limit_lead = scene.frogpilot_toggles.value("conditional_limit_lead").toDouble(); + scene.cpu_metrics = static_cast(scene.frogpilot_toggles.value("cpu_metrics").toBool()); + scene.disable_curve_speed_smoothing = static_cast(scene.frogpilot_toggles.value("disable_curve_speed_smoothing").toBool()); + scene.driver_camera_in_reverse = static_cast(scene.frogpilot_toggles.value("driver_camera_in_reverse").toBool()); + scene.dynamic_path_width = static_cast(scene.frogpilot_toggles.value("dynamic_path_width").toBool()); + scene.dynamic_pedals_on_ui = static_cast(scene.frogpilot_toggles.value("dynamic_pedals_on_ui").toBool()); + scene.experimental_mode_via_tap = static_cast(scene.frogpilot_toggles.value("experimental_mode_via_tap").toBool()); + scene.fahrenheit = static_cast(scene.frogpilot_toggles.value("fahrenheit").toBool()); + scene.full_map = static_cast(scene.frogpilot_toggles.value("full_map").toBool()); + scene.gpu_metrics = static_cast(scene.frogpilot_toggles.value("gpu_metrics").toBool()); + scene.hide_alerts = static_cast(scene.frogpilot_toggles.value("hide_alerts").toBool()); + scene.hide_lead_marker = static_cast(scene.frogpilot_toggles.value("hide_lead_marker").toBool()); + scene.hide_map_icon = static_cast(scene.frogpilot_toggles.value("hide_map_icon").toBool()); + scene.hide_max_speed = static_cast(scene.frogpilot_toggles.value("hide_max_speed").toBool()); + scene.hide_speed = static_cast(scene.frogpilot_toggles.value("hide_speed").toBool()); + scene.ip_metrics = static_cast(scene.frogpilot_toggles.value("ip_metrics").toBool()); + scene.jerk_metrics = static_cast(scene.frogpilot_toggles.value("jerk_metrics").toBool()); + scene.lateral_tuning_metrics = static_cast(scene.has_auto_tune && scene.frogpilot_toggles.value("lateral_tuning_metrics").toBool()); + scene.lane_detection_width = scene.frogpilot_toggles.value("lane_detection_width").toDouble(); + scene.lane_line_width = scene.frogpilot_toggles.value("lane_line_width").toDouble(); scene.lane_lines_color = loadThemeColors("LaneLines"); + scene.lead_detection_probability = scene.frogpilot_toggles.value("lead_detection_probability").toDouble(); scene.lead_marker_color = loadThemeColors("LeadMarker"); + scene.lead_metrics = static_cast(scene.frogpilot_toggles.value("lead_metrics").toBool()); + scene.map_style = scene.frogpilot_toggles.value("map_style").toDouble(); + scene.memory_metrics = static_cast(scene.frogpilot_toggles.value("memory_metrics").toBool()); + scene.minimum_lane_change_speed = scene.frogpilot_toggles.value("minimum_lane_change_speed").toDouble(); + scene.model_randomizer = static_cast(scene.frogpilot_toggles.value("model_randomizer").toBool()); + scene.model_ui = static_cast(scene.frogpilot_toggles.value("model_ui").toBool()); + scene.numerical_temp = static_cast(scene.frogpilot_toggles.value("numerical_temp").toBool()); + scene.onroad_distance_button = static_cast(scene.frogpilot_toggles.value("onroad_distance_button").toBool()); scene.path_color = loadThemeColors("Path"); + scene.path_edge_width = scene.frogpilot_toggles.value("path_edge_width").toDouble(); scene.path_edges_color = loadThemeColors("PathEdge"); - scene.road_edges_color = loadThemeColors("RoadEdges"); + scene.path_width = scene.frogpilot_toggles.value("path_width").toDouble(); + scene.pedals_on_ui = static_cast(scene.frogpilot_toggles.value("pedals_on_ui").toBool()); + scene.radarless_model = static_cast(scene.frogpilot_toggles.value("radarless_model").toBool()); + scene.random_events = static_cast(scene.frogpilot_toggles.value("random_events").toBool()); + scene.road_edge_width = scene.frogpilot_toggles.value("road_edge_width").toDouble(); + scene.road_name_ui = static_cast(scene.frogpilot_toggles.value("road_name_ui").toBool()); + scene.rotating_wheel = static_cast(scene.frogpilot_toggles.value("rotating_wheel").toBool()); + scene.screen_brightness = scene.frogpilot_toggles.value("screen_brightness").toDouble(); + scene.screen_brightness_onroad = scene.frogpilot_toggles.value("screen_brightness_onroad").toDouble(); + scene.screen_recorder = static_cast(scene.frogpilot_toggles.value("screen_recorder").toBool()); + scene.screen_timeout = scene.frogpilot_toggles.value("screen_timeout").toDouble(); + scene.screen_timeout_onroad = scene.frogpilot_toggles.value("screen_timeout_onroad").toDouble(); + scene.show_blind_spot = static_cast(scene.frogpilot_toggles.value("blind_spot_metrics").toBool()); + scene.show_fps = static_cast(scene.frogpilot_toggles.value("show_fps").toBool()); + scene.show_speed_limit_offset = static_cast(scene.frogpilot_toggles.value("show_speed_limit_offset").toBool()); + scene.show_stopping_point = static_cast(scene.frogpilot_toggles.value("show_stopping_point").toBool()); + scene.show_stopping_point_metrics = static_cast(scene.frogpilot_toggles.value("show_stopping_point_metrics").toBool()); scene.sidebar_color1 = loadThemeColors("Sidebar1"); scene.sidebar_color2 = loadThemeColors("Sidebar2"); scene.sidebar_color3 = loadThemeColors("Sidebar3"); - scene.use_stock_colors = !personalize_openpilot || params.getBool("UseStockColors"); - scene.use_stock_wheel = !personalize_openpilot || QString::fromStdString(params.get("WheelIcon")) == "stock"; + scene.sidebar_metrics = static_cast(scene.frogpilot_toggles.value("sidebar_metrics").toBool()); + scene.signal_metrics = static_cast(scene.frogpilot_toggles.value("signal_metrics").toBool()); + scene.speed_limit_controller = static_cast(scene.frogpilot_toggles.value("speed_limit_controller").toBool()); + scene.speed_limit_vienna = static_cast(scene.frogpilot_toggles.value("speed_limit_vienna").toBool()); + scene.standby_mode = static_cast(scene.frogpilot_toggles.value("standby_mode").toBool()); + scene.static_pedals_on_ui = static_cast(scene.frogpilot_toggles.value("static_pedals_on_ui").toBool()); + scene.steering_metrics = static_cast(scene.frogpilot_toggles.value("steering_metrics").toBool()); + scene.stopped_timer = static_cast(scene.frogpilot_toggles.value("stopped_timer").toBool()); + scene.storage_left_metrics = static_cast(scene.frogpilot_toggles.value("storage_left_metrics").toBool()); + scene.storage_used_metrics = static_cast(scene.frogpilot_toggles.value("storage_used_metrics").toBool()); + scene.tethering_config = scene.frogpilot_toggles.value("tethering_config").toDouble(); + scene.unlimited_road_ui_length = static_cast(scene.frogpilot_toggles.value("unlimited_road_ui_length").toBool()); + scene.use_si_metrics = static_cast(scene.frogpilot_toggles.value("use_si_metrics").toBool()); + scene.use_stock_colors = static_cast(scene.frogpilot_toggles.value("color_scheme").toString() == "stock"); + scene.use_stock_wheel = static_cast(scene.frogpilot_toggles.value("wheel_image").toString() == "stock"); + scene.use_wheel_speed = static_cast(scene.frogpilot_toggles.value("use_wheel_speed").toBool()); - scene.conditional_experimental = scene.longitudinal_control && params.getBool("ConditionalExperimental"); - scene.conditional_speed = scene.conditional_experimental ? params.getInt("CESpeed") : 0; - scene.conditional_speed_lead = scene.conditional_experimental ? params.getInt("CESpeedLead") : 0; - scene.show_cem_status_bar = scene.conditional_experimental && !params.getBool("HideCEMStatusBar"); - - bool custom_onroad_ui = params.getBool("CustomUI"); - bool custom_paths = custom_onroad_ui && params.getBool("CustomPaths"); - scene.acceleration_path = custom_paths && params.getBool("AccelerationPath"); - scene.adjacent_path = custom_paths && params.getBool("AdjacentPath"); - scene.blind_spot_path = custom_paths && params.getBool("BlindSpotPath"); - scene.compass = custom_onroad_ui && params.getBool("Compass"); - scene.dynamic_path_width = custom_onroad_ui && params.getBool("DynamicPathWidth"); - scene.pedals_on_ui = custom_onroad_ui && params.getBool("PedalsOnUI"); - scene.dynamic_pedals_on_ui = scene.pedals_on_ui && params.getBool("DynamicPedalsOnUI"); - scene.static_pedals_on_ui = scene.pedals_on_ui && params.getBool("StaticPedalsOnUI"); - scene.road_name_ui = custom_onroad_ui && params.getBool("RoadNameUI"); - scene.rotating_wheel = custom_onroad_ui && params.getBool("RotatingWheel"); - - bool developer_ui = params.getBool("DeveloperUI"); - bool border_metrics = developer_ui && params.getBool("BorderMetrics"); - scene.show_blind_spot = border_metrics && params.getBool("BlindSpotMetrics"); - scene.show_fps = developer_ui && params.getBool("FPSCounter"); - scene.show_signal = border_metrics && params.getBool("SignalMetrics"); - scene.show_steering = border_metrics && params.getBool("ShowSteering"); - bool show_lateral = developer_ui && params.getBool("LateralMetrics"); - scene.adjacent_path_metrics = show_lateral && params.getBool("AdjacentPathMetrics"); - scene.show_tuning = show_lateral && scene.has_auto_tune && params.getBool("TuningInfo"); - bool show_longitudinal = scene.longitudinal_control && developer_ui && params.getBool("LongitudinalMetrics"); - scene.lead_info = show_longitudinal && params.getBool("LeadInfo"); - scene.show_jerk = show_longitudinal && params.getBool("JerkInfo"); - scene.numerical_temp = developer_ui && params.getBool("NumericalTemp"); - scene.fahrenheit = scene.numerical_temp && params.getBool("Fahrenheit"); - scene.sidebar_metrics = developer_ui && params.getBool("SidebarMetrics"); - scene.is_CPU = scene.sidebar_metrics && params.getBool("ShowCPU"); - scene.is_GPU = scene.sidebar_metrics && params.getBool("ShowGPU"); - scene.is_IP = scene.sidebar_metrics && params.getBool("ShowIP"); - scene.is_memory = scene.sidebar_metrics && params.getBool("ShowMemoryUsage"); - scene.is_storage_left = scene.sidebar_metrics && params.getBool("ShowStorageLeft"); - scene.is_storage_used = scene.sidebar_metrics && params.getBool("ShowStorageUsed"); - scene.use_si = developer_ui && params.getBool("UseSI"); - - scene.disable_curve_speed_smoothing = params.getBool("CurveSpeedControl") && params.getBool("DisableCurveSpeedSmoothing"); - - scene.experimental_mode_via_screen = scene.longitudinal_control && params.getBool("ExperimentalModeActivation") && params.getBool("ExperimentalModeViaTap"); - - bool lane_change_customizations = params.getBool("LaneChangeCustomizations"); - scene.lane_detection_width = lane_change_customizations ? params.getInt("LaneDetectionWidth") * distance_conversion / 10.0f : 2.75f; - scene.minimum_lane_change_speed = lane_change_customizations ? params.getInt("MinimumLaneChangeSpeed") * speed_conversion : 20 * (1 / MS_TO_MPH); - - bool advanced_longitudinal_tune = scene.longitudinal_control && params.getBool("AdvancedLongitudinalTune"); - scene.radarless_model = params.get("Model") == "radical-turtle"; - scene.lead_detection_threshold = advanced_longitudinal_tune && !scene.radarless_model ? params.getInt("LeadDetectionThreshold") / 100.0f : 0.5; - - bool model_manager = params.getBool("ModelManagement"); - scene.model_randomizer = model_manager && params.getBool("ModelRandomizer"); - - scene.model_ui = params.getBool("ModelUI"); - scene.lane_line_width = params.getInt("LaneLinesWidth") * small_distance_conversion / 200.0f; - scene.path_edge_width = params.getInt("PathEdgeWidth"); - scene.path_width = params.getFloat("PathWidth") * distance_conversion / 2.0f; - scene.road_edge_width = params.getInt("RoadEdgesWidth") * small_distance_conversion / 200.0f; - scene.unlimited_road_ui_length = scene.model_ui && params.getBool("UnlimitedLength"); - - bool quality_of_life_longitudinal = params.getBool("QOLLongitudinal"); - scene.onroad_distance_button = quality_of_life_longitudinal && params.getBool("OnroadDistanceButton"); - scene.reverse_cruise = quality_of_life_longitudinal && params.getBool("ReverseCruise"); - - bool quality_of_life_visuals = params.getBool("QOLVisuals"); - scene.big_map = quality_of_life_visuals && params.getBool("BigMap"); - scene.full_map = scene.big_map && params.getBool("FullMap"); - scene.driver_camera = quality_of_life_visuals && params.getBool("DriverCamera"); - scene.map_style = quality_of_life_visuals ? params.getInt("MapStyle") : 0; - scene.standby_mode = quality_of_life_visuals && params.getBool("StandbyMode"); - scene.stopped_timer = quality_of_life_visuals && params.getBool("StoppedTimer"); - - scene.random_events = params.getBool("RandomEvents"); - - bool screen_management = params.getBool("ScreenManagement"); - scene.screen_brightness = screen_management ? params.getInt("ScreenBrightness") : 101; - scene.screen_brightness_onroad = screen_management ? params.getInt("ScreenBrightnessOnroad") : 101; - scene.screen_recorder = screen_management && params.getBool("ScreenRecorder"); - scene.screen_timeout = screen_management ? params.getInt("ScreenTimeout") : 30; - scene.screen_timeout_onroad = screen_management ? params.getInt("ScreenTimeoutOnroad") : 10; - - scene.speed_limit_controller = scene.longitudinal_control && params.getBool("SpeedLimitController"); - scene.show_slc_offset = scene.speed_limit_controller && params.getBool("ShowSLCOffset"); - scene.show_slc_offset_ui = scene.speed_limit_controller && params.getBool("ShowSLCOffsetUI"); - scene.use_vienna_slc_sign = scene.speed_limit_controller && params.getBool("UseVienna"); - - scene.tethering_config = params.getInt("TetheringEnabled"); if (scene.tethering_config == 1) { WifiManager(s).setTetheringEnabled(true); } @@ -535,6 +496,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(); ui_update_params(this); } @@ -548,37 +510,21 @@ void UIState::update() { } emit uiUpdate(*this); - // Update FrogPilot parameters - static bool theme_updated = false; - static bool update_toggles = false; - - if (paramsMemory.getBool("FrogPilotTogglesUpdated")) { - update_toggles = true; - } else if (update_toggles) { - ui_update_params(this); - update_toggles = false; - } - + // Update FrogPilot variables if (paramsMemory.getBool("DriveRated")) { emit driveRated(); paramsMemory.remove("DriveRated"); } - if (theme_updated) { + if (paramsMemory.getBool("ThemeUpdated")) { loadThemeColors("", true); - ui_update_params(this); - - paramsMemory.remove("UpdateTheme"); - - theme_updated = false; - } else if (paramsMemory.getBool("UpdateTheme")) { - theme_updated = true; + paramsMemory.remove("ThemeUpdated"); } // FrogPilot variables that need to be constantly updated scene.conditional_status = scene.conditional_experimental && scene.enabled ? paramsMemory.getInt("CEStatus") : 0; - scene.driver_camera_timer = scene.driver_camera && scene.reverse ? scene.driver_camera_timer + 1 : 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.started_timer = scene.started || started_prev ? scene.started_timer + 1 : 0; } diff --git a/selfdrive/ui/ui.h b/selfdrive/ui/ui.h index 9e559692..9e1d55ca 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[2]; + QPointF lead_vertices[6]; // DMoji state float driver_pose_vals[3]; @@ -122,27 +122,44 @@ typedef struct UIScene { uint64_t started_frame; // FrogPilot variables + QColor lane_lines_color; + QColor lead_marker_color; + QColor path_color; + QColor path_edges_color; + QColor sidebar_color1; + QColor sidebar_color2; + QColor sidebar_color3; + + QJsonObject frogpilot_toggles; + + QPolygonF track_adjacent_vertices[6]; + QPolygonF track_edge_vertices; + bool acceleration_path; bool adjacent_path; bool adjacent_path_metrics; bool always_on_lateral_active; + bool aol_status_bar; bool big_map; bool blind_spot_left; bool blind_spot_path; bool blind_spot_right; bool brake_lights_on; + bool cem_status_bar; bool compass; bool conditional_experimental; + bool cpu_metrics; bool disable_curve_speed_smoothing; - bool driver_camera; + bool driver_camera_in_reverse; bool dynamic_path_width; bool dynamic_pedals_on_ui; bool enabled; bool experimental_mode; - bool experimental_mode_via_screen; + bool experimental_mode_via_tap; bool fahrenheit; bool force_onroad; bool full_map; + bool gpu_metrics; bool has_auto_tune; bool has_lead; bool hide_alerts; @@ -150,16 +167,13 @@ typedef struct UIScene { bool hide_map_icon; bool hide_max_speed; bool hide_speed; - bool hide_speed_ui; - bool is_CPU; - bool is_GPU; - bool is_IP; - bool is_memory; - bool is_storage_left; - bool is_storage_used; - bool lead_info; + bool ip_metrics; + bool jerk_metrics; + bool lateral_tuning_metrics; + bool lead_metrics; bool live_valid; bool map_open; + bool memory_metrics; bool model_randomizer; bool model_ui; bool numerical_temp; @@ -171,44 +185,40 @@ typedef struct UIScene { bool random_events; bool red_light; bool reverse; - bool reverse_cruise; bool right_hand_drive; bool road_name_ui; bool rotating_wheel; bool screen_recorder; - bool show_aol_status_bar; bool show_blind_spot; - bool show_cem_status_bar; bool show_fps; - bool show_jerk; - bool show_signal; - bool show_slc_offset; - bool show_slc_offset_ui; - bool show_steering; + bool show_speed_limit_offset; bool show_stopping_point; bool show_stopping_point_metrics; - bool show_tuning; bool sidebar_metrics; + bool signal_metrics; bool speed_limit_changed; bool speed_limit_controller; bool speed_limit_overridden; + bool speed_limit_vienna; bool standby_mode; bool standstill; bool static_pedals_on_ui; + bool steering_metrics; bool stopped_timer; + bool storage_left_metrics; + bool storage_used_metrics; bool tethering_enabled; bool traffic_mode; bool traffic_mode_active; bool turn_signal_left; bool turn_signal_right; bool unlimited_road_ui_length; - bool use_si; + bool use_si_metrics; bool use_stock_colors; bool use_stock_wheel; - bool use_vienna_slc_sign; + bool use_wheel_speed; bool vtsc_controlling_curve; bool wake_up_screen; - bool wheel_speed; double fps; @@ -222,7 +232,7 @@ typedef struct UIScene { float lane_width_left; float lane_width_right; float lat_accel; - float lead_detection_threshold; + float lead_detection_probability; float path_edge_width; float path_width; float road_edge_width; @@ -236,8 +246,8 @@ typedef struct UIScene { int bearing_deg; int camera_view; - int conditional_speed; - int conditional_speed_lead; + int conditional_limit; + int conditional_limit_lead; int conditional_status; int desired_follow; int driver_camera_timer; @@ -255,18 +265,6 @@ typedef struct UIScene { int stopped_equivalence; int tethering_config; - QColor lane_lines_color; - QColor lead_marker_color; - QColor path_color; - QColor path_edges_color; - QColor road_edges_color; - QColor sidebar_color1; - QColor sidebar_color2; - QColor sidebar_color3; - - QPolygonF track_adjacent_vertices[6]; - QPolygonF track_edge_vertices; - } UIScene; class UIState : public QObject { @@ -368,4 +366,4 @@ void update_line_data(const UIState *s, const cereal::XYZTData::Reader &line, float y_off, float z_off, QPolygonF *pvd, int max_idx, bool allow_invert); // FrogPilot functions -void ui_update_frogpilot_params(UIState *s, Params ¶ms); +void ui_update_frogpilot_params(UIState *s); diff --git a/system/camerad/cameras/camera_qcom2.cc b/system/camerad/cameras/camera_qcom2.cc index 67215aea..096e288c 100644 --- a/system/camerad/cameras/camera_qcom2.cc +++ b/system/camerad/cameras/camera_qcom2.cc @@ -958,12 +958,6 @@ void process_road_camera(MultiCameraState *s, CameraState *c, int cnt) { } void cameras_run(MultiCameraState *s) { - // FrogPilot variables - Params paramsMemory{"/dev/shm/params"}; - const std::chrono::seconds fpsUpdateInterval(1); - std::chrono::steady_clock::time_point startTime = std::chrono::steady_clock::now(); - int frameCount = 0; - LOG("-- Starting threads"); std::vector threads; if (s->driver_cam.enabled) threads.push_back(start_process_thread(s, &s->driver_cam, process_driver_camera)); @@ -1006,17 +1000,6 @@ void cameras_run(MultiCameraState *s) { // for debugging //do_exit = do_exit || event_data->u.frame_msg.frame_id > (30*20); - frameCount++; - - std::chrono::steady_clock::time_point currentTime = std::chrono::steady_clock::now(); - if (currentTime - startTime >= fpsUpdateInterval) { - auto duration = std::chrono::duration_cast(currentTime - startTime).count(); - double fps = frameCount / duration; - paramsMemory.putIntNonBlocking("CameraFPS", fps / 3); - frameCount = 0; - startTime = currentTime; - } - if (event_data->session_hdl == s->road_cam.session_handle) { s->road_cam.handle_camera_event(event_data); } else if (event_data->session_hdl == s->wide_road_cam.session_handle) { diff --git a/system/hardware/hardwared.py b/system/hardware/hardwared.py index cfde93ba..0bb9d332 100755 --- a/system/hardware/hardwared.py +++ b/system/hardware/hardwared.py @@ -25,7 +25,7 @@ from openpilot.system.hardware.power_monitoring import PowerMonitoring from openpilot.system.hardware.fan_controller import TiciFanController from openpilot.system.version import terms_version, training_version -from openpilot.selfdrive.frogpilot.frogpilot_variables import FrogPilotVariables +from openpilot.selfdrive.frogpilot.frogpilot_variables import get_frogpilot_toggles ThermalStatus = log.DeviceState.ThermalStatus NetworkType = log.DeviceState.NetworkType @@ -166,7 +166,7 @@ def hw_state_thread(end_event, hw_queue): def hardware_thread(end_event, hw_queue) -> None: pm = messaging.PubMaster(['deviceState', 'frogpilotDeviceState']) - sm = messaging.SubMaster(["peripheralState", "gpsLocationExternal", "controlsState", "pandaStates"], poll="pandaStates") + sm = messaging.SubMaster(["peripheralState", "gpsLocationExternal", "controlsState", "pandaStates", "frogpilotPlan"], poll="pandaStates") count = 0 @@ -207,13 +207,10 @@ def hardware_thread(end_event, hw_queue) -> None: fan_controller = None # FrogPilot variables - frogpilot_toggles = FrogPilotVariables.toggles - FrogPilotVariables.update_frogpilot_params() + frogpilot_toggles = get_frogpilot_toggles(True) params_memory = Params("/dev/shm/params") - update_toggles = False - while not end_event.is_set(): sm.update(PANDA_STATES_TIMEOUT) @@ -470,11 +467,8 @@ def hardware_thread(end_event, hw_queue) -> None: should_start_prev = should_start # Update FrogPilot parameters - if FrogPilotVariables.toggles_updated: - update_toggles = True - elif update_toggles: - FrogPilotVariables.update_frogpilot_params(started_ts is not None) - update_toggles = False + if sm['frogpilotPlan'].togglesUpdated: + frogpilot_toggles = get_frogpilot_toggles() def main(): hw_queue = queue.Queue(maxsize=1) diff --git a/system/manager/manager.py b/system/manager/manager.py index 8fa51a8b..adcbe398 100755 --- a/system/manager/manager.py +++ b/system/manager/manager.py @@ -24,6 +24,7 @@ from openpilot.system.version import get_build_metadata, terms_version, training from openpilot.selfdrive.frogpilot.assets.model_manager import DEFAULT_MODEL, DEFAULT_MODEL_NAME from openpilot.selfdrive.frogpilot.frogpilot_functions import convert_params, frogpilot_boot_functions, setup_frogpilot, uninstall_frogpilot +from openpilot.selfdrive.frogpilot.frogpilot_variables import frogpilot_default_params, get_frogpilot_toggles def manager_init() -> None: @@ -32,9 +33,7 @@ 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) @@ -47,10 +46,13 @@ def manager_init() -> None: default_params: list[tuple[str, str | bytes]] = [ ("AlwaysOnDM", "0"), + ("CalibrationParams", ""), ("CarParamsPersistent", ""), ("CompletedTrainingVersion", "0"), ("DisengageOnAccelerator", "0"), ("ExperimentalLongitudinalEnabled", "0"), + ("ExperimentalMode", "0"), + ("ExperimentalModeConfirmed", "0"), ("GithubSshKeys", ""), ("GithubUsername", ""), ("GsmApn", ""), @@ -60,327 +62,14 @@ def manager_init() -> None: ("IsLdwEnabled", "0"), ("IsMetric", "0"), ("LanguageSetting", "main_en"), + ("LiveTorqueParameters", ""), ("NavSettingLeftSide", "0"), ("NavSettingTime24h", "0"), ("OpenpilotEnabledToggle", "1"), ("RecordFront", "0"), ("SshEnabled", "0"), ("TetheringEnabled", "0"), - ("LongitudinalPersonality", str(log.LongitudinalPersonality.standard)), - - # Default FrogPilot parameters - ("AccelerationPath", "1"), - ("AccelerationProfile", "2"), - ("AdjacentPath", "0"), - ("AdjacentPathMetrics", "0"), - ("AdvancedCustomUI", "0"), - ("AdvancedLateralTune", "0"), - ("AdvancedLongitudinalTune", "1"), - ("AdvancedQOLDriving", "1"), - ("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", "0"), - ("AutomaticUpdates", "1"), - ("AvailableModels", ""), - ("AvailableModelsNames", ""), - ("BigMap", "0"), - ("BlacklistedModels", ""), - ("BlindSpotMetrics", "0"), - ("BlindSpotPath", "1"), - ("BorderMetrics", "1"), - ("CameraView", "2"), - ("CarMake", ""), - ("CarModel", ""), - ("CarModelName", ""), - ("CECurves", "1"), - ("CECurvesLead", "1"), - ("CELead", "1"), - ("CENavigation", "1"), - ("CENavigationIntersections", "1"), - ("CENavigationLead", "1"), - ("CENavigationTurns", "1"), - ("CertifiedHerbalistCalibrationParams", ""), - ("CertifiedHerbalistDrives", "0"), - ("CertifiedHerbalistLiveTorqueParameters", ""), - ("CertifiedHerbalistScore", "0"), - ("CEModelStopTime", "8"), - ("CESignalSpeed", "55"), - ("CESignalLaneDetection", "1"), - ("CESlowerLead", "1"), - ("CESpeed", "0"), - ("CESpeedLead", "0"), - ("CEStoppedLead", "1"), - ("ClusterOffset", "1.015"), - ("Compass", "0"), - ("ConditionalExperimental", "1"), - ("CrosstrekTorque", "1"), - ("CurveSensitivity", "100"), - ("CurveSpeedControl", "1"), - ("CustomAlerts", "1"), - ("CustomColors", "frog"), - ("CustomCruise", "1"), - ("CustomCruiseLong", "5"), - ("CustomDistanceIcons", "stock"), - ("CustomIcons", "frog-animated"), - ("CustomPaths", "1"), - ("CustomPersonalities", "0"), - ("CustomSignals", "frog"), - ("CustomSounds", "frog"), - ("CustomUI", "1"), - ("DecelerationProfile", "1"), - ("DeveloperUI", "0"), - ("DeviceManagement", "1"), - ("DeviceShutdown", "9"), - ("DisableCurveSpeedSmoothing", "0"), - ("DisableOnroadUploads", "0"), - ("DisableOpenpilotLongitudinal", "0"), - ("DisengageVolume", "100"), - ("DriverCamera", "0"), - ("DrivingPersonalities", "0"), - ("DuckAmigoCalibrationParams", ""), - ("DuckAmigoDrives", "0"), - ("DuckAmigoLiveTorqueParameters", ""), - ("DuckAmigoScore", "0"), - ("DynamicPathWidth", "0"), - ("DynamicPedalsOnUI", "1"), - ("EngageVolume", "100"), - ("ExperimentalGMTune", "0"), - ("ExperimentalModeActivation", "1"), - ("ExperimentalModels", ""), - ("ExperimentalModeViaDistance", "1"), - ("ExperimentalModeViaLKAS", "1"), - ("ExperimentalModeViaTap", "0"), - ("Fahrenheit", "0"), - ("ForceAutoTune", "1"), - ("ForceAutoTuneOff", "0"), - ("ForceFingerprint", "0"), - ("ForceMPHDashboard", "0"), - ("ForceStandstill", "0"), - ("ForceStops", "0"), - ("FPSCounter", "1"), - ("FrogsGoMoosTweak", "1"), - ("FullMap", "0"), - ("GameBoyCalibrationParams", ""), - ("GameBoyDrives", "0"), - ("GameBoyLiveTorqueParameters", ""), - ("GameBoyScore", "0"), - ("GasRegenCmd", "1"), - ("GMapKey", ""), - ("GoatScream", "0"), - ("GreenLightAlert", "0"), - ("HideAlerts", "0"), - ("HideAOLStatusBar", "0"), - ("HideCEMStatusBar", "0"), - ("HideLeadMarker", "0"), - ("HideMapIcon", "0"), - ("HideMaxSpeed", "0"), - ("HideSpeed", "0"), - ("HideSpeedUI", "0"), - ("HideUIElements", "0"), - ("HolidayThemes", "1"), - ("HumanAcceleration", "1"), - ("HumanFollowing", "1"), - ("IncreasedStoppedDistance", "3"), - ("IncreaseThermalLimits", "0"), - ("JerkInfo", "1"), - ("LaneChangeCustomizations", "1"), - ("LaneChangeTime", "0"), - ("LaneDetectionWidth", "6"), - ("LaneLinesWidth", "4"), - ("LateralMetrics", "1"), - ("LateralTune", "1"), - ("LeadDepartingAlert", "0"), - ("LeadDetectionThreshold", "35"), - ("LeadInfo", "1"), - ("LockDoors", "1"), - ("LongitudinalMetrics", "1"), - ("LongitudinalTune", "1"), - ("LongPitch", "1"), - ("LosAngelesCalibrationParams", ""), - ("LosAngelesDrives", "0"), - ("LosAngelesLiveTorqueParameters", ""), - ("LosAngelesScore", "0"), - ("LoudBlindspotAlert", "0"), - ("LowVoltageShutdown", str(VBATT_PAUSE_CHARGING)), - ("MapAcceleration", "0"), - ("MapDeceleration", "0"), - ("MapGears", "0"), - ("MapboxPublicKey", ""), - ("MapboxSecretKey", ""), - ("MapsSelected", ""), - ("MapStyle", "10"), - ("MaxDesiredAcceleration", "4.0"), - ("MinimumLaneChangeSpeed", str(LANE_CHANGE_SPEED_MIN / CV.MPH_TO_MS)), - ("Model", DEFAULT_MODEL), - ("ModelManagement", "0"), - ("ModelName", DEFAULT_MODEL_NAME), - ("ModelRandomizer", "0"), - ("ModelSelector", "0"), - ("ModelUI", "1"), - ("MTSCCurvatureCheck", "0"), - ("MTSCEnabled", "1"), - ("NavigationModels", ""), - ("NewLongAPI", "0"), - ("NewLongAPIGM", "1"), - ("NewToyotaTune", "0"), - ("NNFF", "1"), - ("NNFFLite", "1"), - ("NoLogging", "0"), - ("NorthDakotaCalibrationParams", ""), - ("NorthDakotaDrives", "0"), - ("NorthDakotaLiveTorqueParameters", ""), - ("NorthDakotaScore", "0"), - ("NotreDameCalibrationParams", ""), - ("NotreDameDrives", "0"), - ("NotreDameLiveTorqueParameters", ""), - ("NotreDameScore", "0"), - ("NoUploads", "0"), - ("NudgelessLaneChange", "1"), - ("NumericalTemp", "1"), - ("OfflineMode", "1"), - ("Offset1", "5"), - ("Offset2", "5"), - ("Offset3", "5"), - ("Offset4", "10"), - ("OneLaneChange", "1"), - ("OnroadDistanceButton", "0"), - ("PathEdgeWidth", "20"), - ("PathWidth", "6.1"), - ("PauseAOLOnBrake", "0"), - ("PauseLateralOnSignal", "0"), - ("PauseLateralSpeed", "0"), - ("PedalsOnUI", "1"), - ("PersonalizeOpenpilot", "1"), - ("PreferredSchedule", "0"), - ("PromptDistractedVolume", "100"), - ("PromptVolume", "100"), - ("QOLLateral", "1"), - ("QOLLongitudinal", "1"), - ("QOLVisuals", "1"), - ("RadarlessModels", ""), - ("RadicalTurtleCalibrationParams", ""), - ("RadicalTurtleDrives", "0"), - ("RadicalTurtleLiveTorqueParameters", ""), - ("RadicalTurtleScore", "0"), - ("RandomEvents", "0"), - ("RecertifiedHerbalistCalibrationParams", ""), - ("RecertifiedHerbalistDrives", "0"), - ("RecertifiedHerbalistLiveTorqueParameters", ""), - ("RecertifiedHerbalistScore", "0"), - ("RefuseVolume", "100"), - ("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"), - ("SecretGoodOpenpilotCalibrationParams", ""), - ("SecretGoodOpenpilotDrives", "0"), - ("SecretGoodOpenpilotLiveTorqueParameters", ""), - ("SecretGoodOpenpilotScore", "0"), - ("SetSpeedLimit", "0"), - ("SetSpeedOffset", "0"), - ("ShowCPU", "1"), - ("ShowGPU", "0"), - ("ShowIP", "0"), - ("ShowMemoryUsage", "1"), - ("ShowSLCOffset", "1"), - ("ShowSLCOffsetUI", "1"), - ("ShowSteering", "1"), - ("ShowStoppingPoint", "0"), - ("ShowStoppingPointMetrics", "0"), - ("ShowStorageLeft", "0"), - ("ShowStorageUsed", "0"), - ("Sidebar", "0"), - ("SidebarMetrics", "1"), - ("SignalMetrics", "0"), - ("SLCConfirmationHigher", "1"), - ("SLCConfirmationLower", "1"), - ("SLCFallback", "2"), - ("SLCLookaheadHigher", "5"), - ("SLCLookaheadLower", "5"), - ("SLCOverride", "1"), - ("SLCPriority1", "Dashboard"), - ("SLCPriority2", "Offline Maps"), - ("SLCPriority3", "Navigation"), - ("SNGHack", "1"), - ("SpeedLimitChangedAlert", "1"), - ("SpeedLimitController", "1"), - ("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"), - ("TombRaiderCalibrationParams", ""), - ("TombRaiderDrives", "0"), - ("TombRaiderLiveTorqueParameters", ""), - ("TombRaiderScore", "0"), - ("ToyotaDoors", "0"), - ("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"), - ("VelocityModels", ""), - ("VisionTurnControl", "1"), - ("VoltSNG", "0"), - ("WarningImmediateVolume", "100"), - ("WarningSoftVolume", "100"), - ("WD40CalibrationParams", ""), - ("WD40Drives", "0"), - ("WD40LiveTorqueParameters", ""), - ("WD40Score", "0"), - ("WheelIcon", "frog"), - ("WheelSpeed", "0") + ("LongitudinalPersonality", str(log.LongitudinalPersonality.standard)) ] if not PC: default_params.append(("LastUpdateTime", datetime.datetime.utcnow().isoformat().encode('utf8'))) @@ -389,7 +78,7 @@ def manager_init() -> None: params.put_bool("RecordFront", True) # set unset params - for k, v in default_params: + for k, v in default_params + frogpilot_default_params: if params.get(k) is None or params.get_bool("DoToggleReset"): if params_storage.get(k) is None: params.put(k, v) @@ -476,16 +165,21 @@ def manager_thread() -> None: ignore.append("pandad") ignore += [x for x in os.getenv("BLOCK", "").split(",") if len(x) > 0] - sm = messaging.SubMaster(['deviceState', 'carParams'], poll='deviceState') + sm = messaging.SubMaster(['deviceState', 'carParams', 'frogpilotPlan'], poll='deviceState') pm = messaging.PubMaster(['managerState']) write_onroad_params(False, params) - ensure_running(managed_processes.values(), False, params=params, CP=sm['carParams'], not_run=ignore, secret_good_openpilot=False) + ensure_running(managed_processes.values(), False, params=params, CP=sm['carParams'], not_run=ignore, classic_model=False) started_prev = False # FrogPilot variables - secret_good_openpilot = params.get("Model", encoding='utf-8') == "secret-good-openpilot" + frogpilot_toggles = get_frogpilot_toggles(True) + classic_model = getattr(frogpilot_toggles, 'classic_model', False) + + error_log = os.path.join(sentry.CRASHES_DIR, 'error.txt') + if os.path.isfile(error_log): + os.remove(error_log) while True: sm.update(1000) @@ -495,12 +189,11 @@ def manager_thread() -> None: if started and not started_prev: params.clear_all(ParamKeyType.CLEAR_ON_ONROAD_TRANSITION) - error_log = os.path.join(sentry.CRASHES_DIR, 'error.txt') if os.path.isfile(error_log): os.remove(error_log) # FrogPilot variables - secret_good_openpilot = params.get("Model", encoding='utf-8') == "secret-good-openpilot" + classic_model = frogpilot_toggles.classic_model elif not started and started_prev: params.clear_all(ParamKeyType.CLEAR_ON_OFFROAD_TRANSITION) @@ -512,7 +205,7 @@ def manager_thread() -> None: started_prev = started - ensure_running(managed_processes.values(), started, params=params, CP=sm['carParams'], not_run=ignore, secret_good_openpilot=secret_good_openpilot) + ensure_running(managed_processes.values(), started, params=params, CP=sm['carParams'], not_run=ignore, classic_model=classic_model) running = ' '.join("{}{}\u001b[0m".format("\u001b[32m" if p.proc.is_alive() else "\u001b[31m", p.name) for p in managed_processes.values() if p.proc) @@ -535,6 +228,9 @@ def manager_thread() -> None: if shutdown: break + # Update FrogPilot parameters + if sm['frogpilotPlan'].togglesUpdated: + frogpilot_toggles = get_frogpilot_toggles() def main() -> None: manager_init() diff --git a/system/manager/process.py b/system/manager/process.py index 7eef9adf..54ddd5b3 100644 --- a/system/manager/process.py +++ b/system/manager/process.py @@ -76,6 +76,9 @@ class ManagerProcess(ABC): watchdog_seen = False shutting_down = False + # FrogPilot variables + started_time = 0 + @abstractmethod def prepare(self) -> None: pass @@ -102,11 +105,14 @@ class ManagerProcess(ABC): dt = time.monotonic() - self.last_watchdog_time / 1e9 + self.started_time = self.started_time + 1 if started else 0 + if dt > self.watchdog_max_dt: if self.watchdog_seen and ENABLE_WATCHDOG: cloudlog.error(f"Watchdog timeout for {self.name} (exitcode {self.proc.exitcode}) restarting ({started=})") self.restart() - sentry.capture_tmux(self.name, params) + if self.started_time > 100: + sentry.capture_tmux(self.name, self.started_time, params) else: self.watchdog_seen = True @@ -239,7 +245,7 @@ class DaemonProcess(ManagerProcess): self.params = None @staticmethod - def should_run(started, params, CP, secret_good_openpilot): + def should_run(started, params, CP, classic_model): return True def prepare(self) -> None: @@ -275,13 +281,13 @@ class DaemonProcess(ManagerProcess): def ensure_running(procs: ValuesView[ManagerProcess], started: bool, params=None, CP: car.CarParams=None, - not_run: list[str] | None=None, secret_good_openpilot=False) -> list[ManagerProcess]: + not_run: list[str] | None=None, classic_model=False) -> list[ManagerProcess]: if not_run is None: not_run = [] running = [] for p in procs: - if p.enabled and p.name not in not_run and p.should_run(started, params, CP, secret_good_openpilot): + if p.enabled and p.name not in not_run and p.should_run(started, params, CP, classic_model): running.append(p) else: p.stop(block=False) diff --git a/system/manager/process_config.py b/system/manager/process_config.py index 9046c89e..10724a53 100644 --- a/system/manager/process_config.py +++ b/system/manager/process_config.py @@ -7,54 +7,54 @@ from openpilot.system.manager.process import PythonProcess, NativeProcess, Daemo WEBCAM = os.getenv("USE_WEBCAM") is not None -def driverview(started: bool, params: Params, CP: car.CarParams, secret_good_openpilot) -> bool: +def driverview(started: bool, params: Params, CP: car.CarParams, classic_model) -> bool: return started or params.get_bool("IsDriverViewEnabled") -def notcar(started: bool, params: Params, CP: car.CarParams, secret_good_openpilot) -> bool: +def notcar(started: bool, params: Params, CP: car.CarParams, classic_model) -> bool: return started and CP.notCar -def iscar(started: bool, params: Params, CP: car.CarParams, secret_good_openpilot) -> bool: +def iscar(started: bool, params: Params, CP: car.CarParams, classic_model) -> bool: return started and not CP.notCar -def logging(started, params, CP: car.CarParams, secret_good_openpilot) -> bool: +def logging(started, params, CP: car.CarParams, classic_model) -> bool: run = (not CP.notCar) or not params.get_bool("DisableLogging") return started and run def ublox_available() -> bool: return os.path.exists('/dev/ttyHS0') and not os.path.exists('/persist/comma/use-quectel-gps') -def ublox(started, params, CP: car.CarParams, secret_good_openpilot) -> bool: +def ublox(started, params, CP: car.CarParams, classic_model) -> bool: use_ublox = ublox_available() if use_ublox != params.get_bool("UbloxAvailable"): params.put_bool("UbloxAvailable", use_ublox) return started and use_ublox -def qcomgps(started, params, CP: car.CarParams, secret_good_openpilot) -> bool: +def qcomgps(started, params, CP: car.CarParams, classic_model) -> bool: return started and not ublox_available() -def always_run(started, params, CP: car.CarParams, secret_good_openpilot) -> bool: +def always_run(started, params, CP: car.CarParams, classic_model) -> bool: return True -def only_onroad(started: bool, params, CP: car.CarParams, secret_good_openpilot) -> bool: +def only_onroad(started: bool, params, CP: car.CarParams, classic_model) -> bool: return started -def only_offroad(started, params, CP: car.CarParams, secret_good_openpilot) -> bool: +def only_offroad(started, params, CP: car.CarParams, classic_model) -> bool: return not started # FrogPilot functions -def allow_logging(started, params, CP: car.CarParams, secret_good_openpilot) -> bool: +def allow_logging(started, params, CP: car.CarParams, classic_model) -> bool: allow_logging = not (params.get_bool("DeviceManagement") and params.get_bool("NoLogging")) - return allow_logging and logging(started, params, CP, secret_good_openpilot) + return allow_logging and logging(started, params, CP, classic_model) -def allow_uploads(started, params, CP: car.CarParams, secret_good_openpilot) -> bool: +def allow_uploads(started, params, CP: car.CarParams, classic_model) -> bool: allow_uploads = not (params.get_bool("DeviceManagement") and params.get_bool("NoUploads") and not params.get_bool("DisableOnroadUploads")) return allow_uploads -def run_classic_modeld(started, params, CP: car.CarParams, secret_good_openpilot) -> bool: - return started and not secret_good_openpilot +def run_classic_modeld(started, params, CP: car.CarParams, classic_model) -> bool: + return started and classic_model -def run_new_modeld(started, params, CP: car.CarParams, secret_good_openpilot) -> bool: - return started and secret_good_openpilot +def run_new_modeld(started, params, CP: car.CarParams, classic_model) -> bool: + return started and not classic_model procs = [ DaemonProcess("manage_athenad", "system.athena.manage_athenad", "AthenadPid"), diff --git a/system/sentry.py b/system/sentry.py index 082c7145..15a402a3 100644 --- a/system/sentry.py +++ b/system/sentry.py @@ -100,7 +100,7 @@ def capture_fingerprint(candidate, params, blocked=False): sentry_sdk.flush() -def capture_tmux(process, params) -> None: +def capture_tmux(process, started_time, params) -> None: updated = params.get("Updated", encoding='utf-8') result = subprocess.run(['tmux', 'capture-pane', '-p', '-S', '-50'], stdout=subprocess.PIPE) @@ -109,7 +109,7 @@ def capture_tmux(process, params) -> None: if lines: with sentry_sdk.configure_scope() as scope: scope.set_extra("tmux_log", "\n".join(lines)) - sentry_sdk.capture_message(f"{process} crashed - Last updated: {updated}", level='info') + sentry_sdk.capture_message(f"{process} crashed - Last updated: {updated} - Started time: {started_time}", level='info') sentry_sdk.flush() diff --git a/system/updated/updated.py b/system/updated/updated.py index 61504c29..9e4f8f5f 100755 --- a/system/updated/updated.py +++ b/system/updated/updated.py @@ -22,7 +22,7 @@ from openpilot.selfdrive.controls.lib.alertmanager import set_offroad_alert from openpilot.system.hardware import AGNOS, HARDWARE from openpilot.system.version import get_build_metadata -from openpilot.selfdrive.frogpilot.frogpilot_variables import FrogPilotVariables +from openpilot.selfdrive.frogpilot.frogpilot_variables import get_frogpilot_toggles LOCK_FILE = os.getenv("UPDATER_LOCK_FILE", "/tmp/safe_staging_overlay.lock") STAGING_ROOT = os.getenv("UPDATER_STAGING_ROOT", "/data/safe_staging") @@ -327,7 +327,7 @@ class Updater: set_offroad_alert(alert, False) now = datetime.datetime.utcnow() - if FrogPilotVariables.toggles.offline_mode: + if get_frogpilot_toggles(True).offline_mode: last_update = now dt = now - last_update build_metadata = get_build_metadata()

~L(Y?U44XQmT7sXlbH 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 I$eD%wKhFYN#sB~S diff --git a/selfdrive/frogpilot/assets/holiday_themes/world_frog_day/signals/turn_signal_4.png b/selfdrive/frogpilot/assets/holiday_themes/world_frog_day/signals/turn_signal_4.png index c3c1d204e6837572096cc6a10fc11c554b060af3..024a0b03ea6c081d57eebdfe80b251aa7b883417 100644 GIT binary patch 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@ literal 87564 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 z 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 ZZkuWAsAZ)tSA!&gVP|v6y2_G}_&>gC{OkY# literal 0 HcmV?d00001 diff --git a/selfdrive/frogpilot/assets/holiday_themes/world_frog_day/signals/turn_signal_blindspot.png b/selfdrive/frogpilot/assets/holiday_themes/world_frog_day/signals/turn_signal_blindspot.png new file mode 100644 index 0000000000000000000000000000000000000000..b721266fb2f1b1cda06d582dbd0505b9dc9c4f0a GIT binary patch literal 38017 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 literal 0 HcmV?d00001 diff --git a/selfdrive/frogpilot/assets/holiday_themes/world_frog_day/steering_wheel/wheel.png b/selfdrive/frogpilot/assets/holiday_themes/world_frog_day/steering_wheel/wheel.png new file mode 100644 index 0000000000000000000000000000000000000000..712255984600c0fecc270564b31db3fb677003bd GIT binary patch literal 64941 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%0AwBmMr2X7Q?C7rx*Z3Teld}jJ+yFw;O;A| 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