Преглед на файлове

Merge branch 'master' of http://139.155.15.221:3000/zoulei/XdCxRhDW

gongqiuhong преди 1 година
родител
ревизия
cf2054ad00

+ 6 - 3
XdCxRhDW.App/Api/频差线/DfoLineModel.cs

@@ -17,6 +17,9 @@ namespace XdCxRhDW.App.Api
         /// </summary>
         public double Lat { get; set; }
     }
+    /// <summary>
+    /// 高轨双星频差参数
+    /// </summary>
     public class DfoLineTwoStartOption
     {
         /// <summary>
@@ -24,12 +27,12 @@ namespace XdCxRhDW.App.Api
         /// </summary>
         public double Freq { get; set; }
         /// <summary>
-        /// 主星接收站
+        /// 主星接收站 2
         /// </summary>
         public double[] MsAnt { get; set; }
 
         /// <summary>
-        /// 邻星接收站
+        /// 邻星接收站 2
         /// </summary>
         public double[] NsAnt { get; set; }
 
@@ -44,7 +47,7 @@ namespace XdCxRhDW.App.Api
         public double[] NsEph { get; set; }
 
         /// <summary>
-        /// 参考站位置
+        /// 参考站位置 2
         /// </summary>
         public double[] RefGeod { get; set; }
 

+ 2 - 2
XdCxRhDW.App/Api/频差线/DrawDfoLineHelper.cs

@@ -43,7 +43,7 @@ namespace XdCxRhDW.App.Api
             arguments.Add($"--eph1 {opt.MsEph[0]} {opt.MsEph[1]} {opt.MsEph[2]} {opt.MsEph[3]} {opt.MsEph[4]} {opt.MsEph[5]}");
             arguments.Add($"--eph1 {opt.NsEph[0]} {opt.NsEph[1]} {opt.NsEph[2]} {opt.NsEph[3]} {opt.NsEph[4]} {opt.NsEph[5]}");
             arguments.Add($"--refdf {opt.RefDfo}");
-            arguments.Add($"--reffreq {opt.RefFreq}");
+            arguments.Add($"--reffreq {opt.RefFreq * 1e6}");
 
             arguments.Add($"--reflla {opt.RefGeod[0]} {opt.RefGeod[0]} 0");
             Process p = new Process();
@@ -63,7 +63,7 @@ namespace XdCxRhDW.App.Api
             string result = p.StandardOutput.ReadToEnd();
             if (string.IsNullOrWhiteSpace(result))
             {
-                throw new Exception("计算差线出现未知错误!");
+                throw new Exception("计算差线出现未知错误!");
             }
             var array = result.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
             if (array[0] == "1")

+ 1 - 1
XdCxRhDW.App/UserControl/CtrlCgRes.cs

@@ -32,11 +32,11 @@ namespace XdCxRhDW.App.UserControl
             try
             {
                 gridCg.Init().UseSort().UseFilter().UseMultiSelect().UseRowNumber();
-                gridView1.Columns["SigTime"].SortOrder = ColumnSortOrder.Descending;
                 using (RHDWContext db = new RHDWContext())
                 {
                     gridCg.DataSource = await db.CgRes.OrderByDescending(p => p.SigTime).ToListAsync();
                 }
+                gridView1.Columns["SigTime"].SortOrder = ColumnSortOrder.Descending;
             }
             catch (Exception ex)
             {

+ 20 - 16
XdCxRhDW.App/UserControl/CtrlHome.cs

@@ -26,7 +26,6 @@ using XdCxRhDW.App.EFContext;
 using XdCxRhDW.App.Model;
 using System.Windows.Documents;
 using XdCxRhDW.App.ObServer;
-
 namespace XdCxRhDW.App.UserControl
 {
     public partial class CtrlHome : DevExpress.XtraEditors.XtraUserControl
@@ -302,13 +301,19 @@ namespace XdCxRhDW.App.UserControl
             switch (posRes.Item2)
             {
                 case EnumPosType.X1D1CX:
-                    btnGDOP.Visibility = DevExpress.XtraBars.BarItemVisibility.Never;
+                    //一星一地 测向线
+                    btnDrawDfo.Visibility = btnGDOP.Visibility = DevExpress.XtraBars.BarItemVisibility.Never;
+                    btnDrawCX.Visibility = DevExpress.XtraBars.BarItemVisibility.Always;
                     break;
                 case EnumPosType.X2D1:
+                    //两星一地 GDOP 时差线
                     btnGDOP.Visibility = DevExpress.XtraBars.BarItemVisibility.Always;
+                    btnDrawCX.Visibility = btnDrawDfo.Visibility = DevExpress.XtraBars.BarItemVisibility.Never;
                     break;
                 case EnumPosType.RH:
-                    btnGDOP.Visibility = DevExpress.XtraBars.BarItemVisibility.Always;
+                    //融合DW GDOP 时差线 测向线
+                    btnDrawCX.Visibility = btnGDOP.Visibility = DevExpress.XtraBars.BarItemVisibility.Always;
+                    btnDrawDfo.Visibility = DevExpress.XtraBars.BarItemVisibility.Never;
                     break;
                 default:
                     break;
@@ -762,8 +767,6 @@ namespace XdCxRhDW.App.UserControl
         }
         private void DrawDfoLine(PosRes item, EnumPosType posType)
         {
-            DxHelper.MsgBoxHelper.ShowWarning($"未实现绘制频差线!");
-            return;
             switch (posType)
             {
                 case EnumPosType.X1D1CX:
@@ -798,7 +801,6 @@ namespace XdCxRhDW.App.UserControl
                     DxHelper.MsgBoxHelper.ShowWarning($"未找到定位相关的计算[{item.CgResID}]信息");
                     return;
                 }
-
                 var satTx = listTx.Find(p => p.TxType == EnumTxType.MainSat);
                 if (satTx == null)
                 {
@@ -826,17 +828,19 @@ namespace XdCxRhDW.App.UserControl
                 if (posType == EnumPosType.X2D1)
                 {
                     DfoLineTwoStartOption twoStartOption = new DfoLineTwoStartOption();
-                    twoStartOption.MsEph = new double[] { cg.MainX.Value, cg.MainY.Value, cg.MainZ.Value, 0, 0, 0 };
-                    twoStartOption.NsEph = new double[] { cg.Adja1X.Value, cg.Adja1Y.Value, cg.Adja1Z.Value, 0, 0, 0 };
-                    twoStartOption.MsAnt = new double[] { satTx.Lon, satTx.Lat, 0 };
-                    twoStartOption.NsAnt = new double[] { satNTx.Lon, satNTx.Lat, 0 };
-                    twoStartOption.RefGeod = new double[] { refTx.Lon, refTx.Lat, 0 };
-                    //twoStartOption.TargetDto = cg.DtoSx;
-                    //twoStartOption.RefDto = cg.YbMain - cg.YbAdja;
-                    //twoStartOption.PosLon = item.PosLon;
-                    //twoStartOption.PosLat = item.PosLat;
+                    twoStartOption.Freq = cg.TarFreqUp.HasValue ? cg.TarFreqUp.Value : 0;
+                    twoStartOption.RefFreq = cg.RefFreqUp.HasValue ? cg.RefFreqUp.Value : 0;
+                    twoStartOption.MsEph = new double[] { cg.MainX.Value, cg.MainY.Value, cg.MainZ.Value, cg.MainVx.Value, cg.MainVy.Value, cg.MainVz.Value };
+                    twoStartOption.NsEph = new double[] { cg.Adja1X.Value, cg.Adja1Y.Value, cg.Adja1Z.Value, cg.Adja1Vx.Value, cg.Adja1Vy.Value, cg.Adja1Vz.Value };
+                    twoStartOption.MsAnt = new double[] { satTx.Lon, satTx.Lat };
+                    twoStartOption.NsAnt = new double[] { satNTx.Lon, satNTx.Lat };
+                    twoStartOption.RefGeod = new double[] { refTx.Lon, refTx.Lat };
+                    twoStartOption.TargetDfo = cg.Dfo1.Value;
+                    twoStartOption.Turn1 = Math.Abs(twoStartOption.Freq - (cg.TarFreqDown.HasValue ? cg.TarFreqDown.Value : 0));
+                    twoStartOption.Turn2 = Math.Abs(twoStartOption.RefFreq - (cg.RefFreqDown.HasValue ? cg.RefFreqDown.Value : 0));
+                    twoStartOption.RefDfo = cg.YbMainDfo.Value - cg.YbAdja1Dfo.Value;
                     var tsDtoLine = DrawDfoLineHelper.DtfoLineTwoStart(twoStartOption);
-                    mapControl1.DrawDtoPonit($"双星[{listSat.FirstOrDefault(m => m.ID == satTx.ID)?.Sat},{listSat.FirstOrDefault(m => m.ID == satNTx.ID)?.Sat}]时差线", tsDtoLine);
+                    mapControl1.DrawDtoPonit($"双星[{listSat.FirstOrDefault(m => m.ID == satTx.ID)?.Sat},{listSat.FirstOrDefault(m => m.ID == satNTx.ID)?.Sat}]差线", tsDtoLine);
                 }
             }
             catch (Exception ex)