From 59b972f864e04997eb1df95ec351f28824a05f88 Mon Sep 17 00:00:00 2001 From: liyi Date: Tue, 9 Sep 2025 15:43:10 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=9A=82=E7=BC=93=EF=BC=8C=E6=94=B9?= =?UTF-8?q?=E4=B8=BAsdk=E6=8E=A5=E5=85=A5=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/ble/ble_service.dart | 64 +++++++++---------- .../command/request/ble_cmd_add_admin.dart | 6 +- 2 files changed, 35 insertions(+), 35 deletions(-) diff --git a/lib/ble/ble_service.dart b/lib/ble/ble_service.dart index 2826023..3cb6f12 100644 --- a/lib/ble/ble_service.dart +++ b/lib/ble/ble_service.dart @@ -650,38 +650,38 @@ class BleService { // 9. 检查是否需要重发(通用重发机制) // 只对实现了RetryableBleCommand接口的命令进行重发检查 - if (retryCount < maxRetries && command is RetryableBleCommand) { - // 明确转换类型以避免静态分析错误 - final retryableCommand = command as RetryableBleCommand; - if (retryableCommand.shouldRetry(response)) { - AppLogger.info('🔄 命令${command.runtimeType}需要重发,准备创建重发命令 (重试次数: ${retryCount + 1}/${maxRetries})'); - - try { - // 创建重发命令 - BaseBleCommand retryCommand = retryableCommand.createRetryCommand(response); - - // 重新发送命令,传递现有的命令键以确保响应正确处理 - AppLogger.info('🔄 使用重发机制重新发送命令'); - return await sendCommand( - command: retryCommand, - targetDeviceId: targetDeviceId, - targetDeviceName: targetDeviceName, - timeout: timeout, - autoConnectIfNeeded: true, - // 重发时也需要自动连接 - maxRetries: maxRetries, - retryCount: retryCount + 1, - // 增加重试次数 - existingCommandKey: commandKey, // 传递现有的命令键 - ); - } catch (retryError, retryStackTrace) { - AppLogger.error('❌ 创建或发送重发命令失败', error: retryError, stackTrace: retryStackTrace); - // 如果创建重发命令失败,返回原始响应 - AppLogger.highlight('✨✨✨ ✅ 命令发送完成,收到应答: $response ✨✨✨'); - return response; - } - } - } + // if (retryCount < maxRetries && command is RetryableBleCommand) { + // // 明确转换类型以避免静态分析错误 + // final retryableCommand = command as RetryableBleCommand; + // if (retryableCommand.shouldRetry(response)) { + // AppLogger.info('🔄 命令${command.runtimeType}需要重发,准备创建重发命令 (重试次数: ${retryCount + 1}/${maxRetries})'); + // + // try { + // // 创建重发命令 + // BaseBleCommand retryCommand = retryableCommand.createRetryCommand(response); + // + // // 重新发送命令,传递现有的命令键以确保响应正确处理 + // AppLogger.info('🔄 使用重发机制重新发送命令'); + // return await sendCommand( + // command: retryCommand, + // targetDeviceId: targetDeviceId, + // targetDeviceName: targetDeviceName, + // timeout: timeout, + // autoConnectIfNeeded: true, + // // 重发时也需要自动连接 + // maxRetries: maxRetries, + // retryCount: retryCount + 1, + // // 增加重试次数 + // existingCommandKey: commandKey, // 传递现有的命令键 + // ); + // } catch (retryError, retryStackTrace) { + // AppLogger.error('❌ 创建或发送重发命令失败', error: retryError, stackTrace: retryStackTrace); + // // 如果创建重发命令失败,返回原始响应 + // AppLogger.highlight('✨✨✨ ✅ 命令发送完成,收到应答: $response ✨✨✨'); + // return response; + // } + // } + // } AppLogger.highlight('✨✨✨ ✅ 命令发送成功,收到应答: $response ✨✨✨'); return response; diff --git a/lib/ble/command/request/ble_cmd_add_admin.dart b/lib/ble/command/request/ble_cmd_add_admin.dart index fa088d1..6a5cb18 100644 --- a/lib/ble/command/request/ble_cmd_add_admin.dart +++ b/lib/ble/command/request/ble_cmd_add_admin.dart @@ -3,14 +3,13 @@ import 'dart:convert'; import 'package:crypto/crypto.dart'; import 'package:starwork_flutter/base/app_logger.dart'; import 'package:starwork_flutter/ble/command/base/base_ble_command.dart'; -import 'package:starwork_flutter/ble/command/base/retryable_ble_command.dart'; import 'package:starwork_flutter/ble/command/response/ble_cmd_get_private_key_parser.dart'; import 'package:starwork_flutter/ble/command/response/model/ble_add_admin_response.dart'; import 'package:starwork_flutter/ble/constant/lock_ble_constant.dart'; import 'package:starwork_flutter/common/sm4_encipher/sm4.dart'; /// ✨✨✨ 增加超级管理员命令类 - 继承BaseBleCommand ✨✨✨ -class BleCmdAddAdmin extends BaseBleCommand implements RetryableBleCommand { +class BleCmdAddAdmin extends BaseBleCommand { final String lockId; final String authUserId; final String keyId; @@ -218,7 +217,8 @@ class BleCmdAddAdmin extends BaseBleCommand implements Retr endMin: this.endMin, role: this.role, password: this.password, - token: token, // 使用从响应中获取的有效token + token: token, + // 使用从响应中获取的有效token publicKey: this.publicKey, privateKey: this.privateKey, );