wyq 1 tahun lalu
induk
melakukan
82e669142b

+ 4 - 1
Service/X2LeoTaskServer54/App.config

@@ -14,12 +14,15 @@
 		<add key="PosPlatformAddr" value="http://127.0.0.1:8091" />
 
 		<!--采集数据目录-->
-		<add key="CapDir" value="E:\data10\低轨双星仿真数据"/>
+		<add key="CapDir" value="D:\data10\低轨双星仿真数据"/>
 
 		<!--卫星及星历-->
 		<add key ="MainSatInfo" value="23467,-1608418.46,5994257.60,3139819.89,-6632.8731,-373.9909,-2678.2335"/>
 		<add key ="Adja1SatInfo" value="40892,-4629555.87,4978929.91,1487241.78,-4890.2693,-3337.6709,-4031.3087"/>
 
+		<!---参考下行频点 MHZ-->
+		<add key="RefFreqDownMHz"  value="261"/>
+
 		<!--定位时差系数-->
 		<add key="PosDtoFactor" value="1"/>
 

+ 5 - 0
Service/X2LeoTaskServer54/HistoryFile.cs

@@ -36,6 +36,11 @@ namespace X2LeoTaskServer54
         /// </summary>
 
         public int Fs { get; set; }
+
+        /// <summary>
+        /// 是否是目标信号
+        /// </summary>
+        public bool BeTarget { get; set; }
     }
 
 }

+ 110 - 8
Service/X2LeoTaskServer54/Service/TaskService.cs

@@ -1,5 +1,6 @@
 using System;
 using System.Collections.Generic;
+using System.ComponentModel;
 using System.Configuration;
 using System.Diagnostics;
 using System.IO;
@@ -8,6 +9,7 @@ using System.Text;
 using System.Threading;
 using System.Threading.Tasks;
 using XdCxRhDW.Dto;
+using static System.Net.Mime.MediaTypeNames;
 
 namespace X2LeoTaskServer54.Service
 {
@@ -20,6 +22,7 @@ namespace X2LeoTaskServer54.Service
         int MainSatCode;
         int Adja1SatCode;
         double[] MainXYZ, Adja1XYZ;
+        double RefFreqDownMHz;
         int PosDtoFactor;
         double DtoErrus;
         double DfoErrHz;
@@ -92,6 +95,18 @@ namespace X2LeoTaskServer54.Service
                             await StopTask(dto.ID, EnumTaskStopType.Error, $"任务处理服务配置文件卫星信息解析出错");
                             return;
                         }
+
+                        try
+                        {
+                            var RefFreqDownMHzstr = ConfigurationManager.AppSettings["RefFreqDownMHz"].Trim();
+                            RefFreqDownMHz = Convert.ToDouble(RefFreqDownMHzstr);
+
+                        }
+                        catch
+                        {
+                            await StopTask(dto.ID, EnumTaskStopType.Error, $"任务处理服务配置文件参考下行频点解析出错");
+                            return;
+                        }
                         #endregion
 
                         #region 第2步,扫描采集文件
