zoulei 11 months ago
parent
commit
a9b066ff03

+ 3 - 3
Service/X3LeoTaskServer54/App.config

@@ -21,9 +21,9 @@
 
 
 
 
 		<!--卫星及星历-->
 		<!--卫星及星历-->
-		<add key ="MainSatInfo" value="23467,-41382191.9136000,5386554.56810000,5909229.48100000"/>
-		<add key ="Adja1SatInfo" value="40892,-38200978.7507000,17823454.4590000,17223.4116000000"/>
-		<add key ="Adja2SatInfo" value="44637,4750288.28780000,41880282.2295000,19391.6018000000"/>
+		<add key ="MainSatInfo" value="39206,-41891185.7993,-2303482.9121,-1007186.7852"/>
+		<add key ="Adja1SatInfo" value="40892,-38240728.4909,-38240728.4909,-18752.1789"/>
+		<add key ="Adja2SatInfo" value="44637,4658230.4522,41911093.1893,-32337.1851"/>
 
 
 		<!--定位时差系数-->
 		<!--定位时差系数-->
 		<add key="PosDtoFactor" value="1"/>
 		<add key="PosDtoFactor" value="1"/>

+ 3 - 3
Service/X3LeoTaskServer54/AppDebug.config

@@ -21,9 +21,9 @@
 
 
 
 
 		<!--卫星及星历-->
 		<!--卫星及星历-->
-		<add key ="MainSatInfo" value="23467,-41382191.9136000,5386554.56810000,5909229.48100000"/>
-		<add key ="Adja1SatInfo" value="40892,-38200978.7507000,17823454.4590000,17223.4116000000"/>
-		<add key ="Adja2SatInfo" value="44637,4750288.28780000,41880282.2295000,19391.6018000000"/>
+		<add key ="MainSatInfo" value="39206,-41891185.7993,-2303482.9121,-1007186.7852"/>
+		<add key ="Adja1SatInfo" value="40892,-38240728.4909,-38240728.4909,-18752.1789"/>
+		<add key ="Adja2SatInfo" value="44637,4658230.4522,41911093.1893,-32337.1851"/>
 
 
 		<!--定位时差系数-->
 		<!--定位时差系数-->
 		<add key="PosDtoFactor" value="1"/>
 		<add key="PosDtoFactor" value="1"/>

+ 2 - 2
Service/X3LeoTaskServer54/HistoryFile.cs

@@ -20,9 +20,9 @@ namespace X3LeoTaskServer54
         public DateTime AdTime { get; set; }
         public DateTime AdTime { get; set; }
 
 
         /// <summary>
         /// <summary>
-        /// 分组
+        /// 通道
         /// </summary>
         /// </summary>
-        public int XDNo { get; set; }
+        public int Ch { get; set; }
 
 
         /// <summary>
         /// <summary>
         /// 下行频点MHz
         /// 下行频点MHz

+ 175 - 177
Service/X3LeoTaskServer54/Service/TaskService.cs

@@ -20,7 +20,6 @@ namespace X3LeoTaskServer54.Service
         string CapDir;
         string CapDir;
         string PosResDir;
         string PosResDir;
         string StateDir;
         string StateDir;
-        int MainSatCode;
         double[] MainSatXYZ, Adja1SatXYZ, Adja2SatXYZ;
         double[] MainSatXYZ, Adja1SatXYZ, Adja2SatXYZ;
         int PosDtoFactor;
         int PosDtoFactor;
         double DtoErrus;
         double DtoErrus;
