public static FlightGearInput stringToEnum(string property)
        {
            FlightGearInput enumProperty = (FlightGearInput)Enum.Parse(typeof(FlightGearInput), property, true);

            return(enumProperty);
        }
        /// <summary>
        /// Reads the data, gets rhe propertyName and then parsing.
        /// </summary>
        private void run()
        {
            while (this.running)
            {
                try {
                    IList <string> dataVector = this.tcpHandler.Read();
                    if (dataVector == null)
                    {
                        return;
                    }
                    FlightGearInput property = stringToEnum(dataVector[0]);
                    switch (property)
                    {
                    case FlightGearInput.Heading:
                        if (dataVector[2].Equals("double", StringComparison.CurrentCultureIgnoreCase))
                        {
                            this.Heading = double.Parse(dataVector[1]);
                        }

                        break;

                    case FlightGearInput.VerticalSpeed:
                        if (dataVector[2].Equals("double", StringComparison.CurrentCultureIgnoreCase))
                        {
                            this.VerticalSpeed = double.Parse(dataVector[1]);
                        }

                        break;

                    case FlightGearInput.GroundSpeed:
                        if (dataVector[2].Equals("double", StringComparison.CurrentCultureIgnoreCase))
                        {
                            this.GroundSpeed = double.Parse(dataVector[1]);
                        }

                        break;

                    case FlightGearInput.AirSpeed:
                        if (dataVector[2].Equals("double", StringComparison.CurrentCultureIgnoreCase))
                        {
                            this.AirSpeed = double.Parse(dataVector[1]);
                        }

                        break;

                    case FlightGearInput.GpsAltitude:
                        if (dataVector[2].Equals("double", StringComparison.CurrentCultureIgnoreCase))
                        {
                            this.GpsAltitude = double.Parse(dataVector[1]);
                        }

                        break;

                    case FlightGearInput.InternalRoll:
                        if (dataVector[2].Equals("double", StringComparison.CurrentCultureIgnoreCase))
                        {
                            this.InternalRoll = double.Parse(dataVector[1]);
                        }

                        break;

                    case FlightGearInput.InternalPitch:
                        if (dataVector[2].Equals("double", StringComparison.CurrentCultureIgnoreCase))
                        {
                            this.InternalPitch = double.Parse(dataVector[1]);
                        }

                        break;

                    case FlightGearInput.AltimeterAltitude:
                        if (dataVector[2].Equals("double", StringComparison.CurrentCultureIgnoreCase))
                        {
                            this.AltimeterAltitude = double.Parse(dataVector[1]);
                        }

                        break;

                    case FlightGearInput.Longitude:
                        if (dataVector[2].Equals("double", StringComparison.CurrentCultureIgnoreCase))
                        {
                            this.Longitude = double.Parse(dataVector[1]);
                        }

                        break;

                    case FlightGearInput.Latitude:
                        if (dataVector[2].Equals("double", StringComparison.CurrentCultureIgnoreCase))
                        {
                            this.Latitude = double.Parse(dataVector[1]);
                        }

                        break;

                    default:
                        break;
                    }
                }
                catch (IOException e) {
                    Console.WriteLine(e);
                    this.Disconnect();
                }
                catch (Exception e) {
                    Console.WriteLine(e);
                    continue;
                }
            }
        }