From 53e8df168306bcc24fa56dd2bd457901959b2b9f Mon Sep 17 00:00:00 2001 From: peng <704047449@qq.com> Date: Tue, 8 Jul 2025 11:45:27 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=A9=E6=88=B4=E7=8A=B6=E6=80=81=E6=9C=89?= =?UTF-8?q?=E5=8F=98=E5=8C=96=E6=89=8D=E8=A7=A6=E5=8F=91=E5=9B=9E=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ib86/feature/serial/SerialPort/SerialPortHelper.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/ismart/ib86/feature/serial/SerialPort/SerialPortHelper.java b/app/src/main/java/com/ismart/ib86/feature/serial/SerialPort/SerialPortHelper.java index 6733f77..bfefabb 100644 --- a/app/src/main/java/com/ismart/ib86/feature/serial/SerialPort/SerialPortHelper.java +++ b/app/src/main/java/com/ismart/ib86/feature/serial/SerialPort/SerialPortHelper.java @@ -41,6 +41,7 @@ public class SerialPortHelper { private GH3220MeasureCallback gh3220MeasureCallback; private AlgoResultCallback algoResultCallback; private boolean isSimulationMode = false; + private Boolean lastWearStatus = null; private final ByteBuffer frameBuffer = ByteBuffer.allocate(1024); public interface SendCallback { @@ -322,6 +323,7 @@ public class SerialPortHelper { sendData(data, null); } + public boolean open() { try { LogManager.d(TAG, "Opening serial port: " + mPortName + " with baud rate: " + mBaudRate); @@ -648,7 +650,10 @@ public class SerialPortHelper { case ASR5515Protocol.Commands.CMD_WEAR_DETECTION_RESP: ASR5515Protocol.WearDetectionResponse wearDetectionResponse = ASR5515Protocol.parseWearDetectionResponse(frame); if (wearDetectionResponse != null && wearDetectionCallback != null) { - wearDetectionCallback.onWearDetectionResponse(wearDetectionResponse); + if (lastWearStatus == null || lastWearStatus != wearDetectionResponse.isWearing) { + wearDetectionCallback.onWearDetectionResponse(wearDetectionResponse); + lastWearStatus = wearDetectionResponse.isWearing; + } } break;