public void OnTransponderDataReady(object sender, RawTransponderDataEventArgs e)
        {
            DataRecivedList = e.TransponderData;

            List <TrackDataContainer> tdcList = new List <TrackDataContainer>();

            foreach (var data in e.TransponderData)
            {
                string[]           inputFields;
                TrackDataContainer _tdc = new TrackDataContainer();
                inputFields    = data.Split(';');
                _tdc.Tag       = Convert.ToString(inputFields[0]);
                _tdc.X         = Convert.ToInt32(inputFields[1]);
                _tdc.Y         = Convert.ToInt32(inputFields[2]);
                _tdc.Altitude  = Convert.ToInt32(inputFields[3]);
                _tdc.Timestamp =
                    DateTime.ParseExact(inputFields[4], "yyyyMMddHHmmssfff", CultureInfo.InvariantCulture);
                tdcList.Add(_tdc);
            }

            if (tdcList.Count != 0)
            {
                ATMEvent atmEvent = new ATMEvent(tdcList);
                DataDecoded?.Invoke(this, atmEvent);
            }
        }
Beispiel #2
0
        private void TransponderReceiverOnTransponderDataReady(object sender,
                                                               RawTransponderDataEventArgs rawTransponderDataEventArgs)
        {
            List <string> values = rawTransponderDataEventArgs.TransponderData;

            CreateTrackObject(values);
        }
Beispiel #3
0
        public void DataHandler_ExistingTrackInOrOutOfBounds_CorrectTracksRemoved(int x, int y, int altitude, bool result)
        {
            // Setup
            var inputStrings = new List <string>();

            inputStrings.Add("test");
            var args = new RawTransponderDataEventArgs(inputStrings);

            var track = Substitute.For <ITrack>();

            track.Tag = "TrackOne";
            track.CurrentPosition.x = 45000;
            track.CurrentPosition.y = 45000;
            track.CurrentAltitude   = 10000;

            _fakeConverter.GetTrack(Arg.Any <string>()).Returns(track);

            // Act
            _uut.TransponderDataHandler(null, args);

            track.CurrentPosition.x = x;
            track.CurrentPosition.y = y;
            track.CurrentAltitude   = altitude;

            _uut.TransponderDataHandler(null, args);

            // Assert
            Assert.That(_uut.Tracks.ContainsKey("TrackOne"), Is.EqualTo(result));
        }
Beispiel #4
0
        public void DataHandler_TracksUpdated_TracksUpdatedInvoked()
        {
            // Setup
            var inputStrings = new List <string>
            {
                "test",
            };
            var args = new RawTransponderDataEventArgs(inputStrings);

            var track = Substitute.For <ITrack>();

            track.Tag = "TrackOne";
            track.CurrentPosition.x = 45000;
            track.CurrentPosition.y = 42000;
            track.CurrentAltitude   = 10000;

            _fakeConverter.GetTrack("test").Returns(track);

            _uut.TransponderDataHandler(null, args);

            int called = 0;

            _uut.OnTrackUpdated += (s, a) => { called++; };

            // Act
            _uut.TransponderDataHandler(null, args);

            // Assert
            Assert.That(called, Is.EqualTo(1));
        }
Beispiel #5
0
        private void HandlerOnRaiseTrackInsideMonitoringAreaEvent(object sender, RawTransponderDataEventArgs e)
        {
            char[] separators = { ';' };

            foreach (var data in e.TransponderData)
            {
                var    tokens      = data.Split(separators, StringSplitOptions.RemoveEmptyEntries);
                string tag         = tokens[0];
                var    xCoordinate = int.Parse(tokens[1]);
                var    yCoordinate = int.Parse(tokens[2]);
                var    zCoordinate = int.Parse(tokens[3]);
                var    dateTime    = GetDate(tokens[4]);
                if ((xCoordinate >= XOffset) && (xCoordinate <= (XOffset + XLength)))
                {
                    if (yCoordinate >= YOffset && yCoordinate <= YOffset + YWidth)
                    {
                        if ((zCoordinate >= ZOffset) && (zCoordinate <= (zCoordinate + ZHeight)))
                        {
                            Console.WriteLine("Inbound:  " + tag + "\t" + xCoordinate + "\t" + yCoordinate + "\t" + zCoordinate + "\t" + dateTime + dateTime.Millisecond);
                            TrackfilterDTO DTO = new TrackfilterDTO(tag, xCoordinate, yCoordinate, zCoordinate, dateTime);
                            FormattedDataEvent?.Invoke(this, new FormattedTransponderDataEventArgs(DTO));
                        }
                    }
                }
                Console.WriteLine();
            }
        }
