zoulei 1 rok pred
rodič
commit
3bff13b6a5

BIN
Database.db


+ 47 - 27
Service/Leo1SatTaskServer54/LogHelper.cs

@@ -12,35 +12,47 @@ namespace X1LeoTaskServer54
     {
         public static Action<LogInfo> Logger;
         public static string BaseUrl;
-        public static void Info(string msg)
+        public static async Task Info(string msg)
         {
             var pro = Process.GetCurrentProcess();
-            _ = HttpHelper.PostRequestAsync<List<LogModulesResDto>>(BaseUrl + "Log/Add", new LogInfoDto()
+            try
             {
-                LogTime = DateTime.Now,
-                LogType = EnumLogTypeDto.Info,
-                Module = pro.ProcessName,
-                Msg = msg
-            });
+                await HttpHelper.PostRequestAsync<List<LogModulesResDto>>(BaseUrl + "Log/Add", new LogInfoDto()
+                {
+                    LogTime = DateTime.Now,
+                    LogType = EnumLogTypeDto.Info,
+                    Module = pro.ProcessName,
+                    Msg = msg
+                }, 5);
+            }
+            catch
+            {
+            }
             Serilog.Log.Information(msg);
-            Serilog.Log.Information("MainWindowTitle=" + pro.MainWindowTitle);
-            Serilog.Log.Information("ModuleName=" + pro.MainModule.ModuleName);
-            Serilog.Log.Information("FileName=" + pro.MainModule.FileName);
-            Logger?.Invoke(new LogInfo() { LogType = EnumLogType.Info, Msg = msg });
+            if (!string.IsNullOrWhiteSpace(pro.MainWindowTitle))
+                Logger?.Invoke(new LogInfo() { LogType = EnumLogType.Info, Msg = msg });
         }
-        public static void Warning(string msg, Exception ex = null)
+        public static async Task Warning(string msg, Exception ex = null)
         {
-            _ = HttpHelper.PostRequestAsync<List<LogModulesResDto>>(BaseUrl + "Log/Add", new LogInfoDto()
+            var pro = Process.GetCurrentProcess();
+            try
+            {
+                await HttpHelper.PostRequestAsync<List<LogModulesResDto>>(BaseUrl + "Log/Add", new LogInfoDto()
+                {
+                    LogTime = DateTime.Now,
+                    LogType = EnumLogTypeDto.Info,
+                    Module = pro.ProcessName,
+                    Msg = msg
+                }, 5);
+            }
+            catch
             {
-                LogTime = DateTime.Now,
-                LogType = EnumLogTypeDto.Warning,
-                Module = Process.GetCurrentProcess().ProcessName,
-                Msg = msg
-            });
+            }
             Serilog.Log.Warning(ex, msg);
-            Logger?.Invoke(new LogInfo() { LogType = EnumLogType.Warning, Msg = msg });
+            if (!string.IsNullOrWhiteSpace(pro.MainWindowTitle))
+                Logger?.Invoke(new LogInfo() { LogType = EnumLogType.Warning, Msg = msg });
         }
-        public static void Error(string msg, Exception ex = null)
+        public static async Task Error(string msg, Exception ex = null)
         {
             if (ex != null && ex.GetType() == typeof(AggregateException))
             {
@@ -48,15 +60,23 @@ namespace X1LeoTaskServer54
                 if (iex != null)
                     ex = iex;
             }
-            _ = HttpHelper.PostRequestAsync<List<LogModulesResDto>>(BaseUrl + "Log/Add", new LogInfoDto()
+            var pro = Process.GetCurrentProcess();
+            try
             {
-                LogTime = DateTime.Now,
-                LogType = EnumLogTypeDto.Error,
-                Module = Process.GetCurrentProcess().ProcessName,
-                Msg = msg
-            });
+                await HttpHelper.PostRequestAsync<List<LogModulesResDto>>(BaseUrl + "Log/Add", new LogInfoDto()
+                {
+                    LogTime = DateTime.Now,
+                    LogType = EnumLogTypeDto.Info,
+                    Module = pro.ProcessName,
+                    Msg = msg
+                }, 5);
+            }
+            catch
+            {
+            }
             Serilog.Log.Error(ex, msg);
-            Logger?.Invoke(new LogInfo() { LogType = EnumLogType.Error, Msg = msg });
+            if (!string.IsNullOrWhiteSpace(pro.MainWindowTitle))
+                Logger?.Invoke(new LogInfo() { LogType = EnumLogType.Error, Msg = msg });
         }
     }
 }

+ 47 - 27
Service/Leo2SatTaskServer54/LogHelper.cs

@@ -12,35 +12,47 @@ namespace X2LeoTaskServer54
     {
         public static Action<LogInfo> Logger;
         public static string BaseUrl;
-        public static void Info(string msg)
+        public static async Task Info(string msg)
         {
             var pro = Process.GetCurrentProcess();
-            _ = HttpHelper.PostRequestAsync<List<LogModulesResDto>>(BaseUrl + "Log/Add", new LogInfoDto()
+            try
             {
-                LogTime = DateTime.Now,
-                LogType = EnumLogTypeDto.Info,
-                Module = pro.ProcessName,
-                Msg = msg
-            });
+                await HttpHelper.PostRequestAsync<List<LogModulesResDto>>(BaseUrl + "Log/Add", new LogInfoDto()
+                {
+                    LogTime = DateTime.Now,
+                    LogType = EnumLogTypeDto.Info,
+                    Module = pro.ProcessName,
+                    Msg = msg
+                }, 5);
+            }
+            catch
+            {
+            }
             Serilog.Log.Information(msg);
-            Serilog.Log.Information("MainWindowTitle=" + pro.MainWindowTitle);
-            Serilog.Log.Information("ModuleName=" + pro.MainModule.ModuleName);
-            Serilog.Log.Information("FileName=" + pro.MainModule.FileName);
-            Logger?.Invoke(new LogInfo() { LogType = EnumLogType.Info, Msg = msg });
+            if (!string.IsNullOrWhiteSpace(pro.MainWindowTitle))
+                Logger?.Invoke(new LogInfo() { LogType = EnumLogType.Info, Msg = msg });
         }
-        public static void Warning(string msg, Exception ex = null)
+        public static async Task Warning(string msg, Exception ex = null)
         {
-            _ = HttpHelper.PostRequestAsync<List<LogModulesResDto>>(BaseUrl + "Log/Add", new LogInfoDto()
+            var pro = Process.GetCurrentProcess();
+            try
+            {
+                await HttpHelper.PostRequestAsync<List<LogModulesResDto>>(BaseUrl + "Log/Add", new LogInfoDto()
+                {
+                    LogTime = DateTime.Now,
+                    LogType = EnumLogTypeDto.Info,
+                    Module = pro.ProcessName,
+                    Msg = msg
+                }, 5);
+            }
+            catch
             {
-                LogTime = DateTime.Now,
-                LogType = EnumLogTypeDto.Warning,
-                Module = Process.GetCurrentProcess().ProcessName,
-                Msg = msg
-            });
+            }
             Serilog.Log.Warning(ex, msg);
-            Logger?.Invoke(new LogInfo() { LogType = EnumLogType.Warning, Msg = msg });
+            if (!string.IsNullOrWhiteSpace(pro.MainWindowTitle))
+                Logger?.Invoke(new LogInfo() { LogType = EnumLogType.Warning, Msg = msg });
         }
-        public static void Error(string msg, Exception ex = null)
+        public static async Task Error(string msg, Exception ex = null)
         {
             if (ex != null && ex.GetType() == typeof(AggregateException))
             {
@@ -48,15 +60,23 @@ namespace X2LeoTaskServer54
                 if (iex != null)
                     ex = iex;
             }
-            _ = HttpHelper.PostRequestAsync<List<LogModulesResDto>>(BaseUrl + "Log/Add", new LogInfoDto()
+            var pro = Process.GetCurrentProcess();
+            try
             {
-                LogTime = DateTime.Now,
-                LogType = EnumLogTypeDto.Error,
-                Module = Process.GetCurrentProcess().ProcessName,
-                Msg = msg
-            });
+                await HttpHelper.PostRequestAsync<List<LogModulesResDto>>(BaseUrl + "Log/Add", new LogInfoDto()
+                {
+                    LogTime = DateTime.Now,
+                    LogType = EnumLogTypeDto.Info,
+                    Module = pro.ProcessName,
+                    Msg = msg
+                }, 5);
+            }
+            catch
+            {
+            }
             Serilog.Log.Error(ex, msg);
-            Logger?.Invoke(new LogInfo() { LogType = EnumLogType.Error, Msg = msg });
+            if (!string.IsNullOrWhiteSpace(pro.MainWindowTitle))
+                Logger?.Invoke(new LogInfo() { LogType = EnumLogType.Error, Msg = msg });
         }
     }
 }

