diff --git a/app/src/main/java/com/casic/detector/common/service/SerialPortService.kt b/app/src/main/java/com/casic/detector/common/service/SerialPortService.kt index 090f604..3173907 100644 --- a/app/src/main/java/com/casic/detector/common/service/SerialPortService.kt +++ b/app/src/main/java/com/casic/detector/common/service/SerialPortService.kt @@ -17,6 +17,7 @@ import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import java.io.IOException +import java.io.OutputStream class SerialPortService : Service(), LifecycleOwner { @@ -95,6 +96,13 @@ } } + fun getOutputStream(): OutputStream { + //调高串口电位 + gpioManager.setGpioHigh("18") + Log.d(kTag, "getOutputStream: 调高串口电位") + return serialPorts.first().outputStream + } + fun closeSerialPort() { //降低串口电位 gpioManager.setGpioLow("18") diff --git a/app/src/main/java/com/casic/detector/common/service/SerialPortService.kt b/app/src/main/java/com/casic/detector/common/service/SerialPortService.kt index 090f604..3173907 100644 --- a/app/src/main/java/com/casic/detector/common/service/SerialPortService.kt +++ b/app/src/main/java/com/casic/detector/common/service/SerialPortService.kt @@ -17,6 +17,7 @@ import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import java.io.IOException +import java.io.OutputStream class SerialPortService : Service(), LifecycleOwner { @@ -95,6 +96,13 @@ } } + fun getOutputStream(): OutputStream { + //调高串口电位 + gpioManager.setGpioHigh("18") + Log.d(kTag, "getOutputStream: 调高串口电位") + return serialPorts.first().outputStream + } + fun closeSerialPort() { //降低串口电位 gpioManager.setGpioLow("18") diff --git a/app/src/main/java/com/casic/detector/common/view/MainActivity.kt b/app/src/main/java/com/casic/detector/common/view/MainActivity.kt index 6e41430..ae24b9e 100644 --- a/app/src/main/java/com/casic/detector/common/view/MainActivity.kt +++ b/app/src/main/java/com/casic/detector/common/view/MainActivity.kt @@ -537,7 +537,6 @@ searchMarkerTimer = Timer() serialPortService?.openSerialPort(object : OnSerialPortDataListener { override fun write(outStream: OutputStream) { - this@MainActivity.outStream = outStream runOnUiThread { searchMarkerTimer?.schedule(object : TimerTask() { override fun run() { @@ -939,6 +938,8 @@ val result = String(data, StandardCharsets.UTF_8) if (result.contains("ICY 200 OK")) { "高精度定位服务连接成功".show(this) + //连接服务即打开串口 + this.outStream = serialPortService?.getOutputStream() } } else { "收到千寻数据返回,长度:${data.size}".show(this)