//overviewdisplayer显示器的控制模式切换到波门模式,需要读取targetmannager当前的模式决定切换到自动波门还是半自动波门 public void SwitchToWaveGateState() { ITargetDataProvider provider = TargetManagerFactory.CreateTargetDataProvider(); TargetManagerMode mode = provider.GetMode(); switch (mode) { case TargetManagerMode.Auto: SwitchToAutoWaveGateState(); break; case TargetManagerMode.SemiAuto: SwitchToSemiAutoWaveGateSate(); break; case TargetManagerMode.Manual: break; case TargetManagerMode.Intelligent: break; default: throw new ArgumentOutOfRangeException(); } }
public void SwitchMode(TargetManagerMode toMode) //切换起批模式 { _mode = toMode; switch(toMode) { case TargetManagerMode.Intelligent: _dotCorelator = new DotCorelator_Intelligence(_dotCorelator.Observers); break; case TargetManagerMode.Auto: _dotCorelator = new DotCorelator_WaveGate(_dotCorelator.Observers); break; case TargetManagerMode.SemiAuto: _dotCorelator = new DotCorelator_WaveGate(_dotCorelator.Observers); break; case TargetManagerMode.Manual: _dotCorelator = new DotCorelator_Manual(_dotCorelator.Observers); break; default: throw new ArgumentOutOfRangeException(nameof(toMode), toMode, null); } }
public TargetManager() { InitializeSectors(); _obs = new List<ITargetObserver>(); //_clotter = new Clotter_Test(); _clotter47 = new FourSevenClotter(); _trackCorelator = new TrackCorelatorV1();//航迹相关器 _mode = TargetManagerMode.Manual; _dotCorelator = new DotCorelatorV1();//自由点相关器 _freeDotDeleter = new FreeDotDeleter(); //自由点删除器 _viewDeleter = new DotViewDeleter(); TargetTrack.FindIdStrategy = new FromBeginningStrategy(); mouseTargetTracker = new MouseTargetTracker(this); trackGenerators = new List<TrackGenerator>(); }
public TargetManagerSwitchModeCommand(TargetManagerMode mode) : base() { this.mode = mode; }
public void SwitchMode(TargetManagerMode mode) { this.mode = mode; }
public TrackManager_TestCase_Random() { mode = TargetManagerMode.Auto; tracks = new List <TargetTrack>(); dots = new List <TargetDot>(); obs = new List <ITargetObserver>(); timerDot = new Timer(); timerDot.Interval = 1000; timerDot.Tick += TimerDot_Tick; timerDot.Start(); timerTrack = new Timer(); timerTrack.Interval = 1000; timerTrack.Tick += TimerTrack_Tick; timerTrack.Start(); if (dot1 == null) //dot1是静态成员,只有第一次实例化时才对dot1赋值 { Random rd = new Random(); dot1 = new TargetDot(); dot1.AZ = rd.Next(0, 180); dot1.EL = rd.Next(10, 19); dot1.Dis = rd.Next(2000, 4000); dot2 = new TargetDot(); dot2.AZ = dot1.AZ + 2; dot2.EL = dot1.EL + 1; dot2.Dis = dot1.Dis + 100; } dots.Add(dot1); NotifyAllObservers(dot1, NotifyType.Add); dots.Add(dot2); NotifyAllObservers(dot2, NotifyType.Add); if (track1 == null) { Random rd = new Random(); track1 = new TargetTrack(); track1.trackID = 15; track1.AZ = rd.Next(180, 360); track1.EL = rd.Next(20, 89); track1.Dis = rd.Next(100, 4000); } float dis = 4000; float el = 10; float az = 0; float azStep = 30; for (int i = 1; az < 360; i++) { TargetTrack t = new TargetTrack(); az = 15 + azStep * i; t.AZ = az; t.Dis = dis; t.EL = el; t.trackID = i; tracks.Add(t); NotifyAllObservers(t, NotifyType.Add); } tracks.Add(track1); NotifyAllObservers(track1, NotifyType.Add); }