+ 47 - 27
Service/Leo3SatTaskServer54/LogHelper.cs

@@ -12,35 +12,47 @@ namespace X3LeoTaskServer54
     {
         public static Action<LogInfo> Logger;
         public static string BaseUrl;
-        public static void Info(string msg)
+        public static async Task Info(string msg)
         {
             var pro = Process.GetCurrentProcess();
-            _ = HttpHelper.PostRequestAsync<List<LogModulesResDto>>(BaseUrl + "Log/Add", new LogInfoDto()
+            try
             {
-                LogTime = DateTime.Now,
-                LogType = EnumLogTypeDto.Info,
-                Module = pro.ProcessName,
-                Msg = msg
-            });
+                await HttpHelper.PostRequestAsync<List<LogModulesResDto>>(BaseUrl + "Log/Add", new LogInfoDto()
+                {
+                    LogTime = DateTime.Now,
+                    LogType = EnumLogTypeDto.Info,
+                    Module = pro.ProcessName,
+                    Msg = msg
+                }, 5);
+            }
+            catch
+            {
+            }
             Serilog.Log.Information(msg);
-            Serilog.Log.Information("MainWindowTitle=" + pro.MainWindowTitle);
-            Serilog.Log.Information("ModuleName=" + pro.MainModule.ModuleName);
-            Serilog.Log.Information("FileName=" + pro.MainModule.FileName);
-            Logger?.Invoke(new LogInfo() { LogType = EnumLogType.Info, Msg = msg });
+            if (!string.IsNullOrWhiteSpace(pro.MainWindowTitle))
+                Logger?.Invoke(new LogInfo() { LogType = EnumLogType.Info, Msg = msg });
         }
-        public static void Warning(string msg, Exception ex = null)
+        public static async Task Warning(string msg, Exception ex = null)
         {
-            _ = HttpHelper.PostRequestAsync<List<LogModulesResDto>>(BaseUrl + "Log/Add", new LogInfoDto()
+            var pro = Process.GetCurrentProcess();
+            try
+            {
+                await HttpHelper.PostRequestAsync<List<LogModulesResDto>>(BaseUrl + "Log/Add", new LogInfoDto()
+                {
+                    LogTime = DateTime.Now,
+                    LogType = EnumLogTypeDto.Info,
+                    Module = pro.ProcessName,
+                    Msg = msg
+                }, 5);
+            }
+            catch
             {
-                LogTime = DateTime.Now,
-                LogType = EnumLogTypeDto.Warning,
-                Module = Process.GetCurrentProcess().ProcessName,
-                Msg = msg
-            });
+            }
             Serilog.Log.Warning(ex, msg);
-            Logger?.Invoke(new LogInfo() { LogType = EnumLogType.Warning, Msg = msg });
+            if (!string.IsNullOrWhiteSpace(pro.MainWindowTitle))
+                Logger?.Invoke(new LogInfo() { LogType = EnumLogType.Warning, Msg = msg });
         }
-        public static void Error(string msg, Exception ex = null)
+        public static async Task Error(string msg, Exception ex = null)
         {
             if (ex != null && ex.GetType() == typeof(AggregateException))
             {
@@ -48,15 +60,23 @@ namespace X3LeoTaskServer54
                 if (iex != null)
                     ex = iex;
             }
-            _ = HttpHelper.PostRequestAsync<List<LogModulesResDto>>(BaseUrl + "Log/Add", new LogInfoDto()
+            var pro = Process.GetCurrentProcess();
+            try
             {
-                LogTime = DateTime.Now,
-                LogType = EnumLogTypeDto.Error,
-                Module = Process.GetCurrentProcess().ProcessName,
-                Msg = msg
-            });
+                await HttpHelper.PostRequestAsync<List<LogModulesResDto>>(BaseUrl + "Log/Add", new LogInfoDto()
+                {
+                    LogTime = DateTime.Now,
+                    LogType = EnumLogTypeDto.Info,
+                    Module = pro.ProcessName,
+                    Msg = msg
+                }, 5);
+            }
+            catch
+            {
+            }
             Serilog.Log.Error(ex, msg);
-            Logger?.Invoke(new LogInfo() { LogType = EnumLogType.Error, Msg = msg });
+            if (!string.IsNullOrWhiteSpace(pro.MainWindowTitle))
+                Logger?.Invoke(new LogInfo() { LogType = EnumLogType.Error, Msg = msg });
         }
     }
 }

+ 3 - 0
Service/Test/App.config

@@ -1,5 +1,8 @@
 <?xml version="1.0" encoding="utf-8" ?>
 <configuration>
+	<appSettings>
+		<add key="CopyFreqs" value="252.05;"/>
+	</appSettings>
     <startup> 
         <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
     </startup>

+ 23 - 1
Service/Test/Program.cs

@@ -1,5 +1,6 @@
 using System;
 using System.Collections.Generic;
+using System.Configuration;
 using System.IO;
 using System.Linq;
 using System.Text;
@@ -15,9 +16,21 @@ namespace Test
             var dirs = Directory.GetFiles("D:\\Data21\\XDHJC");
             Directory.CreateDirectory("tmp1");
             Directory.CreateDirectory("tmp2");
+            int count = 0;
+            var copyFreqsArr = ConfigurationManager.AppSettings["CopyFreqs"].Split(";".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
+            List<double> listFreqs=copyFreqsArr.Select(p=>Convert.ToDouble(p.Trim())).ToList();
             foreach (var dir in dirs)
             {
-                if (!dir.Contains("256.95")) continue;
+                bool contains = false;
+                foreach (var item in listFreqs)
+                {
+                    if (dir.Contains(item.ToString()))
+                    {
+                        contains= true;
+                        break;
+                    }
+                }
+                if (!contains) continue;
                 var res = SlotHelper.GetFileSlots(dir);
                 if (res.Slots.Any())
                 {
@@ -29,13 +42,22 @@ namespace Test
                     string adFile3 = $"F:\\{adFileName3}";
                     if (File.Exists(adFile1))
                     {
+                        if (File.Exists($"tmp1\\{Path.GetFileName(dir)}")) continue;
+                        Console.WriteLine($"正在拷贝第{count+1}组文件...");
                         File.Copy(dir, $"tmp1\\{Path.GetFileName(dir)}");
                         File.Copy(adFile1, $"tmp2\\{Path.GetFileName(adFile1)}");
                         File.Copy(adFile2, $"tmp2\\{Path.GetFileName(adFile2)}");
                         File.Copy(adFile3, $"tmp2\\{Path.GetFileName(adFile3)}");
+                        count++;
+                    }
+                    else
+                    {
+                        Console.WriteLine($"{Path.GetFileName(dir)}缺少{res.AdTime}时刻AD文件");
                     }
                 }
             }
+            Console.WriteLine($"拷贝了{count}组文件");
+            Console.ReadLine();
 
         }
     }

+ 1 - 0
Service/Test/Test.csproj

@@ -35,6 +35,7 @@
   </PropertyGroup>
   <ItemGroup>
     <Reference Include="System" />
+    <Reference Include="System.Configuration" />
     <Reference Include="System.Core" />
     <Reference Include="System.Xml.Linq" />
     <Reference Include="System.Data.DataSetExtensions" />

+ 2 - 2
Service/X2D1NoRefTaskServer54/App.config

@@ -23,8 +23,8 @@
 		<add key="StateRptDir" value="E:\StateRes"/>
 
 		<!--卫星及星历-->
-		<add key ="MainSatInfo" value="23467,-41275189.6404,5820330.8446,6331022.0431"/>
-		<add key ="Adja1SatInfo" value="40892,4694560.4826,41891872.2374,47531.3795"/>
+		<add key ="MainSatInfo" value="23467,-41382191.9136,5386554.5681,5909229.481"/>
+		<add key ="Adja1SatInfo" value="40892,4750288.2878,41880282.2295,19391.6018"/>
 
 		<!--定位时差系数-->
 		<add key="PosDtoFactor" value="-1"/>

+ 8 - 7
Service/X2D1NoRefTaskServer54/Controllers/X2D1NoRefTaskProcessingController.cs

@@ -8,6 +8,7 @@ using System.Web.Http;
 using XdCxRhDW.Dto;
 using XdCxRhDW.WebApi;
 using X2D1NoRefTaskServer54.Service;
