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 f949269..38b6d60 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 @@ -492,35 +492,36 @@ private fun openSerialPort() { binding.stopFreeTaskButton.visibility = View.VISIBLE isFreeTask = true + searchMarkerTimer = Timer() serialPortService?.openSerialPort(object : OnSerialPortDataListener { override fun write(outStream: OutputStream) { - searchMarkerTimer = Timer() - searchMarkerTimer?.schedule(object : TimerTask() { - override fun run() { - outStream.write('2'.code) - outStream.flush() + runOnUiThread { + searchMarkerTimer?.schedule(object : TimerTask() { + override fun run() { + outStream.write('2'.code) + outStream.flush() - Thread.sleep(50) + Thread.sleep(50) - outStream.write('6'.code) - outStream.flush() - } - }, 0, 200) + outStream.write('6'.code) + outStream.flush() + } + }, 0, 200) + } } override fun onDataReceived(buffer: ByteArray) { val hex = buffer.toHex() + //只响一次,因为探测频率高,所以依旧是连续的报警声 + soundPool.play(soundResourceId, 1f, 1f, 0, 0, 1f) if (hex.startsWith("4E")) { - //只响一次,因为探测频率高,所以依旧是连续的报警声 - soundPool.play(soundResourceId, 1f, 1f, 0, 0, 1f) - try { val energyResponse = hex.take(10).hexToString() val energy = energyResponse.substring(1).toInt() if (energy <= 1500 && detailDialog.isShowing) { detailDialog.dismiss() } - }catch (e:NumberFormatException){ + } catch (e: NumberFormatException) { e.printStackTrace() } }