summaryrefslogtreecommitdiffstats
path: root/lib/vehicle-signals
diff options
context:
space:
mode:
Diffstat (limited to 'lib/vehicle-signals')
-rw-r--r--lib/vehicle-signals/intial_connection.dart38
-rw-r--r--lib/vehicle-signals/onBoarding_page.dart61
-rw-r--r--lib/vehicle-signals/vehicle_config.dart39
-rw-r--r--lib/vehicle-signals/vehicle_methods.dart183
-rw-r--r--lib/vehicle-signals/vss_client.dart113
-rw-r--r--lib/vehicle-signals/vss_path.dart (renamed from lib/vehicle-signals/vehicle_server_path.dart)0
-rw-r--r--lib/vehicle-signals/vss_provider.dart147
-rw-r--r--lib/vehicle-signals/vss_signal_providers.dart (renamed from lib/vehicle-signals/vss_providers.dart)32
8 files changed, 275 insertions, 338 deletions
diff --git a/lib/vehicle-signals/intial_connection.dart b/lib/vehicle-signals/intial_connection.dart
deleted file mode 100644
index 8e79979..0000000
--- a/lib/vehicle-signals/intial_connection.dart
+++ /dev/null
@@ -1,38 +0,0 @@
-// SPDX-License-Identifier: Apache-2.0
-import 'dart:io';
-import 'package:dashboard_app/vehicle-signals/vehicle_config.dart';
-import 'package:flutter/material.dart';
-import 'package:flutter_riverpod/flutter_riverpod.dart';
-
-import 'onBoarding_page.dart';
-
-class InitialScreen extends ConsumerWidget {
- InitialScreen({Key? key, required this.client}) : super(key: key);
- final HttpClient client;
- late WebSocket socket;
-
- @override
- Widget build(BuildContext context, ref) {
- final sockConnect = ref.watch(sockConnectprovider(client));
-
- return sockConnect.when(
- data: (socket) {
- this.socket = socket;
- this.socket.pingInterval = const Duration(seconds: 2);
- return OnBoardingPage(client: client, socket: this.socket);
- },
- error: (e, stk) {
- print(e);
- ref.refresh(sockConnectprovider(client));
- return const Scaffold(
- backgroundColor: Colors.black,
- body: Center(child: Text('error',style: TextStyle(color: Colors.white),)),
- );
- },
- loading: () => const Scaffold(
- backgroundColor: Colors.black,
- body: Center(child: Text('loading',style: TextStyle(color: Colors.white))),
- ),
- );
- }
-} \ No newline at end of file
diff --git a/lib/vehicle-signals/onBoarding_page.dart b/lib/vehicle-signals/onBoarding_page.dart
deleted file mode 100644
index 6009c54..0000000
--- a/lib/vehicle-signals/onBoarding_page.dart
+++ /dev/null
@@ -1,61 +0,0 @@
-// SPDX-License-Identifier: Apache-2.0
-import 'dart:async';
-import 'dart:io';
-
-import 'package:dashboard_app/vehicle-signals/vehicle_config.dart';
-import 'package:dashboard_app/vehicle-signals/vehicle_methods.dart';
-import 'package:flutter/material.dart';
-import 'package:flutter_riverpod/flutter_riverpod.dart';
-
-import '../HomePage.dart';
-
-class OnBoardingPage extends ConsumerStatefulWidget {
- const OnBoardingPage({Key? key, required this.client, required this.socket})
- : super(key: key);
- final WebSocket socket;
- final HttpClient client;
-
- @override
- ConsumerState<OnBoardingPage> createState() => _OnBoardingPageState();
-}
-
-class _OnBoardingPageState extends ConsumerState<OnBoardingPage> {
- late Timer _timer;
-
-
- @override
- void initState() {
- super.initState();
- VISS.init(widget.socket,ref);
- _timer = Timer.periodic(const Duration(seconds: 2), (timer) {
-
- if (widget.socket.readyState == 3) {
- ref.refresh(sockConnectprovider(widget.client));
- }
- });
- WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
- widget.socket.listen(
- (data) {
- VISS.parseData(ref, data);
-
- },
- onError: (e, stk) {
- print(e.toString());
- ref.refresh(sockConnectprovider(widget.client));
- },
- );
- });
- }
-
- @override
- void dispose() {
- super.dispose();
- _timer.cancel();
- widget.socket.close(786887, "Connection lost with server!");
- }
-
- @override
- Widget build(BuildContext context) {
- return const HomePage();
- }
-} \ No newline at end of file
diff --git a/lib/vehicle-signals/vehicle_config.dart b/lib/vehicle-signals/vehicle_config.dart
deleted file mode 100644
index 59682c4..0000000
--- a/lib/vehicle-signals/vehicle_config.dart
+++ /dev/null
@@ -1,39 +0,0 @@
-// SPDX-License-Identifier: Apache-2.0
-import 'dart:convert';
-import 'dart:io';
-
-import 'package:dashboard_app/config.dart';
-import 'package:flutter_riverpod/flutter_riverpod.dart';
-import 'package:http/http.dart' as http;
-
-
-
-final sockConnectprovider = FutureProvider.family<WebSocket, HttpClient>(
- (ref, client) => connect(client,ref));
-
-
-
-Future<HttpClient> initializeClient() async {
-
-
- SecurityContext ctx = SecurityContext.defaultContext;
-
- HttpClient client = HttpClient(context: ctx)
- ..findProxy = null
- ..badCertificateCallback = (cert, host, port) {
- return true;
- };
- return client;
-}
-
-
-
-Future<WebSocket> connect(HttpClient client, ref) async {
- final config = ref.read(ConfigStateprovider);
- WebSocket socket = await WebSocket.connect(
- "wss://${config.hostname}:${config.port}",
- customClient: client);
- return socket;
-}
-
-
diff --git a/lib/vehicle-signals/vehicle_methods.dart b/lib/vehicle-signals/vehicle_methods.dart
deleted file mode 100644
index 8259450..0000000
--- a/lib/vehicle-signals/vehicle_methods.dart
+++ /dev/null
@@ -1,183 +0,0 @@
-// SPDX-License-Identifier: Apache-2.0
-import 'dart:convert';
-import 'dart:io';
-
-import 'package:dashboard_app/vehicle-signals/vss_providers.dart';
-import 'package:dashboard_app/vehicle-signals/vehicle_server_path.dart';
-import 'package:dashboard_app/config.dart';
-import 'package:flutter_riverpod/flutter_riverpod.dart';
-
-class VISS {
- static const requestId = "test-id";
- static void init(WebSocket socket, WidgetRef ref) {
- authorize(socket, ref);
- subscribe(socket, ref, VSSPath.vehicleSpeed);
- subscribe(socket, ref, VSSPath.vehicleEngineSpeed);
- subscribe(socket, ref, VSSPath.vehicleFuelLevel);
- subscribe(socket, ref, VSSPath.vehicleFrontLeftTire);
- subscribe(socket, ref, VSSPath.vehicleFrontRightTire);
- subscribe(socket, ref, VSSPath.vehicleRearLeftTire);
- subscribe(socket, ref, VSSPath.vehicleRearRightTire);
- subscribe(socket, ref, VSSPath.vehicleIsChildLockActiveLeft);
- subscribe(socket, ref, VSSPath.vehicleIsChildLockActiveRight);
- subscribe(socket, ref, VSSPath.vehicleFuelRate);
- subscribe(socket, ref, VSSPath.vehicleInsideTemperature);
- subscribe(socket, ref, VSSPath.vehicleOutsideTemperature);
- }
-
- static void update(WebSocket socket, WidgetRef ref) {
- get(socket, ref, VSSPath.vehicleSpeed);
- get(socket, ref, VSSPath.vehicleEngineSpeed);
- get(socket, ref, VSSPath.vehicleFuelLevel);
- get(socket, ref, VSSPath.vehicleOutsideTemperature);
- get(socket, ref, VSSPath.vehicleFrontLeftTire);
- get(socket, ref, VSSPath.vehicleFrontRightTire);
- get(socket, ref, VSSPath.vehicleRearLeftTire);
- get(socket, ref, VSSPath.vehicleRearRightTire);
- get(socket, ref, VSSPath.vehicleIsChildLockActiveLeft);
- get(socket, ref, VSSPath.vehicleIsChildLockActiveRight);
- get(socket, ref, VSSPath.vehicleFuelRate);
- get(socket, ref, VSSPath.vehicleInsideTemperature);
- }
-
- static void authorize(WebSocket socket, WidgetRef ref) {
- final config = ref.read(ConfigStateprovider);
-
- Map<String, dynamic> map = {
- "action": "authorize",
- "tokens": config.kuksaAuthToken,
- "requestId": requestId
- };
- socket.add(jsonEncode(map));
- }
-
- static void get(WebSocket socket, WidgetRef ref, String path) {
- final config = ref.read(ConfigStateprovider);
-
- Map<String, dynamic> map = {
- "action": "get",
- "tokens": config.kuksaAuthToken,
- "path": path,
- "requestId": requestId
- };
- socket.add(jsonEncode(map));
- }
-
- static void set(WebSocket socket, WidgetRef ref, String path, String value) {
- final config = ref.read(ConfigStateprovider);
- Map<String, dynamic> map = {
- "action": "set",
- "tokens": config.kuksaAuthToken,
- "path": path,
- "requestId": requestId,
- "value": value
- };
- socket.add(jsonEncode(map));
- }
-
- static void subscribe(WebSocket socket, WidgetRef ref, String path) {
- final config = ref.read(ConfigStateprovider);
-
- Map<String, dynamic> map = {
- "action": "subscribe",
- "tokens": config.kuksaAuthToken,
- "path": path,
- "requestId": requestId
- };
- socket.add(jsonEncode(map));
- }
-
- static void parseData(WidgetRef ref, String data) {
- Map<String, dynamic> dataMap = jsonDecode(data);
- if (dataMap["action"] == "subscription" || dataMap["action"] == "get") {
- if (dataMap.containsKey("data")) {
- if ((dataMap["data"] as Map<String, dynamic>).containsKey("dp") &&
- (dataMap["data"] as Map<String, dynamic>).containsKey("path")) {
- String path = dataMap["data"]["path"];
- Map<String, dynamic> dp = dataMap["data"]["dp"];
- if (dp.containsKey("value")) {
- if (dp["value"] != "---") {
- switch (path) {
- case VSSPath.vehicleSpeed:
- ref
- .read(vehicleSignalSpeedProvider.notifier)
- .update(speed: dp["value"]);
- break;
- case VSSPath.vehicleEngineSpeed:
- ref
- .read(vehicleSignalEngineSpeedProvider.notifier)
- .update(speed: dp["value"].toDouble());
- break;
- case VSSPath.vehicleFuelLevel:
- ref
- .read(vehicleSignalFuelLevelProvider.notifier)
- .update(level: dp["value"]);
- break;
- case VSSPath.vehicleFuelRate:
- ref
- .read(vehicleSignalFuelRateProvider.notifier)
- .update(rate: dp["value"]);
- break;
- case VSSPath.vehicleFrontLeftTire:
- ref
- .read(vehicleSignalFrontLeftTirePressureProvider.notifier)
- .update(pressure: dp["value"]);
- break;
- case VSSPath.vehicleFrontRightTire:
- ref
- .read(
- vehicleSignalFrontRightTirePressureProvider.notifier)
- .update(pressure: dp["value"]);
- break;
- case VSSPath.vehicleRearLeftTire:
- ref
- .read(vehicleSignalRearLeftTirePressureProvider.notifier)
- .update(pressure: dp["value"]);
- break;
- case VSSPath.vehicleRearRightTire:
- ref
- .read(vehicleSignalRearRightTirePressureProvider.notifier)
- .update(pressure: dp["value"]);
- break;
- case VSSPath.vehicleIsChildLockActiveLeft:
- ref
- .read(vehicleSignalLeftChildLockActiveProvider.notifier)
- .update(engaged: dp["value"]);
- break;
- case VSSPath.vehicleIsChildLockActiveRight:
- ref
- .read(vehicleSignalRightChildLockActiveProvider.notifier)
- .update(engaged: dp["value"]);
- break;
- case VSSPath.vehicleInsideTemperature:
- ref
- .read(vehicleSignalInsideTempProvider.notifier)
- .update(temp: dp["value"]);
- break;
- case VSSPath.vehicleOutsideTemperature:
- ref
- .read(vehicleSignalOutsideTempProvider.notifier)
- .update(temp: dp["value"]);
- break;
- default:
- print("$path Not Available yet!");
- }
- } else {
- print("ERROR:Value not available yet! Set Value of $path");
- }
- } else {
- print("ERROR:'value': Key not found!");
- }
- } else if ((!dataMap["data"] as Map<String, dynamic>)
- .containsKey("path")) {
- print("ERROR:'path':key not found !");
- } else if ((dataMap["data"] as Map<String, dynamic>)
- .containsKey("dp")) {
- print("ERROR:'dp':key not found !");
- }
- } else {
- print("ERROR:'data':key not found!");
- }
- }
- }
-}
diff --git a/lib/vehicle-signals/vss_client.dart b/lib/vehicle-signals/vss_client.dart
new file mode 100644
index 0000000..ed79e99
--- /dev/null
+++ b/lib/vehicle-signals/vss_client.dart
@@ -0,0 +1,113 @@
+// SPDX-License-Identifier: Apache-2.0
+import 'dart:io';
+import 'package:meta/meta.dart';
+import 'package:flutter/foundation.dart';
+import 'package:flutter_riverpod/flutter_riverpod.dart';
+import 'package:grpc/grpc.dart';
+import 'package:dashboard_app/generated/kuksa/val/v1/val.pbgrpc.dart';
+import 'package:dashboard_app/generated/kuksa/val/v1/types.pb.dart';
+import 'package:dashboard_app/config.dart';
+
+abstract class VssClient {
+ final KuksaConfig config;
+ final ClientChannel channel;
+ final VALClient stub;
+ final Ref ref;
+
+ // Extenders will likely override this
+ final List<String> signals = [];
+
+ VssClient({required this.config, required this.channel, required this.stub, required this.ref});
+
+ // Abstract method extenders must implement
+ void handleSignalUpdates(EntryUpdate update);
+
+ void run() async {
+ if (signals.isEmpty)
+ return;
+
+ var request = SubscribeRequest();
+ for (var i = 0; i < signals.length; i++) {
+ var entry = SubscribeEntry();
+ entry.path = signals[i];
+ entry.fields.add(Field.FIELD_PATH);
+ entry.fields.add(Field.FIELD_VALUE);
+ request.entries.add(entry);
+ }
+
+ try {
+ Map<String, String> metadata = {};
+ if (config.authorization.isNotEmpty) {
+ metadata = {'authorization': "Bearer ${config.authorization}" };
+ }
+ var responseStream = stub.subscribe(request, options: CallOptions(metadata: metadata));
+ await for (var response in responseStream) {
+ for (var update in response.updates) {
+ if (!(update.hasEntry() && update.entry.hasPath()))
+ continue;
+ handleSignalUpdates(update);
+ }
+ }
+ } catch (e) {
+ print(e);
+ }
+ }
+
+ 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<String, String> metadata = {};
+ if (config.authorization.isNotEmpty) {
+ metadata = {'authorization': "Bearer ${config.authorization}" };
+ }
+ await stub.set(request, options: CallOptions(metadata: metadata));
+ }
+
+}
diff --git a/lib/vehicle-signals/vehicle_server_path.dart b/lib/vehicle-signals/vss_path.dart
index 822e304..822e304 100644
--- a/lib/vehicle-signals/vehicle_server_path.dart
+++ b/lib/vehicle-signals/vss_path.dart
diff --git a/lib/vehicle-signals/vss_provider.dart b/lib/vehicle-signals/vss_provider.dart
new file mode 100644
index 0000000..c3724ca
--- /dev/null
+++ b/lib/vehicle-signals/vss_provider.dart
@@ -0,0 +1,147 @@
+// SPDX-License-Identifier: Apache-2.0
+import 'dart:io';
+import 'package:meta/meta.dart';
+import 'package:flutter/foundation.dart';
+import 'package:flutter_riverpod/flutter_riverpod.dart';
+import 'package:grpc/grpc.dart';
+import 'package:dashboard_app/generated/kuksa/val/v1/val.pbgrpc.dart';
+import 'package:dashboard_app/generated/kuksa/val/v1/types.pb.dart';
+import 'package:dashboard_app/config.dart';
+import 'package:dashboard_app/vehicle-signals/vss_client.dart';
+import 'package:dashboard_app/vehicle-signals/vss_path.dart';
+import 'package:dashboard_app/vehicle-signals/vss_signal_providers.dart';
+
+class DashboardVssClient extends VssClient {
+ @override
+ final List<String> signals = [
+ VSSPath.vehicleSpeed,
+ VSSPath.vehicleEngineSpeed,
+ VSSPath.vehicleFuelLevel,
+ VSSPath.vehicleFrontLeftTire,
+ VSSPath.vehicleFrontRightTire,
+ VSSPath.vehicleRearLeftTire,
+ VSSPath.vehicleRearRightTire,
+ VSSPath.vehicleIsChildLockActiveLeft,
+ VSSPath.vehicleIsChildLockActiveRight,
+ VSSPath.vehicleFuelRate,
+ VSSPath.vehicleInsideTemperature,
+ VSSPath.vehicleOutsideTemperature
+ ];
+
+ DashboardVssClient({required super.config, required super.channel, required super.stub, required super.ref});
+
+ @override
+ void handleSignalUpdates(EntryUpdate update) {
+ switch (update.entry.path) {
+ case VSSPath.vehicleSpeed:
+ if (update.entry.value.hasFloat()) {
+ ref
+ .read(vehicleSignalSpeedProvider.notifier)
+ .update(speed: update.entry.value.float);
+ }
+ break;
+ case VSSPath.vehicleEngineSpeed:
+ if (update.entry.value.hasFloat()) {
+ ref
+ .read(vehicleSignalEngineSpeedProvider.notifier)
+ .update(speed: update.entry.value.float);
+ }
+ break;
+ case VSSPath.vehicleFuelLevel:
+ if (update.entry.value.hasUint32()) {
+ ref
+ .read(vehicleSignalFuelLevelProvider.notifier)
+ .update(level: update.entry.value.uint32);
+ }
+ break;
+ case VSSPath.vehicleFuelRate:
+ if (update.entry.value.hasFloat()) {
+ ref
+ .read(vehicleSignalFuelRateProvider.notifier)
+ .update(rate: update.entry.value.float);
+ }
+ break;
+ case VSSPath.vehicleFrontLeftTire:
+ if (update.entry.value.hasUint32()) {
+ ref
+ .read(vehicleSignalFrontLeftTirePressureProvider.notifier)
+ .update(pressure: update.entry.value.uint32);
+ }
+ break;
+ case VSSPath.vehicleFrontRightTire:
+ if (update.entry.value.hasUint32()) {
+ ref
+ .read(vehicleSignalFrontRightTirePressureProvider.notifier)
+ .update(pressure: update.entry.value.uint32);
+ }
+ break;
+ case VSSPath.vehicleRearLeftTire:
+ if (update.entry.value.hasUint32()) {
+ ref
+ .read(vehicleSignalRearLeftTirePressureProvider.notifier)
+ .update(pressure: update.entry.value.uint32);
+ }
+ break;
+ case VSSPath.vehicleRearRightTire:
+ if (update.entry.value.hasUint32()) {
+ ref
+ .read(vehicleSignalRearRightTirePressureProvider.notifier)
+ .update(pressure: update.entry.value.uint32);
+ }
+ break;
+ case VSSPath.vehicleIsChildLockActiveLeft:
+ if (update.entry.value.hasBool_12()) {
+ ref
+ .read(vehicleSignalLeftChildLockActiveProvider.notifier)
+ .update(engaged: update.entry.value.bool_12);
+ }
+ break;
+ case VSSPath.vehicleIsChildLockActiveRight:
+ if (update.entry.value.hasBool_12()) {
+ ref
+ .read(vehicleSignalRightChildLockActiveProvider.notifier)
+ .update(engaged: update.entry.value.bool_12);
+ }
+ break;
+ case VSSPath.vehicleInsideTemperature:
+ if (update.entry.value.hasFloat()) {
+ ref
+ .read(vehicleSignalInsideTempProvider.notifier)
+ .update(temp: update.entry.value.float);
+ }
+ break;
+ case VSSPath.vehicleOutsideTemperature:
+ if (update.entry.value.hasFloat()) {
+ ref
+ .read(vehicleSignalOutsideTempProvider.notifier)
+ .update(temp: update.entry.value.float);
+ }
+ break;
+ default:
+ print("ERROR: Unexpected path ${update.entry.path}");
+ break;
+ }
+ }
+}
+
+final vssClientProvider = Provider((ref) {
+ var config = ref.read(kuksaConfigProvider);
+ debugPrint("Using ${config.hostname}:${config.port}");
+ ChannelCredentials creds;
+ if (config.use_tls && config.ca_certificate.isNotEmpty) {
+ print("Using TLS");
+ if (config.tls_server_name.isNotEmpty)
+ creds = ChannelCredentials.secure(certificates: config.ca_certificate, authority: config.tls_server_name);
+ else
+ creds = ChannelCredentials.secure(certificates: config.ca_certificate);
+ } else {
+ creds = ChannelCredentials.insecure();
+ }
+ final channel = ClientChannel(config.hostname,
+ port: config.port,
+ options: ChannelOptions(credentials: creds));
+
+ final stub = VALClient(channel);
+
+ return DashboardVssClient(config: config, channel: channel, stub: stub, ref: ref);
+});
diff --git a/lib/vehicle-signals/vss_providers.dart b/lib/vehicle-signals/vss_signal_providers.dart
index 6900bdc..7c48dc3 100644
--- a/lib/vehicle-signals/vss_providers.dart
+++ b/lib/vehicle-signals/vss_signal_providers.dart
@@ -1,6 +1,4 @@
// SPDX-License-Identifier: Apache-2.0
-//import 'dart:ffi';
-//import 'dart:io';
import 'package:meta/meta.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
@@ -68,9 +66,9 @@ final vehicleSignalEngineSpeedProvider = StateNotifierProvider<
class VehicleSignalFuelLevel {
const VehicleSignalFuelLevel({required this.level});
- final double level;
+ final int level;
- VehicleSignalFuelLevel copyWith({double? level}) {
+ VehicleSignalFuelLevel copyWith({int? level}) {
return VehicleSignalFuelLevel(level: level ?? this.level);
}
}
@@ -82,7 +80,7 @@ class VehicleSignalFuelLevelNotifier
static final VehicleSignalFuelLevel _initialValue =
VehicleSignalFuelLevel(level: 90);
- void update({double? level}) {
+ void update({int? level}) {
state = state.copyWith(level: level);
}
}
@@ -128,9 +126,9 @@ final vehicleSignalFuelRateProvider =
class VehicleSignalFrontLeftTirePressure {
const VehicleSignalFrontLeftTirePressure({required this.pressure});
- final double pressure;
+ final int pressure;
- VehicleSignalFrontLeftTirePressure copyWith({double? pressure}) {
+ VehicleSignalFrontLeftTirePressure copyWith({int? pressure}) {
return VehicleSignalFrontLeftTirePressure(
pressure: pressure ?? this.pressure);
}
@@ -143,7 +141,7 @@ class VehicleSignalFrontLeftTirePressureNotifier
static final VehicleSignalFrontLeftTirePressure _initialValue =
VehicleSignalFrontLeftTirePressure(pressure: 32);
- void update({double? pressure}) {
+ void update({int? pressure}) {
state = state.copyWith(pressure: pressure);
}
}
@@ -160,9 +158,9 @@ final vehicleSignalFrontLeftTirePressureProvider = StateNotifierProvider<
class VehicleSignalFrontRightTirePressure {
const VehicleSignalFrontRightTirePressure({required this.pressure});
- final double pressure;
+ final int pressure;
- VehicleSignalFrontRightTirePressure copyWith({double? pressure}) {
+ VehicleSignalFrontRightTirePressure copyWith({int? pressure}) {
return VehicleSignalFrontRightTirePressure(
pressure: pressure ?? this.pressure);
}
@@ -175,7 +173,7 @@ class VehicleSignalFrontRightTirePressureNotifier
static final VehicleSignalFrontRightTirePressure _initialValue =
VehicleSignalFrontRightTirePressure(pressure: 32);
- void update({double? pressure}) {
+ void update({int? pressure}) {
state = state.copyWith(pressure: pressure);
}
}
@@ -192,9 +190,9 @@ final vehicleSignalFrontRightTirePressureProvider = StateNotifierProvider<
class VehicleSignalRearLeftTirePressure {
const VehicleSignalRearLeftTirePressure({required this.pressure});
- final double pressure;
+ final int pressure;
- VehicleSignalRearLeftTirePressure copyWith({double? pressure}) {
+ VehicleSignalRearLeftTirePressure copyWith({int? pressure}) {
return VehicleSignalRearLeftTirePressure(
pressure: pressure ?? this.pressure);
}
@@ -207,7 +205,7 @@ class VehicleSignalRearLeftTirePressureNotifier
static final VehicleSignalRearLeftTirePressure _initialValue =
VehicleSignalRearLeftTirePressure(pressure: 33);
- void update({double? pressure}) {
+ void update({int? pressure}) {
state = state.copyWith(pressure: pressure);
}
}
@@ -224,9 +222,9 @@ final vehicleSignalRearLeftTirePressureProvider = StateNotifierProvider<
class VehicleSignalRearRightTirePressure {
const VehicleSignalRearRightTirePressure({required this.pressure});
- final double pressure;
+ final int pressure;
- VehicleSignalRearRightTirePressure copyWith({double? pressure}) {
+ VehicleSignalRearRightTirePressure copyWith({int? pressure}) {
return VehicleSignalRearRightTirePressure(
pressure: pressure ?? this.pressure);
}
@@ -239,7 +237,7 @@ class VehicleSignalRearRightTirePressureNotifier
static final VehicleSignalRearRightTirePressure _initialValue =
VehicleSignalRearRightTirePressure(pressure: 34);
- void update({double? pressure}) {
+ void update({int? pressure}) {
state = state.copyWith(pressure: pressure);
}
}