aboutsummaryrefslogtreecommitdiffstats
path: root/lib/data
diff options
context:
space:
mode:
Diffstat (limited to 'lib/data')
-rw-r--r--lib/data/data_providers/vehicle_notifier.dart42
-rw-r--r--lib/data/models/vehicle.dart41
2 files changed, 72 insertions, 11 deletions
diff --git a/lib/data/data_providers/vehicle_notifier.dart b/lib/data/data_providers/vehicle_notifier.dart
index fb69595..b9a543c 100644
--- a/lib/data/data_providers/vehicle_notifier.dart
+++ b/lib/data/data_providers/vehicle_notifier.dart
@@ -136,7 +136,17 @@ class VehicleNotifier extends StateNotifier<Vehicle> {
state = state.copyWith(fanSpeed: update.entry.value.uint32);
}
break;
-
+ case VSSPath.vehicleDriverTemperature:
+ if (update.entry.value.hasInt32()) {
+ state = state.copyWith(driverTemperature: update.entry.value.int32);
+ }
+ break;
+ case VSSPath.vehiclePassengerTemperature:
+ if (update.entry.value.hasInt32()) {
+ state =
+ state.copyWith(passengerTemperature: update.entry.value.int32);
+ }
+ break;
// default:
// debugPrint("ERROR: Unexpected path ${update.entry.path}");
// break;
@@ -302,7 +312,6 @@ class VehicleNotifier extends StateNotifier<Vehicle> {
}, onError: (stacktrace, errorDescriptor) {
debugPrint(stacktrace.toString());
state = const Vehicle.initialForDebug();
-
});
} catch (e) {
debugPrint(e.toString());
@@ -340,6 +349,35 @@ class VehicleNotifier extends StateNotifier<Vehicle> {
}
}
+ void setTemperature({required Side side, required int value}) {
+ var helper = ValClientHelper(channel: channel, stub: stub);
+ try {
+ switch (side) {
+ case Side.left:
+ helper.setInt32(
+ VSSPath.vehicleDriverTemperature,
+ value,
+ false,
+ );
+ state = state.copyWith(driverTemperature: value);
+ break;
+ case Side.right:
+ helper.setInt32(
+ VSSPath.vehiclePassengerTemperature,
+ value,
+ false,
+ );
+ state = state.copyWith(passengerTemperature: value);
+ break;
+ default:
+ debugPrint("ERROR: Unexpected side value $side}");
+ break;
+ }
+ } catch (e) {
+ debugPrint(e.toString());
+ }
+ }
+
void updateFanSpeed(int newValue) {
state = state.copyWith(fanSpeed: newValue);
}
diff --git a/lib/data/models/vehicle.dart b/lib/data/models/vehicle.dart
index adc6fc2..16752d3 100644
--- a/lib/data/models/vehicle.dart
+++ b/lib/data/models/vehicle.dart
@@ -22,6 +22,8 @@ class Vehicle {
final bool isRearDefrosterActive;
final bool isRecirculationActive;
final int fanSpeed;
+ final int driverTemperature;
+ final int passengerTemperature;
const Vehicle(
this.speed,
@@ -41,7 +43,10 @@ class Vehicle {
this.isFrontDefrosterActive,
this.isRearDefrosterActive,
this.isRecirculationActive,
- this.fanSpeed);
+ this.fanSpeed,
+ this.driverTemperature,
+ this.passengerTemperature,
+ );
const Vehicle.initial()
: speed = 0,
@@ -61,7 +66,9 @@ class Vehicle {
isFrontDefrosterActive = false,
isRearDefrosterActive = false,
isRecirculationActive = false,
- fanSpeed = 0;
+ fanSpeed = 0,
+ driverTemperature = 26,
+ passengerTemperature = 26;
const Vehicle.initialForDebug()
: speed = 60,
@@ -81,7 +88,9 @@ class Vehicle {
isFrontDefrosterActive = false,
isRearDefrosterActive = false,
isRecirculationActive = false,
- fanSpeed = 0;
+ fanSpeed = 0,
+ driverTemperature = 26,
+ passengerTemperature = 26;
Vehicle copyWith(
{double? speed,
@@ -101,7 +110,10 @@ class Vehicle {
bool? isFrontDefrosterActive,
bool? isRearDefrosterActive,
bool? isRecirculationActive,
- int? fanSpeed}) {
+ int? fanSpeed,
+ int? driverTemperature,
+ int? passengerTemperature,
+ }) {
return Vehicle(
speed ?? this.speed,
insideTemperature ?? this.insideTemperature,
@@ -120,7 +132,10 @@ class Vehicle {
isFrontDefrosterActive ?? this.isFrontDefrosterActive,
isRearDefrosterActive ?? this.isRearDefrosterActive,
isRecirculationActive ?? this.isRecirculationActive,
- fanSpeed ?? this.fanSpeed);
+ fanSpeed ?? this.fanSpeed,
+ driverTemperature ?? this.driverTemperature,
+ passengerTemperature ?? this.passengerTemperature,
+ );
}
Map<String, dynamic> toMap() {
@@ -142,7 +157,9 @@ class Vehicle {
'isFrontDefrosterActive': isFrontDefrosterActive,
'isRearDefrosterActive': isRearDefrosterActive,
'isRecirculationActive': isRecirculationActive,
- 'fanSpeed': fanSpeed
+ 'fanSpeed': fanSpeed,
+ 'driverTemperature': driverTemperature,
+ 'passengerTemperature': passengerTemperature,
};
}
@@ -166,6 +183,8 @@ class Vehicle {
map['isRearDefrosterActive'] ?? false,
map['isRecirculationActive'] ?? false,
map['fanSpeed'] ?? 0,
+ map['driverTemperature'] ?? 0,
+ map['passengerTemperature'] ?? 0,
);
}
@@ -176,7 +195,7 @@ class Vehicle {
@override
String toString() {
- return 'Vehicle(speed: $speed, insideTemperature: $insideTemperature, outsideTemperature: $outsideTemperature, range: $range, fuelLevel: $fuelLevel, mediaVolume: $mediaVolume, isChildLockActiveLeft: $isChildLockActiveLeft, isChildLockActiveRight: $isChildLockActiveRight, engineSpeed: $engineSpeed, frontLeftTire: $frontLeftTire, frontRightTire: $frontRightTire, rearLeftTire: $rearLeftTire, rearRightTire: $rearRightTire, isAirConditioningActive: $isAirConditioningActive, isFrontDefrosterActive: $isFrontDefrosterActive, isRearDefrosterActive: $isRearDefrosterActive, isRecirculationActive: $isRecirculationActive,fanSpeed:$fanSpeed)';
+ return 'Vehicle(speed: $speed, insideTemperature: $insideTemperature, outsideTemperature: $outsideTemperature, range: $range, fuelLevel: $fuelLevel, mediaVolume: $mediaVolume, isChildLockActiveLeft: $isChildLockActiveLeft, isChildLockActiveRight: $isChildLockActiveRight, engineSpeed: $engineSpeed, frontLeftTire: $frontLeftTire, frontRightTire: $frontRightTire, rearLeftTire: $rearLeftTire, rearRightTire: $rearRightTire, isAirConditioningActive: $isAirConditioningActive, isFrontDefrosterActive: $isFrontDefrosterActive, isRearDefrosterActive: $isRearDefrosterActive, isRecirculationActive: $isRecirculationActive,fanSpeed:$fanSpeed,driverTemperature:$driverTemperature, passengerTemperature:$passengerTemperature)';
}
@override
@@ -201,7 +220,9 @@ class Vehicle {
other.isFrontDefrosterActive == isFrontDefrosterActive &&
other.isRearDefrosterActive == isRearDefrosterActive &&
other.isRecirculationActive == isRecirculationActive &&
- other.fanSpeed == fanSpeed;
+ other.fanSpeed == fanSpeed &&
+ other.driverTemperature == driverTemperature &&
+ other.passengerTemperature == passengerTemperature;
}
@override
@@ -223,7 +244,9 @@ class Vehicle {
isFrontDefrosterActive.hashCode ^
isRearDefrosterActive.hashCode ^
isRecirculationActive.hashCode ^
- fanSpeed.hashCode;
+ fanSpeed.hashCode ^
+ driverTemperature.hashCode ^
+ passengerTemperature.hashCode;
}
// }
// / class VehicleNotifier extends StateNotifier<Vehicle> {