38 lines
1.1 KiB
Dart
38 lines
1.1 KiB
Dart
// Uses flutter_blue_plus to drive the ESP-IDF Unified Provisioning GATT protocol.
|
|
// No BLE pairing or password required.
|
|
//
|
|
// Android: minSdkVersion must be ≥ 21 in android/app/build.gradle.
|
|
|
|
class BleScanResult {
|
|
const BleScanResult({
|
|
required this.deviceId,
|
|
required this.name,
|
|
required this.rssi,
|
|
});
|
|
|
|
final String deviceId;
|
|
final String name;
|
|
final int rssi;
|
|
}
|
|
|
|
class BleProvisioner {
|
|
// TODO: implement using flutter_blue_plus.
|
|
// Filter scan by the ESP-IDF provisioning service UUID advertised by your firmware.
|
|
|
|
/// Starts a BLE scan and emits discovered ESP32 provisioning devices.
|
|
Stream<BleScanResult> scan() => throw UnimplementedError();
|
|
|
|
Future<void> stopScan() async => throw UnimplementedError();
|
|
|
|
/// Connects to [deviceId] and sends WiFi credentials via the ESP-IDF
|
|
/// Unified Provisioning GATT profile (protobuf over BLE characteristic).
|
|
Future<void> provision(
|
|
String deviceId, {
|
|
required String ssid,
|
|
required String wifiPassword,
|
|
}) async =>
|
|
throw UnimplementedError();
|
|
|
|
void dispose() {}
|
|
}
|