From 1bda9524add969e315d870f284046ecf1097f956 Mon Sep 17 00:00:00 2001 From: 826220679@qq.com <826220679@qq.com> Date: 星期日, 24 八月 2025 18:01:25 +0800 Subject: [PATCH] 修改 --- src/dell55AAData/Dell55AA12HighPerf.java | 36 ++++++++++++++++++++++++++++++++++++ 1 files changed, 36 insertions(+), 0 deletions(-) diff --git a/src/dell55AAData/Dell55AA12HighPerf.java b/src/dell55AAData/Dell55AA12HighPerf.java index 46f169a..d27ad7f 100644 --- a/src/dell55AAData/Dell55AA12HighPerf.java +++ b/src/dell55AAData/Dell55AA12HighPerf.java @@ -1,5 +1,7 @@ package dell55AAData; +import dell_system.MessageViewPanel; + public class Dell55AA12HighPerf { // 协议常量 @@ -8,6 +10,9 @@ private static final int MIN_LENGTH = 34; // 最小数据长度 private static final ThreadLocal<ParseResult> RESULT_CACHE = // 解析结果缓存 ThreadLocal.withInitial(ParseResult::new); + // 重用StringBuilder减少内存分配 + private static final ThreadLocal<StringBuilder> hexDataBuilder = + ThreadLocal.withInitial(() -> new StringBuilder(64)); // 解析结果类 public static class ParseResult { @@ -84,6 +89,37 @@ // 解析锚点信息 parseAnchorInfo(chars, result); + if (MessageViewPanel.isWindowVisible) { + // 组装基站信息 + StringBuilder ids = new StringBuilder(); + StringBuilder dists = new StringBuilder(); + StringBuilder powers = new StringBuilder(); + for (int i = 0; i < result.anchorCount; i++) { + if (i > 0) { + ids.append(','); + dists.append(','); + powers.append(','); + } + ids.append(result.anchorIds[i]); + dists.append(result.distances[i]); + powers.append(result.anchorPowers[i]); + } + StringBuilder sb = hexDataBuilder.get(); + sb.append("55AA12 ,Seq:").append(result.sequenceNum) + .append(",Tagid:").append(result.tagId) + .append(",Power: ").append(result.power).append("%") + .append(",button:").append(result.sosButtonPressed) + .append(",Static:").append(result.isStatic ) + .append(",Sleep:").append(result.isSleeping ) + .append(",State:").append(result.vibrationState ) + .append(",TagRemoved:").append(result.tagRemoved) + .append(",TagHeight:").append(result.tagHeight) + .append(",AncNum:").append(result.anchorCount) + .append(",AncIds:[").append(ids) + .append("],Dis:[").append(dists) + .append("],AncPowers:[").append(powers).append("]").append('\n'); + MessageViewPanel.showData(sb.toString(), ip, port, 0, "UDPA", "55AA12",result.tagId); + } return result; } -- Gitblit v1.9.3