fix:修复示波器获取失败的问题

This commit is contained in:
alivender 2025-07-20 13:17:36 +08:00
parent 5103145d01
commit 422aaa89d5
2 changed files with 8 additions and 18 deletions

View File

@ -10,7 +10,7 @@ namespace server.Controllers;
/// </summary>
[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)
{

View File

@ -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"));