|
@@ -1,23 +1,16 @@
|
|
|
-using DevExpress.Utils.About;
|
|
|
-using MySql.Data.MySqlClient;
|
|
|
-using System;
|
|
|
+using System;
|
|
|
using System.Collections.Generic;
|
|
|
using System.Globalization;
|
|
|
using System.IO;
|
|
|
using System.Linq;
|
|
|
-using System.Security.Policy;
|
|
|
-using System.Text;
|
|
|
using System.Threading;
|
|
|
using System.Threading.Tasks;
|
|
|
-using XdCxRhDW;
|
|
|
using XdCxRhDW.Dto;
|
|
|
-using ZstdSharp.Unsafe;
|
|
|
|
|
|
namespace XdCxRhDW.TaskServer.Task
|
|
|
{
|
|
|
public class X2D1Task : HistoryTaskI
|
|
|
{
|
|
|
-
|
|
|
public override void Start(HistoryTaskProcessingDto dto)
|
|
|
{
|
|
|
IsRuning = true;
|
|
@@ -115,24 +108,51 @@ namespace XdCxRhDW.TaskServer.Task
|
|
|
var mDetect = await DAMAAsync(dto.TaskCheckType, minfo.FsHz, minfo.FilePath);
|
|
|
var dfile = await ToResampleAsync((int)dinfo.FsHz, dinfo.FilePath);
|
|
|
var nfile = await ToResampleAsync((int)ninfo.FsHz, ninfo.FilePath);
|
|
|
- foreach (var deitem in mDetect)
|
|
|
+
|
|
|
+ if (mDetect.Count() <= 0)
|
|
|
{
|
|
|
+ LogHelper.Info($"历史任务:{dto.ID}文件{minfo.FilePath}未检测出结果");
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ //主星文件
|
|
|
+ string mfile = mDetect.First().File1;
|
|
|
+
|
|
|
+ //时隙数
|
|
|
+ var smps = mDetect.Select(m => new SmpPosition() { smpStart = m.Start, smpCount = m.Length }).ToList();
|
|
|
+
|
|
|
+ int dtRange = 40000;
|
|
|
+
|
|
|
+ //提取时隙有效数据
|
|
|
+ //var mdfile = await ExtractMergeAsync(mfile, nfile.OutFsHz, smps, 0, dtRange, minfo.Ch);
|
|
|
+ //var ddfile = await ExtractMergeAsync(dfile.File, nfile.OutFsHz, smps, -260000, dtRange, dinfo.Ch);
|
|
|
+ //var ndfile = await ExtractMergeAsync(nfile.File, nfile.OutFsHz, smps, 0, dtRange, ninfo.Ch);
|
|
|
+
|
|
|
+ //var xds = await CPUCalcAsync(mdfile.file, ddfile.file, dfile.OutFsHz, ddfile.positions, -260000, dtRange);
|
|
|
+ //var sxs = await CPUCalcAsync(mdfile.file, ndfile.file, nfile.OutFsHz, ndfile.positions, 0, dtRange);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ var xds = await CPUCalcAsync(mfile, dfile.File, dfile.OutFsHz, smps, -260000, dtRange);
|
|
|
+ var sxs = await CPUCalcAsync(mfile, nfile.File, nfile.OutFsHz, smps, 0, dtRange);
|
|
|
+
|
|
|
+ foreach (var sxitem in sxs)
|
|
|
+ {
|
|
|
+ var xd = xds.FirstOrDefault(x => x.Smpstart == sxitem.Smpstart && x.Smplen == sxitem.Smplen);
|
|
|
+ var deitem = mDetect.FirstOrDefault(x => x.Start == sxitem.Smpstart && x.Length == sxitem.Smplen);
|
|
|
if (!IsRuning)
|
|
|
{
|
|
|
break;
|
|
|
}
|
|
|
try
|
|
|
{
|
|
|
- var xd = await CPUCalcAsync(deitem.File1, dfile.File, dfile.OutFsHz, deitem, 260000, 40000);
|
|
|
- Thread.Sleep(100);
|
|
|
- var sx = await CPUCalcAsync(deitem.File1, nfile.File, nfile.OutFsHz, deitem, 0, 40000);
|
|
|
X2D1NoXlPosDto x2D1 = new X2D1NoXlPosDto()
|
|
|
{
|
|
|
- SigTime = minfo.CapTime.AddSeconds(deitem.Start / nfile.OutFsHz),
|
|
|
+ TaskID = dto.ID,
|
|
|
+ SigTime = minfo.CapTime.AddSeconds(sxitem.Smpstart / nfile.OutFsHz),
|
|
|
MainCode = minfo.SatId,
|
|
|
AdjaCode = ninfo.SatId,
|
|
|
- SxDto = sx.Dt,
|
|
|
- XdDto = xd.Dt,
|
|
|
+ SxDto = sxitem.Dt,
|
|
|
+ XdDto = xd == null ? 0 : xd.Dt,
|
|
|
SatTxLon = satTx.Lon,
|
|
|
SatTxLat = satTx.Lat,
|
|
|
CdbTxLon = cdbTx.Lon,
|
|
@@ -141,10 +161,10 @@ namespace XdCxRhDW.TaskServer.Task
|
|
|
RefLat = refTx.Lat,
|
|
|
FreqDown = minfo.FreqHz * 1e-6,
|
|
|
FreqUp = dinfo.FreqHz * 1e-6,
|
|
|
- XdDfo = xd.Df,
|
|
|
- XdSnr = xd.Snr,
|
|
|
- SxDfo = sx.Df,
|
|
|
- SxSnr = sx.Snr,
|
|
|
+ XdDfo = xd == null ? 0 : xd.Df,
|
|
|
+ XdSnr = xd == null ? 0 : xd.Snr,
|
|
|
+ SxDfo = sxitem.Df,
|
|
|
+ SxSnr = sxitem.Snr,
|
|
|
CheckRes = new CheckResDto()
|
|
|
{
|
|
|
FileName = deitem.File1,
|
|
@@ -156,7 +176,6 @@ namespace XdCxRhDW.TaskServer.Task
|
|
|
PosCheckType = deitem.DmcType.GetEnumByDisplayName<EnumPosCheckTypeDto>(),
|
|
|
}
|
|
|
};
|
|
|
-
|
|
|
await X2D1NoXlAsync(x2D1);
|
|
|
}
|
|
|
catch (Exception ex)
|
|
@@ -164,8 +183,8 @@ namespace XdCxRhDW.TaskServer.Task
|
|
|
LogHelper.Info($"历史任务:{dto.ID}异常:{ex.Message}");
|
|
|
continue;
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
catch (Exception ex)
|
|
@@ -187,6 +206,7 @@ namespace XdCxRhDW.TaskServer.Task
|
|
|
var result = await HttpHelper.PostRequestAsync<PosResDto>(baseUrl + "Pos/PosX2D1NoXlAsync", x2D1);
|
|
|
if (result.code != 200)
|
|
|
{
|
|
|
+ LogHelper.Error($"推送历史任务定位结果:{x2D1.TaskID}异常:{result.msg}");
|
|
|
return false;
|
|
|
}
|
|
|
return true;
|
|
@@ -253,7 +273,7 @@ namespace XdCxRhDW.TaskServer.Task
|
|
|
historyFile.FsHz = fsHz;
|
|
|
if (ch > 1)
|
|
|
{
|
|
|
- historyFile.SatId = GetSatId(historyFile.FreqHz);
|
|
|
+ historyFile.SatId = 44637;// GetSatId(historyFile.FreqHz);
|
|
|
|
|
|
}
|
|
|
return historyFile;
|