Exemple #1
0
        public AzimuthCell ModifyOriginalData(AzimuthCell originalData)
        {
            originalData.DisCells.Clear();

            DistanceCell cell1 = new DistanceCell
            {
                az    = originalData.Angle,
                index = 100,
                el    = 10,
                sumAM = 100000
            };

            //double height = Math.Sin(Tools.DegreeToRadian(cell1.el)) * cell1.Distance;

            DistanceCell cell2 = new DistanceCell
            {
                az    = originalData.Angle,
                index = 200,
                el    = 15,
                sumAM = 100000
            };

            originalData.DisCells.Add(100, cell1);
            originalData.DisCells.Add(200, cell2);
            return(originalData);
        }
        public void CalElTest()
        {
            byte   input  = 0x32;
            double expect = 3.14;

            Assert.AreEqual(DistanceCell.CalEl(input), expect);
        }
        public bool IsDistanceCellAdjacentDistanceWise(DistanceCell cell)
        {
            foreach (DistanceCell distanceCell in Cells)
            {
                if (Math.Abs(distanceCell.Distance - cell.Distance) < 4)
                {
                    return(true);
                }
            }

            return(false);
        }
Exemple #4
0
 protected void ShowOriginalVideo(Sector center, Sector right, Sector left, AzimuthCell[] cells)
 {
     foreach (AzimuthCell cell in cells)
     {
         foreach (object o in cell.DisCells.Values)
         {
             if (center.IsAngleInArea(cell.GetAngle()))
             {
                 DistanceCell dis = (DistanceCell)o;
                 TargetDot    dot = new TargetDot(cell.GetAngle(), dis.el, dis.Distance)
                 {
                     AmValue = dis.sumAM
                 };
                 center.AddNewDot(dot);
             }
         }
     }
 }
Exemple #5
0
        public void GetTargetAreasTest()
        {
            AzimuthCell  azCell   = new AzimuthCell();
            DistanceCell disCell1 = new DistanceCell {
                index = 10
            };
            DistanceCell disCell2 = new DistanceCell {
                index = 11
            };
            DistanceCell disCell3 = new DistanceCell {
                index = 12
            };
            DistanceCell disCell4 = new DistanceCell {
                index = 13
            };
            DistanceCell disCell5 = new DistanceCell {
                index = 15
            };
            DistanceCell disCell6 = new DistanceCell {
                index = 100
            };
            DistanceCell disCell7 = new DistanceCell {
                index = 101
            };
            DistanceCell disCell8 = new DistanceCell {
                index = 122
            };
            DistanceCell disCell9 = new DistanceCell {
                index = 132
            };

            azCell.DisCells.Add(10, disCell1);
            azCell.DisCells.Add(11, disCell2);
            azCell.DisCells.Add(12, disCell3);
            azCell.DisCells.Add(13, disCell4);
            azCell.DisCells.Add(15, disCell5);
            azCell.DisCells.Add(100, disCell6);
            azCell.DisCells.Add(101, disCell7);
            azCell.DisCells.Add(122, disCell8);
            azCell.DisCells.Add(132, disCell9);

            //List<TargetAreaEdge> ret = FourSevenClotter.GetTargetAreaEdges(azCell);
            Assert.IsTrue(true);
        }
        public AzimuthCell ModifyOriginalData(AzimuthCell originalData)
        {
            originalData.DisCells.Clear();
            AngleArea testAngleArea  = new AngleArea(0f, 33.75f);
            AngleArea testAngleArea1 = new AngleArea(20f, 25f);

            //if (testAngleArea.IsAngleInArea(realData.Angle) /*|| testAngleArea1.IsAngleInArea(realData.Angle)*/)
            if (!testAngleArea1.IsAngleInArea(originalData.Angle))
            {
                DistanceCell distanceCell = new DistanceCell()
                {
                    index = 300, sumAM = 100000, az = originalData.Angle
                };
                originalData.DisCells.Add(300, distanceCell);
                return(originalData);
            }

            return(null);
        }
Exemple #7
0
        private static void ProcessRemoteTargetManagerUdpData(byte[] data)
        {
            byte head = data[1];

            int sectorNum = data[3];

            int targetCount = DistanceCell.MakeInt(data, 4, 2);

            if (head == 0xb1)
            {
                List <TargetDot> ls = GetTargetDotsFromSerialData(data, targetCount, sectorNum);
                TargetManagerFactory.CreateTrackManager().TargetDotDataReceivedFromRemoteTargetManager(sectorNum, ls);
            }

            if (head == 0xb2)
            {
                List <TargetTrack> ls = GetTargetTracksFromSerialData(data, targetCount, sectorNum);
                TargetManagerFactory.CreateTrackManager().TargetTrackDataReceivedFromRemoteTargetManager(sectorNum, ls);
            }
        }
        public override void Clot(Sector center, Sector right, Sector left, AzimuthCell[] cells)
        {
            MoveNewDotToOldDot(center);

            foreach (AzimuthCell cell in cells)
            {
                foreach (object o in cell.DisCells.Values)
                {
                    if (center.IsAngleInArea(cell.GetAngle()))
                    {
                        DistanceCell dis = (DistanceCell)o;
                        TargetDot    dot = new TargetDot(cell.GetAngle(), dis.el, dis.Distance)
                        {
                            AmValue = dis.sumAM
                        };
                        center.AddNewDot(dot);
                    }
                }
            }

            NotifyUpdateSectorDot(center);  //通知更新该扇区的目标点视图
        }
        public AzimuthCell ModifyOriginalData(AzimuthCell originalData)
        {
            //AngleArea testAngleArea1 = new AngleArea(20f, 30f);
            if (!movementArea.IsAngleInArea(originalData.Angle))
            {
                return(null);
            }
            originalData.DisCells.Clear();
            TimeSpan interval = DateTime.Now - _lastRefreshTime;

            _lastRefreshTime = DateTime.Now;
            Distance        += TargetSpeed * interval.TotalSeconds;
            //Console.WriteLine(Distance);
            int          distanceCellIndex = (int)(Distance / 2.92f);
            DistanceCell distanceCell      = new DistanceCell()
            {
                index = distanceCellIndex, sumAM = 100000, az = originalData.Angle
            };

            originalData.DisCells.Add(distanceCellIndex, distanceCell);
            return(originalData);
        }
Exemple #10
0
 public void AddDistanceCell(DistanceCell cell) => Cells.Add(cell);
        //public static int[] Permanent = {364, 365, 366, 367, 368, 369, 370, 729, 730, 731, 794, 795, 796, 945, 946, 947 };

        public static bool Pass(DistanceCell cell)
        {
            return(cell.speed > SpeedMinimum && cell.speed < SpeedMaximum && cell.sumAM > AmThreshold &&
                   cell.el > 0 && cell.Distance < DistanceMax);
        }