From febbab97daeb01541fde189da277bfa41a8b3c7e 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, 20 Dec 2023 11:54:54 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=93=9D=E7=89=99?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=95=B0=E6=8D=AE=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- star_lock/lib/blue/blue_manage.dart | 18 +++++++++--------- .../monitoring/lockMonitoring_page.dart | 2 +- .../addLock/nearbyLock/nearbyLock_logic.dart | 1 + 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/star_lock/lib/blue/blue_manage.dart b/star_lock/lib/blue/blue_manage.dart index 43923d2a..416c3bc7 100644 --- a/star_lock/lib/blue/blue_manage.dart +++ b/star_lock/lib/blue/blue_manage.dart @@ -26,7 +26,6 @@ class BlueManage{ Uuid characteristicIdWrite = Uuid.parse("fff2");// 用来写入的特征id String connectDeviceMacAddress = ""; String connectDeviceName = ""; - // final int _limitLen = 20; // 监听发送事件 @@ -302,23 +301,23 @@ class BlueManage{ // 听上报来的数据,参数来自前面扫描到的结果 var allData = []; + int? dataLen; _subScribeToCharacteristic(QualifiedCharacteristic characteristic) { _flutterReactiveBle!.subscribeToCharacteristic(characteristic).listen((data) { // code to handle incoming data print("subscribeToCharacteristic: deviceId = ${characteristic.deviceId} characteristicId =${characteristic.characteristicId}---上报来的数据data = $data"); - var dataLen = 0;// 高16位用来指示后面数据块内容的长度 - if((data[0] == 0xEF)&&(data[1] == 0x01)&&(data[2] == 0xEE)&&(data[3] == 0x02)){ // 当包有头时 // 判断是否需要分包 - dataLen = data[8] * 256 + data[9]; - // print("dataLen1111:$dataLen getDataLength:${data.length}"); - if(dataLen + 12 > data.length){ + dataLen = data[8] * 256 + data[9]; // 高16位用来指示后面数据块内容的长度 + print("dataLen1111:$dataLen getDataLength:${data.length}"); + if(dataLen! + 12 > data.length){ // 当前包的长度小于实际的包时 分包添加 不解析 allData.addAll(data); }else{ // 当前包的长度小于实际的包时 不分包 解析 allData.addAll(data); + print("dataLen2222:$dataLen getDataLength:${data.length}"); CommandReciverManager.appDataReceive(allData); // 发送完解析初始化数组 allData = []; @@ -327,8 +326,9 @@ class BlueManage{ // 当包没有头时 是分包的包 直接添加 allData.addAll(data); // var len = allData[8] * 256 + allData[9]; - // print("dataLen222:$dataLen"); - if(dataLen <= (allData.length - 14)){ + print("dataLen3333:$dataLen"); + if((dataLen! + 14) <= allData.length){ + print("44444数据被解析了"); // 当长度小于等于当前包的数据时 直接解析数据 CommandReciverManager.appDataReceive(allData); // 发送完解析初始化数组 @@ -346,7 +346,7 @@ class BlueManage{ QualifiedCharacteristic characteristic = QualifiedCharacteristic(characteristicId: characteristicIdWrite, serviceId: serviceId, deviceId: connectDeviceMacAddress); print('Write with characteristicId:${characteristic.characteristicId} serviceId:${characteristic.serviceId} deviceId:${characteristic.deviceId} value : $value \nhexStr:${radixHex16String(value)}'); int mtuLength = await _flutterReactiveBle!.requestMtu(deviceId: characteristic.deviceId, mtu: 250); - print("mtuLength:$mtuLength"); + // print("mtuLength:$mtuLength"); try { List valueList = value; List subData = splitList(valueList, mtuLength); diff --git a/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_page.dart b/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_page.dart index 2a554264..4bb5d31c 100644 --- a/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_page.dart +++ b/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_page.dart @@ -48,7 +48,7 @@ class _LockMonitoringPageState extends State { child: Container( decoration: BoxDecoration( color: Colors.white, - borderRadius: BorderRadius.circular(30.h)), + borderRadius: BorderRadius.circular(25.h)), padding: EdgeInsets.all(10.w), child: Image( width: 40.w, diff --git a/star_lock/lib/mine/addLock/nearbyLock/nearbyLock_logic.dart b/star_lock/lib/mine/addLock/nearbyLock/nearbyLock_logic.dart index 7fe6f5e2..55df7dec 100644 --- a/star_lock/lib/mine/addLock/nearbyLock/nearbyLock_logic.dart +++ b/star_lock/lib/mine/addLock/nearbyLock/nearbyLock_logic.dart @@ -35,6 +35,7 @@ class NearbyLockLogic extends BaseGetXController{ // IoSenderManage.getPublicKey(lockId: deviceName); // } // }, isShowLoading: true); + BlueManage().disconnect(""); BlueManage().connect(lockId, deviceName, isFrist: true, isShowLoading: true); } From 597ff218a964150394460f3d2a2839d549cd8da6 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, 20 Dec 2023 13:43:41 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- star_lock/lib/talk/udp/udp_help.dart | 5 +++-- star_lock/lib/talk/udp/udp_reciverData.dart | 2 +- star_lock/lib/tools/storage.dart | 18 ++++++++++++++---- 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/star_lock/lib/talk/udp/udp_help.dart b/star_lock/lib/talk/udp/udp_help.dart index e3ae0ab1..c6bea328 100644 --- a/star_lock/lib/talk/udp/udp_help.dart +++ b/star_lock/lib/talk/udp/udp_help.dart @@ -6,6 +6,7 @@ import 'dart:io'; import 'package:get/get.dart'; import '../../network/api_repository.dart'; +import '../../tools/storage.dart'; import 'udp_manage.dart'; import 'udp_senderManage.dart'; @@ -38,9 +39,9 @@ class UdpHelp{ } } - Timer timer = Timer.periodic(1.seconds, (timer) { + Timer timer = Timer.periodic(1.seconds, (timer) async { UDPSenderManage.sendHeart( - userName: "15080825640", + userName: await Storage.getMobile(), ipList: serversList, tokenStr: "b989fa15f75c2ac02718b7c9bb64f80e", ); diff --git a/star_lock/lib/talk/udp/udp_reciverData.dart b/star_lock/lib/talk/udp/udp_reciverData.dart index ab7b9fcd..129cbb48 100644 --- a/star_lock/lib/talk/udp/udp_reciverData.dart +++ b/star_lock/lib/talk/udp/udp_reciverData.dart @@ -14,7 +14,7 @@ class CommandUDPReciverManager { if (dataSize < 4) { return; } - print("appDataReceiveData:$data"); + print("appDataReceiveUDPData:$data"); Uint8List data1 = Uint8List.fromList(data); if (data1.length == 1) { diff --git a/star_lock/lib/tools/storage.dart b/star_lock/lib/tools/storage.dart index 8e98e17e..7a1b0d38 100644 --- a/star_lock/lib/tools/storage.dart +++ b/star_lock/lib/tools/storage.dart @@ -136,13 +136,23 @@ class Storage { } static Future getUid() async { - String? userId = ''; + String? uid = ''; final data = await Storage.getString('userLoginData'); if (data != null && data.isNotEmpty) { - userId = LoginData.fromJson(jsonDecode(data)).uid.toString(); + uid = LoginData.fromJson(jsonDecode(data)).uid.toString(); } - print("pubUserId:$userId"); - return userId; + print("pubUid:$uid"); + return uid; + } + + static Future getMobile() async { + String? mobile = ''; + final data = await Storage.getString('userLoginData'); + if (data != null && data.isNotEmpty) { + mobile = LoginData.fromJson(jsonDecode(data)).mobile.toString(); + } + print("pubUserId:$mobile"); + return mobile; } static Future getLoginData() async {