|
@@ -101,171 +101,177 @@ namespace X2D1NoRefTaskServer.Service
|
|
{
|
|
{
|
|
if (cts.IsCancellationRequested) break;
|
|
if (cts.IsCancellationRequested) break;
|
|
|
|
|
|
- var finfos = item.ToList();
|
|
|
|
- var capTime = finfos.First().CapTime;
|
|
|
|
- if (capTime < dto.StartTime) continue;
|
|
|
|
- if (capTime > dto.EndTime) break;
|
|
|
|
- if (finfos.Count < 3)
|
|
|
|
|
|
+ var xdgbInfos = item.GroupBy(m => m.XdIndex);
|
|
|
|
+ foreach (var xdInfos in xdgbInfos)
|
|
{
|
|
{
|
|
- 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}】{capTime:yyyyMMddHHmmss}时刻未找到主星信号ch2文件,跳过此组数据");
|
|
|
|
- continue;
|
|
|
|
- }
|
|
|
|
- //邻1
|
|
|
|
- var ninfo = finfos.FirstOrDefault(m => m.Ch == 3);
|
|
|
|
- if (ninfo == null)
|
|
|
|
- {
|
|
|
|
- LogHelper.Info($"【任务{dto.ID}】{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 + "File/UploadFileAsync", token: cts.Token);//主星文件
|
|
|
|
- string adjaFile = await HttpHelper.UploadFileAsync(ninfo.FilePath, baseUrl + "File/UploadFileAsync", token: cts.Token);//邻星文件
|
|
|
|
- string cdbFile = await HttpHelper.UploadFileAsync(dinfo.FilePath, baseUrl + "File/UploadFileAsync", token: cts.Token);//超短文件
|
|
|
|
-
|
|
|
|
- DetectDto detectDto = new DetectDto()
|
|
|
|
|
|
+ var finfos = xdInfos.ToList();
|
|
|
|
+ var capTime = finfos.First().CapTime;
|
|
|
|
+ if (capTime < dto.StartTime) continue;
|
|
|
|
+ if (capTime > dto.EndTime) break;
|
|
|
|
+ if (finfos.Count < 3)
|
|
{
|
|
{
|
|
- file1 = cdbFile,//11局使用上行泄露信号进行检测
|
|
|
|
- dmcType = taskSig.SigType,//上行信号检测目前的算法只能使用基于能量的KY或IBS检测
|
|
|
|
- fsHz = minfo.FsHz,
|
|
|
|
- };
|
|
|
|
- detectDto.dmcType = detectDto.dmcType & ~EnumSigCheckTypeDto.DAMA;//DAMA不支持上行信号检测,在这里移除掉
|
|
|
|
- if (detectDto.dmcType == EnumSigCheckTypeDto.DAMA)
|
|
|
|
- {
|
|
|
|
- LogHelper.Warning($"【任务{dto.ID}】信号{taskSig.FreqUp/1e6:f3},上行信号不支持DAMA检测,请使用能量检测");
|
|
|
|
|
|
+ LogHelper.Warning($"【任务{dto.ID}】{capTime:yyyyMMddHHmmss}时刻文件数量只有{finfos.Count}个,跳过此组数据");
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
- var deteResp = await HttpHelper.PostRequestAsync<List<DetectResDto>>(baseUrl + "DetectCg/DetectCalc", detectDto, token: cts.Token);
|
|
|
|
- if (deteResp.code != 200)
|
|
|
|
|
|
+ //超短波信号
|
|
|
|
+ var dinfo = finfos.FirstOrDefault(m => m.Ch == 1);
|
|
|
|
+ if (dinfo == null)
|
|
{
|
|
{
|
|
- LogHelper.Error($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},{capTime:yyyyMMddHHmmss}时刻信号检测出错.{deteResp.msg}");
|
|
|
|
|
|
+ LogHelper.Warning($"【任务{dto.ID}】{capTime:yyyyMMddHHmmss}时刻未找到超短波信号ch1文件,跳过此组数据");
|
|
continue;
|
|
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 = 15,
|
|
|
|
- };
|
|
|
|
- var result1 = await HttpHelper.PostRequestAsync<List<CpuCgResDto>>(baseUrl + "DetectCg/CpuCgMultiCalc", cgDto, token: cts.Token);
|
|
|
|
- if (result1.code != 200)
|
|
|
|
|
|
+ var taskSig = dto.Sigs.FirstOrDefault(p => p.FreqUp == dinfo.FreqHz);
|
|
|
|
+ if (taskSig == null)
|
|
{
|
|
{
|
|
- LogHelper.Error($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},{capTime:yyyyMMddHHmmss}时刻主星超短CPU参估出错.{result1.msg}");
|
|
|
|
- continue;
|
|
|
|
|
|
+ continue;//跳过不是任务处理的频点
|
|
}
|
|
}
|
|
- LogHelper.Info($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},{capTime:yyyyMMddHHmmss}时刻主星超短CPU参估完成.");
|
|
|
|
- cgDto = new CpuCgMultiDto()
|
|
|
|
|
|
+ //主星
|
|
|
|
+ var minfo = finfos.FirstOrDefault(m => m.Ch == 2);
|
|
|
|
+ if (minfo == null)
|
|
{
|
|
{
|
|
- dtCenter = 260000,
|
|
|
|
- dtRange = 50000,
|
|
|
|
- file1 = cdbFile,
|
|
|
|
- file2 = adjaFile,
|
|
|
|
- samplingRate = minfo.FsHz,
|
|
|
|
- smpPositions = smps,
|
|
|
|
- snrThreshold = 15,
|
|
|
|
- };
|
|
|
|
- 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}");
|
|
|
|
|
|
+ LogHelper.Warning($"【任务{dto.ID}】信号[{taskSig.FreqUp / 1e6}],{capTime:yyyyMMddHHmmss}时刻未找到主星信号ch2文件,跳过此组数据");
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
- LogHelper.Info($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},{capTime:yyyyMMddHHmmss}时刻邻星超短CPU参估完成");
|
|
|
|
- var data1 = result1.data;
|
|
|
|
- var data2 = result2.data;
|
|
|
|
- if (data1.Count != data2.Count || data1.Count != deteResp.data.Count)
|
|
|
|
|
|
+ //邻1
|
|
|
|
+ var ninfo = finfos.FirstOrDefault(m => m.Ch == 3);
|
|
|
|
+ if (ninfo == null)
|
|
{
|
|
{
|
|
- LogHelper.Error($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},{capTime:yyyyMMddHHmmss}时刻参估结果个数和检测结果个数不匹配");
|
|
|
|
|
|
+ LogHelper.Info($"【任务{dto.ID}】信号[{taskSig.FreqUp / 1e6}],{capTime:yyyyMMddHHmmss}时刻未找到邻星信号ch3文件,跳过此组数据");
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
- for (int i = 0; i < data1.Count; i++)
|
|
|
|
|
|
+ try
|
|
{
|
|
{
|
|
- 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 + "File/UploadFileAsync", token: cts.Token);//主星文件
|
|
|
|
+ string adjaFile = await HttpHelper.UploadFileAsync(ninfo.FilePath, baseUrl + "File/UploadFileAsync", token: cts.Token);//邻星文件
|
|
|
|
+ string cdbFile = await HttpHelper.UploadFileAsync(dinfo.FilePath, baseUrl + "File/UploadFileAsync", token: cts.Token);//超短文件
|
|
|
|
+
|
|
|
|
+ DetectDto detectDto = new DetectDto()
|
|
|
|
+ {
|
|
|
|
+ file1 = cdbFile,//11局使用上行泄露信号进行检测
|
|
|
|
+ dmcType = taskSig.SigType,//上行信号检测目前的算法只能使用基于能量的KY或IBS检测
|
|
|
|
+ fsHz = minfo.FsHz,
|
|
|
|
+ };
|
|
|
|
+ detectDto.dmcType = detectDto.dmcType & ~EnumSigCheckTypeDto.DAMA;//DAMA不支持上行信号检测,在这里移除掉
|
|
|
|
+ if (detectDto.dmcType == EnumSigCheckTypeDto.DAMA)
|
|
|
|
+ {
|
|
|
|
+ LogHelper.Warning($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},上行信号不支持DAMA检测,请使用能量检测");
|
|
|
|
+ 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 = 15,
|
|
|
|
+ };
|
|
|
|
+ var result1 = await HttpHelper.PostRequestAsync<List<CpuCgResDto>>(baseUrl + "DetectCg/CpuCgMultiCalc", cgDto, token: cts.Token);
|
|
|
|
+ if (result1.code != 200)
|
|
{
|
|
{
|
|
- if (cts.IsCancellationRequested) break;
|
|
|
|
|
|
+ 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 = 15,
|
|
|
|
+ };
|
|
|
|
+ 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参估完成");
|
|
|
|
+ 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,
|
|
|
|
- //卫星转发某些频点可能有时延,无参定位由于不能抵消需要减去这个时延
|
|
|
|
- SxDto = data1[i].Dt * posDtoFactor - data2[i].Dt * posDtoFactor - delay1.Value + delay2.Value,
|
|
|
|
- SxDfo = data1[i].Df,
|
|
|
|
- SxSnr = data1[i].Snr,
|
|
|
|
- XdDto = data1[i].Dt * posDtoFactor - delay1.Value,
|
|
|
|
- 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()
|
|
|
|
|
|
+ X2D1NoXlNoParlPosDto x2D1 = new X2D1NoXlNoParlPosDto()
|
|
{
|
|
{
|
|
- 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>(),
|
|
|
|
|
|
+ TaskID = dto.ID,
|
|
|
|
+ SigTime = minfo.CapTime.AddSeconds(data1[i].Smpstart / minfo.FsHz),
|
|
|
|
+ MainCode = minfo.SatId,
|
|
|
|
+ AdjaCode = ninfo.SatId,
|
|
|
|
+ //卫星转发某些频点可能有时延,无参定位由于不能抵消需要减去这个时延
|
|
|
|
+ SxDto = data1[i].Dt * posDtoFactor - data2[i].Dt * posDtoFactor - delay1.Value + delay2.Value,
|
|
|
|
+ SxDfo = data1[i].Df,
|
|
|
|
+ SxSnr = data1[i].Snr,
|
|
|
|
+ XdDto = data1[i].Dt * posDtoFactor - delay1.Value,
|
|
|
|
+ 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>(),
|
|
|
|
+ }
|
|
|
|
+ };
|
|
|
|
+ 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}");
|
|
}
|
|
}
|
|
- };
|
|
|
|
- var result = await HttpHelper.PostRequestAsync<PosResDto>(baseUrl + "Pos/PosX2D1NoXlNoParAsync", x2D1);
|
|
|
|
- if (result.code != 200)
|
|
|
|
|
|
+ }
|
|
|
|
+ catch (Exception ex)
|
|
{
|
|
{
|
|
- LogHelper.Error($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},{capTime:yyyyMMddHHmmss}时刻时隙位置{data1[i].Smpstart}定位异常.{result.msg}");
|
|
|
|
|
|
+ LogHelper.Error($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},{capTime:yyyyMMddHHmmss}时刻时隙位置{data1[i].Smpstart}定位异常", ex);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- 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}时刻定位完成");
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ catch (Exception ex)
|
|
|
|
+ {
|
|
|
|
+ LogHelper.Error($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},{capTime:yyyyMMddHHmmss}时刻文件处理异常", ex);
|
|
|
|
+ continue;
|
|
}
|
|
}
|
|
- LogHelper.Info($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},{capTime:yyyyMMddHHmmss}时刻定位完成");
|
|
|
|
|
|
|
|
}
|
|
}
|
|
- catch (Exception ex)
|
|
|
|
- {
|
|
|
|
- LogHelper.Error($"【任务{dto.ID}】信号{taskSig.FreqUp / 1e6:f3},{capTime:yyyyMMddHHmmss}时刻文件处理异常", ex);
|
|
|
|
- continue;
|
|
|
|
- }
|
|
|
|
|
|
+
|
|
|
|
|
|
}
|
|
}
|
|
ResetTime(formatFlag, ref preTime);
|
|
ResetTime(formatFlag, ref preTime);
|
|
@@ -301,7 +307,7 @@ namespace X2D1NoRefTaskServer.Service
|
|
HistoryFile historyFile = new HistoryFile();
|
|
HistoryFile historyFile = new HistoryFile();
|
|
historyFile.FilePath = filePath;
|
|
historyFile.FilePath = filePath;
|
|
var fileName = Path.GetFileNameWithoutExtension(filePath);
|
|
var fileName = Path.GetFileNameWithoutExtension(filePath);
|
|
- var strs = fileName.Split(new string[] { "_", "MHz", "Hz", "ch" }, StringSplitOptions.RemoveEmptyEntries);
|
|
|
|
|
|
+ var strs = fileName.Split(new string[] { "_", "MHz", "Hz", "ch", "xd" }, StringSplitOptions.RemoveEmptyEntries);
|
|
|
|
|
|
//采集时间
|
|
//采集时间
|
|
var datestr = string.Join("_", strs.Take(6));
|
|
var datestr = string.Join("_", strs.Take(6));
|
|
@@ -313,8 +319,11 @@ namespace X2D1NoRefTaskServer.Service
|
|
|
|
|
|
//采集通道
|
|
//采集通道
|
|
var chstr = strs.Skip(strs.Length - 2).Take(1).First();
|
|
var chstr = strs.Skip(strs.Length - 2).Take(1).First();
|
|
- int ch;
|
|
|
|
- int.TryParse(chstr, out ch);
|
|
|
|
|
|
+ int.TryParse(chstr, out int ch);
|
|
|
|
+
|
|
|
|
+ //上行信号分组
|
|
|
|
+ var xdIndexstr = strs.Skip(strs.Length - 1).Take(1).First();
|
|
|
|
+ int.TryParse(xdIndexstr, out int xdIndex);
|
|
|
|
|
|
//采集频点
|
|
//采集频点
|
|
var freqstr = strs.Skip(strs.Length - 3).Take(1).First();
|
|
var freqstr = strs.Skip(strs.Length - 3).Take(1).First();
|
|
@@ -323,12 +332,12 @@ namespace X2D1NoRefTaskServer.Service
|
|
|
|
|
|
//采样率
|
|
//采样率
|
|
var fsstr = strs.Skip(strs.Length - 4).Take(1).First();
|
|
var fsstr = strs.Skip(strs.Length - 4).Take(1).First();
|
|
- double fsHz;
|
|
|
|
- double.TryParse(fsstr, out fsHz);
|
|
|
|
|
|
+ double.TryParse(fsstr, out double fsHz);
|
|
|
|
|
|
historyFile.FreqHz = (long)((decimal)freqMHz * 1000000);
|
|
historyFile.FreqHz = (long)((decimal)freqMHz * 1000000);
|
|
historyFile.Ch = ch;
|
|
historyFile.Ch = ch;
|
|
historyFile.FsHz = fsHz;
|
|
historyFile.FsHz = fsHz;
|
|
|
|
+ historyFile.XdIndex = xdIndex;
|
|
if (!canConnected)
|
|
if (!canConnected)
|
|
{
|
|
{
|
|
if (ch == 2)
|
|
if (ch == 2)
|