diff --git a/app/src/main/java/com/casic/common/detector/gd/service/SerialPortService.kt b/app/src/main/java/com/casic/common/detector/gd/service/SerialPortService.kt index c533b20..8a6af84 100644 --- a/app/src/main/java/com/casic/common/detector/gd/service/SerialPortService.kt +++ b/app/src/main/java/com/casic/common/detector/gd/service/SerialPortService.kt @@ -107,14 +107,20 @@ } } - fun writeCommand(commandArray: ArrayList) { - // 使用线程池发送数据 - commandArray.forEach { command -> + fun writeCommand(vararg command: Char) { + if (command.size == 1) { sendExecutor.submit { - outStream.write(command.code) + outStream.write(command.first().code) outStream.flush() } - Thread.sleep(1000) + } else { + command.forEach { + sendExecutor.submit { + outStream.write(it.code) + outStream.flush() + } + Thread.sleep(1000) + } } } diff --git a/app/src/main/java/com/casic/common/detector/gd/service/SerialPortService.kt b/app/src/main/java/com/casic/common/detector/gd/service/SerialPortService.kt index c533b20..8a6af84 100644 --- a/app/src/main/java/com/casic/common/detector/gd/service/SerialPortService.kt +++ b/app/src/main/java/com/casic/common/detector/gd/service/SerialPortService.kt @@ -107,14 +107,20 @@ } } - fun writeCommand(commandArray: ArrayList) { - // 使用线程池发送数据 - commandArray.forEach { command -> + fun writeCommand(vararg command: Char) { + if (command.size == 1) { sendExecutor.submit { - outStream.write(command.code) + outStream.write(command.first().code) outStream.flush() } - Thread.sleep(1000) + } else { + command.forEach { + sendExecutor.submit { + outStream.write(it.code) + outStream.flush() + } + Thread.sleep(1000) + } } } diff --git a/app/src/main/java/com/casic/common/detector/gd/view/InstallMarkerActivity.kt b/app/src/main/java/com/casic/common/detector/gd/view/InstallMarkerActivity.kt index 2b9ab70..c5f18a6 100644 --- a/app/src/main/java/com/casic/common/detector/gd/view/InstallMarkerActivity.kt +++ b/app/src/main/java/com/casic/common/detector/gd/view/InstallMarkerActivity.kt @@ -259,7 +259,7 @@ countDownTimer.start() binding.readMarkerButton.isEnabled = false RuntimeCache.currentSegment = CurrentSegment.InstallMarker - serialPortService?.writeCommand(arrayListOf('2')) + serialPortService?.writeCommand('2') } } diff --git a/app/src/main/java/com/casic/common/detector/gd/service/SerialPortService.kt b/app/src/main/java/com/casic/common/detector/gd/service/SerialPortService.kt index c533b20..8a6af84 100644 --- a/app/src/main/java/com/casic/common/detector/gd/service/SerialPortService.kt +++ b/app/src/main/java/com/casic/common/detector/gd/service/SerialPortService.kt @@ -107,14 +107,20 @@ } } - fun writeCommand(commandArray: ArrayList) { - // 使用线程池发送数据 - commandArray.forEach { command -> + fun writeCommand(vararg command: Char) { + if (command.size == 1) { sendExecutor.submit { - outStream.write(command.code) + outStream.write(command.first().code) outStream.flush() } - Thread.sleep(1000) + } else { + command.forEach { + sendExecutor.submit { + outStream.write(it.code) + outStream.flush() + } + Thread.sleep(1000) + } } } diff --git a/app/src/main/java/com/casic/common/detector/gd/view/InstallMarkerActivity.kt b/app/src/main/java/com/casic/common/detector/gd/view/InstallMarkerActivity.kt index 2b9ab70..c5f18a6 100644 --- a/app/src/main/java/com/casic/common/detector/gd/view/InstallMarkerActivity.kt +++ b/app/src/main/java/com/casic/common/detector/gd/view/InstallMarkerActivity.kt @@ -259,7 +259,7 @@ countDownTimer.start() binding.readMarkerButton.isEnabled = false RuntimeCache.currentSegment = CurrentSegment.InstallMarker - serialPortService?.writeCommand(arrayListOf('2')) + serialPortService?.writeCommand('2') } } diff --git a/app/src/main/java/com/casic/common/detector/gd/view/MainActivity.kt b/app/src/main/java/com/casic/common/detector/gd/view/MainActivity.kt index 06af88e..7fd6d00 100644 --- a/app/src/main/java/com/casic/common/detector/gd/view/MainActivity.kt +++ b/app/src/main/java/com/casic/common/detector/gd/view/MainActivity.kt @@ -422,7 +422,7 @@ isFreeTask = true RuntimeCache.currentSegment = CurrentSegment.FreeInspection - serialPortService?.writeCommand(arrayListOf('2', '6')) + serialPortService?.writeCommand('2', '6') } } @@ -527,7 +527,7 @@ binding.stopFreeTaskButton.visibility = View.VISIBLE isFreeTask = true RuntimeCache.currentSegment = CurrentSegment.FreeInspection - serialPortService?.writeCommand(arrayListOf('2', '6')) + serialPortService?.writeCommand('2', '6') } override fun onCancelClick() {} diff --git a/app/src/main/java/com/casic/common/detector/gd/service/SerialPortService.kt b/app/src/main/java/com/casic/common/detector/gd/service/SerialPortService.kt index c533b20..8a6af84 100644 --- a/app/src/main/java/com/casic/common/detector/gd/service/SerialPortService.kt +++ b/app/src/main/java/com/casic/common/detector/gd/service/SerialPortService.kt @@ -107,14 +107,20 @@ } } - fun writeCommand(commandArray: ArrayList) { - // 使用线程池发送数据 - commandArray.forEach { command -> + fun writeCommand(vararg command: Char) { + if (command.size == 1) { sendExecutor.submit { - outStream.write(command.code) + outStream.write(command.first().code) outStream.flush() } - Thread.sleep(1000) + } else { + command.forEach { + sendExecutor.submit { + outStream.write(it.code) + outStream.flush() + } + Thread.sleep(1000) + } } } diff --git a/app/src/main/java/com/casic/common/detector/gd/view/InstallMarkerActivity.kt b/app/src/main/java/com/casic/common/detector/gd/view/InstallMarkerActivity.kt index 2b9ab70..c5f18a6 100644 --- a/app/src/main/java/com/casic/common/detector/gd/view/InstallMarkerActivity.kt +++ b/app/src/main/java/com/casic/common/detector/gd/view/InstallMarkerActivity.kt @@ -259,7 +259,7 @@ countDownTimer.start() binding.readMarkerButton.isEnabled = false RuntimeCache.currentSegment = CurrentSegment.InstallMarker - serialPortService?.writeCommand(arrayListOf('2')) + serialPortService?.writeCommand('2') } } diff --git a/app/src/main/java/com/casic/common/detector/gd/view/MainActivity.kt b/app/src/main/java/com/casic/common/detector/gd/view/MainActivity.kt index 06af88e..7fd6d00 100644 --- a/app/src/main/java/com/casic/common/detector/gd/view/MainActivity.kt +++ b/app/src/main/java/com/casic/common/detector/gd/view/MainActivity.kt @@ -422,7 +422,7 @@ isFreeTask = true RuntimeCache.currentSegment = CurrentSegment.FreeInspection - serialPortService?.writeCommand(arrayListOf('2', '6')) + serialPortService?.writeCommand('2', '6') } } @@ -527,7 +527,7 @@ binding.stopFreeTaskButton.visibility = View.VISIBLE isFreeTask = true RuntimeCache.currentSegment = CurrentSegment.FreeInspection - serialPortService?.writeCommand(arrayListOf('2', '6')) + serialPortService?.writeCommand('2', '6') } override fun onCancelClick() {} diff --git a/app/src/main/java/com/casic/common/detector/gd/view/SearchMarkerActivity.kt b/app/src/main/java/com/casic/common/detector/gd/view/SearchMarkerActivity.kt index 54beacd..6c3b2db 100644 --- a/app/src/main/java/com/casic/common/detector/gd/view/SearchMarkerActivity.kt +++ b/app/src/main/java/com/casic/common/detector/gd/view/SearchMarkerActivity.kt @@ -49,7 +49,6 @@ import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.widget.dialog.AlertMessageDialog import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.delay import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import java.util.Timer @@ -86,10 +85,7 @@ try { serialPortService = iBinder.getSerialPortService() Log.d(kTag, "onServiceConnected: 服务已绑定,开始搜索标识器") - lifecycleScope.launch(Dispatchers.Main) { - delay(300) - searchMarker() - } + searchMarker() } catch (e: Exception) { Log.e(kTag, "onServiceConnected: 绑定服务时发生异常", e) } @@ -194,12 +190,8 @@ override fun onFinish() { LoadingDialog.dismiss() -// serialPortService?.closeSerialPort() "标识器深度探测超时,请移动位置重试".show(context) - lifecycleScope.launch(Dispatchers.Main) { - delay(300) - searchMarker() - } + searchMarker() } } @@ -217,24 +209,18 @@ } if (tag == '1') { "此标识器无法读取埋深!".show(this) - lifecycleScope.launch(Dispatchers.Main) { - delay(300) - searchMarker() - } + searchMarker() } else { LoadingDialog.show(this, "正在探测标识器埋深,请稍后...") countDownTimer.start() // 发送读取标识器埋设深度指令 RuntimeCache.currentSegment = CurrentSegment.DetectMarkerDepth - serialPortService?.writeCommand(arrayListOf(tag)) + serialPortService?.writeCommand(tag) } } else { LoadingDialog.dismiss() "标识器未安装,安装成功后才可读取埋深!".show(this) - lifecycleScope.launch(Dispatchers.Main) { - delay(300) - searchMarker() - } + searchMarker() } } @@ -256,7 +242,24 @@ if (msg.what == LocaleConstant.DETECT_MARKER_DEPTH) { val tag = (buffer.first().toInt() and 0xFF).toString(16).uppercase() if (tag == "53") { - showDepthDialog(buffer.toBuryDepth()) + LoadingDialog.dismiss() + countDownTimer.cancel() + try { + AlertMessageDialog.Builder().setContext(context) + .setTitle("温馨提示") + .setMessage("标识器埋深:${buffer.toBuryDepth()}厘米") + .setPositiveButton("知道了") + .setOnDialogButtonClickListener(object : + AlertMessageDialog.OnDialogButtonClickListener { + override fun onConfirmClick() { + searchMarker() + } + }).build().show() + } catch (e: WindowManager.BadTokenException) { + e.printStackTrace() + } catch (e: NumberFormatException) { + e.printStackTrace() + } } } else if (msg.what == LocaleConstant.SEARCH_MARKER) { try { @@ -291,38 +294,12 @@ return true } - private fun showDepthDialog(depth: Int) { - countDownTimer.cancel() - runOnUiThread { - LoadingDialog.dismiss() - try { - AlertMessageDialog.Builder().setContext(context) - .setTitle("温馨提示") - .setMessage("标识器埋深:${depth}厘米") - .setPositiveButton("知道了") - .setOnDialogButtonClickListener(object : - AlertMessageDialog.OnDialogButtonClickListener { - override fun onConfirmClick() { - lifecycleScope.launch(Dispatchers.Main) { - delay(300) - searchMarker() - } - } - }).build().show() - } catch (e: WindowManager.BadTokenException) { - e.printStackTrace() - } catch (e: NumberFormatException) { - e.printStackTrace() - } - } - } - /** * 搜索标识器 * */ private fun searchMarker() { RuntimeCache.currentSegment = CurrentSegment.SearchMarker - serialPortService?.writeCommand(arrayListOf('2', '6')) + serialPortService?.writeCommand('2', '6') } private fun updateSound(signalEnergy: Int) {