private void RegisterAngleAreaNotification(AngleArea area)
        {
            var antennaLeaveAngleAreaSubject = TargetManagerFactory.CreateAntennaLeaveAngleAreaSubject();

            _modifiedSection = _rotateController.CalAntiInertiaSection(area);
            antennaLeaveAngleAreaSubject.RegisterAngleArea(this, _modifiedSection);
        }
예제 #2
0
        protected const int SemiAutoWaveGateLife = 3;   //半自动波门的生命长度(天线扫出该波门的次数)

        public WaveGateManager()
        {
            waveGates = new List <WaveGate>();

            obs = new List <IWaveGateObserver>();

            Subject = TargetManagerFactory.CreateAntennaLeaveAngleAreaSubject();
        }
예제 #3
0
 private void DestroySectors()
 {
     lock (_locker)
     {
         //获得角度区域监听器
         var antennaLeaveAngleAreaSubject = TargetManagerFactory.CreateAntennaLeaveAngleAreaSubject();
         if (Sectors == null) return;
         foreach (Sector s in Sectors) //注销角度区域
             antennaLeaveAngleAreaSubject.UnregisterAngleArea(this, s);
     }
 }
예제 #4
0
        private void CreateSectors()
        {
            lock (_locker)
            {
                //获得角度区域监听器
                var antennaLeaveAngleAreaSubject = TargetManagerFactory.CreateAntennaLeaveAngleAreaSubject();

                //初始化扇区并注册角度区域观察者
                Sectors = new Sector[Sector.SectorCount];
                for (int i = 0; i < Sector.SectorCount; i++)
                {
                    Sectors[i] = CreateSector(i, Sector.SectorCount);
                    antennaLeaveAngleAreaSubject.RegisterAngleArea(this, Sectors[i]);
                }
            }
        }
        private void UnregisterAngleAreaNotification()
        {
            var antennaLeaveAngleAreaSubject = TargetManagerFactory.CreateAntennaLeaveAngleAreaSubject();

            antennaLeaveAngleAreaSubject.UnregisterAngleArea(this, _modifiedSection);
        }