Beispiel #6
0
        public void DataHandler_ExistingTrackInOutOfBounds_CorrectTracksAreUpdated(int x, int y, int altitude, int nrOfCalls)
        {
            // Setup
            var inputStrings = new List <string>();

            inputStrings.Add("test");
            var args = new RawTransponderDataEventArgs(inputStrings);

            var track = Substitute.For <ITrack>();

            track.Tag = "TrackOne";
            track.CurrentPosition.x = 45000;
            track.CurrentPosition.y = 45000;
            track.CurrentAltitude   = 10000;

            _fakeConverter.GetTrack(Arg.Any <string>()).Returns(track);

            // Act
            _uut.TransponderDataHandler(null, args);

            track.CurrentPosition.x = x;
            track.CurrentPosition.y = y;
            track.CurrentAltitude   = altitude;

            _uut.TransponderDataHandler(null, args);

            // Assert
            track.Received(nrOfCalls).Update(Arg.Any <ICoordinate>(), Arg.Any <int>(), Arg.Any <DateTime>());
        }
Beispiel #7
0
        private void Reciever_TransponderDataReady(object sender, RawTransponderDataEventArgs e)
        {
            var trackInfoList = new List <TrackInfo>();

            trackEventArgs = new TracksEventArgs();
            foreach (var data in e.TransponderData)
            {
                var dataList  = new List <string>();
                var trackInfo = new TrackInfo();
                dataList = data.Split(';').ToList();

                var xcoordinate = Convert.ToInt32(dataList[1]);
                var ycoordinate = Convert.ToInt32(dataList[2]);

                if (xcoordinate < 85000 && ycoordinate < 85000)
                {
                    trackInfo.Xcoor    = xcoordinate;
                    trackInfo.Ycoor    = ycoordinate;
                    trackInfo.Tag      = dataList[0];
                    trackInfo.Altitude = Convert.ToInt32(dataList[3]);
                    trackInfo.DataTime = DateTime.ParseExact(
                        dataList[4],
                        "yyyyMMddHHmmssfff",
                        null);

                    trackInfoList.Add(trackInfo);
                }
            }
            trackEventArgs.TrackInfos = trackInfoList;
            TracksInASEvent?.Invoke(this, trackEventArgs);
        }
        public void Setup()
        {
            // Drivers/included
            _receiver       = Substitute.For <ITransponderReceiver>();
            _trackConverter = new TrackConverter(_receiver);
            _sorter         = new Sorter(_trackConverter);
            _checker        = new CheckForSeparationEvent();


            // System under test
            _logger         = new LogSeparationEvent(_checker);
            _warningCreator = new CreateWarning(_checker);

            // Stubs/mocks
            _ts  = Substitute.For <ITrackSpeed>();
            _tcc = Substitute.For <ITrackCompassCourse>();

            // Driver
            _controller = new Controller(_sorter, _ts, _tcc, _checker, _warningCreator, _logger);

            // Data
            _fakeRawArgs = new RawTransponderDataEventArgs(new List <string>()
            {
                "Tag123;70000;70000;1000;20180420222222222", "Tag456;68000;68000;800;20180420222222222", "Tag789;89000;89000;5000;20180420222222222"
            });

            // Assign to events
            _checker.SeperationEvents    += _checker_SeperationEvents;
            _checker.NewSeperationEvents += _checker_FinishedSeperationEvents;
        }
