|
@@ -24,6 +24,9 @@ namespace X3LeoTaskServer54.Service
|
|
|
int PosDtoFactor;
|
|
|
double DtoErrus;
|
|
|
double EphErrm;
|
|
|
+ int mainSatCode;
|
|
|
+ int adja1SatCode;
|
|
|
+ int adja2SatCode;
|
|
|
|
|
|
public TaskService()
|
|
|
{
|
|
@@ -79,10 +82,13 @@ namespace X3LeoTaskServer54.Service
|
|
|
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 = GetEph(arr1);
|
|
|
Adja1SatXYZ = GetEph(arr2);
|
|
|
Adja2SatXYZ = GetEph(arr3);
|
|
|
- var tarEcef = PhysicsHelper.GeoToEcef((110, 14, 0));
|
|
|
+ var tarEcef = PhysicsHelper.GeoToEcef((115, 11, 0));
|
|
|
var recEcef = PhysicsHelper.GeoToEcef((dto.CapLon, dto.CapLat, 0));
|
|
|
var dt1 = PhysicsHelper.Dto(tarEcef, (MainSatXYZ[0], MainSatXYZ[1], MainSatXYZ[2]), recEcef);
|
|
|
var dt2 = PhysicsHelper.Dto(tarEcef, (Adja1SatXYZ[0], Adja1SatXYZ[1], Adja1SatXYZ[2]), recEcef);
|
|
@@ -152,7 +158,7 @@ namespace X3LeoTaskServer54.Service
|
|
|
var cgDto = new CpuCgMultiDto()
|
|
|
{
|
|
|
dtCenter = 0,
|
|
|
- dtRange = 40000,
|
|
|
+ dtRange = 60000,
|
|
|
file1 = mainFile,
|
|
|
file2 = adja1File,
|
|
|
samplingRate = ch0File.Fs,
|
|
@@ -168,7 +174,7 @@ namespace X3LeoTaskServer54.Service
|
|
|
cgDto = new CpuCgMultiDto()
|
|
|
{
|
|
|
dtCenter = 0,
|
|
|
- dtRange = 40000,
|
|
|
+ dtRange = 60000,
|
|
|
file1 = mainFile,
|
|
|
file2 = adja2File,
|
|
|
samplingRate = ch0File.Fs,
|
|
@@ -196,11 +202,42 @@ namespace X3LeoTaskServer54.Service
|
|
|
try
|
|
|
{
|
|
|
if (cts.IsCancellationRequested) break;
|
|
|
- LeoX1ParPosDto leoX1 = new LeoX1ParPosDto()
|
|
|
+ var posDto = new X3TwoDtoNoParPosDto()
|
|
|
{
|
|
|
+ SigTime = adTime.AddSeconds(data1[i].Smpstart / (double)ch0File.Fs),
|
|
|
+ MainCode = mainSatCode,
|
|
|
+ Adja1Code = adja1SatCode,
|
|
|
+ Adja2Code = adja2SatCode,
|
|
|
+ Adja1X = Adja1SatXYZ[0],
|
|
|
+ Adja1Y = Adja1SatXYZ[1],
|
|
|
+ Adja1Z = Adja1SatXYZ[2],
|
|
|
+ Adja2X = Adja2SatXYZ[0],
|
|
|
+ Adja2Y = Adja2SatXYZ[1],
|
|
|
+ Adja2Z = Adja2SatXYZ[2],
|
|
|
+ MainX = MainSatXYZ[0],
|
|
|
+ MainY = MainSatXYZ[1],
|
|
|
+ MainZ = MainSatXYZ[2],
|
|
|
+ Dto1 = data1[i].Dt,
|
|
|
+ Dfo1 = data1[i].Df,
|
|
|
+ Snr1 = data1[i].Snr,
|
|
|
+ Dto2 = data2[i].Dt,
|
|
|
+ Dfo2 = data2[i].Df,
|
|
|
+ Snr2 = data2[i].Snr,
|
|
|
+ FreqDown = freq * 1e6,
|
|
|
+ FreqUp = (freq + 44) * 1e6,
|
|
|
+ SatTxLon = dto.CapLon,
|
|
|
+ SatTxLat = dto.CapLat,
|
|
|
+ TaskID = dto.ID,
|
|
|
+ CheckRes = new CheckResDto()
|
|
|
+ {
|
|
|
+ FileName = Path.GetFileName(ch0File.File),
|
|
|
+ SmpStart = smps[i].smpStart,
|
|
|
+ SmpCount = smps[i].smpCount,
|
|
|
+ PosCheckType = EnumPosCheckTypeDto.Ky5758,
|
|
|
+ }
|
|
|
|
|
|
};
|
|
|
- var result = await HttpHelper.PostRequestAsync<PosResDto>(baseUrl + "Pos/PosLeX1ParAsync", leoX1);
|
|
|
+ var result = await HttpHelper.PostRequestAsync<PosResDto>(baseUrl + "Pos/PosX3TwoDtoNoParAsync", posDto);
|
|
|
if (result.code != 200)
|
|
|
{
|
|
|
await LogHelper.Error($"【任务{dto.ID}】-{adTime:yyyyMMddHHmmss}时刻-信号{freq}MHz 第{i + 1}个突发定位异常.{result.msg}");
|
|
@@ -210,11 +247,6 @@ namespace X3LeoTaskServer54.Service
|
|
|
var posRes = result.data;
|
|
|
double posLon = posRes.PosLon;
|
|
|
double posLat = posRes.PosLat;
|
|
|
- if (leoX1.Snr1 == 0 || leoX1.Snr2 == 0)
|
|
|
- {
|
|
|
- posLon = 0;
|
|
|
- posLat = 0;
|
|
|
- }
|
|
|
var errDto = new ErrEllipseX3NoRefDto()
|
|
|
{
|
|
|
PosLon = posLon,
|
|
@@ -234,14 +266,14 @@ namespace X3LeoTaskServer54.Service
|
|
|
};
|
|
|
var errRes = await GetErrEllipseResDto(errDto);
|
|
|
StringBuilder sb = new StringBuilder();
|
|
|
- sb.Append($"{leoX1.SigTime:yyyy}\t");
|
|
|
- sb.Append($"{leoX1.SigTime:MM}\t");
|
|
|
- sb.Append($"{leoX1.SigTime:dd}\t");
|
|
|
- sb.Append($"{leoX1.SigTime:HH}\t");
|
|
|
- sb.Append($"{leoX1.SigTime:mm}\t");
|
|
|
- sb.Append($"{leoX1.SigTime:ss}\t");
|
|
|
- sb.Append($"{leoX1.SigTime:fff}\t");
|
|
|
- sb.Append($"{leoX1.CheckRes.SmpCount * 1000 / ch0File.Fs:D4}\t");//信号持续时间ms
|
|
|
+ sb.Append($"{posDto.SigTime:yyyy}\t");
|
|
|
+ sb.Append($"{posDto.SigTime:MM}\t");
|
|
|
+ sb.Append($"{posDto.SigTime:dd}\t");
|
|
|
+ sb.Append($"{posDto.SigTime:HH}\t");
|
|
|
+ sb.Append($"{posDto.SigTime:mm}\t");
|
|
|
+ sb.Append($"{posDto.SigTime:ss}\t");
|
|
|
+ sb.Append($"{posDto.SigTime:fff}\t");
|
|
|
+ sb.Append($"{posDto.CheckRes.SmpCount * 1000 / ch0File.Fs:D4}\t");//信号持续时间ms
|
|
|
sb.Append($"{Convert.ToInt64(freq * 1e6):D12}\t");//下行频点
|
|
|
sb.Append($"{Convert.ToInt64((freq + 44) * 1e6):D12}\t");//上行频点
|
|
|
sb.Append($"{GetSignalType(deteResp.data[i].ModType)}\t");//信号样式(暂定有这些1:CPM,2:BPSK,4:QPSK,9:其它),
|
|
@@ -250,12 +282,12 @@ namespace X3LeoTaskServer54.Service
|
|
|
sb.Append($"{Convert.ToInt64(posLon * 1e6):D10}\t");
|
|
|
sb.Append($"{Convert.ToInt64(posLat * 1e6):D10}\t");
|
|
|
sb.Append($"{Convert.ToInt64(0 * 1e3):D8}\t");//定位误差km
|
|
|
- sb.Append($"{Convert.ToInt64(leoX1.Dto1 * 1e2):D10}\t");
|
|
|
- sb.Append($"{Convert.ToInt64(leoX1.Dfo1 * 1e2):D10}\t");
|
|
|
- sb.Append($"{Convert.ToInt64(leoX1.Snr1 * 1e2):D6}\t");
|
|
|
- sb.Append($"{Convert.ToInt64(leoX1.Dto2 * 1e2):D10}\t");
|
|
|
- sb.Append($"{Convert.ToInt64(leoX1.Dfo2 * 1e2):D10}\t");
|
|
|
- sb.Append($"{Convert.ToInt64(leoX1.Snr2 * 1e2):D6}\t");
|
|
|
+ sb.Append($"{Convert.ToInt64(posDto.Dto1 * 1e2):D10}\t");
|
|
|
+ sb.Append($"{Convert.ToInt64(posDto.Dfo1 * 1e2):D10}\t");
|
|
|
+ sb.Append($"{Convert.ToInt64(posDto.Snr1 * 1e2):D6}\t");
|
|
|
+ sb.Append($"{Convert.ToInt64(posDto.Dto2 * 1e2):D10}\t");
|
|
|
+ sb.Append($"{Convert.ToInt64(posDto.Dfo2 * 1e2):D10}\t");
|
|
|
+ sb.Append($"{Convert.ToInt64(posDto.Snr2 * 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");
|
|
@@ -268,7 +300,7 @@ namespace X3LeoTaskServer54.Service
|
|
|
sb.Append($"{4}\t");//定位体制(0未知,1高轨多星,2高低轨,3星地,4星座)
|
|
|
sb.Append($"{(long)deteResp.data[i].ModRate.Value:D12}");//符号速率bps 12个
|
|
|
sb.Append("\r\n");
|
|
|
- string resFile = Path.Combine(PosResDir, $"低轨单星定位结果_{posRes.SigTime:yyyyMMdd}.txt");
|
|
|
+ string resFile = Path.Combine(PosResDir, $"低轨三星定位结果_{posRes.SigTime:yyyyMMdd}.txt");
|
|
|
lock (this)
|
|
|
{
|
|
|
File.AppendAllText(resFile, sb.ToString());
|