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/home/DataLogPanel.java | 68 +++++++++++++++-------------------
1 files changed, 30 insertions(+), 38 deletions(-)
diff --git a/src/home/DataLogPanel.java b/src/home/DataLogPanel.java
index 99f07ac..d2866a0 100644
--- a/src/home/DataLogPanel.java
+++ b/src/home/DataLogPanel.java
@@ -5,6 +5,7 @@
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
+import java.nio.charset.StandardCharsets;
import java.text.SimpleDateFormat;
import java.util.Date;
@@ -18,7 +19,7 @@
private JCheckBox asciiDisplayCheck, autoSaveCheck, showTimeCheck;
private JButton toggleBtn, clearBtn;
- // 用于存储接收到的数据
+ // 鐢ㄤ簬瀛樺偍鎺ユ敹鍒扮殑鏁版嵁
private StringBuilder receivedData = new StringBuilder();
private boolean isPaused = false;
@@ -46,7 +47,7 @@
clearBtn = ButtonUtils.createBlueButton(getString("clear"), 25);
clearBtn.setPreferredSize(new Dimension(70, 25));
- // 添加按钮监听器
+ // 娣诲姞鎸夐挳鐩戝惉鍣�
toggleBtn.addActionListener(e -> toggleDisplay());
clearBtn.addActionListener(e -> clearLog());
@@ -61,24 +62,24 @@
}
/**
- * 添加日志数据 - 原始方法
+ * 娣诲姞鏃ュ織鏁版嵁 - 鍘熷鏂规硶
*/
public void addLogData(byte[] data) {
if (isPaused || data == null || data.length == 0) {
return;
}
- // 根据显示格式处理数据
+ // 鏍规嵁鏄剧ず鏍煎紡澶勭悊鏁版嵁
String displayData;
if (asciiDisplayCheck.isSelected()) {
- // ASCII显示格式
+ // ASCII鏄剧ず鏍煎紡
displayData = bytesToAscii(data);
} else {
- // HEX显示格式
+ // HEX鏄剧ず鏍煎紡
displayData = bytesToHex(data);
}
- // 添加时间戳
+ // 娣诲姞鏃堕棿鎴�
String finalData;
if (showTimeCheck.isSelected()) {
String timestamp = new SimpleDateFormat("HH:mm:ss").format(new Date());
@@ -87,39 +88,39 @@
finalData = displayData + "\n";
}
- // 更新显示
+ // 鏇存柊鏄剧ず
SwingUtilities.invokeLater(() -> {
logArea.append(finalData);
logArea.setCaretPosition(logArea.getDocument().getLength());
});
- // 自动保存
+ // 鑷姩淇濆瓨
if (autoSaveCheck.isSelected()) {
saveToFile(data, displayData);
}
}
/**
- * 添加带标签的日志数据
- * @param data 字节数组数据
- * @param tag 数据标签(如"发送"、"接收"等)
+ * 娣诲姞甯︽爣绛剧殑鏃ュ織鏁版嵁
+ * @param data 瀛楄妭鏁扮粍鏁版嵁
+ * @param tag 鏁版嵁鏍囩锛堝"鍙戦��"銆�"鎺ユ敹"绛夛級
*/
public void addLogData(byte[] data, String tag) {
if (isPaused || data == null || data.length == 0) {
return;
}
- // 根据显示格式处理数据
+ // 鏍规嵁鏄剧ず鏍煎紡澶勭悊鏁版嵁
String displayData;
if (asciiDisplayCheck.isSelected()) {
- // ASCII显示格式
+ // ASCII鏄剧ず鏍煎紡
displayData = bytesToAscii(data);
} else {
- // HEX显示格式
+ // HEX鏄剧ず鏍煎紡
displayData = bytesToHex(data);
}
- // 添加时间戳和标签
+ // 娣诲姞鏃堕棿鎴冲拰鏍囩
String finalData;
if (showTimeCheck.isSelected()) {
String timestamp = new SimpleDateFormat("HH:mm:ss").format(new Date());
@@ -128,37 +129,28 @@
finalData = "[" + tag + "] " + displayData + "\n";
}
- // 更新显示
+ // 鏇存柊鏄剧ず
SwingUtilities.invokeLater(() -> {
logArea.append(finalData);
logArea.setCaretPosition(logArea.getDocument().getLength());
});
- // 自动保存
+ // 鑷姩淇濆瓨
if (autoSaveCheck.isSelected()) {
saveToFileWithTag(data, displayData, tag);
}
}
/**
- * 字节数组转ASCII字符串
+ * 瀛楄妭鏁扮粍杞珹SCII瀛楃涓�
*/
private String bytesToAscii(byte[] bytes) {
- StringBuilder sb = new StringBuilder();
- for (byte b : bytes) {
- if (b >= 32 && b <= 126) {
- // 可打印ASCII字符
- sb.append((char) b);
- } else {
- // 不可打印字符用点号代替
- sb.append('.');
- }
- }
- return sb.toString();
+ String message1 = new String(bytes, 0, bytes.length, StandardCharsets.UTF_8);
+ return message1;
}
/**
- * 字节数组转十六进制字符串
+ * 瀛楄妭鏁扮粍杞崄鍏繘鍒跺瓧绗︿覆
*/
private String bytesToHex(byte[] bytes) {
StringBuilder sb = new StringBuilder();
@@ -169,7 +161,7 @@
}
/**
- * 保存数据到文件
+ * 淇濆瓨鏁版嵁鍒版枃浠�
*/
private void saveToFile(byte[] data, String displayData) {
try {
@@ -189,12 +181,12 @@
fos.write(fileContent.getBytes("UTF-8"));
}
} catch (IOException e) {
- System.err.println("保存文件错误: " + e.getMessage());
+ System.err.println(getString("save.file.error") + ": " + e.getMessage());
}
}
/**
- * 带标签保存数据到文件
+ * 甯︽爣绛句繚瀛樻暟鎹埌鏂囦欢
*/
private void saveToFileWithTag(byte[] data, String displayData, String tag) {
try {
@@ -214,12 +206,12 @@
fos.write(fileContent.getBytes("UTF-8"));
}
} catch (IOException e) {
- System.err.println("保存文件错误: " + e.getMessage());
+ System.err.println(getString("save.file.error") + ": " + e.getMessage());
}
}
/**
- * 切换显示暂停/继续
+ * 鍒囨崲鏄剧ず鏆傚仠/缁х画
*/
private void toggleDisplay() {
isPaused = !isPaused;
@@ -231,7 +223,7 @@
}
/**
- * 清除日志
+ * 娓呴櫎鏃ュ織
*/
private void clearLog() {
logArea.setText("");
@@ -260,7 +252,7 @@
}
/**
- * 通用方法
+ * 閫氱敤鏂规硶
*/
public void addLog(String logMessage) {
if (logArea != null) {
--
Gitblit v1.10.0