Beispiel #9
0
        public void ATMSystemUnitTests_CheckThatConflictDeletedAfterUpdate_1ConflictDeleted()
        {
            ConsoleSeparationEventArgs testArgs = null;

            _uut.ConsoleSeparationDataReady +=
                (object o, ConsoleSeparationEventArgs a) => { testArgs = a; };
            List <string> testData = new List <string>();


            testData = new List <string>();
            testData.Add("ATR423;45003;30000;15200;20151006213456789");
            testData.Add("BCD123;20000;82890;11030;20151006213456789"); //Conflict
            testData.Add("XYZ987;22059;81654;11000;20151006213456789"); //Conflict
            RawTransponderDataEventArgs args = new RawTransponderDataEventArgs(testData);

            //Raise event
            _fakeTransponderReceiver.TransponderDataReady += Raise.EventWith(this, args);

            //Test that there is an initial conflict
            Assert.That(testArgs.conflictList.Count, Is.EqualTo(1));

            //Raise event with updated data
            testData.Add("ATR423;39045;12932;14000;20151006213456789");
            testData.Add("BCD123;10005;85890;12000;20151006213456789");
            testData.Add("XYZ987;25059;75654;4000;20151006213456789");
            args = new RawTransponderDataEventArgs(testData);
            _fakeTransponderReceiver.TransponderDataReady += Raise.EventWith(this, args);

            //Check that conflict doesnt exist anymore
            Assert.That(testArgs.conflictList.Count, Is.EqualTo(0));
        }
Beispiel #10
0
        private void ReceiverOnTransponderDataReady(object sender, RawTransponderDataEventArgs e)
        {
            // Just display data
            foreach (var data in e.TransponderData)
            {
                //create Track for potential monitoring
                string[] tokens = ParseDataString(data);
                Track    track_ = BuildTrack(tokens);

                bool inScope_ = InScope(track_);
                bool found    = false;
                if (inScope_)
                {
                    for (int i = 0; i < Tracks.Count; i++)
                    {
                        if (track_.tag_ == Tracks[i].tag_)
                        {
                            found = true;
                            System.Console.WriteLine("Track found i Tacks List");
                            if (track_ != Tracks[i])
                            {
                                System.Console.WriteLine("Updating Track");
                                Tracks[i] = track_;
                            }
                        }
                    }

                    if (!found)
                    {
                        Tracks.Add(track_);
                    }
                }
            }
        }
Beispiel #11
0
        public void ATMSystemUnitTests_CheckThatExpectedAmmountOfConflictsExist_Expected1ConflictAfterUpdate()
        {
            ConsoleSeparationEventArgs testArgs = null;

            _uut.ConsoleSeparationDataReady +=
                (object o, ConsoleSeparationEventArgs a) => { testArgs = a; };

            List <string> testData = new List <string>();

            testData.Add("ATR423;39045;12932;14000;20151006213456789");
            testData.Add("BCD123;10005;85890;12000;20151006213456789");
            testData.Add("XYZ987;25059;75654;4000;20151006213456789");
            RawTransponderDataEventArgs args = new RawTransponderDataEventArgs(testData);

            //Raise event
            _fakeTransponderReceiver.TransponderDataReady += Raise.EventWith(this, args);

            //Raise event with updated data
            testData = new List <string>();
            testData.Add("ATR423;45003;30000;15200;20151006213456789");
            testData.Add("BCD123;20000;82890;11030;20151006213456789"); //Conflict
            testData.Add("XYZ987;22059;81654;11000;20151006213456789"); //Conflict
            args = new RawTransponderDataEventArgs(testData);
            _fakeTransponderReceiver.TransponderDataReady += Raise.EventWith(this, args);
            //Check that list contains 1 conflict
            Assert.That(testArgs.conflictList.Count, Is.EqualTo(1));
        }
Beispiel #12
0
        public void ATMSystemUnitTests_CheckThatOutOfBoundsFlightNotAdded_UpdatedTracks()
        {
            ConsoleSeparationEventArgs testArgs = null;

            _uut.ConsoleSeparationDataReady +=
                (object o, ConsoleSeparationEventArgs a) => { testArgs = a; };

            List <string> testData = new List <string>();

            testData.Add("ATR423;39045;12932;14000;20151006213456789");
            testData.Add("BCD123;10005;85890;12000;20151006213456789");
            testData.Add("XYZ987;25059;75654;4000;20151006213456789");
            RawTransponderDataEventArgs args = new RawTransponderDataEventArgs(testData);

            //Raise event
            _fakeTransponderReceiver.TransponderDataReady += Raise.EventWith(this, args);

            //Raise event with updated data
            testData = new List <string>();
            testData.Add("ATR423;45003;30000;15200;20151006213456789");
            testData.Add("BCD123;20000;92890;11030;20151006213456789"); //Flight now out of bounds
            testData.Add("XYZ987;22059;79654;5000;20151006213456789");
            args = new RawTransponderDataEventArgs(testData);
            _fakeTransponderReceiver.TransponderDataReady += Raise.EventWith(this, args);
            //Check that data still only contains 3 tracks
            Assert.That(testArgs.tracks.Count, Is.EqualTo(2));
        }
