diff --git a/server/src/Controllers/OscilloscopeController.cs b/server/src/Controllers/OscilloscopeController.cs index f7bce73..a8c279f 100644 --- a/server/src/Controllers/OscilloscopeController.cs +++ b/server/src/Controllers/OscilloscopeController.cs @@ -10,7 +10,7 @@ namespace server.Controllers; /// [ApiController] [Route("api/[controller]")] -[Authorize(Roles = "User")] +[Authorize] public class OscilloscopeApiController : ControllerBase { private static readonly NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger(); @@ -298,21 +298,11 @@ public class OscilloscopeApiController : ControllerBase if (oscilloscope == null) return BadRequest("用户未绑定有效的实验板"); - // 并行获取所有数据 - var freqTask = oscilloscope.GetADFrequency(); - var vppTask = oscilloscope.GetADVpp(); - var maxTask = oscilloscope.GetADMax(); - var minTask = oscilloscope.GetADMin(); - var waveformTask = oscilloscope.GetWaveformData(); - - await Task.WhenAll(freqTask.AsTask(), vppTask.AsTask(), maxTask.AsTask(), - minTask.AsTask(), waveformTask.AsTask()); - - var freqResult = await freqTask; - var vppResult = await vppTask; - var maxResult = await maxTask; - var minResult = await minTask; - var waveformResult = await waveformTask; + var freqResult = await oscilloscope.GetADFrequency(); + var vppResult = await oscilloscope.GetADVpp(); + var maxResult = await oscilloscope.GetADMax(); + var minResult = await oscilloscope.GetADMin(); + var waveformResult = await oscilloscope.GetWaveformData(); if (!freqResult.IsSuccessful) { diff --git a/server/src/Peripherals/OscilloscopeClient.cs b/server/src/Peripherals/OscilloscopeClient.cs index ad04055..b4fabe5 100644 --- a/server/src/Peripherals/OscilloscopeClient.cs +++ b/server/src/Peripherals/OscilloscopeClient.cs @@ -70,7 +70,7 @@ class Oscilloscope private static readonly NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger(); readonly int timeout = 2000; - readonly int taskID = 1; + readonly int taskID = 0; readonly int port; readonly string address; @@ -327,7 +327,7 @@ class Oscilloscope return new(ret.Error); } var data = ret.Value; - if (data == null || data.Length != OscilloscopeAddr.RD_DATA_LENGTH) + if (data == null || data.Length != OscilloscopeAddr.RD_DATA_LENGTH / 8) { logger.Error($"Waveform data length mismatch: {data?.Length}"); return new(new Exception("Waveform data length mismatch"));