From 70ec8a79a121471a004e7e4c23157d10157e136f Mon Sep 17 00:00:00 2001 From: Lisandro Pérez Meyer Date: Tue, 14 Nov 2023 17:20:58 -0300 Subject: Initial cleanup push. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Based on agldemo2024 on commit 2a5dc04d801134338150c3f6afc67eaa65599763 Disable device preview. Disable Lottie animation. The original commit was b3c493c340fcb4bb0a937692838fc830bec3e9ea but I am just keeping this change, because the json did not really needed to change. I think. Signed-off-by: Lisandro Pérez Meyer --- lib/core/constants/colors.dart | 21 + lib/core/constants/constants.dart | 11 + lib/core/constants/paths.dart | 914 +++++++++++++++++++++ lib/core/constants/val_client_helper.dart | 58 ++ lib/core/constants/vss_path.dart | 58 ++ lib/core/utils/helpers.dart | 17 + lib/core/utils/widgets/back_button.dart | 16 + lib/data/data_providers/app.dart | 25 + lib/data/data_providers/app_provider.dart | 63 ++ lib/data/data_providers/audio_notifier.dart | 25 + lib/data/data_providers/datetime_notifier.dart | 14 + lib/data/data_providers/hybrid_notifier.dart | 91 ++ lib/data/data_providers/signal_notifier.dart | 14 + lib/data/data_providers/units_notifier.dart | 13 + lib/data/data_providers/users_notifier.dart | 49 ++ lib/data/data_providers/vehicle_notifier.dart | 367 +++++++++ lib/data/data_providers/vss_provider.dart | 105 +++ lib/data/models/audio.dart | 84 ++ lib/data/models/connections_signals.dart | 92 +++ lib/data/models/date_time.dart | 59 ++ lib/data/models/hybrid.dart | 98 +++ lib/data/models/units.dart | 45 + lib/data/models/user.dart | 54 ++ lib/data/models/users.dart | 64 ++ lib/data/models/vehicle.dart | 233 ++++++ lib/data/theme/theme.dart | 43 + lib/export.dart | 101 +++ lib/main.dart | 15 + .../common_widget/custom_bottom_bar.dart | 211 +++++ lib/presentation/common_widget/custom_title.dart | 103 +++ lib/presentation/common_widget/custom_top_bar.dart | 106 +++ lib/presentation/common_widget/fan_bar.dart | 188 +++++ lib/presentation/common_widget/generic_button.dart | 91 ++ .../common_widget/settings_top_bar.dart | 37 + .../common_widget/volume_and_fan_control.dart | 36 + lib/presentation/common_widget/volume_bar.dart | 356 ++++++++ lib/presentation/custom_icons/custom_icons.dart | 76 ++ lib/presentation/router/routes/routes.dart | 56 ++ lib/presentation/routes/widget/page_widget.dart | 21 + lib/presentation/screens/apps/apps.dart | 30 + lib/presentation/screens/apps/apps_content.dart | 60 ++ .../screens/apps/widgets/app_button.dart | 61 ++ lib/presentation/screens/clock/clock.dart | 145 ++++ lib/presentation/screens/dashboard/dashboard.dart | 33 + .../screens/dashboard/widgets/car_status.dart | 251 ++++++ .../screens/dashboard/widgets/child_lock.dart | 96 +++ .../dashboard/widgets/circle_indicator.dart | 305 +++++++ .../screens/dashboard/widgets/custom_circle.dart | 107 +++ .../dashboard/widgets/dashboard_content.dart | 108 +++ .../screens/dashboard/widgets/hybrid/hybrid.dart | 142 ++++ .../screens/dashboard/widgets/hybrid_mode.dart | 30 + .../screens/dashboard/widgets/range.dart | 85 ++ .../screens/dashboard/widgets/temperature.dart | 143 ++++ lib/presentation/screens/home/home.dart | 71 ++ .../screens/home/widgets/custom_tile.dart | 50 ++ lib/presentation/screens/hvac/hvac.dart | 45 + lib/presentation/screens/hvac/hvac_content.dart | 249 ++++++ .../screens/hvac/widgets/climate_controls.dart | 80 ++ .../screens/hvac/widgets/fan_focus.dart | 116 +++ .../screens/hvac/widgets/fan_speed_controls.dart | 251 ++++++ .../screens/hvac/widgets/semi_circle_painter.dart | 109 +++ .../screens/hvac/widgets/temperature_control.dart | 255 ++++++ .../screens/media_player/fm_player.dart | 76 ++ .../screens/media_player/media_content.dart | 82 ++ .../screens/media_player/media_controls.dart | 413 ++++++++++ .../screens/media_player/media_player.dart | 99 +++ .../screens/media_player/my_media.dart | 0 .../screens/media_player/play_list_table.dart | 154 ++++ .../screens/media_player/player_navigation.dart | 80 ++ .../screens/media_player/segmented_buttons.dart | 82 ++ .../widgets/gradient_progress_indicator.dart | 88 ++ .../media_player/widgets/media_volume_bar.dart | 117 +++ lib/presentation/screens/settings/settings.dart | 26 + .../audio_settings/audio_settings_screen.dart | 30 + .../audio_settings/widget/audio_content.dart | 41 + .../audio_settings/widget/slider_widgets.dart | 603 ++++++++++++++ .../bluetooth/bluetooth_screen.dart | 12 + .../bluetooth/widgets/bluetooth.dart | 12 + .../bluetooth/widgets/bluetooth_content.dart | 219 +++++ .../date_time/date/date_screen.dart | 218 +++++ .../date_time/date_time_screen.dart | 54 ++ .../date_time/time/time_screen.dart | 426 ++++++++++ .../settings_screens/profiles/profiles_screen.dart | 20 + .../profiles/widgets/new_profile_screen.dart | 252 ++++++ .../profiles/widgets/profiles_content.dart | 125 +++ .../units/distance/distance_unit_screen.dart | 120 +++ .../units/temperature/temperature_unit_screen.dart | 120 +++ .../settings_screens/units/units_screen.dart | 159 ++++ .../version_info/version_info_screend.dart | 83 ++ .../settings_screens/wifi/widgets/wifi.dart | 12 + .../wifi/widgets/wifi_content.dart | 150 ++++ .../settings_screens/wifi/wifi_screen.dart | 17 + .../settings_screens/wired/wired_screen.dart | 76 ++ .../screens/settings/widgets/settings_content.dart | 95 +++ .../settings/widgets/settings_list_tile.dart | 234 ++++++ lib/presentation/screens/splash/splash.dart | 26 + .../screens/splash/widget/splash_content.dart | 142 ++++ .../screens/weather/hourly_forecast.dart | 152 ++++ lib/presentation/screens/weather/weather.dart | 91 ++ 99 files changed, 11558 insertions(+) create mode 100644 lib/core/constants/colors.dart create mode 100644 lib/core/constants/constants.dart create mode 100644 lib/core/constants/paths.dart create mode 100644 lib/core/constants/val_client_helper.dart create mode 100644 lib/core/constants/vss_path.dart create mode 100644 lib/core/utils/helpers.dart create mode 100644 lib/core/utils/widgets/back_button.dart create mode 100644 lib/data/data_providers/app.dart create mode 100644 lib/data/data_providers/app_provider.dart create mode 100644 lib/data/data_providers/audio_notifier.dart create mode 100644 lib/data/data_providers/datetime_notifier.dart create mode 100644 lib/data/data_providers/hybrid_notifier.dart create mode 100644 lib/data/data_providers/signal_notifier.dart create mode 100644 lib/data/data_providers/units_notifier.dart create mode 100644 lib/data/data_providers/users_notifier.dart create mode 100644 lib/data/data_providers/vehicle_notifier.dart create mode 100644 lib/data/data_providers/vss_provider.dart create mode 100644 lib/data/models/audio.dart create mode 100644 lib/data/models/connections_signals.dart create mode 100644 lib/data/models/date_time.dart create mode 100644 lib/data/models/hybrid.dart create mode 100644 lib/data/models/units.dart create mode 100644 lib/data/models/user.dart create mode 100644 lib/data/models/users.dart create mode 100644 lib/data/models/vehicle.dart create mode 100644 lib/data/theme/theme.dart create mode 100644 lib/export.dart create mode 100644 lib/main.dart create mode 100644 lib/presentation/common_widget/custom_bottom_bar.dart create mode 100644 lib/presentation/common_widget/custom_title.dart create mode 100644 lib/presentation/common_widget/custom_top_bar.dart create mode 100644 lib/presentation/common_widget/fan_bar.dart create mode 100644 lib/presentation/common_widget/generic_button.dart create mode 100644 lib/presentation/common_widget/settings_top_bar.dart create mode 100644 lib/presentation/common_widget/volume_and_fan_control.dart create mode 100644 lib/presentation/common_widget/volume_bar.dart create mode 100644 lib/presentation/custom_icons/custom_icons.dart create mode 100644 lib/presentation/router/routes/routes.dart create mode 100644 lib/presentation/routes/widget/page_widget.dart create mode 100644 lib/presentation/screens/apps/apps.dart create mode 100644 lib/presentation/screens/apps/apps_content.dart create mode 100644 lib/presentation/screens/apps/widgets/app_button.dart create mode 100644 lib/presentation/screens/clock/clock.dart create mode 100644 lib/presentation/screens/dashboard/dashboard.dart create mode 100644 lib/presentation/screens/dashboard/widgets/car_status.dart create mode 100644 lib/presentation/screens/dashboard/widgets/child_lock.dart create mode 100644 lib/presentation/screens/dashboard/widgets/circle_indicator.dart create mode 100644 lib/presentation/screens/dashboard/widgets/custom_circle.dart create mode 100644 lib/presentation/screens/dashboard/widgets/dashboard_content.dart create mode 100644 lib/presentation/screens/dashboard/widgets/hybrid/hybrid.dart create mode 100644 lib/presentation/screens/dashboard/widgets/hybrid_mode.dart create mode 100644 lib/presentation/screens/dashboard/widgets/range.dart create mode 100644 lib/presentation/screens/dashboard/widgets/temperature.dart create mode 100644 lib/presentation/screens/home/home.dart create mode 100644 lib/presentation/screens/home/widgets/custom_tile.dart create mode 100644 lib/presentation/screens/hvac/hvac.dart create mode 100644 lib/presentation/screens/hvac/hvac_content.dart create mode 100644 lib/presentation/screens/hvac/widgets/climate_controls.dart create mode 100644 lib/presentation/screens/hvac/widgets/fan_focus.dart create mode 100644 lib/presentation/screens/hvac/widgets/fan_speed_controls.dart create mode 100644 lib/presentation/screens/hvac/widgets/semi_circle_painter.dart create mode 100644 lib/presentation/screens/hvac/widgets/temperature_control.dart create mode 100644 lib/presentation/screens/media_player/fm_player.dart create mode 100644 lib/presentation/screens/media_player/media_content.dart create mode 100644 lib/presentation/screens/media_player/media_controls.dart create mode 100644 lib/presentation/screens/media_player/media_player.dart create mode 100644 lib/presentation/screens/media_player/my_media.dart create mode 100644 lib/presentation/screens/media_player/play_list_table.dart create mode 100644 lib/presentation/screens/media_player/player_navigation.dart create mode 100644 lib/presentation/screens/media_player/segmented_buttons.dart create mode 100644 lib/presentation/screens/media_player/widgets/gradient_progress_indicator.dart create mode 100644 lib/presentation/screens/media_player/widgets/media_volume_bar.dart create mode 100644 lib/presentation/screens/settings/settings.dart create mode 100644 lib/presentation/screens/settings/settings_screens/audio_settings/audio_settings_screen.dart create mode 100644 lib/presentation/screens/settings/settings_screens/audio_settings/widget/audio_content.dart create mode 100644 lib/presentation/screens/settings/settings_screens/audio_settings/widget/slider_widgets.dart create mode 100644 lib/presentation/screens/settings/settings_screens/bluetooth/bluetooth_screen.dart create mode 100644 lib/presentation/screens/settings/settings_screens/bluetooth/widgets/bluetooth.dart create mode 100644 lib/presentation/screens/settings/settings_screens/bluetooth/widgets/bluetooth_content.dart create mode 100644 lib/presentation/screens/settings/settings_screens/date_time/date/date_screen.dart create mode 100644 lib/presentation/screens/settings/settings_screens/date_time/date_time_screen.dart create mode 100644 lib/presentation/screens/settings/settings_screens/date_time/time/time_screen.dart create mode 100644 lib/presentation/screens/settings/settings_screens/profiles/profiles_screen.dart create mode 100644 lib/presentation/screens/settings/settings_screens/profiles/widgets/new_profile_screen.dart create mode 100644 lib/presentation/screens/settings/settings_screens/profiles/widgets/profiles_content.dart create mode 100644 lib/presentation/screens/settings/settings_screens/units/distance/distance_unit_screen.dart create mode 100644 lib/presentation/screens/settings/settings_screens/units/temperature/temperature_unit_screen.dart create mode 100644 lib/presentation/screens/settings/settings_screens/units/units_screen.dart create mode 100644 lib/presentation/screens/settings/settings_screens/version_info/version_info_screend.dart create mode 100644 lib/presentation/screens/settings/settings_screens/wifi/widgets/wifi.dart create mode 100644 lib/presentation/screens/settings/settings_screens/wifi/widgets/wifi_content.dart create mode 100644 lib/presentation/screens/settings/settings_screens/wifi/wifi_screen.dart create mode 100644 lib/presentation/screens/settings/settings_screens/wired/wired_screen.dart create mode 100644 lib/presentation/screens/settings/widgets/settings_content.dart create mode 100644 lib/presentation/screens/settings/widgets/settings_list_tile.dart create mode 100644 lib/presentation/screens/splash/splash.dart create mode 100644 lib/presentation/screens/splash/widget/splash_content.dart create mode 100644 lib/presentation/screens/weather/hourly_forecast.dart create mode 100644 lib/presentation/screens/weather/weather.dart (limited to 'lib') diff --git a/lib/core/constants/colors.dart b/lib/core/constants/colors.dart new file mode 100644 index 0000000..9835029 --- /dev/null +++ b/lib/core/constants/colors.dart @@ -0,0 +1,21 @@ +import 'dart:ui'; + +import '../../export.dart'; + +class AGLDemoColors { + AGLDemoColors._(); + + static const lightGreyColor = Color(0XFFECEDF1); + static const periwinkleColor = Color(0XFFC1D8FF); + static const jordyBlueColor = Color(0XFF82B1FF); + static const neonBlueColor = Color(0XFF2962FF); + static const resolutionBlueColor = Color(0XFF1A237E); + static const lightRedColor = Color(0XFFEF9A9A); + static const yellowColor = Color(0XFFFFDE03); + static const greenColor = Color(0XFF69F0AE); + static const buttonFillEnabledColor = Color(0XFF1C2D92); + static const blueGlowFillColor = Color(0XFFB8D3FF); + static const backgroundInsetColor = Color(0XFF0C1039); + static const gradientBackgroundDarkColor = Color(0XFF0D113F); + static const redProgressStrokeColor = Color(0XFFFF3D00); +} diff --git a/lib/core/constants/constants.dart b/lib/core/constants/constants.dart new file mode 100644 index 0000000..fe8d9f1 --- /dev/null +++ b/lib/core/constants/constants.dart @@ -0,0 +1,11 @@ +import '../../export.dart'; + +const splashWarning = + 'Please use the IVI system responsibly while driving. Keep your attention on the road, and use voice commands or hands-free controls when interacting with the system. Distracted driving can lead to accidents and serious injury. Follow all traffic laws and drive safely.'; +const aglVeriosn = 'AGL 16.0.2 (pike)'; +const kernelVeriosn = 'Kernel: 5.10.41.-yocto-standard'; +const maxFuelLevel = 55.0; +const maxSpeed = 240.0; +const maxRpm = 8000; +final GlobalKey homeScaffoldKey = GlobalKey(); + diff --git a/lib/core/constants/paths.dart b/lib/core/constants/paths.dart new file mode 100644 index 0000000..c3afb99 --- /dev/null +++ b/lib/core/constants/paths.dart @@ -0,0 +1,914 @@ + + +List signals = [ + 'Vehicle.ADAS.ABS.IsEnabled', + 'Vehicle.ADAS.ABS.IsEngaged', + 'Vehicle.ADAS.ABS.IsError', + 'Vehicle.ADAS.ActiveAutonomyLevel', + 'Vehicle.ADAS.CruiseControl.IsActive', + 'Vehicle.ADAS.CruiseControl.IsEnabled', + 'Vehicle.ADAS.CruiseControl.IsError', + 'Vehicle.ADAS.CruiseControl.SpeedSet', + 'Vehicle.ADAS.DMS.IsEnabled', + 'Vehicle.ADAS.DMS.IsError', + 'Vehicle.ADAS.DMS.IsWarning', + 'Vehicle.ADAS.EBA.IsEnabled', + 'Vehicle.ADAS.EBA.IsEngaged', + 'Vehicle.ADAS.EBA.IsError', + 'Vehicle.ADAS.EBD.IsEnabled', + 'Vehicle.ADAS.EBD.IsEngaged', + 'Vehicle.ADAS.EBD.IsError', + 'Vehicle.ADAS.ESC.IsEnabled', + 'Vehicle.ADAS.ESC.IsEngaged', + 'Vehicle.ADAS.ESC.IsError', + 'Vehicle.ADAS.ESC.IsStrongCrossWindDetected', + 'Vehicle.ADAS.ESC.RoadFriction.LowerBound', + 'Vehicle.ADAS.ESC.RoadFriction.MostProbable', + 'Vehicle.ADAS.ESC.RoadFriction.UpperBound', + 'Vehicle.ADAS.LaneDepartureDetection.IsEnabled', + 'Vehicle.ADAS.LaneDepartureDetection.IsError', + 'Vehicle.ADAS.LaneDepartureDetection.IsWarning', + 'Vehicle.ADAS.ObstacleDetection.IsEnabled', + 'Vehicle.ADAS.ObstacleDetection.IsError', + 'Vehicle.ADAS.ObstacleDetection.IsWarning', + 'Vehicle.ADAS.PowerOptimizeLevel', + 'Vehicle.ADAS.SupportedAutonomyLevel', + 'Vehicle.ADAS.TCS.IsEnabled', + 'Vehicle.ADAS.TCS.IsEngaged', + 'Vehicle.ADAS.TCS.IsError', + 'Vehicle.Acceleration.Lateral', + 'Vehicle.Acceleration.Longitudinal', + 'Vehicle.Acceleration.Vertical', + 'Vehicle.AngularVelocity.Pitch', + 'Vehicle.AngularVelocity.Roll', + 'Vehicle.AngularVelocity.Yaw', + 'Vehicle.AverageSpeed', + 'Vehicle.Body.BodyType', + 'Vehicle.Body.Hood.IsOpen', + 'Vehicle.Body.Horn.IsActive', + 'Vehicle.Body.Lights.Backup.IsDefect', + 'Vehicle.Body.Lights.Backup.IsOn', + 'Vehicle.Body.Lights.Beam.High.IsDefect', + 'Vehicle.Body.Lights.Beam.High.IsOn', + 'Vehicle.Body.Lights.Beam.Low.IsDefect', + 'Vehicle.Body.Lights.Beam.Low.IsOn', + 'Vehicle.Body.Lights.Brake.IsActive', + 'Vehicle.Body.Lights.Brake.IsDefect', + 'Vehicle.Body.Lights.DirectionIndicator.Left.IsDefect', + 'Vehicle.Body.Lights.DirectionIndicator.Left.IsSignaling', + 'Vehicle.Body.Lights.DirectionIndicator.Right.IsDefect', + 'Vehicle.Body.Lights.DirectionIndicator.Right.IsSignaling', + 'Vehicle.Body.Lights.Fog.Front.IsDefect', + 'Vehicle.Body.Lights.Fog.Front.IsOn', + 'Vehicle.Body.Lights.Fog.Rear.IsDefect', + 'Vehicle.Body.Lights.Fog.Rear.IsOn', + 'Vehicle.Body.Lights.Hazard.IsDefect', + 'Vehicle.Body.Lights.Hazard.IsSignaling', + 'Vehicle.Body.Lights.IsHighBeamSwitchOn', + 'Vehicle.Body.Lights.LicensePlate.IsDefect', + 'Vehicle.Body.Lights.LicensePlate.IsOn', + 'Vehicle.Body.Lights.LightSwitch', + 'Vehicle.Body.Lights.Parking.IsDefect', + 'Vehicle.Body.Lights.Parking.IsOn', + 'Vehicle.Body.Lights.Running.IsDefect', + 'Vehicle.Body.Lights.Running.IsOn', + 'Vehicle.Body.Mirrors.DriverSide.IsHeatingOn', + 'Vehicle.Body.Mirrors.DriverSide.Pan', + 'Vehicle.Body.Mirrors.DriverSide.Tilt', + 'Vehicle.Body.Mirrors.PassengerSide.IsHeatingOn', + 'Vehicle.Body.Mirrors.PassengerSide.Pan', + 'Vehicle.Body.Mirrors.PassengerSide.Tilt', + 'Vehicle.Body.PowerOptimizeLevel', + 'Vehicle.Body.Raindetection.Intensity', + 'Vehicle.Body.RearMainSpoilerPosition', + 'Vehicle.Body.RefuelPosition', + 'Vehicle.Body.Trunk.Front.IsLightOn', + 'Vehicle.Body.Trunk.Front.IsLocked', + 'Vehicle.Body.Trunk.Front.IsOpen', + 'Vehicle.Body.Trunk.Rear.IsLightOn', + 'Vehicle.Body.Trunk.Rear.IsLocked', + 'Vehicle.Body.Trunk.Rear.IsOpen', + 'Vehicle.Body.Windshield.Front.IsHeatingOn', + 'Vehicle.Body.Windshield.Front.WasherFluid.IsLevelLow', + 'Vehicle.Body.Windshield.Front.WasherFluid.Level', + 'Vehicle.Body.Windshield.Front.Wiping.Intensity', + 'Vehicle.Body.Windshield.Front.Wiping.IsWipersWorn', + 'Vehicle.Body.Windshield.Front.Wiping.Mode', + 'Vehicle.Body.Windshield.Front.Wiping.System.ActualPosition', + 'Vehicle.Body.Windshield.Front.Wiping.System.DriveCurrent', + 'Vehicle.Body.Windshield.Front.Wiping.System.Frequency', + 'Vehicle.Body.Windshield.Front.Wiping.System.IsBlocked', + 'Vehicle.Body.Windshield.Front.Wiping.System.IsEndingWipeCycle', + 'Vehicle.Body.Windshield.Front.Wiping.System.IsOverheated', + 'Vehicle.Body.Windshield.Front.Wiping.System.IsPositionReached', + 'Vehicle.Body.Windshield.Front.Wiping.System.IsWiperError', + 'Vehicle.Body.Windshield.Front.Wiping.System.IsWiping', + 'Vehicle.Body.Windshield.Front.Wiping.System.Mode', + 'Vehicle.Body.Windshield.Front.Wiping.System.TargetPosition', + 'Vehicle.Body.Windshield.Front.Wiping.WiperWear', + 'Vehicle.Body.Windshield.Rear.IsHeatingOn', + 'Vehicle.Body.Windshield.Rear.WasherFluid.IsLevelLow', + 'Vehicle.Body.Windshield.Rear.WasherFluid.Level', + 'Vehicle.Body.Windshield.Rear.Wiping.Intensity', + 'Vehicle.Body.Windshield.Rear.Wiping.IsWipersWorn', + 'Vehicle.Body.Windshield.Rear.Wiping.Mode', + 'Vehicle.Body.Windshield.Rear.Wiping.System.ActualPosition', + 'Vehicle.Body.Windshield.Rear.Wiping.System.DriveCurrent', + 'Vehicle.Body.Windshield.Rear.Wiping.System.Frequency', + 'Vehicle.Body.Windshield.Rear.Wiping.System.IsBlocked', + 'Vehicle.Body.Windshield.Rear.Wiping.System.IsEndingWipeCycle', + 'Vehicle.Body.Windshield.Rear.Wiping.System.IsOverheated', + 'Vehicle.Body.Windshield.Rear.Wiping.System.IsPositionReached', + 'Vehicle.Body.Windshield.Rear.Wiping.System.IsWiperError', + 'Vehicle.Body.Windshield.Rear.Wiping.System.IsWiping', + 'Vehicle.Body.Windshield.Rear.Wiping.System.Mode', + 'Vehicle.Body.Windshield.Rear.Wiping.System.TargetPosition', + 'Vehicle.Body.Windshield.Rear.Wiping.WiperWear', + 'Vehicle.Cabin.Convertible.Status', + 'Vehicle.Cabin.Door.Row1.DriverSide.IsChildLockActive', + 'Vehicle.Cabin.Door.Row1.DriverSide.IsLocked', + 'Vehicle.Cabin.Door.Row1.DriverSide.IsOpen', + 'Vehicle.Cabin.Door.Row1.DriverSide.Shade.Position', + 'Vehicle.Cabin.Door.Row1.DriverSide.Shade.Switch', + 'Vehicle.Cabin.Door.Row1.DriverSide.Window.IsOpen', + 'Vehicle.Cabin.Door.Row1.DriverSide.Window.Position', + 'Vehicle.Cabin.Door.Row1.DriverSide.Window.Switch', + 'Vehicle.Cabin.Door.Row1.PassengerSide.IsChildLockActive', + 'Vehicle.Cabin.Door.Row1.PassengerSide.IsLocked', + 'Vehicle.Cabin.Door.Row1.PassengerSide.IsOpen', + 'Vehicle.Cabin.Door.Row1.PassengerSide.Shade.Position', + 'Vehicle.Cabin.Door.Row1.PassengerSide.Shade.Switch', + 'Vehicle.Cabin.Door.Row1.PassengerSide.Window.IsOpen', + 'Vehicle.Cabin.Door.Row1.PassengerSide.Window.Position', + 'Vehicle.Cabin.Door.Row1.PassengerSide.Window.Switch', + 'Vehicle.Cabin.Door.Row2.DriverSide.IsChildLockActive', + 'Vehicle.Cabin.Door.Row2.DriverSide.IsLocked', + 'Vehicle.Cabin.Door.Row2.DriverSide.IsOpen', + 'Vehicle.Cabin.Door.Row2.DriverSide.Shade.Position', + 'Vehicle.Cabin.Door.Row2.DriverSide.Shade.Switch', + 'Vehicle.Cabin.Door.Row2.DriverSide.Window.IsOpen', + 'Vehicle.Cabin.Door.Row2.DriverSide.Window.Position', + 'Vehicle.Cabin.Door.Row2.DriverSide.Window.Switch', + 'Vehicle.Cabin.Door.Row2.PassengerSide.IsChildLockActive', + 'Vehicle.Cabin.Door.Row2.PassengerSide.IsLocked', + 'Vehicle.Cabin.Door.Row2.PassengerSide.IsOpen', + 'Vehicle.Cabin.Door.Row2.PassengerSide.Shade.Position', + 'Vehicle.Cabin.Door.Row2.PassengerSide.Shade.Switch', + 'Vehicle.Cabin.Door.Row2.PassengerSide.Window.IsOpen', + 'Vehicle.Cabin.Door.Row2.PassengerSide.Window.Position', + 'Vehicle.Cabin.Door.Row2.PassengerSide.Window.Switch', + 'Vehicle.Cabin.DoorCount', + 'Vehicle.Cabin.DriverPosition', + 'Vehicle.Cabin.HVAC.AmbientAirTemperature', + 'Vehicle.Cabin.HVAC.IsAirConditioningActive', + 'Vehicle.Cabin.HVAC.IsFrontDefrosterActive', + 'Vehicle.Cabin.HVAC.IsRearDefrosterActive', + 'Vehicle.Cabin.HVAC.IsRecirculationActive', + 'Vehicle.Cabin.HVAC.PowerOptimizeLevel', + 'Vehicle.Cabin.HVAC.Station.Row1.Driver.AirDistribution', + 'Vehicle.Cabin.HVAC.Station.Row1.Driver.FanSpeed', + 'Vehicle.Cabin.HVAC.Station.Row1.Driver.Temperature', + 'Vehicle.Cabin.HVAC.Station.Row1.Passenger.AirDistribution', + 'Vehicle.Cabin.HVAC.Station.Row1.Passenger.FanSpeed', + 'Vehicle.Cabin.HVAC.Station.Row1.Passenger.Temperature', + 'Vehicle.Cabin.HVAC.Station.Row2.Driver.AirDistribution', + 'Vehicle.Cabin.HVAC.Station.Row2.Driver.FanSpeed', + 'Vehicle.Cabin.HVAC.Station.Row2.Driver.Temperature', + 'Vehicle.Cabin.HVAC.Station.Row2.Passenger.AirDistribution', + 'Vehicle.Cabin.HVAC.Station.Row2.Passenger.FanSpeed', + 'Vehicle.Cabin.HVAC.Station.Row2.Passenger.Temperature', + 'Vehicle.Cabin.HVAC.Station.Row3.Driver.AirDistribution', + 'Vehicle.Cabin.HVAC.Station.Row3.Driver.FanSpeed', + 'Vehicle.Cabin.HVAC.Station.Row3.Driver.Temperature', + 'Vehicle.Cabin.HVAC.Station.Row3.Passenger.AirDistribution', + 'Vehicle.Cabin.HVAC.Station.Row3.Passenger.FanSpeed', + 'Vehicle.Cabin.HVAC.Station.Row3.Passenger.Temperature', + 'Vehicle.Cabin.HVAC.Station.Row4.Driver.AirDistribution', + 'Vehicle.Cabin.HVAC.Station.Row4.Driver.FanSpeed', + 'Vehicle.Cabin.HVAC.Station.Row4.Driver.Temperature', + 'Vehicle.Cabin.HVAC.Station.Row4.Passenger.AirDistribution', + 'Vehicle.Cabin.HVAC.Station.Row4.Passenger.FanSpeed', + 'Vehicle.Cabin.HVAC.Station.Row4.Passenger.Temperature', + 'Vehicle.Cabin.Infotainment.HMI.Brightness', + 'Vehicle.Cabin.Infotainment.HMI.CurrentLanguage', + 'Vehicle.Cabin.Infotainment.HMI.DateFormat', + 'Vehicle.Cabin.Infotainment.HMI.DayNightMode', + 'Vehicle.Cabin.Infotainment.HMI.DisplayOffDuration', + 'Vehicle.Cabin.Infotainment.HMI.DistanceUnit', + 'Vehicle.Cabin.Infotainment.HMI.EVEconomyUnits', + 'Vehicle.Cabin.Infotainment.HMI.FontSize', + 'Vehicle.Cabin.Infotainment.HMI.FuelEconomyUnits', + 'Vehicle.Cabin.Infotainment.HMI.FuelVolumeUnit', + 'Vehicle.Cabin.Infotainment.HMI.IsScreenAlwaysOn', + 'Vehicle.Cabin.Infotainment.HMI.LastActionTime', + 'Vehicle.Cabin.Infotainment.HMI.TemperatureUnit', + 'Vehicle.Cabin.Infotainment.HMI.TimeFormat', + 'Vehicle.Cabin.Infotainment.HMI.TirePressureUnit', + 'Vehicle.Cabin.Infotainment.Media.Action', + 'Vehicle.Cabin.Infotainment.Media.DeclinedURI', + 'Vehicle.Cabin.Infotainment.Media.Played.Album', + 'Vehicle.Cabin.Infotainment.Media.Played.Artist', + 'Vehicle.Cabin.Infotainment.Media.Played.PlaybackRate', + 'Vehicle.Cabin.Infotainment.Media.Played.Source', + 'Vehicle.Cabin.Infotainment.Media.Played.Track', + 'Vehicle.Cabin.Infotainment.Media.Played.URI', + 'Vehicle.Cabin.Infotainment.Media.SelectedURI', + 'Vehicle.Cabin.Infotainment.Media.Volume', + 'Vehicle.Cabin.Infotainment.Navigation.DestinationSet.Latitude', + 'Vehicle.Cabin.Infotainment.Navigation.DestinationSet.Longitude', + 'Vehicle.Cabin.Infotainment.Navigation.GuidanceVoice', + 'Vehicle.Cabin.Infotainment.Navigation.Mute', + 'Vehicle.Cabin.Infotainment.Navigation.Volume', + 'Vehicle.Cabin.Infotainment.PowerOptimizeLevel', + 'Vehicle.Cabin.Infotainment.SmartphoneProjection.Active', + 'Vehicle.Cabin.Infotainment.SmartphoneProjection.Source', + 'Vehicle.Cabin.Infotainment.SmartphoneProjection.SupportedMode', + 'Vehicle.Cabin.IsWindowChildLockEngaged', + 'Vehicle.Cabin.Light.AmbientLight.Row1.DriverSide.Color', + 'Vehicle.Cabin.Light.AmbientLight.Row1.DriverSide.Intensity', + 'Vehicle.Cabin.Light.AmbientLight.Row1.DriverSide.IsLightOn', + 'Vehicle.Cabin.Light.AmbientLight.Row1.PassengerSide.Color', + 'Vehicle.Cabin.Light.AmbientLight.Row1.PassengerSide.Intensity', + 'Vehicle.Cabin.Light.AmbientLight.Row1.PassengerSide.IsLightOn', + 'Vehicle.Cabin.Light.AmbientLight.Row2.DriverSide.Color', + 'Vehicle.Cabin.Light.AmbientLight.Row2.DriverSide.Intensity', + 'Vehicle.Cabin.Light.AmbientLight.Row2.DriverSide.IsLightOn', + 'Vehicle.Cabin.Light.AmbientLight.Row2.PassengerSide.Color', + 'Vehicle.Cabin.Light.AmbientLight.Row2.PassengerSide.Intensity', + 'Vehicle.Cabin.Light.AmbientLight.Row2.PassengerSide.IsLightOn', + 'Vehicle.Cabin.Light.InteractiveLightBar.Color', + 'Vehicle.Cabin.Light.InteractiveLightBar.Effect', + 'Vehicle.Cabin.Light.InteractiveLightBar.Intensity', + 'Vehicle.Cabin.Light.InteractiveLightBar.IsLightOn', + 'Vehicle.Cabin.Light.IsDomeOn', + 'Vehicle.Cabin.Light.IsGloveBoxOn', + 'Vehicle.Cabin.Light.PerceivedAmbientLight', + 'Vehicle.Cabin.Light.Spotlight.Row1.DriverSide.Color', + 'Vehicle.Cabin.Light.Spotlight.Row1.DriverSide.Intensity', + 'Vehicle.Cabin.Light.Spotlight.Row1.DriverSide.IsLightOn', + 'Vehicle.Cabin.Light.Spotlight.Row1.PassengerSide.Color', + 'Vehicle.Cabin.Light.Spotlight.Row1.PassengerSide.Intensity', + 'Vehicle.Cabin.Light.Spotlight.Row1.PassengerSide.IsLightOn', + 'Vehicle.Cabin.Light.Spotlight.Row2.DriverSide.Color', + 'Vehicle.Cabin.Light.Spotlight.Row2.DriverSide.Intensity', + 'Vehicle.Cabin.Light.Spotlight.Row2.DriverSide.IsLightOn', + 'Vehicle.Cabin.Light.Spotlight.Row2.PassengerSide.Color', + 'Vehicle.Cabin.Light.Spotlight.Row2.PassengerSide.Intensity', + 'Vehicle.Cabin.Light.Spotlight.Row2.PassengerSide.IsLightOn', + 'Vehicle.Cabin.Light.Spotlight.Row3.DriverSide.Color', + 'Vehicle.Cabin.Light.Spotlight.Row3.DriverSide.Intensity', + 'Vehicle.Cabin.Light.Spotlight.Row3.DriverSide.IsLightOn', + 'Vehicle.Cabin.Light.Spotlight.Row3.PassengerSide.Color', + 'Vehicle.Cabin.Light.Spotlight.Row3.PassengerSide.Intensity', + 'Vehicle.Cabin.Light.Spotlight.Row3.PassengerSide.IsLightOn', + 'Vehicle.Cabin.Light.Spotlight.Row4.DriverSide.Color', + 'Vehicle.Cabin.Light.Spotlight.Row4.DriverSide.Intensity', + 'Vehicle.Cabin.Light.Spotlight.Row4.DriverSide.IsLightOn', + 'Vehicle.Cabin.Light.Spotlight.Row4.PassengerSide.Color', + 'Vehicle.Cabin.Light.Spotlight.Row4.PassengerSide.Intensity', + 'Vehicle.Cabin.Light.Spotlight.Row4.PassengerSide.IsLightOn', + 'Vehicle.Cabin.PowerOptimizeLevel', + 'Vehicle.Cabin.RearShade.Position', + 'Vehicle.Cabin.RearShade.Switch', + 'Vehicle.Cabin.RearviewMirror.DimmingLevel', + 'Vehicle.Cabin.Seat.Row1.DriverSide.Airbag.IsDeployed', + 'Vehicle.Cabin.Seat.Row1.DriverSide.Backrest.Lumbar.Height', + 'Vehicle.Cabin.Seat.Row1.DriverSide.Backrest.Lumbar.Support', + 'Vehicle.Cabin.Seat.Row1.DriverSide.Backrest.Recline', + 'Vehicle.Cabin.Seat.Row1.DriverSide.Backrest.SideBolster.Support', + 'Vehicle.Cabin.Seat.Row1.DriverSide.Headrest.Angle', + 'Vehicle.Cabin.Seat.Row1.DriverSide.Headrest.Height', + 'Vehicle.Cabin.Seat.Row1.DriverSide.Heating', + 'Vehicle.Cabin.Seat.Row1.DriverSide.Height', + 'Vehicle.Cabin.Seat.Row1.DriverSide.IsBelted', + 'Vehicle.Cabin.Seat.Row1.DriverSide.IsOccupied', + 'Vehicle.Cabin.Seat.Row1.DriverSide.Massage', + 'Vehicle.Cabin.Seat.Row1.DriverSide.Occupant.Identifier.Issuer', + 'Vehicle.Cabin.Seat.Row1.DriverSide.Occupant.Identifier.Subject', + 'Vehicle.Cabin.Seat.Row1.DriverSide.Position', + 'Vehicle.Cabin.Seat.Row1.DriverSide.Seating.Length', + 'Vehicle.Cabin.Seat.Row1.DriverSide.Switch.Backrest.IsReclineBackwardEngaged', + 'Vehicle.Cabin.Seat.Row1.DriverSide.Switch.Backrest.IsReclineForwardEngaged', + 'Vehicle.Cabin.Seat.Row1.DriverSide.Switch.Backrest.Lumbar.IsDownEngaged', + 'Vehicle.Cabin.Seat.Row1.DriverSide.Switch.Backrest.Lumbar.IsLessSupportEngaged', + 'Vehicle.Cabin.Seat.Row1.DriverSide.Switch.Backrest.Lumbar.IsMoreSupportEngaged', + 'Vehicle.Cabin.Seat.Row1.DriverSide.Switch.Backrest.Lumbar.IsUpEngaged', + 'Vehicle.Cabin.Seat.Row1.DriverSide.Switch.Backrest.SideBolster.IsLessSupportEngaged', + 'Vehicle.Cabin.Seat.Row1.DriverSide.Switch.Backrest.SideBolster.IsMoreSupportEngaged', + 'Vehicle.Cabin.Seat.Row1.DriverSide.Switch.Headrest.IsBackwardEngaged', + 'Vehicle.Cabin.Seat.Row1.DriverSide.Switch.Headrest.IsDownEngaged', + 'Vehicle.Cabin.Seat.Row1.DriverSide.Switch.Headrest.IsForwardEngaged', + 'Vehicle.Cabin.Seat.Row1.DriverSide.Switch.Headrest.IsUpEngaged', + 'Vehicle.Cabin.Seat.Row1.DriverSide.Switch.IsBackwardEngaged', + 'Vehicle.Cabin.Seat.Row1.DriverSide.Switch.IsCoolerEngaged', + 'Vehicle.Cabin.Seat.Row1.DriverSide.Switch.IsDownEngaged', + 'Vehicle.Cabin.Seat.Row1.DriverSide.Switch.IsForwardEngaged', + 'Vehicle.Cabin.Seat.Row1.DriverSide.Switch.IsTiltBackwardEngaged', + 'Vehicle.Cabin.Seat.Row1.DriverSide.Switch.IsTiltForwardEngaged', + 'Vehicle.Cabin.Seat.Row1.DriverSide.Switch.IsUpEngaged', + 'Vehicle.Cabin.Seat.Row1.DriverSide.Switch.IsWarmerEngaged', + 'Vehicle.Cabin.Seat.Row1.DriverSide.Switch.Massage.IsDecreaseEngaged', + 'Vehicle.Cabin.Seat.Row1.DriverSide.Switch.Massage.IsIncreaseEngaged', + 'Vehicle.Cabin.Seat.Row1.DriverSide.Switch.Seating.IsBackwardEngaged', + 'Vehicle.Cabin.Seat.Row1.DriverSide.Switch.Seating.IsForwardEngaged', + 'Vehicle.Cabin.Seat.Row1.DriverSide.Tilt', + 'Vehicle.Cabin.Seat.Row1.Middle.Airbag.IsDeployed', + 'Vehicle.Cabin.Seat.Row1.Middle.Backrest.Lumbar.Height', + 'Vehicle.Cabin.Seat.Row1.Middle.Backrest.Lumbar.Support', + 'Vehicle.Cabin.Seat.Row1.Middle.Backrest.Recline', + 'Vehicle.Cabin.Seat.Row1.Middle.Backrest.SideBolster.Support', + 'Vehicle.Cabin.Seat.Row1.Middle.Headrest.Angle', + 'Vehicle.Cabin.Seat.Row1.Middle.Headrest.Height', + 'Vehicle.Cabin.Seat.Row1.Middle.Heating', + 'Vehicle.Cabin.Seat.Row1.Middle.Height', + 'Vehicle.Cabin.Seat.Row1.Middle.IsBelted', + 'Vehicle.Cabin.Seat.Row1.Middle.IsOccupied', + 'Vehicle.Cabin.Seat.Row1.Middle.Massage', + 'Vehicle.Cabin.Seat.Row1.Middle.Occupant.Identifier.Issuer', + 'Vehicle.Cabin.Seat.Row1.Middle.Occupant.Identifier.Subject', + 'Vehicle.Cabin.Seat.Row1.Middle.Position', + 'Vehicle.Cabin.Seat.Row1.Middle.Seating.Length', + 'Vehicle.Cabin.Seat.Row1.Middle.Switch.Backrest.IsReclineBackwardEngaged', + 'Vehicle.Cabin.Seat.Row1.Middle.Switch.Backrest.IsReclineForwardEngaged', + 'Vehicle.Cabin.Seat.Row1.Middle.Switch.Backrest.Lumbar.IsDownEngaged', + 'Vehicle.Cabin.Seat.Row1.Middle.Switch.Backrest.Lumbar.IsLessSupportEngaged', + 'Vehicle.Cabin.Seat.Row1.Middle.Switch.Backrest.Lumbar.IsMoreSupportEngaged', + 'Vehicle.Cabin.Seat.Row1.Middle.Switch.Backrest.Lumbar.IsUpEngaged', + 'Vehicle.Cabin.Seat.Row1.Middle.Switch.Backrest.SideBolster.IsLessSupportEngaged', + 'Vehicle.Cabin.Seat.Row1.Middle.Switch.Backrest.SideBolster.IsMoreSupportEngaged', + 'Vehicle.Cabin.Seat.Row1.Middle.Switch.Headrest.IsBackwardEngaged', + 'Vehicle.Cabin.Seat.Row1.Middle.Switch.Headrest.IsDownEngaged', + 'Vehicle.Cabin.Seat.Row1.Middle.Switch.Headrest.IsForwardEngaged', + 'Vehicle.Cabin.Seat.Row1.Middle.Switch.Headrest.IsUpEngaged', + 'Vehicle.Cabin.Seat.Row1.Middle.Switch.IsBackwardEngaged', + 'Vehicle.Cabin.Seat.Row1.Middle.Switch.IsCoolerEngaged', + 'Vehicle.Cabin.Seat.Row1.Middle.Switch.IsDownEngaged', + 'Vehicle.Cabin.Seat.Row1.Middle.Switch.IsForwardEngaged', + 'Vehicle.Cabin.Seat.Row1.Middle.Switch.IsTiltBackwardEngaged', + 'Vehicle.Cabin.Seat.Row1.Middle.Switch.IsTiltForwardEngaged', + 'Vehicle.Cabin.Seat.Row1.Middle.Switch.IsUpEngaged', + 'Vehicle.Cabin.Seat.Row1.Middle.Switch.IsWarmerEngaged', + 'Vehicle.Cabin.Seat.Row1.Middle.Switch.Massage.IsDecreaseEngaged', + 'Vehicle.Cabin.Seat.Row1.Middle.Switch.Massage.IsIncreaseEngaged', + 'Vehicle.Cabin.Seat.Row1.Middle.Switch.Seating.IsBackwardEngaged', + 'Vehicle.Cabin.Seat.Row1.Middle.Switch.Seating.IsForwardEngaged', + 'Vehicle.Cabin.Seat.Row1.Middle.Tilt', + 'Vehicle.Cabin.Seat.Row1.PassengerSide.Airbag.IsDeployed', + 'Vehicle.Cabin.Seat.Row1.PassengerSide.Backrest.Lumbar.Height', + 'Vehicle.Cabin.Seat.Row1.PassengerSide.Backrest.Lumbar.Support', + 'Vehicle.Cabin.Seat.Row1.PassengerSide.Backrest.Recline', + 'Vehicle.Cabin.Seat.Row1.PassengerSide.Backrest.SideBolster.Support', + 'Vehicle.Cabin.Seat.Row1.PassengerSide.Headrest.Angle', + 'Vehicle.Cabin.Seat.Row1.PassengerSide.Headrest.Height', + 'Vehicle.Cabin.Seat.Row1.PassengerSide.Heating', + 'Vehicle.Cabin.Seat.Row1.PassengerSide.Height', + 'Vehicle.Cabin.Seat.Row1.PassengerSide.IsBelted', + 'Vehicle.Cabin.Seat.Row1.PassengerSide.IsOccupied', + 'Vehicle.Cabin.Seat.Row1.PassengerSide.Massage', + 'Vehicle.Cabin.Seat.Row1.PassengerSide.Occupant.Identifier.Issuer', + 'Vehicle.Cabin.Seat.Row1.PassengerSide.Occupant.Identifier.Subject', + 'Vehicle.Cabin.Seat.Row1.PassengerSide.Position', + 'Vehicle.Cabin.Seat.Row1.PassengerSide.Seating.Length', + 'Vehicle.Cabin.Seat.Row1.PassengerSide.Switch.Backrest.IsReclineBackwardEngaged', + 'Vehicle.Cabin.Seat.Row1.PassengerSide.Switch.Backrest.IsReclineForwardEngaged', + 'Vehicle.Cabin.Seat.Row1.PassengerSide.Switch.Backrest.Lumbar.IsDownEngaged', + 'Vehicle.Cabin.Seat.Row1.PassengerSide.Switch.Backrest.Lumbar.IsLessSupportEngaged', + 'Vehicle.Cabin.Seat.Row1.PassengerSide.Switch.Backrest.Lumbar.IsMoreSupportEngaged', + 'Vehicle.Cabin.Seat.Row1.PassengerSide.Switch.Backrest.Lumbar.IsUpEngaged', + 'Vehicle.Cabin.Seat.Row1.PassengerSide.Switch.Backrest.SideBolster.', + 'Vehicle.Cabin.Seat.Row1.PassengerSide.Switch.Backrest.SideBolster.', + 'Vehicle.Cabin.Seat.Row1.PassengerSide.Switch.Headrest.IsBackwardEngaged', + 'Vehicle.Cabin.Seat.Row1.PassengerSide.Switch.Headrest.IsDownEngaged', + 'Vehicle.Cabin.Seat.Row1.PassengerSide.Switch.Headrest.IsForwardEngaged', + 'Vehicle.Cabin.Seat.Row1.PassengerSide.Switch.Headrest.IsUpEngaged', + 'Vehicle.Cabin.Seat.Row1.PassengerSide.Switch.IsBackwardEngaged', + 'Vehicle.Cabin.Seat.Row1.PassengerSide.Switch.IsCoolerEngaged', + 'Vehicle.Cabin.Seat.Row1.PassengerSide.Switch.IsDownEngaged', + 'Vehicle.Cabin.Seat.Row1.PassengerSide.Switch.IsForwardEngaged', + 'Vehicle.Cabin.Seat.Row1.PassengerSide.Switch.IsTiltBackwardEngaged', + 'Vehicle.Cabin.Seat.Row1.PassengerSide.Switch.IsTiltForwardEngaged', + 'Vehicle.Cabin.Seat.Row1.PassengerSide.Switch.IsUpEngaged', + 'Vehicle.Cabin.Seat.Row1.PassengerSide.Switch.IsWarmerEngaged', + 'Vehicle.Cabin.Seat.Row1.PassengerSide.Switch.Massage.IsDecreaseEngaged', + 'Vehicle.Cabin.Seat.Row1.PassengerSide.Switch.Massage.IsIncreaseEngaged', + 'Vehicle.Cabin.Seat.Row1.PassengerSide.Switch.Seating.IsBackwardEngaged', + 'Vehicle.Cabin.Seat.Row1.PassengerSide.Switch.Seating.IsForwardEngaged', + 'Vehicle.Cabin.Seat.Row1.PassengerSide.Tilt', + 'Vehicle.Cabin.Seat.Row2.DriverSide.Airbag.IsDeployed', + 'Vehicle.Cabin.Seat.Row2.DriverSide.Backrest.Lumbar.Height', + 'Vehicle.Cabin.Seat.Row2.DriverSide.Backrest.Lumbar.Support', + 'Vehicle.Cabin.Seat.Row2.DriverSide.Backrest.Recline', + 'Vehicle.Cabin.Seat.Row2.DriverSide.Backrest.SideBolster.Support', + 'Vehicle.Cabin.Seat.Row2.DriverSide.Headrest.Angle', + 'Vehicle.Cabin.Seat.Row2.DriverSide.Headrest.Height', + 'Vehicle.Cabin.Seat.Row2.DriverSide.Heating', + 'Vehicle.Cabin.Seat.Row2.DriverSide.Height', + 'Vehicle.Cabin.Seat.Row2.DriverSide.IsBelted', + 'Vehicle.Cabin.Seat.Row2.DriverSide.IsOccupied', + 'Vehicle.Cabin.Seat.Row2.DriverSide.Massage', + 'Vehicle.Cabin.Seat.Row2.DriverSide.Occupant.Identifier.Issuer', + 'Vehicle.Cabin.Seat.Row2.DriverSide.Occupant.Identifier.Subject', + 'Vehicle.Cabin.Seat.Row2.DriverSide.Position', + 'Vehicle.Cabin.Seat.Row2.DriverSide.Seating.Length', + 'Vehicle.Cabin.Seat.Row2.DriverSide.Switch.Backrest.IsReclineBackwardEngaged', + 'Vehicle.Cabin.Seat.Row2.DriverSide.Switch.Backrest.IsReclineForwardEngaged', + 'Vehicle.Cabin.Seat.Row2.DriverSide.Switch.Backrest.Lumbar.IsDownEngaged', + 'Vehicle.Cabin.Seat.Row2.DriverSide.Switch.Backrest.Lumbar.IsLessSupportEngaged', + 'Vehicle.Cabin.Seat.Row2.DriverSide.Switch.Backrest.Lumbar.IsMoreSupportEngaged', + 'Vehicle.Cabin.Seat.Row2.DriverSide.Switch.Backrest.Lumbar.IsUpEngaged', + 'Vehicle.Cabin.Seat.Row2.DriverSide.Switch.Backrest.SideBolster.IsLessSupportEngaged', + 'Vehicle.Cabin.Seat.Row2.DriverSide.Switch.Backrest.SideBolster.IsMoreSupportEngaged', + 'Vehicle.Cabin.Seat.Row2.DriverSide.Switch.Headrest.IsBackwardEngaged', + 'Vehicle.Cabin.Seat.Row2.DriverSide.Switch.Headrest.IsDownEngaged', + 'Vehicle.Cabin.Seat.Row2.DriverSide.Switch.Headrest.IsForwardEngaged', + 'Vehicle.Cabin.Seat.Row2.DriverSide.Switch.Headrest.IsUpEngaged', + 'Vehicle.Cabin.Seat.Row2.DriverSide.Switch.IsBackwardEngaged', + 'Vehicle.Cabin.Seat.Row2.DriverSide.Switch.IsCoolerEngaged', + 'Vehicle.Cabin.Seat.Row2.DriverSide.Switch.IsDownEngaged', + 'Vehicle.Cabin.Seat.Row2.DriverSide.Switch.IsForwardEngaged', + 'Vehicle.Cabin.Seat.Row2.DriverSide.Switch.IsTiltBackwardEngaged', + 'Vehicle.Cabin.Seat.Row2.DriverSide.Switch.IsTiltForwardEngaged', + 'Vehicle.Cabin.Seat.Row2.DriverSide.Switch.IsUpEngaged', + 'Vehicle.Cabin.Seat.Row2.DriverSide.Switch.IsWarmerEngaged', + 'Vehicle.Cabin.Seat.Row2.DriverSide.Switch.Massage.IsDecreaseEngaged', + 'Vehicle.Cabin.Seat.Row2.DriverSide.Switch.Massage.IsIncreaseEngaged', + 'Vehicle.Cabin.Seat.Row2.DriverSide.Switch.Seating.IsBackwardEngaged', + 'Vehicle.Cabin.Seat.Row2.DriverSide.Switch.Seating.IsForwardEngaged', + 'Vehicle.Cabin.Seat.Row2.DriverSide.Tilt', + 'Vehicle.Cabin.Seat.Row2.Middle.Airbag.IsDeployed', + 'Vehicle.Cabin.Seat.Row2.Middle.Backrest.Lumbar.Height', + 'Vehicle.Cabin.Seat.Row2.Middle.Backrest.Lumbar.Support', + 'Vehicle.Cabin.Seat.Row2.Middle.Backrest.Recline', + 'Vehicle.Cabin.Seat.Row2.Middle.Backrest.SideBolster.Support', + 'Vehicle.Cabin.Seat.Row2.Middle.Headrest.Angle', + 'Vehicle.Cabin.Seat.Row2.Middle.Headrest.Height', + 'Vehicle.Cabin.Seat.Row2.Middle.Heating', + 'Vehicle.Cabin.Seat.Row2.Middle.Height', + 'Vehicle.Cabin.Seat.Row2.Middle.IsBelted', + 'Vehicle.Cabin.Seat.Row2.Middle.IsOccupied', + 'Vehicle.Cabin.Seat.Row2.Middle.Massage', + 'Vehicle.Cabin.Seat.Row2.Middle.Occupant.Identifier.Issuer', + 'Vehicle.Cabin.Seat.Row2.Middle.Occupant.Identifier.Subject', + 'Vehicle.Cabin.Seat.Row2.Middle.Position', + 'Vehicle.Cabin.Seat.Row2.Middle.Seating.Length', + 'Vehicle.Cabin.Seat.Row2.Middle.Switch.Backrest.IsReclineBackwardEngaged', + 'Vehicle.Cabin.Seat.Row2.Middle.Switch.Backrest.IsReclineForwardEngaged', + 'Vehicle.Cabin.Seat.Row2.Middle.Switch.Backrest.Lumbar.IsDownEngaged', + 'Vehicle.Cabin.Seat.Row2.Middle.Switch.Backrest.Lumbar.IsLessSupportEngaged', + 'Vehicle.Cabin.Seat.Row2.Middle.Switch.Backrest.Lumbar.IsMoreSupportEngaged', + 'Vehicle.Cabin.Seat.Row2.Middle.Switch.Backrest.Lumbar.IsUpEngaged', + 'Vehicle.Cabin.Seat.Row2.Middle.Switch.Backrest.SideBolster.IsLessSupportEngaged', + 'Vehicle.Cabin.Seat.Row2.Middle.Switch.Backrest.SideBolster.IsMoreSupportEngaged', + 'Vehicle.Cabin.Seat.Row2.Middle.Switch.Headrest.IsBackwardEngaged', + 'Vehicle.Cabin.Seat.Row2.Middle.Switch.Headrest.IsDownEngaged', + 'Vehicle.Cabin.Seat.Row2.Middle.Switch.Headrest.IsForwardEngaged', + 'Vehicle.Cabin.Seat.Row2.Middle.Switch.Headrest.IsUpEngaged', + 'Vehicle.Cabin.Seat.Row2.Middle.Switch.IsBackwardEngaged', + 'Vehicle.Cabin.Seat.Row2.Middle.Switch.IsCoolerEngaged', + 'Vehicle.Cabin.Seat.Row2.Middle.Switch.IsDownEngaged', + 'Vehicle.Cabin.Seat.Row2.Middle.Switch.IsForwardEngaged', + 'Vehicle.Cabin.Seat.Row2.Middle.Switch.IsTiltBackwardEngaged', + 'Vehicle.Cabin.Seat.Row2.Middle.Switch.IsTiltForwardEngaged', + 'Vehicle.Cabin.Seat.Row2.Middle.Switch.IsUpEngaged', + 'Vehicle.Cabin.Seat.Row2.Middle.Switch.IsWarmerEngaged', + 'Vehicle.Cabin.Seat.Row2.Middle.Switch.Massage.IsDecreaseEngaged', + 'Vehicle.Cabin.Seat.Row2.Middle.Switch.Massage.IsIncreaseEngaged', + 'Vehicle.Cabin.Seat.Row2.Middle.Switch.Seating.IsBackwardEngaged', + 'Vehicle.Cabin.Seat.Row2.Middle.Switch.Seating.IsForwardEngaged', + 'Vehicle.Cabin.Seat.Row2.Middle.Tilt', + 'Vehicle.Cabin.Seat.Row2.PassengerSide.Airbag.IsDeployed', + 'Vehicle.Cabin.Seat.Row2.PassengerSide.Backrest.Lumbar.Height', + 'Vehicle.Cabin.Seat.Row2.PassengerSide.Backrest.Lumbar.Support', + 'Vehicle.Cabin.Seat.Row2.PassengerSide.Backrest.Recline', + 'Vehicle.Cabin.Seat.Row2.PassengerSide.Backrest.SideBolster.Support', + 'Vehicle.Cabin.Seat.Row2.PassengerSide.Headrest.Angle', + 'Vehicle.Cabin.Seat.Row2.PassengerSide.Headrest.Height', + 'Vehicle.Cabin.Seat.Row2.PassengerSide.Heating', + 'Vehicle.Cabin.Seat.Row2.PassengerSide.Height', + 'Vehicle.Cabin.Seat.Row2.PassengerSide.IsBelted', + 'Vehicle.Cabin.Seat.Row2.PassengerSide.IsOccupied', + 'Vehicle.Cabin.Seat.Row2.PassengerSide.Massage', + 'Vehicle.Cabin.Seat.Row2.PassengerSide.Occupant.Identifier.Issuer', + 'Vehicle.Cabin.Seat.Row2.PassengerSide.Occupant.Identifier.Subject', + 'Vehicle.Cabin.Seat.Row2.PassengerSide.Position', + 'Vehicle.Cabin.Seat.Row2.PassengerSide.Seating.Length', + 'Vehicle.Cabin.Seat.Row2.PassengerSide.Switch.Backrest.IsReclineBackwardEngaged', + 'Vehicle.Cabin.Seat.Row2.PassengerSide.Switch.Backrest.IsReclineForwardEngaged', + 'Vehicle.Cabin.Seat.Row2.PassengerSide.Switch.Backrest.Lumbar.IsDownEngaged', + 'Vehicle.Cabin.Seat.Row2.PassengerSide.Switch.Backrest.Lumbar.IsLessSupportEngaged', + 'Vehicle.Cabin.Seat.Row2.PassengerSide.Switch.Backrest.Lumbar.IsMoreSupportEngaged', + 'Vehicle.Cabin.Seat.Row2.PassengerSide.Switch.Backrest.Lumbar.IsUpEngaged', + 'Vehicle.Cabin.Seat.Row2.PassengerSide.Switch.Backrest.SideBolster.', + 'Vehicle.Cabin.Seat.Row2.PassengerSide.Switch.Backrest.SideBolster.', + 'Vehicle.Cabin.Seat.Row2.PassengerSide.Switch.Headrest.IsBackwardEngaged', + 'Vehicle.Cabin.Seat.Row2.PassengerSide.Switch.Headrest.IsDownEngaged', + 'Vehicle.Cabin.Seat.Row2.PassengerSide.Switch.Headrest.IsForwardEngaged', + 'Vehicle.Cabin.Seat.Row2.PassengerSide.Switch.Headrest.IsUpEngaged', + 'Vehicle.Cabin.Seat.Row2.PassengerSide.Switch.IsBackwardEngaged', + 'Vehicle.Cabin.Seat.Row2.PassengerSide.Switch.IsCoolerEngaged', + 'Vehicle.Cabin.Seat.Row2.PassengerSide.Switch.IsDownEngaged', + 'Vehicle.Cabin.Seat.Row2.PassengerSide.Switch.IsForwardEngaged', + 'Vehicle.Cabin.Seat.Row2.PassengerSide.Switch.IsTiltBackwardEngaged', + 'Vehicle.Cabin.Seat.Row2.PassengerSide.Switch.IsTiltForwardEngaged', + 'Vehicle.Cabin.Seat.Row2.PassengerSide.Switch.IsUpEngaged', + 'Vehicle.Cabin.Seat.Row2.PassengerSide.Switch.IsWarmerEngaged', + 'Vehicle.Cabin.Seat.Row2.PassengerSide.Switch.Massage.IsDecreaseEngaged', + 'Vehicle.Cabin.Seat.Row2.PassengerSide.Switch.Massage.IsIncreaseEngaged', + 'Vehicle.Cabin.Seat.Row2.PassengerSide.Switch.Seating.IsBackwardEngaged', + 'Vehicle.Cabin.Seat.Row2.PassengerSide.Switch.Seating.IsForwardEngaged', + 'Vehicle.Cabin.Seat.Row2.PassengerSide.Tilt', + 'Vehicle.Cabin.SeatPosCount', + 'Vehicle.Cabin.SeatRowCount', + 'Vehicle.Cabin.Sunroof.Position', + 'Vehicle.Cabin.Sunroof.Shade.Position', + 'Vehicle.Cabin.Sunroof.Shade.Switch', + 'Vehicle.Cabin.Sunroof.Switch', + 'Vehicle.CargoVolume', + 'Vehicle.Chassis.Accelerator.PedalPosition', + 'Vehicle.Chassis.Axle.Row1.AxleWidth', + 'Vehicle.Chassis.Axle.Row1.SteeringAngle', + 'Vehicle.Chassis.Axle.Row1.TireAspectRatio', + 'Vehicle.Chassis.Axle.Row1.TireDiameter', + 'Vehicle.Chassis.Axle.Row1.TireWidth', + 'Vehicle.Chassis.Axle.Row1.TrackWidth', + 'Vehicle.Chassis.Axle.Row1.TreadWidth', + 'Vehicle.Chassis.Axle.Row1.Wheel.Left.Brake.FluidLevel', + 'Vehicle.Chassis.Axle.Row1.Wheel.Left.Brake.IsBrakesWorn', + 'Vehicle.Chassis.Axle.Row1.Wheel.Left.Brake.IsFluidLevelLow', + 'Vehicle.Chassis.Axle.Row1.Wheel.Left.Brake.PadWear', + 'Vehicle.Chassis.Axle.Row1.Wheel.Left.Speed', + 'Vehicle.Chassis.Axle.Row1.Wheel.Left.Tire.IsPressureLow', + 'Vehicle.Chassis.Axle.Row1.Wheel.Left.Tire.Pressure', + 'Vehicle.Chassis.Axle.Row1.Wheel.Left.Tire.Temperature', + 'Vehicle.Chassis.Axle.Row1.Wheel.Right.Brake.FluidLevel', + 'Vehicle.Chassis.Axle.Row1.Wheel.Right.Brake.IsBrakesWorn', + 'Vehicle.Chassis.Axle.Row1.Wheel.Right.Brake.IsFluidLevelLow', + 'Vehicle.Chassis.Axle.Row1.Wheel.Right.Brake.PadWear', + 'Vehicle.Chassis.Axle.Row1.Wheel.Right.Speed', + 'Vehicle.Chassis.Axle.Row1.Wheel.Right.Tire.IsPressureLow', + 'Vehicle.Chassis.Axle.Row1.Wheel.Right.Tire.Pressure', + 'Vehicle.Chassis.Axle.Row1.Wheel.Right.Tire.Temperature', + 'Vehicle.Chassis.Axle.Row1.WheelCount', + 'Vehicle.Chassis.Axle.Row1.WheelDiameter', + 'Vehicle.Chassis.Axle.Row1.WheelWidth', + 'Vehicle.Chassis.Axle.Row2.AxleWidth', + 'Vehicle.Chassis.Axle.Row2.SteeringAngle', + 'Vehicle.Chassis.Axle.Row2.TireAspectRatio', + 'Vehicle.Chassis.Axle.Row2.TireDiameter', + 'Vehicle.Chassis.Axle.Row2.TireWidth', + 'Vehicle.Chassis.Axle.Row2.TrackWidth', + 'Vehicle.Chassis.Axle.Row2.TreadWidth', + 'Vehicle.Chassis.Axle.Row2.Wheel.Left.Brake.FluidLevel', + 'Vehicle.Chassis.Axle.Row2.Wheel.Left.Brake.IsBrakesWorn', + 'Vehicle.Chassis.Axle.Row2.Wheel.Left.Brake.IsFluidLevelLow', + 'Vehicle.Chassis.Axle.Row2.Wheel.Left.Brake.PadWear', + 'Vehicle.Chassis.Axle.Row2.Wheel.Left.Speed', + 'Vehicle.Chassis.Axle.Row2.Wheel.Left.Tire.IsPressureLow', + 'Vehicle.Chassis.Axle.Row2.Wheel.Left.Tire.Pressure', + 'Vehicle.Chassis.Axle.Row2.Wheel.Left.Tire.Temperature', + 'Vehicle.Chassis.Axle.Row2.Wheel.Right.Brake.FluidLevel', + 'Vehicle.Chassis.Axle.Row2.Wheel.Right.Brake.IsBrakesWorn', + 'Vehicle.Chassis.Axle.Row2.Wheel.Right.Brake.IsFluidLevelLow', + 'Vehicle.Chassis.Axle.Row2.Wheel.Right.Brake.PadWear', + 'Vehicle.Chassis.Axle.Row2.Wheel.Right.Speed', + 'Vehicle.Chassis.Axle.Row2.Wheel.Right.Tire.IsPressureLow', + 'Vehicle.Chassis.Axle.Row2.Wheel.Right.Tire.Pressure', + 'Vehicle.Chassis.Axle.Row2.Wheel.Right.Tire.Temperature', + 'Vehicle.Chassis.Axle.Row2.WheelCount', + 'Vehicle.Chassis.Axle.Row2.WheelDiameter', + 'Vehicle.Chassis.Axle.Row2.WheelWidth', + 'Vehicle.Chassis.AxleCount', + 'Vehicle.Chassis.Brake.IsDriverEmergencyBrakingDetected', + 'Vehicle.Chassis.Brake.PedalPosition', + 'Vehicle.Chassis.ParkingBrake.IsAutoApplyEnabled', + 'Vehicle.Chassis.ParkingBrake.IsEngaged', + 'Vehicle.Chassis.SteeringWheel.Angle', + 'Vehicle.Chassis.SteeringWheel.Extension', + 'Vehicle.Chassis.SteeringWheel.Tilt', + 'Vehicle.Chassis.Wheelbase', + 'Vehicle.Connectivity.IsConnectivityAvailable', + 'Vehicle.CurbWeight', + 'Vehicle.CurrentLocation.Altitude', + 'Vehicle.CurrentLocation.GNSSReceiver.FixType', + 'Vehicle.CurrentLocation.GNSSReceiver.MountingPosition.X', + 'Vehicle.CurrentLocation.GNSSReceiver.MountingPosition.Y', + 'Vehicle.CurrentLocation.GNSSReceiver.MountingPosition.Z', + 'Vehicle.CurrentLocation.Heading', + 'Vehicle.CurrentLocation.HorizontalAccuracy', + 'Vehicle.CurrentLocation.Latitude', + 'Vehicle.CurrentLocation.Longitude', + 'Vehicle.CurrentLocation.Timestamp', + 'Vehicle.CurrentLocation.VerticalAccuracy', + 'Vehicle.CurrentOverallWeight', + 'Vehicle.Driver.AttentiveProbability', + 'Vehicle.Driver.DistractionLevel', + 'Vehicle.Driver.FatigueLevel', + 'Vehicle.Driver.HeartRate', + 'Vehicle.Driver.Identifier.Issuer', + 'Vehicle.Driver.Identifier.Subject', + 'Vehicle.Driver.IsEyesOnRoad', + 'Vehicle.Driver.IsHandsOnWheel', + 'Vehicle.EmissionsCO2', + 'Vehicle.Exterior.AirTemperature', + 'Vehicle.Exterior.Humidity', + 'Vehicle.Exterior.LightIntensity', + 'Vehicle.GrossWeight', + 'Vehicle.Height', + 'Vehicle.IsBrokenDown', + 'Vehicle.IsMoving', + 'Vehicle.Length', + 'Vehicle.LowVoltageBattery.CurrentCurrent', + 'Vehicle.LowVoltageBattery.CurrentVoltage', + 'Vehicle.LowVoltageBattery.NominalCapacity', + 'Vehicle.LowVoltageBattery.NominalVoltage', + 'Vehicle.LowVoltageSystemState', + 'Vehicle.MaxTowBallWeight', + 'Vehicle.MaxTowWeight', + 'Vehicle.OBD.AbsoluteLoad', + 'Vehicle.OBD.AcceleratorPositionD', + 'Vehicle.OBD.AcceleratorPositionE', + 'Vehicle.OBD.AcceleratorPositionF', + 'Vehicle.OBD.AirStatus', + 'Vehicle.OBD.AmbientAirTemperature', + 'Vehicle.OBD.BarometricPressure', + 'Vehicle.OBD.Catalyst.Bank1.Temperature1', + 'Vehicle.OBD.Catalyst.Bank1.Temperature2', + 'Vehicle.OBD.Catalyst.Bank2.Temperature1', + 'Vehicle.OBD.Catalyst.Bank2.Temperature2', + 'Vehicle.OBD.CommandedEGR', + 'Vehicle.OBD.CommandedEVAP', + 'Vehicle.OBD.CommandedEquivalenceRatio', + 'Vehicle.OBD.ControlModuleVoltage', + 'Vehicle.OBD.CoolantTemperature', + 'Vehicle.OBD.DTCList', + 'Vehicle.OBD.DistanceSinceDTCClear', + 'Vehicle.OBD.DistanceWithMIL', + 'Vehicle.OBD.DriveCycleStatus.DTCCount', + 'Vehicle.OBD.DriveCycleStatus.IgnitionType', + 'Vehicle.OBD.DriveCycleStatus.IsMILOn', + 'Vehicle.OBD.EGRError', + 'Vehicle.OBD.EVAPVaporPressure', + 'Vehicle.OBD.EVAPVaporPressureAbsolute', + 'Vehicle.OBD.EVAPVaporPressureAlternate', + 'Vehicle.OBD.EngineLoad', + 'Vehicle.OBD.EngineSpeed', + 'Vehicle.OBD.EthanolPercent', + 'Vehicle.OBD.FreezeDTC', + 'Vehicle.OBD.FuelInjectionTiming', + 'Vehicle.OBD.FuelLevel', + 'Vehicle.OBD.FuelPressure', + 'Vehicle.OBD.FuelRailPressureAbsolute', + 'Vehicle.OBD.FuelRailPressureDirect', + 'Vehicle.OBD.FuelRailPressureVac', + 'Vehicle.OBD.FuelRate', + 'Vehicle.OBD.FuelStatus', + 'Vehicle.OBD.FuelType', + 'Vehicle.OBD.HybridBatteryRemaining', + 'Vehicle.OBD.IntakeTemp', + 'Vehicle.OBD.IsPTOActive', + 'Vehicle.OBD.LongTermFuelTrim1', + 'Vehicle.OBD.LongTermFuelTrim2', + 'Vehicle.OBD.LongTermO2Trim1', + 'Vehicle.OBD.LongTermO2Trim2', + 'Vehicle.OBD.LongTermO2Trim3', + 'Vehicle.OBD.LongTermO2Trim4', + 'Vehicle.OBD.MAF', + 'Vehicle.OBD.MAP', + 'Vehicle.OBD.MaxMAF', + 'Vehicle.OBD.O2.Sensor1.ShortTermFuelTrim', + 'Vehicle.OBD.O2.Sensor1.Voltage', + 'Vehicle.OBD.O2.Sensor2.ShortTermFuelTrim', + 'Vehicle.OBD.O2.Sensor2.Voltage', + 'Vehicle.OBD.O2.Sensor3.ShortTermFuelTrim', + 'Vehicle.OBD.O2.Sensor3.Voltage', + 'Vehicle.OBD.O2.Sensor4.ShortTermFuelTrim', + 'Vehicle.OBD.O2.Sensor4.Voltage', + 'Vehicle.OBD.O2.Sensor5.ShortTermFuelTrim', + 'Vehicle.OBD.O2.Sensor5.Voltage', + 'Vehicle.OBD.O2.Sensor6.ShortTermFuelTrim', + 'Vehicle.OBD.O2.Sensor6.Voltage', + 'Vehicle.OBD.O2.Sensor7.ShortTermFuelTrim', + 'Vehicle.OBD.O2.Sensor7.Voltage', + 'Vehicle.OBD.O2.Sensor8.ShortTermFuelTrim', + 'Vehicle.OBD.O2.Sensor8.Voltage', + 'Vehicle.OBD.O2WR.Sensor1.Current', + 'Vehicle.OBD.O2WR.Sensor1.Lambda', + 'Vehicle.OBD.O2WR.Sensor1.Voltage', + 'Vehicle.OBD.O2WR.Sensor2.Current', + 'Vehicle.OBD.O2WR.Sensor2.Lambda', + 'Vehicle.OBD.O2WR.Sensor2.Voltage', + 'Vehicle.OBD.O2WR.Sensor3.Current', + 'Vehicle.OBD.O2WR.Sensor3.Lambda', + 'Vehicle.OBD.O2WR.Sensor3.Voltage', + 'Vehicle.OBD.O2WR.Sensor4.Current', + 'Vehicle.OBD.O2WR.Sensor4.Lambda', + 'Vehicle.OBD.O2WR.Sensor4.Voltage', + 'Vehicle.OBD.O2WR.Sensor5.Current', + 'Vehicle.OBD.O2WR.Sensor5.Lambda', + 'Vehicle.OBD.O2WR.Sensor5.Voltage', + 'Vehicle.OBD.O2WR.Sensor6.Current', + 'Vehicle.OBD.O2WR.Sensor6.Lambda', + 'Vehicle.OBD.O2WR.Sensor6.Voltage', + 'Vehicle.OBD.O2WR.Sensor7.Current', + 'Vehicle.OBD.O2WR.Sensor7.Lambda', + 'Vehicle.OBD.O2WR.Sensor7.Voltage', + 'Vehicle.OBD.O2WR.Sensor8.Current', + 'Vehicle.OBD.O2WR.Sensor8.Lambda', + 'Vehicle.OBD.O2WR.Sensor8.Voltage', + 'Vehicle.OBD.OBDStandards', + 'Vehicle.OBD.OilTemperature', + 'Vehicle.OBD.OxygenSensorsIn2Banks', + 'Vehicle.OBD.OxygenSensorsIn4Banks', + 'Vehicle.OBD.PidsA', + 'Vehicle.OBD.PidsB', + 'Vehicle.OBD.PidsC', + 'Vehicle.OBD.RelativeAcceleratorPosition', + 'Vehicle.OBD.RelativeThrottlePosition', + 'Vehicle.OBD.RunTime', + 'Vehicle.OBD.RunTimeMIL', + 'Vehicle.OBD.ShortTermFuelTrim1', + 'Vehicle.OBD.ShortTermFuelTrim2', + 'Vehicle.OBD.ShortTermO2Trim1', + 'Vehicle.OBD.ShortTermO2Trim2', + 'Vehicle.OBD.ShortTermO2Trim3', + 'Vehicle.OBD.ShortTermO2Trim4', + 'Vehicle.OBD.Speed', + 'Vehicle.OBD.Status.DTCCount', + 'Vehicle.OBD.Status.IgnitionType', + 'Vehicle.OBD.Status.IsMILOn', + 'Vehicle.OBD.ThrottleActuator', + 'Vehicle.OBD.ThrottlePosition', + 'Vehicle.OBD.ThrottlePositionB', + 'Vehicle.OBD.ThrottlePositionC', + 'Vehicle.OBD.TimeSinceDTCCleared', + 'Vehicle.OBD.TimingAdvance', + 'Vehicle.OBD.WarmupsSinceDTCClear', + 'Vehicle.PowerOptimizeLevel', + 'Vehicle.Powertrain.AccumulatedBrakingEnergy', + 'Vehicle.Powertrain.CombustionEngine.AspirationType', + 'Vehicle.Powertrain.CombustionEngine.Bore', + 'Vehicle.Powertrain.CombustionEngine.CompressionRatio', + 'Vehicle.Powertrain.CombustionEngine.Configuration', + 'Vehicle.Powertrain.CombustionEngine.DieselExhaustFluid.Capacity', + 'Vehicle.Powertrain.CombustionEngine.DieselExhaustFluid.IsLevelLow', + 'Vehicle.Powertrain.CombustionEngine.DieselExhaustFluid.Level', + 'Vehicle.Powertrain.CombustionEngine.DieselExhaustFluid.Range', + 'Vehicle.Powertrain.CombustionEngine.DieselParticulateFilter.DeltaPressure', + 'Vehicle.Powertrain.CombustionEngine.DieselParticulateFilter.InletTemperature', + 'Vehicle.Powertrain.CombustionEngine.DieselParticulateFilter.OutletTemperature', + 'Vehicle.Powertrain.CombustionEngine.Displacement', + 'Vehicle.Powertrain.CombustionEngine.ECT', + 'Vehicle.Powertrain.CombustionEngine.EOP', + 'Vehicle.Powertrain.CombustionEngine.EOT', + 'Vehicle.Powertrain.CombustionEngine.EngineCode', + 'Vehicle.Powertrain.CombustionEngine.EngineCoolantCapacity', + 'Vehicle.Powertrain.CombustionEngine.EngineHours', + 'Vehicle.Powertrain.CombustionEngine.EngineOilCapacity', + 'Vehicle.Powertrain.CombustionEngine.EngineOilLevel', + 'Vehicle.Powertrain.CombustionEngine.IdleHours', + 'Vehicle.Powertrain.CombustionEngine.IsRunning', + 'Vehicle.Powertrain.CombustionEngine.MAF', + 'Vehicle.Powertrain.CombustionEngine.MAP', + 'Vehicle.Powertrain.CombustionEngine.MaxPower', + 'Vehicle.Powertrain.CombustionEngine.MaxTorque', + 'Vehicle.Powertrain.CombustionEngine.NumberOfCylinders', + 'Vehicle.Powertrain.CombustionEngine.NumberOfValvesPerCylinder', + 'Vehicle.Powertrain.CombustionEngine.OilLifeRemaining', + 'Vehicle.Powertrain.CombustionEngine.Power', + 'Vehicle.Powertrain.CombustionEngine.Speed', + 'Vehicle.Powertrain.CombustionEngine.StrokeLength', + 'Vehicle.Powertrain.CombustionEngine.TPS', + 'Vehicle.Powertrain.CombustionEngine.Torque', + 'Vehicle.Powertrain.ElectricMotor.CoolantTemperature', + 'Vehicle.Powertrain.ElectricMotor.EngineCode', + 'Vehicle.Powertrain.ElectricMotor.MaxPower', + 'Vehicle.Powertrain.ElectricMotor.MaxRegenPower', + 'Vehicle.Powertrain.ElectricMotor.MaxRegenTorque', + 'Vehicle.Powertrain.ElectricMotor.MaxTorque', + 'Vehicle.Powertrain.ElectricMotor.Power', + 'Vehicle.Powertrain.ElectricMotor.Speed', + 'Vehicle.Powertrain.ElectricMotor.Temperature', + 'Vehicle.Powertrain.ElectricMotor.Torque', + 'Vehicle.Powertrain.FuelSystem.AbsoluteLevel', + 'Vehicle.Powertrain.FuelSystem.AverageConsumption', + 'Vehicle.Powertrain.FuelSystem.ConsumptionSinceStart', + 'Vehicle.Powertrain.FuelSystem.HybridType', + 'Vehicle.Powertrain.FuelSystem.InstantConsumption', + 'Vehicle.Powertrain.FuelSystem.IsEngineStopStartEnabled', + 'Vehicle.Powertrain.FuelSystem.IsFuelLevelLow', + 'Vehicle.Powertrain.FuelSystem.Range', + 'Vehicle.Powertrain.FuelSystem.RelativeLevel', + 'Vehicle.Powertrain.FuelSystem.SupportedFuel', + 'Vehicle.Powertrain.FuelSystem.SupportedFuelTypes', + 'Vehicle.Powertrain.FuelSystem.TankCapacity', + 'Vehicle.Powertrain.PowerOptimizeLevel', + 'Vehicle.Powertrain.Range', + 'Vehicle.Powertrain.TractionBattery.AccumulatedChargedEnergy', + 'Vehicle.Powertrain.TractionBattery.AccumulatedChargedThroughput', + 'Vehicle.Powertrain.TractionBattery.AccumulatedConsumedEnergy', + 'Vehicle.Powertrain.TractionBattery.AccumulatedConsumedThroughput', + 'Vehicle.Powertrain.TractionBattery.CellVoltage.Max', + 'Vehicle.Powertrain.TractionBattery.CellVoltage.Min', + 'Vehicle.Powertrain.TractionBattery.Charging.ChargeCurrent.DC', + 'Vehicle.Powertrain.TractionBattery.Charging.ChargeCurrent.Phase1', + 'Vehicle.Powertrain.TractionBattery.Charging.ChargeCurrent.Phase2', + 'Vehicle.Powertrain.TractionBattery.Charging.ChargeCurrent.Phase3', + 'Vehicle.Powertrain.TractionBattery.Charging.ChargeLimit', + 'Vehicle.Powertrain.TractionBattery.Charging.ChargePlugType', + 'Vehicle.Powertrain.TractionBattery.Charging.ChargePortFlap', + 'Vehicle.Powertrain.TractionBattery.Charging.ChargeRate', + 'Vehicle.Powertrain.TractionBattery.Charging.ChargeVoltage.DC', + 'Vehicle.Powertrain.TractionBattery.Charging.ChargeVoltage.Phase1', + 'Vehicle.Powertrain.TractionBattery.Charging.ChargeVoltage.Phase2', + 'Vehicle.Powertrain.TractionBattery.Charging.ChargeVoltage.Phase3', + 'Vehicle.Powertrain.TractionBattery.Charging.IsCharging', + 'Vehicle.Powertrain.TractionBattery.Charging.IsChargingCableConnected', + 'Vehicle.Powertrain.TractionBattery.Charging.IsChargingCableLocked', + 'Vehicle.Powertrain.TractionBattery.Charging.IsDischarging', + 'Vehicle.Powertrain.TractionBattery.Charging.MaximumChargingCurrent.DC', + 'Vehicle.Powertrain.TractionBattery.Charging.MaximumChargingCurrent.Phase1', + 'Vehicle.Powertrain.TractionBattery.Charging.MaximumChargingCurrent.Phase2', + 'Vehicle.Powertrain.TractionBattery.Charging.MaximumChargingCurrent.Phase3', + 'Vehicle.Powertrain.TractionBattery.Charging.Mode', + 'Vehicle.Powertrain.TractionBattery.Charging.PowerLoss', + 'Vehicle.Powertrain.TractionBattery.Charging.StartStopCharging', + 'Vehicle.Powertrain.TractionBattery.Charging.Temperature', + 'Vehicle.Powertrain.TractionBattery.Charging.TimeToComplete', + 'Vehicle.Powertrain.TractionBattery.Charging.Timer.Mode', + 'Vehicle.Powertrain.TractionBattery.Charging.Timer.Time', + 'Vehicle.Powertrain.TractionBattery.CurrentCurrent', + 'Vehicle.Powertrain.TractionBattery.CurrentPower', + 'Vehicle.Powertrain.TractionBattery.CurrentVoltage', + 'Vehicle.Powertrain.TractionBattery.DCDC.PowerLoss', + 'Vehicle.Powertrain.TractionBattery.DCDC.Temperature', + 'Vehicle.Powertrain.TractionBattery.GrossCapacity', + 'Vehicle.Powertrain.TractionBattery.Id', + 'Vehicle.Powertrain.TractionBattery.IsGroundConnected', + 'Vehicle.Powertrain.TractionBattery.IsPowerConnected', + 'Vehicle.Powertrain.TractionBattery.MaxVoltage', + 'Vehicle.Powertrain.TractionBattery.NetCapacity', + 'Vehicle.Powertrain.TractionBattery.NominalVoltage', + 'Vehicle.Powertrain.TractionBattery.PowerLoss', + 'Vehicle.Powertrain.TractionBattery.ProductionDate', + 'Vehicle.Powertrain.TractionBattery.Range', + 'Vehicle.Powertrain.TractionBattery.StateOfCharge.Current', + 'Vehicle.Powertrain.TractionBattery.StateOfCharge.CurrentEnergy', + 'Vehicle.Powertrain.TractionBattery.StateOfCharge.Displayed', + 'Vehicle.Powertrain.TractionBattery.StateOfHealth', + 'Vehicle.Powertrain.TractionBattery.Temperature.Average', + 'Vehicle.Powertrain.TractionBattery.Temperature.Max', + 'Vehicle.Powertrain.TractionBattery.Temperature.Min', + 'Vehicle.Powertrain.Transmission.ClutchEngagement', + 'Vehicle.Powertrain.Transmission.ClutchWear', + 'Vehicle.Powertrain.Transmission.CurrentGear', + 'Vehicle.Powertrain.Transmission.DiffLockFrontEngagement', + 'Vehicle.Powertrain.Transmission.DiffLockRearEngagement', + 'Vehicle.Powertrain.Transmission.DriveType', + 'Vehicle.Powertrain.Transmission.GearChangeMode', + 'Vehicle.Powertrain.Transmission.GearCount', + 'Vehicle.Powertrain.Transmission.IsElectricalPowertrainEngaged', + 'Vehicle.Powertrain.Transmission.IsLowRangeEngaged', + 'Vehicle.Powertrain.Transmission.IsParkLockEngaged', + 'Vehicle.Powertrain.Transmission.PerformanceMode', + 'Vehicle.Powertrain.Transmission.SelectedGear', + 'Vehicle.Powertrain.Transmission.Temperature', + 'Vehicle.Powertrain.Transmission.TorqueDistribution', + 'Vehicle.Powertrain.Transmission.TravelledDistance', + 'Vehicle.Powertrain.Transmission.Type', + 'Vehicle.Powertrain.Type', + 'Vehicle.RoofLoad', + 'Vehicle.Service.DistanceToService', + 'Vehicle.Service.IsServiceDue', + 'Vehicle.Service.TimeToService', + 'Vehicle.Speed', + 'Vehicle.StartTime', + 'Vehicle.Trailer.IsConnected', + 'Vehicle.TraveledDistance', + 'Vehicle.TraveledDistanceSinceStart', + 'Vehicle.TripDuration', + 'Vehicle.TripMeterReading', + 'Vehicle.VehicleIdentification.AcrissCode', + 'Vehicle.VehicleIdentification.BodyType', + 'Vehicle.VehicleIdentification.Brand', + 'Vehicle.VehicleIdentification.DateVehicleFirstRegistered', + 'Vehicle.VehicleIdentification.KnownVehicleDamages', + 'Vehicle.VehicleIdentification.MeetsEmissionStandard', + 'Vehicle.VehicleIdentification.Model', + 'Vehicle.VehicleIdentification.OptionalExtras', + 'Vehicle.VehicleIdentification.ProductionDate', + 'Vehicle.VehicleIdentification.PurchaseDate', + 'Vehicle.VehicleIdentification.VIN', + 'Vehicle.VehicleIdentification.VehicleConfiguration', + 'Vehicle.VehicleIdentification.VehicleInteriorColor', + 'Vehicle.VehicleIdentification.VehicleInteriorType', + 'Vehicle.VehicleIdentification.VehicleModelDate', + 'Vehicle.VehicleIdentification.VehicleSeatingCapacity', + 'Vehicle.VehicleIdentification.VehicleSpecialUsage', + 'Vehicle.VehicleIdentification.WMI', + 'Vehicle.VehicleIdentification.Year', + 'Vehicle.VersionVSS.Label', + 'Vehicle.VersionVSS.Major', + 'Vehicle.VersionVSS.Minor', + 'Vehicle.VersionVSS.Patch', + 'Vehicle.Width', +]; diff --git a/lib/core/constants/val_client_helper.dart b/lib/core/constants/val_client_helper.dart new file mode 100644 index 0000000..0d7a284 --- /dev/null +++ b/lib/core/constants/val_client_helper.dart @@ -0,0 +1,58 @@ +import 'package:protos/protos.dart'; + +class ValClientHelper { + final ClientChannel channel; + final VALClient stub; + + ValClientHelper({required this.channel, required this.stub}); + + void setUint32(String path, int value, [bool actuator = true]) async { + var dp = Datapoint()..uint32 = value; + set(path, dp, actuator); + } + + void setInt32(String path, int value, [bool actuator = true]) async { + var dp = Datapoint()..int32 = value; + set(path, dp, actuator); + } + + void setBool(String path, bool value, [bool actuator = true]) async { + var dp = Datapoint()..bool_12 = value; + set(path, dp, actuator); + } + + void setString(String path, String value, [bool actuator = true]) async { + var dp = Datapoint()..string = value; + set(path, dp, actuator); + } + + void setFloat(String path, double value, [bool actuator = true]) async { + var dp = Datapoint()..float = value; + set(path, dp, actuator); + } + + void setDouble(String path, double value, [bool actuator = true]) async { + var dp = Datapoint()..double_18 = value; + set(path, dp, actuator); + } + + void set(String path, Datapoint dp, bool actuator) async { + var entry = DataEntry()..path = path; + var update = EntryUpdate(); + if (actuator) { + entry.actuatorTarget = dp; + update.fields.add(Field.FIELD_ACTUATOR_TARGET); + } else { + entry.value = dp; + update.fields.add(Field.FIELD_VALUE); + } + update.entry = entry; + var request = SetRequest(); + request.updates.add(update); + Map metadata = {}; + // if (config.authorization.isNotEmpty) { + // metadata = {'authorization': "Bearer ${config.authorization}"}; + // } + await stub.set(request, options: CallOptions(metadata: metadata)); + } +} diff --git a/lib/core/constants/vss_path.dart b/lib/core/constants/vss_path.dart new file mode 100644 index 0000000..8875d1e --- /dev/null +++ b/lib/core/constants/vss_path.dart @@ -0,0 +1,58 @@ +class VSSPath { + static const String vehicleSpeed = 'Vehicle.Speed'; + static const String vehicleInsideTemperature = + 'Vehicle.Cabin.HVAC.AmbientAirTemperature'; + static const String vehicleOutsideTemperature = + 'Vehicle.Exterior.AirTemperature'; + static const String vehicleRange = 'Vehicle.Powertrain.FuelSystem.Range'; + static const String vehicleFuelLevel = 'Vehicle.OBD.FuelLevel'; + static const String vehicleMediaVolume = + 'Vehicle.Cabin.Infotainment.Media.Volume'; + static const String vehicleIsChildLockActiveLeft = + 'Vehicle.Cabin.Door.Row1.DriverSide.IsChildLockActive'; + static const String vehicleIsChildLockActiveRight = + 'Vehicle.Cabin.Door.Row1.PassengerSide.IsChildLockActive'; + static const String vehicleEngineSpeed = + 'Vehicle.Powertrain.CombustionEngine.Speed'; + static const String vehicleFrontLeftTire = + 'Vehicle.Chassis.Axle.Row1.Wheel.Left.Tire.Pressure'; + static const String vehicleFrontRightTire = + 'Vehicle.Chassis.Axle.Row1.Wheel.Right.Tire.Pressure'; + static const String vehicleRearLeftTire = + 'Vehicle.Chassis.Axle.Row2.Wheel.Left.Tire.Pressure'; + static const String vehicleRearRightTire = + 'Vehicle.Chassis.Axle.Row2.Wheel.Right.Tire.Pressure'; + static const String vehicleIsAirConditioningActive = + 'Vehicle.Cabin.HVAC.IsAirConditioningActive'; + static const String vehicleIsFrontDefrosterActive = + 'Vehicle.Cabin.HVAC.IsFrontDefrosterActive'; + static const String vehicleIsRearDefrosterActive = + 'Vehicle.Cabin.HVAC.IsRearDefrosterActive'; + static const String vehicleIsRecirculationActive = + 'Vehicle.Cabin.HVAC.IsRecirculationActive'; + static const String vehicleFanSpeed = + 'Vehicle.Cabin.HVAC.Station.Row1.Driver.FanSpeed'; + + List getSignalsList() { + return const [ + vehicleSpeed, + vehicleInsideTemperature, + vehicleOutsideTemperature, + vehicleRange, + vehicleFuelLevel, + vehicleMediaVolume, + vehicleIsChildLockActiveLeft, + vehicleIsChildLockActiveRight, + vehicleEngineSpeed, + vehicleFrontLeftTire, + vehicleFrontRightTire, + vehicleRearLeftTire, + vehicleRearRightTire, + vehicleIsAirConditioningActive, + vehicleIsFrontDefrosterActive, + vehicleIsRearDefrosterActive, + vehicleIsRecirculationActive, + vehicleFanSpeed + ]; + } +} diff --git a/lib/core/utils/helpers.dart b/lib/core/utils/helpers.dart new file mode 100644 index 0000000..f2dbca2 --- /dev/null +++ b/lib/core/utils/helpers.dart @@ -0,0 +1,17 @@ +import 'package:flutter_ics_homescreen/export.dart'; + +class Helpers { + static Shadow dropShadowRegular = Shadow( + color: Colors.black.withOpacity(0.70), + offset: const Offset(1, 2), + blurRadius: 3); + static BoxShadow boxDropShadowRegular = BoxShadow( + color: Colors.black.withOpacity(0.70), + offset: const Offset(1, 2), + blurRadius: 3); + + static Shadow dropShadowBig = Shadow( + color: Colors.black.withOpacity(0.70), + offset: const Offset(1, 4), + blurRadius: 4); +} diff --git a/lib/core/utils/widgets/back_button.dart b/lib/core/utils/widgets/back_button.dart new file mode 100644 index 0000000..8f0862b --- /dev/null +++ b/lib/core/utils/widgets/back_button.dart @@ -0,0 +1,16 @@ +import 'package:flutter_ics_homescreen/export.dart'; + +class CustomBackButton extends ConsumerWidget { + const CustomBackButton({super.key}); + + @override + Widget build(BuildContext context, WidgetRef ref) { + return BackButton( + onPressed: () { + ref.read(appProvider.notifier).update( + (state) => state = AppState.home, + ); + }, + ); + } +} diff --git a/lib/data/data_providers/app.dart b/lib/data/data_providers/app.dart new file mode 100644 index 0000000..acfaa01 --- /dev/null +++ b/lib/data/data_providers/app.dart @@ -0,0 +1,25 @@ +import '../../export.dart'; + +class App extends StatelessWidget { + const App({super.key}); + + @override + Widget build(BuildContext context) { + return const AppView(); + } +} + +class AppView extends StatelessWidget { + const AppView({super.key}); + + @override + Widget build(BuildContext context) { + return ProviderScope( + child: MaterialApp( + debugShowCheckedModeBanner: false, + theme: theme, + home: const HomeScreen(), + ), + ); + } +} diff --git a/lib/data/data_providers/app_provider.dart b/lib/data/data_providers/app_provider.dart new file mode 100644 index 0000000..c528a1a --- /dev/null +++ b/lib/data/data_providers/app_provider.dart @@ -0,0 +1,63 @@ +import 'package:flutter_ics_homescreen/data/data_providers/datetime_notifier.dart'; +import 'package:flutter_ics_homescreen/data/data_providers/hybrid_notifier.dart'; +import 'package:flutter_ics_homescreen/data/data_providers/signal_notifier.dart'; +import 'package:flutter_ics_homescreen/data/data_providers/units_notifier.dart'; +import 'package:flutter_ics_homescreen/data/data_providers/audio_notifier.dart'; +import 'package:flutter_ics_homescreen/data/data_providers/users_notifier.dart'; +import 'package:flutter_ics_homescreen/data/models/date_time.dart'; +import 'package:flutter_ics_homescreen/export.dart'; + +import '../models/users.dart'; +import 'vehicle_notifier.dart'; + +enum AppState { + home, + dashboard, + hvac, + apps, + mediaPlayer, + settings, + splash, + dateTime, + bluetooth, + wifi, + wired, + audioSettings, + profiles, + newProfile, + units, + versionInfo, + weather, + distanceUnit, + tempUnit, + clock, + date, + time +} + +final appProvider = StateProvider((ref) => AppState.splash); +final vehicleProvider = StateNotifierProvider((ref) { + return VehicleNotifier(const Vehicle.initial()); +}); +final signalsProvider = StateNotifierProvider((ref) { + return SignalNotifier(const Signals.initial()); +}); + +final unitStateProvider = StateNotifierProvider((ref) { + return UnitsNotifier(const Units.initial()); +}); +final audioStateProvider = StateNotifierProvider((ref) { + return AudioNotifier(const Audio.initial()); +}); + +final usersProvider = StateNotifierProvider((ref) { + return UsersNotifier(Users.initial()); +}); + +final dateTimeStateProvider = + StateNotifierProvider((ref) { + return DateTimeNotifier(DateAndTime.initial()); +}); +final hybridtateProvider = StateNotifierProvider((ref) { + return HybridNotifier(const Hybrid.initial()); +}); diff --git a/lib/data/data_providers/audio_notifier.dart b/lib/data/data_providers/audio_notifier.dart new file mode 100644 index 0000000..8981036 --- /dev/null +++ b/lib/data/data_providers/audio_notifier.dart @@ -0,0 +1,25 @@ +import 'package:flutter_ics_homescreen/export.dart'; + +class AudioNotifier extends StateNotifier