Browse Source

低-SX测试

zhangzhiming 1 year ago
parent
commit
ae373e4781
2 changed files with 77 additions and 43 deletions
  1. 6 6
      XzXdDw.App/Api/PosApi.cs
  2. 71 37
      XzXdDw.App/UserControl/CtrlPosXz.cs

+ 6 - 6
XzXdDw.App/Api/PosApi.cs

@@ -37,7 +37,7 @@ namespace XzXdDw.App.Api
         /// <param name="fu2"></param>
         /// <param name="target_llh"></param>
         [DllImport(gzdw, EntryPoint = "TwoStar_DTFO_DW", CallingConvention = CallingConvention.Cdecl)]
-        private extern static void TwoStar_DTFO_DW(double[] main_sat, double[] neigh_sat, double[] Ref_Station_LLH
+        public extern static void TwoStar_DTFO_DW(double[] main_sat, double[] neigh_sat, double[] Ref_Station_LLH
             , double[] Zone, double target_dto, double target_dfo,
         double ref_dto, double ref_dfo, double fu1, double fu2, double[] target_llh);
 
@@ -53,7 +53,7 @@ namespace XzXdDw.App.Api
         /// <param name="fu"></param>
         /// <param name="target_llh"></param>
         [DllImport(gzdw, EntryPoint = "SingleStar_DFO_DW", CallingConvention = CallingConvention.Cdecl)]//两星一地
-        private extern static void SingleStar_DFO_DW(double[] main_sat, double[] neigh_sat1, double[] neigh_sat2
+        public extern static void SingleStar_DFO_DW(double[] main_sat, double[] neigh_sat1, double[] neigh_sat2
             , double[] Zone, double target_dfo1, double target_dfo2, double fu, double[] target_llh);
 
         /// <summary>
@@ -69,7 +69,7 @@ namespace XzXdDw.App.Api
         /// <param name="LOP_Len"></param>
         [DllImport(gzdw, EntryPoint = "TwoStar_SCX", CallingConvention = CallingConvention.Cdecl)]//两星一地
         public extern static void TwoStar_SCX(double[] main_sat_pos, double[] neigh_sat_pos, double[] ref_pos, double[] Zone,
-        double target_dto, double ref_dto, out IntPtr LOP_Value,ref int LOP_Len);
+        double target_dto, double ref_dto, out IntPtr LOP_Value, ref int LOP_Len);
 
         /// <summary>
         /// 地轨双星频差线
@@ -85,8 +85,8 @@ namespace XzXdDw.App.Api
         /// <param name="LOP_Value"></param>
         /// <param name="LOP_Len"></param>
         [DllImport(gzdw, EntryPoint = "TwoStar_PCX", CallingConvention = CallingConvention.Cdecl)]//两星一地
-        private extern static void TwoStar_PCX(double[] main_sat, double[] neigh_sat, double[] ref_pos,
-        double[] Zone, double target_dfo, double ref_dfo, double fu1, double fu2, IntPtr LOP_Value, int[] LOP_Len);
+        public extern static void TwoStar_PCX(double[] main_sat, double[] neigh_sat, double[] ref_pos,
+            double[] Zone, double target_dfo, double ref_dfo, double fu1, double fu2, IntPtr LOP_Value, int[] LOP_Len);
 
         /// <summary>
         /// 单星频差线
@@ -99,7 +99,7 @@ namespace XzXdDw.App.Api
         /// <param name="LOP_Value"></param>
         /// <param name="LOP_Len"></param>
         [DllImport(gzdw, EntryPoint = "SingleStar_PCX", CallingConvention = CallingConvention.Cdecl)]//两星一地
-        private extern static void SingleStar_PCX(double[] main_sat, double[] neigh_sat
+        public extern static void SingleStar_PCX(double[] main_sat, double[] neigh_sat
             , double[] Zone, double target_dfo, double fu, IntPtr LOP_Value, int[] LOP_Len);
         #endregion
 

+ 71 - 37
XzXdDw.App/UserControl/CtrlPosXz.cs

@@ -147,6 +147,8 @@ namespace XzXdDw.App.UserControl
         {
             stoped = false;
 
+         
+
             //在列表控件中全选+右键可以删除所有测试结果
             using (RHDWContext db = new RHDWContext())
             {
@@ -156,48 +158,80 @@ namespace XzXdDw.App.UserControl
                 foreach (var item in lines)
                 {
                     if (stoped) break;
-                    var items = item.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
-                    var sxDto = Convert.ToDouble(items[0]);
-                    var xdDto = Convert.ToDouble(items[1]);
-                    var mainYbDto = Convert.ToDouble(items[2]);
-                    var adjaYbDto = Convert.ToDouble(items[3]);
-                    var mainX = Convert.ToDouble(items[7]);
-                    var mainY = Convert.ToDouble(items[8]);
-                    var mainZ = Convert.ToDouble(items[9]);
-                    var adjaX = Convert.ToDouble(items[10]);
-                    var adjaY = Convert.ToDouble(items[11]);
-                    var adjaZ = Convert.ToDouble(items[12]);
-                    var cgRes = new CgRes()
-                    {
-                        SigTime = DateTime.Now,
-                        DtoSx = sxDto * 1e6,
-                        DfoSx = 200 + r.Next(1, 5) + Math.Round(r.NextDouble(), 3),
-                        SnrSx = r.Next(18, 24) + Math.Round(r.NextDouble(), 1),
-                        DtoCdb = xdDto * 1e6,
-                        DfoCdb = 600 + r.Next(1, 5) + Math.Round(r.NextDouble(), 3),
-                        SnrCdb = r.Next(22, 32) + Math.Round(r.NextDouble(), 1),
-                        YbMain = mainYbDto * 1e6,
-                        YbAdja = adjaYbDto * 1e6,
-                        MainX = mainX,
-                        MainY = mainY,
-                        MainZ = mainZ,
-                        AdjaX = adjaX,
-                        AdjaY = adjaY,
-                        AdjaZ = adjaZ,
-                    };
-                    db.CgRes.Add(cgRes);//参估结果入库
+                    //var items = item.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
+                    //var sxDto = Convert.ToDouble(items[0]);
+                    //var xdDto = Convert.ToDouble(items[1]);
+                    //var mainYbDto = Convert.ToDouble(items[2]);
+                    //var adjaYbDto = Convert.ToDouble(items[3]);
+                    //var mainX = Convert.ToDouble(items[7]);
+                    //var mainY = Convert.ToDouble(items[8]);
+                    //var mainZ = Convert.ToDouble(items[9]);
+                    //var adjaX = Convert.ToDouble(items[10]);
+                    //var adjaY = Convert.ToDouble(items[11]);
+                    //var adjaZ = Convert.ToDouble(items[12]);
+                    //var cgRes = new CgRes()
+                    //{
+                    //    SigTime = DateTime.Now,
+                    //    DtoSx = sxDto * 1e6,
+                    //    DfoSx = 200 + r.Next(1, 5) + Math.Round(r.NextDouble(), 3),
+                    //    SnrSx = r.Next(18, 24) + Math.Round(r.NextDouble(), 1),
+                    //    DtoCdb = xdDto * 1e6,
+                    //    DfoCdb = 600 + r.Next(1, 5) + Math.Round(r.NextDouble(), 3),
+                    //    SnrCdb = r.Next(22, 32) + Math.Round(r.NextDouble(), 1),
+                    //    YbMain = mainYbDto * 1e6,
+                    //    YbAdja = adjaYbDto * 1e6,
+                    //    MainX = mainX,
+                    //    MainY = mainY,
+                    //    MainZ = mainZ,
+                    //    AdjaX = adjaX,
+                    //    AdjaY = adjaY,
+                    //    AdjaZ = adjaZ,
+                    //};
+                    //db.CgRes.Add(cgRes);//参估结果入库
+
+                    //var res = PosApi.X2D1_POS(cgRes, listTx);
+                    //PosRes posRes = new PosRes()
+                    //{
+                    //    SigTime = cgRes.SigTime,
+                    //    CgResID = cgRes.ID,
+                    //    TarName = "未知目标",
+                    //    TsName = "tar2",
+                    //    PosLon = res[0],
+                    //    PosLat = res[1],
+                    //    MirrLon = res[3],
+                    //    MirrLat = res[4],
+                    //};
+                    //db.PosRes.Add(posRes);//定位结果入库
+
+                    double[] main_sat = { -1608409.905, 5994264.071, 3139843.443, -6633.016931, -374.023436, -2678.158046 };
+                    double[] neigh_sat = { -4629566.829, 4978943.601, 1487242.596, -4890.245126, -3337.702797, -4031.339975 };
+                    double[] Ref_Station_LLH = { 112.33, 16.3, 0 };
+                    double[] Zone = { -80, 80, -150, 150 };
+
+                    double target_dto = -0.010246009710722;
+                    double target_dfo = 1.595360344349182e+03;
+
+                    double ref_dto = 0.002823291225258;
+                    double ref_dfo = 1.132007974492508e+04;
+
+                    double fu1 = 3.1085e8;
+                    double fu2 = 2.95e8;
+
+
+                    double[] target_llh = new double[6];
+
+                    PosApi.TwoStar_DTFO_DW(main_sat, neigh_sat, Ref_Station_LLH, Zone, target_dto, target_dfo, ref_dto, ref_dfo, fu1, fu2, target_llh);
 
-                    var res = PosApi.X2D1_POS(cgRes, listTx);
                     PosRes posRes = new PosRes()
                     {
-                        SigTime = cgRes.SigTime,
-                        CgResID = cgRes.ID,
+                        SigTime = DateTime.Now,
+                        CgResID = 1,
                         TarName = "未知目标",
                         TsName = "tar2",
-                        PosLon = res[0],
-                        PosLat = res[1],
-                        MirrLon = res[3],
-                        MirrLat = res[4],
+                        PosLon = target_llh[0],
+                        PosLat = target_llh[1],
+                        MirrLon = target_llh[3],
+                        MirrLat = target_llh[4],
                     };
                     db.PosRes.Add(posRes);//定位结果入库