zoulei vor 1 Jahr
Ursprung
Commit
9412f2dc3b

+ 7 - 1
Service/X1LeoTaskServer54/Service/TaskService.cs

@@ -220,6 +220,11 @@ namespace X1LeoTaskServer54.Service
                                                     SmpStart = cgDto.smpPositions[i].smpStart,
                                                     SmpCount = cgDto.smpPositions[i].smpCount,
                                                     PosCheckType = EnumPosCheckTypeDto.Ky5758,
+                                                    FfcHz = deteResp.data[i].FfcHz,
+                                                    ModRate = deteResp.data[i].ModRate,
+                                                    ModType = deteResp.data[i].ModType,
+                                                    Snr = deteResp.data[i].Snr,
+                                                    UserName = deteResp.data[i].UserName,
                                                 }
                                             };
                                             var result = await HttpHelper.PostRequestAsync<PosResDto>(baseUrl + "Pos/PosLeX1ParAsync", posDto);
@@ -284,7 +289,8 @@ namespace X1LeoTaskServer54.Service
                                     }
                                     sw.Stop();
                                     await LogHelper.Info($"【任务{dto.ID}】{adTime:yyyyMMddHHmmss}时刻-信号{freq}MHz-定位完成,耗时{sw.ElapsedMilliseconds}ms");
-                                    idx++;
+#warning +1滑动,+3不滑动,由于仿真随机噪声限制,滑动模式会导致错误的定位点,临时改成不滑动,做完一组直接做下一组
+                                    idx += 3;
 
                                 }
                             });

+ 6 - 1
Service/X2LeoTaskServer54/Service/TaskService.cs

@@ -224,6 +224,11 @@ namespace X2LeoTaskServer54.Service
                                                     SmpStart = cgDto.smpPositions[i].smpStart,
                                                     SmpCount = cgDto.smpPositions[i].smpCount,
                                                     PosCheckType = EnumPosCheckTypeDto.Ky5758,
+                                                    FfcHz = deteResp.data[i].FfcHz,
+                                                    ModRate = deteResp.data[i].ModRate,
+                                                    ModType = deteResp.data[i].ModType,
+                                                    Snr = deteResp.data[i].Snr,
+                                                    UserName = deteResp.data[i].UserName,
                                                 }
                                             };
                                             var result = await HttpHelper.PostRequestAsync<PosResDto>(baseUrl + "Pos/PosLeX2ParAsync", posDto);
@@ -263,7 +268,7 @@ namespace X2LeoTaskServer54.Service
                                                     SigTime = posDto.SigTime,
                                                     SigTimeLenMs = posDto.CheckRes.SmpCount * 1000 / tarFileInfo1.Fs,
                                                     FreqDownMHz = freq,
-                                                    FreqUpMHz =310.85,
+                                                    FreqUpMHz = 310.85,
                                                     SigModType = deteResp.data[i].ModType,
                                                     PosLon = posLon,
                                                     PosLat = posLat,

+ 5 - 1
Service/X3LeoTaskServer54/Service/TaskService.cs

@@ -229,6 +229,11 @@ namespace X3LeoTaskServer54.Service
                                                     SmpStart = smps[i].smpStart,
                                                     SmpCount = smps[i].smpCount,
                                                     PosCheckType = EnumPosCheckTypeDto.Ky5758,
+                                                    FfcHz = deteResp.data[i].FfcHz,
+                                                    ModRate = deteResp.data[i].ModRate,
+                                                    ModType = deteResp.data[i].ModType,
+                                                    Snr = deteResp.data[i].Snr,
+                                                    UserName = deteResp.data[i].UserName,
                                                 }
 
                                             };
@@ -315,7 +320,6 @@ namespace X3LeoTaskServer54.Service
                 }
             }, cts.Token);
 
-
         }
 
         private double[] GetEph(string[] strs)

+ 529 - 0
XdCxRhDW.App/EditForms/TarDtoDfoCalc.Designer.cs

