|
@@ -32,25 +32,28 @@ namespace X2D1NoRefTaskServer.Service
|
|
|
public void StartHistoryAsync(X2D1NoRefTaskHandleDto dto)
|
|
|
{
|
|
|
var cts = new CancellationTokenSource();
|
|
|
- dicCts.Add(dto.ID, cts);
|
|
|
- if (!Directory.Exists(dto.CapDir))
|
|
|
- {
|
|
|
- StopTask(dto.ID, EnumTaskStopType.Error, $"文件路径[{dto.CapDir}]不存在,任务结束");
|
|
|
- return;
|
|
|
- }
|
|
|
- if (dto.DateDirFormat.Contains("\\"))
|
|
|
- {
|
|
|
- StopTask(dto.ID, EnumTaskStopType.Error, $"子目录日期格式不能包含多级目录格式");
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- LogHelper.Info($"【任务{dto.ID}】开始执行...");
|
|
|
- int.TryParse(ConfigurationManager.AppSettings["PosDtoFactor"], out int posDtoFactor);
|
|
|
- if (posDtoFactor == 0) posDtoFactor = 1;//定位时时差系数
|
|
|
- LogHelper.Info($"【任务{dto.ID}】定位时差系数={posDtoFactor}");
|
|
|
+ if (dicCts.ContainsKey(dto.ID))
|
|
|
+ dicCts[dto.ID] = cts;
|
|
|
+ else
|
|
|
+ dicCts.Add(dto.ID, cts);
|
|
|
|
|
|
Task.Run(async () =>
|
|
|
{
|
|
|
+ if (!Directory.Exists(dto.CapDir))
|
|
|
+ {
|
|
|
+ StopTask(dto.ID, EnumTaskStopType.Error, $"文件路径[{dto.CapDir}]不存在,任务结束");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (dto.DateDirFormat.Contains("\\"))
|
|
|
+ {
|
|
|
+ StopTask(dto.ID, EnumTaskStopType.Error, $"子目录日期格式不能包含多级目录格式");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ LogHelper.Info($"【任务{dto.ID}】开始执行...");
|
|
|
+ int.TryParse(ConfigurationManager.AppSettings["PosDtoFactor"], out int posDtoFactor);
|
|
|
+ if (posDtoFactor == 0) posDtoFactor = 1;//定位时时差系数
|
|
|
+ LogHelper.Info($"【任务{dto.ID}】定位时差系数={posDtoFactor}");
|
|
|
bool canConnected = CanGetSatIdFromMySql();
|
|
|
DateTime preTime = dto.StartTime;
|
|
|
int formatFlag;
|
|
@@ -162,6 +165,7 @@ namespace X2D1NoRefTaskServer.Service
|
|
|
file1 = cdbFile,//11局使用上行泄露信号进行检测
|
|
|
dmcType = taskSig.SigType,//上行信号检测目前的算法只能使用基于能量的KY或IBS检测
|
|
|
fsHz = minfo.FsHz,
|
|
|
+ mergeRes = true,
|
|
|
};
|
|
|
detectDto.dmcType = detectDto.dmcType & ~EnumSigCheckTypeDto.DAMA;//DAMA不支持上行信号检测,在这里移除掉
|
|
|
if (detectDto.dmcType == EnumSigCheckTypeDto.DAMA)
|
|
@@ -300,25 +304,29 @@ namespace X2D1NoRefTaskServer.Service
|
|
|
public void StarRealAsync(X2D1NoRefTaskHandleDto dto)
|
|
|
{
|
|
|
var cts = new CancellationTokenSource();
|
|
|
- dicCts.Add(dto.ID, cts);
|
|
|
- if (!Directory.Exists(dto.CapDir))
|
|
|
- {
|
|
|
- StopTask(dto.ID, EnumTaskStopType.Error, $"文件路径[{dto.CapDir}]不存在,任务结束");
|
|
|
- return;
|
|
|
- }
|
|
|
- if (dto.DateDirFormat.Contains("\\"))
|
|
|
- {
|
|
|
- StopTask(dto.ID, EnumTaskStopType.Error, $"子目录日期格式不能包含多级目录格式");
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- LogHelper.Info($"【任务{dto.ID}】开始执行...");
|
|
|
- int.TryParse(ConfigurationManager.AppSettings["PosDtoFactor"], out int posDtoFactor);
|
|
|
- if (posDtoFactor == 0) posDtoFactor = 1;//定位时时差系数
|
|
|
- LogHelper.Info($"【任务{dto.ID}】定位时差系数={posDtoFactor}");
|
|
|
+ if (dicCts.ContainsKey(dto.ID))
|
|
|
+ dicCts[dto.ID] = cts;
|
|
|
+ else
|
|
|
+ dicCts.Add(dto.ID, cts);
|
|
|
|
|
|
Task.Run(async () =>
|
|
|
{
|
|
|
+ if (!Directory.Exists(dto.CapDir))
|
|
|
+ {
|
|
|
+ StopTask(dto.ID, EnumTaskStopType.Error, $"文件路径[{dto.CapDir}]不存在,任务结束");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (dto.DateDirFormat.Contains("\\"))
|
|
|
+ {
|
|
|
+ StopTask(dto.ID, EnumTaskStopType.Error, $"子目录日期格式不能包含多级目录格式");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ LogHelper.Info($"【任务{dto.ID}】开始执行...");
|
|
|
+ int.TryParse(ConfigurationManager.AppSettings["PosDtoFactor"], out int posDtoFactor);
|
|
|
+ if (posDtoFactor == 0) posDtoFactor = 1;//定位时时差系数
|
|
|
+ LogHelper.Info($"【任务{dto.ID}】定位时差系数={posDtoFactor}");
|
|
|
+
|
|
|
bool canConnected = CanGetSatIdFromMySql();
|
|
|
DateTime preTime = DateTime.Now;
|
|
|
int formatFlag;
|
|
@@ -376,6 +384,7 @@ namespace X2D1NoRefTaskServer.Service
|
|
|
{
|
|
|
LogHelper.Info($"【任务{dto.ID}】目录[{filesDir}]中没有文件,跳过此目录");
|
|
|
ResetTime(formatFlag, ref preTime);
|
|
|
+ await Task.Delay(1000);
|
|
|
continue;
|
|
|
}
|
|
|
|
|
@@ -696,6 +705,7 @@ namespace X2D1NoRefTaskServer.Service
|
|
|
}
|
|
|
private void StopTask(int taskID, EnumTaskStopType type, string stopReason)
|
|
|
{
|
|
|
+ Thread.Sleep(2000);
|
|
|
if (type == EnumTaskStopType.Properly)
|
|
|
{
|
|
|
LogHelper.Info($"【任务{taskID}】{stopReason}");
|
|
@@ -709,7 +719,6 @@ namespace X2D1NoRefTaskServer.Service
|
|
|
if (stopResp.code != 200)
|
|
|
{
|
|
|
LogHelper.Error($"【任务{taskID}】停止异常.{stopResp.msg}");
|
|
|
- return;
|
|
|
}
|
|
|
if (dicCts.ContainsKey(taskID))
|
|
|
dicCts.Remove(taskID);
|