diff --git a/lib/modules/agent/controllers/agent_controller.dart b/lib/modules/agent/controllers/agent_controller.dart index ba319a5d0..8d4f67654 100644 --- a/lib/modules/agent/controllers/agent_controller.dart +++ b/lib/modules/agent/controllers/agent_controller.dart @@ -664,6 +664,8 @@ class AgentController extends GetxController { // messages.refresh(); } + Get.snackbar('error'.tr, '${event.data['message']}'); + Logger.e(TAG, '代理服务错误: ${event.data['message']}'); break; diff --git a/lib/modules/home/controllers/home_controller.dart b/lib/modules/home/controllers/home_controller.dart index 902ceb58d..18252c4cd 100644 --- a/lib/modules/home/controllers/home_controller.dart +++ b/lib/modules/home/controllers/home_controller.dart @@ -23,6 +23,11 @@ class HomeController extends GetxController { final _isFullyConnected = false.obs; String? _lastConnectedDeviceName; + // 添加电池信息定时刷新相关变量 + Timer? _batteryRefreshTimer; + static const Duration _batteryRefreshInterval = + Duration(seconds: 2); // 2秒刷新一次 + bool get isFullyConnected => _isFullyConnected.value; RxBool get isFullyConnectedRx => _isFullyConnected; BluetoothDevice? get currentDevice => _bluetoothManager.currentDevice; @@ -58,6 +63,7 @@ class HomeController extends GetxController { void onInit() { super.onInit(); _initWithCachedInfo(); + _startBatteryRefreshTimer(); // 启动电池信息定时刷新 } @override @@ -65,6 +71,7 @@ class HomeController extends GetxController { _deviceInfoWorker?.dispose(); _classicBluetoothWorker?.dispose(); _bleConnectionWorker?.dispose(); + _stopBatteryRefreshTimer(); // 停止定时器 super.onClose(); } @@ -260,4 +267,49 @@ class HomeController extends GetxController { ? deviceInfo.value!.firmwareVersion : 'unknown'.tr; } + + /// 启动电池信息定时刷新 + void _startBatteryRefreshTimer() { + _stopBatteryRefreshTimer(); // 先停止现有定时器 + + _batteryRefreshTimer = Timer.periodic(_batteryRefreshInterval, (timer) { + // 只有在设备完全连接时才刷新电池信息 + if (_isFullyConnected.value) { + _refreshBatteryInfo(); + } + }); + + Logger.d(_tag, '电池信息定时刷新已启动,间隔: ${_batteryRefreshInterval.inSeconds}秒'); + } + + /// 停止电池信息定时刷新 + void _stopBatteryRefreshTimer() { + if (_batteryRefreshTimer != null) { + _batteryRefreshTimer!.cancel(); + _batteryRefreshTimer = null; + Logger.d(_tag, '电池信息定时刷新已停止'); + } + } + + /// 刷新电池信息 + Future _refreshBatteryInfo() async { + try { + if (!_isFullyConnected.value) { + return; + } + + Logger.d(_tag, '开始刷新电池信息...'); + + // 通过BLE管理器获取最新的电池信息 + final success = await _bleManager.fetchBatteryInfo(); + + if (success) { + Logger.d(_tag, '电池信息刷新请求发送成功'); + } else { + Logger.w(_tag, '电池信息刷新请求发送失败'); + } + } catch (e) { + Logger.e(_tag, '刷新电池信息时发生错误: $e'); + } + } }