@@ -74,16 +73,22 @@ namespace X3LeoTaskServer54.Service
                         Directory.CreateDirectory(PosResDir);
                         Directory.CreateDirectory(PosResDir);
                         try
                         try
                         {
                         {
-                            var mainInfo = ConfigurationManager.AppSettings["Time1SatInfo"].Replace(",", ",").Trim();
-                            var adja1Info = ConfigurationManager.AppSettings["Time2SatInfo"].Replace(",", ",").Trim();
-                            var adja2Info = ConfigurationManager.AppSettings["Time3SatInfo"].Replace(",", ",").Trim();
+                            var mainInfo = ConfigurationManager.AppSettings["MainSatInfo"].Replace(",", ",").Trim();
+                            var adja1Info = ConfigurationManager.AppSettings["Adja1SatInfo"].Replace(",", ",").Trim();
+                            var adja2Info = ConfigurationManager.AppSettings["Adja2SatInfo"].Replace(",", ",").Trim();
                             var arr1 = mainInfo.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
                             var arr1 = mainInfo.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
                             var arr2 = adja1Info.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
                             var arr2 = adja1Info.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
                             var arr3 = adja2Info.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
                             var arr3 = adja2Info.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
-                            MainSatCode = Convert.ToInt32(arr1[0]);
                             MainSatXYZ = GetEph(arr1);
                             MainSatXYZ = GetEph(arr1);
                             Adja1SatXYZ = GetEph(arr2);
                             Adja1SatXYZ = GetEph(arr2);
                             Adja2SatXYZ = GetEph(arr3);
                             Adja2SatXYZ = GetEph(arr3);
+                            var tarEcef = PhysicsHelper.GeoToEcef((110, 14, 0));
+                            var recEcef = PhysicsHelper.GeoToEcef((dto.CapLon, dto.CapLat, 0));
+                            var dt1 = PhysicsHelper.Dto(tarEcef, (MainSatXYZ[0], MainSatXYZ[1], MainSatXYZ[2]), recEcef);
+                            var dt2 = PhysicsHelper.Dto(tarEcef, (Adja1SatXYZ[0], Adja1SatXYZ[1], Adja1SatXYZ[2]), recEcef);
+                            var dt3 = PhysicsHelper.Dto(tarEcef, (Adja2SatXYZ[0], Adja2SatXYZ[1], Adja2SatXYZ[2]), recEcef);
+                            var dto1 = dt1 - dt2;
+                            var dto2 = dt1 - dt3;
                         }
                         }
                         catch
                         catch
                         {
                         {
@@ -94,7 +99,7 @@ namespace X3LeoTaskServer54.Service
 
 
                         #region 第2步,扫描采集文件
                         #region 第2步,扫描采集文件
                         var groupFiles = Directory.EnumerateFiles(CapDir, "*.dat", SearchOption.TopDirectoryOnly).Select(p => StringToAdFile(p))
                         var groupFiles = Directory.EnumerateFiles(CapDir, "*.dat", SearchOption.TopDirectoryOnly).Select(p => StringToAdFile(p))
-                        .GroupBy(m => m.XDNo).OrderBy(m => m.Key);
+                        .GroupBy(m => m.AdTime).OrderBy(m => m.Key);
 
 
                         if (!groupFiles.Any())
                         if (!groupFiles.Any())
                         {
                         {
@@ -105,187 +110,181 @@ namespace X3LeoTaskServer54.Service
                         foreach (var groupFile in groupFiles)//每一组文件代表同一组可定位的三个不同时刻的采集文件
                         foreach (var groupFile in groupFiles)//每一组文件代表同一组可定位的三个不同时刻的采集文件
                         {
                         {
                             if (cts.IsCancellationRequested) break;
                             if (cts.IsCancellationRequested) break;
+                            var adTime = groupFile.First().AdTime;
 
 
-                            var first = groupFile.First();
-                            await LogHelper.Info($"【任务{dto.ID}】正在执行第{first.XDNo}组的采集文件");
-
-                            var group = groupFile.OrderBy(g => g.AdTime).ToArray();
-                            if (group.Count() != 3)
-                            {
-                                await LogHelper.Warning($"【任务{dto.ID}】第{first.XDNo}组{first.AdTime:yyyyMMddHHmmss}时刻-信号{first.FreqDownMHz}MHz-未找到三个时刻的信号文件,跳过此组数据");
-                                return;
-                            }
-                            //group:同一组不同时刻的文件
-                            var task = Task.Run(async () =>
+                            var tarItems = groupFile.GroupBy(p => p.FreqDownMHz);
+                            foreach (var tarItem in tarItems)
                             {
                             {
-                                DateTime adTime = groupFile.First().AdTime;
-                                double freq = groupFile.First().FreqDownMHz;
-                                int No = groupFile.First().XDNo;
-                                var ch0File = group[0];
-                                var ch1File = group[1];
-                                var ch2File = group[2];
-                                if (cts.IsCancellationRequested) return;
-
-
-                                Stopwatch sw = new Stopwatch();
-                                sw.Start();
-                                string mainFile = await HttpHelper.UploadFileAsync(ch0File.File, baseUrl, token: cts.Token);//主星文件
-                                string adja1File = await HttpHelper.UploadFileAsync(ch1File.File, baseUrl, token: cts.Token);//邻1星文件
-                                string adja2File = await HttpHelper.UploadFileAsync(ch2File.File, baseUrl, token: cts.Token);//邻2星文件
-
-                                DetectDto detectDto = new DetectDto()
+                                var files = tarItem.OrderBy(p => p.Ch).ToList();
+                                var freq = tarItem.First().FreqDownMHz;
+                                if (files.Count() != 3)
                                 {
                                 {
-                                    file1 = mainFile,
-                                    dmcType = EnumSigCheckTypeDto.Ky5758,
-                                    fsHz = ch0File.Fs,
-                                    mergeRes = true,
-                                    SigProc = true,
-                                };
-
-                                var deteResp = await HttpHelper.PostRequestAsync<List<DetectResDto>>(baseUrl + "DetectCg/DetectCalc", detectDto, token: cts.Token);
-                                if (deteResp.code != 200)
-                                {
-                                    await LogHelper.Error($"【任务{dto.ID}】第{No}组{adTime:yyyyMMddHHmmss}时刻-信号{freq}MHz信号检测出错.{deteResp.msg}");
-                                    return;
+                                    await LogHelper.Warning($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{freq}MHz-未找到三组AD文件,跳过此组数据");
+                                    continue;
                                 }
                                 }
-                                var smps = deteResp.data.Select(m => new SmpPosition(m.Start, m.Length)).ToList();//怎么补0?
-
-                                await LogHelper.Info($"【任务{dto.ID}】第{No}组{adTime:yyyyMMddHHmmss}时刻-信号{freq}MHz-CPU参估开始,共{smps.Count}个突发...");
-                                var cgDto = new CpuCgMultiDto()
+                                var task = Task.Run(async () =>
                                 {
                                 {
-                                    dtCenter = 0,
-                                    dtRange = 40000,
-                                    file1 = mainFile,
-                                    file2 = adja1File,
-                                    samplingRate = ch0File.Fs,
-                                    smpPositions = smps,
-                                    snrThreshold = 15,
-                                };
-                                var result1 = await HttpHelper.PostRequestAsync<List<CpuCgResDto>>(baseUrl + "DetectCg/CpuCgMultiCalc", cgDto, token: cts.Token);
-                                if (result1.code != 200)
-                                {
-                                    await LogHelper.Error($"【任务{dto.ID}】第{No}组{adTime:yyyyMMddHHmmss}时刻-信号{freq}MHz-主星邻1星CPU参估出错.{result1.msg}");
-                                    return;
-                                }
-                                cgDto = new CpuCgMultiDto()
-                                {
-                                    dtCenter = 0,
-                                    dtRange = 40000,
-                                    file1 = mainFile,
-                                    file2 = adja2File,
-                                    samplingRate = ch0File.Fs,
-                                    smpPositions = smps,
-                                    snrThreshold = 15,
-                                };
-                                var result2 = await HttpHelper.PostRequestAsync<List<CpuCgResDto>>(baseUrl + "DetectCg/CpuCgMultiCalc", cgDto, token: cts.Token);
-                                sw.Stop();
-                                if (result2.code != 200)
-                                {
-                                    await LogHelper.Error($"【任务{dto.ID}】第{No}组{adTime:yyyyMMddHHmmss}时刻-信号{freq}MHz-主星邻2星CPU参估出错.{result2.msg}");
-                                    return;
-                                }
-                                await LogHelper.Info($"【任务{dto.ID}】第{No}组{adTime:yyyyMMddHHmmss}时刻-信号{freq}MHz-CPU参估完成,耗时{sw.ElapsedMilliseconds}ms");
-                                var data1 = result1.data;
-                                var data2 = result2.data;
-                                if (data1.Count != data2.Count || data1.Count != cgDto.smpPositions.Count)
-                                {
-                                    await LogHelper.Error($"【任务{dto.ID}】第{No}组{adTime:yyyyMMddHHmmss}时刻-信号{freq}MHz-参估结果个数和检测结果个数不匹配");
-                                    return;
-                                }
-                                sw.Start();
-                                for (int i = 0; i < data1.Count; i++)
-                                {
-                                    try
+                                    var ch0File = files[0];
+                                    var ch1File = files[1];
+                                    var ch2File = files[2];
+                                    if (cts.IsCancellationRequested) return;
+                                    Stopwatch sw = new Stopwatch();
+                                    sw.Start();
+                                    string mainFile = await HttpHelper.UploadFileAsync(ch0File.File, baseUrl, token: cts.Token);//主星文件
+                                    string adja1File = await HttpHelper.UploadFileAsync(ch1File.File, baseUrl, token: cts.Token);//邻1星文件
+                                    string adja2File = await HttpHelper.UploadFileAsync(ch2File.File, baseUrl, token: cts.Token);//邻2星文件
+                                    DetectDto detectDto = new DetectDto()
+                                    {
+                                        file1 = mainFile,
+                                        dmcType = EnumSigCheckTypeDto.Ky5758,
+                                        fsHz = ch0File.Fs,
+                                        mergeRes = true,
+                                        SigProc = true,
+                                    };
+                                    var deteResp = await HttpHelper.PostRequestAsync<List<DetectResDto>>(baseUrl + "DetectCg/DetectCalc", detectDto, token: cts.Token);
+                                    if (deteResp.code != 200)
+                                    {
+                                        await LogHelper.Error($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{freq}MHz信号检测出错.{deteResp.msg}");
+                                        return;
+                                    }
+                                    var smps = deteResp.data.Select(m => new SmpPosition(m.Start, m.Length)).ToList();//怎么补0?
+                                    await LogHelper.Info($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{freq}MHz-CPU参估开始,共{smps.Count}个突发...");
+                                    var cgDto = new CpuCgMultiDto()
+                                    {
+                                        dtCenter = 0,
+                                        dtRange = 40000,
+                                        file1 = mainFile,
+                                        file2 = adja1File,
+                                        samplingRate = ch0File.Fs,
+                                        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;
-                                        LeoX1ParPosDto leoX1 = new LeoX1ParPosDto()
+                                        await LogHelper.Error($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{freq}MHz-主星邻1星CPU参估出错.{result1.msg}");
+                                        return;
+                                    }
+                                    cgDto = new CpuCgMultiDto()
+                                    {
+                                        dtCenter = 0,
+                                        dtRange = 40000,
+                                        file1 = mainFile,
+                                        file2 = adja2File,
+                                        samplingRate = ch0File.Fs,
+                                        smpPositions = smps,
+                                        snrThreshold = 15,
+                                    };
+                                    var result2 = await HttpHelper.PostRequestAsync<List<CpuCgResDto>>(baseUrl + "DetectCg/CpuCgMultiCalc", cgDto, token: cts.Token);
+                                    sw.Stop();
+                                    if (result2.code != 200)
+                                    {
+                                        await LogHelper.Error($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{freq}MHz-主星邻2星CPU参估出错.{result2.msg}");
+                                        return;
+                                    }
+                                    await LogHelper.Info($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{freq}MHz-CPU参估完成,耗时{sw.ElapsedMilliseconds}ms");
+                                    var data1 = result1.data;
+                                    var data2 = result2.data;
+                                    if (data1.Count != data2.Count || data1.Count != cgDto.smpPositions.Count)
+                                    {
+                                        await LogHelper.Error($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{freq}MHz-参估结果个数和检测结果个数不匹配");
+                                        return;
+                                    }
+                                    sw.Start();
+                                    for (int i = 0; i < data1.Count; i++)
+                                    {
+                                        try
                                         {
                                         {
+                                            if (cts.IsCancellationRequested) break;
+                                            LeoX1ParPosDto leoX1 = new LeoX1ParPosDto()
+                                            {
 
 
-                                        };
-                                        var result = await HttpHelper.PostRequestAsync<PosResDto>(baseUrl + "Pos/PosLeX1ParAsync", leoX1);
-                                        if (result.code != 200)
-                                        {
-                                            await LogHelper.Error($"【任务{dto.ID}】第{No}组-{adTime:yyyyMMddHHmmss}时刻-信号{freq}MHz 第{i + 1}个突发定位异常.{result.msg}");
-                                        }
-                                        else
-                                        {
-                                            var posRes = result.data;
-                                            double posLon = posRes.PosLon;
-                                            double posLat = posRes.PosLat;
-                                            if (leoX1.Snr1 == 0 || leoX1.Snr2 == 0)
+                                            };
+                                            var result = await HttpHelper.PostRequestAsync<PosResDto>(baseUrl + "Pos/PosLeX1ParAsync", leoX1);
+                                            if (result.code != 200)
                                             {
                                             {
-                                                posLon = 0;
-                                                posLat = 0;
+                                                await LogHelper.Error($"【任务{dto.ID}】-{adTime:yyyyMMddHHmmss}时刻-信号{freq}MHz 第{i + 1}个突发定位异常.{result.msg}");
                                             }
                                             }
-                                            var errDto = new ErrEllipseX3NoRefDto()
-                                            {
-                                                PosLon = posLon,
-                                                PosLat = posLat,
-                                                MainX = MainSatXYZ[0],
-                                                MainY = MainSatXYZ[1],
-                                                MainZ = MainSatXYZ[2],
-                                                Adja1X = Adja1SatXYZ[0],
-                                                Adja1Y = Adja1SatXYZ[1],
-                                                Adja1Z = Adja1SatXYZ[2],
-                                                Adja2X = Adja2SatXYZ[0],
-                                                Adja2Y = Adja2SatXYZ[1],
-                                                Adja2Z = Adja2SatXYZ[2],
-                                                DtoErrus = DtoErrus,
-                                                EphErr = EphErrm,
-                                                OutputErrPoint = false,
-                                            };
-                                            var errRes = await GetErrEllipseResDto(errDto);
-                                            StringBuilder sb = new StringBuilder();
-                                            sb.Append($"{leoX1.SigTime:yyyy}\t");
-                                            sb.Append($"{leoX1.SigTime:MM}\t");
-                                            sb.Append($"{leoX1.SigTime:dd}\t");
-                                            sb.Append($"{leoX1.SigTime:HH}\t");
-                                            sb.Append($"{leoX1.SigTime:mm}\t");
-                                            sb.Append($"{leoX1.SigTime:ss}\t");
-                                            sb.Append($"{leoX1.SigTime:fff}\t");
-                                            sb.Append($"{leoX1.CheckRes.SmpCount * 1000 / ch0File.Fs:D4}\t");//信号持续时间ms
-                                            sb.Append($"{Convert.ToInt64(group.First().FreqDownMHz * 1e6):D12}\t");//下行频点
-                                            sb.Append($"{Convert.ToInt64((group.First().FreqDownMHz + 44) * 1e6):D12}\t");//上行频点
-                                            sb.Append($"{GetSignalType(deteResp.data[i].ModType)}\t");//信号样式(暂定有这些1:CPM,2:BPSK,4:QPSK,9:其它),
-                                            sb.Append($"{0:D4}\t");//目标序号
-                                            sb.Append($"res\t");
-                                            sb.Append($"{Convert.ToInt64(posLon * 1e6):D10}\t");
-                                            sb.Append($"{Convert.ToInt64(posLat * 1e6):D10}\t");
-                                            sb.Append($"{Convert.ToInt64(0 * 1e3):D8}\t");//定位误差km
-                                            sb.Append($"{Convert.ToInt64(leoX1.Dto1 * 1e2):D10}\t");
-                                            sb.Append($"{Convert.ToInt64(leoX1.Dfo1 * 1e2):D10}\t");
-                                            sb.Append($"{Convert.ToInt64(leoX1.Snr1 * 1e2):D6}\t");
-                                            sb.Append($"{Convert.ToInt64(leoX1.Dto2 * 1e2):D10}\t");
-                                            sb.Append($"{Convert.ToInt64(leoX1.Dfo2 * 1e2):D10}\t");
-                                            sb.Append($"{Convert.ToInt64(leoX1.Snr2 * 1e2):D6}\t");
-                                            sb.Append($"{Convert.ToInt64(0 * 1e2):D10}\t");
-                                            sb.Append($"{Convert.ToInt64(0 * 1e2):D10}\t");
-                                            sb.Append($"{Convert.ToInt64(0 * 1e2):D6}\t");
-                                            sb.Append($"{(long)errRes.LongRadius:D8}\t");//长轴m
-                                            sb.Append($"{(long)errRes.ShortRadius:D8}\t");//短轴m
-                                            sb.Append($"{(long)errRes.DipAngle:D7}\t");//倾角°
-                                            sb.Append($"{data1.Count:D2}\t");//时隙属性
-                                            sb.Append($"{1}\t");//所属卫星
-                                            sb.Append($"{100:D3}\t");//置信度
-                                            sb.Append($"{4}\t");//定位体制(0未知,1高轨多星,2高低轨,3星地,4星座)
-                                            sb.Append($"{(long)deteResp.data[i].ModRate.Value:D12}");//符号速率bps  12个
-                                            sb.Append("\r\n");
-                                            string resFile = Path.Combine(PosResDir, $"低轨单星定位结果_{posRes.SigTime:yyyyMMdd}.txt");
-                                            lock (this)
+                                            else
                                             {
                                             {
-                                                File.AppendAllText(resFile, sb.ToString());
+                                                var posRes = result.data;
+                                                double posLon = posRes.PosLon;
+                                                double posLat = posRes.PosLat;
+                                                if (leoX1.Snr1 == 0 || leoX1.Snr2 == 0)
+                                                {
+                                                    posLon = 0;
+                                                    posLat = 0;
+                                                }
+                                                var errDto = new ErrEllipseX3NoRefDto()
+                                                {
+                                                    PosLon = posLon,
+                                                    PosLat = posLat,
+                                                    MainX = MainSatXYZ[0],
+                                                    MainY = MainSatXYZ[1],
+                                                    MainZ = MainSatXYZ[2],
+                                                    Adja1X = Adja1SatXYZ[0],
+                                                    Adja1Y = Adja1SatXYZ[1],
+                                                    Adja1Z = Adja1SatXYZ[2],
+                                                    Adja2X = Adja2SatXYZ[0],
+                                                    Adja2Y = Adja2SatXYZ[1],
+                                                    Adja2Z = Adja2SatXYZ[2],
+                                                    DtoErrus = DtoErrus,
+                                                    EphErr = EphErrm,
+                                                    OutputErrPoint = false,
+                                                };
+                                                var errRes = await GetErrEllipseResDto(errDto);
+                                                StringBuilder sb = new StringBuilder();
+                                                sb.Append($"{leoX1.SigTime:yyyy}\t");
+                                                sb.Append($"{leoX1.SigTime:MM}\t");
+                                                sb.Append($"{leoX1.SigTime:dd}\t");
+                                                sb.Append($"{leoX1.SigTime:HH}\t");
+                                                sb.Append($"{leoX1.SigTime:mm}\t");
+                                                sb.Append($"{leoX1.SigTime:ss}\t");
+                                                sb.Append($"{leoX1.SigTime:fff}\t");
+                                                sb.Append($"{leoX1.CheckRes.SmpCount * 1000 / ch0File.Fs:D4}\t");//信号持续时间ms
+                                                sb.Append($"{Convert.ToInt64(freq * 1e6):D12}\t");//下行频点
+                                                sb.Append($"{Convert.ToInt64((freq + 44) * 1e6):D12}\t");//上行频点
+                                                sb.Append($"{GetSignalType(deteResp.data[i].ModType)}\t");//信号样式(暂定有这些1:CPM,2:BPSK,4:QPSK,9:其它),
+                                                sb.Append($"{0:D4}\t");//目标序号
+                                                sb.Append($"res\t");
+                                                sb.Append($"{Convert.ToInt64(posLon * 1e6):D10}\t");
+                                                sb.Append($"{Convert.ToInt64(posLat * 1e6):D10}\t");
+                                                sb.Append($"{Convert.ToInt64(0 * 1e3):D8}\t");//定位误差km
+                                                sb.Append($"{Convert.ToInt64(leoX1.Dto1 * 1e2):D10}\t");
+                                                sb.Append($"{Convert.ToInt64(leoX1.Dfo1 * 1e2):D10}\t");
+                                                sb.Append($"{Convert.ToInt64(leoX1.Snr1 * 1e2):D6}\t");
+                                                sb.Append($"{Convert.ToInt64(leoX1.Dto2 * 1e2):D10}\t");
+                                                sb.Append($"{Convert.ToInt64(leoX1.Dfo2 * 1e2):D10}\t");
+                                                sb.Append($"{Convert.ToInt64(leoX1.Snr2 * 1e2):D6}\t");
+                                                sb.Append($"{Convert.ToInt64(0 * 1e2):D10}\t");
+                                                sb.Append($"{Convert.ToInt64(0 * 1e2):D10}\t");
+                                                sb.Append($"{Convert.ToInt64(0 * 1e2):D6}\t");
+                                                sb.Append($"{(long)errRes.LongRadius:D8}\t");//长轴m
+                                                sb.Append($"{(long)errRes.ShortRadius:D8}\t");//短轴m
+                                                sb.Append($"{(long)errRes.DipAngle:D7}\t");//倾角°
+                                                sb.Append($"{data1.Count:D2}\t");//时隙属性
+                                                sb.Append($"{1}\t");//所属卫星
+                                                sb.Append($"{100:D3}\t");//置信度
+                                                sb.Append($"{4}\t");//定位体制(0未知,1高轨多星,2高低轨,3星地,4星座)
+                                                sb.Append($"{(long)deteResp.data[i].ModRate.Value:D12}");//符号速率bps  12个
+                                                sb.Append("\r\n");
+                                                string resFile = Path.Combine(PosResDir, $"低轨单星定位结果_{posRes.SigTime:yyyyMMdd}.txt");
+                                                lock (this)
+                                                {
+                                                    File.AppendAllText(resFile, sb.ToString());
+                                                }
                                             }
                                             }
                                         }
                                         }
+                                        catch (Exception ex)
+                                        {
+                                            await LogHelper.Error($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{freq}MHz-时隙位置{data1[i].Smpstart}定位异常", ex);
+                                        }
                                     }
                                     }
-                                    catch (Exception ex)
-                                    {
-                                        await LogHelper.Error($"【任务{dto.ID}】第{No}组{adTime:yyyyMMddHHmmss}时刻-信号{freq}MHz-时隙位置{data1[i].Smpstart}定位异常", ex);
-                                    }
-                                }
-                                sw.Stop();
-                                await LogHelper.Info($"【任务{dto.ID}】第{No}组{adTime:yyyyMMddHHmmss}时刻-信号{freq}MHz-定位完成,耗时{sw.ElapsedMilliseconds}ms");
-                            }, cts.Token);
-                            listTask.Add(task);
+                                    sw.Stop();
+                                    await LogHelper.Info($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{freq}MHz-定位完成,耗时{sw.ElapsedMilliseconds}ms");
+                                }, cts.Token);
+                                listTask.Add(task);
+                            }
                             await Task.WhenAll(listTask);
                             await Task.WhenAll(listTask);
                         }
                         }
                         #endregion
                         #endregion
@@ -380,18 +379,17 @@ namespace X3LeoTaskServer54.Service
 
 
         private AdFile StringToAdFile(string file)
         private AdFile StringToAdFile(string file)
         {
         {
-            //20240409094240_ADC_ch02.dat
+            //20240625184555_D261_FS96000_ch1.dat
             var name = Path.GetFileNameWithoutExtension(file).ToUpper();
             var name = Path.GetFileNameWithoutExtension(file).ToUpper();
-            var arr = name.Split(new string[] { "_", "CH", "C", "XD" }, StringSplitOptions.RemoveEmptyEntries);
+            var arr = name.Split(new string[] { "_", "D", "FS", "CH" }, StringSplitOptions.RemoveEmptyEntries);
             var time = DateTime.ParseExact(arr[0], "yyyyMMddHHmmss", null);
             var time = DateTime.ParseExact(arr[0], "yyyyMMddHHmmss", null);
-
             AdFile adFile = new AdFile()
             AdFile adFile = new AdFile()
             {
             {
                 File = file,
                 File = file,
                 AdTime = time,
                 AdTime = time,
                 FreqDownMHz = Convert.ToDouble(arr[1]),
                 FreqDownMHz = Convert.ToDouble(arr[1]),
                 Fs = Convert.ToInt32(arr[2]),
                 Fs = Convert.ToInt32(arr[2]),
-                XDNo = Convert.ToInt32(arr[4]),
+                Ch = Convert.ToInt32(arr[3]),
             };
             };
             return adFile;
             return adFile;
         }
         }

+ 29 - 14
XdCxRhDW.App/EditForms/LeoX1ParamEditor.Designer.cs

@@ -29,6 +29,11 @@
         private void InitializeComponent()
         private void InitializeComponent()
         {
         {
             this.components = new System.ComponentModel.Container();
             this.components = new System.ComponentModel.Container();
+            DevExpress.XtraEditors.Controls.EditorButtonImageOptions editorButtonImageOptions5 = new DevExpress.XtraEditors.Controls.EditorButtonImageOptions();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject17 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject18 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject19 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject20 = new DevExpress.Utils.SerializableAppearanceObject();
             DevExpress.XtraEditors.Controls.EditorButtonImageOptions editorButtonImageOptions1 = new DevExpress.XtraEditors.Controls.EditorButtonImageOptions();
             DevExpress.XtraEditors.Controls.EditorButtonImageOptions editorButtonImageOptions1 = new DevExpress.XtraEditors.Controls.EditorButtonImageOptions();
             DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject1 = new DevExpress.Utils.SerializableAppearanceObject();
             DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject1 = new DevExpress.Utils.SerializableAppearanceObject();
             DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject2 = new DevExpress.Utils.SerializableAppearanceObject();
             DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject2 = new DevExpress.Utils.SerializableAppearanceObject();
@@ -44,11 +49,6 @@
             DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject10 = new DevExpress.Utils.SerializableAppearanceObject();
             DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject10 = new DevExpress.Utils.SerializableAppearanceObject();
             DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject11 = new DevExpress.Utils.SerializableAppearanceObject();
             DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject11 = new DevExpress.Utils.SerializableAppearanceObject();
             DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject12 = new DevExpress.Utils.SerializableAppearanceObject();
             DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject12 = new DevExpress.Utils.SerializableAppearanceObject();
-            DevExpress.XtraEditors.Controls.EditorButtonImageOptions editorButtonImageOptions4 = new DevExpress.XtraEditors.Controls.EditorButtonImageOptions();
-            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject13 = new DevExpress.Utils.SerializableAppearanceObject();
-            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject14 = new DevExpress.Utils.SerializableAppearanceObject();
-            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject15 = new DevExpress.Utils.SerializableAppearanceObject();
-            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject16 = new DevExpress.Utils.SerializableAppearanceObject();
             this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
             this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
             this.ucEphXYZAdja2 = new XdCxRhDW.App.UserControl.UCEphXYZParam();
             this.ucEphXYZAdja2 = new XdCxRhDW.App.UserControl.UCEphXYZParam();
             this.ucEphXYZAdja1 = new XdCxRhDW.App.UserControl.UCEphXYZParam();
             this.ucEphXYZAdja1 = new XdCxRhDW.App.UserControl.UCEphXYZParam();
@@ -76,6 +76,7 @@
             this.layoutControlItem23 = new DevExpress.XtraLayout.LayoutControlItem();
             this.layoutControlItem23 = new DevExpress.XtraLayout.LayoutControlItem();
             this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
             this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
             this.dxErrorProvider = new DevExpress.XtraEditors.DXErrorProvider.DXErrorProvider(this.components);
             this.dxErrorProvider = new DevExpress.XtraEditors.DXErrorProvider.DXErrorProvider(this.components);
+            this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
             ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
             ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
             this.layoutControl1.SuspendLayout();
             this.layoutControl1.SuspendLayout();
             ((System.ComponentModel.ISupportInitialize)(this.txtDfo1.Properties)).BeginInit();
             ((System.ComponentModel.ISupportInitialize)(this.txtDfo1.Properties)).BeginInit();
@@ -99,6 +100,7 @@
             ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem23)).BeginInit();
             ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem23)).BeginInit();
             ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit();
             ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit();
             ((System.ComponentModel.ISupportInitialize)(this.dxErrorProvider)).BeginInit();
             ((System.ComponentModel.ISupportInitialize)(this.dxErrorProvider)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit();
             this.SuspendLayout();
             this.SuspendLayout();
             // 
             // 
             // layoutControl1
             // layoutControl1
@@ -150,7 +152,7 @@
             this.txtDfo1.MaximumSize = new System.Drawing.Size(0, 20);
             this.txtDfo1.MaximumSize = new System.Drawing.Size(0, 20);
             this.txtDfo1.Name = "txtDfo1";
             this.txtDfo1.Name = "txtDfo1";
             this.txtDfo1.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
             this.txtDfo1.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
-            new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph, "Hz", -1, false, true, false, editorButtonImageOptions1, new DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), serializableAppearanceObject1, serializableAppearanceObject2, serializableAppearanceObject3, serializableAppearanceObject4, "", null, null, DevExpress.Utils.ToolTipAnchor.Default)});
+            new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph, "Hz", -1, false, true, false, editorButtonImageOptions5, new DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), serializableAppearanceObject17, serializableAppearanceObject18, serializableAppearanceObject19, serializableAppearanceObject20, "", null, null, DevExpress.Utils.ToolTipAnchor.Default)});
             this.txtDfo1.Properties.NullValuePrompt = "必需";
             this.txtDfo1.Properties.NullValuePrompt = "必需";
             this.txtDfo1.Size = new System.Drawing.Size(197, 20);
             this.txtDfo1.Size = new System.Drawing.Size(197, 20);
             this.txtDfo1.StyleController = this.layoutControl1;
             this.txtDfo1.StyleController = this.layoutControl1;
@@ -203,7 +205,7 @@
             this.txtDfo2.MaximumSize = new System.Drawing.Size(0, 20);
             this.txtDfo2.MaximumSize = new System.Drawing.Size(0, 20);
             this.txtDfo2.Name = "txtDfo2";
             this.txtDfo2.Name = "txtDfo2";
             this.txtDfo2.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
             this.txtDfo2.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
-            new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph, "Hz", -1, false, true, false, editorButtonImageOptions2, new DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), serializableAppearanceObject5, serializableAppearanceObject6, serializableAppearanceObject7, serializableAppearanceObject8, "", null, null, DevExpress.Utils.ToolTipAnchor.Default)});
+            new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph, "Hz", -1, false, true, false, editorButtonImageOptions1, new DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), serializableAppearanceObject1, serializableAppearanceObject2, serializableAppearanceObject3, serializableAppearanceObject4, "", null, null, DevExpress.Utils.ToolTipAnchor.Default)});
             this.txtDfo2.Properties.NullValuePrompt = "必需";
             this.txtDfo2.Properties.NullValuePrompt = "必需";
             this.txtDfo2.Size = new System.Drawing.Size(207, 20);
             this.txtDfo2.Size = new System.Drawing.Size(207, 20);
             this.txtDfo2.StyleController = this.layoutControl1;
             this.txtDfo2.StyleController = this.layoutControl1;