@@ -107,16 +122,26 @@ namespace X2LeoTaskServer54.Service
                         {
                             if (cts.IsCancellationRequested) break;
                             var adTime = groupFile.First().AdTime;
-                            var tarItems = groupFile.GroupBy(p => p.FreqDownMHz);
+                            var tarItems = groupFile.Where(m => m.BeTarget).GroupBy(p => p.FreqDownMHz);//N个目标
+                            var refItems = groupFile.Where(m => !m.BeTarget);//一个参考
+                            if (refItems.Count() != 2)
+                            {
+                                await LogHelper.Warning($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-参考信号{RefFreqDownMHz}MHz-AD文件个数不为2,跳过此组数据");
+                                return;
+                            }
+                            //参考信号结果
+                           var refData =  await ExeRefFile(dto, refItems);
+                          
                             List<Task> listTask = new List<Task>();
                             foreach (var tarItem in tarItems)
                             {
                                 var freq = tarItem.First().FreqDownMHz;
                                 if (tarItem.Count() != 2)
                                 {
-                                    await LogHelper.Warning($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{freq}MHz-AD文件个数不为2,跳过此组数据");
+                                    await LogHelper.Warning($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-目标信号{freq}MHz-AD文件个数不为2,跳过此组数据");
                                     return;
                                 }
+
                                 var task = Task.Run(async () =>
                                 {
                                     var tarFileInfo1 = tarItem.FirstOrDefault(t => t.Ch == 1);
@@ -179,6 +204,11 @@ namespace X2LeoTaskServer54.Service
                                         await LogHelper.Error($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{freq}MHz-参估结果个数和检测结果个数不匹配");
                                         return;
                                     }
+                                    if (data1.Count != refData.Count)
+                                    {
+                                        await LogHelper.Error($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{freq}MHz-参估结果个数和参考参估结果个数不匹配");
+                                        return;
+                                    }
                                     sw.Restart();
                                     for (int i = 0; i < data1.Count; i++)
                                     {
@@ -206,16 +236,16 @@ namespace X2LeoTaskServer54.Service
                                                 Dto = PosDtoFactor * data1[i].Dt,
                                                 Dfo = data1[i].Df,
                                                 Snr = data1[i].Snr,
-                                                YbMainDto = 260000 + PosDtoFactor * (0.00282418 * 1e6),
+                                                YbMainDto = 260000 + PosDtoFactor * (refData[i].Dt),
                                                 YbAdjaDto = 260000,
-                                                YbMainDfo = 100 + 11320.0568,
+                                                YbMainDfo = 100 + refData[i].Df,
                                                 YbAdjaDfo = 100,
-                                                TarFreqUp = 310.85 * 1e6,
-                                                RefFreqUp = 295 * 1e6,
+                                                TarFreqUp = (tarFileInfo1.FreqDownMHz+44) * 1e6,
+                                                RefFreqUp = (RefFreqDownMHz+44) * 1e6,
                                                 SatTxLon = dto.CapLon,
                                                 SatTxLat = dto.CapLat,
                                                 TarFreqDown = tarFileInfo1.FreqDownMHz * 1e6,
-                                                RefFreqDown = 255 * 1e6,
+                                                RefFreqDown =RefFreqDownMHz * 1e6,
                                                 RefLon = dto.RefLon,
                                                 RefLat = dto.RefLat,
                                                 CheckRes = new CheckResDto()
@@ -320,6 +350,75 @@ namespace X2LeoTaskServer54.Service
 
         }
 
+        private async Task<List<CpuCgResDto>> ExeRefFile(LeoSat2TaskHandleDto dto, IEnumerable<AdFile> refItem)
+        {
+            List<CpuCgResDto> dtos = new List<CpuCgResDto>();
+            var adTime = refItem.First().AdTime;
+            var freq = refItem.First().FreqDownMHz;
+            var refFileInfo1 = refItem.FirstOrDefault(t => t.Ch == 1);
+            var refFileInfo2 = refItem.FirstOrDefault(t => t.Ch == 2);
+            if (refFileInfo1 == null)
+            {
+                await LogHelper.Warning($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-参考信号{freq}MHz-未找到主星信号文件,跳过此组数据");
+                return dtos;
+            }
+            if (refFileInfo2 == null)
+            {
+                await LogHelper.Warning($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-参考信号{freq}MHz-未找到邻星信号文件,跳过此组数据");
+                return dtos;
+            }
+            if (cts.IsCancellationRequested) return dtos;
+
+
+            Stopwatch sw = new Stopwatch();
+            sw.Start();
+            string refFile1 = await HttpHelper.UploadFileAsync(refFileInfo1.File, baseUrl, token: cts.Token);//目标主星文件
+            string refFile2 = await HttpHelper.UploadFileAsync(refFileInfo2.File, baseUrl, token: cts.Token);//目标邻1星文件
+            DetectDto detectDto = new DetectDto()
+            {
+                file1 = refFile1,
+                dmcType = EnumSigCheckTypeDto.Ky5758,
+                fsHz = refFileInfo1.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 dtos;
+            }
+            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 = 60000,
+                file1 = refFile1,
+                file2 = refFile2,
+                samplingRate = refFileInfo1.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}】{adTime:yyyyMMddHHmmss}时刻-参考信号{freq}MHz-参考主星邻1星CPU参估出错.{result1.msg}");
+                return dtos;
+            }
+            await LogHelper.Info($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-参考信号{freq}MHz-CPU参估完成,耗时{sw.ElapsedMilliseconds}ms");
+            var data1 = result1.data;
+            if (data1.Count != cgDto.smpPositions.Count)
+            {
+                await LogHelper.Error($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-参考信号{freq}MHz-参估结果个数和检测结果个数不匹配");
+                return dtos;
+            }
+            return data1;
+        }
+
+
         private double[] GetEph(string[] strs)
         {
 
@@ -400,13 +499,16 @@ namespace X2LeoTaskServer54.Service
             var arr = name.Split(new string[] { "_", "D", "FS", "CH" }, StringSplitOptions.RemoveEmptyEntries);
             var time = DateTime.ParseExact(arr[0], "yyyyMMddHHmmss", null);
 
+            double freqDownMHz = Convert.ToDouble(arr[1]);
             AdFile adFile = new AdFile()
             {
                 File = file,
                 AdTime = time,
-                FreqDownMHz = Convert.ToDouble(arr[1]),
+                FreqDownMHz = freqDownMHz,
                 Fs = Convert.ToInt32(arr[2]),
                 Ch = Convert.ToInt32(arr[3]),
+                BeTarget = RefFreqDownMHz != freqDownMHz,//判断是不是目标频点
+
             };
             return adFile;
         }

+ 0 - 213
XdCxRhDW.App/EditForms/TarDfoCalc.cs

@@ -1,213 +0,0 @@
-using DevExpress.XtraEditors;
-using DevExpress.XtraEditors.Controls;
-using ExtensionsDev;
-using Newtonsoft.Json.Linq;
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Data;
-using System.Data.Entity;
-using System.Drawing;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using System.Windows;
-using System.Windows.Documents;
-using System.Windows.Forms;
-using System.Windows.Input;
-using XdCxRhDW.Api;
-using XdCxRhDW.Api.AddIns;
-using XdCxRhDW.Entity;
-using XdCxRhDW.Repostory;
-
-namespace XdCxRhDW.App.EditForms
-{
-    public partial class TarDfoCalc : DevExpress.XtraEditors.XtraForm
-    {
-        public TarDfoCalc()
-        {
-            InitializeComponent();
-            this.layoutControl1.UseDefault();
-            this.StartPosition = FormStartPosition.CenterParent;
-        }
-        public TarDfoCalc(double lon, double lat)
-            : this()
-        {
-            this.txtTar.Text = $"{lon:f3},{lat:f3}";
-        }
-        private void TarDfoCalc_Load(object sender, EventArgs e)
-        {
-            this.cbPosType.Properties.Items.Add(new RadioGroupItem((int)EnumPosType.X1Leo, EnumPosType.X1Leo.GetEnumDisplayName()));
-            this.cbPosType.Properties.Items.Add(new RadioGroupItem((int)EnumPosType.X2Leo, EnumPosType.X2Leo.GetEnumDisplayName()));
-            this.cbPosType.SelectedIndex = 0;
-        }
-        private void cbPosType_EditValueChanged(object sender, EventArgs e)
-        {
-            var editvalue = cbPosType.EditValue as RadioGroupItem;
-            var posType = (EnumPosType)editvalue.Value;
-            if (posType == EnumPosType.X1Leo)
-            {
-                var time1SatInfo = "1234,-1608416.82,5994263.83,3139842.12,-6632.9542,-373.9141,-2678.0471";
-                var time2SatInfo = "1234,-3479304.94,5612482.70,2187901.77,-5784.2167,-2163.5059,-3632.7021";
-                var time3SatInfo = "1234,-5018683.88,4714452.40,1001435.81,-4399.2159,-3780.5070,-4206.3348";
-                this.lcX1.Text = "第一时刻主星坐标X";
-                this.lcY1.Text = "第一时刻主星坐标Y";
-                this.lcZ1.Text = "第一时刻主星坐标Z";
-                this.lcVX1.Text = "第一时刻主星坐标VX";
-                this.lcVY1.Text = "第一时刻主星坐标VY";
-                this.lcVZ1.Text = "第一时刻主星坐标VZ";
-
-                this.lcX2.Text = "第二时刻主星坐标X";
-                this.lcY2.Text = "第二时刻主星坐标Y";
-                this.lcZ2.Text = "第二时刻主星坐标Z";
-                this.lcVX2.Text = "第二时刻主星坐标VX";
-                this.lcVY2.Text = "第二时刻主星坐标VY";
-                this.lcVZ2.Text = "第二时刻主星坐标VZ";
-
-
-                var t1 = time1SatInfo.Split(',');
-                int idx = 0;
-                txtX1.EditValue = t1[++idx];
-                txtY1.EditValue = t1[++idx];
-                txtZ1.EditValue = t1[++idx];
-                txtVX1.EditValue = t1[++idx];
-                txtVY1.EditValue = t1[++idx];
-                txtVZ1.EditValue = t1[++idx];
-
-                var t2 = time2SatInfo.Split(',');
-                idx = 0;
-                txtX2.EditValue = t2[++idx];
-                txtY2.EditValue = t2[++idx];
-                txtZ2.EditValue = t2[++idx];
-                txtVX2.EditValue = t2[++idx];
-                txtVY2.EditValue = t2[++idx];
-                txtVZ2.EditValue = t2[++idx];
-
-
-                var t3= time3SatInfo.Split(',');
-                idx = 0;
-                txtX21.EditValue = t3[++idx];
-                txtY21.EditValue = t3[++idx];
-                txtZ21.EditValue = t3[++idx];
-                txtVX21.EditValue = t3[++idx];
-                txtVY21.EditValue = t3[++idx];
-                txtVZ21.EditValue = t3[++idx];
-
-                this.lcX3.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always;
-                this.lcY3.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always;
-                this.lcZ3.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always;
-                this.lcVX3.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always;
-                this.lcVY3.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always;
-                this.lcVZ3.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always;
-            }
-            else if (posType == EnumPosType.X2Leo)
-            {
-                string mainSatInfo = "23467,-1608418.46,5994257.60,3139819.89,-6632.8731,-373.9909,-2678.2335";
-                string adja1SatInfo = "40892,-4629555.87,4978929.91,1487241.78,-4890.2693,-3337.6709,-4031.3087";
-                this.lcX1.Text = "主星坐标X";
-                this.lcY1.Text = "主星坐标Y";
-                this.lcZ1.Text = "主星坐标Z";
-                this.lcVX1.Text = "主星坐标VX";
-                this.lcVY1.Text = "主星坐标VY";
-                this.lcVZ1.Text = "主星坐标VZ";
-
-                this.lcX2.Text = "邻星坐标X";
-                this.lcY2.Text = "邻星坐标Y";
-                this.lcZ2.Text = "邻星坐标Z";
-                this.lcVX2.Text = "邻星坐标VX";
-                this.lcVY2.Text = "邻星坐标VY";
-                this.lcVZ2.Text = "邻星坐标VZ";
-
-                var main = mainSatInfo.Split(',');
-                int idx = 0;
-                txtX1.EditValue = main[++idx];
-                txtY1.EditValue = main[++idx];
-                txtZ1.EditValue = main[++idx];
-                txtVX1.EditValue = main[++idx];
-                txtVY1.EditValue = main[++idx];
-                txtVZ1.EditValue = main[++idx];
-
-                var adja = adja1SatInfo.Split(',');
-                idx = 0;
-                txtX2.EditValue = adja[++idx];
-                txtY2.EditValue = adja[++idx];
-                txtZ2.EditValue = adja[++idx];
-                txtVX2.EditValue = adja[++idx];
-                txtVY2.EditValue = adja[++idx];
-                txtVZ2.EditValue = adja[++idx];
-                this.lcX3.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
-                this.lcY3.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
-                this.lcZ3.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
-                this.lcVX3.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
-                this.lcVY3.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
-                this.lcVZ3.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
-
-
-            }
-
-
-            this.layoutControl1.BestFit();
-        }
-        private async void btnOk_Click(object sender, EventArgs e)
-        {
-            try
-            {
-
-
-                var strTar = txtTar.Text.Replace(",", ",");
-                var fuHz = (Convert.ToDouble(txtFuMhz.Text)+44) * 1e6;
-                double lon = Convert.ToDouble(strTar.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)[0]);
-                double lat = Convert.ToDouble(strTar.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)[1]);
-
-                double x1 = Convert.ToDouble(txtX1.Text);
-                double y1 = Convert.ToDouble(txtY1.Text);
-                double z1 = Convert.ToDouble(txtZ1.Text);
-                double vx1 = Convert.ToDouble(txtVX1.Text);
-                double vy1 = Convert.ToDouble(txtVY1.Text);
-                double vz1 = Convert.ToDouble(txtVZ1.Text);
-
-                double[] ephX1 = new double[6] { x1, y1, z1, vx1, vy1, vz1 };
-                double x2 = Convert.ToDouble(txtX2.Text);
-                double y2 = Convert.ToDouble(txtY2.Text);
-                double z2 = Convert.ToDouble(txtZ2.Text);
-                double vx2 = Convert.ToDouble(txtVX2.Text);
-                double vy2 = Convert.ToDouble(txtVY2.Text);
-                double vz2 = Convert.ToDouble(txtVZ2.Text);
-                double[] ephX2 = new double[6] { x2, y2, z2, vx2, vy2, vz2 };
-
-                double[] targetPos = new double[3] { lon, lat, 0 };
-
-                var df1 = DfoCalcAPI.DfoCalc(targetPos, ephX1, fuHz);
-                var df2 = DfoCalcAPI.DfoCalc(targetPos, ephX2, fuHz);
-
-                var editvalue = cbPosType.EditValue as RadioGroupItem;
-                var posType = (EnumPosType)editvalue.Value;
-                if (posType == EnumPosType.X1Leo)
-                {
-                    double x3 = Convert.ToDouble(txtX21.Text);
-                    double y3 = Convert.ToDouble(txtY21.Text);
-                    double z3 = Convert.ToDouble(txtZ21.Text);
-                    double vx3 = Convert.ToDouble(txtVX21.Text);
-                    double vy3 = Convert.ToDouble(txtVY21.Text);
-                    double vz3 = Convert.ToDouble(txtVZ21.Text);
-                    double[] ephX3 = new double[6] { x3, y3, z3, vx3, vy3, vz3 };
-                    var df3 = DfoCalcAPI.DfoCalc(targetPos, ephX3, fuHz);
-                    this.txtRes.Text = $"第二时刻频差预测值:{df2 - df1:f3}Hz  第三时刻频差预测值:{df3 - df1:f3}Hz";
-                }
-                else if (posType == EnumPosType.X2Leo)
-                {
-                    this.txtRes.Text = $"主邻频差预测值:{df1 - df2:f3}Hz";
-                }
-                
-
-            }
-            catch (Exception ex)
-            {
-                await LogHelper.Error("频差预测出错", ex);
-                DxHelper.MsgBoxHelper.ShowError("频差预测出错");
-            }
-        }
-
-
-    }
-}

+ 64 - 97
XdCxRhDW.App/EditForms/TarDfoCalc.Designer.cs → XdCxRhDW.App/EditForms/TarDfoLeoX1Calc.Designer.cs

@@ -1,6 +1,6 @@
 namespace XdCxRhDW.App.EditForms
 {
-    partial class TarDfoCalc
+    partial class TarDfoLeoX1Calc
     {
         /// <summary>
         /// Required designer variable.
@@ -54,8 +54,7 @@
             this.txtVX21 = new DevExpress.XtraEditors.TextEdit();
             this.txtVY21 = new DevExpress.XtraEditors.TextEdit();
             this.txtVZ21 = new DevExpress.XtraEditors.TextEdit();
-            this.txtFuMhz = new DevExpress.XtraEditors.ButtonEdit();
-            this.cbPosType = new DevExpress.XtraEditors.ComboBoxEdit();
+            this.txtTarFuMhz = new DevExpress.XtraEditors.ButtonEdit();
             this.Root = new DevExpress.XtraLayout.LayoutControlGroup();
             this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
             this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
@@ -80,7 +79,6 @@
             this.lcVY3 = new DevExpress.XtraLayout.LayoutControlItem();
             this.lcVZ3 = new DevExpress.XtraLayout.LayoutControlItem();
             this.layoutControlItem22 = new DevExpress.XtraLayout.LayoutControlItem();
-            this.layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem();
             ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
             this.layoutControl1.SuspendLayout();
             ((System.ComponentModel.ISupportInitialize)(this.txtTar.Properties)).BeginInit();
@@ -102,8 +100,7 @@
             ((System.ComponentModel.ISupportInitialize)(this.txtVX21.Properties)).BeginInit();
             ((System.ComponentModel.ISupportInitialize)(this.txtVY21.Properties)).BeginInit();
             ((System.ComponentModel.ISupportInitialize)(this.txtVZ21.Properties)).BeginInit();
-            ((System.ComponentModel.ISupportInitialize)(this.txtFuMhz.Properties)).BeginInit();
-            ((System.ComponentModel.ISupportInitialize)(this.cbPosType.Properties)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtTarFuMhz.Properties)).BeginInit();
             ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit();
             ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit();
             ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit();
@@ -128,7 +125,6 @@
             ((System.ComponentModel.ISupportInitialize)(this.lcVY3)).BeginInit();
             ((System.ComponentModel.ISupportInitialize)(this.lcVZ3)).BeginInit();
             ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem22)).BeginInit();
-            ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).BeginInit();
             this.SuspendLayout();
             // 
             // layoutControl1
@@ -153,8 +149,7 @@
             this.layoutControl1.Controls.Add(this.txtVX21);
             this.layoutControl1.Controls.Add(this.txtVY21);
             this.layoutControl1.Controls.Add(this.txtVZ21);
-            this.layoutControl1.Controls.Add(this.txtFuMhz);
-            this.layoutControl1.Controls.Add(this.cbPosType);
+            this.layoutControl1.Controls.Add(this.txtTarFuMhz);
             this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
             this.layoutControl1.Location = new System.Drawing.Point(0, 0);
             this.layoutControl1.Name = "layoutControl1";
@@ -166,7 +161,7 @@
             // 
             // btnOk
             // 
-            this.btnOk.Location = new System.Drawing.Point(337, 451);
+            this.btnOk.Location = new System.Drawing.Point(337, 410);
             this.btnOk.Name = "btnOk";
             this.btnOk.Size = new System.Drawing.Size(116, 26);
             this.btnOk.StyleController = this.layoutControl1;
@@ -177,7 +172,7 @@
             // txtTar
             // 
             this.txtTar.EditValue = "";
-            this.txtTar.Location = new System.Drawing.Point(22, 80);
+            this.txtTar.Location = new System.Drawing.Point(22, 39);
             this.txtTar.Name = "txtTar";
             this.txtTar.Size = new System.Drawing.Size(431, 20);
             this.txtTar.StyleController = this.layoutControl1;
@@ -186,7 +181,7 @@
             // txtX1
             // 
             this.txtX1.EditValue = "-1608418.46";
-            this.txtX1.Location = new System.Drawing.Point(22, 168);
+            this.txtX1.Location = new System.Drawing.Point(22, 127);
             this.txtX1.Name = "txtX1";
             this.txtX1.Size = new System.Drawing.Size(138, 20);
             this.txtX1.StyleController = this.layoutControl1;
@@ -195,7 +190,7 @@
             // txtY1
             // 
             this.txtY1.EditValue = "5994257.60";
-            this.txtY1.Location = new System.Drawing.Point(164, 168);
+            this.txtY1.Location = new System.Drawing.Point(164, 127);
             this.txtY1.Name = "txtY1";
             this.txtY1.Size = new System.Drawing.Size(138, 20);
             this.txtY1.StyleController = this.layoutControl1;
@@ -204,7 +199,7 @@
             // txtZ1
             // 
             this.txtZ1.EditValue = "3139819.89";
-            this.txtZ1.Location = new System.Drawing.Point(306, 168);
+            this.txtZ1.Location = new System.Drawing.Point(306, 127);
             this.txtZ1.Name = "txtZ1";
             this.txtZ1.Size = new System.Drawing.Size(147, 20);
             this.txtZ1.StyleController = this.layoutControl1;
@@ -213,7 +208,7 @@
             // txtVX1
             // 
             this.txtVX1.EditValue = "-6632.8731";
-            this.txtVX1.Location = new System.Drawing.Point(22, 218);
+            this.txtVX1.Location = new System.Drawing.Point(22, 177);
             this.txtVX1.Name = "txtVX1";
             this.txtVX1.Size = new System.Drawing.Size(138, 20);
             this.txtVX1.StyleController = this.layoutControl1;
@@ -222,7 +217,7 @@
             // txtVY1
             // 
             this.txtVY1.EditValue = "-373.9909";
-            this.txtVY1.Location = new System.Drawing.Point(164, 218);
+            this.txtVY1.Location = new System.Drawing.Point(164, 177);
             this.txtVY1.Name = "txtVY1";
             this.txtVY1.Size = new System.Drawing.Size(138, 20);
             this.txtVY1.StyleController = this.layoutControl1;
@@ -231,7 +226,7 @@
             // txtVZ1
             // 
             this.txtVZ1.EditValue = "-2678.2335";
-            this.txtVZ1.Location = new System.Drawing.Point(306, 218);
+            this.txtVZ1.Location = new System.Drawing.Point(306, 177);
             this.txtVZ1.Name = "txtVZ1";
             this.txtVZ1.Size = new System.Drawing.Size(147, 20);
             this.txtVZ1.StyleController = this.layoutControl1;
@@ -240,7 +235,7 @@
             // txtX2
             // 
             this.txtX2.EditValue = "-4629555.87";
-            this.txtX2.Location = new System.Drawing.Point(22, 268);
+            this.txtX2.Location = new System.Drawing.Point(22, 227);
             this.txtX2.Name = "txtX2";
             this.txtX2.Size = new System.Drawing.Size(138, 20);
             this.txtX2.StyleController = this.layoutControl1;
@@ -249,7 +244,7 @@
             // txtY2
             // 
             this.txtY2.EditValue = "4978929.91";
-            this.txtY2.Location = new System.Drawing.Point(164, 268);
+            this.txtY2.Location = new System.Drawing.Point(164, 227);
             this.txtY2.Name = "txtY2";
             this.txtY2.Size = new System.Drawing.Size(138, 20);
             this.txtY2.StyleController = this.layoutControl1;
@@ -258,7 +253,7 @@
             // txtZ2
             // 
             this.txtZ2.EditValue = "1487241.78";
-            this.txtZ2.Location = new System.Drawing.Point(306, 268);
+            this.txtZ2.Location = new System.Drawing.Point(306, 227);
             this.txtZ2.Name = "txtZ2";
             this.txtZ2.Size = new System.Drawing.Size(147, 20);
             this.txtZ2.StyleController = this.layoutControl1;
@@ -267,7 +262,7 @@
             // txtVX2
             // 
             this.txtVX2.EditValue = "-4890.2693";
-            this.txtVX2.Location = new System.Drawing.Point(22, 318);
+            this.txtVX2.Location = new System.Drawing.Point(22, 277);
             this.txtVX2.Name = "txtVX2";
             this.txtVX2.Size = new System.Drawing.Size(138, 20);
             this.txtVX2.StyleController = this.layoutControl1;
@@ -276,7 +271,7 @@
             // txtVY2
             // 
             this.txtVY2.EditValue = "-3337.6709";
-            this.txtVY2.Location = new System.Drawing.Point(164, 318);
+            this.txtVY2.Location = new System.Drawing.Point(164, 277);
             this.txtVY2.Name = "txtVY2";
             this.txtVY2.Size = new System.Drawing.Size(138, 20);
             this.txtVY2.StyleController = this.layoutControl1;
@@ -285,7 +280,7 @@
             // txtVZ2
             // 
             this.txtVZ2.EditValue = "-4031.3087";
-            this.txtVZ2.Location = new System.Drawing.Point(306, 318);
+            this.txtVZ2.Location = new System.Drawing.Point(306, 277);
             this.txtVZ2.Name = "txtVZ2";
             this.txtVZ2.Size = new System.Drawing.Size(147, 20);
             this.txtVZ2.StyleController = this.layoutControl1;
@@ -294,7 +289,7 @@
             // txtX21
             // 
             this.txtX21.EditValue = "-4629555.87";
-            this.txtX21.Location = new System.Drawing.Point(22, 368);
+            this.txtX21.Location = new System.Drawing.Point(22, 327);
             this.txtX21.Name = "txtX21";
             this.txtX21.Size = new System.Drawing.Size(138, 20);
             this.txtX21.StyleController = this.layoutControl1;
@@ -303,7 +298,7 @@
             // txtY21
             // 
             this.txtY21.EditValue = "4978929.91";
-            this.txtY21.Location = new System.Drawing.Point(164, 368);
+            this.txtY21.Location = new System.Drawing.Point(164, 327);
             this.txtY21.Name = "txtY21";
             this.txtY21.Size = new System.Drawing.Size(138, 20);
             this.txtY21.StyleController = this.layoutControl1;
@@ -312,7 +307,7 @@
             // txtZ21
             // 
             this.txtZ21.EditValue = "1487241.78";
-            this.txtZ21.Location = new System.Drawing.Point(306, 368);
+            this.txtZ21.Location = new System.Drawing.Point(306, 327);
             this.txtZ21.Name = "txtZ21";
             this.txtZ21.Size = new System.Drawing.Size(147, 20);
             this.txtZ21.StyleController = this.layoutControl1;
@@ -321,7 +316,7 @@
             // txtVX21
             // 
             this.txtVX21.EditValue = "-4890.2693";
-            this.txtVX21.Location = new System.Drawing.Point(22, 418);
+            this.txtVX21.Location = new System.Drawing.Point(22, 377);
             this.txtVX21.Name = "txtVX21";
             this.txtVX21.Size = new System.Drawing.Size(138, 20);
             this.txtVX21.StyleController = this.layoutControl1;
@@ -330,7 +325,7 @@
             // txtVY21
             // 
             this.txtVY21.EditValue = "-3337.6709";
-            this.txtVY21.Location = new System.Drawing.Point(164, 418);
+            this.txtVY21.Location = new System.Drawing.Point(164, 377);
             this.txtVY21.Name = "txtVY21";
             this.txtVY21.Size = new System.Drawing.Size(138, 20);
             this.txtVY21.StyleController = this.layoutControl1;
@@ -339,35 +334,23 @@
             // txtVZ21
             // 
             this.txtVZ21.EditValue = "-4031.3087";
-            this.txtVZ21.Location = new System.Drawing.Point(306, 418);
+            this.txtVZ21.Location = new System.Drawing.Point(306, 377);
             this.txtVZ21.Name = "txtVZ21";
             this.txtVZ21.Size = new System.Drawing.Size(147, 20);
             this.txtVZ21.StyleController = this.layoutControl1;
             this.txtVZ21.TabIndex = 9;
             // 
-            // txtFuMhz
+            // txtTarFuMhz
             // 
-            this.txtFuMhz.EditValue = "260";
-            this.txtFuMhz.Location = new System.Drawing.Point(22, 124);
-            this.txtFuMhz.MaximumSize = new System.Drawing.Size(0, 20);
-            this.txtFuMhz.Name = "txtFuMhz";
-            this.txtFuMhz.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
+            this.txtTarFuMhz.EditValue = "260";
+            this.txtTarFuMhz.Location = new System.Drawing.Point(22, 83);
+            this.txtTarFuMhz.MaximumSize = new System.Drawing.Size(0, 20);
+            this.txtTarFuMhz.Name = "txtTarFuMhz";
+            this.txtTarFuMhz.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
             new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph, "MHz", -1, true, true, false, editorButtonImageOptions1, new DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), serializableAppearanceObject1, serializableAppearanceObject2, serializableAppearanceObject3, serializableAppearanceObject4, "", null, null, DevExpress.Utils.ToolTipAnchor.Default)});
-            this.txtFuMhz.Size = new System.Drawing.Size(431, 20);
-            this.txtFuMhz.StyleController = this.layoutControl1;
-            this.txtFuMhz.TabIndex = 10;
-            // 
-            // cbPosType
-            // 
-            this.cbPosType.Location = new System.Drawing.Point(22, 39);
-            this.cbPosType.MaximumSize = new System.Drawing.Size(0, 20);
-            this.cbPosType.Name = "cbPosType";
-            this.cbPosType.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
-            new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)});
-            this.cbPosType.Size = new System.Drawing.Size(431, 20);
-            this.cbPosType.StyleController = this.layoutControl1;
-            this.cbPosType.TabIndex = 11;
-            this.cbPosType.EditValueChanged += new System.EventHandler(this.cbPosType_EditValueChanged);
+            this.txtTarFuMhz.Size = new System.Drawing.Size(431, 20);
+            this.txtTarFuMhz.StyleController = this.layoutControl1;
+            this.txtTarFuMhz.TabIndex = 10;
             // 
             // Root
             // 
