wyq 1 år sedan
förälder
incheckning
772e6551e1

+ 1 - 1
Service/CheckServer/CheckServer.csproj

@@ -137,7 +137,7 @@
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </None>
     <None Include="packages.config" />
-    <None Include="Properties\licenses.licx" />
+    <EmbeddedResource Include="Properties\licenses.licx" />
     <EmbeddedResource Include="Properties\Resources.resx">
       <Generator>ResXFileCodeGenerator</Generator>
       <LastGenOutput>Resources.Designer.cs</LastGenOutput>

+ 1 - 1
Service/CpuCgServer/CpuCgServer.csproj

@@ -131,7 +131,7 @@
       <DependentUpon>MainForm.cs</DependentUpon>
     </Compile>
     <None Include="packages.config" />
-    <None Include="Properties\licenses.licx" />
+    <EmbeddedResource Include="Properties\licenses.licx" />
     <EmbeddedResource Include="Properties\Resources.resx">
       <Generator>ResXFileCodeGenerator</Generator>
       <LastGenOutput>Resources.Designer.cs</LastGenOutput>

+ 1 - 1
Service/GpuCgServer/GpuCgServer.csproj

@@ -131,7 +131,7 @@
       <DependentUpon>MainForm.cs</DependentUpon>
     </Compile>
     <None Include="packages.config" />
-    <None Include="Properties\licenses.licx" />
+    <EmbeddedResource Include="Properties\licenses.licx" />
     <EmbeddedResource Include="Properties\Resources.resx">
       <Generator>ResXFileCodeGenerator</Generator>
       <LastGenOutput>Resources.Designer.cs</LastGenOutput>

+ 5 - 0
Service/X2D1NoRefTaskServer/HistoryFile.cs

@@ -38,5 +38,10 @@ namespace X2D1NoRefTaskServer
         /// </summary>
         public int SatId { get; set; }
 
+        /// <summary>
+        /// 上行信号分组(xd1 xd2 xd3...)
+        /// </summary>
+        public int XdIndex { get; set; }
+
     }
 }

+ 151 - 142
Service/X2D1NoRefTaskServer/Service/HistoryTaskService.cs

@@ -101,171 +101,177 @@ namespace X2D1NoRefTaskServer.Service
                         {
                             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;
                                 }
-                                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;
                                 }
-                                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;
                                 }
-                                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;
                                 }
-                                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);
@@ -301,7 +307,7 @@ namespace X2D1NoRefTaskServer.Service
             HistoryFile historyFile = new HistoryFile();
             historyFile.FilePath = 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));
@@ -313,8 +319,11 @@ namespace X2D1NoRefTaskServer.Service
 
             //采集通道
             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();
@@ -323,12 +332,12 @@ namespace X2D1NoRefTaskServer.Service
 
             //采样率
             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.Ch = ch;
             historyFile.FsHz = fsHz;
+            historyFile.XdIndex = xdIndex;
             if (!canConnected)
             {
                 if (ch == 2)

+ 1 - 1
Service/X2D1NoRefTaskServer/X2D1NoRefTaskServer.csproj

@@ -163,7 +163,7 @@
     <Compile Include="Service\HistoryTaskService.cs" />
     <Compile Include="HistoryFile.cs" />
     <None Include="packages.config" />
-    <None Include="Properties\licenses.licx" />
+    <EmbeddedResource Include="Properties\licenses.licx" />
     <EmbeddedResource Include="Properties\Resources.resx">
       <Generator>ResXFileCodeGenerator</Generator>
       <LastGenOutput>Resources.Designer.cs</LastGenOutput>

+ 1 - 1
XdCxRhDW.App/Controllers/DetectCgController.cs

@@ -45,7 +45,7 @@ namespace XdCxRhDW.App.Controllers
             var svr = ServerContext.Instance.GetRandomOne(EnumSvrType.CpuCgSvr);
             dto.file1 = await HttpHelper.UploadFileAsync(GetLocalFile(dto.file1), svr.BaseHttpAddr + "/api/File/UploadFileAsync");
             dto.file2 = await HttpHelper.UploadFileAsync(GetLocalFile(dto.file2), svr.BaseHttpAddr + "/api/File/UploadFileAsync");
-            var res = await HttpHelper.PostRequestAsync<List<CpuCgResDto>>(svr.BaseHttpAddr + "/api/CpuCg/MultCalc", dto);
+            var res = await HttpHelper.PostRequestAsync<List<CpuCgResDto>>(svr.BaseHttpAddr + "/api/CpuCg/MultiCalc", dto);
             return res;
         }
         /// <summary>

BIN
XdCxRhDW.App/Service/CPU参估服务/AddIns/CPU参估服务.exe


BIN
XdCxRhDW.App/Service/CPU参估服务/AddIns/XdCxRhDw.Dto.dll


BIN
XdCxRhDW.App/Service/GPU参估服务/AddIns/GPU参估服务.exe


BIN
XdCxRhDW.App/Service/GPU参估服务/AddIns/XdCxRhDw.Dto.dll


BIN
XdCxRhDW.App/Service/信号检测服务/AddIns/XdCxRhDW.Framework.dll


BIN
XdCxRhDW.App/Service/信号检测服务/AddIns/XdCxRhDW.WebApi.dll


BIN
XdCxRhDW.App/Service/信号检测服务/AddIns/XdCxRhDw.Dto.dll


BIN
XdCxRhDW.App/Service/信号检测服务/AddIns/信号检测服务.exe


+ 8 - 7
XdCxRhDW.App/UserControl/CtrlHome.cs

@@ -53,21 +53,22 @@ namespace XdCxRhDW.App.UserControl
             Messenger.Defalut.Sub<SysSetings>("地图类型改变", OnSysSetingsChanged);
             Messenger.Defalut.Sub<int>("任务状态改变", async id =>
             {
-
                 var find = list.FirstOrDefault(p => p.ID == id);
                 if (find == null) return;
                 using (RHDWContext db = new RHDWContext())
                 {
                     var item = await db.TaskInfos.FirstOrDefaultAsync(p => p.ID == id);
                     if (item == null) return;
-                    for (int i = 0; i < 5; i++)
-                    {
-                        if (find.TaskState != item.TaskState) break;
-                        await Task.Delay(500);
-                    }
                     find.TaskState = item.TaskState;
                 }
                 this.gridView1.RefreshData();
+                if (tsk.ID != id) return;
+                var btnEdit = (layoutControlGroup1.CustomHeaderButtons[1] as GroupBoxButton);
+                var btnDel = (layoutControlGroup1.CustomHeaderButtons[2] as GroupBoxButton);
+                this.Invoke(new Action(() =>
+                {
+                    btnDel.Enabled = btnEdit.Enabled = tsk.TaskState != EnumTaskState.Running;
+                }));
             });
             gridHomeTask.UseDefault(list, showScrollH: true).UseEmptyText("点击+创建任务");
             gridView1.BestFitColumns();
@@ -399,7 +400,7 @@ namespace XdCxRhDW.App.UserControl
                     if (editItem == null) return;
                     using (RHDWContext db = new RHDWContext())
                     {
-                       
+
                         List<TaskSig> taskSig = await db.TaskSigs.Where(w => w.TaskInfoID == editItem.ID).ToListAsync();
                         var taskSigID = taskSig.Select(s => s.SigInfoID);
                         var items = await db.SigInfos.ToListAsync();