@@ -215,7 +217,7 @@
             this.txtTargetFreq.MaximumSize = new System.Drawing.Size(0, 20);
             this.txtTargetFreq.MaximumSize = new System.Drawing.Size(0, 20);
             this.txtTargetFreq.Name = "txtTargetFreq";
             this.txtTargetFreq.Name = "txtTargetFreq";
             this.txtTargetFreq.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
             this.txtTargetFreq.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
-            new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph, "MHz", -1, false, true, false, editorButtonImageOptions3, new DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), serializableAppearanceObject9, serializableAppearanceObject10, serializableAppearanceObject11, serializableAppearanceObject12, "", null, null, DevExpress.Utils.ToolTipAnchor.Default)});
+            new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph, "MHz", -1, false, true, false, editorButtonImageOptions2, new DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), serializableAppearanceObject5, serializableAppearanceObject6, serializableAppearanceObject7, serializableAppearanceObject8, "", null, null, DevExpress.Utils.ToolTipAnchor.Default)});
             this.txtTargetFreq.Properties.MaskSettings.Set("MaskManagerType", typeof(DevExpress.Data.Mask.NumericMaskManager));
             this.txtTargetFreq.Properties.MaskSettings.Set("MaskManagerType", typeof(DevExpress.Data.Mask.NumericMaskManager));
             this.txtTargetFreq.Size = new System.Drawing.Size(351, 20);
             this.txtTargetFreq.Size = new System.Drawing.Size(351, 20);
             this.txtTargetFreq.StyleController = this.layoutControl1;
             this.txtTargetFreq.StyleController = this.layoutControl1;