@@ -396,8 +379,7 @@
             this.lcVX3,
             this.lcVY3,
             this.lcVZ3,
-            this.layoutControlItem22,
-            this.layoutControlItem7});
+            this.layoutControlItem22});
             this.Root.Name = "Root";
             this.Root.Padding = new DevExpress.XtraLayout.Utils.Padding(20, 20, 20, 20);
             this.Root.Size = new System.Drawing.Size(475, 540);
@@ -406,7 +388,7 @@
             // layoutControlItem5
             // 
             this.layoutControlItem5.Control = this.btnOk;
-            this.layoutControlItem5.Location = new System.Drawing.Point(315, 429);
+            this.layoutControlItem5.Location = new System.Drawing.Point(315, 388);
             this.layoutControlItem5.MaxSize = new System.Drawing.Size(120, 30);
             this.layoutControlItem5.MinSize = new System.Drawing.Size(120, 30);
             this.layoutControlItem5.Name = "layoutControlItem5";
@@ -420,7 +402,7 @@
             this.layoutControlItem6.Control = this.txtTar;
             this.layoutControlItem6.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
             this.layoutControlItem6.CustomizationFormText = "星历X";
-            this.layoutControlItem6.Location = new System.Drawing.Point(0, 41);
+            this.layoutControlItem6.Location = new System.Drawing.Point(0, 0);
             this.layoutControlItem6.MaxSize = new System.Drawing.Size(0, 44);
             this.layoutControlItem6.MinSize = new System.Drawing.Size(54, 44);
             this.layoutControlItem6.Name = "layoutControlItem6";
@@ -433,7 +415,7 @@
             // emptySpaceItem3
             // 
             this.emptySpaceItem3.AllowHotTrack = false;
-            this.emptySpaceItem3.Location = new System.Drawing.Point(0, 429);
+            this.emptySpaceItem3.Location = new System.Drawing.Point(0, 388);
             this.emptySpaceItem3.Name = "emptySpaceItem3";
             this.emptySpaceItem3.Size = new System.Drawing.Size(315, 30);
             this.emptySpaceItem3.TextSize = new System.Drawing.Size(0, 0);
@@ -441,11 +423,11 @@
             // txtRes
             // 
             this.txtRes.AllowHotTrack = false;
