|
|
@ -103,6 +103,10 @@ class HomeController extends GetxController { |
|
|
|
|
|
|
|
|
Future<void> refreshDeviceConnection() async { |
|
|
Future<void> refreshDeviceConnection() async { |
|
|
await _checkConnectionStatus(); |
|
|
await _checkConnectionStatus(); |
|
|
|
|
|
// 如果设备已连接,立即刷新电池信息 |
|
|
|
|
|
if (_isFullyConnected.value) { |
|
|
|
|
|
await _refreshBatteryInfo(); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
void rescanDevices() { |
|
|
void rescanDevices() { |
|
|
@ -137,6 +141,16 @@ class HomeController extends GetxController { |
|
|
|
|
|
|
|
|
if (!wasConnected && isNowConnected) { |
|
|
if (!wasConnected && isNowConnected) { |
|
|
await _bleManager.fetchDeviceInfo(); |
|
|
await _bleManager.fetchDeviceInfo(); |
|
|
|
|
|
// 连接成功后立即刷新一次电池信息 |
|
|
|
|
|
Future.delayed(const Duration(milliseconds: 500), () { |
|
|
|
|
|
_refreshBatteryInfo(); |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
// 根据连接状态控制定时器 |
|
|
|
|
|
if (isNowConnected) { |
|
|
|
|
|
_startBatteryRefreshTimer(); // 连接时启动定时器 |
|
|
|
|
|
} else { |
|
|
|
|
|
_stopBatteryRefreshTimer(); // 断开时停止定时器 |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@ -146,6 +160,7 @@ class HomeController extends GetxController { |
|
|
if (_isFullyConnected.value) { |
|
|
if (_isFullyConnected.value) { |
|
|
_isFullyConnected.value = false; |
|
|
_isFullyConnected.value = false; |
|
|
_isFullyConnected.refresh(); |
|
|
_isFullyConnected.refresh(); |
|
|
|
|
|
_stopBatteryRefreshTimer(); // 发生错误时停止定时器 |
|
|
update(); |
|
|
update(); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
@ -298,18 +313,18 @@ class HomeController extends GetxController { |
|
|
return; |
|
|
return; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
Logger.d(_tag, '开始刷新电池信息...'); |
|
|
//Logger.d(_tag, '开始刷新电池信息...'); |
|
|
|
|
|
|
|
|
// 通过BLE管理器获取最新的电池信息 |
|
|
// 通过BLE管理器获取最新的电池信息 |
|
|
final success = await _bleManager.fetchBatteryInfo(); |
|
|
final success = await _bleManager.fetchBatteryInfo(); |
|
|
|
|
|
|
|
|
if (success) { |
|
|
if (success) { |
|
|
Logger.d(_tag, '电池信息刷新请求发送成功'); |
|
|
//Logger.d(_tag, '电池信息刷新请求发送成功'); |
|
|
} else { |
|
|
} else { |
|
|
Logger.w(_tag, '电池信息刷新请求发送失败'); |
|
|
//Logger.w(_tag, '电池信息刷新请求发送失败'); |
|
|
} |
|
|
} |
|
|
} catch (e) { |
|
|
} catch (e) { |
|
|
Logger.e(_tag, '刷新电池信息时发生错误: $e'); |
|
|
//Logger.e(_tag, '刷新电池信息时发生错误: $e'); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|