@@ -227,7 +229,7 @@
             this.txtTargetDFreq.MaximumSize = new System.Drawing.Size(0, 20);
             this.txtTargetDFreq.MaximumSize = new System.Drawing.Size(0, 20);
             this.txtTargetDFreq.Name = "txtTargetDFreq";
             this.txtTargetDFreq.Name = "txtTargetDFreq";
             this.txtTargetDFreq.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
             this.txtTargetDFreq.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
-            new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph, "MHz", -1, false, true, false, editorButtonImageOptions4, new DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), serializableAppearanceObject13, serializableAppearanceObject14, serializableAppearanceObject15, serializableAppearanceObject16, "", null, null, DevExpress.Utils.ToolTipAnchor.Default)});
+            new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph, "MHz", -1, false, true, false, editorButtonImageOptions3, new DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), serializableAppearanceObject9, serializableAppearanceObject10, serializableAppearanceObject11, serializableAppearanceObject12, "", null, null, DevExpress.Utils.ToolTipAnchor.Default)});
             this.txtTargetDFreq.Properties.MaskSettings.Set("MaskManagerType", typeof(DevExpress.Data.Mask.NumericMaskManager));
             this.txtTargetDFreq.Properties.MaskSettings.Set("MaskManagerType", typeof(DevExpress.Data.Mask.NumericMaskManager));
             this.txtTargetDFreq.Size = new System.Drawing.Size(261, 20);
             this.txtTargetDFreq.Size = new System.Drawing.Size(261, 20);
             this.txtTargetDFreq.StyleController = this.layoutControl1;
             this.txtTargetDFreq.StyleController = this.layoutControl1;
