From 2eea735fd4ddf0ae047687780271ef3962d256cc Mon Sep 17 00:00:00 2001
From: 张世豪 <979909237@qq.com>
Date: 星期四, 25 十二月 2025 15:54:26 +0800
Subject: [PATCH] 替换了mqtt最新版
---
src/zhuye/Coordinate.java | 41 +++++++++++++++++++++--------------------
1 files changed, 21 insertions(+), 20 deletions(-)
diff --git a/src/zhuye/Coordinate.java b/src/zhuye/Coordinate.java
index af2c5b3..644953d 100644
--- a/src/zhuye/Coordinate.java
+++ b/src/zhuye/Coordinate.java
@@ -79,34 +79,24 @@
/**
- * 瑙f瀽GNGGA鏁版嵁杩斿洖Coordinate瀵硅薄鍒楄〃锛堝寮虹増锛屽寘鍚珮绋嬫暟鎹級
+ * 瑙f瀽GNGGA/GPGGA/GBGGA鏁版嵁杩斿洖Coordinate瀵硅薄鍒楄〃锛堝寮虹増锛屽寘鍚珮绋嬫暟鎹級
*/
public static void parseGNGGAToCoordinateList(String gnggaData) {
if (!isStartSaveGngga || gnggaData == null || gnggaData.isEmpty()) {
return;
}
- // 澶勭悊瀹屾暣鐨凣NGGA鏁版嵁锛堝彲鑳藉寘鍚�$GNGGA鍓嶇紑锛�
String cleaned = gnggaData.trim();
- if (cleaned.startsWith("$GNGGA")) {
- // 濡傛灉鏁版嵁浠�$GNGGA寮�澶达紝鐩存帴瑙f瀽
- String record = cleaned.substring("$GNGGA".length());
+ // 浣跨敤姝e垯鍒嗗壊鏀寔澶氱澶撮儴
+ String[] records = cleaned.split("\\$(GN|GP|GB)GGA");
+ for (String record : records) {
+ if (record == null || record.trim().isEmpty()) {
+ continue;
+ }
Coordinate coord = parseSingleGnggaRecord(record, false);
if (coord != null) {
coordinates.add(coord);
}
- } else {
- // 澶勭悊鍙兘鍖呭惈澶氫釜$GNGGA璁板綍鐨勬儏鍐�
- String[] records = cleaned.split("\\$GNGGA");
- for (String record : records) {
- if (record == null || record.trim().isEmpty()) {
- continue; // 璺宠繃绌哄瓧绗︿覆锛坰plit浜х敓鐨勭涓�涓厓绱犲彲鑳芥槸绌虹殑锛�
- }
- Coordinate coord = parseSingleGnggaRecord(record, false);
- if (coord != null) {
- coordinates.add(coord);
- }
- }
}
}
@@ -123,9 +113,19 @@
return null;
}
- int markerIndex = cleaned.indexOf("$GNGGA");
+ int markerIndex = -1;
+ String[] headers = {"$GNGGA", "$GPGGA", "$GBGGA"};
+
+ // 鎵惧埌鏈�鏃╁嚭鐜扮殑澶撮儴
+ for (String header : headers) {
+ int idx = cleaned.indexOf(header);
+ if (idx >= 0 && (markerIndex == -1 || idx < markerIndex)) {
+ markerIndex = idx;
+ }
+ }
+
String record = markerIndex >= 0
- ? cleaned.substring(markerIndex + "$GNGGA".length())
+ ? cleaned.substring(markerIndex + 6) // 鎵�鏈夊ご閮ㄩ暱搴﹀潎涓�6
: cleaned;
Coordinate coordinate = parseSingleGnggaRecord(record, true);
@@ -168,7 +168,8 @@
return null;
}
- if (fixQuality != 4) {
+ // 淇敼涓哄厑璁搁潪RTK鍥哄畾瑙d篃鑳芥樉绀轰綅缃�(鍙涓嶆槸鏃犳晥瀹氫綅0鍗冲彲)
+ if (fixQuality == 0) {
return null;
}
--
Gitblit v1.10.0