mcumgr 0.0.3 copy "mcumgr: ^0.0.3" to clipboard
mcumgr: ^0.0.3 copied to clipboard

Dart client for the mcumgr embedded device management protocol.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:flutter_reactive_ble/flutter_reactive_ble.dart';
import 'package:mcumgr_example/scanner.dart';

import 'device.dart';

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  final flutterReactiveBle = FlutterReactiveBle();
  final scanner = Scanner(
    flutterReactiveBle,
    // withServices: [Uuid.parse("8d53dc1d-1db7-4cd3-868b-8a527460aa84")],
  );
  runApp(MyApp(
    flutterReactiveBle: flutterReactiveBle,
    scanner: scanner,
  ));
}

class MyApp extends StatelessWidget {
  final FlutterReactiveBle flutterReactiveBle;
  final Scanner scanner;

  const MyApp({
    Key? key,
    required this.flutterReactiveBle,
    required this.scanner,
  }) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'mcumgr',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(
        flutterReactiveBle: flutterReactiveBle,
        scanner: scanner,
      ),
    );
  }
}

class MyHomePage extends StatelessWidget {
  const MyHomePage({
    Key? key,
    required this.flutterReactiveBle,
    required this.scanner,
  }) : super(key: key);

  final FlutterReactiveBle flutterReactiveBle;
  final Scanner scanner;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('mcumgr'),
      ),
      body: Center(
        child: StreamBuilder<ScannerState>(
          stream: scanner.stream,
          initialData: ScannerState.empty(),
          builder: (context, snapshot) {
            if (snapshot.hasError) {
              return Text(snapshot.error.toString());
            }
            final data = snapshot.data!;
            return ListView.builder(
              itemCount: data.devices.length,
              itemBuilder: (context, index) {
                final device = data.devices[index];
                return ListTile(
                  title: Text(device.name),
                  subtitle: Text(device.id),
                  trailing: Text(device.rssi.toString()),
                  onTap: () {
                    Navigator.push(context, MaterialPageRoute(
                      builder: (context) {
                        return DeviceScreen(
                          ble: flutterReactiveBle,
                          device: device,
                        );
                      },
                    ));
                  },
                );
              },
            );
          },
        ),
      ),
    );
  }
}
8
likes
130
pub points
64%
popularity

Publisher

verified publisherjkdhn.me

Dart client for the mcumgr embedded device management protocol.

Repository (GitHub)
View/report issues

Documentation

API reference

License

BSD-3-Clause (LICENSE)

Dependencies

cbor

More

Packages that depend on mcumgr