-
Notifications
You must be signed in to change notification settings - Fork 2
Description
While using the vSID plugin, several airports inside my visibility range were incorrectly considered out of range, causing departures not to appear in the SID/Runway selector. This happened because the outOfVis() logic treats any ATC entry with the same frequency as the current controller as a match — even if the callsign does not match.
This causes visibility logic to incorrectly use neighbor controllers’ visPoints, which can hide airports that should be visible.
This also matches reports from another Middle East vACC that experiences the same “empty SID/RWY selector” problem.
Technical Details
Problematic code (simplified)
In outOfVis():
if (myCallsign == atc.callsign || myFreq == atc.freq)
{
if (atc.visPoints.empty()) return true;
return std::all_of(
atc.visPoints.begin(),
atc.visPoints.end(),
[myRange, fpPos](const CPosition& visPoint)
{
return visPoint.DistanceTo(fpPos) > myRange;
}
);
}
The condition:
myCallsign == atc.callsign || myFreq == atc.freq
matches any ATC with the same frequency.
In my FIR (Iran vACC), several neighboring controllers share the same frequency (135.200).
This causes the plugin to pick up another sector’s visPoints, which excludes airports in my own sector.
Symptoms
- Controller:
TEH_CTR– Frequency: 135.200 - Aircraft: Departing OIZH (Zahedan)
- OIZH is well within TEH_CTR visibility
- Departure list is empty
- SID and runway selector are empty / disabled
- Controller cannot assign SID/RWY because plugin thinks the aircraft is out of range
Local Fix I Applied
Changing:
if (myCallsign == atc.callsign || myFreq == atc.freq)
to:
if (myCallsign == atc.callsign)
completely resolves the issue — OIZH traffic shows correctly.
But I am not sure whether:
- this is the intended behavior,
- or if the frequency match was meant for something else,
- or if I am bypassing part of the plugin’s design.
This is why I’m reporting it.
Request
-
Please review the logic of
outOfVis(), especially the frequency comparison.
In large FIRs (Middle East, Asia, parts of Europe), frequency reuse is common — so this condition may incorrectly merge visibility regions. -
Confirm whether the correct match should only be by callsign, not frequency.
-
If frequency matching is required, consider adding better disambiguation:
- Match both callsign and frequency
- Or match callsign first and use frequency as fallback only if needed
If you want i can share my sector with euroscope log file that can help you to debug this issue 👍
Metadata
Metadata
Assignees
Labels
Type
Projects
Status