コード例 #1
0
        /// <summary>
        /// See interface docs.
        /// </summary>
        /// <param name="json"></param>
        /// <returns></returns>
        public IEnumerable <BaseStationMessageEventArgs> ConvertIntoBaseStationMessageEventArgs(AirnavXRangeJson json)
        {
            var result = new List <BaseStationMessageEventArgs>();

            foreach (var jsonAircraft in json.Aircraft)
            {
                var message = new BaseStationMessage()
                {
                    MessageType      = BaseStationMessageType.Transmission,
                    TransmissionType = BaseStationTransmissionType.AirToAir,        // This needs to be something other than "None" or "AllCallReply" if we want to have these messages work with the message compressor
                    StatusCode       = BaseStationStatusCode.None,
                };

                if (jsonAircraft.SignalLevel != null)
                {
                    message.SignalLevel = (int)(jsonAircraft.SignalLevel + -0.5);
                }
                if (jsonAircraft.Icao24 != null)
                {
                    message.Icao24 = jsonAircraft.Icao24;
                }
                if (jsonAircraft.Altitude != null)
                {
                    message.Altitude = jsonAircraft.Altitude;
                }
                if (jsonAircraft.Callsign != null)
                {
                    message.Callsign = jsonAircraft.Callsign;
                }
                if (jsonAircraft.GroundSpeed != null)
                {
                    message.GroundSpeed = jsonAircraft.GroundSpeed;
                }
                if (jsonAircraft.Track != null)
                {
                    message.Track = jsonAircraft.Track;
                }
                if (jsonAircraft.Squawk != null)
                {
                    message.Squawk = jsonAircraft.Squawk;
                }
                if (jsonAircraft.VerticalRate != null)
                {
                    message.VerticalRate = jsonAircraft.VerticalRate;
                }
                if (jsonAircraft.OnGround != null)
                {
                    message.OnGround = jsonAircraft.OnGround;
                }

                if (jsonAircraft.Latitude != null || jsonAircraft.Longitude != null)
                {
                    if (jsonAircraft.Latitude != null)
                    {
                        message.Latitude = jsonAircraft.Latitude;
                    }
                    if (jsonAircraft.Longitude != null)
                    {
                        message.Longitude = jsonAircraft.Longitude;
                    }
                }

                result.Add(new BaseStationMessageEventArgs(message));
            }

            return(result);
        }
コード例 #2
0
 public void TestInitialise()
 {
     _Converter = Factory.Resolve <IAirnavXRangeMessageConverter>();
     _Json      = new AirnavXRangeJson();
 }