-            this.txtRes.Location = new System.Drawing.Point(0, 459);
+            this.txtRes.Location = new System.Drawing.Point(0, 418);
             this.txtRes.MaxSize = new System.Drawing.Size(0, 26);
             this.txtRes.MinSize = new System.Drawing.Size(67, 26);
             this.txtRes.Name = "txtRes";
-            this.txtRes.Size = new System.Drawing.Size(435, 41);
+            this.txtRes.Size = new System.Drawing.Size(435, 82);
             this.txtRes.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
             this.txtRes.Text = " ";
             this.txtRes.TextSize = new System.Drawing.Size(112, 14);
@@ -455,7 +437,7 @@
             this.lcX1.Control = this.txtX1;
             this.lcX1.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
             this.lcX1.CustomizationFormText = "主星坐标X";
-            this.lcX1.Location = new System.Drawing.Point(0, 129);
+            this.lcX1.Location = new System.Drawing.Point(0, 88);
             this.lcX1.MaxSize = new System.Drawing.Size(0, 50);
             this.lcX1.MinSize = new System.Drawing.Size(54, 50);
             this.lcX1.Name = "lcX1";
@@ -470,7 +452,7 @@
             this.lcY1.Control = this.txtY1;
             this.lcY1.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
             this.lcY1.CustomizationFormText = "星历X";
-            this.lcY1.Location = new System.Drawing.Point(142, 129);
+            this.lcY1.Location = new System.Drawing.Point(142, 88);
             this.lcY1.MaxSize = new System.Drawing.Size(0, 50);
             this.lcY1.MinSize = new System.Drawing.Size(54, 50);
             this.lcY1.Name = "lcY1";
@@ -485,7 +467,7 @@
             this.lcZ1.Control = this.txtZ1;
             this.lcZ1.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
             this.lcZ1.CustomizationFormText = "星历X";
-            this.lcZ1.Location = new System.Drawing.Point(284, 129);
+            this.lcZ1.Location = new System.Drawing.Point(284, 88);
             this.lcZ1.MaxSize = new System.Drawing.Size(0, 50);
             this.lcZ1.MinSize = new System.Drawing.Size(54, 50);
             this.lcZ1.Name = "lcZ1";
@@ -500,7 +482,7 @@
             this.lcVZ1.Control = this.txtVZ1;
             this.lcVZ1.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
             this.lcVZ1.CustomizationFormText = "星历X";
-            this.lcVZ1.Location = new System.Drawing.Point(284, 179);
+            this.lcVZ1.Location = new System.Drawing.Point(284, 138);
             this.lcVZ1.MaxSize = new System.Drawing.Size(0, 50);
             this.lcVZ1.MinSize = new System.Drawing.Size(54, 50);
             this.lcVZ1.Name = "lcVZ1";
@@ -515,7 +497,7 @@
             this.lcVX1.Control = this.txtVX1;
             this.lcVX1.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
             this.lcVX1.CustomizationFormText = "卫星1坐标X";
-            this.lcVX1.Location = new System.Drawing.Point(0, 179);
+            this.lcVX1.Location = new System.Drawing.Point(0, 138);
             this.lcVX1.MaxSize = new System.Drawing.Size(0, 50);
             this.lcVX1.MinSize = new System.Drawing.Size(54, 50);
             this.lcVX1.Name = "lcVX1";
@@ -530,7 +512,7 @@
             this.lcVY1.Control = this.txtVY1;
             this.lcVY1.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
             this.lcVY1.CustomizationFormText = "星历X";
-            this.lcVY1.Location = new System.Drawing.Point(142, 179);
+            this.lcVY1.Location = new System.Drawing.Point(142, 138);
             this.lcVY1.MaxSize = new System.Drawing.Size(0, 50);
             this.lcVY1.MinSize = new System.Drawing.Size(54, 50);
             this.lcVY1.Name = "lcVY1";
@@ -545,7 +527,7 @@
             this.lcX2.Control = this.txtX2;
             this.lcX2.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
             this.lcX2.CustomizationFormText = "卫星1坐标X";
-            this.lcX2.Location = new System.Drawing.Point(0, 229);
+            this.lcX2.Location = new System.Drawing.Point(0, 188);
             this.lcX2.MaxSize = new System.Drawing.Size(0, 50);
             this.lcX2.MinSize = new System.Drawing.Size(54, 50);
             this.lcX2.Name = "lcX2";
@@ -560,7 +542,7 @@
             this.lcY2.Control = this.txtY2;
             this.lcY2.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
             this.lcY2.CustomizationFormText = "星历X";
-            this.lcY2.Location = new System.Drawing.Point(142, 229);
+            this.lcY2.Location = new System.Drawing.Point(142, 188);
             this.lcY2.MaxSize = new System.Drawing.Size(0, 50);
             this.lcY2.MinSize = new System.Drawing.Size(54, 50);
             this.lcY2.Name = "lcY2";
@@ -575,7 +557,7 @@
             this.lcZ2.Control = this.txtZ2;
             this.lcZ2.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
             this.lcZ2.CustomizationFormText = "星历X";
-            this.lcZ2.Location = new System.Drawing.Point(284, 229);
+            this.lcZ2.Location = new System.Drawing.Point(284, 188);
             this.lcZ2.MaxSize = new System.Drawing.Size(0, 50);
             this.lcZ2.MinSize = new System.Drawing.Size(54, 50);
             this.lcZ2.Name = "lcZ2";
@@ -590,7 +572,7 @@
             this.lcVX2.Control = this.txtVX2;
             this.lcVX2.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
             this.lcVX2.CustomizationFormText = "卫星1坐标X";
-            this.lcVX2.Location = new System.Drawing.Point(0, 279);
+            this.lcVX2.Location = new System.Drawing.Point(0, 238);
             this.lcVX2.MaxSize = new System.Drawing.Size(0, 50);
             this.lcVX2.MinSize = new System.Drawing.Size(54, 50);
             this.lcVX2.Name = "lcVX2";
@@ -605,7 +587,7 @@
             this.lcVY2.Control = this.txtVY2;
             this.lcVY2.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
             this.lcVY2.CustomizationFormText = "星历X";
-            this.lcVY2.Location = new System.Drawing.Point(142, 279);
+            this.lcVY2.Location = new System.Drawing.Point(142, 238);
             this.lcVY2.MaxSize = new System.Drawing.Size(0, 50);
             this.lcVY2.MinSize = new System.Drawing.Size(54, 50);
             this.lcVY2.Name = "lcVY2";
@@ -620,7 +602,7 @@
             this.lcVZ2.Control = this.txtVZ2;
             this.lcVZ2.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
             this.lcVZ2.CustomizationFormText = "星历X";
-            this.lcVZ2.Location = new System.Drawing.Point(284, 279);
+            this.lcVZ2.Location = new System.Drawing.Point(284, 238);
             this.lcVZ2.MaxSize = new System.Drawing.Size(0, 50);
             this.lcVZ2.MinSize = new System.Drawing.Size(54, 50);
             this.lcVZ2.Name = "lcVZ2";
@@ -635,7 +617,7 @@
             this.lcX3.Control = this.txtX21;
             this.lcX3.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
             this.lcX3.CustomizationFormText = "卫星1坐标X";
-            this.lcX3.Location = new System.Drawing.Point(0, 329);
+            this.lcX3.Location = new System.Drawing.Point(0, 288);
             this.lcX3.MaxSize = new System.Drawing.Size(0, 50);
             this.lcX3.MinSize = new System.Drawing.Size(54, 50);
             this.lcX3.Name = "lcX3";
@@ -650,7 +632,7 @@
             this.lcY3.Control = this.txtY21;
             this.lcY3.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
             this.lcY3.CustomizationFormText = "星历X";
-            this.lcY3.Location = new System.Drawing.Point(142, 329);
+            this.lcY3.Location = new System.Drawing.Point(142, 288);
             this.lcY3.MaxSize = new System.Drawing.Size(0, 50);
             this.lcY3.MinSize = new System.Drawing.Size(54, 50);
             this.lcY3.Name = "lcY3";
@@ -665,7 +647,7 @@
             this.lcZ3.Control = this.txtZ21;
             this.lcZ3.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
             this.lcZ3.CustomizationFormText = "星历X";
-            this.lcZ3.Location = new System.Drawing.Point(284, 329);
+            this.lcZ3.Location = new System.Drawing.Point(284, 288);
             this.lcZ3.MaxSize = new System.Drawing.Size(0, 50);
             this.lcZ3.MinSize = new System.Drawing.Size(54, 50);
             this.lcZ3.Name = "lcZ3";
@@ -680,7 +662,7 @@
             this.lcVX3.Control = this.txtVX21;
             this.lcVX3.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
             this.lcVX3.CustomizationFormText = "卫星1坐标X";
-            this.lcVX3.Location = new System.Drawing.Point(0, 379);
+            this.lcVX3.Location = new System.Drawing.Point(0, 338);
             this.lcVX3.MaxSize = new System.Drawing.Size(0, 50);
             this.lcVX3.MinSize = new System.Drawing.Size(54, 50);
             this.lcVX3.Name = "lcVX3";
@@ -695,7 +677,7 @@
             this.lcVY3.Control = this.txtVY21;
             this.lcVY3.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
             this.lcVY3.CustomizationFormText = "星历X";
-            this.lcVY3.Location = new System.Drawing.Point(142, 379);
+            this.lcVY3.Location = new System.Drawing.Point(142, 338);
             this.lcVY3.MaxSize = new System.Drawing.Size(0, 50);
             this.lcVY3.MinSize = new System.Drawing.Size(54, 50);
             this.lcVY3.Name = "lcVY3";
@@ -710,7 +692,7 @@
             this.lcVZ3.Control = this.txtVZ21;
             this.lcVZ3.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
             this.lcVZ3.CustomizationFormText = "星历X";
-            this.lcVZ3.Location = new System.Drawing.Point(284, 379);
+            this.lcVZ3.Location = new System.Drawing.Point(284, 338);
             this.lcVZ3.MaxSize = new System.Drawing.Size(0, 50);
             this.lcVZ3.MinSize = new System.Drawing.Size(54, 50);
             this.lcVZ3.Name = "lcVZ3";
@@ -722,34 +704,23 @@
             // 
             // layoutControlItem22
             // 
-            this.layoutControlItem22.Control = this.txtFuMhz;
-            this.layoutControlItem22.Location = new System.Drawing.Point(0, 85);
+            this.layoutControlItem22.Control = this.txtTarFuMhz;
+            this.layoutControlItem22.Location = new System.Drawing.Point(0, 44);
             this.layoutControlItem22.Name = "layoutControlItem22";
             this.layoutControlItem22.Size = new System.Drawing.Size(435, 44);
-            this.layoutControlItem22.Text = "下行频点";
+            this.layoutControlItem22.Text = "目标下行频点";
             this.layoutControlItem22.TextLocation = DevExpress.Utils.Locations.Top;
             this.layoutControlItem22.TextSize = new System.Drawing.Size(112, 14);
             // 
-            // layoutControlItem7
-            // 
-            this.layoutControlItem7.Control = this.cbPosType;
-            this.layoutControlItem7.Location = new System.Drawing.Point(0, 0);
-            this.layoutControlItem7.Name = "layoutControlItem7";
-            this.layoutControlItem7.Size = new System.Drawing.Size(435, 41);
-            this.layoutControlItem7.Text = "定位类型";
-            this.layoutControlItem7.TextLocation = DevExpress.Utils.Locations.Top;
-            this.layoutControlItem7.TextSize = new System.Drawing.Size(112, 14);
-            // 
-            // TarDfoCalc
+            // TarDfoLeoX1Calc
             // 
             this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
             this.ClientSize = new System.Drawing.Size(475, 540);
             this.Controls.Add(this.layoutControl1);
             this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
-            this.Name = "TarDfoCalc";
+            this.Name = "TarDfoLeoX1Calc";
             this.Text = "频差预测";