@@ -261,7 +263,8 @@
             this.layoutControlItem25,
             this.layoutControlItem25,
             this.layoutControlItem3,
             this.layoutControlItem3,
             this.layoutControlItem23,
             this.layoutControlItem23,
-            this.layoutControlItem6});
+            this.layoutControlItem6,
+            this.emptySpaceItem1});
             this.Root.Name = "Root";
             this.Root.Name = "Root";
             this.Root.Size = new System.Drawing.Size(642, 490);
             this.Root.Size = new System.Drawing.Size(642, 490);
             this.Root.TextVisible = false;
             this.Root.TextVisible = false;
@@ -355,12 +358,12 @@
             // 
             // 
             this.simpleLabelItem1.AllowHotTrack = false;
             this.simpleLabelItem1.AllowHotTrack = false;
             this.simpleLabelItem1.Location = new System.Drawing.Point(0, 387);
             this.simpleLabelItem1.Location = new System.Drawing.Point(0, 387);
-            this.simpleLabelItem1.MaxSize = new System.Drawing.Size(0, 18);
-            this.simpleLabelItem1.MinSize = new System.Drawing.Size(126, 18);
+            this.simpleLabelItem1.MaxSize = new System.Drawing.Size(0, 30);
+            this.simpleLabelItem1.MinSize = new System.Drawing.Size(76, 30);
             this.simpleLabelItem1.Name = "simpleLabelItem1";
             this.simpleLabelItem1.Name = "simpleLabelItem1";
