summaryrefslogtreecommitdiffstats
path: root/lib/vehicle-signals
diff options
context:
space:
mode:
Diffstat (limited to 'lib/vehicle-signals')
-rw-r--r--lib/vehicle-signals/vehicle_status_provider.dart48
-rw-r--r--lib/vehicle-signals/vss_path.dart5
-rw-r--r--lib/vehicle-signals/vss_provider.dart18
3 files changed, 48 insertions, 23 deletions
diff --git a/lib/vehicle-signals/vehicle_status_provider.dart b/lib/vehicle-signals/vehicle_status_provider.dart
index 9518f59..0c53b2d 100644
--- a/lib/vehicle-signals/vehicle_status_provider.dart
+++ b/lib/vehicle-signals/vehicle_status_provider.dart
@@ -2,6 +2,9 @@
import 'package:flutter_riverpod/flutter_riverpod.dart';
+enum DistanceUnit { kilometers, miles }
+enum TemperatureUnit { celsius, fahrenheit }
+
class VehicleStatus {
VehicleStatus({
required this.speed,
@@ -14,7 +17,7 @@ class VehicleStatus {
required this.isLowBeam,
required this.isHighBeam,
required this.isHazardLightOn,
- required this.travelledDistance,
+ required this.traveledDistance,
required this.isParkingOn,
required this.performanceMode,
required this.ambientAirTemp,
@@ -25,9 +28,9 @@ class VehicleStatus {
required this.isTrunkLocked,
required this.isTrunkOpen,
required this.isBatteryCharging,
-
- // steering switches
- required this.vehicleDistanceUnit,
+ required this.distanceUnit,
+ required this.temperatureUnit,
+ // Steering wheel switches
required this.isSteeringCruiseEnable,
required this.isSteeringCruiseSet,
required this.isSteeringCruiseResume,
@@ -56,9 +59,11 @@ class VehicleStatus {
final bool isCruiseControlActive;
final bool isCruiseControlError;
final bool isBatteryCharging;
- final double travelledDistance;
+ final double traveledDistance;
+ final DistanceUnit distanceUnit;
+ final TemperatureUnit temperatureUnit;
- final String vehicleDistanceUnit;
+ // Steering wheel switches
final bool isSteeringCruiseEnable;
final bool isSteeringCruiseSet;
final bool isSteeringCruiseResume;
@@ -86,10 +91,11 @@ class VehicleStatus {
bool? isCruiseControlError,
bool? isCruiseControlActive,
bool? isBatteryCharging,
- double? travelledDistance,
+ double? traveledDistance,
double? cruiseControlSpeed,
- // Steering
- String? vehicleDistanceUnit,
+ DistanceUnit? distanceUnit,
+ TemperatureUnit? temperatureUnit,
+ // Steering wheel switches
bool? isSteeringCruiseEnable,
bool? isSteeringCruiseSet,
bool? isSteeringCruiseResume,
@@ -108,7 +114,9 @@ class VehicleStatus {
isLowBeam: isLowBeam ?? this.isLowBeam,
isHighBeam: isHighBeam ?? this.isHighBeam,
isHazardLightOn: isHazardLightOn ?? this.isHazardLightOn,
- travelledDistance: travelledDistance ?? this.travelledDistance,
+ traveledDistance: traveledDistance ?? this.traveledDistance,
+ distanceUnit: distanceUnit ?? this.distanceUnit,
+ temperatureUnit: temperatureUnit ?? this.temperatureUnit,
isParkingOn: isParkingOn ?? this.isParkingOn,
performanceMode: performanceMode ?? this.performanceMode,
isTrunkLocked: isTrunkLocked ?? this.isTrunkLocked,
@@ -130,7 +138,6 @@ class VehicleStatus {
isSteeringInfo: isSteeringInfo ?? this.isSteeringInfo,
isSteeringLaneWarning:
isSteeringLaneWarning ?? this.isSteeringLaneWarning,
- vehicleDistanceUnit: vehicleDistanceUnit ?? this.vehicleDistanceUnit,
);
}
}
@@ -155,7 +162,7 @@ class VehicleStatusNotifier extends StateNotifier<VehicleStatus> {
isHighBeam: true,
isLowBeam: false,
isParkingOn: true,
- travelledDistance: 888,
+ traveledDistance: 888,
ambientAirTemp: 25,
cruiseControlSpeed: 60,
isCruiseControlActive: false,
@@ -164,13 +171,14 @@ class VehicleStatusNotifier extends StateNotifier<VehicleStatus> {
isTrunkLocked: true,
isTrunkOpen: false,
isBatteryCharging: true,
+ distanceUnit: DistanceUnit.kilometers,
+ temperatureUnit: TemperatureUnit.celsius,
isSteeringCruiseEnable: false,
isSteeringCruiseSet: false,
isSteeringCruiseResume: false,
isSteeringCruiseCancel: false,
isSteeringInfo: false,
isSteeringLaneWarning: false,
- vehicleDistanceUnit: 'km',
);
void update({
double? speed,
@@ -192,10 +200,11 @@ class VehicleStatusNotifier extends StateNotifier<VehicleStatus> {
bool? isCruiseControlActive,
bool? isCruiseControlError,
bool? isBatteryCharging,
- double? travelledDistance,
+ double? traveledDistance,
double? cruiseControlSpeed,
- //
- String? vehicleDistanceUnit,
+ DistanceUnit? distanceUnit,
+ TemperatureUnit? temperatureUnit,
+ // Steering wheel switches
bool? isSteeringCruiseEnable,
bool? isSteeringCruiseSet,
bool? isSteeringCruiseResume,
@@ -214,7 +223,7 @@ class VehicleStatusNotifier extends StateNotifier<VehicleStatus> {
isLowBeam: isLowBeam,
isHighBeam: isHighBeam,
isHazardLightOn: isHazardLightOn,
- travelledDistance: travelledDistance,
+ traveledDistance: traveledDistance,
performanceMode: performanceMode,
isParkingOn: isParkingOn,
isTrunkOpen: isTrunkOpen,
@@ -225,14 +234,15 @@ class VehicleStatusNotifier extends StateNotifier<VehicleStatus> {
isCruiseControlError: isCruiseControlError,
cruiseControlSpeed: cruiseControlSpeed,
isBatteryCharging: isBatteryCharging,
- //
+ distanceUnit: distanceUnit,
+ temperatureUnit: temperatureUnit,
+ // Steering wheel switches
isSteeringCruiseEnable: isSteeringCruiseEnable,
isSteeringCruiseSet: isSteeringCruiseSet,
isSteeringCruiseResume: isSteeringCruiseResume,
isSteeringCruiseCancel: isSteeringCruiseCancel,
isSteeringInfo: isSteeringInfo,
isSteeringLaneWarning: isSteeringLaneWarning,
- vehicleDistanceUnit: vehicleDistanceUnit,
);
}
}
diff --git a/lib/vehicle-signals/vss_path.dart b/lib/vehicle-signals/vss_path.dart
index dae8a53..047ad18 100644
--- a/lib/vehicle-signals/vss_path.dart
+++ b/lib/vehicle-signals/vss_path.dart
@@ -32,7 +32,7 @@ class VSSPath {
static const String vehicleHazardLightOn = "Vehicle.Body.Lights.Hazard.IsSignaling";
- static const String vehicleTravelledDistance = "Vehicle.TraveledDistance";
+ static const String vehicleTraveledDistance = "Vehicle.TraveledDistance";
static const String vehicleTrunkLocked = "Vehicle.Body.Trunk.Rear.IsLocked";
@@ -77,6 +77,9 @@ class VSSPath {
static const String vehicleDistanceUnit =
"Vehicle.Cabin.Infotainment.HMI.DistanceUnit";
+ static const String vehicleTemperatureUnit =
+ "Vehicle.Cabin.Infotainment.HMI.TemperatureUnit";
+
static const String vehicleCurrLat = "Vehicle.CurrentLocation.Latitude";
static const String vehicleCurrLon = "Vehicle.CurrentLocation.Longitude";
diff --git a/lib/vehicle-signals/vss_provider.dart b/lib/vehicle-signals/vss_provider.dart
index 7820a52..50a3b6b 100644
--- a/lib/vehicle-signals/vss_provider.dart
+++ b/lib/vehicle-signals/vss_provider.dart
@@ -35,6 +35,7 @@ class DashboardVssClient extends VssClient {
VSSPath.vehicleCruiseControlActive,
VSSPath.vehicleBatteryChargingStatus,
VSSPath.vehicleDistanceUnit,
+ VSSPath.vehicleTemperatureUnit,
VSSPath.steeringCruiseEnable,
VSSPath.steeringCruiseSet,
VSSPath.steeringCruiseResume,
@@ -140,9 +141,9 @@ class DashboardVssClient extends VssClient {
vehicleStatus.update(performanceMode: update.entry.value.string);
}
break;
- case VSSPath.vehicleTravelledDistance:
+ case VSSPath.vehicleTraveledDistance:
if (update.entry.value.hasFloat()) {
- vehicleStatus.update(travelledDistance: update.entry.value.float);
+ vehicleStatus.update(traveledDistance: update.entry.value.float);
}
break;
case VSSPath.vehicleTrunkLocked:
@@ -182,7 +183,18 @@ class DashboardVssClient extends VssClient {
break;
case VSSPath.vehicleDistanceUnit:
if (update.entry.value.hasString()) {
- vehicleStatus.update(vehicleDistanceUnit: update.entry.value.string);
+ DistanceUnit unit = DistanceUnit.kilometers;
+ if (update.entry.value.string == "MILES")
+ unit = DistanceUnit.miles;
+ vehicleStatus.update(distanceUnit: unit);
+ }
+ break;
+ case VSSPath.vehicleTemperatureUnit:
+ if (update.entry.value.hasString()) {
+ TemperatureUnit unit = TemperatureUnit.celsius;
+ if (update.entry.value.string == "F")
+ unit = TemperatureUnit.fahrenheit;
+ vehicleStatus.update(temperatureUnit: unit);
}
break;