wyq 1 year ago
parent
commit
23f0dc0363

+ 4 - 4
Service/X2D1NoRefTaskServer54/App.config

@@ -29,11 +29,11 @@
 		<!--定位时差系数-->
 		<add key="PosDtoFactor" value="-1"/>
 
-		<!--时差误差-->
-		<add key="DtoErrus" value=""/>
+		<!--时差误差(单位:us)-->
+		<add key="DtoErrus" value="1"/>
 
-		<!--星历误差-->
-		<add key="EphErrm" value=""/>
+		<!--星历误差(单位:m)-->
+		<add key="EphErrm" value="10000"/>
 
 	</appSettings>
 	<startup>

+ 30 - 12
Service/X2D1NoRefTaskServer54/Service/HistoryTaskService.cs

@@ -25,6 +25,9 @@ namespace X2D1NoRefTaskServer54.Service
         int MainSatCode, Adja1SatCode;
         double[] MainSatXYZ, Adja1SatXYZ;
         int PosDtoFactor;
+        double DtoErrus;
+        double EphErrm;
+
         public HistoryTaskService()
         {
             var posPlatformAddr = ConfigurationManager.AppSettings["PosPlatformAddr"].Trim();//like http://127.0.0.1:8091 or http://127.0.0.1:8091/
@@ -40,6 +43,10 @@ namespace X2D1NoRefTaskServer54.Service
             var PosDtoFactorstr = ConfigurationManager.AppSettings["PosDtoFactor"].Trim();
             int.TryParse(PosDtoFactorstr, out PosDtoFactor);
             if (PosDtoFactor == 0) PosDtoFactor = 1;
+            var DtoErrusstr = ConfigurationManager.AppSettings["DtoErrus"].Trim();
+            double.TryParse(DtoErrusstr, out DtoErrus);
+            var EphErrmstr = ConfigurationManager.AppSettings["EphErrm"].Trim();
+            double.TryParse(EphErrmstr, out EphErrm);
         }
         public void StartAsync(X2D1NoRefTaskHandleDto dto)
         {
@@ -72,16 +79,12 @@ namespace X2D1NoRefTaskServer54.Service
                         {
                             var mainInfo = ConfigurationManager.AppSettings["MainSatInfo"].Replace(",", ",").Trim();
                             var adja1Info = ConfigurationManager.AppSettings["Adja1SatInfo"].Replace(",", ",").Trim();
-                            //var adja2Info = ConfigurationManager.AppSettings["Adja2SatInfo"].Replace(",", ",").Trim();
                             var arr1 = mainInfo.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
                             var arr2 = adja1Info.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
-                            // var arr3 = adja2Info.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
                             MainSatCode = Convert.ToInt32(arr1[0]);
                             Adja1SatCode = Convert.ToInt32(arr2[0]);
-                            //Adja2SatCode = Convert.ToInt32(arr3[0]);
                             MainSatXYZ = new double[3] { Convert.ToDouble(arr1[1]), Convert.ToDouble(arr1[2]), Convert.ToDouble(arr1[3]) };
                             Adja1SatXYZ = new double[3] { Convert.ToDouble(arr2[1]), Convert.ToDouble(arr2[2]), Convert.ToDouble(arr2[3]) };
-                            //Adja2SatXYZ = new double[3] { Convert.ToDouble(arr3[1]), Convert.ToDouble(arr3[2]), Convert.ToDouble(arr3[3]) };
                         }
                         catch
                         {
@@ -203,6 +206,7 @@ namespace X2D1NoRefTaskServer54.Service
                                     LogHelper.Error($"【任务{dto.ID}】{capTime:yyyyMMddHHmmss}时刻主星超短CPU参估出错.{result2.msg}");
                                     continue;
                                 }
+
                                 //删除DDC文件
                                 File.Delete(ch0File.File);
                                 File.Delete(ch1File.File);
@@ -241,7 +245,10 @@ namespace X2D1NoRefTaskServer54.Service
                                             XdSnr = data2[i].Snr,
                                             SatTxLon = dto.CapLon,
                                             SatTxLat = dto.CapLat,
+                                            CdbTxLon = dto.CdbLon,
+                                            CdbTxLat = dto.CdbLat,
                                             FreqDown = ch0File.FreqDownMHz * 1e6,
+                                            FreqUp = ch0File.FreqDownMHz * 1e6,
                                             CheckRes = new CheckResDto()
                                             {
                                                 FileName = Path.GetFileName(ch0File.File),
@@ -265,10 +272,19 @@ namespace X2D1NoRefTaskServer54.Service
                                                 posLon = 0;
                                                 posLat = 0;
                                             }
-                                            double[] cdbPos= new double[] { 0, 0, 0 };
-                                            double[] RefGeod= new double[] { 0, 0, 0 };
-                                            //GdopHelper.ErrorEllipse2X1D(posLon, posLat, MainSatXYZ, Adja1SatXYZ, cdbPos, RefGeod,);
-
+                                            double longAxis = 0, shortAxis = 0, dipAngle = 0;
+                                            if (posLon != 0 &&posLat != 0 &&posLon != 999&& posLat != 999)
+                                            {
+                                                double[] cdbPos = new double[] { dto.CdbLon, dto.CdbLat, 0 };
+                                                double[] refGeod = new double[] { 0, 0, 0 };
+                                                double[] errorEllipse = GdopHelper.ErrorEllipse2X1D(posLon, posLat, MainSatXYZ, Adja1SatXYZ, cdbPos, refGeod, DtoErrus, EphErrm);
+                                                if (errorEllipse.Length == 3)
+                                                {
+                                                    longAxis = errorEllipse[0];
+                                                    shortAxis = errorEllipse[1];
+                                                    dipAngle = errorEllipse[2];
+                                                }
+                                            }
                                             StringBuilder sb = new StringBuilder();
                                             sb.Append($"{x21d.SigTime:yyyy}\t");
                                             sb.Append($"{x21d.SigTime:MM}\t");
@@ -295,13 +311,15 @@ namespace X2D1NoRefTaskServer54.Service
                                             sb.Append($"{Convert.ToInt64(0 * 1e2):D10}\t");
                                             sb.Append($"{Convert.ToInt64(0 * 1e2):D10}\t");
                                             sb.Append($"{Convert.ToInt64(0 * 1e2):D6}\t");
-                                            sb.Append($"{0:D8}\t");//长轴
-                                            sb.Append($"{0:D8}\t");//短轴
-                                            sb.Append($"{0:D7}\t");//倾角
+                                            sb.Append($"{longAxis:D8}\t");//长轴
+                                            sb.Append($"{shortAxis:D8}\t");//短轴
+                                            sb.Append($"{dipAngle:D7}\t");//倾角
                                             sb.Append($"{data1.Count:D2}\t");//时隙属性
                                             sb.Append($"{1}\t");//所属卫星
                                             sb.Append($"{950:D3}\t");//置信度
-                                            sb.Append($"{3}\r\n");//定位体制(星地=3)
+                                            sb.Append($"{3}");//定位体制(星地=3)
+                                            sb.Append($"QPSK");//调制类型
+                                            sb.Append($"1.33\r\n");//符号速率kbps
                                             string resFile = Path.Combine(PosResDir, $"定位结果_{posRes.SigTime:yyyyMMdd}.txt");
                                             File.AppendAllText(resFile, sb.ToString());
                                         }