// // demo of flutter_blue_plus plugin // // micropython code /* from machine import UART, Pin import time u=UART(0,baudrate=9600,tx=Pin(0),rx=Pin(1)) buf=bytearray(2) while 1: time.sleep_ms(50) buf=u.read(2) if buf is not None: print(buf) time.sleep_ms(50) */ import 'package:flutter/material.dart'; import 'dart:async'; import 'package:flutter_blue_plus/flutter_blue_plus.dart'; void main() {runApp(MyApp());} class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home: BleScanner());}} class BleScanner extends StatefulWidget { @override _BleScannerState createState() => _BleScannerState();} class _BleScannerState extends State { List devices=[]; List results=[]; late StreamSubscription> scanResult; late BluetoothService bs; late BluetoothCharacteristic ch; String? message='finding ble device'; Future connectDevice(BluetoothDevice d) async { setState((){message='scanning...';}); await d.connect(); List services = await d.discoverServices(); services.forEach((s){ if (s.serviceUuid.toString() == "ffe0") bs = s;}); for(BluetoothCharacteristic c in bs.characteristics) { if (c.characteristicUuid.toString() == "ffe1") ch = c;} setState((){message='ble ready';});} void send_data() async { await ch.write([0x43,0x44]);} @override void initState() { super.initState(); scanResult=FlutterBluePlus.scanResults.listen((r){ results = r; for(int i=0; i