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