12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- using System.Threading.Tasks;
- using System.Web.Http;
- using XdCxRhDW.Dto;
- using XdCxRhDW.WebApi;
- namespace GpuCgServer.Controllers
- {
- /// <summary>
- /// Gpu参估接口
- /// </summary>
- public class GpuCgController : BaseController
- {
- /// <summary>
- /// GPU参估计算(需要先上传文件)
- /// </summary>
- /// <param name="dto">GPU参估参数</param>
- /// <returns></returns>
- [HttpPost]
- public async Task<AjaxResult<List<GpuCgResponseDto>>> Calc(GpuCgRequestDto dto)
- {
- dto.file1 = GetLocalFile(dto.file1);
- dto.file2 = GetLocalFile(dto.file2);
- FileInfo file1 = new FileInfo(dto.file1);
- FileInfo file2 = new FileInfo(dto.file2);
- long totalsamp = file1.Length < file2.Length ? file1.Length / 4 : file2.Length / 4;
- //样点数为0时计算所有样本
- if (dto.smpCount == 0)
- {
- dto.smpCount = totalsamp;
- }
- else if (dto.smpCount > 0 && dto.smpCount < 1)
- {
- dto.smpCount = (long)(totalsamp * dto.smpCount);
- }
- CpuCgResDto resDto = new CpuCgResDto();
- try
- {
- var result = await Task.Run(() =>
- {
- return GpuCgHelper.Calc(dto.file1, dto.file2, dto.samplingRate, dto.smpCount,
- dto.dtCenter, dto.dtRange, dto.dfRange, dto.snrThreshold, dto.TimeoutSeconds);
- });
- return Success(result);
- }
- catch (Exception ex)
- {
- Serilog.Log.Error(ex, $"执行GPU参估异常,{ex.Message}");
- return Error<List<GpuCgResponseDto>>($"执行GPU参估异常,{ex.Message}");
- }
- }
- }
- }
|