@@ -0,0 +1,529 @@
+namespace XdCxRhDW.App.EditForms
+{
+    partial class TarDtoDfoCalc
+    {
+        /// <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()
+        {
+            this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+            this.btnOk = new DevExpress.XtraEditors.SimpleButton();
+            this.Root = new DevExpress.XtraLayout.LayoutControlGroup();
+            this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
+            this.emptySpaceItem2 = new DevExpress.XtraLayout.EmptySpaceItem();
+            this.txtX1 = new DevExpress.XtraEditors.TextEdit();
+            this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+            this.txtY1 = new DevExpress.XtraEditors.TextEdit();
+            this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+            this.txtZ1 = new DevExpress.XtraEditors.TextEdit();
+            this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
+            this.txtTar = new DevExpress.XtraEditors.TextEdit();
+            this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
+            this.txtRec = new DevExpress.XtraEditors.TextEdit();
+            this.layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem();
+            this.emptySpaceItem3 = new DevExpress.XtraLayout.EmptySpaceItem();
+            this.txtRes = new DevExpress.XtraLayout.SimpleLabelItem();
+            this.txtY2 = new DevExpress.XtraEditors.TextEdit();
+            this.txtX2 = new DevExpress.XtraEditors.TextEdit();
+            this.txtZ2 = new DevExpress.XtraEditors.TextEdit();
+            this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
+            this.layoutControlItem8 = new DevExpress.XtraLayout.LayoutControlItem();
+            this.layoutControlItem9 = new DevExpress.XtraLayout.LayoutControlItem();
+            this.txtX3 = new DevExpress.XtraEditors.TextEdit();
+            this.txtY3 = new DevExpress.XtraEditors.TextEdit();
+            this.txtZ3 = new DevExpress.XtraEditors.TextEdit();
+            this.layoutControlItem10 = new DevExpress.XtraLayout.LayoutControlItem();
+            this.layoutControlItem11 = new DevExpress.XtraLayout.LayoutControlItem();
+            this.layoutControlItem12 = new DevExpress.XtraLayout.LayoutControlItem();
+            ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
+            this.layoutControl1.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtX1.Properties)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtY1.Properties)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtZ1.Properties)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtTar.Properties)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtRec.Properties)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem3)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtRes)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtY2.Properties)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtX2.Properties)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtZ2.Properties)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtX3.Properties)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtY3.Properties)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtZ3.Properties)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem11)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).BeginInit();
+            this.SuspendLayout();
+            // 
+            // layoutControl1
+            // 
+            this.layoutControl1.Controls.Add(this.txtX1);
+            this.layoutControl1.Controls.Add(this.btnOk);
+            this.layoutControl1.Controls.Add(this.txtY1);
+            this.layoutControl1.Controls.Add(this.txtZ1);
+            this.layoutControl1.Controls.Add(this.txtTar);
+            this.layoutControl1.Controls.Add(this.txtRec);
+            this.layoutControl1.Controls.Add(this.txtX2);
+            this.layoutControl1.Controls.Add(this.txtY2);
+            this.layoutControl1.Controls.Add(this.txtZ2);
+            this.layoutControl1.Controls.Add(this.txtX3);
+            this.layoutControl1.Controls.Add(this.txtY3);
+            this.layoutControl1.Controls.Add(this.txtZ3);
+            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, 378);
+            this.layoutControl1.TabIndex = 0;
+            this.layoutControl1.Text = "layoutControl1";
+            // 
+            // btnOk
+            // 
+            this.btnOk.Location = new System.Drawing.Point(337, 296);
+            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);
+            // 
+            // Root
+            // 
+            this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+            this.Root.GroupBordersVisible = false;
+            this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] {
+            this.layoutControlItem5,
+            this.emptySpaceItem2,
+            this.layoutControlItem1,
+            this.layoutControlItem6,
+            this.layoutControlItem7,
+            this.emptySpaceItem3,
+            this.txtRes,
+            this.layoutControlItem2,
+            this.layoutControlItem3,
+            this.layoutControlItem4,
+            this.layoutControlItem8,
+            this.layoutControlItem9,
+            this.layoutControlItem10,
+            this.layoutControlItem11,
+            this.layoutControlItem12});
+            this.Root.Name = "Root";
+            this.Root.Padding = new DevExpress.XtraLayout.Utils.Padding(20, 20, 20, 20);
+            this.Root.Size = new System.Drawing.Size(475, 378);
+            this.Root.TextVisible = false;
+            // 
+            // layoutControlItem5
+            // 
+            this.layoutControlItem5.Control = this.btnOk;
+            this.layoutControlItem5.Location = new System.Drawing.Point(315, 274);
+            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;
+            // 
+            // emptySpaceItem2
+            // 
+            this.emptySpaceItem2.AllowHotTrack = false;
+            this.emptySpaceItem2.Location = new System.Drawing.Point(0, 250);
+            this.emptySpaceItem2.MaxSize = new System.Drawing.Size(0, 24);
+            this.emptySpaceItem2.MinSize = new System.Drawing.Size(104, 24);
+            this.emptySpaceItem2.Name = "emptySpaceItem2";
+            this.emptySpaceItem2.Size = new System.Drawing.Size(435, 24);
+            this.emptySpaceItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+            this.emptySpaceItem2.TextSize = new System.Drawing.Size(0, 0);
+            // 
+            // txtX1
+            // 
+            this.txtX1.EditValue = "-41891185.7993";
+            this.txtX1.Location = new System.Drawing.Point(22, 139);
+            this.txtX1.Name = "txtX1";
+            this.txtX1.Size = new System.Drawing.Size(141, 20);
+            this.txtX1.StyleController = this.layoutControl1;
+            this.txtX1.TabIndex = 9;
+            // 
+            // layoutControlItem1
+            // 
+            this.layoutControlItem1.Control = this.txtX1;
+            this.layoutControlItem1.Location = new System.Drawing.Point(0, 100);
+            this.layoutControlItem1.MaxSize = new System.Drawing.Size(0, 50);
+            this.layoutControlItem1.MinSize = new System.Drawing.Size(54, 50);
+            this.layoutControlItem1.Name = "layoutControlItem1";
+            this.layoutControlItem1.Size = new System.Drawing.Size(145, 50);
+            this.layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+            this.layoutControlItem1.Text = "主星坐标X";
+            this.layoutControlItem1.TextLocation = DevExpress.Utils.Locations.Top;
+            this.layoutControlItem1.TextSize = new System.Drawing.Size(63, 14);
+            // 
+            // txtY1
+            // 
+            this.txtY1.EditValue = "-2303482.9121";
+            this.txtY1.Location = new System.Drawing.Point(167, 139);
+            this.txtY1.Name = "txtY1";
+            this.txtY1.Size = new System.Drawing.Size(141, 20);
+            this.txtY1.StyleController = this.layoutControl1;
+            this.txtY1.TabIndex = 9;
+            // 
+            // layoutControlItem2
+            // 
+            this.layoutControlItem2.Control = this.txtY1;
+            this.layoutControlItem2.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+            this.layoutControlItem2.CustomizationFormText = "星历X";
+            this.layoutControlItem2.Location = new System.Drawing.Point(145, 100);
+            this.layoutControlItem2.MaxSize = new System.Drawing.Size(0, 50);
+            this.layoutControlItem2.MinSize = new System.Drawing.Size(54, 50);
+            this.layoutControlItem2.Name = "layoutControlItem2";
+            this.layoutControlItem2.Size = new System.Drawing.Size(145, 50);
+            this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+            this.layoutControlItem2.Text = "主星坐标Y";
+            this.layoutControlItem2.TextLocation = DevExpress.Utils.Locations.Top;
+            this.layoutControlItem2.TextSize = new System.Drawing.Size(63, 14);
+            // 
+            // txtZ1
+            // 
+            this.txtZ1.EditValue = "-1007186.7852";
+            this.txtZ1.Location = new System.Drawing.Point(312, 139);
+            this.txtZ1.Name = "txtZ1";
+            this.txtZ1.Size = new System.Drawing.Size(141, 20);
+            this.txtZ1.StyleController = this.layoutControl1;
+            this.txtZ1.TabIndex = 9;
+            // 
+            // layoutControlItem3
+            // 
+            this.layoutControlItem3.Control = this.txtZ1;
+            this.layoutControlItem3.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+            this.layoutControlItem3.CustomizationFormText = "星历X";
+            this.layoutControlItem3.Location = new System.Drawing.Point(290, 100);
+            this.layoutControlItem3.MaxSize = new System.Drawing.Size(0, 50);
+            this.layoutControlItem3.MinSize = new System.Drawing.Size(54, 50);
+            this.layoutControlItem3.Name = "layoutControlItem3";
+            this.layoutControlItem3.Size = new System.Drawing.Size(145, 50);
+            this.layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+            this.layoutControlItem3.Text = "主星坐标Z";
+            this.layoutControlItem3.TextLocation = DevExpress.Utils.Locations.Top;
+            this.layoutControlItem3.TextSize = new System.Drawing.Size(63, 14);
+            // 
+            // 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;
+            // 
+            // 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, 50);
+            this.layoutControlItem6.MinSize = new System.Drawing.Size(54, 50);
+            this.layoutControlItem6.Name = "layoutControlItem6";
+            this.layoutControlItem6.Size = new System.Drawing.Size(435, 50);
+            this.layoutControlItem6.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+            this.layoutControlItem6.Text = "目标位置";
+            this.layoutControlItem6.TextLocation = DevExpress.Utils.Locations.Top;
+            this.layoutControlItem6.TextSize = new System.Drawing.Size(63, 14);
+            // 
+            // txtRec
+            // 
+            this.txtRec.EditValue = "";
+            this.txtRec.Location = new System.Drawing.Point(22, 89);
+            this.txtRec.Name = "txtRec";
+            this.txtRec.Size = new System.Drawing.Size(431, 20);
+            this.txtRec.StyleController = this.layoutControl1;
+            this.txtRec.TabIndex = 9;
+            // 
+            // layoutControlItem7
+            // 
+            this.layoutControlItem7.Control = this.txtRec;
+            this.layoutControlItem7.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+            this.layoutControlItem7.CustomizationFormText = "星历X";
+            this.layoutControlItem7.Location = new System.Drawing.Point(0, 50);
+            this.layoutControlItem7.MaxSize = new System.Drawing.Size(0, 50);
+            this.layoutControlItem7.MinSize = new System.Drawing.Size(54, 50);
+            this.layoutControlItem7.Name = "layoutControlItem7";
+            this.layoutControlItem7.Size = new System.Drawing.Size(435, 50);
+            this.layoutControlItem7.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+            this.layoutControlItem7.Text = "接收站位置";
+            this.layoutControlItem7.TextLocation = DevExpress.Utils.Locations.Top;
+            this.layoutControlItem7.TextSize = new System.Drawing.Size(63, 14);
+            // 
+            // emptySpaceItem3
+            // 
+            this.emptySpaceItem3.AllowHotTrack = false;
+            this.emptySpaceItem3.Location = new System.Drawing.Point(0, 274);
+            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, 304);
+            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, 34);
+            this.txtRes.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+            this.txtRes.Text = " ";
+            this.txtRes.TextSize = new System.Drawing.Size(63, 14);
+            // 
+            // txtY2
+            // 
+            this.txtY2.EditValue = "17791981.2179";
+            this.txtY2.Location = new System.Drawing.Point(167, 189);
+            this.txtY2.Name = "txtY2";
+            this.txtY2.Size = new System.Drawing.Size(141, 20);
+            this.txtY2.StyleController = this.layoutControl1;
+            this.txtY2.TabIndex = 9;
+            // 
+            // txtX2
+            // 
+            this.txtX2.EditValue = "-38238754.6382";
+            this.txtX2.Location = new System.Drawing.Point(22, 189);
+            this.txtX2.Name = "txtX2";
+            this.txtX2.Size = new System.Drawing.Size(141, 20);
+            this.txtX2.StyleController = this.layoutControl1;
+            this.txtX2.TabIndex = 9;
+            // 
+            // txtZ2
+            // 
+            this.txtZ2.EditValue = "-21447.071";
+            this.txtZ2.Location = new System.Drawing.Point(312, 189);
+            this.txtZ2.Name = "txtZ2";
+            this.txtZ2.Size = new System.Drawing.Size(141, 20);
+            this.txtZ2.StyleController = this.layoutControl1;
+            this.txtZ2.TabIndex = 9;
+            // 
+            // layoutControlItem4
+            // 
+            this.layoutControlItem4.Control = this.txtX2;
+            this.layoutControlItem4.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+            this.layoutControlItem4.CustomizationFormText = "卫星1坐标X";
+            this.layoutControlItem4.Location = new System.Drawing.Point(0, 150);
+            this.layoutControlItem4.MaxSize = new System.Drawing.Size(0, 50);
+            this.layoutControlItem4.MinSize = new System.Drawing.Size(54, 50);
+            this.layoutControlItem4.Name = "layoutControlItem4";
+            this.layoutControlItem4.Size = new System.Drawing.Size(145, 50);
+            this.layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+            this.layoutControlItem4.Text = "邻1星坐标X";
+            this.layoutControlItem4.TextLocation = DevExpress.Utils.Locations.Top;
+            this.layoutControlItem4.TextSize = new System.Drawing.Size(63, 14);
+            // 
+            // layoutControlItem8
+            // 
+            this.layoutControlItem8.Control = this.txtY2;
+            this.layoutControlItem8.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+            this.layoutControlItem8.CustomizationFormText = "星历X";
+            this.layoutControlItem8.Location = new System.Drawing.Point(145, 150);
+            this.layoutControlItem8.MaxSize = new System.Drawing.Size(0, 50);
+            this.layoutControlItem8.MinSize = new System.Drawing.Size(54, 50);
+            this.layoutControlItem8.Name = "layoutControlItem8";
+            this.layoutControlItem8.Size = new System.Drawing.Size(145, 50);
+            this.layoutControlItem8.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+            this.layoutControlItem8.Text = "邻1星坐标Y";
+            this.layoutControlItem8.TextLocation = DevExpress.Utils.Locations.Top;
+            this.layoutControlItem8.TextSize = new System.Drawing.Size(63, 14);
+            // 
+            // layoutControlItem9
+            // 
+            this.layoutControlItem9.Control = this.txtZ2;
+            this.layoutControlItem9.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+            this.layoutControlItem9.CustomizationFormText = "星历X";
+            this.layoutControlItem9.Location = new System.Drawing.Point(290, 150);
+            this.layoutControlItem9.MaxSize = new System.Drawing.Size(0, 50);
+            this.layoutControlItem9.MinSize = new System.Drawing.Size(54, 50);
+            this.layoutControlItem9.Name = "layoutControlItem9";
+            this.layoutControlItem9.Size = new System.Drawing.Size(145, 50);
+            this.layoutControlItem9.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+            this.layoutControlItem9.Text = "邻1星坐标Z";
+            this.layoutControlItem9.TextLocation = DevExpress.Utils.Locations.Top;
+            this.layoutControlItem9.TextSize = new System.Drawing.Size(63, 14);
+            // 
+            // txtX3
+            // 
+            this.txtX3.EditValue = "4658230.4522";
+            this.txtX3.Location = new System.Drawing.Point(22, 239);
+            this.txtX3.Name = "txtX3";
+            this.txtX3.Size = new System.Drawing.Size(141, 20);
+            this.txtX3.StyleController = this.layoutControl1;
+            this.txtX3.TabIndex = 9;
+            // 
+            // txtY3
+            // 
+            this.txtY3.EditValue = "41911093.1893";
+            this.txtY3.Location = new System.Drawing.Point(167, 239);
+            this.txtY3.Name = "txtY3";
+            this.txtY3.Size = new System.Drawing.Size(141, 20);
+            this.txtY3.StyleController = this.layoutControl1;
+            this.txtY3.TabIndex = 9;
+            // 
+            // txtZ3
+            // 
+            this.txtZ3.EditValue = "-32337.1851";
+            this.txtZ3.Location = new System.Drawing.Point(312, 239);
+            this.txtZ3.Name = "txtZ3";
+            this.txtZ3.Size = new System.Drawing.Size(141, 20);
+            this.txtZ3.StyleController = this.layoutControl1;
+            this.txtZ3.TabIndex = 9;
+            // 
+            // layoutControlItem10
+            // 
+            this.layoutControlItem10.Control = this.txtX3;
+            this.layoutControlItem10.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+            this.layoutControlItem10.CustomizationFormText = "卫星1坐标X";
+            this.layoutControlItem10.Location = new System.Drawing.Point(0, 200);
+            this.layoutControlItem10.MaxSize = new System.Drawing.Size(0, 50);
+            this.layoutControlItem10.MinSize = new System.Drawing.Size(54, 50);
+            this.layoutControlItem10.Name = "layoutControlItem10";
+            this.layoutControlItem10.Size = new System.Drawing.Size(145, 50);
+            this.layoutControlItem10.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+            this.layoutControlItem10.Text = "邻2星坐标X";
+            this.layoutControlItem10.TextLocation = DevExpress.Utils.Locations.Top;
+            this.layoutControlItem10.TextSize = new System.Drawing.Size(63, 14);
+            // 
+            // layoutControlItem11
+            // 
+            this.layoutControlItem11.Control = this.txtY3;
+            this.layoutControlItem11.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+            this.layoutControlItem11.CustomizationFormText = "星历X";
+            this.layoutControlItem11.Location = new System.Drawing.Point(145, 200);
+            this.layoutControlItem11.MaxSize = new System.Drawing.Size(0, 50);
+            this.layoutControlItem11.MinSize = new System.Drawing.Size(54, 50);
+            this.layoutControlItem11.Name = "layoutControlItem11";
+            this.layoutControlItem11.Size = new System.Drawing.Size(145, 50);
+            this.layoutControlItem11.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+            this.layoutControlItem11.Text = "邻2星坐标Y";
+            this.layoutControlItem11.TextLocation = DevExpress.Utils.Locations.Top;
+            this.layoutControlItem11.TextSize = new System.Drawing.Size(63, 14);
+            // 
+            // layoutControlItem12
+            // 
+            this.layoutControlItem12.Control = this.txtZ3;
+            this.layoutControlItem12.ControlAlignment = System.Drawing.ContentAlignment.TopLeft;
+            this.layoutControlItem12.CustomizationFormText = "星历X";
+            this.layoutControlItem12.Location = new System.Drawing.Point(290, 200);
+            this.layoutControlItem12.MaxSize = new System.Drawing.Size(0, 50);
+            this.layoutControlItem12.MinSize = new System.Drawing.Size(54, 50);
+            this.layoutControlItem12.Name = "layoutControlItem12";
+            this.layoutControlItem12.Size = new System.Drawing.Size(145, 50);
+            this.layoutControlItem12.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+            this.layoutControlItem12.Text = "邻2星坐标Z";
+            this.layoutControlItem12.TextLocation = DevExpress.Utils.Locations.Top;
+            this.layoutControlItem12.TextSize = new System.Drawing.Size(63, 14);
+            // 
+            // TarDtoDfoCalc
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(475, 378);
+            this.Controls.Add(this.layoutControl1);
+            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
+            this.Name = "TarDtoDfoCalc";
+            this.Text = "时差预测";
+            this.Load += new System.EventHandler(this.SatEditor_Load);
+            ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit();
+            this.layoutControl1.ResumeLayout(false);
+            ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtX1.Properties)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtY1.Properties)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtZ1.Properties)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtTar.Properties)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtRec.Properties)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem3)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtRes)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtY2.Properties)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtX2.Properties)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtZ2.Properties)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtX3.Properties)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtY3.Properties)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.txtZ3.Properties)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem11)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).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.XtraLayout.EmptySpaceItem emptySpaceItem2;
+        private DevExpress.XtraEditors.TextEdit txtX1;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+        private DevExpress.XtraEditors.TextEdit txtY1;
+        private DevExpress.XtraEditors.TextEdit txtZ1;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+        private DevExpress.XtraEditors.TextEdit txtTar;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
+        private DevExpress.XtraEditors.TextEdit txtRec;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7;
+        private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem3;
+        private DevExpress.XtraLayout.SimpleLabelItem txtRes;
+        private DevExpress.XtraEditors.TextEdit txtX2;
+        private DevExpress.XtraEditors.TextEdit txtY2;
+        private DevExpress.XtraEditors.TextEdit txtZ2;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem8;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem9;
+        private DevExpress.XtraEditors.TextEdit txtX3;
+        private DevExpress.XtraEditors.TextEdit txtY3;
+        private DevExpress.XtraEditors.TextEdit txtZ3;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem10;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem11;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem12;
+    }
+}

