private void RegisterAngleAreaNotification(AngleArea area) { var antennaLeaveAngleAreaSubject = TargetManagerFactory.CreateAntennaLeaveAngleAreaSubject(); _modifiedSection = _rotateController.CalAntiInertiaSection(area); antennaLeaveAngleAreaSubject.RegisterAngleArea(this, _modifiedSection); }
protected const int SemiAutoWaveGateLife = 3; //半自动波门的生命长度(天线扫出该波门的次数) public WaveGateManager() { waveGates = new List <WaveGate>(); obs = new List <IWaveGateObserver>(); Subject = TargetManagerFactory.CreateAntennaLeaveAngleAreaSubject(); }
private void DestroySectors() { lock (_locker) { //获得角度区域监听器 var antennaLeaveAngleAreaSubject = TargetManagerFactory.CreateAntennaLeaveAngleAreaSubject(); if (Sectors == null) return; foreach (Sector s in Sectors) //注销角度区域 antennaLeaveAngleAreaSubject.UnregisterAngleArea(this, s); } }
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); }