summaryrefslogtreecommitdiff
path: root/lib/model/device
diff options
context:
space:
mode:
authoruvok2025-07-31 12:52:30 +0200
committeruvok2025-07-31 12:52:30 +0200
commit429c04e2702f61832a4f2c123f38bae59a98b31d (patch)
treedc6af8b0ef6014c250028f69aba38d20ffbe5bb6 /lib/model/device
parent5bad9664d3783408636e17b3461e19c34135c6b6 (diff)
Move devices to package
Diffstat (limited to 'lib/model/device')
-rw-r--r--lib/model/device/device.dart6
-rw-r--r--lib/model/device/flutter_blue_plus_device.dart22
-rw-r--r--lib/model/device/mock_device.dart18
3 files changed, 46 insertions, 0 deletions
diff --git a/lib/model/device/device.dart b/lib/model/device/device.dart
new file mode 100644
index 0000000..98445fa
--- /dev/null
+++ b/lib/model/device/device.dart
@@ -0,0 +1,6 @@
+/// Represents a (badge) device to be connected to.
+abstract class Device {
+ String? get name;
+ String? get address;
+ int? get rssi;
+}
diff --git a/lib/model/device/flutter_blue_plus_device.dart b/lib/model/device/flutter_blue_plus_device.dart
new file mode 100644
index 0000000..e56223b
--- /dev/null
+++ b/lib/model/device/flutter_blue_plus_device.dart
@@ -0,0 +1,22 @@
+import 'package:uvok_epaper_badge/model/device/device.dart';
+import 'package:flutter_blue_plus/flutter_blue_plus.dart';
+import 'package:uvok_epaper_badge/utility.dart';
+
+class FlutterBluePlusDevice implements Device {
+ final ScanResult scanResult;
+
+ FlutterBluePlusDevice.fromScan(this.scanResult);
+
+ @override
+ String? get address => scanResult.device.remoteId.str;
+
+ @override
+ String? get name => firstGiven([
+ scanResult.device.advName,
+ scanResult.device.platformName,
+ "<Unknown>",
+ ]);
+
+ @override
+ int? get rssi => scanResult.rssi;
+}
diff --git a/lib/model/device/mock_device.dart b/lib/model/device/mock_device.dart
new file mode 100644
index 0000000..78770e1
--- /dev/null
+++ b/lib/model/device/mock_device.dart
@@ -0,0 +1,18 @@
+import 'package:uvok_epaper_badge/model/device/device.dart';
+
+class MockDevice implements Device {
+ final int _id;
+ final String? _name;
+
+ MockDevice(this._id, this._name);
+
+ @override
+ String? get address =>
+ "AA:BB:CC:DD:EE:${_id.toRadixString(16).padLeft(2, '0')}";
+
+ @override
+ String? get name => _name;
+
+ @override
+ int? get rssi => -60;
+}