Beispiel #13
0
        public void TransponderDataReadyEventRaised_TransponderDataConverter_ReturnsCorrectTrack()
        {
            //arrange
            var fakeTrack = Substitute.For <ITrack>();

            fakeTrack.Tag = "ATR423";
            fakeTrack.CurrentPosition.x = 39045;
            fakeTrack.CurrentPosition.y = 12932;
            fakeTrack.CurrentAltitude   = 14000;
            fakeTrack.LastSeen          = new DateTime(2015, 10, 6, 21, 34, 56, 789);

            var inputStrings = new List <string>
            {
                "ATR423;" +
                "39045;" +
                "12932;" +
                "14000;" +
                "20151006213456789"
            };
            var args = new RawTransponderDataEventArgs(inputStrings);

            //act
            _transponderReceiver.TransponderDataReady += Raise.EventWith(_transponderReceiver, args);

            //Assert
            Assert.That(_trackController.Tracks.First().Key, Is.EqualTo(fakeTrack.Tag));
            Assert.That(_trackController.Tracks.First().Value.CurrentPosition.x, Is.EqualTo(fakeTrack.CurrentPosition.x));
            Assert.That(_trackController.Tracks.First().Value.CurrentPosition.y, Is.EqualTo(fakeTrack.CurrentPosition.y));
            Assert.That(_trackController.Tracks.First().Value.CurrentAltitude, Is.EqualTo(fakeTrack.CurrentAltitude));
            Assert.That(_trackController.Tracks.First().Value.LastSeen, Is.EqualTo(fakeTrack.LastSeen));
        }
        public void DataReceived(object o, RawTransponderDataEventArgs args)
        {
            //Add or update tracks
            foreach (var track in args.TransponderData)
            {
                TrackOperations.AddOrUpdate(track);
            }

            //Check if tracks are in airspace
            foreach (var track in TrackOperations.GetAll())
            {
                track.WithinAirspace = Airspace.CalculateWithinAirspace(track.Position);
            }

            //Check for Separations
            if (TrackOperations.GetAll().Count > 1)
            {
                SeparationOperations.CheckForSeparations(TrackOperations.GetAll().ToList());
            }

            //Check for outdated separations
            UpdateOldSeparations();

            //Display everything
            OutputTerminal();
        }
        public void EventIsRaised()
        {
            var args = new RawTransponderDataEventArgs(testData);

            fakeTransponderReceiver.TransponderDataReady += Raise.EventWith(args);
            Assert.That(nEventsReceived, Is.EqualTo(1));
        }
        public void Update_TransponderDataTwice_UpdatedTracks(string trackWithin, string trackOutside, string trackWithinUD, string trackOutsideUD, double withinCourse, double withinVelocity)
        {
            //Arrange
            string withinTag       = trackWithin.Split(';')[0];
            var    transponderData = new List <string>();
            var    track1          = trackWithin;
            var    track2          = trackOutside;

            transponderData.Add(track1);
            transponderData.Add(track2);
            var transponderDataEventArgs = new RawTransponderDataEventArgs(transponderData);

            //Act
            _transponderReceiver.TransponderDataReady += Raise.EventWith(transponderDataEventArgs);

            //Re-Arrange
            transponderData = new List <string>();
            track1          = trackWithinUD;
            track2          = trackOutsideUD;
            transponderData.Add(track1);
            transponderData.Add(track2);
            transponderDataEventArgs = new RawTransponderDataEventArgs(transponderData);

            //Act Again
            _transponderReceiver.TransponderDataReady += Raise.EventWith(transponderDataEventArgs);

            //Assert
            Assert.That(_updatedList.Count == 1, Is.True);
            Assert.That(_updatedList[0].Tag, Is.EqualTo(withinTag));
            Assert.That(_updatedList[0].Course, Is.EqualTo(withinCourse));
            Assert.That(_updatedList[0].Velocity, Is.EqualTo(withinVelocity));
            Assert.That(_nEventReceived, Is.EqualTo(2));
        }