-            this.Load += new System.EventHandler(this.TarDfoCalc_Load);
             ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
             this.layoutControl1.ResumeLayout(false);
             ((System.ComponentModel.ISupportInitialize)(this.txtTar.Properties)).EndInit();
@@ -771,8 +742,7 @@
             ((System.ComponentModel.ISupportInitialize)(this.txtVX21.Properties)).EndInit();
             ((System.ComponentModel.ISupportInitialize)(this.txtVY21.Properties)).EndInit();
             ((System.ComponentModel.ISupportInitialize)(this.txtVZ21.Properties)).EndInit();
-            ((System.ComponentModel.ISupportInitialize)(this.txtFuMhz.Properties)).EndInit();
-            ((System.ComponentModel.ISupportInitialize)(this.cbPosType.Properties)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtTarFuMhz.Properties)).EndInit();
             ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit();
             ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit();
             ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit();
@@ -797,7 +767,6 @@
             ((System.ComponentModel.ISupportInitialize)(this.lcVY3)).EndInit();
             ((System.ComponentModel.ISupportInitialize)(this.lcVZ3)).EndInit();
             ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem22)).EndInit();
-            ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).EndInit();
             this.ResumeLayout(false);
 
         }
@@ -848,9 +817,7 @@
         private DevExpress.XtraLayout.LayoutControlItem lcVX3;
         private DevExpress.XtraLayout.LayoutControlItem lcVY3;
         private DevExpress.XtraLayout.LayoutControlItem lcVZ3;
-        private DevExpress.XtraEditors.ButtonEdit txtFuMhz;
+        private DevExpress.XtraEditors.ButtonEdit txtTarFuMhz;
         private DevExpress.XtraLayout.LayoutControlItem layoutControlItem22;
-        private DevExpress.XtraEditors.ComboBoxEdit cbPosType;
-        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7;
     }
 }

+ 134 - 0
XdCxRhDW.App/EditForms/TarDfoLeoX1Calc.cs

@@ -0,0 +1,134 @@
+using DevExpress.XtraEditors;
+using DevExpress.XtraEditors.Controls;
+using ExtensionsDev;
+using Newtonsoft.Json.Linq;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Data.Entity;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Documents;
+using System.Windows.Forms;
+using System.Windows.Input;
+using XdCxRhDW.Api;
+using XdCxRhDW.Api.AddIns;
+using XdCxRhDW.Entity;
+using XdCxRhDW.Repostory;
+
+namespace XdCxRhDW.App.EditForms
+{
+    public partial class TarDfoLeoX1Calc : DevExpress.XtraEditors.XtraForm
+    {
+        public TarDfoLeoX1Calc()
+        {
+            InitializeComponent();
+            this.layoutControl1.UseDefault();
+            this.StartPosition = FormStartPosition.CenterParent;
+        }
+        public TarDfoLeoX1Calc(double lon, double lat)
+            : this()
+        {
+            this.txtTar.Text = $"{lon:f3},{lat:f3}";
+            var time1SatInfo = "1234,-1608416.82,5994263.83,3139842.12,-6632.9542,-373.9141,-2678.0471";
+            var time2SatInfo = "1234,-3479304.94,5612482.70,2187901.77,-5784.2167,-2163.5059,-3632.7021";
+            var time3SatInfo = "1234,-5018683.88,4714452.40,1001435.81,-4399.2159,-3780.5070,-4206.3348";
+            this.lcX1.Text = "第一时刻主星坐标X";
+            this.lcY1.Text = "第一时刻主星坐标Y";
+            this.lcZ1.Text = "第一时刻主星坐标Z";
+            this.lcVX1.Text = "第一时刻主星坐标VX";
+            this.lcVY1.Text = "第一时刻主星坐标VY";
+            this.lcVZ1.Text = "第一时刻主星坐标VZ";
+
+            this.lcX2.Text = "第二时刻主星坐标X";
+            this.lcY2.Text = "第二时刻主星坐标Y";
+            this.lcZ2.Text = "第二时刻主星坐标Z";
+            this.lcVX2.Text = "第二时刻主星坐标VX";
+            this.lcVY2.Text = "第二时刻主星坐标VY";
+            this.lcVZ2.Text = "第二时刻主星坐标VZ";
+
+
+            var t1 = time1SatInfo.Split(',');
+            int idx = 0;
+            txtX1.EditValue = t1[++idx];
+            txtY1.EditValue = t1[++idx];
+            txtZ1.EditValue = t1[++idx];
+            txtVX1.EditValue = t1[++idx];
+            txtVY1.EditValue = t1[++idx];
+            txtVZ1.EditValue = t1[++idx];
+
+            var t2 = time2SatInfo.Split(',');
+            idx = 0;
+            txtX2.EditValue = t2[++idx];
+            txtY2.EditValue = t2[++idx];
+            txtZ2.EditValue = t2[++idx];
+            txtVX2.EditValue = t2[++idx];
+            txtVY2.EditValue = t2[++idx];
+            txtVZ2.EditValue = t2[++idx];
+
+
+            var t3 = time3SatInfo.Split(',');
+            idx = 0;
+            txtX21.EditValue = t3[++idx];
+            txtY21.EditValue = t3[++idx];
+            txtZ21.EditValue = t3[++idx];
+            txtVX21.EditValue = t3[++idx];
+            txtVY21.EditValue = t3[++idx];
+            txtVZ21.EditValue = t3[++idx];
+        }
+        private async void btnOk_Click(object sender, EventArgs e)
+        {
+            try
+            {
+                var strTar = txtTar.Text.Replace(",", ",");
+                var tarfuHz = (Convert.ToDouble(txtTarFuMhz.Text) + 44) * 1e6;
+                double lon = Convert.ToDouble(strTar.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)[0]);
+                double lat = Convert.ToDouble(strTar.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)[1]);
+
+                double x1 = Convert.ToDouble(txtX1.Text);
+                double y1 = Convert.ToDouble(txtY1.Text);
+                double z1 = Convert.ToDouble(txtZ1.Text);
+                double vx1 = Convert.ToDouble(txtVX1.Text);
+                double vy1 = Convert.ToDouble(txtVY1.Text);
+                double vz1 = Convert.ToDouble(txtVZ1.Text);
+
+                double[] ephX1 = new double[6] { x1, y1, z1, vx1, vy1, vz1 };
+                double x2 = Convert.ToDouble(txtX2.Text);
+                double y2 = Convert.ToDouble(txtY2.Text);
+                double z2 = Convert.ToDouble(txtZ2.Text);
+                double vx2 = Convert.ToDouble(txtVX2.Text);
+                double vy2 = Convert.ToDouble(txtVY2.Text);
+                double vz2 = Convert.ToDouble(txtVZ2.Text);
+                double[] ephX2 = new double[6] { x2, y2, z2, vx2, vy2, vz2 };
+
+                double[] targetPos = new double[3] { lon, lat, 0 };
+
+                var tardf1 = DfoCalcAPI.DfoCalc(targetPos, ephX1, tarfuHz);
+                var tardf2 = DfoCalcAPI.DfoCalc(targetPos, ephX2, tarfuHz);
+
+                double x3 = Convert.ToDouble(txtX21.Text);
+                double y3 = Convert.ToDouble(txtY21.Text);
+                double z3 = Convert.ToDouble(txtZ21.Text);
+                double vx3 = Convert.ToDouble(txtVX21.Text);
+                double vy3 = Convert.ToDouble(txtVY21.Text);
+                double vz3 = Convert.ToDouble(txtVZ21.Text);
+                double[] ephX3 = new double[6] { x3, y3, z3, vx3, vy3, vz3 };
+                var tardf3 = DfoCalcAPI.DfoCalc(targetPos, ephX3, tarfuHz);
+            
+                this.txtRes.Text =$"第二时刻目标频差预测值:{tardf2 - tardf1:f3}Hz 第三时刻目标频差预测值:{tardf3 - tardf1:f3}Hz";
+
+            }
+            catch (Exception ex)
+            {
+                await LogHelper.Error("频差预测出错", ex);
+                DxHelper.MsgBoxHelper.ShowError("频差预测出错");
+            }
+        }
+
+
+    }
+}

+ 0 - 0
XdCxRhDW.App/EditForms/TarDfoCalc.resx → XdCxRhDW.App/EditForms/TarDfoLeoX1Calc.resx


+ 658 - 0
XdCxRhDW.App/EditForms/TarDfoLeoX2Calc.Designer.cs