+ 93 - 0
XdCxRhDW.App/EditForms/TarDtoDfoCalc.cs

@@ -0,0 +1,93 @@
+using DevExpress.XtraEditors;
+using ExtensionsDev;
+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.Documents;
+using System.Windows.Forms;
+using XdCxRhDW.Entity;
+using XdCxRhDW.Repostory;
+
+namespace XdCxRhDW.App.EditForms
+{
+    public partial class TarDtoDfoCalc : DevExpress.XtraEditors.XtraForm
+    {
+        public TarDtoDfoCalc()
+        {
+            InitializeComponent();
+            this.layoutControl1.UseDefault();
+            this.StartPosition = FormStartPosition.CenterParent;
+        }
+        public TarDtoDfoCalc(double lon, double lat)
+            : this()
+        {
+            this.txtTar.Text = $"{lon:f3},{lat:f3}";
+        }
+        private async void SatEditor_Load(object sender, EventArgs e)
+        {
+            try
+            {
+                using (RHDWContext db = new RHDWContext())
+                {
+                    var rec = await db.TxInfos.Where(p => p.TxType == EnumTxType.Rec).FirstOrDefaultAsync();
+                    this.txtRec.Text = $"{rec.Lon},{rec.Lat}";
+                }
+            }
+            catch (Exception ex)
+            {
+                await LogHelper.Error("查询接收站信息出错", ex);
+                DxHelper.MsgBoxHelper.ShowError("查询接收站信息出错");
+            }
+        }
+
+
+        private async void btnOk_Click(object sender, EventArgs e)
+        {
+            try
+            {
+                double x = Convert.ToDouble(txtX1.Text);
+                double y = Convert.ToDouble(txtY1.Text);
+                double z = Convert.ToDouble(txtZ1.Text);
+                var strTar = txtTar.Text.Replace(",", ",");
+                var strRec = txtRec.Text.Replace(",", ",");
+                double lon = Convert.ToDouble(strTar.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)[0]);
+                double lat = Convert.ToDouble(strTar.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)[1]);
+                double recLon = Convert.ToDouble(strRec.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)[0]);
+                double recLat = Convert.ToDouble(strRec.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)[1]);
+                var tarEcef = PhysicsHelper.GeoToEcef((lon, lat, 0));
+                var recEcef = PhysicsHelper.GeoToEcef((recLon, recLat, 0));
+                var xlEcef1 = (Convert.ToDouble(txtX1.Text.Trim()), Convert.ToDouble(txtY1.Text.Trim()), Convert.ToDouble(txtZ1.Text.Trim()));
+                var x2Ecef1 = (Convert.ToDouble(txtX2.Text.Trim()), Convert.ToDouble(txtY2.Text.Trim()), Convert.ToDouble(txtZ2.Text.Trim()));
+                double x3 = 0, y3 = 0, z3 = 0;
+                if (!string.IsNullOrWhiteSpace(txtX3.Text))
+                {
+                    x3 = Convert.ToDouble(txtX3.Text.Trim());
+                    y3 = Convert.ToDouble(txtY3.Text.Trim());
+                    z3 = Convert.ToDouble(txtZ3.Text.Trim());
+                }
+                var dt1 = PhysicsHelper.Dto(tarEcef, xlEcef1, recEcef);
+                var dt2 = PhysicsHelper.Dto(tarEcef, x2Ecef1, recEcef);
+                if (x3 != 0)
+                {
+                    var dt3 = PhysicsHelper.Dto(tarEcef, (x3, y3, z3), recEcef);
+                    this.txtRes.Text = $"主邻1时差预测值:{dt1 * 1e6 - dt2 * 1e6:f3}us  主邻2时差预测值:{dt1 * 1e6 - dt3 * 1e6:f3}us";
+                }
+                else
+                {
+                    this.txtRes.Text = $"主邻1时差预测值:{dt1 * 1e6 - dt2 * 1e6:f3}us";
+                }
+            }
+            catch (Exception ex)
+            {
+                await LogHelper.Error("时差预测出错", ex);
+                DxHelper.MsgBoxHelper.ShowError("时差预测出错");
+            }
+        }
+    }
+}