Beispiel #17
0
        private void OnTransponderDataReady(object sender, RawTransponderDataEventArgs rawTransponderDataEventArgs)
        {
            // formatting data for use
            foreach (string rawdata in rawTransponderDataEventArgs.TransponderData)
            {
                string[] rawData = rawdata.Split(';');
                List<string> data = rawData.ToList();

                if (int.Parse(data[1]) >= 10000 && int.Parse(data[1]) <= 90000 &&
                    int.Parse(data[2]) >= 10000 && int.Parse(data[2]) <= 90000 &&
                    int.Parse(data[3]) >= 500 && int.Parse(data[3]) <= 20000)
                {
                    if (Tracks.Any(track => track.Tag == data[0])) // checks if track appears multiple times in list
                    {
                        Track AlreadyKnownTrack = (Track)Tracks.First(track => track.Tag == data[0]); // finds existing track with 'Tag'
                        AlreadyKnownTrack.UpdateTrack(data[0], int.Parse(data[1]), int.Parse(data[2]), int.Parse(data[3]), new TimeStamp(data[4])); // updated old track instead of making new entry
                        OnTrackEnteredAirspace();
                    }
                    else
                    {
                        Tracks.Add(new Track(data[0], int.Parse(data[1]), int.Parse(data[2]), int.Parse(data[3]), new TimeStamp(data[4])));
                    }
                }

                // determine type of event

                // log event to file

                // render current events to screen
            }
        }
Beispiel #18
0
        public void Setup()
        {
            _transponderReceiver    = Substitute.For <ITransponderReceiver>();
            _trackRendition         = Substitute.For <ITrackRendition>();
            _proximityDetectionData = new ProximityDetectionData();
            _eventRendition         = new EventRendition();
            _proximityDetection     = new ProximityDetection(_eventRendition, _proximityDetectionData);
            _trackUpdate            = new TrackUpdate(_trackRendition, _proximityDetection);
            _filtering     = new Filtering(_trackUpdate);
            _parsing       = new Parsing(_transponderReceiver, _filtering);
            _trackData     = new TrackData();
            _faketrackList = new List <ITrackData>();
            //_trackRendition = new TrackRendition();

            _dataEvent = new RawTransponderDataEventArgs(new List <string>()
            {
                "JAS001;12345;67890;12000;20160101100909111"
            });

            //_fakeTrackData = new TrackData
            //{
            //    Tag = "JAS001",
            //    X = 12345,
            //    Y = 67890,
            //    Altitude = 12000,
            //    Course = 0,
            //    Velocity = 0,
            //    TimeStamp = DateTime.ParseExact("20160101100909111", "yyyyMMddHHmmssfff", System.Globalization.CultureInfo.InvariantCulture)
            //};
        }
Beispiel #19
0
        //Run every time new data is present
        private void Update(RawTransponderDataEventArgs e)
        {
            //Decode Data
            List <TrackData> trackData = _decoder.Decode(e);

            //Filter data
            trackData = _filter.Filter(trackData);

            //Update existing flight data
            _data = _flightCalculator.Calculate(_data, trackData);

            //Collision Detect
            Tuple <List <string>, List <string> > collisionResult = _collisionDetector.SeperationCheck(trackData);
            List <string> collisionTags        = collisionResult.Item1;
            List <string> displayCollisionList = collisionResult.Item2;


            //Set CollisionFlag on flights
            foreach (KeyValuePair <string, FlightData> entry in _data)
            {
                entry.Value.CollisionFlag = collisionTags.Contains(entry.Value.Tag);
            }

            //Display Data
            _display.Clear();
            _display.Render(_data, displayCollisionList);
        }
        public void TransponderDataReady_AddedTwoTracksNoConflict_OnSeparationEventRaised0Times()
        {
            //arrange
            var track1 = new List <string>
            {
                "ATR423;" +
                "39045;" +
                "12932;" +
                "14000;" +
                "20151006213456789"
            };
            var args1 = new RawTransponderDataEventArgs(track1);

            var track2 = new List <string>
            {
                "KOL543;" +
                "80000;" +
                "45000;" +
                "9000;" +
                "20151006213456789"
            };
            var args2 = new RawTransponderDataEventArgs(track2);


            //act

            _transponderReceiver.TransponderDataReady += Raise.EventWith(_transponderReceiver, args1);
            _transponderReceiver.TransponderDataReady += Raise.EventWith(_transponderReceiver, args2);

            //assert
            Assert.That(nEventsRaised, Is.EqualTo(0));
        }
