From b41d317e9b76b1158a9d21257698e55194bb39f5 Mon Sep 17 00:00:00 2001
From: yeg <1347747024@qq.com>
Date: 星期五, 04 九月 2026 22:52:09 +0800
Subject: [PATCH] 建立电池检测模块骨架与运行时装配
---
battery-device-simulator/src/main/java/com/battery/device/simulator/ScriptedBtsTcpSimulator.java | 33 +++++++++++++++++++++++++++++++--
1 files changed, 31 insertions(+), 2 deletions(-)
diff --git a/ruoyi-device/src/main/java/com/ruoyi/device/bts/ScriptedBtsTcpSimulator.java b/battery-device-simulator/src/main/java/com/battery/device/simulator/ScriptedBtsTcpSimulator.java
similarity index 82%
copy from ruoyi-device/src/main/java/com/ruoyi/device/bts/ScriptedBtsTcpSimulator.java
copy to battery-device-simulator/src/main/java/com/battery/device/simulator/ScriptedBtsTcpSimulator.java
index eb80068..2f7a75a 100644
--- a/ruoyi-device/src/main/java/com/ruoyi/device/bts/ScriptedBtsTcpSimulator.java
+++ b/battery-device-simulator/src/main/java/com/battery/device/simulator/ScriptedBtsTcpSimulator.java
@@ -1,4 +1,4 @@
-package com.ruoyi.device.bts;
+package com.battery.device.simulator;
import java.io.IOException;
import java.io.InputStream;
@@ -134,7 +134,36 @@
private String readFrame(InputStream input) throws IOException
{
- return new String(BtsFrameReader.read(input, Integer.MAX_VALUE), StandardCharsets.UTF_8);
+ return new String(readFrameBytes(input), StandardCharsets.UTF_8);
+ }
+
+ private byte[] readFrameBytes(InputStream input) throws IOException
+ {
+ java.io.ByteArrayOutputStream bytes = new java.io.ByteArrayOutputStream();
+ byte[] delimiter = FRAME_END;
+ int matched = 0;
+ while (true)
+ {
+ int current = input.read();
+ if (current < 0) throw new java.io.EOFException("BTS frame ended before delimiter");
+ if ((byte) current == delimiter[matched])
+ {
+ matched++;
+ if (matched == delimiter.length) return bytes.toByteArray();
+ continue;
+ }
+ if (matched > 0)
+ {
+ for (int i = 0; i < matched; i++) bytes.write(delimiter[i]);
+ matched = 0;
+ if ((byte) current == delimiter[0])
+ {
+ matched = 1;
+ continue;
+ }
+ }
+ bytes.write(current);
+ }
}
@Override
--
Gitblit v1.7.1