zoulei hai 1 ano
pai
achega
4ccb335ba8
Modificáronse 1 ficheiros con 44 adicións e 38 borrados
  1. 44 38
      Service/X2LeoTaskServer54/Service/TaskService.cs

+ 44 - 38
Service/X2LeoTaskServer54/Service/TaskService.cs

@@ -24,6 +24,7 @@ namespace X2LeoTaskServer54.Service
         int Adja1SatCode;
         double[] MainXYZ, Adja1XYZ;
         int PosDtoFactor;
+        bool useGpuCg = false;
 
         double TarFreqDownMHz;
         double RefFreqDownMHz;
@@ -65,6 +66,10 @@ namespace X2LeoTaskServer54.Service
             double.TryParse(EphPosErrstr, out EphPosErrM);
             var EphVelErrstr = ConfigurationManager.AppSettings["EphVelErr"].Trim();
             double.TryParse(EphVelErrstr, out EphVelErr);
+
+            string useGpuStr = ConfigurationManager.AppSettings["UseGpuCg"];
+            if (useGpuStr != null && useGpuStr.Trim() == "1")
+                useGpuCg = true;
         }
 
         /// <summary>
@@ -76,9 +81,9 @@ namespace X2LeoTaskServer54.Service
             cts = new CancellationTokenSource();
             Task.Run(async () =>
             {
-                await LogHelper.Info($"【任务{dto.ID}】开始执行...");
-                await LogHelper.Info($"【任务{dto.ID}】AD采集目录[{CapDir}]");
-                await LogHelper.Info($"【任务{dto.ID}】状态上报输出目录[{StateDir}]");
+                LogHelper.Info($"【任务{dto.ID}】开始执行...");
+                LogHelper.Info($"【任务{dto.ID}】AD采集目录[{CapDir}]");
+                LogHelper.Info($"【任务{dto.ID}】状态上报输出目录[{StateDir}]");
                 //点击定位平台右上角查看接口可以在浏览器中查看平台提供的所有接口详细信息
                 while (!cts.IsCancellationRequested)
                 {
@@ -117,7 +122,7 @@ namespace X2LeoTaskServer54.Service
 
                         if (!groupFiles.Any())
                         {
-                            await LogHelper.Info($"【任务{dto.ID}】等待扫描文件...");
+                            LogHelper.Info($"【任务{dto.ID}】等待扫描文件...");
                             await Task.Delay(10000);
                         }
                         var listTask = new List<Task>();
@@ -126,12 +131,12 @@ namespace X2LeoTaskServer54.Service
                             if (cts.IsCancellationRequested) break;
 
                             var first = groupFile.First();
-                            await LogHelper.Info($"【任务{dto.ID}】正在执行第{first.XDNo}组的采集文件");
+                            LogHelper.Info($"【任务{dto.ID}】正在执行第{first.XDNo}组的采集文件");
 
                             var group = groupFile.OrderBy(g => g.AdTime).ToArray();
                             if (group.Count() != 4)
                             {
-                                await LogHelper.Warning($"【任务{dto.ID}】第{first.XDNo}组{first.AdTime:yyyyMMddHHmmss}时刻-信号{first.FreqDownMHz}MHz-未找到双星目标及参考的信号文件,跳过此组数据");
+                                LogHelper.Warning($"【任务{dto.ID}】第{first.XDNo}组{first.AdTime:yyyyMMddHHmmss}时刻-信号{first.FreqDownMHz}MHz-未找到双星目标及参考的信号文件,跳过此组数据");
                                 return;
                             }
                             //group:同一组不同时刻的文件
@@ -149,22 +154,22 @@ namespace X2LeoTaskServer54.Service
                                 var refFileInfo2 = refInfo.FirstOrDefault(t => t.Ch == 2);
                                 if (tarFileInfo1 == null)
                                 {
-                                    await LogHelper.Warning($"【任务{dto.ID}】第{No}组{adTime:yyyyMMddHHmmss}时刻-信号{TarFreqDownMHz}MHz-未找到信号文件,跳过此组数据");
+                                    LogHelper.Warning($"【任务{dto.ID}】第{No}组{adTime:yyyyMMddHHmmss}时刻-信号{TarFreqDownMHz}MHz-未找到信号文件,跳过此组数据");
                                     return;
                                 }
                                 if (tarFileInfo2 == null)
                                 {
-                                    await LogHelper.Warning($"【任务{dto.ID}】第{No}组{adTime:yyyyMMddHHmmss}时刻-信号{TarFreqDownMHz}MHz-未找到信号文件,跳过此组数据");
+                                    LogHelper.Warning($"【任务{dto.ID}】第{No}组{adTime:yyyyMMddHHmmss}时刻-信号{TarFreqDownMHz}MHz-未找到信号文件,跳过此组数据");
                                     return;
                                 }
                                 if (refFileInfo1 == null)
                                 {
-                                    await LogHelper.Warning($"【任务{dto.ID}】第{No}组{adTime:yyyyMMddHHmmss}时刻-信号{RefFreqDownMHz}MHz-未找到信号文件,跳过此组数据");
+                                    LogHelper.Warning($"【任务{dto.ID}】第{No}组{adTime:yyyyMMddHHmmss}时刻-信号{RefFreqDownMHz}MHz-未找到信号文件,跳过此组数据");
                                     return;
                                 }
                                 if (refFileInfo2 == null)
                                 {
-                                    await LogHelper.Warning($"【任务{dto.ID}】第{No}组{adTime:yyyyMMddHHmmss}时刻-信号{RefFreqDownMHz}MHz-未找到信号文件,跳过此组数据");
+                                    LogHelper.Warning($"【任务{dto.ID}】第{No}组{adTime:yyyyMMddHHmmss}时刻-信号{RefFreqDownMHz}MHz-未找到信号文件,跳过此组数据");
                                     return;
                                 }
                                 if (cts.IsCancellationRequested) return;
@@ -189,12 +194,12 @@ namespace X2LeoTaskServer54.Service
                                 var deteResp = await HttpHelper.PostRequestAsync<List<DetectResDto>>(baseUrl + "DetectCg/DetectCalc", detectDto, token: cts.Token);
                                 if (deteResp.code != 200)
                                 {
-                                    await LogHelper.Error($"【任务{dto.ID}】第{No}组{adTime:yyyyMMddHHmmss}时刻-信号{freq}MHz信号检测出错.{deteResp.msg}");
+                                    LogHelper.Error($"【任务{dto.ID}】第{No}组{adTime:yyyyMMddHHmmss}时刻-信号{freq}MHz信号检测出错.{deteResp.msg}");
                                     return;
                                 }
                                 var smps = deteResp.data.Select(m => new SmpPosition(m.Start, m.Length)).ToList();//怎么补0?
 
-                                await LogHelper.Info($"【任务{dto.ID}】第{No}组{adTime:yyyyMMddHHmmss}时刻-信号{freq}MHz-CPU参估开始,共{smps.Count}个突发...");
+                                LogHelper.Info($"【任务{dto.ID}】第{No}组{adTime:yyyyMMddHHmmss}时刻-信号{freq}MHz-CPU参估开始,共{smps.Count}个突发...");
                                 var cgDto = new CpuCgMultiDto()
                                 {
                                     dtCenter = 0,
@@ -208,7 +213,7 @@ namespace X2LeoTaskServer54.Service
                                 var result1 = await HttpHelper.PostRequestAsync<List<CpuCgResDto>>(baseUrl + "DetectCg/CpuCgMultiCalc", cgDto, token: cts.Token);
                                 if (result1.code != 200)
                                 {
-                                    await LogHelper.Error($"【任务{dto.ID}】第{No}组{adTime:yyyyMMddHHmmss}时刻-信号{freq}MHz-目标主星邻1星CPU参估出错.{result1.msg}");
+                                    LogHelper.Error($"【任务{dto.ID}】第{No}组{adTime:yyyyMMddHHmmss}时刻-信号{freq}MHz-目标主星邻1星CPU参估出错.{result1.msg}");
                                     return;
                                 }
                                 var cpuCgDto = new CpuCgDto()
@@ -222,24 +227,19 @@ namespace X2LeoTaskServer54.Service
                                     smpCount = 0,
                                     snrThreshold = 15,
                                 };
-                                var result2 = await HttpHelper.PostRequestAsync<List<CpuCgResDto>>(baseUrl + "DetectCg/CpuCgCalc", cpuCgDto, token: cts.Token);
+                                var result2 = await HttpHelper.PostRequestAsync<CpuCgResDto>(baseUrl + "DetectCg/CpuCgCalc", cpuCgDto, token: cts.Token);
                                 sw.Stop();
                                 if (result2.code != 200)
                                 {
-                                    await LogHelper.Error($"【任务{dto.ID}】第{No}组{adTime:yyyyMMddHHmmss}时刻-信号{freq}MHz-参考主星邻2星CPU参估出错.{result2.msg}");
+                                    LogHelper.Error($"【任务{dto.ID}】第{No}组{adTime:yyyyMMddHHmmss}时刻-信号{freq}MHz-参考主星邻2星CPU参估出错.{result2.msg}");
                                     return;
                                 }
-                                await LogHelper.Info($"【任务{dto.ID}】第{No}组{adTime:yyyyMMddHHmmss}时刻-信号{freq}MHz-CPU参估完成,耗时{sw.ElapsedMilliseconds}ms");
+                                LogHelper.Info($"【任务{dto.ID}】第{No}组{adTime:yyyyMMddHHmmss}时刻-信号{freq}MHz-CPU参估完成,耗时{sw.ElapsedMilliseconds}ms");
                                 var data1 = result1.data;
                                 var data2 = result2.data;
                                 if (data1.Count != cgDto.smpPositions.Count)
                                 {
-                                    await LogHelper.Error($"【任务{dto.ID}】第{No}组{adTime:yyyyMMddHHmmss}时刻-信号{freq}MHz-参估结果个数和检测结果个数不匹配");
-                                    return;
-                                }
-                                if (data2.Count != 0)
-                                {
-                                    await LogHelper.Error($"【任务{dto.ID}】第{No}组{adTime:yyyyMMddHHmmss}时刻-信号{freq}MHz-参考参估无结果");
+                                    LogHelper.Error($"【任务{dto.ID}】第{No}组{adTime:yyyyMMddHHmmss}时刻-信号{freq}MHz-参估结果个数和检测结果个数不匹配");
                                     return;
                                 }
                                 sw.Start();
@@ -270,9 +270,9 @@ namespace X2LeoTaskServer54.Service
                                             Dfo = data1[i].Df,
                                             Snr = data1[i].Snr,
                                             YbMainDto = 260000,
-                                            YbAdjaDto = 260000 + PosDtoFactor * data2[0].Dt,
+                                            YbAdjaDto = 260000 + PosDtoFactor * data2.Dt,
                                             YbMainDfo = 100,
-                                            YbAdjaDfo = 100 + data2[0].Df,
+                                            YbAdjaDfo = 100 + data2.Df,
                                             TarFreqUp = (tarFileInfo1.FreqDownMHz + 44) * 1e6,
                                             RefFreqUp = (refFileInfo1.FreqDownMHz + 44) * 1e6,
                                             SatTxLon = dto.CapLon,
@@ -290,7 +290,7 @@ namespace X2LeoTaskServer54.Service
                                         var result = await HttpHelper.PostRequestAsync<PosResDto>(baseUrl + "Pos/PosLeX2ParAsync", leoX2);
                                         if (result.code != 200)
                                         {
-                                            await LogHelper.Error($"【任务{dto.ID}】第{No}组-{adTime:yyyyMMddHHmmss}时刻-信号{freq}MHz 第{i + 1}个突发定位异常.{result.msg}");
+                                            LogHelper.Error($"【任务{dto.ID}】第{No}组-{adTime:yyyyMMddHHmmss}时刻-信号{freq}MHz 第{i + 1}个突发定位异常.{result.msg}");
                                         }
                                         else
                                         {
@@ -306,14 +306,14 @@ namespace X2LeoTaskServer54.Service
                                             {
                                                 MsEph = MainXYZ,
                                                 NsEph = Adja1XYZ,
-                                                RefGeod = new double[3] { dto.RefLon, dto.RefLat, 0 },
+                                                RefGeod= new double[3] { dto.RefLon, dto.RefLat, 0 },
                                                 SelectPoint = new double[3] { posLon, posLat, 0 },
-                                                DtoErr = DtoErrus * 1e-6,
+                                                DtoErr=DtoErrus *1e-6,
                                                 DfoErr = DfoErrHz,
                                                 EphPosErr = EphPosErrM,
                                                 EphVelErr = EphVelErr,
                                                 fu1 = leoX2.TarFreqUp,
-                                                fu2 = leoX2.RefFreqUp,
+                                                fu2=leoX2.RefFreqUp,
                                                 Pe = 0.5,
                                                 OutputErrPoint = false
                                             };
@@ -338,9 +338,9 @@ namespace X2LeoTaskServer54.Service
                                             sb.Append($"{Convert.ToInt64(leoX2.Dto * 1e2):D10}\t");
                                             sb.Append($"{Convert.ToInt64(leoX2.Dfo * 1e2):D10}\t");
                                             sb.Append($"{Convert.ToInt64(leoX2.Snr * 1e2):D6}\t");
-                                            sb.Append($"{Convert.ToInt64((leoX2.YbMainDto - leoX2.YbAdjaDto) * 1e2):D10}\t");
+                                            sb.Append($"{Convert.ToInt64((leoX2.YbMainDto- leoX2.YbAdjaDto) * 1e2):D10}\t");
                                             sb.Append($"{Convert.ToInt64((leoX2.YbMainDfo - leoX2.YbAdjaDfo) * 1e2):D10}\t");
-                                            sb.Append($"{Convert.ToInt64(100 * 1e2):D6}\t");
+                                            sb.Append($"{Convert.ToInt64(data2.Snr * 1e2):D6}\t");
                                             sb.Append($"{Convert.ToInt64(0 * 1e2):D10}\t");
                                             sb.Append($"{Convert.ToInt64(0 * 1e2):D10}\t");
                                             sb.Append($"{Convert.ToInt64(0 * 1e2):D6}\t");
@@ -359,11 +359,16 @@ namespace X2LeoTaskServer54.Service
                                     }
                                     catch (Exception ex)
                                     {
-                                        await LogHelper.Error($"【任务{dto.ID}】第{No}组{adTime:yyyyMMddHHmmss}时刻-信号{freq}MHz-时隙位置{data1[i].Smpstart}定位异常", ex);
+                                        LogHelper.Error($"【任务{dto.ID}】第{No}组{adTime:yyyyMMddHHmmss}时刻-信号{freq}MHz-时隙位置{data1[i].Smpstart}定位异常", ex);
                                     }
                                 }
                                 sw.Stop();
-                                await LogHelper.Info($"【任务{dto.ID}】第{No}组{adTime:yyyyMMddHHmmss}时刻-信号{freq}MHz-定位完成,耗时{sw.ElapsedMilliseconds}ms");
+                                LogHelper.Info($"【任务{dto.ID}】第{No}组{adTime:yyyyMMddHHmmss}时刻-信号{freq}MHz-定位完成,耗时{sw.ElapsedMilliseconds}ms");
+
+
+                                /* File.Delete(ch0File.File);
+                                 File.Delete(ch1File.File);
+                                 File.Delete(ch2File.File);*/
                             }, cts.Token);
                             listTask.Add(task);
 