@@ -0,0 +1,658 @@
+namespace XdCxRhDW.App.EditForms
+{
+    partial class TarDfoLeoX2Calc
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            DevExpress.XtraEditors.Controls.EditorButtonImageOptions editorButtonImageOptions1 = new DevExpress.XtraEditors.Controls.EditorButtonImageOptions();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject1 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject2 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject3 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject4 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.XtraEditors.Controls.EditorButtonImageOptions editorButtonImageOptions2 = new DevExpress.XtraEditors.Controls.EditorButtonImageOptions();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject5 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject6 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject7 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject8 = new DevExpress.Utils.SerializableAppearanceObject();
+            this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+            this.btnOk = new DevExpress.XtraEditors.SimpleButton();
+            this.txtTar = new DevExpress.XtraEditors.TextEdit();
+            this.txtX1 = new DevExpress.XtraEditors.TextEdit();
+            this.txtY1 = new DevExpress.XtraEditors.TextEdit();
+            this.txtZ1 = new DevExpress.XtraEditors.TextEdit();
+            this.txtVX1 = new DevExpress.XtraEditors.TextEdit();
+            this.txtVY1 = new DevExpress.XtraEditors.TextEdit();
+            this.txtVZ1 = new DevExpress.XtraEditors.TextEdit();
+            this.txtX2 = new DevExpress.XtraEditors.TextEdit();
+            this.txtY2 = new DevExpress.XtraEditors.TextEdit();
+            this.txtZ2 = new DevExpress.XtraEditors.TextEdit();
+            this.txtVX2 = new DevExpress.XtraEditors.TextEdit();
+            this.txtVY2 = new DevExpress.XtraEditors.TextEdit();
+            this.txtVZ2 = new DevExpress.XtraEditors.TextEdit();
+            this.txtTarFuMhz = new DevExpress.XtraEditors.ButtonEdit();
+            this.Root = new DevExpress.XtraLayout.LayoutControlGroup();
+            this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
+            this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
+            this.emptySpaceItem3 = new DevExpress.XtraLayout.EmptySpaceItem();
+            this.txtRes = new DevExpress.XtraLayout.SimpleLabelItem();
+            this.lcX1 = new DevExpress.XtraLayout.LayoutControlItem();
+            this.lcY1 = new DevExpress.XtraLayout.LayoutControlItem();
+            this.lcZ1 = new DevExpress.XtraLayout.LayoutControlItem();
+            this.lcVZ1 = new DevExpress.XtraLayout.LayoutControlItem();
+            this.lcVX1 = new DevExpress.XtraLayout.LayoutControlItem();
+            this.lcVY1 = new DevExpress.XtraLayout.LayoutControlItem();
+            this.lcX2 = new DevExpress.XtraLayout.LayoutControlItem();
+            this.lcY2 = new DevExpress.XtraLayout.LayoutControlItem();
+            this.lcZ2 = new DevExpress.XtraLayout.LayoutControlItem();
+            this.lcVX2 = new DevExpress.XtraLayout.LayoutControlItem();
+            this.lcVY2 = new DevExpress.XtraLayout.LayoutControlItem();
+            this.lcVZ2 = new DevExpress.XtraLayout.LayoutControlItem();
+            this.layoutControlItem22 = new DevExpress.XtraLayout.LayoutControlItem();
+            this.txtRefFuMhz = new DevExpress.XtraEditors.ButtonEdit();
+            this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+            ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+            this.layoutControl1.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.txtTar.Properties)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtX1.Properties)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtY1.Properties)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtZ1.Properties)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtVX1.Properties)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtVY1.Properties)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtVZ1.Properties)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtX2.Properties)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtY2.Properties)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtZ2.Properties)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtVX2.Properties)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtVY2.Properties)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtVZ2.Properties)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtTarFuMhz.Properties)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem3)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtRes)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.lcX1)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.lcY1)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.lcZ1)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.lcVZ1)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.lcVX1)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.lcVY1)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.lcX2)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.lcY2)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.lcZ2)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.lcVX2)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.lcVY2)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.lcVZ2)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem22)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtRefFuMhz.Properties)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+            this.SuspendLayout();
+            // 
+            // layoutControl1
+            // 
+            this.layoutControl1.Controls.Add(this.btnOk);
+            this.layoutControl1.Controls.Add(this.txtTar);
+            this.layoutControl1.Controls.Add(this.txtX1);
+            this.layoutControl1.Controls.Add(this.txtY1);
+            this.layoutControl1.Controls.Add(this.txtZ1);
+            this.layoutControl1.Controls.Add(this.txtVX1);
+            this.layoutControl1.Controls.Add(this.txtVY1);
+            this.layoutControl1.Controls.Add(this.txtVZ1);
+            this.layoutControl1.Controls.Add(this.txtX2);
+            this.layoutControl1.Controls.Add(this.txtY2);
+            this.layoutControl1.Controls.Add(this.txtZ2);
+            this.layoutControl1.Controls.Add(this.txtVX2);
+            this.layoutControl1.Controls.Add(this.txtVY2);
+            this.layoutControl1.Controls.Add(this.txtVZ2);
+            this.layoutControl1.Controls.Add(this.txtTarFuMhz);
+            this.layoutControl1.Controls.Add(this.txtRefFuMhz);
+            this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.layoutControl1.Location = new System.Drawing.Point(0, 0);
+            this.layoutControl1.Name = "layoutControl1";
+            this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(831, 101, 650, 400);
+            this.layoutControl1.Root = this.Root;
+            this.layoutControl1.Size = new System.Drawing.Size(475, 439);
+            this.layoutControl1.TabIndex = 0;
+            this.layoutControl1.Text = "layoutControl1";
+            // 
+            // btnOk
+            // 
+            this.btnOk.Location = new System.Drawing.Point(337, 354);
+            this.btnOk.Name = "btnOk";
+            this.btnOk.Size = new System.Drawing.Size(116, 26);
+            this.btnOk.StyleController = this.layoutControl1;
+            this.btnOk.TabIndex = 8;
+            this.btnOk.Text = "确定";
+            this.btnOk.Click += new System.EventHandler(this.btnOk_Click);
+            // 
+            // txtTar
+            // 
+            this.txtTar.EditValue = "";
+            this.txtTar.Location = new System.Drawing.Point(22, 39);
+            this.txtTar.Name = "txtTar";
+            this.txtTar.Size = new System.Drawing.Size(431, 20);
+            this.txtTar.StyleController = this.layoutControl1;
+            this.txtTar.TabIndex = 9;
+            // 
+            // txtX1
+            // 
+            this.txtX1.EditValue = "-1608418.46";
+            this.txtX1.Location = new System.Drawing.Point(22, 171);
+            this.txtX1.Name = "txtX1";
+            this.txtX1.Size = new System.Drawing.Size(138, 20);
+            this.txtX1.StyleController = this.layoutControl1;
+            this.txtX1.TabIndex = 9;
+            // 
+            // txtY1
+            // 
+            this.txtY1.EditValue = "5994257.60";
+            this.txtY1.Location = new System.Drawing.Point(164, 171);
+            this.txtY1.Name = "txtY1";
+            this.txtY1.Size = new System.Drawing.Size(138, 20);
+            this.txtY1.StyleController = this.layoutControl1;
+            this.txtY1.TabIndex = 9;
+            // 
+            // txtZ1
+            // 
+            this.txtZ1.EditValue = "3139819.89";
+            this.txtZ1.Location = new System.Drawing.Point(306, 171);
+            this.txtZ1.Name = "txtZ1";
+            this.txtZ1.Size = new System.Drawing.Size(147, 20);
+            this.txtZ1.StyleController = this.layoutControl1;
+            this.txtZ1.TabIndex = 9;
+            // 
+            // txtVX1
+            // 
+            this.txtVX1.EditValue = "-6632.8731";
+            this.txtVX1.Location = new System.Drawing.Point(22, 221);
+            this.txtVX1.Name = "txtVX1";
+            this.txtVX1.Size = new System.Drawing.Size(138, 20);
+            this.txtVX1.StyleController = this.layoutControl1;
+            this.txtVX1.TabIndex = 9;
+            // 
+            // txtVY1
+            // 
+            this.txtVY1.EditValue = "-373.9909";
+            this.txtVY1.Location = new System.Drawing.Point(164, 221);
+            this.txtVY1.Name = "txtVY1";
+            this.txtVY1.Size = new System.Drawing.Size(138, 20);
+            this.txtVY1.StyleController = this.layoutControl1;
+            this.txtVY1.TabIndex = 9;
+            // 
+            // txtVZ1
+            // 
+            this.txtVZ1.EditValue = "-2678.2335";
+            this.txtVZ1.Location = new System.Drawing.Point(306, 221);
+            this.txtVZ1.Name = "txtVZ1";
+            this.txtVZ1.Size = new System.Drawing.Size(147, 20);
+            this.txtVZ1.StyleController = this.layoutControl1;
+            this.txtVZ1.TabIndex = 9;
+            // 
+            // txtX2
+            // 
+            this.txtX2.EditValue = "-4629555.87";
+            this.txtX2.Location = new System.Drawing.Point(22, 271);
+            this.txtX2.Name = "txtX2";
+            this.txtX2.Size = new System.Drawing.Size(138, 20);
+            this.txtX2.StyleController = this.layoutControl1;
+            this.txtX2.TabIndex = 9;
+            // 
+            // txtY2
+            // 
+            this.txtY2.EditValue = "4978929.91";
+            this.txtY2.Location = new System.Drawing.Point(164, 271);
+            this.txtY2.Name = "txtY2";
+            this.txtY2.Size = new System.Drawing.Size(138, 20);
+            this.txtY2.StyleController = this.layoutControl1;
+            this.txtY2.TabIndex = 9;
+            // 
+            // txtZ2
+            // 
+            this.txtZ2.EditValue = "1487241.78";
+            this.txtZ2.Location = new System.Drawing.Point(306, 271);
+            this.txtZ2.Name = "txtZ2";
+            this.txtZ2.Size = new System.Drawing.Size(147, 20);
+            this.txtZ2.StyleController = this.layoutControl1;
+            this.txtZ2.TabIndex = 9;
+            // 
+            // txtVX2
+            // 
+            this.txtVX2.EditValue = "-4890.2693";
+            this.txtVX2.Location = new System.Drawing.Point(22, 321);
+            this.txtVX2.Name = "txtVX2";
+            this.txtVX2.Size = new System.Drawing.Size(138, 20);
+            this.txtVX2.StyleController = this.layoutControl1;
+            this.txtVX2.TabIndex = 9;
+            // 
+            // txtVY2
+            // 
+            this.txtVY2.EditValue = "-3337.6709";
+            this.txtVY2.Location = new System.Drawing.Point(164, 321);
+            this.txtVY2.Name = "txtVY2";
+            this.txtVY2.Size = new System.Drawing.Size(138, 20);
+            this.txtVY2.StyleController = this.layoutControl1;
+            this.txtVY2.TabIndex = 9;
+            // 
+            // txtVZ2
+            // 
+            this.txtVZ2.EditValue = "-4031.3087";
+            this.txtVZ2.Location = new System.Drawing.Point(306, 321);
+            this.txtVZ2.Name = "txtVZ2";
+            this.txtVZ2.Size = new System.Drawing.Size(147, 20);
+            this.txtVZ2.StyleController = this.layoutControl1;
+            this.txtVZ2.TabIndex = 9;
+            // 
+            // txtTarFuMhz
+            // 
+            this.txtTarFuMhz.EditValue = "260";
+            this.txtTarFuMhz.Location = new System.Drawing.Point(22, 83);
+            this.txtTarFuMhz.MaximumSize = new System.Drawing.Size(0, 20);
+            this.txtTarFuMhz.Name = "txtTarFuMhz";
+            this.txtTarFuMhz.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
+            new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph, "MHz", -1, true, true, false, editorButtonImageOptions1, new DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), serializableAppearanceObject1, serializableAppearanceObject2, serializableAppearanceObject3, serializableAppearanceObject4, "", null, null, DevExpress.Utils.ToolTipAnchor.Default)});
+            this.txtTarFuMhz.Size = new System.Drawing.Size(431, 20);
+            this.txtTarFuMhz.StyleController = this.layoutControl1;
+            this.txtTarFuMhz.TabIndex = 10;
+            // 
+            // Root
+            // 
+            this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+            this.Root.GroupBordersVisible = false;
+            this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+            this.layoutControlItem5,
+            this.layoutControlItem6,
+            this.emptySpaceItem3,
+            this.txtRes,
+            this.lcX1,
+            this.lcY1,
+            this.lcZ1,
+            this.lcVZ1,
+            this.lcVX1,
+            this.lcVY1,
+            this.lcX2,
+            this.lcY2,
+            this.lcZ2,
+            this.lcVX2,
+            this.lcVY2,
+            this.lcVZ2,
+            this.layoutControlItem22,
+            this.layoutControlItem1});
+            this.Root.Name = "Root";
+            this.Root.Padding = new DevExpress.XtraLayout.Utils.Padding(20, 20, 20, 20);
+            this.Root.Size = new System.Drawing.Size(475, 439);
+            this.Root.TextVisible = false;
+            // 
+            // layoutControlItem5
+            // 
+            this.layoutControlItem5.Control = this.btnOk;
+            this.layoutControlItem5.Location = new System.Drawing.Point(315, 332);
+            this.layoutControlItem5.MaxSize = new System.Drawing.Size(120, 30);
+            this.layoutControlItem5.MinSize = new System.Drawing.Size(120, 30);
+            this.layoutControlItem5.Name = "layoutControlItem5";
+            this.layoutControlItem5.Size = new System.Drawing.Size(120, 30);
+            this.layoutControlItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+            this.layoutControlItem5.TextSize = new System.Drawing.Size(0, 0);
+            this.layoutControlItem5.TextVisible = false;
+            // 
+            // layoutControlItem6
+            // 
+            this.layoutControlItem6.Control = this.txtTar;
+            this.layoutControlItem6.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+            this.layoutControlItem6.CustomizationFormText = "星历X";
+            this.layoutControlItem6.Location = new System.Drawing.Point(0, 0);
+            this.layoutControlItem6.MaxSize = new System.Drawing.Size(0, 44);
+            this.layoutControlItem6.MinSize = new System.Drawing.Size(54, 44);
+            this.layoutControlItem6.Name = "layoutControlItem6";
+            this.layoutControlItem6.Size = new System.Drawing.Size(435, 44);
+            this.layoutControlItem6.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+            this.layoutControlItem6.Text = "目标位置";
+            this.layoutControlItem6.TextLocation = DevExpress.Utils.Locations.Top;
+            this.layoutControlItem6.TextSize = new System.Drawing.Size(72, 14);
+            // 
+            // emptySpaceItem3
+            // 
+            this.emptySpaceItem3.AllowHotTrack = false;
+            this.emptySpaceItem3.Location = new System.Drawing.Point(0, 332);
+            this.emptySpaceItem3.Name = "emptySpaceItem3";
+            this.emptySpaceItem3.Size = new System.Drawing.Size(315, 30);
+            this.emptySpaceItem3.TextSize = new System.Drawing.Size(0, 0);
+            // 
+            // txtRes
+            // 
+            this.txtRes.AllowHotTrack = false;
+            this.txtRes.Location = new System.Drawing.Point(0, 362);
+            this.txtRes.MaxSize = new System.Drawing.Size(0, 26);
+            this.txtRes.MinSize = new System.Drawing.Size(67, 26);
+            this.txtRes.Name = "txtRes";
+            this.txtRes.Size = new System.Drawing.Size(435, 37);
+            this.txtRes.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+            this.txtRes.Text = " ";
+            this.txtRes.TextSize = new System.Drawing.Size(72, 14);
+            // 
+            // lcX1
+            // 
+            this.lcX1.Control = this.txtX1;
+            this.lcX1.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+            this.lcX1.CustomizationFormText = "主星坐标X";
+            this.lcX1.Location = new System.Drawing.Point(0, 132);
+            this.lcX1.MaxSize = new System.Drawing.Size(0, 50);
+            this.lcX1.MinSize = new System.Drawing.Size(54, 50);
+            this.lcX1.Name = "lcX1";
+            this.lcX1.Size = new System.Drawing.Size(142, 50);
+            this.lcX1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+            this.lcX1.Text = "主星坐标X";
+            this.lcX1.TextLocation = DevExpress.Utils.Locations.Top;
+            this.lcX1.TextSize = new System.Drawing.Size(72, 14);
+            // 
+            // lcY1
+            // 
+            this.lcY1.Control = this.txtY1;
+            this.lcY1.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+            this.lcY1.CustomizationFormText = "星历X";
+            this.lcY1.Location = new System.Drawing.Point(142, 132);
+            this.lcY1.MaxSize = new System.Drawing.Size(0, 50);
+            this.lcY1.MinSize = new System.Drawing.Size(54, 50);
+            this.lcY1.Name = "lcY1";
+            this.lcY1.Size = new System.Drawing.Size(142, 50);
+            this.lcY1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+            this.lcY1.Text = "主星坐标Y";
+            this.lcY1.TextLocation = DevExpress.Utils.Locations.Top;
+            this.lcY1.TextSize = new System.Drawing.Size(72, 14);
+            // 
+            // lcZ1
+            // 
+            this.lcZ1.Control = this.txtZ1;
+            this.lcZ1.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+            this.lcZ1.CustomizationFormText = "星历X";
+            this.lcZ1.Location = new System.Drawing.Point(284, 132);
+            this.lcZ1.MaxSize = new System.Drawing.Size(0, 50);
+            this.lcZ1.MinSize = new System.Drawing.Size(54, 50);
+            this.lcZ1.Name = "lcZ1";
+            this.lcZ1.Size = new System.Drawing.Size(151, 50);
+            this.lcZ1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+            this.lcZ1.Text = "主星坐标Z";
+            this.lcZ1.TextLocation = DevExpress.Utils.Locations.Top;
+            this.lcZ1.TextSize = new System.Drawing.Size(72, 14);
+            // 
+            // lcVZ1
+            // 
+            this.lcVZ1.Control = this.txtVZ1;
+            this.lcVZ1.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+            this.lcVZ1.CustomizationFormText = "星历X";
+            this.lcVZ1.Location = new System.Drawing.Point(284, 182);
+            this.lcVZ1.MaxSize = new System.Drawing.Size(0, 50);
+            this.lcVZ1.MinSize = new System.Drawing.Size(54, 50);
+            this.lcVZ1.Name = "lcVZ1";
+            this.lcVZ1.Size = new System.Drawing.Size(151, 50);
+            this.lcVZ1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+            this.lcVZ1.Text = "主星坐标VZ";
+            this.lcVZ1.TextLocation = DevExpress.Utils.Locations.Top;
+            this.lcVZ1.TextSize = new System.Drawing.Size(72, 14);
+            // 
+            // lcVX1
+            // 
+            this.lcVX1.Control = this.txtVX1;
+            this.lcVX1.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+            this.lcVX1.CustomizationFormText = "卫星1坐标X";
+            this.lcVX1.Location = new System.Drawing.Point(0, 182);
+            this.lcVX1.MaxSize = new System.Drawing.Size(0, 50);
+            this.lcVX1.MinSize = new System.Drawing.Size(54, 50);
+            this.lcVX1.Name = "lcVX1";
+            this.lcVX1.Size = new System.Drawing.Size(142, 50);
+            this.lcVX1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+            this.lcVX1.Text = "主星坐标VX";
+            this.lcVX1.TextLocation = DevExpress.Utils.Locations.Top;
+            this.lcVX1.TextSize = new System.Drawing.Size(72, 14);
+            // 
+            // lcVY1
+            // 
+            this.lcVY1.Control = this.txtVY1;
+            this.lcVY1.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+            this.lcVY1.CustomizationFormText = "星历X";
+            this.lcVY1.Location = new System.Drawing.Point(142, 182);
+            this.lcVY1.MaxSize = new System.Drawing.Size(0, 50);
+            this.lcVY1.MinSize = new System.Drawing.Size(54, 50);
+            this.lcVY1.Name = "lcVY1";
+            this.lcVY1.Size = new System.Drawing.Size(142, 50);
+            this.lcVY1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+            this.lcVY1.Text = "主星坐标VY";
+            this.lcVY1.TextLocation = DevExpress.Utils.Locations.Top;
+            this.lcVY1.TextSize = new System.Drawing.Size(72, 14);
+            // 
+            // lcX2
+            // 
+            this.lcX2.Control = this.txtX2;
+            this.lcX2.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+            this.lcX2.CustomizationFormText = "卫星1坐标X";
+            this.lcX2.Location = new System.Drawing.Point(0, 232);
+            this.lcX2.MaxSize = new System.Drawing.Size(0, 50);
+            this.lcX2.MinSize = new System.Drawing.Size(54, 50);
+            this.lcX2.Name = "lcX2";
+            this.lcX2.Size = new System.Drawing.Size(142, 50);
+            this.lcX2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+            this.lcX2.Text = "邻1星坐标X";
+            this.lcX2.TextLocation = DevExpress.Utils.Locations.Top;
+            this.lcX2.TextSize = new System.Drawing.Size(72, 14);
+            // 
+            // lcY2
+            // 
+            this.lcY2.Control = this.txtY2;
+            this.lcY2.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+            this.lcY2.CustomizationFormText = "星历X";
+            this.lcY2.Location = new System.Drawing.Point(142, 232);
+            this.lcY2.MaxSize = new System.Drawing.Size(0, 50);
+            this.lcY2.MinSize = new System.Drawing.Size(54, 50);
+            this.lcY2.Name = "lcY2";
+            this.lcY2.Size = new System.Drawing.Size(142, 50);
+            this.lcY2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+            this.lcY2.Text = "邻1星坐标Y";
+            this.lcY2.TextLocation = DevExpress.Utils.Locations.Top;
+            this.lcY2.TextSize = new System.Drawing.Size(72, 14);
+            // 
+            // lcZ2
+            // 
+            this.lcZ2.Control = this.txtZ2;
+            this.lcZ2.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+            this.lcZ2.CustomizationFormText = "星历X";
+            this.lcZ2.Location = new System.Drawing.Point(284, 232);
+            this.lcZ2.MaxSize = new System.Drawing.Size(0, 50);
+            this.lcZ2.MinSize = new System.Drawing.Size(54, 50);
+            this.lcZ2.Name = "lcZ2";
+            this.lcZ2.Size = new System.Drawing.Size(151, 50);
+            this.lcZ2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+            this.lcZ2.Text = "邻1星坐标Z";
+            this.lcZ2.TextLocation = DevExpress.Utils.Locations.Top;
+            this.lcZ2.TextSize = new System.Drawing.Size(72, 14);
+            // 
+            // lcVX2
+            // 
+            this.lcVX2.Control = this.txtVX2;
+            this.lcVX2.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+            this.lcVX2.CustomizationFormText = "卫星1坐标X";
+            this.lcVX2.Location = new System.Drawing.Point(0, 282);
+            this.lcVX2.MaxSize = new System.Drawing.Size(0, 50);
+            this.lcVX2.MinSize = new System.Drawing.Size(54, 50);
+            this.lcVX2.Name = "lcVX2";
+            this.lcVX2.Size = new System.Drawing.Size(142, 50);
+            this.lcVX2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+            this.lcVX2.Text = "邻1星坐标VX";
+            this.lcVX2.TextLocation = DevExpress.Utils.Locations.Top;
+            this.lcVX2.TextSize = new System.Drawing.Size(72, 14);
+            // 
+            // lcVY2
+            // 
+            this.lcVY2.Control = this.txtVY2;
+            this.lcVY2.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+            this.lcVY2.CustomizationFormText = "星历X";
+            this.lcVY2.Location = new System.Drawing.Point(142, 282);
+            this.lcVY2.MaxSize = new System.Drawing.Size(0, 50);
+            this.lcVY2.MinSize = new System.Drawing.Size(54, 50);
+            this.lcVY2.Name = "lcVY2";
+            this.lcVY2.Size = new System.Drawing.Size(142, 50);
+            this.lcVY2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+            this.lcVY2.Text = "邻1星坐标VY";
+            this.lcVY2.TextLocation = DevExpress.Utils.Locations.Top;
+            this.lcVY2.TextSize = new System.Drawing.Size(72, 14);
+            // 
+            // lcVZ2
+            // 
+            this.lcVZ2.Control = this.txtVZ2;
+            this.lcVZ2.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+            this.lcVZ2.CustomizationFormText = "星历X";
+            this.lcVZ2.Location = new System.Drawing.Point(284, 282);
+            this.lcVZ2.MaxSize = new System.Drawing.Size(0, 50);
+            this.lcVZ2.MinSize = new System.Drawing.Size(54, 50);
+            this.lcVZ2.Name = "lcVZ2";
+            this.lcVZ2.Size = new System.Drawing.Size(151, 50);
+            this.lcVZ2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+            this.lcVZ2.Text = "邻1星坐标VZ";
+            this.lcVZ2.TextLocation = DevExpress.Utils.Locations.Top;
+            this.lcVZ2.TextSize = new System.Drawing.Size(72, 14);
+            // 
+            // layoutControlItem22
+            // 
+            this.layoutControlItem22.Control = this.txtTarFuMhz;
+            this.layoutControlItem22.Location = new System.Drawing.Point(0, 44);
+            this.layoutControlItem22.Name = "layoutControlItem22";
+            this.layoutControlItem22.Size = new System.Drawing.Size(435, 44);
+            this.layoutControlItem22.Text = "目标下行频点";
+            this.layoutControlItem22.TextLocation = DevExpress.Utils.Locations.Top;
+            this.layoutControlItem22.TextSize = new System.Drawing.Size(72, 14);
+            // 
+            // txtRefFuMhz
+            // 
+            this.txtRefFuMhz.EditValue = "260";
+            this.txtRefFuMhz.Location = new System.Drawing.Point(22, 127);
+            this.txtRefFuMhz.MaximumSize = new System.Drawing.Size(0, 20);
+            this.txtRefFuMhz.Name = "txtRefFuMhz";
+            this.txtRefFuMhz.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
+            new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph, "MHz", -1, true, true, false, editorButtonImageOptions2, new DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), serializableAppearanceObject5, serializableAppearanceObject6, serializableAppearanceObject7, serializableAppearanceObject8, "", null, null, DevExpress.Utils.ToolTipAnchor.Default)});
+            this.txtRefFuMhz.Size = new System.Drawing.Size(431, 20);
+            this.txtRefFuMhz.StyleController = this.layoutControl1;
+            this.txtRefFuMhz.TabIndex = 10;
+            // 
+            // layoutControlItem1
+            // 
+            this.layoutControlItem1.Control = this.txtRefFuMhz;
+            this.layoutControlItem1.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+            this.layoutControlItem1.CustomizationFormText = "下行频点";
+            this.layoutControlItem1.Location = new System.Drawing.Point(0, 88);
+            this.layoutControlItem1.Name = "layoutControlItem1";
+            this.layoutControlItem1.Size = new System.Drawing.Size(435, 44);
+            this.layoutControlItem1.Text = "参考下行频点";
+            this.layoutControlItem1.TextLocation = DevExpress.Utils.Locations.Top;
+            this.layoutControlItem1.TextSize = new System.Drawing.Size(72, 14);
+            // 
+            // TarDfoLeoX2Calc
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(475, 439);
+            this.Controls.Add(this.layoutControl1);
+            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
+            this.Name = "TarDfoLeoX2Calc";
+            this.Text = "频差预测";
+            ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+            this.layoutControl1.ResumeLayout(false);
+            ((System.ComponentModel.ISupportInitialize)(this.txtTar.Properties)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtX1.Properties)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtY1.Properties)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtZ1.Properties)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtVX1.Properties)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtVY1.Properties)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtVZ1.Properties)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtX2.Properties)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtY2.Properties)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtZ2.Properties)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtVX2.Properties)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtVY2.Properties)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtVZ2.Properties)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtTarFuMhz.Properties)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem3)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtRes)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.lcX1)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.lcY1)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.lcZ1)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.lcVZ1)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.lcVX1)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.lcVY1)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.lcX2)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.lcY2)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.lcZ2)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.lcVX2)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.lcVY2)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.lcVZ2)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem22)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtRefFuMhz.Properties)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+            this.ResumeLayout(false);
+
+        }
+
+        #endregion
+
+        private DevExpress.XtraLayout.LayoutControl layoutControl1;
+        private DevExpress.XtraLayout.LayoutControlGroup Root;
+        private DevExpress.XtraEditors.SimpleButton btnOk;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
+        private DevExpress.XtraEditors.TextEdit txtTar;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
+        private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem3;
+        private DevExpress.XtraLayout.SimpleLabelItem txtRes;
+        private DevExpress.XtraEditors.TextEdit txtX1;
+        private DevExpress.XtraEditors.TextEdit txtY1;
+        private DevExpress.XtraEditors.TextEdit txtZ1;
+        private DevExpress.XtraEditors.TextEdit txtVX1;
+        private DevExpress.XtraEditors.TextEdit txtVY1;
+        private DevExpress.XtraEditors.TextEdit txtVZ1;
+        private DevExpress.XtraEditors.TextEdit txtX2;
+        private DevExpress.XtraEditors.TextEdit txtY2;
+        private DevExpress.XtraEditors.TextEdit txtZ2;
+        private DevExpress.XtraLayout.LayoutControlItem lcX1;
+        private DevExpress.XtraLayout.LayoutControlItem lcY1;
+        private DevExpress.XtraLayout.LayoutControlItem lcZ1;
+        private DevExpress.XtraLayout.LayoutControlItem lcVZ1;
+        private DevExpress.XtraLayout.LayoutControlItem lcVX1;
+        private DevExpress.XtraLayout.LayoutControlItem lcVY1;
+        private DevExpress.XtraLayout.LayoutControlItem lcX2;
+        private DevExpress.XtraLayout.LayoutControlItem lcY2;
+        private DevExpress.XtraLayout.LayoutControlItem lcZ2;
+        private DevExpress.XtraEditors.TextEdit txtVX2;
+        private DevExpress.XtraEditors.TextEdit txtVY2;
+        private DevExpress.XtraEditors.TextEdit txtVZ2;
+        private DevExpress.XtraLayout.LayoutControlItem lcVX2;
+        private DevExpress.XtraLayout.LayoutControlItem lcVY2;
+        private DevExpress.XtraLayout.LayoutControlItem lcVZ2;
+        private DevExpress.XtraEditors.ButtonEdit txtTarFuMhz;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem22;
+        private DevExpress.XtraEditors.ButtonEdit txtRefFuMhz;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+    }
+}

