|
@@ -17,18 +17,40 @@ namespace X2D1NoRefTaskServer.Service
|
|
|
{
|
|
|
private readonly string baseUrl;
|
|
|
int capSeconds;
|
|
|
+ double? mainSatDelay;//配置文件中配置的主星转发延迟
|
|
|
+ double? adjaSatDelay;//配置文件中配置的邻星转发延迟
|
|
|
+ int checkFileType;
|
|
|
Dictionary<int, CancellationTokenSource> dicCts = new Dictionary<int, CancellationTokenSource>();
|
|
|
public TaskService()
|
|
|
{
|
|
|
- var posPlatformAddr = ConfigurationManager.AppSettings["PosPlatformAddr"].Trim();//like http://127.0.0.1:8091 or http://127.0.0.1:8091/
|
|
|
- if (posPlatformAddr.EndsWith("/"))
|
|
|
- this.baseUrl = posPlatformAddr + "api/";
|
|
|
- else
|
|
|
- this.baseUrl = posPlatformAddr + "/api/";
|
|
|
- var val = ConfigurationManager.AppSettings["CapSeconds"].Trim();
|
|
|
- if (!int.TryParse(val, out capSeconds))
|
|
|
+ try
|
|
|
{
|
|
|
- capSeconds = 60;
|
|
|
+ var posPlatformAddr = ConfigurationManager.AppSettings["PosPlatformAddr"].Trim();//like http://127.0.0.1:8091 or http://127.0.0.1:8091/
|
|
|
+ if (posPlatformAddr.EndsWith("/"))
|
|
|
+ this.baseUrl = posPlatformAddr + "api/";
|
|
|
+ else
|
|
|
+ this.baseUrl = posPlatformAddr + "/api/";
|
|
|
+ var val = ConfigurationManager.AppSettings["CapSeconds"].Trim();
|
|
|
+ capSeconds = Convert.ToInt32(val);
|
|
|
+ if (!int.TryParse(val, out capSeconds))
|
|
|
+ {
|
|
|
+ capSeconds = 60;
|
|
|
+ }
|
|
|
+ string mainSatDelayStr = ConfigurationManager.AppSettings["MainSatDelay"];
|
|
|
+ if (!string.IsNullOrWhiteSpace(mainSatDelayStr))
|
|
|
+ {
|
|
|
+ mainSatDelay = Convert.ToDouble(mainSatDelayStr);
|
|
|
+ }
|
|
|
+ string adjaSatDelayStr = ConfigurationManager.AppSettings["AdjaSatDelay"];
|
|
|
+ if (!string.IsNullOrWhiteSpace(adjaSatDelayStr))
|
|
|
+ {
|
|
|
+ adjaSatDelay = Convert.ToDouble(adjaSatDelayStr);
|
|
|
+ }
|
|
|
+ checkFileType = Convert.ToInt32(ConfigurationManager.AppSettings["CheckFileType"]);
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ LogHelper.Error("读取配置文件异常", ex);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -44,7 +66,7 @@ namespace X2D1NoRefTaskServer.Service
|
|
|
else
|
|
|
dicCts.Add(dto.ID, cts);
|
|
|
|
|
|
- Task.Run(async () =>
|
|
|
+ Task.Run(() =>
|
|
|
{
|
|
|
if (!Directory.Exists(dto.CapDir))
|
|
|
{
|
|
@@ -61,6 +83,10 @@ namespace X2D1NoRefTaskServer.Service
|
|
|
int.TryParse(ConfigurationManager.AppSettings["PosDtoFactor"], out int posDtoFactor);
|
|
|
if (posDtoFactor == 0) posDtoFactor = 1;//定位时时差系数
|
|
|
LogHelper.Info($"【任务{dto.ID}】定位时差系数={posDtoFactor}");
|
|
|
+ string checkFileTypeStr = "上行信号";
|
|
|
+ if (checkFileType != 0)
|
|
|
+ checkFileTypeStr = "主星下行信号";
|
|
|
+ LogHelper.Info($"【任务{dto.ID}】检测类型={checkFileTypeStr}");
|
|
|
bool canConnected = CanGetSatIdFromMySql();
|
|
|
DateTime preTime = dto.StartTime;
|
|
|
int formatFlag;
|
|
@@ -158,8 +184,12 @@ namespace X2D1NoRefTaskServer.Service
|
|
|
}
|
|
|
try
|
|
|
{
|
|
|
- var delay1 = taskSig.SigDelay.FirstOrDefault(p => p.SatInfoSatCode == minfo.SatId)?.Delay;
|
|
|
- var delay2 = taskSig.SigDelay.FirstOrDefault(p => p.SatInfoSatCode == ninfo.SatId)?.Delay;
|
|
|
+ double? delay1 = taskSig.SigDelay.FirstOrDefault(p => p.SatInfoSatCode == minfo.SatId)?.Delay;
|
|
|
+ double? delay2 = taskSig.SigDelay.FirstOrDefault(p => p.SatInfoSatCode == ninfo.SatId)?.Delay;
|
|
|
+ if (delay1 == null)
|
|
|
+ delay1 = mainSatDelay;
|
|
|
+ if (delay2 == null)
|
|
|
+ delay2 = adjaSatDelay;
|
|
|
if (delay1 == null) delay1 = 0;
|
|
|
if (delay2 == null) delay2 = 0;
|
|
|
LogHelper.Info($"【任务{dto.ID}】信号[{taskSig.FreqUp / 1e6}],主星[{minfo.SatId}],转发时延{delay1}us");
|
|
@@ -170,21 +200,28 @@ namespace X2D1NoRefTaskServer.Service
|
|
|
|
|
|
DetectDto detectDto = new DetectDto()
|
|
|
{
|
|
|
- file1 = cdbFile,//11局使用上行泄露信号进行检测
|
|
|
+ file1 = cdbFile,//使用上行泄露信号进行检测
|
|
|
dmcType = taskSig.SigType,//上行信号检测目前的算法只能使用基于能量的KY或IBS检测
|
|
|
fsHz = minfo.FsHz,
|
|
|
mergeRes = true,
|
|
|
SigProc = true,
|
|
|
};
|
|
|
- detectDto.dmcType = detectDto.dmcType & ~EnumSigCheckTypeDto.DAMA;//DAMA不支持上行信号检测,在这里移除掉
|
|
|
- if ((int)detectDto.dmcType == 0)
|
|
|
+ if (checkFileType == 0)//检测上行信号=0,检测主星下行信号=1
|
|
|
{
|
|
|
- LogHelper.Warning($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},上行信号不支持DAMA检测,请使用能量检测");
|
|
|
- return;
|
|
|
+ detectDto.dmcType = detectDto.dmcType & ~EnumSigCheckTypeDto.DAMA;//DAMA不支持上行信号检测,在这里移除掉
|
|
|
+ if ((int)detectDto.dmcType == 0)
|
|
|
+ {
|
|
|
+ LogHelper.Warning($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},上行信号不支持仅DAMA检测");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ detectDto.file1 = mainFile;//使用主星下行信号进行检测
|
|
|
}
|
|
|
if (detectDto.dmcType == EnumSigCheckTypeDto.Normal)
|
|
|
{
|
|
|
- LogHelper.Warning($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},上行信号不支持Normal检测");
|
|
|
+ LogHelper.Warning($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},该服务不支持Normal类型信号");
|
|
|
return;
|
|
|
}
|
|
|
var deteResp = HttpHelper.PostRequestAsync<List<DetectResDto>>(baseUrl + "DetectCg/DetectCalc", detectDto, token: cts.Token).Result;
|
|
@@ -193,7 +230,7 @@ namespace X2D1NoRefTaskServer.Service
|
|
|
LogHelper.Error($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},{capTime:yyyyMMddHHmmss}时刻信号检测出错.{deteResp.msg}");
|
|
|
return;
|
|
|
}
|
|
|
- LogHelper.Info($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},{capTime:yyyyMMddHHmmss}时刻信号检测完成,共{deteResp.data.Count}个时隙");
|
|
|
+ LogHelper.Info($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},{capTime:yyyyMMddHHmmss}时刻{checkFileTypeStr}检测完成,共{deteResp.data.Count}个时隙");
|
|
|
var smps = deteResp.data.Select(m => new SmpPosition(m.Start, m.Length)).ToList();//怎么补0?
|
|
|
var cgDto = new CpuCgMultiDto()
|
|
|
{
|
|
@@ -205,6 +242,11 @@ namespace X2D1NoRefTaskServer.Service
|
|
|
smpPositions = smps,
|
|
|
snrThreshold = taskSig.Snr,
|
|
|
};
|
|
|
+ if (checkFileType != 0)
|
|
|
+ {
|
|
|
+ cgDto.file1 = mainFile;
|
|
|
+ cgDto.file2 = cdbFile;
|
|
|
+ }
|
|
|
var result1 = HttpHelper.PostRequestAsync<List<CpuCgResDto>>(baseUrl + "DetectCg/CpuCgMultiCalc", cgDto, token: cts.Token).Result;
|
|
|
if (result1.code != 200)
|
|
|
{
|
|
@@ -222,13 +264,26 @@ namespace X2D1NoRefTaskServer.Service
|
|
|
smpPositions = smps,
|
|
|
snrThreshold = taskSig.Snr,
|
|
|
};
|
|
|
+ if (checkFileType != 0)
|
|
|
+ {
|
|
|
+ cgDto.file1 = mainFile;
|
|
|
+ cgDto.file2 = adjaFile;
|
|
|
+ cgDto.dtCenter = 0;
|
|
|
+ cgDto.dtCenter = 50000;
|
|
|
+ }
|
|
|
var result2 = HttpHelper.PostRequestAsync<List<CpuCgResDto>>(baseUrl + "DetectCg/CpuCgMultiCalc", cgDto, token: cts.Token).Result;
|
|
|
if (result2.code != 200)
|
|
|
{
|
|
|
- LogHelper.Error($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},{capTime:yyyyMMddHHmmss}时刻邻星超短CPU参估出错.{result2.msg}");
|
|
|
+ if (checkFileType == 0)
|
|
|
+ LogHelper.Error($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},{capTime:yyyyMMddHHmmss}时刻邻星超短CPU参估出错.{result2.msg}");
|
|
|
+ else
|
|
|
+ LogHelper.Error($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},{capTime:yyyyMMddHHmmss}时刻主星邻星CPU参估出错.{result2.msg}");
|
|
|
return;
|
|
|
}
|
|
|
- LogHelper.Info($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},{capTime:yyyyMMddHHmmss}时刻邻星超短CPU参估完成");
|
|
|
+ if (checkFileType == 0)
|
|
|
+ LogHelper.Info($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},{capTime:yyyyMMddHHmmss}时刻邻星超短CPU参估完成");
|
|
|
+ else
|
|
|
+ LogHelper.Info($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},{capTime:yyyyMMddHHmmss}时刻主星邻星CPU参估完成");
|
|
|
HttpHelper.DeleteFileAsync(baseUrl, mainFile, adjaFile, cdbFile).Wait();
|
|
|
var data1 = result1.data;
|
|
|
var data2 = result2.data;
|
|
@@ -264,18 +319,33 @@ namespace X2D1NoRefTaskServer.Service
|
|
|
SmpCount = deteResp.data[i].Length,
|
|
|
SmpStart = deteResp.data[i].Start,
|
|
|
UserName = deteResp.data[i].UserName,
|
|
|
- PosCheckType = deteResp.data[i].DmcType.GetEnumByDisplayName<EnumPosCheckTypeDto>(),
|
|
|
FfcHz = deteResp.data[i].FfcHz,
|
|
|
+ PosCheckType = deteResp.data[i].DmcType.GetEnumByDisplayName<EnumPosCheckTypeDto>(),
|
|
|
}
|
|
|
};
|
|
|
if (data1[i].Snr > 0 && data2[i].Snr > 0)
|
|
|
{
|
|
|
//卫星转发某些频点可能有时延,无参定位由于不能抵消需要减去这个时延
|
|
|
- x2D1.SxDto = data1[i].Dt * posDtoFactor - data2[i].Dt * posDtoFactor - delay1.Value + delay2.Value;
|
|
|
- x2D1.SxDfo = data1[i].Df - data2[i].Df;
|
|
|
- x2D1.SxSnr = Math.Min(data1[i].Snr, data2[i].Snr);
|
|
|
- x2D1.XdDto = data1[i].Dt * posDtoFactor - delay1.Value;
|
|
|
+ if (checkFileType == 0)
|
|
|
+ {
|
|
|
+ x2D1.SxDto = data1[i].Dt * posDtoFactor - data2[i].Dt * posDtoFactor - delay1.Value + delay2.Value;
|
|
|
+ x2D1.SxDfo = data1[i].Df - data2[i].Df;
|
|
|
+ x2D1.SxSnr = (data1[i].Snr + data2[i].Snr) / 2;
|
|
|
+ x2D1.XdDto = data1[i].Dt * posDtoFactor - delay1.Value;
|
|
|
+ x2D1.XdDfo = data1[i].Df;
|
|
|
+ x2D1.XdSnr = data1[i].Snr;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ x2D1.SxDto = data2[i].Dt * posDtoFactor - delay1.Value + delay2.Value;
|
|
|
+ x2D1.SxDfo = data2[i].Df;
|
|
|
+ x2D1.SxSnr = data2[i].Snr;
|
|
|
+ x2D1.XdDto = data1[i].Dt * posDtoFactor - delay1.Value;
|
|
|
+ x2D1.XdDfo = data1[i].Df;
|
|
|
+ x2D1.XdSnr = data1[i].Snr;
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
var result = HttpHelper.PostRequestAsync<PosResDto>(baseUrl + "Pos/PosX2D1NoXlNoParAsync", x2D1).Result;
|
|
|
if (result.code != 200)
|
|
|
{
|
|
@@ -288,7 +358,6 @@ namespace X2D1NoRefTaskServer.Service
|
|
|
}
|
|
|
}
|
|
|
LogHelper.Info($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},{capTime:yyyyMMddHHmmss}时刻定位完成");
|
|
|
- LogHelper.Info($"-----------------------------------------------------------------");
|
|
|
}
|
|
|
catch (TaskCanceledException)
|
|
|
{
|
|
@@ -299,188 +368,6 @@ namespace X2D1NoRefTaskServer.Service
|
|
|
return;
|
|
|
}
|
|
|
});
|
|
|
- //foreach (var xdInfos in xdgbInfos)
|
|
|
- //{
|
|
|
-
|
|
|
- // var finfos = xdInfos.ToList();
|
|
|
- // var capTime = finfos.First().CapTime;
|
|
|
- // if (capTime < dto.StartTime) continue;
|
|
|
- // if (capTime > dto.EndTime) break;
|
|
|
- // if (finfos.Count < 3)
|
|
|
- // {
|
|
|
- // LogHelper.Warning($"【任务{dto.ID}】{capTime:yyyyMMddHHmmss}时刻文件数量只有{finfos.Count}个,跳过此组数据");
|
|
|
- // continue;
|
|
|
- // }
|
|
|
- // //超短波信号
|
|
|
- // var dinfo = finfos.FirstOrDefault(m => m.Ch == 1);
|
|
|
- // if (dinfo == null)
|
|
|
- // {
|
|
|
- // LogHelper.Warning($"【任务{dto.ID}】{capTime:yyyyMMddHHmmss}时刻未找到超短波信号ch1文件,跳过此组数据");
|
|
|
- // continue;
|
|
|
- // }
|
|
|
- // var taskSig = dto.Sigs.FirstOrDefault(p => p.FreqUp == dinfo.FreqHz);
|
|
|
- // if (taskSig == null)
|
|
|
- // {
|
|
|
- // continue;//跳过不是任务处理的频点
|
|
|
- // }
|
|
|
- // //主星
|
|
|
- // var minfo = finfos.FirstOrDefault(m => m.Ch == 2);
|
|
|
- // if (minfo == null)
|
|
|
- // {
|
|
|
- // LogHelper.Warning($"【任务{dto.ID}】信号[{taskSig.FreqUp / 1e6}],{capTime:yyyyMMddHHmmss}时刻未找到主星信号ch2文件,跳过此组数据");
|
|
|
- // continue;
|
|
|
- // }
|
|
|
- // //邻1
|
|
|
- // var ninfo = finfos.FirstOrDefault(m => m.Ch == 3);
|
|
|
- // if (ninfo == null)
|
|
|
- // {
|
|
|
- // LogHelper.Info($"【任务{dto.ID}】信号[{taskSig.FreqUp / 1e6}],{capTime:yyyyMMddHHmmss}时刻未找到邻星信号ch3文件,跳过此组数据");
|
|
|
- // continue;
|
|
|
- // }
|
|
|
- // try
|
|
|
- // {
|
|
|
- // var delay1 = taskSig.SigDelay.FirstOrDefault(p => p.SatInfoSatCode == minfo.SatId)?.Delay;
|
|
|
- // var delay2 = taskSig.SigDelay.FirstOrDefault(p => p.SatInfoSatCode == ninfo.SatId)?.Delay;
|
|
|
- // if (delay1 == null) delay1 = 0;
|
|
|
- // if (delay2 == null) delay2 = 0;
|
|
|
- // LogHelper.Info($"【任务{dto.ID}】信号[{taskSig.FreqUp / 1e6}],主星[{minfo.SatId}],转发时延{delay1}us");
|
|
|
- // LogHelper.Info($"【任务{dto.ID}】信号[{taskSig.FreqUp / 1e6}],邻星[{ninfo.SatId}],转发时延{delay2}us");
|
|
|
- // string mainFile = await HttpHelper.UploadFileAsync(minfo.FilePath, baseUrl, token: cts.Token);//主星文件
|
|
|
- // string adjaFile = await HttpHelper.UploadFileAsync(ninfo.FilePath, baseUrl, token: cts.Token);//邻星文件
|
|
|
- // string cdbFile = await HttpHelper.UploadFileAsync(dinfo.FilePath, baseUrl, token: cts.Token);//超短文件
|
|
|
-
|
|
|
- // DetectDto detectDto = new DetectDto()
|
|
|
- // {
|
|
|
- // file1 = cdbFile,//11局使用上行泄露信号进行检测
|
|
|
- // dmcType = taskSig.SigType,//上行信号检测目前的算法只能使用基于能量的KY或IBS检测
|
|
|
- // fsHz = minfo.FsHz,
|
|
|
- // mergeRes = true,
|
|
|
- // SigProc = true,
|
|
|
- // };
|
|
|
- // detectDto.dmcType = detectDto.dmcType & ~EnumSigCheckTypeDto.DAMA;//DAMA不支持上行信号检测,在这里移除掉
|
|
|
- // if ((int)detectDto.dmcType == 0)
|
|
|
- // {
|
|
|
- // LogHelper.Warning($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},上行信号不支持DAMA检测,请使用能量检测");
|
|
|
- // continue;
|
|
|
- // }
|
|
|
- // if (detectDto.dmcType == EnumSigCheckTypeDto.Normal)
|
|
|
- // {
|
|
|
- // LogHelper.Warning($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},上行信号不支持Normal检测");
|
|
|
- // continue;
|
|
|
- // }
|
|
|
- // var deteResp = await HttpHelper.PostRequestAsync<List<DetectResDto>>(baseUrl + "DetectCg/DetectCalc", detectDto, token: cts.Token);
|
|
|
- // if (deteResp.code != 200)
|
|
|
- // {
|
|
|
- // LogHelper.Error($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},{capTime:yyyyMMddHHmmss}时刻信号检测出错.{deteResp.msg}");
|
|
|
- // continue;
|
|
|
- // }
|
|
|
- // LogHelper.Info($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},{capTime:yyyyMMddHHmmss}时刻信号检测完成,共{deteResp.data.Count}个时隙");
|
|
|
- // var smps = deteResp.data.Select(m => new SmpPosition(m.Start, m.Length)).ToList();//怎么补0?
|
|
|
- // var cgDto = new CpuCgMultiDto()
|
|
|
- // {
|
|
|
- // dtCenter = 260000,
|
|
|
- // dtRange = 50000,
|
|
|
- // file1 = cdbFile,
|
|
|
- // file2 = mainFile,
|
|
|
- // samplingRate = minfo.FsHz,
|
|
|
- // smpPositions = smps,
|
|
|
- // snrThreshold = taskSig.Snr,
|
|
|
- // };
|
|
|
- // var result1 = await HttpHelper.PostRequestAsync<List<CpuCgResDto>>(baseUrl + "DetectCg/CpuCgMultiCalc", cgDto, token: cts.Token);
|
|
|
- // if (result1.code != 200)
|
|
|
- // {
|
|
|
- // LogHelper.Error($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},{capTime:yyyyMMddHHmmss}时刻主星超短CPU参估出错.{result1.msg}");
|
|
|
- // continue;
|
|
|
- // }
|
|
|
- // LogHelper.Info($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},{capTime:yyyyMMddHHmmss}时刻主星超短CPU参估完成.");
|
|
|
- // cgDto = new CpuCgMultiDto()
|
|
|
- // {
|
|
|
- // dtCenter = 260000,
|
|
|
- // dtRange = 50000,
|
|
|
- // file1 = cdbFile,
|
|
|
- // file2 = adjaFile,
|
|
|
- // samplingRate = minfo.FsHz,
|
|
|
- // smpPositions = smps,
|
|
|
- // snrThreshold = taskSig.Snr,
|
|
|
- // };
|
|
|
- // var result2 = await HttpHelper.PostRequestAsync<List<CpuCgResDto>>(baseUrl + "DetectCg/CpuCgMultiCalc", cgDto, token: cts.Token);
|
|
|
- // if (result2.code != 200)
|
|
|
- // {
|
|
|
- // LogHelper.Error($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},{capTime:yyyyMMddHHmmss}时刻邻星超短CPU参估出错.{result2.msg}");
|
|
|
- // continue;
|
|
|
- // }
|
|
|
- // LogHelper.Info($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},{capTime:yyyyMMddHHmmss}时刻邻星超短CPU参估完成");
|
|
|
- // await HttpHelper.DeleteFileAsync(baseUrl, mainFile, adjaFile, cdbFile);
|
|
|
- // var data1 = result1.data;
|
|
|
- // var data2 = result2.data;
|
|
|
- // if (data1.Count != data2.Count || data1.Count != deteResp.data.Count)
|
|
|
- // {
|
|
|
- // LogHelper.Error($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},{capTime:yyyyMMddHHmmss}时刻参估结果个数和检测结果个数不匹配");
|
|
|
- // continue;
|
|
|
- // }
|
|
|
- // for (int i = 0; i < data1.Count; i++)
|
|
|
- // {
|
|
|
- // try
|
|
|
- // {
|
|
|
- // if (cts.IsCancellationRequested) break;
|
|
|
- // X2D1NoXlNoParlPosDto x2D1 = new X2D1NoXlNoParlPosDto()
|
|
|
- // {
|
|
|
- // TaskID = dto.ID,
|
|
|
- // SigTime = minfo.CapTime.AddSeconds(data1[i].Smpstart / minfo.FsHz),
|
|
|
- // MainCode = minfo.SatId,
|
|
|
- // AdjaCode = ninfo.SatId,
|
|
|
- // XdDfo = data2[i].Df,
|
|
|
- // XdSnr = data2[i].Snr,
|
|
|
- // SatTxLon = dto.CapLon,
|
|
|
- // SatTxLat = dto.CapLat,
|
|
|
- // CdbTxLon = dto.CapLon,
|
|
|
- // CdbTxLat = dto.CapLat,
|
|
|
- // FreqDown = minfo.FreqHz,
|
|
|
- // FreqUp = dinfo.FreqHz,
|
|
|
- // CheckRes = new CheckResDto()
|
|
|
- // {
|
|
|
- // FileName = Path.GetFileName(dinfo.FilePath),
|
|
|
- // ModRate = deteResp.data[i].ModRate,
|
|
|
- // ModType = deteResp.data[i].ModType,
|
|
|
- // SmpCount = deteResp.data[i].Length,
|
|
|
- // SmpStart = deteResp.data[i].Start,
|
|
|
- // UserName = deteResp.data[i].UserName,
|
|
|
- // PosCheckType = deteResp.data[i].DmcType.GetEnumByDisplayName<EnumPosCheckTypeDto>(),
|
|
|
- // FfcHz = deteResp.data[i].FfcHz,
|
|
|
- // }
|
|
|
- // };
|
|
|
- // if (data1[i].Snr > 0 && data2[i].Snr > 0)
|
|
|
- // {
|
|
|
- // //卫星转发某些频点可能有时延,无参定位由于不能抵消需要减去这个时延
|
|
|
- // x2D1.SxDto = data1[i].Dt * posDtoFactor - data2[i].Dt * posDtoFactor - delay1.Value + delay2.Value;
|
|
|
- // x2D1.SxDfo = data1[i].Df - data2[i].Df;
|
|
|
- // x2D1.SxSnr = Math.Min(data1[i].Snr, data2[i].Snr);
|
|
|
- // x2D1.XdDto = data1[i].Dt * posDtoFactor - delay1.Value;
|
|
|
- // }
|
|
|
- // var result = await HttpHelper.PostRequestAsync<PosResDto>(baseUrl + "Pos/PosX2D1NoXlNoParAsync", x2D1);
|
|
|
- // if (result.code != 200)
|
|
|
- // {
|
|
|
- // LogHelper.Error($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},{capTime:yyyyMMddHHmmss}时刻时隙位置{data1[i].Smpstart}定位异常.{result.msg}");
|
|
|
- // }
|
|
|
- // }
|
|
|
- // catch (Exception ex)
|
|
|
- // {
|
|
|
- // LogHelper.Error($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},{capTime:yyyyMMddHHmmss}时刻时隙位置{data1[i].Smpstart}定位异常", ex);
|
|
|
- // }
|
|
|
- // }
|
|
|
- // LogHelper.Info($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},{capTime:yyyyMMddHHmmss}时刻定位完成");
|
|
|
- // LogHelper.Info($"-----------------------------------------------------------------");
|
|
|
- // }
|
|
|
- // catch (TaskCanceledException)
|
|
|
- // {
|
|
|
- // }
|
|
|
- // catch (Exception ex)
|
|
|
- // {
|
|
|
- // LogHelper.Error($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},{capTime:yyyyMMddHHmmss}时刻文件处理异常", ex);
|
|
|
- // continue;
|
|
|
- // }
|
|
|
- //}
|
|
|
-
|
|
|
}
|
|
|
ResetTime(formatFlag, ref preTime);
|
|
|
LogHelper.Info($"【任务{dto.ID}】目录[{filesDir}]本次扫描处理完成");
|
|
@@ -524,7 +411,10 @@ namespace X2D1NoRefTaskServer.Service
|
|
|
int.TryParse(ConfigurationManager.AppSettings["PosDtoFactor"], out int posDtoFactor);
|
|
|
if (posDtoFactor == 0) posDtoFactor = 1;//定位时时差系数
|
|
|
LogHelper.Info($"【任务{dto.ID}】定位时差系数={posDtoFactor}");
|
|
|
-
|
|
|
+ string checkFileTypeStr = "上行信号";
|
|
|
+ if (checkFileType != 0)
|
|
|
+ checkFileTypeStr = "主星下行信号";
|
|
|
+ LogHelper.Info($"【任务{dto.ID}】检测类型={checkFileTypeStr}");
|
|
|
bool canConnected = CanGetSatIdFromMySql();
|
|
|
DateTime preTime = DateTime.Now.AddSeconds(-capSeconds);
|
|
|
int formatFlag;
|
|
@@ -659,8 +549,12 @@ namespace X2D1NoRefTaskServer.Service
|
|
|
}
|
|
|
try
|
|
|
{
|
|
|
- var delay1 = taskSig.SigDelay.FirstOrDefault(p => p.SatInfoSatCode == minfo.SatId)?.Delay;
|
|
|
- var delay2 = taskSig.SigDelay.FirstOrDefault(p => p.SatInfoSatCode == ninfo.SatId)?.Delay;
|
|
|
+ double? delay1 = taskSig.SigDelay.FirstOrDefault(p => p.SatInfoSatCode == minfo.SatId)?.Delay;
|
|
|
+ double? delay2 = taskSig.SigDelay.FirstOrDefault(p => p.SatInfoSatCode == ninfo.SatId)?.Delay;
|
|
|
+ if (delay1 == null)
|
|
|
+ delay1 = mainSatDelay;
|
|
|
+ if (delay2 == null)
|
|
|
+ delay2 = adjaSatDelay;
|
|
|
if (delay1 == null) delay1 = 0;
|
|
|
if (delay2 == null) delay2 = 0;
|
|
|
LogHelper.Info($"【任务{dto.ID}】信号[{taskSig.FreqUp / 1e6}],主星[{minfo.SatId}],转发时延{delay1}us");
|
|
@@ -676,15 +570,22 @@ namespace X2D1NoRefTaskServer.Service
|
|
|
mergeRes = true,
|
|
|
SigProc = true,
|
|
|
};
|
|
|
- detectDto.dmcType = detectDto.dmcType & ~EnumSigCheckTypeDto.DAMA;//DAMA不支持上行信号检测,在这里移除掉
|
|
|
- if ((int)detectDto.dmcType == 0)
|
|
|
+ if (checkFileType == 0)//检测上行信号=0,检测主星下行信号=1
|
|
|
{
|
|
|
- LogHelper.Warning($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},上行信号不支持DAMA检测");
|
|
|
- return;
|
|
|
+ detectDto.dmcType = detectDto.dmcType & ~EnumSigCheckTypeDto.DAMA;//DAMA不支持上行信号检测,在这里移除掉
|
|
|
+ if ((int)detectDto.dmcType == 0)
|
|
|
+ {
|
|
|
+ LogHelper.Warning($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},上行信号不支持仅DAMA检测");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ detectDto.file1 = mainFile;//使用主星下行信号进行检测
|
|
|
}
|
|
|
if (detectDto.dmcType == EnumSigCheckTypeDto.Normal)
|
|
|
{
|
|
|
- LogHelper.Warning($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},上行信号不支持Normal检测");
|
|
|
+ LogHelper.Warning($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},该服务不支持Normal类型信号");
|
|
|
return;
|
|
|
}
|
|
|
var deteResp = HttpHelper.PostRequestAsync<List<DetectResDto>>(baseUrl + "DetectCg/DetectCalc", detectDto, token: cts.Token).Result;
|
|
@@ -705,6 +606,11 @@ namespace X2D1NoRefTaskServer.Service
|
|
|
smpPositions = smps,
|
|
|
snrThreshold = taskSig.Snr,
|
|
|
};
|
|
|
+ if (checkFileType != 0)
|
|
|
+ {
|
|
|
+ cgDto.file1 = mainFile;
|
|
|
+ cgDto.file2 = cdbFile;
|
|
|
+ }
|
|
|
var result1 = HttpHelper.PostRequestAsync<List<CpuCgResDto>>(baseUrl + "DetectCg/CpuCgMultiCalc", cgDto, token: cts.Token).Result;
|
|
|
if (result1.code != 200)
|
|
|
{
|
|
@@ -722,13 +628,26 @@ namespace X2D1NoRefTaskServer.Service
|
|
|
smpPositions = smps,
|
|
|
snrThreshold = taskSig.Snr,
|
|
|
};
|
|
|
+ if (checkFileType != 0)
|
|
|
+ {
|
|
|
+ cgDto.file1 = mainFile;
|
|
|
+ cgDto.file2 = adjaFile;
|
|
|
+ cgDto.dtCenter = 0;
|
|
|
+ cgDto.dtCenter = 50000;
|
|
|
+ }
|
|
|
var result2 = HttpHelper.PostRequestAsync<List<CpuCgResDto>>(baseUrl + "DetectCg/CpuCgMultiCalc", cgDto, token: cts.Token).Result;
|
|
|
if (result2.code != 200)
|
|
|
{
|
|
|
- LogHelper.Error($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},{capTime:yyyyMMddHHmmss}时刻邻星超短CPU参估出错.{result2.msg}");
|
|
|
+ if (checkFileType == 0)
|
|
|
+ LogHelper.Error($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},{capTime:yyyyMMddHHmmss}时刻邻星超短CPU参估出错.{result2.msg}");
|
|
|
+ else
|
|
|
+ LogHelper.Error($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},{capTime:yyyyMMddHHmmss}时刻主星邻星CPU参估出错.{result2.msg}");
|
|
|
return;
|
|
|
}
|
|
|
- LogHelper.Info($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},{capTime:yyyyMMddHHmmss}时刻邻星超短CPU参估完成");
|
|
|
+ if (checkFileType == 0)
|
|
|
+ LogHelper.Info($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},{capTime:yyyyMMddHHmmss}时刻邻星超短CPU参估完成");
|
|
|
+ else
|
|
|
+ LogHelper.Info($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},{capTime:yyyyMMddHHmmss}时刻主星邻星CPU参估完成");
|
|
|
HttpHelper.DeleteFileAsync(baseUrl, mainFile, adjaFile, cdbFile).Wait();
|
|
|
var data1 = result1.data;
|
|
|
var data2 = result2.data;
|
|
@@ -764,16 +683,31 @@ namespace X2D1NoRefTaskServer.Service
|
|
|
SmpCount = deteResp.data[i].Length,
|
|
|
SmpStart = deteResp.data[i].Start,
|
|
|
UserName = deteResp.data[i].UserName,
|
|
|
+ FfcHz = deteResp.data[i].FfcHz,
|
|
|
PosCheckType = deteResp.data[i].DmcType.GetEnumByDisplayName<EnumPosCheckTypeDto>(),
|
|
|
}
|
|
|
};
|
|
|
if (data1[i].Snr > 0 && data2[i].Snr > 0)
|
|
|
{
|
|
|
//卫星转发某些频点可能有时延,无参定位由于不能抵消需要减去这个时延
|
|
|
- x2D1.SxDto = data1[i].Dt * posDtoFactor - data2[i].Dt * posDtoFactor - delay1.Value + delay2.Value;
|
|
|
- x2D1.SxDfo = data1[i].Df - data2[i].Df;
|
|
|
- x2D1.SxSnr = Math.Min(data1[i].Snr, data2[i].Snr);
|
|
|
- x2D1.XdDto = data1[i].Dt * posDtoFactor - delay1.Value;
|
|
|
+ if (checkFileType == 0)
|
|
|
+ {
|
|
|
+ x2D1.SxDto = data1[i].Dt * posDtoFactor - data2[i].Dt * posDtoFactor - delay1.Value + delay2.Value;
|
|
|
+ x2D1.SxDfo = data1[i].Df - data2[i].Df;
|
|
|
+ x2D1.SxSnr = (data1[i].Snr + data2[i].Snr) / 2;
|
|
|
+ x2D1.XdDto = data1[i].Dt * posDtoFactor - delay1.Value;
|
|
|
+ x2D1.XdDfo = data1[i].Df;
|
|
|
+ x2D1.XdSnr = data1[i].Snr;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ x2D1.SxDto = data2[i].Dt * posDtoFactor - delay1.Value + delay2.Value;
|
|
|
+ x2D1.SxDfo = data2[i].Df;
|
|
|
+ x2D1.SxSnr = data2[i].Snr;
|
|
|
+ x2D1.XdDto = data1[i].Dt * posDtoFactor - delay1.Value;
|
|
|
+ x2D1.XdDfo = data1[i].Df;
|
|
|
+ x2D1.XdSnr = data1[i].Snr;
|
|
|
+ }
|
|
|
}
|
|
|
var result = HttpHelper.PostRequestAsync<PosResDto>(baseUrl + "Pos/PosX2D1NoXlNoParAsync", x2D1).Result;
|
|
|
if (result.code != 200)
|
|
@@ -787,8 +721,6 @@ namespace X2D1NoRefTaskServer.Service
|
|
|
}
|
|
|
}
|
|
|
LogHelper.Info($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},{capTime:yyyyMMddHHmmss}时刻定位完成");
|
|
|
- LogHelper.Info($"-----------------------------------------------------------------");
|
|
|
-
|
|
|
}
|
|
|
catch (TaskCanceledException)
|
|
|
{
|
|
@@ -799,184 +731,6 @@ namespace X2D1NoRefTaskServer.Service
|
|
|
return;
|
|
|
}
|
|
|
});
|
|
|
- //foreach (var xdInfos in xdgbInfos)
|
|
|
- //{
|
|
|
- // if (cts.IsCancellationRequested) return;
|
|
|
- // var finfos = xdInfos.ToList();
|
|
|
- // if (finfos.Count < 3)
|
|
|
- // {
|
|
|
- // LogHelper.Warning($"【任务{dto.ID}】{capTime:yyyyMMddHHmmss}时刻文件数量只有{finfos.Count}个,跳过此组数据");
|
|
|
- // continue;
|
|
|
- // }
|
|
|
- // //超短波信号
|
|
|
- // var dinfo = finfos.FirstOrDefault(m => m.Ch == 1);
|
|
|
- // if (dinfo == null)
|
|
|
- // {
|
|
|
- // LogHelper.Warning($"【任务{dto.ID}】{capTime:yyyyMMddHHmmss}时刻未找到超短波信号ch1文件,跳过此组数据");
|
|
|
- // continue;
|
|
|
- // }
|
|
|
- // var taskSig = dto.Sigs.FirstOrDefault(p => p.FreqUp == dinfo.FreqHz);
|
|
|
- // if (taskSig == null)
|
|
|
- // {
|
|
|
- // continue;//跳过不是任务处理的频点
|
|
|
- // }
|
|
|
- // //主星
|
|
|
- // var minfo = finfos.FirstOrDefault(m => m.Ch == 2);
|
|
|
- // if (minfo == null)
|
|
|
- // {
|
|
|
- // LogHelper.Warning($"【任务{dto.ID}】信号[{taskSig.FreqUp / 1e6}],{capTime:yyyyMMddHHmmss}时刻未找到主星信号ch2文件,跳过此组数据");
|
|
|
- // continue;
|
|
|
- // }
|
|
|
- // //邻1
|
|
|
- // var ninfo = finfos.FirstOrDefault(m => m.Ch == 3);
|
|
|
- // if (ninfo == null)
|
|
|
- // {
|
|
|
- // LogHelper.Info($"【任务{dto.ID}】信号[{taskSig.FreqUp / 1e6}],{capTime:yyyyMMddHHmmss}时刻未找到邻星信号ch3文件,跳过此组数据");
|
|
|
- // continue;
|
|
|
- // }
|
|
|
- // try
|
|
|
- // {
|
|
|
- // var delay1 = taskSig.SigDelay.FirstOrDefault(p => p.SatInfoSatCode == minfo.SatId)?.Delay;
|
|
|
- // var delay2 = taskSig.SigDelay.FirstOrDefault(p => p.SatInfoSatCode == ninfo.SatId)?.Delay;
|
|
|
- // if (delay1 == null) delay1 = 0;
|
|
|
- // if (delay2 == null) delay2 = 0;
|
|
|
- // LogHelper.Info($"【任务{dto.ID}】信号[{taskSig.FreqUp / 1e6}],主星[{minfo.SatId}],转发时延{delay1}us");
|
|
|
- // LogHelper.Info($"【任务{dto.ID}】信号[{taskSig.FreqUp / 1e6}],邻星[{ninfo.SatId}],转发时延{delay2}us");
|
|
|
- // string mainFile = await HttpHelper.UploadFileAsync(minfo.FilePath, baseUrl, token: cts.Token);//主星文件
|
|
|
- // string adjaFile = await HttpHelper.UploadFileAsync(ninfo.FilePath, baseUrl, token: cts.Token);//邻星文件
|
|
|
- // string cdbFile = await HttpHelper.UploadFileAsync(dinfo.FilePath, baseUrl, token: cts.Token);//超短文件
|
|
|
- // DetectDto detectDto = new DetectDto()
|
|
|
- // {
|
|
|
- // file1 = cdbFile,//11局使用上行泄露信号进行检测
|
|
|
- // dmcType = taskSig.SigType,//上行信号检测目前的算法只能使用基于能量的KY或IBS检测
|
|
|
- // fsHz = minfo.FsHz,
|
|
|
- // mergeRes = true,
|
|
|
- // SigProc = true,
|
|
|
- // };
|
|
|
- // detectDto.dmcType = detectDto.dmcType & ~EnumSigCheckTypeDto.DAMA;//DAMA不支持上行信号检测,在这里移除掉
|
|
|
- // if ((int)detectDto.dmcType == 0)
|
|
|
- // {
|
|
|
- // LogHelper.Warning($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},上行信号不支持DAMA检测");
|
|
|
- // continue;
|
|
|
- // }
|
|
|
- // if (detectDto.dmcType == EnumSigCheckTypeDto.Normal)
|
|
|
- // {
|
|
|
- // LogHelper.Warning($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},上行信号不支持Normal检测");
|
|
|
- // continue;
|
|
|
- // }
|
|
|
- // var deteResp = await HttpHelper.PostRequestAsync<List<DetectResDto>>(baseUrl + "DetectCg/DetectCalc", detectDto, token: cts.Token);
|
|
|
- // if (deteResp.code != 200)
|
|
|
- // {
|
|
|
- // LogHelper.Error($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},{capTime:yyyyMMddHHmmss}时刻信号检测出错.{deteResp.msg}");
|
|
|
- // continue;
|
|
|
- // }
|
|
|
- // LogHelper.Info($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},{capTime:yyyyMMddHHmmss}时刻信号检测完成,共{deteResp.data.Count}个时隙");
|
|
|
- // var smps = deteResp.data.Select(m => new SmpPosition(m.Start, m.Length)).ToList();//怎么补0?
|
|
|
- // var cgDto = new CpuCgMultiDto()
|
|
|
- // {
|
|
|
- // dtCenter = 260000,
|
|
|
- // dtRange = 50000,
|
|
|
- // file1 = cdbFile,
|
|
|
- // file2 = mainFile,
|
|
|
- // samplingRate = minfo.FsHz,
|
|
|
- // smpPositions = smps,
|
|
|
- // snrThreshold = taskSig.Snr,
|
|
|
- // };
|
|
|
- // var result1 = await HttpHelper.PostRequestAsync<List<CpuCgResDto>>(baseUrl + "DetectCg/CpuCgMultiCalc", cgDto, token: cts.Token);
|
|
|
- // if (result1.code != 200)
|
|
|
- // {
|
|
|
- // LogHelper.Error($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},{capTime:yyyyMMddHHmmss}时刻主星超短CPU参估出错.{result1.msg}");
|
|
|
- // continue;
|
|
|
- // }
|
|
|
- // LogHelper.Info($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},{capTime:yyyyMMddHHmmss}时刻主星超短CPU参估完成.");
|
|
|
- // cgDto = new CpuCgMultiDto()
|
|
|
- // {
|
|
|
- // dtCenter = 260000,
|
|
|
- // dtRange = 50000,
|
|
|
- // file1 = cdbFile,
|
|
|
- // file2 = adjaFile,
|
|
|
- // samplingRate = minfo.FsHz,
|
|
|
- // smpPositions = smps,
|
|
|
- // snrThreshold = taskSig.Snr,
|
|
|
- // };
|
|
|
- // var result2 = await HttpHelper.PostRequestAsync<List<CpuCgResDto>>(baseUrl + "DetectCg/CpuCgMultiCalc", cgDto, token: cts.Token);
|
|
|
- // if (result2.code != 200)
|
|
|
- // {
|
|
|
- // LogHelper.Error($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},{capTime:yyyyMMddHHmmss}时刻邻星超短CPU参估出错.{result2.msg}");
|
|
|
- // continue;
|
|
|
- // }
|
|
|
- // LogHelper.Info($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},{capTime:yyyyMMddHHmmss}时刻邻星超短CPU参估完成");
|
|
|
- // await HttpHelper.DeleteFileAsync(baseUrl, mainFile, adjaFile, cdbFile);
|
|
|
- // var data1 = result1.data;
|
|
|
- // var data2 = result2.data;
|
|
|
- // if (data1.Count != data2.Count || data1.Count != deteResp.data.Count)
|
|
|
- // {
|
|
|
- // LogHelper.Error($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},{capTime:yyyyMMddHHmmss}时刻参估结果个数和检测结果个数不匹配");
|
|
|
- // continue;
|
|
|
- // }
|
|
|
- // for (int i = 0; i < data1.Count; i++)
|
|
|
- // {
|
|
|
- // try
|
|
|
- // {
|
|
|
- // if (cts.IsCancellationRequested) return;
|
|
|
- // X2D1NoXlNoParlPosDto x2D1 = new X2D1NoXlNoParlPosDto()
|
|
|
- // {
|
|
|
- // TaskID = dto.ID,
|
|
|
- // SigTime = minfo.CapTime.AddSeconds(data1[i].Smpstart / minfo.FsHz),
|
|
|
- // MainCode = minfo.SatId,
|
|
|
- // AdjaCode = ninfo.SatId,
|
|
|
- // XdDfo = data2[i].Df,
|
|
|
- // XdSnr = data2[i].Snr,
|
|
|
- // SatTxLon = dto.CapLon,
|
|
|
- // SatTxLat = dto.CapLat,
|
|
|
- // CdbTxLon = dto.CapLon,
|
|
|
- // CdbTxLat = dto.CapLat,
|
|
|
- // FreqDown = minfo.FreqHz,
|
|
|
- // FreqUp = dinfo.FreqHz,
|
|
|
- // CheckRes = new CheckResDto()
|
|
|
- // {
|
|
|
- // FileName = Path.GetFileName(dinfo.FilePath),
|
|
|
- // ModRate = deteResp.data[i].ModRate,
|
|
|
- // ModType = deteResp.data[i].ModType,
|
|
|
- // SmpCount = deteResp.data[i].Length,
|
|
|
- // SmpStart = deteResp.data[i].Start,
|
|
|
- // UserName = deteResp.data[i].UserName,
|
|
|
- // PosCheckType = deteResp.data[i].DmcType.GetEnumByDisplayName<EnumPosCheckTypeDto>(),
|
|
|
- // }
|
|
|
- // };
|
|
|
- // if (data1[i].Snr > 0 && data2[i].Snr > 0)
|
|
|
- // {
|
|
|
- // //卫星转发某些频点可能有时延,无参定位由于不能抵消需要减去这个时延
|
|
|
- // x2D1.SxDto = data1[i].Dt * posDtoFactor - data2[i].Dt * posDtoFactor - delay1.Value + delay2.Value;
|
|
|
- // x2D1.SxDfo = data1[i].Df - data2[i].Df;
|
|
|
- // x2D1.SxSnr = Math.Min(data1[i].Snr, data2[i].Snr);
|
|
|
- // x2D1.XdDto = data1[i].Dt * posDtoFactor - delay1.Value;
|
|
|
- // }
|
|
|
- // var result = await HttpHelper.PostRequestAsync<PosResDto>(baseUrl + "Pos/PosX2D1NoXlNoParAsync", x2D1);
|
|
|
- // if (result.code != 200)
|
|
|
- // {
|
|
|
- // LogHelper.Error($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},{capTime:yyyyMMddHHmmss}时刻时隙位置{data1[i].Smpstart}定位异常.{result.msg}");
|
|
|
- // }
|
|
|
- // }
|
|
|
- // catch (Exception ex)
|
|
|
- // {
|
|
|
- // LogHelper.Error($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},{capTime:yyyyMMddHHmmss}时刻时隙位置{data1[i].Smpstart}定位异常", ex);
|
|
|
- // }
|
|
|
- // }
|
|
|
- // LogHelper.Info($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},{capTime:yyyyMMddHHmmss}时刻定位完成");
|
|
|
- // LogHelper.Info($"-----------------------------------------------------------------");
|
|
|
-
|
|
|
- // }
|
|
|
- // catch (TaskCanceledException)
|
|
|
- // {
|
|
|
- // }
|
|
|
- // catch (Exception ex)
|
|
|
- // {
|
|
|
- // LogHelper.Error($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},{capTime:yyyyMMddHHmmss}时刻文件处理异常", ex);
|
|
|
- // continue;
|
|
|
- // }
|
|
|
-
|
|
|
- //}
|
|
|
ResetTime(formatFlag, ref preTime);
|
|
|
preTime = capTime;
|
|
|
|