HistoryTaskService.cs 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. using DevExpress.XtraPrinting.Native.Properties;
  2. using Google.Protobuf.WellKnownTypes;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Configuration;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using XdCxRhDW.Dto;
  10. namespace XdCxRhDW.X2D1TaskServer54.Service
  11. {
  12. //业务逻辑处理类
  13. public class HistoryTaskService
  14. {
  15. public readonly string baseUrl;
  16. private bool stopping = false;
  17. public HistoryTaskService()
  18. {
  19. var posPlatformAddr = ConfigurationManager.AppSettings["PosPlatformAddr"].Trim();//like http://127.0.0.1:8091 or http://127.0.0.1:8091/
  20. if (posPlatformAddr.EndsWith("/"))
  21. this.baseUrl = posPlatformAddr + "api/";
  22. else
  23. this.baseUrl = posPlatformAddr + "/api/";
  24. }
  25. public void StartAsync(HistoryTaskProcessingDto taskInfo)
  26. {
  27. Task.Run(async () =>
  28. {
  29. //点击定位平台右上角查看接口可以在浏览器中查看平台提供的所有接口详细信息
  30. while (!stopping)
  31. {
  32. try
  33. {
  34. #region 第1步,上传检测参估需要的数据文件执行检测
  35. string mainFile = await HttpHelper.UploadFileAsync("E:\\1.dat", baseUrl + "File/UploadFileAsync");//主星文件
  36. string adjaFile = await HttpHelper.UploadFileAsync("E:\\2.dat", baseUrl + "File/UploadFileAsync");//邻星文件
  37. string cdbFile = await HttpHelper.UploadFileAsync("E:\\2.dat", baseUrl + "File/UploadFileAsync");//超短文件
  38. string url = baseUrl + "POST/Api/DetectCg/DetectCalc";//信号检测
  39. var httpResp1 = await HttpHelper.PostRequestAsync<List<DetectResDto>>(url, new DetectDto()
  40. {
  41. file1 = mainFile,//用到文件的地方必须使用先上传后返回的文件
  42. fsHz = 96000,
  43. dmcType = DmcType.DAMA
  44. });
  45. if (httpResp1.code == 0)
  46. {
  47. LogHelper.Error(httpResp1.msg);
  48. }
  49. var slots = httpResp1.data;
  50. #endregion
  51. #region 第2步,多时隙参估
  52. url = baseUrl + "POST/Api/DetectCg/CpuCgMultiCalc";//CPU参估(多个时隙)
  53. var httpResp2 = await HttpHelper.PostRequestAsync<List<CpuCgResDto>>(url, new CpuCgMultiDto());
  54. if (httpResp2.code == 0)
  55. {
  56. LogHelper.Error(httpResp2.msg);
  57. }
  58. //httpResp2.data
  59. #endregion
  60. #region 第3步,每个时隙调用定位算法
  61. url = baseUrl + "Pos/PosX2D1NoXlNoParAsync";//两星一地无参无星历定位
  62. foreach (var slot in slots)
  63. {
  64. var httpResp3 = await HttpHelper.PostRequestAsync<PosResDto>(url, new X2D1NoXlNoParlPosDto());
  65. if (httpResp3.code == 0)
  66. {
  67. LogHelper.Error(httpResp3.msg);
  68. }
  69. }
  70. #endregion
  71. }
  72. catch (Exception ex)
  73. {
  74. LogHelper.Error("任务执行出错", ex);
  75. }
  76. }
  77. });
  78. }
  79. public void Stop()
  80. {
  81. stopping = true;
  82. }
  83. }
  84. }