+ 119 - 0
XdCxRhDW.App/EditForms/TarDfoLeoX2Calc.cs

@@ -0,0 +1,119 @@
+using DevExpress.XtraEditors;
+using DevExpress.XtraEditors.Controls;
+using ExtensionsDev;
+using Newtonsoft.Json.Linq;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Data.Entity;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Documents;
+using System.Windows.Forms;
+using System.Windows.Input;
+using XdCxRhDW.Api;
+using XdCxRhDW.Api.AddIns;
+using XdCxRhDW.Entity;
+using XdCxRhDW.Repostory;
+
+namespace XdCxRhDW.App.EditForms
+{
+    public partial class TarDfoLeoX2Calc : DevExpress.XtraEditors.XtraForm
+    {
+        public TarDfoLeoX2Calc()
+        {
+            InitializeComponent();
+            this.layoutControl1.UseDefault();
+            this.StartPosition = FormStartPosition.CenterParent;
+        }
+        public TarDfoLeoX2Calc(double lon, double lat)
+            : this()
+        {
+            this.txtTar.Text = $"{lon:f3},{lat:f3}";
+            string mainSatInfo = "23467,-1608418.46,5994257.60,3139819.89,-6632.8731,-373.9909,-2678.2335";
+            string adja1SatInfo = "40892,-4629555.87,4978929.91,1487241.78,-4890.2693,-3337.6709,-4031.3087";
+            this.lcX1.Text = "主星坐标X";
+            this.lcY1.Text = "主星坐标Y";
+            this.lcZ1.Text = "主星坐标Z";
+            this.lcVX1.Text = "主星坐标VX";
+            this.lcVY1.Text = "主星坐标VY";
+            this.lcVZ1.Text = "主星坐标VZ";
+
+            this.lcX2.Text = "邻星坐标X";
+            this.lcY2.Text = "邻星坐标Y";
+            this.lcZ2.Text = "邻星坐标Z";
+            this.lcVX2.Text = "邻星坐标VX";
+            this.lcVY2.Text = "邻星坐标VY";
+            this.lcVZ2.Text = "邻星坐标VZ";
+
+            var main = mainSatInfo.Split(',');
+            int idx = 0;
+            txtX1.EditValue = main[++idx];
+            txtY1.EditValue = main[++idx];
+            txtZ1.EditValue = main[++idx];
+            txtVX1.EditValue = main[++idx];
+            txtVY1.EditValue = main[++idx];
+            txtVZ1.EditValue = main[++idx];
+
+            var adja = adja1SatInfo.Split(',');
+            idx = 0;
+            txtX2.EditValue = adja[++idx];
+            txtY2.EditValue = adja[++idx];
+            txtZ2.EditValue = adja[++idx];
+            txtVX2.EditValue = adja[++idx];
+            txtVY2.EditValue = adja[++idx];
+            txtVZ2.EditValue = adja[++idx];
+        }
+
+        private async void btnOk_Click(object sender, EventArgs e)
+        {
+            try
+            {
+                var strTar = txtTar.Text.Replace(",", ",");
+                var tarfuHz = (Convert.ToDouble(txtTarFuMhz.Text) + 44) * 1e6;
+                var reffuHz = (Convert.ToDouble(txtRefFuMhz.Text) + 44) * 1e6;
+
+                double lon = Convert.ToDouble(strTar.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)[0]);
+                double lat = Convert.ToDouble(strTar.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)[1]);
+
+                double x1 = Convert.ToDouble(txtX1.Text);
+                double y1 = Convert.ToDouble(txtY1.Text);
+                double z1 = Convert.ToDouble(txtZ1.Text);
+                double vx1 = Convert.ToDouble(txtVX1.Text);
+                double vy1 = Convert.ToDouble(txtVY1.Text);
+                double vz1 = Convert.ToDouble(txtVZ1.Text);
+
+                double[] ephX1 = new double[6] { x1, y1, z1, vx1, vy1, vz1 };
+                double x2 = Convert.ToDouble(txtX2.Text);
+                double y2 = Convert.ToDouble(txtY2.Text);
+                double z2 = Convert.ToDouble(txtZ2.Text);
+                double vx2 = Convert.ToDouble(txtVX2.Text);
+                double vy2 = Convert.ToDouble(txtVY2.Text);
+                double vz2 = Convert.ToDouble(txtVZ2.Text);
+                double[] ephX2 = new double[6] { x2, y2, z2, vx2, vy2, vz2 };
+
+                double[] targetPos = new double[3] { lon, lat, 0 };
+
+                var df1 = DfoCalcAPI.DfoCalc(targetPos, ephX1, tarfuHz);
+                var df2 = DfoCalcAPI.DfoCalc(targetPos, ephX2, tarfuHz);
+
+
+                var refdf1 = DfoCalcAPI.DfoCalc(targetPos, ephX1, reffuHz);
+                var refdf2 = DfoCalcAPI.DfoCalc(targetPos, ephX2, reffuHz);
+
+                this.txtRes.Text = $"目标主邻频差预测值:{df1 - df2:f3}Hz 参考主邻频差预测值:{refdf1 - refdf2:f3}Hz";
+            }
+            catch (Exception ex)
+            {
+                await LogHelper.Error("频差预测出错", ex);
+                DxHelper.MsgBoxHelper.ShowError("频差预测出错");
+            }
+        }
+
+
+    }
+}

