From cbfd1df513c473dd5550d78740c92fc1677b6e9b Mon Sep 17 00:00:00 2001
From: 826220679@qq.com <826220679@qq.com>
Date: 星期六, 27 十二月 2025 13:40:42 +0800
Subject: [PATCH] 异形有障碍物路径规划没完成

---
 src/chuankou/SerialPortService.java |   26 +++++++++++++++++---------
 1 files changed, 17 insertions(+), 9 deletions(-)

diff --git a/src/chuankou/SerialPortService.java b/src/chuankou/SerialPortService.java
index f1c7aa7..4895976 100644
--- a/src/chuankou/SerialPortService.java
+++ b/src/chuankou/SerialPortService.java
@@ -1,23 +1,29 @@
 package chuankou;
 
-import com.fazecast.jSerialComm.SerialPort;
-import java.util.function.Consumer;
+
 import java.io.ByteArrayOutputStream;
 import java.io.InputStream;
 import java.io.OutputStream;
+// import java.util.function.Consumer;
+
+import com.fazecast.jSerialComm.SerialPort;
 
 public class SerialPortService {
 
+	static {
+		SerialPortNativeLoader.ensureLibraryPresent();
+	}
+
 	private SerialPort port;
 	private volatile boolean capturing = false;
 	private volatile boolean paused = true;
 	private Thread readerThread;
-	private Consumer<byte[]> responseConsumer;
+	private DataListener<byte[]> responseConsumer;
 
 	// 浼樺寲锛氶噸鐢ㄧ紦鍐插尯锛屽噺灏戝唴瀛樺垎閰�
 	private byte[] readBuffer = new byte[200];
 	private ByteArrayOutputStream buffer = new ByteArrayOutputStream(1024);
-	private Consumer<byte[]> dataReceivedCallback;
+	private DataListener<byte[]> dataReceivedCallback;
 
 
 	// 鏂板锛氭暟鎹潯鏁拌鏁板櫒
@@ -91,7 +97,7 @@
 		if (dataReceivedCallback != null) {
 			startCapture(dataReceivedCallback);
 		} else {
-			System.err.println("No data received callback set. Please call startCapture(Consumer<byte[]> onReceived) first.");
+			System.err.println("No data received callback set. Please call startCapture(DataListener<byte[]> onReceived) first.");
 		}
 	}
 
@@ -109,7 +115,7 @@
 		return port.openPort();
 	}
 
-	public void setResponseConsumer(Consumer<byte[]> consumer) {
+	public void setResponseConsumer(DataListener<byte[]> consumer) {
 		this.responseConsumer = consumer;
 	}
 
@@ -127,13 +133,15 @@
 	/**
 	 * 鍚姩鏁版嵁鎺ユ敹绾跨▼
 	 */
-	public void startCapture(Consumer<byte[]> onReceived) {
+	public void startCapture(DataListener<byte[]> onReceived) {
 	    this.dataReceivedCallback = onReceived;
 	    if (capturing || port == null || !port.isOpen()) return;
 	    capturing = true;
 	    paused = false;
 
-	    readerThread = new Thread(() -> {
+	    readerThread = new Thread(new Runnable() {
+	        @Override
+	        public void run() {
 	        buffer.reset();
 	        long lastReceivedTime = 0;
 
@@ -183,7 +191,7 @@
 	                responseConsumer.accept(data);
 	            }
 	        }
-	    });
+	    } });
 	    readerThread.setDaemon(true);
 	    readerThread.start();
 	}

--
Gitblit v1.10.0