+using System.Threading.Tasks;
 
 namespace X2D1NoRefTaskServer54.Controllers
 {
@@ -33,18 +34,18 @@ namespace X2D1NoRefTaskServer54.Controllers
         /// <param name="dto">任务信息</param>
         /// <returns></returns>
         [HttpPost]
-        public AjaxResult Run(X2D1NoRefTaskHandleDto dto)
+        public async Task<AjaxResult> Run(X2D1NoRefTaskHandleDto dto)
         {
             try
             {
-                LogHelper.Info($"接收到任务编号:{dto.ID}");
+                await LogHelper.Info($"接收到任务编号:{dto.ID}");
                 _service.StartAsync(dto);
                 return Success();
             }
             catch (Exception ex)
             {
-                Serilog.Log.Error(ex, "任务处理出错!");
-                return Error("任务处理出错");
+                await LogHelper.Error($"【任务{dto.ID}】任务执行出错!", ex);
+                return Error($"【任务{dto.ID}】任务执行出错!");
             }
         }
 
@@ -55,17 +56,17 @@ namespace X2D1NoRefTaskServer54.Controllers
         /// <param name="dto"></param>
         /// <returns></returns>
         [HttpPost]
-        public AjaxResult Stop(TaskStopHandleDto dto)
+        public async Task<AjaxResult> Stop(TaskStopHandleDto dto)
         {
             try
             {
-                LogHelper.Warning($"用户停止了任务,ID={dto.ID}");
+                await LogHelper.Warning($"用户停止了任务,ID={dto.ID}");
                 _service.Stop();
                 return Success();
             }
             catch (Exception ex)
             {
-                Serilog.Log.Error(ex, $"【任务{dto.ID}】停止执行异常!");
+                await LogHelper.Error($"【任务{dto.ID}】停止执行异常!", ex);
                 return Error($"【任务{dto.ID}】停止执行异常!");
             }
         }

+ 47 - 27
Service/X2D1NoRefTaskServer54/LogHelper.cs

@@ -12,35 +12,47 @@ namespace X2D1NoRefTaskServer54
     {
         public static Action<LogInfo> Logger;
         public static string BaseUrl;
-        public static void Info(string msg)
+        public static async Task Info(string msg)
         {
             var pro = Process.GetCurrentProcess();
-            _ = HttpHelper.PostRequestAsync<List<LogModulesResDto>>(BaseUrl + "Log/Add", new LogInfoDto()
+            try
             {
-                LogTime = DateTime.Now,
-                LogType = EnumLogTypeDto.Info,
-                Module = pro.ProcessName,
-                Msg = msg
-            });
+                await HttpHelper.PostRequestAsync<List<LogModulesResDto>>(BaseUrl + "Log/Add", new LogInfoDto()
+                {
+                    LogTime = DateTime.Now,
+                    LogType = EnumLogTypeDto.Info,
+                    Module = pro.ProcessName,
+                    Msg = msg
+                }, 5);
+            }
+            catch
+            {
+            }
             Serilog.Log.Information(msg);
-            Serilog.Log.Information("MainWindowTitle=" + pro.MainWindowTitle);
-            Serilog.Log.Information("ModuleName=" + pro.MainModule.ModuleName);
-            Serilog.Log.Information("FileName=" + pro.MainModule.FileName);
-            Logger?.Invoke(new LogInfo() { LogType = EnumLogType.Info, Msg = msg });
+            if (!string.IsNullOrWhiteSpace(pro.MainWindowTitle))
+                Logger?.Invoke(new LogInfo() { LogType = EnumLogType.Info, Msg = msg });
         }
-        public static void Warning(string msg, Exception ex = null)
+        public static async Task Warning(string msg, Exception ex = null)
         {
-            _ = HttpHelper.PostRequestAsync<List<LogModulesResDto>>(BaseUrl + "Log/Add", new LogInfoDto()
+            var pro = Process.GetCurrentProcess();
+            try
+            {
+                await HttpHelper.PostRequestAsync<List<LogModulesResDto>>(BaseUrl + "Log/Add", new LogInfoDto()
+                {
+                    LogTime = DateTime.Now,
+                    LogType = EnumLogTypeDto.Info,
+                    Module = pro.ProcessName,
+                    Msg = msg
+                }, 5);
+            }
+            catch
             {
-                LogTime = DateTime.Now,
-                LogType = EnumLogTypeDto.Warning,
-                Module = Process.GetCurrentProcess().ProcessName,
-                Msg = msg
-            });
+            }
             Serilog.Log.Warning(ex, msg);
-            Logger?.Invoke(new LogInfo() { LogType = EnumLogType.Warning, Msg = msg });
+            if (!string.IsNullOrWhiteSpace(pro.MainWindowTitle))
+                Logger?.Invoke(new LogInfo() { LogType = EnumLogType.Warning, Msg = msg });
         }
-        public static void Error(string msg, Exception ex = null)
+        public static async Task Error(string msg, Exception ex = null)
         {
             if (ex != null && ex.GetType() == typeof(AggregateException))
             {
@@ -48,15 +60,23 @@ namespace X2D1NoRefTaskServer54
                 if (iex != null)
                     ex = iex;
             }
-            _ = HttpHelper.PostRequestAsync<List<LogModulesResDto>>(BaseUrl + "Log/Add", new LogInfoDto()
+            var pro = Process.GetCurrentProcess();
+            try
             {
-                LogTime = DateTime.Now,
-                LogType = EnumLogTypeDto.Error,
-                Module = Process.GetCurrentProcess().ProcessName,
-                Msg = msg
-            });
+                await HttpHelper.PostRequestAsync<List<LogModulesResDto>>(BaseUrl + "Log/Add", new LogInfoDto()
+                {
+                    LogTime = DateTime.Now,
+                    LogType = EnumLogTypeDto.Info,
+                    Module = pro.ProcessName,
+                    Msg = msg
+                }, 5);
+            }
+            catch
+            {
+            }
             Serilog.Log.Error(ex, msg);
-            Logger?.Invoke(new LogInfo() { LogType = EnumLogType.Error, Msg = msg });
+            if (!string.IsNullOrWhiteSpace(pro.MainWindowTitle))
+                Logger?.Invoke(new LogInfo() { LogType = EnumLogType.Error, Msg = msg });
         }
     }
 }

+ 9 - 9
Service/X2D1NoRefTaskServer54/MainForm.cs

@@ -57,7 +57,7 @@ namespace X2D1NoRefTaskServer54
                     var rsp = await HttpHelper.GetRequestAsync<string>(getIpUrl, 10);
                     if (rsp.code == 0)
                     {
-                        LogHelper.Error(rsp.msg);
+                        await LogHelper.Error(rsp.msg);
                         return;
                     }
                     else
@@ -68,13 +68,13 @@ namespace X2D1NoRefTaskServer54
                 }
                 catch (Exception ex)
                 {
-                    LogHelper.Error($"无法连接到平台{getIpUrl},请检测地址是否正确并确保平台防火墙允许端口通过", ex);
+                    await LogHelper.Error($"无法连接到平台{getIpUrl},请检测地址是否正确并确保平台防火墙允许端口通过", ex);
                     await Task.Delay(5000);
                 }
             }
-            LogHelper.Info($"本机IP={localIp}");
+            await LogHelper.Info($"本机IP={localIp}");
             Startup.Start(port, $"{System.Reflection.Assembly.GetExecutingAssembly().GetName().Name}.xml", "XdCxRhDW.Dto.xml");
-            LogHelper.Info($"服务启动成功.接口地址http://{localIp}:{port}/swagger");
+            await LogHelper.Info($"服务启动成功.接口地址http://{localIp}:{port}/swagger");
 
             string url;
             if (posPlatformAddr.EndsWith("/"))
@@ -96,22 +96,22 @@ namespace X2D1NoRefTaskServer54
                     });
                     if (res.code != 200)
                     {
-                        LogHelper.Error($"状态上报异常[url={url}].{res.msg}");
+                        await LogHelper.Error($"状态上报异常[url={url}].{res.msg}");
                         preSucceed = false;
                     }
                     else
                     {
                         if (!preSucceed)
-                            LogHelper.Info($"状态上报成功![url={url}]");
+                            await LogHelper.Info($"状态上报成功![url={url}]");
                         preSucceed = true;
                     }
                 }
                 catch (Exception ex)
                 {
-                    LogHelper.Error($"状态上报异常[url={url}]", ex);
+                    await LogHelper.Error($"状态上报异常[url={url}]", ex);
                     preSucceed = false;
                 }
-                await System.Threading.Tasks.Task.Delay(6000);
+                await Task.Delay(6000);
             }
         }
 
@@ -141,7 +141,7 @@ namespace X2D1NoRefTaskServer54
             }
             catch (Exception ex)
             {
-                LogHelper.Error("状态上报异常", ex);
+                _ = LogHelper.Error("状态上报异常", ex);
             }
         }
     }

+ 33 - 37
Service/X2D1NoRefTaskServer54/Service/TaskService.cs