+ 120 - 0
XdCxRhDW.App/EditForms/TarDfoLeoX2Calc.resx

@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>

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

@@ -118,9 +118,14 @@ namespace XdCxRhDW.App.UserControl
                TarDtoDfoCalc frm = new TarDtoDfoCalc(lon, lat);
                frm.ShowDialog();
            })
-           .AddMapMenu("频差预测", SvgHelper.CreateCxLine(), (lon, lat) =>
+            .AddMapMenu("一星频差预测", SvgHelper.CreateCxLine(), (lon, lat) =>
             {
-               TarDfoCalc frm = new TarDfoCalc(lon, lat);
+                TarDfoLeoX1Calc frm = new TarDfoLeoX1Calc(lon, lat);
+                frm.ShowDialog();
+            })
+           .AddMapMenu("两星频差预测", SvgHelper.CreateCxLine(), (lon, lat) =>
+            {
+               TarDfoLeoX2Calc frm = new TarDfoLeoX2Calc(lon, lat);
                frm.ShowDialog();
             });
             if (ConfigurationManager.AppSettings["UseMapCluster"] != null

+ 14 - 5
XdCxRhDW.App/XdCxRhDW.App.csproj

@@ -200,11 +200,17 @@
     <Compile Include="DxHelper\PopupHelper.cs" />
     <Compile Include="DxHelper\SvgHelper.cs" />
     <Compile Include="DxHelper\WaitHelper.cs" />
-    <Compile Include="EditForms\TarDfoCalc.cs">
+    <Compile Include="EditForms\TarDfoLeoX1Calc.cs">
       <SubType>Form</SubType>
     </Compile>
-    <Compile Include="EditForms\TarDfoCalc.Designer.cs">
-      <DependentUpon>TarDfoCalc.cs</DependentUpon>
+    <Compile Include="EditForms\TarDfoLeoX1Calc.Designer.cs">
+      <DependentUpon>TarDfoLeoX1Calc.cs</DependentUpon>
+    </Compile>
+    <Compile Include="EditForms\TarDfoLeoX2Calc.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="EditForms\TarDfoLeoX2Calc.Designer.cs">
+      <DependentUpon>TarDfoLeoX2Calc.cs</DependentUpon>
     </Compile>
     <Compile Include="EditForms\TarDtoDfoCalc.cs">
       <SubType>Form</SubType>
@@ -497,8 +503,11 @@
     <EmbeddedResource Include="CorTools\XlCalculateForm.resx">
       <DependentUpon>XlCalculateForm.cs</DependentUpon>
     </EmbeddedResource>
-    <EmbeddedResource Include="EditForms\TarDfoCalc.resx">
-      <DependentUpon>TarDfoCalc.cs</DependentUpon>
+    <EmbeddedResource Include="EditForms\TarDfoLeoX1Calc.resx">
+      <DependentUpon>TarDfoLeoX1Calc.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="EditForms\TarDfoLeoX2Calc.resx">
+      <DependentUpon>TarDfoLeoX2Calc.cs</DependentUpon>
     </EmbeddedResource>
     <EmbeddedResource Include="EditForms\TarDtoDfoCalc.resx">
       <DependentUpon>TarDtoDfoCalc.cs</DependentUpon>