From 8d662de2fd262b3a485f16e197cb4d0ca2a61cdf Mon Sep 17 00:00:00 2001
From: zsh_root <979909237@qq.com>
Date: 星期三, 10 十二月 2025 17:03:47 +0800
Subject: [PATCH] 发布版V1.0

---
 src/jiexi/Dell55AA12HighPerf.java |  114 ++++++++++++++++++++++++++++----------------------------
 1 files changed, 57 insertions(+), 57 deletions(-)

diff --git a/src/jiexi/Dell55AA12HighPerf.java b/src/jiexi/Dell55AA12HighPerf.java
index 80c333b..ff24d99 100644
--- a/src/jiexi/Dell55AA12HighPerf.java
+++ b/src/jiexi/Dell55AA12HighPerf.java
@@ -2,35 +2,35 @@
 
 public class Dell55AA12HighPerf {
     
-    // 协议常量
+    // 鍗忚甯搁噺
     @SuppressWarnings("unused")
-	private static final String HEADER = "55AA12"; // 协议头
-    private static final int MIN_LENGTH = 34; // 最小数据长度
-    private static final ThreadLocal<ParseResult> RESULT_CACHE = // 解析结果缓存
+	private static final String HEADER = "55AA12"; // 鍗忚澶�
+    private static final int MIN_LENGTH = 34; // 鏈�灏忔暟鎹暱搴�
+    private static final ThreadLocal<ParseResult> RESULT_CACHE = // 瑙f瀽缁撴灉缂撳瓨
         ThreadLocal.withInitial(ParseResult::new);
- // 重用StringBuilder减少内存分配
+ // 閲嶇敤StringBuilder鍑忓皯鍐呭瓨鍒嗛厤
  	private static final ThreadLocal<StringBuilder> hexDataBuilder = 
  			ThreadLocal.withInitial(() -> new StringBuilder(64));
 
-    // 解析结果类
+    // 瑙f瀽缁撴灉绫�
     public static class ParseResult { 
-        public String tagId; // 标签ID
-        public int sequenceNum; // 序列号
-        public int power; // 电量
-        public int vibrationState; // 振动状态
-        public boolean tagRemoved; // 标签移除状态
-        public boolean isSleeping; // 休眠状态
-        public boolean isStatic; // 静止状态
-        public boolean sosButtonPressed; // SOS按钮状态
-        public int tagHeight; // 标签高度
-        public int anchorCount; // 锚点数量
-        public String[] anchorIds = new String[0]; // 锚点ID数组
-        public int[] distances = new int[0]; // 距离数组
-        public int[] anchorPowers = new int[0]; // 锚点电量数组
-        public int[] signalStrengths1 = new int[0]; // 信号强度1
-        public int[] signalStrengths2 = new int[0]; // 信号强度2
+        public String tagId; // 鏍囩ID
+        public int sequenceNum; // 搴忓垪鍙�
+        public int power; // 鐢甸噺
+        public int vibrationState; // 鎸姩鐘舵��
+        public boolean tagRemoved; // 鏍囩绉婚櫎鐘舵��
+        public boolean isSleeping; // 浼戠湢鐘舵��
+        public boolean isStatic; // 闈欐鐘舵��
+        public boolean sosButtonPressed; // SOS鎸夐挳鐘舵��
+        public int tagHeight; // 鏍囩楂樺害
+        public int anchorCount; // 閿氱偣鏁伴噺
+        public String[] anchorIds = new String[0]; // 閿氱偣ID鏁扮粍
+        public int[] distances = new int[0]; // 璺濈鏁扮粍
+        public int[] anchorPowers = new int[0]; // 閿氱偣鐢甸噺鏁扮粍
+        public int[] signalStrengths1 = new int[0]; // 淇″彿寮哄害1
+        public int[] signalStrengths2 = new int[0]; // 淇″彿寮哄害2
         
-        // 重置方法
+        // 閲嶇疆鏂规硶
         public void reset() {
             tagId = "";
             sequenceNum = 0;
@@ -42,22 +42,22 @@
             sosButtonPressed = false;
             tagHeight = 0;
             anchorCount = 0;
-            // 数组保持长度,只重置计数
+            // 鏁扮粍淇濇寔闀垮害锛屽彧閲嶇疆璁℃暟
         }
     }
 
     /**
-     * 解析协议数据
-     * @param message 原始16进制字符串
-     * @return 解析结果对象(线程安全)
+     * 瑙f瀽鍗忚鏁版嵁
+     * @param message 鍘熷16杩涘埗瀛楃涓�
+     * @return 瑙f瀽缁撴灉瀵硅薄锛堢嚎绋嬪畨鍏級
      */
     public static ParseResult parse(String message,String ip,int port) { 
-        // 长度校验
+        // 闀垮害鏍¢獙
         if (message == null || message.length() < MIN_LENGTH) {
             return null;
         }
         
-        // 协议头校验
+        // 鍗忚澶存牎楠�
         if (!(message.charAt(0) == '5' && 
               message.charAt(1) == '5' && 
               message.charAt(2) == 'A' && 
@@ -67,28 +67,28 @@
             return null;
         }
         
-        // 获取线程本地结果对象
+        // 鑾峰彇绾跨▼鏈湴缁撴灉瀵硅薄
         ParseResult result = RESULT_CACHE.get();
         result.reset();
         
-        // 获取字符缓冲区
+        // 鑾峰彇瀛楃缂撳啿鍖�
         char[] chars = HexUtils.getThreadLocalBuffer();
         message.getChars(0, Math.min(message.length(), chars.length), chars, 0);
         
-        // 解析数据长度
+        // 瑙f瀽鏁版嵁闀垮害
         int dataLength = (HexUtils.fastHexToByte(chars[6], chars[7]) * 2) + 8;
         if (message.length() != dataLength) {
             return null;
         }
         
-        // 解析标签信息
+        // 瑙f瀽鏍囩淇℃伅
         parseTagInfo(chars, result);
         
-        // 解析锚点信息
+        // 瑙f瀽閿氱偣淇℃伅
         parseAnchorInfo(chars, result);
         
-        if (MessageViewPanel.isWindowVisible) {
-        	// 组装基站信息
+      /*  if (MessageViewPanel.isWindowVisible) {
+        	// 缁勮鍩虹珯淇℃伅
             StringBuilder ids = new StringBuilder();
             StringBuilder dists = new StringBuilder();
             StringBuilder powers = new StringBuilder();
@@ -117,27 +117,27 @@
               .append("],Dis:[").append(dists)
               .append("],AncPowers:[").append(powers).append("]").append('\n');              
 			MessageViewPanel.showData(sb.toString(), ip, port, 0, "UDPA", "55AA12",result.tagId);
-		}
+		}*/
         return result;
     }
 
     /**
-     * 解析标签信息
+     * 瑙f瀽鏍囩淇℃伅
      */
     private static void parseTagInfo(char[] chars, ParseResult result) {
-        // 标签ID(小端序)
+        // 鏍囩ID锛堝皬绔簭锛�
         result.tagId = new String(new char[] { 
-                chars[10], chars[11], // 高字节
-                chars[8], chars[9]    // 低字节
+                chars[10], chars[11], // 楂樺瓧鑺�
+                chars[8], chars[9]    // 浣庡瓧鑺�
             }); 
-        // 序列号(小端序)
+        // 搴忓垪鍙凤紙灏忕搴忥級
         result.sequenceNum = (HexUtils.fastHexToByte(chars[14], chars[15]) << 8 | 
                             HexUtils.fastHexToByte(chars[12], chars[13]));
         
-        // 电量
+        // 鐢甸噺
         result.power = HexUtils.fastHexToByte(chars[16], chars[17]);
         
-        // 状态标志
+        // 鐘舵�佹爣蹇�
         int buttonState = HexUtils.fastHexToByte(chars[18], chars[19]);
         result.vibrationState = (buttonState >> 5) & 1;
         result.tagRemoved = ((buttonState >> 3) & 1) == 1;
@@ -145,20 +145,20 @@
         result.isStatic = ((buttonState >> 1) & 1) == 1;
         result.sosButtonPressed = (buttonState & 1) == 1;
         
-        // 标签高度(小端序)
+        // 鏍囩楂樺害锛堝皬绔簭锛�
         result.tagHeight = (HexUtils.fastHexToByte(chars[22], chars[23]) << 8 | 
                           HexUtils.fastHexToByte(chars[20], chars[21]));
     }
 
     /**
-     * 解析锚点信息
+     * 瑙f瀽閿氱偣淇℃伅
      */
     private static void parseAnchorInfo(char[] chars, ParseResult result) {
-        // 锚点数量
+        // 閿氱偣鏁伴噺
         result.anchorCount = HexUtils.fastHexToByte(chars[32], chars[33]);
         if (result.anchorCount == 0) return;
 
-        // 动态扩展数组
+        // 鍔ㄦ�佹墿灞曟暟缁�
         if (result.anchorIds.length < result.anchorCount) {
             result.anchorIds = new String[result.anchorCount];
             result.distances = new int[result.anchorCount];
@@ -167,22 +167,22 @@
             result.signalStrengths2 = new int[result.anchorCount];
         }
 
-        int baseIndex = 34; // 锚点ID起始位置
-        int distanceStart = baseIndex + result.anchorCount * 4; // 距离起始位置
-        int powerStart = distanceStart + result.anchorCount * 4; // 电量起始位置
+        int baseIndex = 34; // 閿氱偣ID璧峰浣嶇疆
+        int distanceStart = baseIndex + result.anchorCount * 4; // 璺濈璧峰浣嶇疆
+        int powerStart = distanceStart + result.anchorCount * 4; // 鐢甸噺璧峰浣嶇疆
 
-        // 解析锚点ID(小端序)
+        // 瑙f瀽閿氱偣ID锛堝皬绔簭锛�
         for (int i = 0; i < result.anchorCount; i++) {
             int idOffset = baseIndex + i * 4;
             result.anchorIds[i] = new String(new char[]{
-                chars[idOffset + 2], // 高字节1
-                chars[idOffset + 3], // 高字节2
-                chars[idOffset],     // 低字节1
-                chars[idOffset + 1]  // 低字节2
+                chars[idOffset + 2], // 楂樺瓧鑺�1
+                chars[idOffset + 3], // 楂樺瓧鑺�2
+                chars[idOffset],     // 浣庡瓧鑺�1
+                chars[idOffset + 1]  // 浣庡瓧鑺�2
             });
         }
 
-        // 解析距离(有符号整数处理)
+        // 瑙f瀽璺濈锛堟湁绗﹀彿鏁存暟澶勭悊锛�
         for (int i = 0; i < result.anchorCount; i++) {
             int distOffset = distanceStart + i * 4;
             int distLow = HexUtils.fastHexToByte(chars[distOffset], chars[distOffset + 1]);
@@ -193,7 +193,7 @@
                                 : rawDistance;
         }
 
-        // 解析锚点电量
+        // 瑙f瀽閿氱偣鐢甸噺
         for (int i = 0; i < result.anchorCount; i++) {
             int powerOffset = powerStart + i * 2;
             result.anchorPowers[i] = HexUtils.fastHexToByte(chars[powerOffset], chars[powerOffset + 1]);

--
Gitblit v1.10.0