-            this.simpleLabelItem1.Size = new System.Drawing.Size(622, 83);
+            this.simpleLabelItem1.Size = new System.Drawing.Size(622, 30);
             this.simpleLabelItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
             this.simpleLabelItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
-            this.simpleLabelItem1.Text = " ";
+            this.simpleLabelItem1.Text = "  ";
             this.simpleLabelItem1.TextSize = new System.Drawing.Size(72, 14);
             this.simpleLabelItem1.TextSize = new System.Drawing.Size(72, 14);
             // 
             // 
             // layoutControlItem16
             // layoutControlItem16
@@ -452,6 +455,16 @@
             // 
             // 
             this.dxErrorProvider.ContainerControl = this;
             this.dxErrorProvider.ContainerControl = this;
             // 
             // 
+            // emptySpaceItem1
+            // 
+            this.emptySpaceItem1.AllowHotTrack = false;
+            this.emptySpaceItem1.Location = new System.Drawing.Point(0, 417);
+            this.emptySpaceItem1.MinSize = new System.Drawing.Size(104, 2);
+            this.emptySpaceItem1.Name = "emptySpaceItem1";
+            this.emptySpaceItem1.Size = new System.Drawing.Size(622, 53);
+            this.emptySpaceItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+            this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0);
+            // 
             // LeoX1ParamEditor
             // LeoX1ParamEditor
             // 
             // 
             this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
             this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
