wyq před 1 rokem
rodič
revize
870b6e4062

+ 2 - 7
XdCxRhDW.Api/AddIns/GDOP误差椭圆/TheoryDtoDfoApi.cs

@@ -30,12 +30,6 @@ namespace XdCxRhDW.Api
 
         public static EnumTargetState TheoryDfo(CgRes cRes, StationRes sRes, PosRes posRes, int YDPZThreshold)
         {
-            cRes.MainVx = 1;
-            cRes.MainVy = 2;
-            cRes.MainVz = 3;
-            cRes.Adja1Vx = 3;
-            cRes.Adja1Vy = 3;
-            cRes.Adja1Vz = 3;
             //张老板说理论频差如果和参估计算出来的频差差值比较大,就说明目标在运动(多路参估每一路都要比较,有一路判定运动则为运动)
             //?具体多少差异需要确定一下
             //主邻星本振不一样时该怎么计算
@@ -48,7 +42,7 @@ namespace XdCxRhDW.Api
 
             if (posRes.PosResType == EnumPosResType.X2D1 || posRes.PosResType == EnumPosResType.X2D1NoRef || posRes.PosResType == EnumPosResType.RH)
             {
-                if (cRes.Dfo1 == null) return EnumTargetState.Unknown;
+                if (cRes.Dfo1 == null || cRes.Adja1Vx == null || cRes.Adja1Vy == null || cRes.Adja1Vz == null) return EnumTargetState.Unknown;
                 var xlAdja1 = new double[6] { cRes.Adja1X.Value, cRes.Adja1Y.Value, cRes.Adja1Z.Value, cRes.Adja1Vx.Value, cRes.Adja1Vy.Value, cRes.Adja1Vz.Value };
                 double res = TheoryDfo(target, rec, rec, xlMain, xlAdja1, cRes.TarFreqUp.Value, cRes.TarFreqDown.Value);
                 var val = Math.Abs(res - cRes.Dfo1.Value);
@@ -77,6 +71,7 @@ namespace XdCxRhDW.Api
             else if (posRes.PosResType == EnumPosResType.X3 || posRes.PosResType == EnumPosResType.X3NoRef || posRes.PosResType == EnumPosResType.X3TwoDfo)
             {
                 if (cRes.Dfo1 == null && cRes.Dfo2 == null) return EnumTargetState.Unknown;
+                if (cRes.Adja1Vx == null || cRes.Adja1Vy == null || cRes.Adja1Vz == null) return EnumTargetState.Unknown;
                 if (cRes.Dfo1 != null)
                 {
                     var xlAdja1 = new double[6] { cRes.Adja1X.Value, cRes.Adja1Y.Value, cRes.Adja1Z.Value, cRes.Adja1Vx.Value, cRes.Adja1Vy.Value, cRes.Adja1Vz.Value };