From 1ca9999f155aa95af0d6f5bc06c2b443db989b5c Mon Sep 17 00:00:00 2001 From: SikongJueluo Date: Thu, 31 Jul 2025 13:56:48 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=B0=9D=E8=AF=95=E5=8E=BB=E4=BF=AE?= =?UTF-8?q?=E5=A4=8DDebugger=E5=A4=84=E7=90=86=E6=95=B0=E6=8D=AE=E6=97=B6?= =?UTF-8?q?=E5=87=BA=E7=8E=B0=E9=94=99=E4=B9=B1=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/src/Controllers/DebuggerController.cs | 35 ++++++++++---------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/server/src/Controllers/DebuggerController.cs b/server/src/Controllers/DebuggerController.cs index 874deb9..0c3507f 100644 --- a/server/src/Controllers/DebuggerController.cs +++ b/server/src/Controllers/DebuggerController.cs @@ -15,74 +15,74 @@ public class DebuggerController : ControllerBase { private static readonly NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger(); - /// + /// /// 表示单个信号通道的配置信息 /// public class ChannelConfig { - /// + /// /// 通道名称 /// required public string name; - /// + /// /// 通道显示颜色(如前端波形显示用) /// required public string color; - /// + /// /// 通道信号线宽度(位数) /// required public UInt32 wireWidth; - /// + /// /// 信号线在父端口中的起始索引(bit) /// required public UInt32 wireStartIndex; - /// + /// /// 父端口编号 /// required public UInt32 parentPort; - /// + /// /// 捕获模式(如上升沿、下降沿等) /// required public CaptureMode mode; } - /// + /// /// 调试器整体配置信息 /// public class DebuggerConfig { - /// + /// /// 时钟频率 /// required public UInt32 clkFreq; - /// + /// /// 总端口数量 /// required public UInt32 totalPortNum; - /// + /// /// 捕获深度(采样点数) /// required public UInt32 captureDepth; - /// + /// /// 触发器数量 /// required public UInt32 triggerNum; - /// + /// /// 所有信号通道的配置信息 /// required public ChannelConfig[] channelConfigs; } - /// + /// /// 单个通道的捕获数据 /// public class ChannelCaptureData { - /// + /// /// 通道名称 /// required public string name; - /// + /// /// 通道捕获到的数据(Base64编码的UInt32数组) /// required public string data; @@ -405,7 +405,8 @@ public class DebuggerController : ControllerBase logger.Error($"数据越界: port {port}, sample {i}"); return StatusCode(StatusCodes.Status500InternalServerError, "数据越界"); } - UInt32 sample = BitConverter.ToUInt32(rawData, sampleOffset); + var sampleBytes = rawData[sampleOffset..(sampleOffset + 4)]; + UInt32 sample = BitConverter.ToUInt32(Common.Number.ReverseBytes(sampleBytes, 4).Value, 0); // 提取wireWidth位 UInt32 mask = (wireWidth == 32) ? 0xFFFFFFFF : ((1u << wireWidth) - 1u); channelUintArr[i] = (sample >> wireStart) & mask;