@@ -483,6 +496,7 @@
             ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem23)).EndInit();
             ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem23)).EndInit();
             ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit();
             ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit();
             ((System.ComponentModel.ISupportInitialize)(this.dxErrorProvider)).EndInit();
             ((System.ComponentModel.ISupportInitialize)(this.dxErrorProvider)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit();
             this.ResumeLayout(false);
             this.ResumeLayout(false);
 
 
         }
         }
@@ -516,5 +530,6 @@
         private DevExpress.XtraLayout.LayoutControlItem layoutControlItem25;
         private DevExpress.XtraLayout.LayoutControlItem layoutControlItem25;
         private DevExpress.XtraEditors.SimpleButton btnDfoCalc;
         private DevExpress.XtraEditors.SimpleButton btnDfoCalc;
         private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
         private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
+        private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
     }
     }
 }
 }

+ 1 - 1
XdCxRhDW.App/EditForms/X2DTOParamEditor.cs

@@ -318,7 +318,7 @@ namespace XdCxRhDW.App.EditForms
                     Adja1Vy = dto.AdjaVy,
                     Adja1Vy = dto.AdjaVy,
                     Adja1Vz = dto.AdjaVz,
                     Adja1Vz = dto.AdjaVz,
                 };
                 };
-                var res = PosApi.X2_PosDtoDfo(cgRes, StationRes);
+                var res = LeoPosApi.X2_POS(cgRes, StationRes, dto.TarFreqUp, dto.RefFreqUp);
                 this.lblRes.Text = $"{info.PosResType.GetEnumDisplayName()}定位点:[{res[0]:f4},{res[1]:f4}] 镜像点:[{res[3]:f4},{res[4]:f4}]";
                 this.lblRes.Text = $"{info.PosResType.GetEnumDisplayName()}定位点:[{res[0]:f4},{res[1]:f4}] 镜像点:[{res[3]:f4},{res[4]:f4}]";
             }
             }