Beispiel #21
0
        public void SetUp()
        {
            _writer                  = Substitute.For <IWriter>();
            _calculateVelocity       = new CalculateVelocity();
            _calculateCourse         = new CalculateCourse();
            _transponderReceiver     = Substitute.For <ITransponderReceiver>();
            _logWriterToFile         = Substitute.For <ILogWriter>();
            _logWriterToConsole      = Substitute.For <ILogWriter>();
            _convertStringToDateTime = new ConvertStringToDateTime();
            _eventController         = new EventController(_logWriterToFile, _logWriterToConsole);
            _seperationEvent         = new SeperationEvent();
            _seperationTracks        = new SeperationTracks(_seperationEvent, _eventController);
            _sortingTracks           = new SortingTracks(_calculateVelocity, _calculateCourse, _writer, _seperationTracks);
            _filterAirspace          = new FilterAirspace(_sortingTracks);
            _convertTrackData        = new ConvertTrackData(_transponderReceiver, _convertStringToDateTime, _filterAirspace);

            var track = "BIJ515;12345;54321;17891;20180409153742853";

            _myList = new List <string> {
                track
            };

            var eventArgs = new RawTransponderDataEventArgs(_myList);

            _transponderReceiver.TransponderDataReady += Raise.EventWith(eventArgs);
        }
        private void ReceiverOnTransponderDataReady(object sender, RawTransponderDataEventArgs e)
        {
            Console.Clear();
            // Just display data
            foreach (var data in e.TransponderData)
            {
                TrackData trackData = new TrackData(data);
                warnings.ProcessTrackData(trackData);
                // warnings.PlanesAreTooDamnClose();
            }

            Console.ForegroundColor = ConsoleColor.Cyan;
            Console.WriteLine("--- Planes --- {0}", DateTime.Now.ToString("T"));
            Console.ForegroundColor = ConsoleColor.Green;
            foreach (Plane plane in warnings.planeList)
            {
                Console.WriteLine(plane);
                warnings.PlanesAreTooDamnClose(plane);
            }

            if (warnings.planesInDanger.Count > 0)
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine("\n--- THESE N****S TOO CLOSE ---");
                var prints = warnings.planesInDanger.Select(pair => string.Format("{0} is too close to {1} at {2}", pair.Item1.Data.Tag, pair.Item2.Data.Tag, DateTime.Now.ToString("T")));
                foreach (var print in prints)
                {
                    Console.WriteLine(print);
                }
                Console.ResetColor();
            }
        }
Beispiel #23
0
        public void Setup()
        {
            _listHandler   = Substitute.For <IListHandler>();
            _monitoredArea = new MonitoredArea(90000, 10000, 20000, 500);

            _transponderReceiver = Substitute.For <ITransponderReceiver>();
            _flightExtractor     = new FlightExtractor();
            _parseTrackInfo      = new ParseTrackInfo();
            _timestampFormatter  = new TimestampFormatter();

            _trackObjectifier = new TrackObjectifier(_transponderReceiver, _monitoredArea, _parseTrackInfo, _flightExtractor, _timestampFormatter);

            ATM = new ATMSystem(_trackObjectifier, _listHandler);

            _argList = new List <string>
            {
                "ATR423;39045;12932;14000;20151006213456789",
                "DSD323;40000;12930;15000;20151006213456789"
            };

            _args = new RawTransponderDataEventArgs(_argList);

            _trackObjectifier.TrackListReady += (sender, updatedArgs) =>
            {
                _trackList = updatedArgs.TrackList;
            };
        }