@@ -56,10 +56,10 @@ namespace X2D1NoRefTaskServer54.Service
             cts = new CancellationTokenSource();
             Task.Run(async () =>
             {
-                LogHelper.Info($"【任务{dto.ID}】开始执行...");
-                LogHelper.Info($"【任务{dto.ID}】检测结果目录[{DetectDir}]");
-                LogHelper.Info($"【任务{dto.ID}】AD采集目录[{CapDir}]");
-                LogHelper.Info($"【任务{dto.ID}】状态上报输出目录[{StateDir}]");
+                await LogHelper.Info($"【任务{dto.ID}】开始执行...");
+                await LogHelper.Info($"【任务{dto.ID}】检测结果目录[{DetectDir}]");
+                await LogHelper.Info($"【任务{dto.ID}】AD采集目录[{CapDir}]");
+                await LogHelper.Info($"【任务{dto.ID}】状态上报输出目录[{StateDir}]");
                 //点击定位平台右上角查看接口可以在浏览器中查看平台提供的所有接口详细信息
                 while (!cts.IsCancellationRequested)
                 {
@@ -104,13 +104,13 @@ namespace X2D1NoRefTaskServer54.Service
                              .GroupBy(m => Convert.ToInt64(m.DayTime.ToString("yyyyMMdd") + m.FlagNo)).OrderBy(m => m.Key);
                         if (!groupFiles.Any())
                         {
-                            LogHelper.Info($"【任务{dto.ID}】等待扫描文件...");
+                            await LogHelper.Info($"【任务{dto.ID}】等待扫描文件...");
                             await Task.Delay(10000);
                         }
                         foreach (var groupFile in groupFiles)//每一组文件代表同一个时刻的
                         {
                             if (cts.IsCancellationRequested) break;
-                            LogHelper.Info($"【任务{dto.ID}】正在解析序号为{groupFile.First().FlagNo}的检测引导文件");
+                            await LogHelper.Info($"【任务{dto.ID}】正在解析序号为{groupFile.First().FlagNo}的检测引导文件");
                             List<SlotsInfo> listSlotsInfo = new List<SlotsInfo>();//多个频点的时隙结果
                             int idx = 0;
                             DateTime adTime = DateTime.MinValue;
@@ -120,7 +120,7 @@ namespace X2D1NoRefTaskServer54.Service
                                 var slotsInfo = SlotHelper.GetFileSlots(item.File);//某个频点的所有时隙
                                 adTime = slotsInfo.AdTime;
                                 if (idx == 0)
-                                    LogHelper.Info($"【任务{dto.ID}】序号为{groupFile.First().FlagNo}的检测引导文件对应采集时刻{slotsInfo.AdTime:yyyyMMddHHmmss}");
+                                    await LogHelper.Info($"【任务{dto.ID}】序号为{groupFile.First().FlagNo}的检测引导文件对应采集时刻{slotsInfo.AdTime:yyyyMMddHHmmss}");
                                 idx++;
                                 if (slotsInfo.Slots.Any())
                                     listSlotsInfo.Add(slotsInfo);
@@ -141,7 +141,7 @@ namespace X2D1NoRefTaskServer54.Service
 
                             if (adFiles.Count() != 3)
                             {
-                                LogHelper.Warning($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻原始AD文件个数不为3,跳过此组文件");
+                                await LogHelper.Warning($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻原始AD文件个数不为3,跳过此组文件");
                                 //AD数据不全,删除所有对应时刻的采集文件
                                 foreach (var item in adFiles)
                                 {
@@ -152,7 +152,7 @@ namespace X2D1NoRefTaskServer54.Service
                             var first = listSlotsInfo.First();
                             var sigs = listSlotsInfo.Select(p => new DDCSig() { FreqDownHz = (int)(p.FreqDownMHz * 1e6), Mult = (int)first.Multi, Slots = p });
                             List<DDCFile> chDDCFiles = new List<DDCFile>();//同一个时刻多个频点多个通道的DDC数据
-                            LogHelper.Info($"【任务{dto.ID}】{listSlotsInfo.First().AdTime:yyyyMMddHHmmss}时刻DDC处理开始,共{sigs.Count()}个频点...");
+                            await LogHelper.Info($"【任务{dto.ID}】{listSlotsInfo.First().AdTime:yyyyMMddHHmmss}时刻DDC处理开始,共{sigs.Count()}个频点...");
                             Stopwatch sw = new Stopwatch();
                             sw.Start();
                             var listTask = new List<Task>();
@@ -162,18 +162,16 @@ namespace X2D1NoRefTaskServer54.Service
                                 {
                                     var ddcRes = DDCHelper.DDC(adFile.File, adFile.AdTime, adFile.ChNo, (long)(first.FsampleM * 1e6), (long)(227 * 1e6), "DdcDir", sigs);
                                     chDDCFiles.AddRange(StringToDDCFile(ddcRes));
-                                    if (!Debugger.IsAttached)
-                                        File.Delete(adFile.File);//删除AD文件
                                 }, cts.Token);
                                 listTask.Add(task);
                             }
                             await Task.WhenAll(listTask);
                             if (cts.IsCancellationRequested) break;
                             sw.Stop();
-                            LogHelper.Info($"【任务{dto.ID}】{listSlotsInfo.First().AdTime:yyyyMMddHHmmss}时刻3路AD文件DDC处理完成,耗时{sw.ElapsedMilliseconds}ms");
+                            await LogHelper.Info($"【任务{dto.ID}】{listSlotsInfo.First().AdTime:yyyyMMddHHmmss}时刻3路AD文件DDC处理完成,耗时{sw.ElapsedMilliseconds}ms");
                             if (!chDDCFiles.Any())
                             {
-                                LogHelper.Error($"【任务{dto.ID}】{listSlotsInfo.First().AdTime:yyyyMMddHHmmss}时刻3路AD文件DDC处理无结果");
+                                await LogHelper.Error($"【任务{dto.ID}】{listSlotsInfo.First().AdTime:yyyyMMddHHmmss}时刻3路AD文件DDC处理无结果");
                                 continue;
                             }
                             var groupDDCFiles = chDDCFiles.GroupBy(p => p.FreqDownMHz);
@@ -188,24 +186,24 @@ namespace X2D1NoRefTaskServer54.Service
                                     var ch2File = group.Where(p => p.ChNo == 2).FirstOrDefault();
                                     if (ch0File == null)
                                     {
-                                        LogHelper.Warning($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{group.Key}MHz-未找到主星信号ch0文件,跳过此组数据");
+                                        await LogHelper.Warning($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{group.Key}MHz-未找到主星信号ch0文件,跳过此组数据");
                                         return;
                                     }
                                     if (ch1File == null)
                                     {
-                                        LogHelper.Warning($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{group.Key}MHz-未找到邻星信号ch1文件,跳过此组数据");
+                                        await LogHelper.Warning($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{group.Key}MHz-未找到邻星信号ch1文件,跳过此组数据");
                                         return;
                                     }
                                     if (ch2File == null)
                                     {
-                                        LogHelper.Warning($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{group.Key}MHz-未找到超短信号ch2文件,跳过此组数据");
+                                        await LogHelper.Warning($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{group.Key}MHz-未找到超短信号ch2文件,跳过此组数据");
                                         return;
                                     }
                                     var sig = sigs.FirstOrDefault(p => p.FreqDownHz == (int)(group.Key * 1e6));
 
                                     if (cts.IsCancellationRequested) return;
 
-                                    LogHelper.Info($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{group.Key}MHz-CPU参估开始,共{sig.Slots.Slots.Count}个突发...");
+                                    await LogHelper.Info($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{group.Key}MHz-CPU参估开始,共{sig.Slots.Slots.Count}个突发...");
                                     sw.Start();
                                     string mainFile = await HttpHelper.UploadFileAsync(ch0File.File, baseUrl, token: cts.Token);//主星文件
                                     string adja1File = await HttpHelper.UploadFileAsync(ch1File.File, baseUrl, token: cts.Token);//邻1星文件
@@ -224,12 +222,12 @@ namespace X2D1NoRefTaskServer54.Service
                                     var result1 = await HttpHelper.PostRequestAsync<List<CpuCgResDto>>(baseUrl + "DetectCg/CpuCgMultiCalc", cgDto, token: cts.Token);
                                     if (result1.code != 200)
                                     {
-                                        LogHelper.Error($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻主星邻星CPU参估出错.{result1.msg}");
+                                        await LogHelper.Error($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻主星邻星CPU参估出错.{result1.msg}");
                                         return;
                                     }
                                     cgDto = new CpuCgMultiDto()
                                     {
-                                        dtCenter = 260000,
+                                        dtCenter = -260000,
                                         dtRange = 50000,
                                         file1 = mainFile,
                                         file2 = cdbFile,
@@ -240,11 +238,11 @@ namespace X2D1NoRefTaskServer54.Service
                                     var result2 = await HttpHelper.PostRequestAsync<List<CpuCgResDto>>(baseUrl + "DetectCg/CpuCgMultiCalc", cgDto, token: cts.Token);
                                     if (result2.code != 200)
                                     {
-                                        LogHelper.Error($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{group.Key}MHz-主星超短CPU参估出错.{result2.msg}");
+                                        await LogHelper.Error($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{group.Key}MHz-主星超短CPU参估出错.{result2.msg}");
                                         return;
                                     }
                                     sw.Stop();
-                                    LogHelper.Info($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{group.Key}MHz-CPU参估完成,耗时{sw.ElapsedMilliseconds}ms");
+                                    await LogHelper.Info($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{group.Key}MHz-CPU参估完成,耗时{sw.ElapsedMilliseconds}ms");
                                     var signaldto = new SignalProcDto()
                                     {
                                         File = mainFile,
@@ -254,22 +252,20 @@ namespace X2D1NoRefTaskServer54.Service
                                     var signalResult = await HttpHelper.PostRequestAsync<List<SignalProcResDto>>(baseUrl + "DetectCg/SignalProc", signaldto);
                                     if (signalResult.code != 200)
                                     {
-                                        LogHelper.Error($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{group.Key}MHz-主星信号识别出错.{signalResult.msg}");
+                                        await LogHelper.Error($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{group.Key}MHz-主星信号识别出错.{signalResult.msg}");
                                         return;
 
                                     }
-
-                                    LogHelper.Info($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{group.Key}MHz-主星超短CPU参估完成");
                                     var data1 = result1.data;
                                     var data2 = result2.data;
                                     if (data1.Count != data2.Count || data1.Count != cgDto.smpPositions.Count)
                                     {
-                                        LogHelper.Error($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{group.Key}MHz-参估结果个数和检测结果个数不匹配");
+                                        await LogHelper.Error($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{group.Key}MHz-参估结果个数和检测结果个数不匹配");
                                         return;
                                     }
                                     if (data1.Count != signalResult.data.Count)
                                     {
-                                        LogHelper.Error($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{group.Key}MHz-信号识别结果个数和检测结果个数不匹配");
+                                        await LogHelper.Error($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{group.Key}MHz-信号识别结果个数和检测结果个数不匹配");
                                         return;
                                     }
                                     sw.Start();
@@ -314,7 +310,7 @@ namespace X2D1NoRefTaskServer54.Service
                                             var result = await HttpHelper.PostRequestAsync<PosResDto>(baseUrl + "Pos/PosX2D1NoParAsync", x21d);
                                             if (result.code != 200)
                                             {
-                                                LogHelper.Error($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{group.Key}MHz-时隙位置{data1[i].Smpstart}定位异常.{result.msg}");
+                                                await LogHelper.Error($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{group.Key}MHz-时隙位置{data1[i].Smpstart}定位异常.{result.msg}");
                                             }
                                             else
                                             {
@@ -383,8 +379,8 @@ namespace X2D1NoRefTaskServer54.Service
                                                 sb.Append($"{(long)errRes.DipAngle:D7}\t");//倾角°
                                                 sb.Append($"{data1.Count:D2}\t");//时隙属性
                                                 sb.Append($"{1}\t");//所属卫星
-                                                sb.Append($"{950:D3}\t");//置信度
-                                                sb.Append($"{3}\t");//定位体制(星地=3)
+                                                sb.Append($"{100:D3}\t");//置信度
+                                                sb.Append($"{3}\t");//定位体制(0未知,1高轨多星,2高低轨,3星地,4星座)
                                                 sb.Append($"{(long)signalResult.data[i].Rate:D12}");//符号速率bps
                                                 sb.Append("\r\n");
                                                 string resFile = Path.Combine(PosResDir, $"两星一地定位结果_{posRes.SigTime:yyyyMMdd}.txt");
@@ -393,11 +389,11 @@ namespace X2D1NoRefTaskServer54.Service
                                         }
                                         catch (Exception ex)
                                         {
-                                            LogHelper.Error($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{group.Key}MHz-时隙位置{data1[i].Smpstart}定位异常", ex);
+                                            await LogHelper.Error($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{group.Key}MHz-时隙位置{data1[i].Smpstart}定位异常", ex);
                                         }
                                     }
                                     sw.Stop();
-                                    LogHelper.Info($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{group.Key}MHz-定位完成,耗时{sw.ElapsedMilliseconds}ms");
+                                    await LogHelper.Info($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{group.Key}MHz-定位完成,耗时{sw.ElapsedMilliseconds}ms");
                                     //删除DDC文件
                                     File.Delete(ch0File.File);
                                     File.Delete(ch1File.File);
@@ -411,14 +407,14 @@ namespace X2D1NoRefTaskServer54.Service
                     }
                     catch (TaskCanceledException ex)
                     {
-                        LogHelper.Warning($"【任务{dto.ID}】处理结束,用户手动终止", ex.InnerException);
+                        await LogHelper.Warning($"【任务{dto.ID}】处理结束,用户手动终止", ex.InnerException);
                     }
                     catch (Exception ex)
                     {
                         if (ex.InnerException != null && ex.InnerException.GetType() == typeof(TaskCanceledException))
-                            LogHelper.Warning($"【任务{dto.ID}】处理结束,用户手动终止", ex.InnerException);
+                            await LogHelper.Warning($"【任务{dto.ID}】处理结束,用户手动终止", ex.InnerException);
                         else
-                            LogHelper.Error($"【任务{dto.ID}】任务执行出错", ex);
+                            await LogHelper.Error($"【任务{dto.ID}】任务执行出错", ex);
                         continue;
                     }
                 }
@@ -449,17 +445,17 @@ namespace X2D1NoRefTaskServer54.Service
             await Task.Delay(2000);
             if (type == EnumTaskStopType.Properly)
             {
-                LogHelper.Info($"【任务{taskID}】{stopReason}");
+                await LogHelper.Info($"【任务{taskID}】{stopReason}");
             }
             else
             {
-                LogHelper.Error($"【任务{taskID}】{stopReason}");
+                await 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)
             {
-                LogHelper.Error($"【任务{taskID}】停止异常.{stopResp.msg}");
+                await LogHelper.Error($"【任务{taskID}】停止异常.{stopResp.msg}");
             }
         }
 

+ 8 - 7
Service/X2D1TaskServer54/Controllers/X3NoRefTaskProcessingController.cs

@@ -8,6 +8,7 @@ using System.Web.Http;
 using XdCxRhDW.Dto;
 using XdCxRhDW.WebApi;
 using X3TaskServer54.Service;
+using System.Threading.Tasks;
 
 namespace X3TaskServer54.Controllers
 {
@@ -33,18 +34,18 @@ namespace X3TaskServer54.Controllers
         /// <param name="dto">任务信息</param>
         /// <returns></returns>
         [HttpPost]
-        public AjaxResult Run(X3NoRefTaskHandleDto dto)
+        public async Task<AjaxResult> Run(X3NoRefTaskHandleDto dto)
         {
             try
             {
-                LogHelper.Info($"接收到任务编号:{dto.ID}");
+                await LogHelper.Info($"接收到任务编号:{dto.ID}");
                 _service.StartAsync(dto);
                 return Success();
             }
             catch (Exception ex)
             {
-                Serilog.Log.Error(ex, "任务处理出错!");
-                return Error("任务处理出错");
+                await LogHelper.Error($"【任务{dto.ID}】任务执行出错!", ex);
+                return Error($"【任务{dto.ID}】任务执行出错!");
             }
         }
 
@@ -55,17 +56,17 @@ namespace X3TaskServer54.Controllers
         /// <param name="dto"></param>
         /// <returns></returns>
         [HttpPost]
-        public AjaxResult Stop(TaskStopHandleDto dto)
+        public async Task<AjaxResult> Stop(TaskStopHandleDto dto)
         {
             try
             {
-                LogHelper.Warning($"用户停止了任务,ID={dto.ID}");
+                await LogHelper.Warning($"用户停止了任务,ID={dto.ID}");
                 _service.Stop();
                 return Success();
             }
             catch (Exception ex)
             {
-                Serilog.Log.Error(ex, $"【任务{dto.ID}】停止执行异常!");
+                await LogHelper.Error($"【任务{dto.ID}】停止执行异常!", ex);
                 return Error($"【任务{dto.ID}】停止执行异常!");
             }
         }

+ 47 - 27
Service/X2D1TaskServer54/LogHelper.cs

@@ -12,35 +12,47 @@ namespace X3TaskServer54
     {
         public static Action<LogInfo> Logger;
         public static string BaseUrl;
-        public static void Info(string msg)
+        public static async Task Info(string msg)
         {
             var pro = Process.GetCurrentProcess();
-            _ = HttpHelper.PostRequestAsync<List<LogModulesResDto>>(BaseUrl + "Log/Add", new LogInfoDto()
+            try
             {
-                LogTime = DateTime.Now,
-                LogType = EnumLogTypeDto.Info,
-                Module = pro.ProcessName,
-                Msg = msg
-            });
+                await HttpHelper.PostRequestAsync<List<LogModulesResDto>>(BaseUrl + "Log/Add", new LogInfoDto()
+                {
+                    LogTime = DateTime.Now,
+                    LogType = EnumLogTypeDto.Info,
+                    Module = pro.ProcessName,
+                    Msg = msg
+                }, 5);
+            }
+            catch
+            {
+            }
             Serilog.Log.Information(msg);
-            Serilog.Log.Information("MainWindowTitle=" + pro.MainWindowTitle);
-            Serilog.Log.Information("ModuleName=" + pro.MainModule.ModuleName);
-            Serilog.Log.Information("FileName=" + pro.MainModule.FileName);
-            Logger?.Invoke(new LogInfo() { LogType = EnumLogType.Info, Msg = msg });
+            if (!string.IsNullOrWhiteSpace(pro.MainWindowTitle))
+                Logger?.Invoke(new LogInfo() { LogType = EnumLogType.Info, Msg = msg });
         }
-        public static void Warning(string msg, Exception ex = null)
+        public static async Task Warning(string msg, Exception ex = null)
         {
-            _ = HttpHelper.PostRequestAsync<List<LogModulesResDto>>(BaseUrl + "Log/Add", new LogInfoDto()
+            var pro = Process.GetCurrentProcess();
+            try
+            {
+                await HttpHelper.PostRequestAsync<List<LogModulesResDto>>(BaseUrl + "Log/Add", new LogInfoDto()
+                {
+                    LogTime = DateTime.Now,
+                    LogType = EnumLogTypeDto.Info,
+                    Module = pro.ProcessName,
+                    Msg = msg
+                }, 5);
+            }
+            catch
             {
-                LogTime = DateTime.Now,
-                LogType = EnumLogTypeDto.Warning,
-                Module = Process.GetCurrentProcess().ProcessName,
-                Msg = msg
-            });
+            }
             Serilog.Log.Warning(ex, msg);
-            Logger?.Invoke(new LogInfo() { LogType = EnumLogType.Warning, Msg = msg });
+            if (!string.IsNullOrWhiteSpace(pro.MainWindowTitle))
+                Logger?.Invoke(new LogInfo() { LogType = EnumLogType.Warning, Msg = msg });
         }
-        public static void Error(string msg, Exception ex = null)
+        public static async Task Error(string msg, Exception ex = null)
         {
             if (ex != null && ex.GetType() == typeof(AggregateException))
             {
@@ -48,15 +60,23 @@ namespace X3TaskServer54
                 if (iex != null)
                     ex = iex;
             }
-            _ = HttpHelper.PostRequestAsync<List<LogModulesResDto>>(BaseUrl + "Log/Add", new LogInfoDto()
+            var pro = Process.GetCurrentProcess();
+            try
             {
-                LogTime = DateTime.Now,
-                LogType = EnumLogTypeDto.Error,
-                Module = Process.GetCurrentProcess().ProcessName,
-                Msg = msg
-            });
+                await HttpHelper.PostRequestAsync<List<LogModulesResDto>>(BaseUrl + "Log/Add", new LogInfoDto()
+                {
+                    LogTime = DateTime.Now,
+                    LogType = EnumLogTypeDto.Info,
+                    Module = pro.ProcessName,
+                    Msg = msg
+                }, 5);
+            }
+            catch
+            {
+            }
             Serilog.Log.Error(ex, msg);
-            Logger?.Invoke(new LogInfo() { LogType = EnumLogType.Error, Msg = msg });
+            if (!string.IsNullOrWhiteSpace(pro.MainWindowTitle))
+                Logger?.Invoke(new LogInfo() { LogType = EnumLogType.Error, Msg = msg });
         }
     }
 }

+ 9 - 9
Service/X2D1TaskServer54/MainForm.cs

@@ -46,7 +46,7 @@ namespace X3TaskServer54
             var port = Convert.ToInt32(ConfigurationManager.AppSettings["LocalHttpPort"].Trim());
             var svrID = ConfigurationManager.AppSettings["SvrID"].Trim();
             var posPlatformAddr = ConfigurationManager.AppSettings["PosPlatformAddr"].Trim();
-            LogHelper.BaseUrl = posPlatformAddr+"/api/";
+            LogHelper.BaseUrl = posPlatformAddr + "/api/";
             this.Text = EnumSvrType.X3NoRefTask54.GetEnumDisplayName() + "-" + svrID;
             string localIp;
             string getIpUrl = $"{posPlatformAddr}/api/task/getclientip";
@@ -57,7 +57,7 @@ namespace X3TaskServer54
                     var rsp = await HttpHelper.GetRequestAsync<string>(getIpUrl, 10);
                     if (rsp.code == 0)
                     {
-                        LogHelper.Error(rsp.msg);
+                        await LogHelper.Error(rsp.msg);
                         return;
                     }
                     else
@@ -68,13 +68,13 @@ namespace X3TaskServer54
                 }
                 catch (Exception ex)
                 {
-                    LogHelper.Error($"无法连接到平台{getIpUrl},请检测地址是否正确并确保平台防火墙允许端口通过", ex);
+                    await LogHelper.Error($"无法连接到平台{getIpUrl},请检测地址是否正确并确保平台防火墙允许端口通过", ex);
                     await Task.Delay(5000);
                 }
             }
-            LogHelper.Info($"本机IP={localIp}");
+            await LogHelper.Info($"本机IP={localIp}");
             Startup.Start(port, $"{System.Reflection.Assembly.GetExecutingAssembly().GetName().Name}.xml", "XdCxRhDW.Dto.xml");
-            LogHelper.Info($"服务启动成功.接口地址http://{localIp}:{port}/swagger");
+            await LogHelper.Info($"服务启动成功.接口地址http://{localIp}:{port}/swagger");
 
             string url;
             if (posPlatformAddr.EndsWith("/"))
@@ -96,19 +96,19 @@ namespace X3TaskServer54
                     });
                     if (res.code != 200)
                     {
-                        LogHelper.Error($"状态上报异常[url={url}].{res.msg}");
+                        await LogHelper.Error($"状态上报异常[url={url}].{res.msg}");
                         preSucceed = false;
                     }
                     else
                     {
                         if (!preSucceed)
-                            LogHelper.Info($"状态上报成功![url={url}]");
+                            await LogHelper.Info($"状态上报成功![url={url}]");
                         preSucceed = true;
                     }
                 }
                 catch (Exception ex)
                 {
-                    LogHelper.Error($"状态上报异常[url={url}]", ex);
+                    await LogHelper.Error($"状态上报异常[url={url}]", ex);
                     preSucceed = false;
                 }
                 await System.Threading.Tasks.Task.Delay(6000);
@@ -141,7 +141,7 @@ namespace X3TaskServer54
             }
             catch (Exception ex)
             {
-                LogHelper.Error("状态上报异常", ex);
+                _=LogHelper.Error("状态上报异常", ex);
             }
         }
     }

+ 60 - 32
Service/X2D1TaskServer54/Service/TaskService.cs

@@ -51,10 +51,10 @@ namespace X3TaskServer54.Service
             cts = new CancellationTokenSource();
             Task.Run(async () =>
             {
-                LogHelper.Info($"【任务{dto.ID}】开始执行...");
-                LogHelper.Info($"【任务{dto.ID}】检测结果目录[{DetectDir}]");
-                LogHelper.Info($"【任务{dto.ID}】AD采集目录[{CapDir}]");
-                LogHelper.Info($"【任务{dto.ID}】状态上报输出目录[{StateDir}]");
+                await LogHelper.Info($"【任务{dto.ID}】开始执行...");
+                await LogHelper.Info($"【任务{dto.ID}】检测结果目录[{DetectDir}]");
+                await LogHelper.Info($"【任务{dto.ID}】AD采集目录[{CapDir}]");
+                await LogHelper.Info($"【任务{dto.ID}】状态上报输出目录[{StateDir}]");
                 //点击定位平台右上角查看接口可以在浏览器中查看平台提供的所有接口详细信息
                 while (!cts.IsCancellationRequested)
                 {
@@ -102,14 +102,14 @@ namespace X3TaskServer54.Service
                              .GroupBy(m => Convert.ToInt64(m.DayTime.ToString("yyyyMMdd") + m.FlagNo)).OrderBy(m => m.Key);
                         if (!groupFiles.Any())
                         {
-                            LogHelper.Info($"【任务{dto.ID}】等待扫描文件...");
+                            await LogHelper.Info($"【任务{dto.ID}】等待扫描文件...");
                             await Task.Delay(10000);
                         }
 
                         foreach (var groupFile in groupFiles)//每一组文件代表同一个时刻的,gourpFile时相同时刻的不同频点的文件
                         {
                             if (cts.IsCancellationRequested) break;
-                            LogHelper.Info($"【任务{dto.ID}】正在解析序号为{groupFile.First().FlagNo}的检测引导文件");
+                            await LogHelper.Info($"【任务{dto.ID}】正在解析序号为{groupFile.First().FlagNo}的检测引导文件");
                             List<SlotsInfo> listSlotsInfo = new List<SlotsInfo>();//多个频点的时隙结果
                             int idx = 0;
                             DateTime adTime = DateTime.MinValue;
@@ -119,7 +119,7 @@ namespace X3TaskServer54.Service
                                 var slotsInfo = SlotHelper.GetFileSlots(item.File);//某个频点的所有时隙
                                 adTime = slotsInfo.AdTime;
                                 if (idx == 0)
-                                    LogHelper.Info($"【任务{dto.ID}】序号为{groupFile.First().FlagNo}的检测引导文件对应采集时刻{slotsInfo.AdTime:yyyyMMddHHmmss}");
+                                    await LogHelper.Info($"【任务{dto.ID}】序号为{groupFile.First().FlagNo}的检测引导文件对应采集时刻{slotsInfo.AdTime:yyyyMMddHHmmss}");
                                 idx++;
                                 if (slotsInfo.Slots.Any())
                                     listSlotsInfo.Add(slotsInfo);
@@ -140,7 +140,7 @@ namespace X3TaskServer54.Service
 
                             if (adFiles.Count() != 3)
                             {
-                                LogHelper.Warning($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻原始AD文件个数不为3,跳过此组文件");
+                                await LogHelper.Warning($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻原始AD文件个数不为3,跳过此组文件");
                                 //AD数据不全,删除所有对应时刻的采集文件
                                 foreach (var item in adFiles)
                                 {
@@ -151,7 +151,7 @@ namespace X3TaskServer54.Service
                             var first = listSlotsInfo.First();
                             var sigs = listSlotsInfo.Select(p => new DDCSig() { FreqDownHz = (int)(p.FreqDownMHz * 1e6), Mult = (int)first.Multi, Slots = p });
                             List<DDCFile> chDDCFiles = new List<DDCFile>();//同一个时刻多个频点多个通道的DDC数据
-                            LogHelper.Info($"【任务{dto.ID}】{listSlotsInfo.First().AdTime:yyyyMMddHHmmss}时刻3路AD文件开始DDC处理开始,共{sigs.Count()}个频点...");
+                            await LogHelper.Info($"【任务{dto.ID}】{listSlotsInfo.First().AdTime:yyyyMMddHHmmss}时刻3路AD文件开始DDC处理开始,共{sigs.Count()}个频点...");
                             Stopwatch sw = new Stopwatch();
                             sw.Start();
                             var listTask = new List<Task>();
@@ -167,10 +167,10 @@ namespace X3TaskServer54.Service
                             await Task.WhenAll(listTask);
                             if (cts.IsCancellationRequested) break;
                             sw.Stop();
-                            LogHelper.Info($"【任务{dto.ID}】{listSlotsInfo.First().AdTime:yyyyMMddHHmmss}时刻3路AD文件DDC处理完成,耗时{sw.ElapsedMilliseconds}ms");
+                            await LogHelper.Info($"【任务{dto.ID}】{listSlotsInfo.First().AdTime:yyyyMMddHHmmss}时刻3路AD文件DDC处理完成,耗时{sw.ElapsedMilliseconds}ms");
                             if (!chDDCFiles.Any())
                             {
-                                LogHelper.Error($"【任务{dto.ID}】{listSlotsInfo.First().AdTime:yyyyMMddHHmmss}时刻3路AD文件DDC处理无结果");
+                                await LogHelper.Error($"【任务{dto.ID}】{listSlotsInfo.First().AdTime:yyyyMMddHHmmss}时刻3路AD文件DDC处理无结果");
                                 continue;
                             }
                             var groupDDCFiles = chDDCFiles.GroupBy(p => p.FreqDownMHz);
@@ -185,22 +185,22 @@ namespace X3TaskServer54.Service
                                     var ch2File = group.Where(p => p.ChNo == 2).FirstOrDefault();
                                     if (ch0File == null)
                                     {
-                                        LogHelper.Warning($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{group.Key}MHz-未找到主星信号ch0文件,跳过此组数据");
+                                        await LogHelper.Warning($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{group.Key}MHz-未找到主星信号ch0文件,跳过此组数据");
                                         return;
                                     }
                                     if (ch1File == null)
                                     {
-                                        LogHelper.Warning($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{group.Key}MHz-未找到邻1星信号ch1文件,跳过此组数据");
+                                        await LogHelper.Warning($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{group.Key}MHz-未找到邻1星信号ch1文件,跳过此组数据");
                                         return;
                                     }
                                     if (ch2File == null)
                                     {
-                                        LogHelper.Warning($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{group.Key}MHz-未找到邻2星信号ch2文件,跳过此组数据");
+                                        await LogHelper.Warning($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{group.Key}MHz-未找到邻2星信号ch2文件,跳过此组数据");
                                         return;
                                     }
                                     var sig = sigs.FirstOrDefault(p => p.FreqDownHz == (int)(group.Key * 1e6));
                                     if (cts.IsCancellationRequested) return;
-                                    LogHelper.Info($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{group.Key}MHz-CPU参估开始,共{sig.Slots.Slots.Count}个突发...");
+                                    await LogHelper.Info($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{group.Key}MHz-CPU参估开始,共{sig.Slots.Slots.Count}个突发...");
                                     sw.Start();
                                     string mainFile = await HttpHelper.UploadFileAsync(ch0File.File, baseUrl, token: cts.Token);//主星文件
                                     string adja1File = await HttpHelper.UploadFileAsync(ch1File.File, baseUrl, token: cts.Token);//邻1星文件
@@ -218,7 +218,7 @@ namespace X3TaskServer54.Service
                                     var result1 = await HttpHelper.PostRequestAsync<List<CpuCgResDto>>(baseUrl + "DetectCg/CpuCgMultiCalc", cgDto, token: cts.Token);
                                     if (result1.code != 200)
                                     {
-                                        LogHelper.Error($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{group.Key}MHz-主星邻1星CPU参估出错.{result1.msg}");
+                                        await LogHelper.Error($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{group.Key}MHz-主星邻1星CPU参估出错.{result1.msg}");
                                         return;
                                     }
                                     cgDto = new CpuCgMultiDto()
@@ -235,17 +235,30 @@ namespace X3TaskServer54.Service
                                     sw.Stop();
                                     if (result2.code != 200)
                                     {
-                                        LogHelper.Error($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{group.Key}MHz-主星邻2星CPU参估出错.{result2.msg}");
+                                        await LogHelper.Error($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{group.Key}MHz-主星邻2星CPU参估出错.{result2.msg}");
                                         return;
                                     }
-                                    LogHelper.Info($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{group.Key}MHz-CPU参估完成,耗时{sw.ElapsedMilliseconds}ms");
+                                    await LogHelper.Info($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{group.Key}MHz-CPU参估完成,耗时{sw.ElapsedMilliseconds}ms");
                                     var data1 = result1.data;
                                     var data2 = result2.data;
                                     if (data1.Count != data2.Count || data1.Count != cgDto.smpPositions.Count)
                                     {
-                                        LogHelper.Error($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{group.Key}MHz-参估结果个数和检测结果个数不匹配");
+                                        await LogHelper.Error($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{group.Key}MHz-参估结果个数和检测结果个数不匹配");
                                         return;
                                     }
+                                    var signaldto = new SignalProcDto()
+                                    {
+                                        File = mainFile,
+                                        Fs = ch0File.Fs,
+                                        Smps = cgDto.smpPositions,
+                                    };
+                                    var signalResult = await HttpHelper.PostRequestAsync<List<SignalProcResDto>>(baseUrl + "DetectCg/SignalProc", signaldto);
+                                    if (signalResult.code != 200)
+                                    {
+                                        await LogHelper.Error($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{group.Key}MHz-主星信号识别出错.{signalResult.msg}");
+                                        return;
+
+                                    }
                                     sw.Start();
                                     for (int i = 0; i < data1.Count; i++)
                                     {
@@ -290,7 +303,7 @@ namespace X3TaskServer54.Service
                                             var result = await HttpHelper.PostRequestAsync<PosResDto>(baseUrl + "Pos/PosX3TwoDtoNoParAsync", x3);
                                             if (result.code != 200)
                                             {
-                                                LogHelper.Error($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{group.Key}MHz-时隙位置{data1[i].Smpstart}定位异常.{result.msg}");
+                                                await LogHelper.Error($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{group.Key}MHz-时隙位置{data1[i].Smpstart}定位异常.{result.msg}");
                                             }
                                             else
                                             {
@@ -313,7 +326,7 @@ namespace X3TaskServer54.Service
                                                 sb.Append($"{x3.CheckRes.SmpCount * 1000 / ch0File.Fs:D4}\t");//信号持续时间ms
                                                 sb.Append($"{Convert.ToInt64(group.First().FreqDownMHz * 1e6):D12}\t");//下行频点
                                                 sb.Append($"{Convert.ToInt64((group.First().FreqDownMHz + 44) * 1e6):D12}\t");//上行频点
-                                                sb.Append($"{4}\t");//信号样式(暂定有这些1:CPM,2:BPSK,4:QPSK,9:其它),
+                                                sb.Append($"{GetSignalType(signalResult.data[i].ModType)}\t");//信号样式(暂定有这些1:CPM,2:BPSK,4:QPSK,9:其他),
                                                 sb.Append($"{0:D4}\t");//目标序号
                                                 sb.Append($"res\t");
                                                 sb.Append($"{Convert.ToInt64(posLon * 1e6):D10}\t");
@@ -333,9 +346,9 @@ namespace X3TaskServer54.Service
                                                 sb.Append($"{0:D7}\t");//倾角
                                                 sb.Append($"{data1.Count:D2}\t");//时隙属性
                                                 sb.Append($"{1}\t");//所属卫星
-                                                sb.Append($"{950:D3}\t");//置信度
-                                                sb.Append($"{3}\t");//定位体制(星地=3)
-                                                sb.Append($"{1335:D12}");//符号速率bps  12个
+                                                sb.Append($"{100:D3}\t");//置信度
+                                                sb.Append($"{1}\t");//定位体制(0未知,1高轨多星,2高低轨,3星地,4星座)
+                                                sb.Append($"{(long)signalResult.data[i].Rate:D12}");//符号速率bps
                                                 sb.Append("\r\n");
                                                 string resFile = Path.Combine(PosResDir, $"高轨三星定位结果_{posRes.SigTime:yyyyMMdd}.txt");
                                                 File.AppendAllText(resFile, sb.ToString());
@@ -343,11 +356,11 @@ namespace X3TaskServer54.Service
                                         }
                                         catch (Exception ex)
                                         {
-                                            LogHelper.Error($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{group.Key}MHz-时隙位置{data1[i].Smpstart}定位异常", ex);
+                                            await LogHelper.Error($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{group.Key}MHz-时隙位置{data1[i].Smpstart}定位异常", ex);
                                         }
                                     }
                                     sw.Stop();
-                                    LogHelper.Info($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{group.Key}MHz-定位完成,耗时{sw.ElapsedMilliseconds}ms");
+                                    await LogHelper.Info($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{group.Key}MHz-定位完成,耗时{sw.ElapsedMilliseconds}ms");
                                     //删除DDC文件
                                     File.Delete(ch0File.File);
                                     File.Delete(ch1File.File);
@@ -361,14 +374,14 @@ namespace X3TaskServer54.Service
                     }
                     catch (TaskCanceledException ex)
                     {
-                        LogHelper.Warning($"【任务{dto.ID}】处理结束,用户手动终止", ex.InnerException);
+                        await LogHelper.Warning($"【任务{dto.ID}】处理结束,用户手动终止", ex.InnerException);
                     }
                     catch (Exception ex)
                     {
                         if (ex.InnerException != null && ex.InnerException.GetType() == typeof(TaskCanceledException))
-                            LogHelper.Warning($"【任务{dto.ID}】处理结束,用户手动终止", ex.InnerException);
+                            await LogHelper.Warning($"【任务{dto.ID}】处理结束,用户手动终止", ex.InnerException);
                         else
-                            LogHelper.Error($"【任务{dto.ID}】任务执行出错", ex);
+                            await LogHelper.Error($"【任务{dto.ID}】任务执行出错", ex);
                         continue;
                     }
                 }
@@ -378,22 +391,37 @@ namespace X3TaskServer54.Service
         {
             cts?.Cancel();
         }
+        private int GetSignalType(EnumSignalTypeDto modType)
+        {
+#warning 没有CPM调制方式
+            //1:CPM,2:BPSK,4:QPSK,9:其他
+            int signalType = 9;
+            if (modType == EnumSignalTypeDto.BPSK)
+            {
+                signalType = 2;
+            }
+            else if (modType == EnumSignalTypeDto.QPSK)
+            {
+                signalType = 4;
+            }
+            return signalType;
+        }
         private async Task StopTask(int taskID, EnumTaskStopType type, string stopReason)
         {
             await Task.Delay(2000);
             if (type == EnumTaskStopType.Properly)
             {
-                LogHelper.Info($"【任务{taskID}】{stopReason}");
+                await LogHelper.Info($"【任务{taskID}】{stopReason}");
             }
             else
             {
-                LogHelper.Error($"【任务{taskID}】{stopReason}");
+                await 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)
             {
-                LogHelper.Error($"【任务{taskID}】停止异常.{stopResp.msg}");
+                await LogHelper.Error($"【任务{taskID}】停止异常.{stopResp.msg}");
             }
         }
 

+ 1 - 1
XdCxRhDW.App/ExtensionsDev/MapControlEx.cs

@@ -89,7 +89,7 @@ public static class MapControlEx
     private static GoogleMapType mMapType = GoogleMapType.Normal;
     private static List<MapControl> listMapCtrl = new List<MapControl>();
     private const int _dotSize = 8;
-    private const int _selectedDotSize = 18;
+    private const int _selectedDotSize = 12;
 
     /// <summary>
     /// <para>设置地图通用属性并创建4个Layer.</para>

+ 29 - 0
定位结果输出结构体.txt

@@ -0,0 +1,29 @@
+ quint16 uRunID;//批号(0-9999)
+        AppearTime_T uAppearTime ;//目标出现时间(13字节长度,年月日时分秒毫秒微妙纳秒,越精确越好),
+        quint16 uKeepTimeS;//信号持续时间(秒s), 2024.6.14暂定为设备状态 0故障 1正常
+        quint32 uDownFreqHz;//下行频率(Hz),
+        quint32 uUpFreqHz;//上行频率(Hz),
+        quint8  uSigType;//信号样式(暂定有这些1:CPM,2:BPSK,4:QPSK,9:qita), 2024.6.14暂定为设备状态 0存储版异常 1声卡故障 2采集卡故障
+        quint32 uLon;//经度(小数点后6位,乘以1e6),
+        quint32 uLat;//纬度(小数点后6位,乘以1e6),
+        quint32 uError;//定位误差(kM)(小数点后3位,乘以1e3),
+        quint8  uPositionType;//定位体制(0未知,1高轨多星,2高低轨,3星地,4星座)
+        qint32  uTDOA1_us;	 //时差1(小数点后6位,乘以1e6),
+        qint32  uFDOA1_Hz;	 //频差1(小数点后6位,乘以1e6),
+        qint32  uCor1SNRdB;	 //相关信噪比1 dB
+        qint32  uTDOA2_us;	 //时差2(小数点后6位,乘以1e6),
+        qint32  uFDOA2_Hz;	 //频差2(小数点后6位,乘以1e6),
+        qint32  uCor2SNRdB;	 //相关信噪比2 dB
+        qint32  uTDOA3_us;	 //时差3(小数点后6位,乘以1e6),
+        qint32  uFDOA3_Hz;	 //频差3(小数点后6位,乘以1e6),
+        qint32  uCor3SNRdB;	 //相关信噪比3 dB
+        quint8  uSportAttri;  //运动属性()
+        quint8  uTimeSlotAttri;//时隙属性,
+        quint8  uSateLLite;//所属卫星,
+        qint32  uLangAxis;//长轴,
+        qint32  uShortAxis;//短轴,
+        qint32  uObliquity;//倾角,
+        qint16  uConfidenceLevel;//置信度
+        quint32 uSymbolRs;//符号速率Hz(4.8K,9.6K,19.2K,16K) 2024.6.4
+        quint8  uIsChange;//是否需要改变地图上已有的点位 0否 1是
+        quint8  uIsSend;//是否发送过或者融合过 0否 1是