SimConnect FACILITY DATA cannot resolve all items

Version: SDK V1.2.2 MSFS2024 V 1.3.10

Frequency: Always

Severity: Blocker

Similar MSFS 2020 issue: not checked

Context: SimConnect FACILITY DATA cannot resolve all items by its design

Attachments: N/A, but can be provided upon request

Bug description:

Due to it’s design SimConnect FACILITY DATA cannot resolve all items

among many here for example:

FGSL airport reports a runway 22 with ILS MBO with region code FG (see below)
This ILS is colocated with a VOR/DME of the same icao code MBO but another frequency
(can be seen in charts - it may not be considered as smart but the world data cannot be changed…)
grafik

Due to its design treating ILSs as VOR facilities the SimConnect Data interface is not able to resolve the two, only one is replied when querying the MBO/FG VOR.
(my assumption is, that it is by chance which one is replied - but there might be a logic behind)

BTW a second call issued returns the same MBO VOR and not the ILS.

There is no way to further qualify a VOR than the region code and therefore capturing data via the SimConnect FACILITY DATA interface is not able to resolve all items.

Which then leads to incomplete datasets and breaks any application trying to gather such data from streamed facilities.

following part of a log:

Issued a FACILITY DATA VOR request for MBO/FG and got.

VOR: MBO/FG
		DME_AT_NAV	1	int
		Frequency_Hz	114500000	uint
		GS_ALTITUDE	0	double
		GS_Angle_deg	0	float
		GS_LATITUDE	0	double
		GS_LONGITUDE	0	double
		HAS_GLIDE_SLOPE	0	int
		IS_DME	1	int
		IS_NAV	1	int
		IS_TACAN	0	int
		LOC_BeamWidth_deg	0	float
		LOC_Heading_deg	0	float
		LS_CATEGORY	0	int
		TYPE	3	int
		VOR_ALTITUDE	17.068000793457031	double
		VOR_LATITUDE	3.7682166695594788	double
		VOR_LONGITUDE	8.72026115655899	double
		VorName	"MALABO"	string

which is the VOR but not the ILS

Below the reported airport data where the ILS reference is derived from.

AIRPORT:
        AirportName "Malabo"    string
        ICAO    "FGSL"  string
        Region  "FG"    string
        N_RUNWAYS   1   int

RUNWAY:
        PRIMARY_DESIGNATOR  0   int
-->     PRIMARY_ILS_ICAO    "MBO"   string
-->     PRIMARY_ILS_REGION  "FG"    string
        PRIMARY_ILS_TYPE    86  int
        PRIMARY_NUMBER  22  int
        RwLength_m  2939.29688  float
        RwWidth_m   42.3026276  float
        SECONDARY_DESIGNATOR    0   int
        SECONDARY_ILS_ICAO  ""  string
        SECONDARY_ILS_REGION    ""  string
        SECONDARY_ILS_TYPE  0   int
        SECONDARY_NUMBER    4   int
        SURFACE 4   int

APPROACH:
        AprType ILS FacilityStreamLib.Facilities.Data.ApproachType_FVD
        FAF_FixType WAYPOINT    FacilityStreamLib.Facilities.Data.FixType_FVD
        FAF_ICAO    "52MBO" string
        FAF_Region  "FG"    string
        FAF_TYPE    87  int
        N_FINAL_APPROACH_LEGS   3   int
        RUNWAY_DESIGNATOR   0   int
        RUNWAY_NUMBER   22  int
        SUFFIX  48  int
        TYPE    4   int

FINAL APPROACH LEG (last)
        FIX_ICAO    "RW22"  string
        FIX_Region  "FG"    string
        FIX_TYPE    82  int
        ORIGIN_TYPE 86  int
        Origin_FixType  VOR FacilityStreamLib.Facilities.Data.FixType_FVD
-->     Origin_ICAO "MBO"   string
-->     Origin_Region   "FG"    string
        TYPE    18  int

Is it possible to query the ILS without the region/with blank region? ILS don’t have a region code in MSFS, only the airport code.

I may try and report

though the airport reports the ILS with a region code in the Runway as well as the final approach segment so I used the ids given by the creators of the data…

Considering the previous case I had with the region code of the ILS beeing reported as the first 2chars of the airport rather than the ‘real’ region code. This works as hack to differentiate ILSs in US regions but it fails where the region code is really the first 2 chars of the airport, rest of world I think.
So they would need to create an artificial region code (or none, but then it would be no longer unique around the world)
In 2020 using the BGL files the VOR and ILS of this facilities are available so I think the data is there only how to get it is the question.
May be it is only a SimConnect issue but I cannot use the JS queries for my project.

Tried, SimConnect could not resolve it and caused the following reply:

Received MinimalList for request with the following items:
<0> ICAO: MBO/FG type:V
<1> ICAO: MBO/FG type:V

means it has the two but can only reply one of it… due to the limited selection criteria - legit design issue it seems or mending the code system used but this would probably cause many unwanted side effects …

May I add more issues…

there is a (prominent) VOR in Japan YTE/RJ where quite some airways are crossing. When asking for this Waypoint and its routes the Sim returns an RNAV waypoint without any ROUTE information - (NG charts has only the YTE VOR Yamagata listed).

The EFB allows to choose from YTE VOR or YTE waypoint where the YTE waypoint does not have airways (routes) attached to it but when selecting the VOR it properly returns all to select one.
grafik

Now again having two items with the same ID (name and region code) but different properties the SimConnect interface will only return one of them.

→ sorry to say but the ID system to access facilites from SimConnect with current means is just not up to the task.

Question to Asobo: Are there any plans to review and improve or are we stuck with the limitations when using the SimConnect facility interface?

rant on: Spent hours only to find out that it just does not work to gather the same and correct information as we could from the prev FS2020 sim.
rant off…

Hello @bm98

This will be looked at.
It probably requires a revision of the RequestFacilityData function.

I’m not sure to understand how you would not have the same problem with the MSFS 2020 version of the API.

Regards,
Sylvain

:slight_smile: sorry was tired that day…
I collected from BGL files and not from stream hence the whole facility usage was complete unknown to me and it took a while to sort it out…