Ejemplo n.º 1
0
        private void Simconnect_OnRecvAirportList(SimConnect sender, SIMCONNECT_RECV_AIRPORT_LIST data)
        {
            logger.LogDebug("Received Airport List");

            AirportListReceived?.Invoke(this, new AirportListReceivedEventArgs(data.rgData.Cast <SIMCONNECT_DATA_FACILITY_AIRPORT>().Select(airport => new Airport
            {
                Ident     = airport.Icao,
                Latitude  = airport.Latitude,
                Longitude = airport.Longitude,
                Elevation = airport.Altitude
            })));
        }
Ejemplo n.º 2
0
        private void SimConnect_OnRecvAirportList(SimConnect sender, SIMCONNECT_RECV_AIRPORT_LIST data)
        {
            List <SIMCONNECT_DATA_FACILITY_AIRPORT> list = new List <SIMCONNECT_DATA_FACILITY_AIRPORT>();

            foreach (SIMCONNECT_DATA_FACILITY_AIRPORT a in data.rgData)
            {
                SIMCONNECT_DATA_FACILITY_AIRPORT airport = new SIMCONNECT_DATA_FACILITY_AIRPORT();
                list.Add(a);
                Console.WriteLine(a.Icao);
            }

            // throw new NotImplementedException();
            Console.WriteLine("AIRPORTS");
        }
Ejemplo n.º 3
0
        void simconnect_OnRecvAirportList(SimConnect sender, SIMCONNECT_RECV_AIRPORT_LIST data)
        {
            switch ((DATA_REQUESTS)data.dwRequestID)
            {
            case DATA_REQUESTS.SUBSCRIBE_REQ:
            case DATA_REQUESTS.NONSUBSCRIBE_REQ:
                displayText("Airport List:");
                Dump(data);
                DumpArray(data.rgData);
                break;

            default:
                displayText("Unknown request ID: " + data.dwRequestID);
                break;
            }
        }
Ejemplo n.º 4
0
        public static string ToString(SIMCONNECT_RECV_AIRPORT_LIST list)
        {
            string res = "";
            string sep = "";

            foreach (SIMCONNECT_DATA_FACILITY_AIRPORT a in list.rgData)
            {
                res += sep + "{";
                res += $"\"Latitude\": {(float)a.Latitude},";
                res += $"\"Longitude\": {(float)a.Longitude},";
                res += $"\"Altitude\": {(float)a.Altitude},";
                res += $"\"Icao\": \"{a.Icao}\"";
                res += "}";
                sep  = ", ";
            }
            return($"\"airports\": [ {res} ]");
        }
        private void Simconnect_OnRecvAirportList(SimConnect sender, SIMCONNECT_RECV_AIRPORT_LIST data)
        {
            string text = $"Airport List (page {data.dwEntryNumber + 1} of {data.dwOutOf} w/ {data.rgData.Length} rows of data):";

            switch ((DATA_REQUESTS)data.dwRequestID)
            {
            case DATA_REQUESTS.AIRPORT_DATA_SUB:
                subAirports.AddRange(data.rgData.Select((object item) => (SIMCONNECT_DATA_FACILITY_AIRPORT)item));
                subAirportsDistinct = subAirports.Distinct(new AirportComparer()).ToList();


                lErrorMessages.Add($"{text}: {subAirports.Count()} total / {subAirportsDistinct.Count()} unique");


                if (data.dwEntryNumber + 1 == data.dwOutOf)
                {
                    lErrorMessages.Add($@"Count of KCWA in the total list = {
                            subAirports.Where((SIMCONNECT_DATA_FACILITY_AIRPORT airport) => airport.Icao.Equals("KCWA", StringComparison.OrdinalIgnoreCase)).Count()
                        }");
                    lErrorMessages.Add($@"Count of KHYI in the total list = {
                            subAirports.Where((SIMCONNECT_DATA_FACILITY_AIRPORT airport) => airport.Icao.Equals("KHYI", StringComparison.OrdinalIgnoreCase)).Count()
                        }");
                    lErrorMessages.Add($@"Count of KLAX in the total list = {
                            subAirports.Where((SIMCONNECT_DATA_FACILITY_AIRPORT airport) => airport.Icao.Equals("KLAX", StringComparison.OrdinalIgnoreCase)).Count()
                        }");
                    lErrorMessages.Add($@"Count of KLAX in the distinct list = {
                            subAirportsDistinct.Where((SIMCONNECT_DATA_FACILITY_AIRPORT airport) => airport.Icao.Equals("KLAX", StringComparison.OrdinalIgnoreCase)).Count()
                        }");
                }
                break;

            default:
                lErrorMessages.Add("Unknown Simconnect_OnRecvAirportList request ID: " + data.dwRequestID);
                break;
            }
        }