I assure IAS - stop guessing wind corrections based on pilot reports. IASsure
calculates indicated air speed (IAS) and Mach number of EuroScope radar targets based on their ground speed and (real-life) weather data.
This plugin allows you to make better informed decisions based on aircraft speed without relying on pilot reports - speed control just became a lot less guesswork.
Since IASsure
was developed as an EuroScope plugin, it requires a working installation EuroScope. The initial development was started using EuroScope version v3.2.1.34
, although the plugin should most likely also work fine with previous and later versions. As development continues, compatibility to the latest beta versions of EuroScope will be maintained as long as possible and feasible.
Each release includes a checksums.txt
file, containing the sha256
checksums of the downloadable artifacts. In order to verify the checksum's integrity, a detached gpg
signature (checksums.txt.sig
) is available for all official releases as well.
All signatures are made using GPG key 54930D654C505BA73BC06A0E4C685956F39779B2
.
In order to verify a release, perform the following steps:
- Import the signing key into your local keyring (only required once):
gpg --import 54930D654C505BA73BC06A0E4C685956F39779B2.asc
- Download the appropriate archive,
checksums.txt
andchecksums.txt.sig
from the Releases page - Verify the integrity of the checksums file:
gpg --verify checksums.txt.sig checksums.txt
- Verify the checksum of the downloaded archive:
sha256sum --ignore-missing -c checksums.txt
- Download the latest release (
IASsure_vX.Y.Z.zip
) ofIASsure
from the Releases section of this repository. - (Optional) Verify downloaded release.
- Extract the zip file to a location of your choosing (most likely somewhere inside your EuroScope sector file/profile setup, along with other plugins that are already set up). As a config file is supported (and expected to reside within the same folder as the plugin's
.dll
), it's advised to create a newIASsure
folder. - Start EuroScope and open the Plug-ins ... dialog in the settings menu (OTHER SET).
- Load the plugins by navigating to the folder you extracted
IASsure
to and selecting the exactedIASsure.dll
. Ensure the expected version is displayed. - Close the plugin dialog by clicking Close.
- Configure your tags via the TAG editor ... dialog in the settings menu (OTHER SET). See tag items and tag functions below for a list of available options.
- Close the tag editor dialog by clicking OK.
IASsure
currently supports two calculated speed values for aircraft: indicated air speed (IAS) and Mach number. Both values are available in various representations (see tag items below).
All calculations are based on the ground speed of radar targets and can be performed with or without (real-life) weather data to correct for wind/temperature deviations. Note that even with accurate (real-life) wind data, some values might be off by quite a margin as pilots sometimes use different winds. Generally speaking, MSFS wind data seems to correlate with the calculated values quite well even though small inaccuracies are always to be expected.
In addition, IASsure
lets you set the reported IAS/Mach number for aircraft. Selecting a value displays a difference to the calculated value and provides a quick overview of different winds/speed differences between aircraft, making speed based sequencing easier.
Tag items are used to display calculated IAS and Mach values for radar targets.
Whilst only these two values are available at the moment, there's several representations to be picked from:
Displays (full) calculated indicated air speed (in knots) including selected prefix (default I
).
Recommended function setup:
- Left click: Open reported IAS menu
- Right click: Toggle calculated IAS
Displays (full) calculated indicated air speed (in knots) including selected prefix (default I
), can be toggled on and off via Toggle calculated IAS tag item function. No/empty value is displayed by default until toggle has been triggered.
To be used in reduced tags to selectively display calculated IAS without showing values for all aircraft.
Displays abbreviated calculated indicated air speed (in tens of knots) without any prefix.
Recommended function setup:
- Left click: Open reported IAS menu
- Right click: Toggle calculated IAS (abbreviated)
Displays abbreviated calculated indicated air speed (in tens of knots) without any prefix, can be toggled on and off via Toggle calculated IAS (abbreviated) tag item function. No/empty value is displayed by default until toggle has been triggered.
To be used in reduced tags to selectively display calculated IAS without showing values for all aircraft.
Displays calculated Mach number including selected prefix (default M
) and configured precision (default 2 digits).
Recommended function setup:
- Left click: Open reported Mach menu
- Right click: Toggle calculated Mach
Displays calculated Mach number including selected prefix (default M
) and configured precision (default 2 digits), can be toggled on and off via Toggle calculated Mach tag item function. No/empty value is displayed by default until toggle has been triggered.
To be used in reduced tags to selectively display calculated Mach number without showing values for all aircraft.
Displays calculated Mach number including selected prefix (default M
) and configured precision (default 2 digits) for all aircraft above the desired flight level threshold (default FL245). Any aircraft below the threshold will have an empty tag.
Recommended function setup:
- Left click: Open reported Mach menu
- Right click: Toggle calculated Mach (above threshold)
Displays calculated Mach number including selected prefix (default M
) and configured precision (default 2 digits) for all aircraft above the desired flight level threshold (default FL245). Any aircraft below the threshold will have an empty tag. This tag can be toggled on and off via Toggle calculated Mach (above threshold) tag item function. No/empty value is displayed by default until toggle has been triggered.
To be used in reduced tags to selectively display calculated Mach number without showing values for all aircraft.
Triggering this tag function clears the selected reported indicated air speed for this radar target (if one has been set). This functionality is also available via the reported IAS menu, but can be assigned separately if desired.
Triggering this tag function clears the selected reported Mach number for this radar target (if one has been set). This functionality is also available via the reported Mach menu, but can be assigned separately if desired.
Triggering this tag function allows controllers to select the indicated air speed reported by the pilot (e.g. via voice). This will switch the Calculated IAS and Calculated IAS (abbreviated) (as well as their togglable counterparts) to display the difference between calculated and reported IAS, providing a quick overview in the spot winds for the selected aircraft. This allows for easier estimation of required speed differences in sequencing if two radar targets use different winds.
As shown above, the speed difference of 15kts (270 calculated, 255 reported) is displayed as -02
(in abbreviated form, rounded to 20kts), indicating the aircraft is roughly 20kts slower than expected.
Triggering this tag function allows controllers to select the Mach number reported by the pilot (e.g. via voice). This will switch the Calculated Mach and Calculated Mach (above threshold) (as well as their togglable counterparts) to display the difference between calculated and reported Mach number, providing a quick overview in the spot winds for the selected aircraft. This allows for easier estimation of required speed differences in sequencing if two radar targets use different winds.
As shown above, the speed difference of M0.01 (M0.80 calculated, M.081 reported) is displayed as +01
, indicating the aircraft is roughly M0.01 faster than expected.
Toggles the display of the Calculated IAS (togglable) for the selected aircraft, enabling the tag item's content. Executing this function for the same radar target again disables the togglable display value.
Toggles the display of the Calculated IAS (abbreviated, togglable) for the selected aircraft, enabling the tag item's content. Executing this function for the same radar target again disables the togglable display value.
Toggles the display of the Calculated Mach (togglable) for the selected aircraft, enabling the tag item's content. Executing this function for the same radar target again disables the togglable display value.
Toggles the display of the Calculated Mach (above threshold, togglable) for the selected aircraft, enabling the tag item's content. Executing this function for the same radar target again disables the togglable display value.
Toggles the unreliable speed indication for the selected aircraft, marking the calculated speeds as unreliable. Executing this function for the same radar target again disables the status.
Chat commands allow for some on-the-fly configuration of IASsure
's features. All commands are prefixed with .ias
and provide some basic information about their usage when executed without arguments. Executing .ias
(without any further commands/arguments) prints the version loaded and a list of available commands.
.ias debug
Toggles debug logging, displaying more messages about the internal state as well as weather data retrieval.
This setting will be saved to the EuroScope settings upon exit.
.ias reset
Resets the plugin's internal state, clearing all reported IAS/Mach numbers as well as toggled tag items, also removing the currently stored weather information and causing it to be re-fetched.
.ias reload
Reloads the plugin's config file.
.ias weather
Allows for configuration of IASsure
's weather handling via three subcommands:
.ias weather update <MIN>
Changes the interval (in minutes) between automatic weather data updates. Setting this value to 0
disables automatic weather updates.
This setting will be saved to the EuroScope settings upon exit.
.ias weather url <URL>
Configures URL for weather data file to be retrieved automatically.
You must set a value (either via this chat command) or the config in order to use (real-life) weather based calculations.
This setting will be saved to the EuroScope settings upon exit.
.ias weather clear
Clears all weather data currently stored, falling back to windless speed calculations. Mostly useful for debugging or troubleshooting purposes if retrieved data seems to be faulty.
.ias gs
Toggles between using the ground speed reported by the pilot client (default) and the one calculated by EuroScope. You should only need to change this if a lot of values based on the reported speed are off by a large margin (e.g. due to faulty pilot clients).
This setting will be saved to the EuroScope settings upon exit.
.ias prefix
IASsure
lets you configure the prefixes displayed for Calculated IAS and Calculated Mach tag items (as well as their respective togglable parts). This allows you to customize your tag items to your FIR's likings.
.ias prefix ias <PREFIX>
Sets desired prefix for Calculated IAS (and togglable equivalent) tag item. Calling this function without any prefix (.ias prefix ias
) will disable the prefix, only displaying the calculated value.
Note that the Calculated IAS (abbreviated) does not contain the configured prefix.
This setting will be saved to the EuroScope settings upon exit.
.ias prefix mach <PREFIX>
Sets desired prefix for Calculated Mach and Calculated Mach (above threshold) (and togglable equivalents) tag items. Calling this function without any prefix (.ias prefix mach
) will disable the prefix, only displaying the calculated value.
This setting will be saved to the EuroScope settings upon exit.
.ias mach
Changes settings related to Mach number calculations.
.ias mach digits <DIGITS>
Sets number of digits (precision) for displayed Mach numbers. Value provided must be between 1 and 5.
This setting will be saved to the EuroScope settings upon exit.
.ias mach threshold <FLIGHTLEVEL>
Sets threshold (as flight level) for Calculated Mach (above threshold) (and togglable equivalent). All radar targets above the selected threshold (245 by default) will have their Mach number calculated and displayed; all other aircraft will have an empty tag item instead. The provided threshold must be larger than 0 and provided in hundreds of ft (e.g. .ias mach threshold 245
).
This setting will be saved to the EuroScope settings upon exit.
Aside from the configuration provided via chat commands, IASsure
's behavior can be configured using a config file, allowing for easy distribution of default settings for your FIR.
The plugin searches for a config.json
file (formatted as JSON) located within the same directory as the loaded IASsure.dll
. If found, the file is read and parsed and settings are overwritten accordingly. Note that configuration loaded from the config.json
file currently takes precedence over EuroScope-configured settings.
All settings available via config file are optional - if no value was found in the file, IASsure
defaults to the value set via EuroScope settings.
The configuration file is expected to consist of a top level object with one or multiple of the following keys:
Key | Type | Description |
---|---|---|
mach |
object |
Mach number calculation settings |
ias |
object |
IAS calculation settings |
weather |
object |
Weather handling |
broadcast |
object |
Plugin broadcast/coordination configuration |
prefix |
object |
DEPRECATED Calculated IAS/Mach number prefixes |
Key | Type | Description |
---|---|---|
digits |
int |
Digit count for calculated Mach number |
thresholdFL |
int |
Threshold for Mach number calculations |
prefix |
string |
Calculated Mach number prefix |
unreliableIndicator |
string |
Indicator to display instead of Mach number for aircraft with unreliable speed toggled |
unreliableColor |
RGB string |
Color as RGB string ("123,123,123" ) to set for aircraft with unreliable speed toggled |
Key | Type | Description |
---|---|---|
prefix |
string |
Calculated IAS prefix |
unreliableIndicator |
string |
Indicator to display instead of IAS for aircraft with unreliable speed toggled |
unreliableColor |
RGB string |
Color as RGB string ("123,123,123" ) to set for aircraft with unreliable speed toggled |
Key | Type | Description |
---|---|---|
url |
string |
Weather data update URL |
update |
int |
Weather data update interval |
Key | Type | Description |
---|---|---|
unreliableSpeed |
bool |
Enables unreliable speed broadcasts |
This configuration block has been deprecated and was moved to the mach
and ias
objects.
Configuration will still be parsed for now, however you should update your config before the next major release as this option will be removed in the future.
Key | Type | Description |
---|---|---|
ias |
string |
Calculated IAS prefix |
mach |
string |
Calculated Mach number prefix |
As all barometric formulas used for IAS/Mach calculations require wind and temperature data, the best and most accurate results are achieved when using a (real-life) weather data source. All calculations can be performed without weather data as well (the plugin will fall back to this mode if no data can be retrieved), however the calculated results (especially the Mach number) will be inaccurate.
Note that weather data is only retrieved while the client is connected to VATSIM directly or via proxy - playback and sweatbox connections will not fetch weather information at all.
Since neither EuroScope nor VATSIM provide spot winds/enroute wind data, a data source for weather information is required in order to utilise wind-corrected data. The original weather implementation was based on Windy's data (or anything related provided in identical format) and defines several strategic reference points within a FIR. These points should cover all relevant parts/major traffic routes of your FIR in order to provide best weather data coverage without over-complicating weather data retrieval.
The following screenshot shows an example weather reference point setup as defined for the LOVV FIR.
The corresponding weather data file can be found here.
Since the Windy API unfortunately incurrs quite high license fees, no general weather data can be bundled into this plugin or offered by the author.
As an alternative, dotFionn wrote a wrapper parsing freely available weather data from Open-Meteo, allowing you to run your own weather source service for free. You can find the iassure-wx
service on GitHub - see the other repository for setup instructions. Thanks a lot to dotFionn for the work in creating a service to provide compatible data!
In addition to calculating IAS/Mach number and displaying a difference to the reported speed, IASsure
lets you mark the calculated values for an aircraft as unreliable via the Toggle unreliable speed
tag function.
Toggling an aircraft's speed as unreliable will change the way it is displayed in the respective tag items:
- If an
unreliableIndicator
is configured for either the Mach number or IAS, the plugin will display the configured value instead of the calculated value respectively. - If the
unreliableIndicator
is explicitly set to""
(empty string), the calculated speed value will still be displayed. This is allows you to still display the result while highlighting it in a different color. - If no
unreliableIndicator
is configured, the default values ("DIAS"
/"DMACH"
) will be used. - If an
unreliableColor
is configured for either the Mach number or IAS, the plugin will display the respective tag item in the color selected. - If no
unreliableColor
is configured, the color of the tag items will not be changed.
For the screenshot above, the indicator for IAS was set to "DIAS"
(default) and no color was configured. The indicator for the Mach number was set to ""
(note: explicitly has been set to empty string, would default to "DMACH"
otherwise) and a color value of "240,225,41"
was set.
Note that toggling an aircraft's speed as unreliable will automatically change both IAS and Mach number to their unreliable indication as both values will be "incorrect".
In addition to displaying the indication on your own EuroScope instance, IASsure
can broadcast the status change to other controllers (and multiple instances of EuroScope running on the same computer).
This will lead to other controllers seeing the aircraft's speed indication updating when you toggle the status, allowing for easier coordination and handovers.
An unreliable speed indication change is only broadcasted if the aircraft is tracked by the current controller or not tracked at all to avoid toggling the status for neighbouring units and aircraft currently not under your responsibility.
By default, this behavior is enabled. If you want to disable broadcasts (both sending and receiving them), set the unreliableSpeed
value of the broadcast
object in the config file to false
.
If you have a suggestion for the project or encountered an error, please open an issue on GitHub. Please provide a summary of your idea or problem, optionally with some logs or screenshots and ways to replicate for the latter.
Pull requests are highly welcome, feel free to extend the plugin's functionality as you see fit and submit a request to this repository to make your changes available to everyone. Please keep in mind this plugin attempts to provide features in a relatively generic way so it can be used by vACCs with different needs - try refraining from "hard-coding" any features that might just apply to a specific airport or vACC.
IASsure
currently has no external development dependencies that need to be configured manually aside from Visual Studio. Initial development started using Visual Studio 2022, although later versions should most likely remain compatible.
To allow for debugging, the project has been configured to launch EuroScope as its debug command. Since your installation path of EuroScope will most likely be different, you must set an environment variable EUROSCOPE_ROOT
to the directory EuroScope is installed in (not the actual EuroScope.exe
executable), for instance C:\Program Files (x86)\EuroScope
.
Note: if you're using TopSky in your sector file, triggering a breakpoint causes both EuroScope and Visual Studio to freak out, resulting in high resource usage and sluggish mouse movements due to the mouse wheel handling implemented in TopSky. To circumvent this issue, set System_UseMouseWheel=0
in your TopSkySettings.txt
before launching your debug session. This will prevent you from using your mouse wheel to scroll/zoom in TopSky, however makes debugging actually useful - don't forget to remove the setting before starting your next controlling session again.
NEVER debug your EuroScope plugin using a live connection as halting EuroScope can apparently mess with the VATSIM data feed under certain circumstances.
IASsure
is compiled using Windows SDK Version 10.0 with a platform toolset for Visual Studio 2022 (v143) using the ISO C++20 Standard.
This repository contains all third-party libraries used by the project in their respective third_party
and lib
folders:
EuroScope
: EuroScope plugin librarynlohmann/json
: JSON for Modern C++ (v3.11.2, MIT License), used for parsing the weather data and the optional config file
Many thanks to colleagues at vACC Austria and the Belux vACC for their help with development of calculations and wind data parsing as well as endless testing sessions pestering pilots to gauge plugin accuracy and refine the used formulas.