@@ -373,14 +378,14 @@ namespace X2LeoTaskServer54.Service
                     }
                     catch (TaskCanceledException ex)
                     {
-                        await LogHelper.Warning($"【任务{dto.ID}】处理结束,用户手动终止", ex.InnerException);
+                        LogHelper.Warning($"【任务{dto.ID}】处理结束,用户手动终止", ex.InnerException);
                     }
                     catch (Exception ex)
                     {
                         if (ex.InnerException != null && ex.InnerException.GetType() == typeof(TaskCanceledException))
-                            await LogHelper.Warning($"【任务{dto.ID}】处理结束,用户手动终止", ex.InnerException);
+                            LogHelper.Warning($"【任务{dto.ID}】处理结束,用户手动终止", ex.InnerException);
                         else
-                            await LogHelper.Error($"【任务{dto.ID}】任务执行出错", ex);
+                            LogHelper.Error($"【任务{dto.ID}】任务执行出错", ex);
                         continue;
                     }
                 }
@@ -406,6 +411,7 @@ namespace X2LeoTaskServer54.Service
         private int GetSignalType(string modTypestr)
         {
             EnumSignalTypeDto modType = modTypestr.GetEnumByDisplayName<EnumSignalTypeDto>();
+#warning 没有CPM调制方式
             //1:CPM,2:BPSK,4:QPSK,9:其他
             int signalType = 9;
             if (modType == EnumSignalTypeDto.BPSK)
@@ -439,17 +445,17 @@ namespace X2LeoTaskServer54.Service
             await Task.Delay(2000);
             if (type == EnumTaskStopType.Properly)
             {
-                await LogHelper.Info($"【任务{taskID}】{stopReason}");
+                LogHelper.Info($"【任务{taskID}】{stopReason}");
             }
             else
             {
-                await LogHelper.Error($"【任务{taskID}】{stopReason}");
+                LogHelper.Error($"【任务{taskID}】{stopReason}");
             }
             TaskStopHandleDto stopDto = new TaskStopHandleDto() { ID = taskID, StopType = type, StopReason = stopReason };
             var stopResp = await HttpHelper.PostRequestAsync(baseUrl + "Task/StopTask", stopDto);
             if (stopResp.code != 200)
             {
-                await LogHelper.Error($"【任务{taskID}】停止异常.{stopResp.msg}");
+                LogHelper.Error($"【任务{taskID}】停止异常.{stopResp.msg}");
             }
         }