|
@@ -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());
|
|
|
}
|