DetectCgController.cs 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Linq;
  5. using System.Threading.Tasks;
  6. using System.Web.Http;
  7. using DevExpress.Data.Svg;
  8. using XdCxRhDW.Api;
  9. using XdCxRhDW.Dto;
  10. using XdCxRhDW.Repostory;
  11. using XdCxRhDW.WebApi;
  12. namespace XdCxRhDW.App.Controllers
  13. {
  14. /// <summary>
  15. /// 检测参估功能相关接口
  16. /// </summary>
  17. public class DetectCgController : BaseController
  18. {
  19. /// <summary>
  20. /// CPU参估计算(需要先上传文件)
  21. /// </summary>
  22. /// <param name="dto">CPU参估参数</param>
  23. /// <returns></returns>
  24. [HttpPost]
  25. public async Task<AjaxResult<CpuCgResDto>> CpuCgCalc(CpuCgDto dto)
  26. {
  27. var svr = ServerContext.Instance.GetRandomOne(EnumSvrType.CpuCgSvr);
  28. dto.file1 = await HttpHelper.UploadFileAsync(GetLocalFile(dto.file1), svr.BaseHttpAddr + "/api/File/UploadFileAsync");
  29. dto.file2 = await HttpHelper.UploadFileAsync(GetLocalFile(dto.file2), svr.BaseHttpAddr + "/api/File/UploadFileAsync");
  30. var res = await HttpHelper.PostRequestAsync<CpuCgResDto>(svr.BaseHttpAddr + "/api/CpuCg/Calc", dto);
  31. return res;
  32. }
  33. /// <summary>
  34. /// CPU参估多个时隙的参估计算(需要先上传文件)
  35. /// </summary>
  36. /// <param name="dto">CPU多时隙参估参数模型</param>
  37. /// <returns>返回结果个数始终和传入的时隙个数相同</returns>
  38. [HttpPost]
  39. public async Task<AjaxResult<List<CpuCgResDto>>> CpuCgMultiCalc(CpuCgMultiDto dto)
  40. {
  41. var svr = ServerContext.Instance.GetRandomOne(EnumSvrType.CpuCgSvr);
  42. dto.file1 = await HttpHelper.UploadFileAsync(GetLocalFile(dto.file1), svr.BaseHttpAddr + "/api/File/UploadFileAsync");
  43. dto.file2 = await HttpHelper.UploadFileAsync(GetLocalFile(dto.file2), svr.BaseHttpAddr + "/api/File/UploadFileAsync");
  44. var res = await HttpHelper.PostRequestAsync<List<CpuCgResDto>>(svr.BaseHttpAddr + "/api/CpuCg/MultCalc", dto);
  45. return res;
  46. }
  47. /// <summary>
  48. /// GPU参估计算(需要先上传文件)
  49. /// </summary>
  50. /// <param name="dto">GPU参估参数</param>
  51. /// <returns></returns>
  52. [HttpPost]
  53. public async Task<AjaxResult<List<GpuCgResponseDto>>> GpuCgCalc(GpuCgRequestDto dto)
  54. {
  55. var svr = ServerContext.Instance.GetRandomOne(EnumSvrType.GpuCgSvr);
  56. dto.file1 = await HttpHelper.UploadFileAsync(GetLocalFile(dto.file1), svr.BaseHttpAddr + "/api/File/UploadFileAsync");
  57. dto.file2 = await HttpHelper.UploadFileAsync(GetLocalFile(dto.file2), svr.BaseHttpAddr + "/api/File/UploadFileAsync");
  58. var res = await HttpHelper.PostRequestAsync<List<GpuCgResponseDto>>(svr.BaseHttpAddr + "/api/GpuCg/Calc", dto);
  59. return res;
  60. }
  61. /// <summary>
  62. /// 信号检测(支持DAMA、IBS、能量检测)(需要先上传文件)
  63. /// </summary>
  64. /// <param name="dto">信号检测参数</param>
  65. /// <returns></returns>
  66. [HttpPost]
  67. public async Task<AjaxResult<List<DetectResDto>>> DetectCalc(DetectDto dto)
  68. {
  69. var svr = ServerContext.Instance.GetRandomOne(EnumSvrType.CheckSvr);
  70. dto.file1 = await HttpHelper.UploadFileAsync(GetLocalFile(dto.file1), svr.BaseHttpAddr + "/api/File/UploadFileAsync");
  71. var res = await HttpHelper.PostRequestAsync<List<DetectResDto>>(svr.BaseHttpAddr + "/api/Check/Calc", dto);
  72. return res;
  73. }
  74. /// <summary>
  75. /// 信号识别(调制类型、调制速率、频偏)
  76. /// </summary>
  77. /// <param name="dto">信号检测参数</param>
  78. /// <returns></returns>
  79. [HttpPost]
  80. public async Task<AjaxResult<List<SignalProcResDto>>> SignalProc(SignalProcDto dto)
  81. {
  82. var svr = ServerContext.Instance.GetRandomOne(EnumSvrType.CheckSvr);
  83. dto.File = await HttpHelper.UploadFileAsync(GetLocalFile(dto.File), svr.BaseHttpAddr + "/api/File/UploadFileAsync");
  84. var res = await HttpHelper.PostRequestAsync<List<SignalProcResDto>>(svr.BaseHttpAddr + "/api/Check/SignalProc", dto);
  85. return res;
  86. }
  87. /// <summary>
  88. /// 文件变采样(需要先上传文件)
  89. /// </summary>
  90. /// <param name="dto"></param>
  91. /// <returns></returns>
  92. public async Task<AjaxResult<ResampleResponseDto>> Resample(ResampleRequestDto dto)
  93. {
  94. var svr = ServerContext.Instance.GetRandomOne(EnumSvrType.CheckSvr);
  95. dto.File = await HttpHelper.UploadFileAsync(GetLocalFile(dto.File), svr.BaseHttpAddr + "/api/File/UploadFileAsync");
  96. var res = await HttpHelper.PostRequestAsync<ResampleResponseDto>(svr.BaseHttpAddr + "/api/Check/Resample", dto);
  97. return res;
  98. }
  99. }
  100. }