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 24083d9..3511a01 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 @@ -32,10 +32,13 @@ private val gpioState = AtomicInteger(0) fun openSerialPort(commandArray: ArrayList, listener: OnSerialPortListener) { - //调高串口电位 - gpioManager.setGpioHigh("18") - gpioState.set(1) - Log.d(kTag, "openSerialPort: 调高串口电位") + if (gpioState.get() != 1) { + gpioManager.setGpioHigh("18") + gpioState.set(1) + Log.d(kTag, "openSerialPort: 调高串口电位") + } else { + Log.d(kTag, "openSerialPort: 已经是高电位,直接读数据") + } try { outStream = serialPorts.first().outputStream @@ -81,15 +84,14 @@ } fun closeSerialPort() { + if (gpioState.get() == 0) { + Log.d(kTag, "closeSerialPort: 已经是低电位,直接返回") + return + } // 降低串口电位 gpioManager.setGpioLow("18") gpioState.set(0) Log.d(kTag, "closeSerialPort: 降低串口电位") - - executor.shutdownNow() - outStream?.close() - inStreamFirst?.close() - inStreamLast?.close() }