From 721ff610a6ef85730264f41f4fa9b958fbb018ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AD=8F=E5=B0=91=E9=98=B3?= <786612630@qq.com> Date: Wed, 9 Aug 2023 10:07:27 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=88=E5=B9=B6=E8=A7=A3=E6=9E=90=E8=93=9D?= =?UTF-8?q?=E7=89=99=E7=9A=84=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- star_lock/lib/blue/blue_manage.dart | 100 ++++++---------------------- 1 file changed, 22 insertions(+), 78 deletions(-) diff --git a/star_lock/lib/blue/blue_manage.dart b/star_lock/lib/blue/blue_manage.dart index 20ae7646..999b214a 100644 --- a/star_lock/lib/blue/blue_manage.dart +++ b/star_lock/lib/blue/blue_manage.dart @@ -6,6 +6,7 @@ import 'package:star_lock/blue/sender_manage.dart'; import '../app_settings/app_settings.dart'; import 'io_tool/io_tool.dart'; import 'io_tool/manager_event_bus.dart'; +import 'reciver_data.dart'; typedef ScanResultCallBack = void Function(List devices); @@ -139,7 +140,7 @@ class BlueManage{ _flutterReactiveBle!.subscribeToCharacteristic(characteristic).listen((data) { // code to handle incoming data print("subscribeToCharacteristic: deviceId = ${characteristic.deviceId} characteristicId =${characteristic.characteristicId}---上报来的数据data = $data"); - + CommandReciverManager.appDataReceive(data, ""); }, onError: (dynamic error) { print("subscribeToCharacteristic error:$error"); }); @@ -148,94 +149,37 @@ class BlueManage{ // 写入 Future writeCharacteristicWithResponse(QualifiedCharacteristic characteristic, List value) async { - print('Write with characteristicId:${characteristic.characteristicId} serviceId:${characteristic.serviceId} deviceId:${characteristic.deviceId} value : $value'); + print( + 'Write with characteristicId:${characteristic.characteristicId} serviceId:${characteristic.serviceId} deviceId:${characteristic.deviceId} value : $value'); + try { - // await _flutterReactiveBle!.writeCharacteristicWithResponse(characteristic, value: value).onError((error, stackTrace){ - // print("writeCharacteristicWithResponse:$characteristic $value, error:$error stackTrace:$stackTrace}"); - // }); + List valueList = value; - List oneList = []; - List twoList = []; - List threeList = []; - int ctn = getPackageCount(value, averageLen: _limitLen); - for (int i = 1; i <= ctn; i++){ - List subData = getSubData(index: i, average: _limitLen, data: value); - print("i:$i ctn:$ctn subData:$subData"); - print('Write with characteristicId:${characteristic.characteristicId} serviceId:${characteristic.serviceId} deviceId:${characteristic.deviceId} value : $subData'); + List subData = splitList(valueList, _limitLen); + print('得到的分割数据:$subData'); - switch (i) { - case 1: - { - oneList.addAll(subData); - } - break; - case 2: - { - twoList.addAll(subData); - } - break; - case 3: - { - threeList.addAll(subData); - } - break; - default: - } - - // await Future.delayed(Duration( - // milliseconds: i == ctn ? 0 : _sleepTimes, - // ),(){ - // // i++; - // }); + for (int i = 0; i < subData.length; i++) { + await _flutterReactiveBle! + .writeCharacteristicWithResponse(characteristic, value: subData[i]) + .then((value) async { + await Future.delayed(const Duration(milliseconds: 1)) + .then((value) async { + print('成功了么'); + }); + }); } - - print("oneList:$oneList"); - _flutterReactiveBle!.writeCharacteristicWithResponse(characteristic, value: oneList).onError((error, stackTrace){ - // print("writeCharacteristicWithResponse:$characteristic $subData, error:$error stackTrace:$stackTrace}"); - }); - - await Future.delayed(const Duration(milliseconds: 100,),(){ - print("twoList:$twoList"); - _flutterReactiveBle!.writeCharacteristicWithResponse(characteristic, value: twoList).onError((error, stackTrace){ - // print("writeCharacteristicWithResponse:$characteristic $subData, error:$error stackTrace:$stackTrace}"); - }); - }); - - await Future.delayed(const Duration(milliseconds: 100,),(){ - print("threeList:$threeList"); - _flutterReactiveBle!.writeCharacteristicWithResponse(characteristic, value: threeList).onError((error, stackTrace){ - // print("writeCharacteristicWithResponse:$characteristic $subData, error:$error stackTrace:$stackTrace}"); - }); - }); - - // _flutterReactiveBle!.writeCharacteristicWithResponse(characteristic, value: subData).onError((error, stackTrace){ - // // print("writeCharacteristicWithResponse:$characteristic $subData, error:$error stackTrace:$stackTrace}"); - // }); - - // while(i <= ctn) { - // print("object$i "); - // List subData = getSubData(index: i, average: _limitLen, data: value); - // print('Write with characteristicId:${characteristic.characteristicId} serviceId:${characteristic.serviceId} deviceId:${characteristic.deviceId} value : $subData'); - // await _flutterReactiveBle!.writeCharacteristicWithResponse(characteristic, value: subData).onError((error, stackTrace){ - // // print("writeCharacteristicWithResponse:$characteristic $subData, error:$error stackTrace:$stackTrace}"); - // }); - // await Future.delayed(Duration( - // milliseconds: i == ctn ? 0 : _sleepTimes, - // ),(){ - // i++; - // }); - // } - // i = 1; - // await readCharacteristic(characteristic); - } on Exception catch (e, s) { - print('Error occurred when writing: $e',); + print( + 'Error occurred when writing: $e', + ); // ignore: avoid_print print(s); rethrow; } } + + // 读取 Future> readCharacteristic(QualifiedCharacteristic characteristic) async { try {