+ 120 - 0
XdCxRhDW.App/EditForms/TarDtoDfoCalc.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>

+ 0 - 1
XdCxRhDW.App/MainForm.Designer.cs

@@ -28,7 +28,6 @@
         /// </summary>
         private void InitializeComponent()
         {
-            this.components = new System.ComponentModel.Container();
             this.components = new System.ComponentModel.Container();
             System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
             DevExpress.Utils.SuperToolTip superToolTip2 = new DevExpress.Utils.SuperToolTip();

+ 4 - 4
XdCxRhDW.App/Service/FileWriterService.cs

@@ -37,8 +37,8 @@ namespace XdCxRhDW.App.Service
             sb.Append($"{posDto.SigTime:fff}\t");
             sb.Append($"{posDto.SigTimeLenMs:D4}\t");//信号持续时间ms
             sb.Append($"{Convert.ToInt64(posDto.FreqDownMHz * 1e6):D12}\t");//下行频点
-            sb.Append($"{Convert.ToInt64(posDto.FreqDownMHz * 1e6):D12}\t");//上行频点
-            sb.Append($"{GetSignalType(posDto.SigModType)}\t");//信号样式(暂定有这些1:CPM,2:BPSK,4:QPSK,9:其它),
+            sb.Append($"{Convert.ToInt64(posDto.FreqUpMHz * 1e6):D12}\t");//上行频点
+            sb.Append($"{GetSignalType(posDto.SigModType)}\t");//信号样式(0:未知	1:CPM	2:BPSK	4:QPSK),
             sb.Append($"{0:D4}\t");//目标序号
             sb.Append($"res\t");
             sb.Append($"{Convert.ToInt64(posDto.PosLon * 1e6):D10}\t");
@@ -85,8 +85,8 @@ namespace XdCxRhDW.App.Service
         private int GetSignalType(string modTypestr)
         {
             EnumSignalTypeDto modType = modTypestr.GetEnumByDisplayName<EnumSignalTypeDto>();
-            //1:CPM,2:BPSK,4:QPSK,9:其他
-            int signalType = 9;
+            //0:未知   1:CPM   2:BPSK  4:QPSK
+            int signalType = 0;
             if (modType == EnumSignalTypeDto.BPSK)
             {
                 signalType = 2;

+ 6 - 1
XdCxRhDW.App/UserControl/CtrlHome.cs

@@ -112,7 +112,12 @@ namespace XdCxRhDW.App.UserControl
            .UseMarkDot()
            .UseTrack()
            .UseExportImg()
-           .UseExportXlsx();
+           .UseExportXlsx()
+           .AddMapMenu("时差预测", SvgHelper.CreateCxLine(), (lon, lat) =>
+           {
+               TarDtoDfoCalc frm = new TarDtoDfoCalc(lon, lat);
+               frm.ShowDialog();
+           });
             if (ConfigurationManager.AppSettings["UseMapCluster"] != null
                 && ConfigurationManager.AppSettings["UseMapCluster"].Trim().ToLower() != "0"
                  && ConfigurationManager.AppSettings["UseMapCluster"].Trim().ToLower() != "false")

+ 9 - 0
XdCxRhDW.App/XdCxRhDW.App.csproj

@@ -200,6 +200,12 @@
     <Compile Include="DxHelper\PopupHelper.cs" />
     <Compile Include="DxHelper\SvgHelper.cs" />
     <Compile Include="DxHelper\WaitHelper.cs" />
+    <Compile Include="EditForms\TarDtoDfoCalc.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="EditForms\TarDtoDfoCalc.Designer.cs">
+      <DependentUpon>TarDtoDfoCalc.cs</DependentUpon>
+    </Compile>
     <Compile Include="EditForms\SignalEmulation.cs">
       <SubType>Form</SubType>
     </Compile>
@@ -485,6 +491,9 @@
     <EmbeddedResource Include="CorTools\XlCalculateForm.resx">
       <DependentUpon>XlCalculateForm.cs</DependentUpon>
     </EmbeddedResource>
+    <EmbeddedResource Include="EditForms\TarDtoDfoCalc.resx">
+      <DependentUpon>TarDtoDfoCalc.cs</DependentUpon>
+    </EmbeddedResource>
     <EmbeddedResource Include="EditForms\SignalEmulation.resx">
       <DependentUpon>SignalEmulation.cs</DependentUpon>
     </EmbeddedResource>