Beispiel #1
0
        public ATMSystem(IATMFactory factory, ITransponderReceiver transponderReceiver)
        {
            //Calling factory methods
            receiver           = transponderReceiver;
            _airSpace          = factory.CreateAirSpace();
            _condition         = factory.CreateCondition();
            _consolePrinter    = factory.CreateConsolePrinter();
            _logger            = factory.CreateLogger();
            _separationChecker = factory.CreateSeparationChecker();

            //Subscribing to events
            this.receiver.TransponderDataReady += ReceiverOnTransponderReady;
            this.SeparationLogDataReady        += _logger.SeparationLogDataHandler;
            this.ConsoleSeparationDataReady    += _consolePrinter.ConsoleSeparationDataHandler;
        }
        public void SetUp()
        {
            _collisionDetector = Substitute.For <ICollisionDetector>();
            _airSpace          = Substitute.For <IAirSpace>();
            _log          = Substitute.For <ILog>();
            _render       = Substitute.For <IRender>();
            _trackStorage = Substitute.For <ITrackStorage>();
            _tos          = Substitute.For <Tos>(Substitute.For <ITransponderReceiver>());

            validTrack1 = new Track {
                Tag = "AAA111", PositionX = 12000, PositionY = 80000, Altitude = 700
            };
            validTrack2 = new Track {
                Tag = "BBB222", PositionX = 80000, PositionY = 12000, Altitude = 1700
            };

            _uut = new AirTrafficController(_collisionDetector, _trackStorage, _airSpace, _render, _log);
        }
Beispiel #3
0
        public bool IsInAirSpace(IAirSpace airSpace, ITrack track)
        {
            if (track._alt < airSpace.MinAltitude || track._alt > airSpace.MaxAltitude)
            {
                return(false);
            }

            if (track._xCord < airSpace.XStartPoint || track._xCord > airSpace.GetXEndPoint())
            {
                return(false);
            }

            if (track._yCord < airSpace.YStartPoint || track._yCord > airSpace.GetYEndPoint())
            {
                return(false);
            }

            return(true);
        }
        public AirTrafficController(ICollisionDetector cd, ITrackStorage ts, IAirSpace airs, IRender r, ILog l)
        {
            _collisonDetector = cd;
            _trackStorage     = ts;
            _airSpace         = airs;
            _render           = r;
            _log = l;

            _collisonDetector.Separation += (s, e) =>
            {
                _render.PrintCollisionTracks(e.CollisionPairs);
                _log.LogCollisionToFile(e.CollisionPairs);
            };

            _collisonDetector.NotColliding += (s, e) =>
            {
                _render.PrintCollisionTracks(e.CollisionPairs, true);
            };
        }
Beispiel #5
0
        public void Init()
        {
            consoleLogger             = Substitute.For <Classes.Interfaces.ILogger>();
            output                    = new Output();
            trackRepository           = new TrackRepository();
            seperation                = new Seperation();
            logHelper                 = new LogHelper();
            logHelper.Logger          = consoleLogger;
            eventLogger               = new EventLogger();
            output.LogHelper          = logHelper;
            airspace                  = new AirSpace();
            seperationAlertRepository = new SeperationAlertRepository();
            transponderReceiver       = Substitute.For <ITransponderReceiver>();

            trackObservationSystem = new TrackObservationSystem(transponderReceiver)
            {
                TrackRepository           = trackRepository,
                Output                    = output,
                AirSpace                  = airspace,
                SeperationAlertRepository = seperationAlertRepository
            };
        }
Beispiel #6
0
 public SeparationChecker(IAirSpace airSpace, ICondition separationCondition)
 {
     _airSpace            = airSpace;
     _separationCondition = separationCondition;
     _currentConflicts    = new List <Conflict>();
 }
Beispiel #7
0
 public FileWriter(IAirSpace airSpace)
 {
     airSpace.SplitCreated += onSplitCreated;
 }
Beispiel #8
0
 public PlaneTracker()
 {
     airSpaceTracker = new AirSpaceTracker();
     airSpace        = new AirSpace();
 }
Beispiel #9
0
 public void SetUp()
 {
     airSpace = Substitute.For <IAirSpace>();
     track    = Substitute.For <ITrack>();
     _uut     = new AirSpaceTracker();
 }