diff --git a/app/src/main/java/com/casic/endoscope/view/MainActivity.kt b/app/src/main/java/com/casic/endoscope/view/MainActivity.kt index 39709c9..635bb97 100644 --- a/app/src/main/java/com/casic/endoscope/view/MainActivity.kt +++ b/app/src/main/java/com/casic/endoscope/view/MainActivity.kt @@ -67,6 +67,7 @@ import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.delay import kotlinx.coroutines.flow.flow +import kotlinx.coroutines.flow.onCompletion import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import java.io.File @@ -469,9 +470,11 @@ val serialSend = hkSDK.NET_DVR_SerialSend( serialHandle, 1, horizontalCommand, horizontalCommand.size ) - delay(500) emit(serialSend) + }.onCompletion { + //关闭通道 + hkSDK.NET_DVR_SerialStop(serialHandle) }.collect { value -> if (value) { //向透明通道发送数据,垂直 @@ -479,16 +482,16 @@ val serialSend = hkSDK.NET_DVR_SerialSend( serialHandle, 1, verticalCommand, verticalCommand.size ) - - delay(500) if (!serialSend) { - "垂直角度指令执行失败".show(context) + withContext(Dispatchers.Main) { + "垂直角度指令执行失败".show(context) + } } - - //关闭通道 - hkSDK.NET_DVR_SerialStop(serialHandle) + delay(500) } else { - "水平角度指令执行失败".show(context) + withContext(Dispatchers.Main) { + "水平角度指令执行失败".show(context) + } } } }