|
|
@@ -633,36 +633,36 @@ object BleConnectionManager {
|
|
|
suspend fun tryConnectWithOptionalCharge(mac: String, withOpenCharge: Boolean = true): Boolean =
|
|
|
withContext(Dispatchers.IO) {
|
|
|
// -------- 第一次尝试 --------
|
|
|
- logger.info("蓝牙连接-第一次尝试")
|
|
|
- val firstTry = suspendCancellableCoroutine<Boolean> { cont ->
|
|
|
- // 1. 定义一个 flag,确保只 resume 一次
|
|
|
- var isCalled = false
|
|
|
- registerConnectListener(mac, true) { isDone, _ ->
|
|
|
- if (isCalled) {
|
|
|
- return@registerConnectListener
|
|
|
- }
|
|
|
- isCalled = true
|
|
|
- if (isDone) {
|
|
|
- // 连接成功后,把电关掉(以防万一)
|
|
|
- ModBusController.controlKeyCharge(false, mac) { }
|
|
|
- if (cont.isActive) {
|
|
|
- cont.resume(true)
|
|
|
- }
|
|
|
- } else {
|
|
|
- if (cont.isActive) {
|
|
|
- cont.resume(false)
|
|
|
- }
|
|
|
- }
|
|
|
- cont.cancel()
|
|
|
- }
|
|
|
- }
|
|
|
- logger.info("蓝牙连接-第一次连接:${firstTry}")
|
|
|
- if (firstTry) {
|
|
|
- return@withContext true
|
|
|
- }
|
|
|
- if (!withOpenCharge) {
|
|
|
- return@withContext false
|
|
|
- }
|
|
|
+// logger.info("蓝牙连接-第一次尝试")
|
|
|
+// val firstTry = suspendCancellableCoroutine<Boolean> { cont ->
|
|
|
+// // 1. 定义一个 flag,确保只 resume 一次
|
|
|
+// var isCalled = false
|
|
|
+// registerConnectListener(mac, true) { isDone, _ ->
|
|
|
+// if (isCalled) {
|
|
|
+// return@registerConnectListener
|
|
|
+// }
|
|
|
+// isCalled = true
|
|
|
+// if (isDone) {
|
|
|
+// // 连接成功后,把电关掉(以防万一)
|
|
|
+// ModBusController.controlKeyCharge(false, mac) { }
|
|
|
+// if (cont.isActive) {
|
|
|
+// cont.resume(true)
|
|
|
+// }
|
|
|
+// } else {
|
|
|
+// if (cont.isActive) {
|
|
|
+// cont.resume(false)
|
|
|
+// }
|
|
|
+// }
|
|
|
+// cont.cancel()
|
|
|
+// }
|
|
|
+// }
|
|
|
+// logger.info("蓝牙连接-第一次连接:${firstTry}")
|
|
|
+// if (firstTry) {
|
|
|
+// return@withContext true
|
|
|
+// }
|
|
|
+// if (!withOpenCharge) {
|
|
|
+// return@withContext false
|
|
|
+// }
|
|
|
// -------- 第二次尝试:先开电,再连 --------
|
|
|
// 开电,并等待回调
|
|
|
suspendCoroutine<Unit> { unitCont ->
|
|
|
@@ -688,7 +688,7 @@ object BleConnectionManager {
|
|
|
}
|
|
|
isCalled = true
|
|
|
// 无论成功或失败,都先把电关掉
|
|
|
- ModBusController.controlKeyCharge(false, mac) { }
|
|
|
+// ModBusController.controlKeyCharge(false, mac) { }
|
|
|
if (cont.isActive) {
|
|
|
cont.resume(isDone)
|
|
|
}
|
|
|
@@ -713,39 +713,6 @@ object BleConnectionManager {
|
|
|
}
|
|
|
|
|
|
}, knownDevices = existsMac, stopFirst = true, nameFilter = BleConst.BLE_LOCAL_NAME)
|
|
|
-// BleUtil.instance?.scan(object : CustomBleScanCallback() {
|
|
|
-// override fun onPrompt(promptStr: String?) {
|
|
|
-// // 蓝牙未启动重试
|
|
|
-// logger.info("设备录入-参数:${promptStr}")
|
|
|
-// PopTip.build().tip(R.string.please_reopen_ble)
|
|
|
-// BleManager.getInstance().enableBluetooth()
|
|
|
-// ThreadUtils.runOnMainDelayed(5000) {
|
|
|
-// scanOnlineKeyLockMac(existsMac, callback)
|
|
|
-// }
|
|
|
-// }
|
|
|
-//
|
|
|
-// override fun onScanStarted(success: Boolean) {
|
|
|
-// logger.info("设备录入-onScanStarted:${success}")
|
|
|
-// if (!success) {
|
|
|
-// ThreadUtils.runOnMainDelayed(300) {
|
|
|
-// scanOnlineKeyLockMac(existsMac, callback)
|
|
|
-// }
|
|
|
-// }
|
|
|
-// }
|
|
|
-//
|
|
|
-// override fun onScanning(bleDevice: BleDevice?) {
|
|
|
-// val mac = bleDevice?.mac ?: return
|
|
|
-// logger.info("设备录入-onScanning:$mac")
|
|
|
-// if (mac !in existsMac) {
|
|
|
-// BleManager.getInstance().cancelScan()
|
|
|
-// }
|
|
|
-// }
|
|
|
-//
|
|
|
-// override fun onScanFinished(scanResultList: MutableList<BleDevice>?) {
|
|
|
-// logger.info("设备录入-扫描完成:${scanResultList?.joinToString(",") { it.mac }}")
|
|
|
-// callback(scanResultList?.find { it.mac !in existsMac }?.mac)
|
|
|
-// }
|
|
|
-// })
|
|
|
}
|
|
|
|
|
|
|