fix:修复示波器获取失败的问题
This commit is contained in:
parent
5103145d01
commit
422aaa89d5
|
@ -10,7 +10,7 @@ namespace server.Controllers;
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[ApiController]
|
[ApiController]
|
||||||
[Route("api/[controller]")]
|
[Route("api/[controller]")]
|
||||||
[Authorize(Roles = "User")]
|
[Authorize]
|
||||||
public class OscilloscopeApiController : ControllerBase
|
public class OscilloscopeApiController : ControllerBase
|
||||||
{
|
{
|
||||||
private static readonly NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
|
private static readonly NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
|
||||||
|
@ -298,21 +298,11 @@ public class OscilloscopeApiController : ControllerBase
|
||||||
if (oscilloscope == null)
|
if (oscilloscope == null)
|
||||||
return BadRequest("用户未绑定有效的实验板");
|
return BadRequest("用户未绑定有效的实验板");
|
||||||
|
|
||||||
// 并行获取所有数据
|
var freqResult = await oscilloscope.GetADFrequency();
|
||||||
var freqTask = oscilloscope.GetADFrequency();
|
var vppResult = await oscilloscope.GetADVpp();
|
||||||
var vppTask = oscilloscope.GetADVpp();
|
var maxResult = await oscilloscope.GetADMax();
|
||||||
var maxTask = oscilloscope.GetADMax();
|
var minResult = await oscilloscope.GetADMin();
|
||||||
var minTask = oscilloscope.GetADMin();
|
var waveformResult = await oscilloscope.GetWaveformData();
|
||||||
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;
|
|
||||||
|
|
||||||
if (!freqResult.IsSuccessful)
|
if (!freqResult.IsSuccessful)
|
||||||
{
|
{
|
||||||
|
|
|
@ -70,7 +70,7 @@ class Oscilloscope
|
||||||
private static readonly NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
|
private static readonly NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
|
||||||
|
|
||||||
readonly int timeout = 2000;
|
readonly int timeout = 2000;
|
||||||
readonly int taskID = 1;
|
readonly int taskID = 0;
|
||||||
|
|
||||||
readonly int port;
|
readonly int port;
|
||||||
readonly string address;
|
readonly string address;
|
||||||
|
@ -327,7 +327,7 @@ class Oscilloscope
|
||||||
return new(ret.Error);
|
return new(ret.Error);
|
||||||
}
|
}
|
||||||
var data = ret.Value;
|
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}");
|
logger.Error($"Waveform data length mismatch: {data?.Length}");
|
||||||
return new(new Exception("Waveform data length mismatch"));
|
return new(new Exception("Waveform data length mismatch"));
|
||||||
|
|
Loading…
Reference in New Issue