Beispiel #24
0
        public void RaiseEvent_ListWith2_Correct2ndTrackYcor()
        {
            var args = new RawTransponderDataEventArgs(info);

            _transponderReceiver.TransponderDataReady += Raise.EventWith(args);
            Assert.That(_receivedArgs.TrackObjects[1].YCoordinate, Is.EqualTo(45678));
        }
Beispiel #25
0
        public void RaiseEvent_ListWith2_Correct1stTrackTimeStamp()
        {
            var args = new RawTransponderDataEventArgs(info);

            _transponderReceiver.TransponderDataReady += Raise.EventWith(args);
            Assert.That(_receivedArgs.TrackObjects[0].TimeStamp, Is.EqualTo(DateTime.ParseExact("20151006213456789", "yyyyMMddHHmmssfff", CultureInfo.InvariantCulture)));
        }
Beispiel #26
0
        public void RaiseEvent_ListWith2_Correct2ndTrackAltitude()
        {
            var args = new RawTransponderDataEventArgs(info);

            _transponderReceiver.TransponderDataReady += Raise.EventWith(args);
            Assert.That(_receivedArgs.TrackObjects[1].Altitude, Is.EqualTo(2000));
        }
Beispiel #27
0
        public void RaiseEvent_ListWith2_Correct1stTrackXcor()
        {
            var args = new RawTransponderDataEventArgs(info);

            _transponderReceiver.TransponderDataReady += Raise.EventWith(args);
            Assert.That(_receivedArgs.TrackObjects[0].XCoordinate, Is.EqualTo(12345));
        }
Beispiel #28
0
        public void RaiseEvent_ListWith2_Correct1stTrackTag()
        {
            var args = new RawTransponderDataEventArgs(info);

            _transponderReceiver.TransponderDataReady += Raise.EventWith(args);
            Assert.That(_receivedArgs.TrackObjects[0].Tag, Is.EqualTo("Tag123"));
        }
Beispiel #29
0
        public void RaiseEvent_ListWith2_Raised1Event()
        {
            var args = new RawTransponderDataEventArgs(info);

            _transponderReceiver.TransponderDataReady += Raise.EventWith(args);
            Assert.That(_nEventsRaised, Is.EqualTo(1));
        }
Beispiel #30
0
        public void SecondSet_CreateTracks_FilterTracks_UpdateTracks(string trackOneFirst, string trackOneSecond, double trackOneCourse, double trackOneVelocity)
        {
            //First position
            var data = new List <string>();
            var args = new RawTransponderDataEventArgs(data);

            var track1 = trackOneFirst;

            data.Add(track1);

            _fakeTR.TransponderDataReady += Raise.EventWith(args);

            //Second position
            data = new List <string>();

            track1 = trackOneSecond;

            data.Add(track1);

            _fakeTR.TransponderDataReady += Raise.EventWith(args);

            Assert.That(_updatedTrackList.Count == 1);
            Assert.That(_updatedTrackList[0].Tag, Is.EqualTo(trackOneFirst.Split(';')[0]));
            Assert.That(_updatedTrackList[0].Course, Is.EqualTo(trackOneCourse));
            Assert.That(_updatedTrackList[0].Velocity, Is.EqualTo(trackOneVelocity));
        }
        public void EventRaisedDataAndReceivedCountCompare()
        {
            var args = new RawTransponderDataEventArgs(testData);

            fakeTransponderReceiver.TransponderDataReady += Raise.EventWith(args);
            Assert.That(nEventsReceived, Is.EqualTo(testData.Count));
        }
Beispiel #32
0
        private void Handledata(object sender, RawTransponderDataEventArgs e)
        {
            foreach (var planeInfo in e.TransponderData)
            {
                //AAA123;12345;12345;12345;12345678901234567

                string[] words = planeInfo.Split(';');
                List<string> stringList = words.ToList();

                if (TracksList.Any(plane => plane.Tag == stringList[0]))
                {
                    var item = TracksList.First(track => track.Tag == stringList[0]);
                    item.UpdateTrack(stringList[0], int.Parse(stringList[1]), int.Parse(stringList[2]), int.Parse(stringList[3]), new TimeStamp(stringList[4]));
                }
                else
                {
                    AddTrack(new Track(stringList[0], int.Parse(stringList[1]), int.Parse(stringList[2]), int.Parse(stringList[3]), new TimeStamp(stringList[4]))); 
                }
            }
        }