Jump to content
Juha Holopainen

TopSky plugin public beta

Recommended Posts

The next version of the TopSky plugin has been in development now for almost two years. Progress has been slow for various reasons, but for a long time now the only thing delaying the release has been a possible crash-causing bug in the code. I've never encountered the crash myself, and the few reports I have of it happening are months apart with so far no clue as to where the issue might be, or even if it is the plugin at fault or something else.
 
Rather than delay the release indefinitely, I've decided to put the plugin into a public beta period, hoping that there are brave souls willing to risk getting a crash so that I could get the necessary information to fix the issue, or if enough time passes and no issues are found, consider it stable enough and release it.
 
For testing purposes, the plugin package contains a command-line utility called ProcDump. It is used to monitor the EuroScope process, and in case of a crash write a memory dump which I can then examine to find out where the problem is in the code. While I can't prevent anyone using the plugin without ProcDump running, I can't stress enough how important it is to use it as a memory dump is most likely the only way to find out the cause for the crash if it happens, as it doesn't seem to be related to any specific action.
 
If you're still interested in helping out, here's the download link.
 
Installation:
 
The beta package contains up-to-date common manual sets, a version history document listing some of the main changes and folders including files for three setups: Estonia (EE), Finland (FI) and Sweden (SE). The instructions here assume the basic controller package for the country is already installed as the beta package only contains the files specific to the beta plugin.
 
It is possible to have both the current release version of the plugin and the beta installed at the same time, and that is the configuration I recommend as you might want to use the familiar and well-tested release version on some occasions. However, here are install instructions for both the "beta only" and "release+beta" setups:
 
Beta-only installation:
  1. Put the procdump.exe file somewhere
  2. Copy the files in the package's PluginsBeta folder to the Plugins folder of your setup, overwriting where necessary
  3. Extract the files in the package's Settings folder to a temporary location
  4. Rename the settings files by removing the "_beta" part from each file
  5. Copy the settings files to the Settings folder of your setup, overwriting the existing files
 
Release+beta installation:
  1. Put the procdump.exe file somewhere
  2. Create a copy of the Plugins folder of your setup and rename the copy PluginsBeta
  3. Copy the files in the package's PluginsBeta folder to the new PluginsBeta folder of your setup, overwriting where necessary
  4. Copy the files in the package's Settings folder to the Settings folder of your setup
  5. Create a copy of the profile file you normally use in EuroScope, name it as you want
  6. Edit the new profile file using a text editor as follows:
    1. Replace all occurrences of "Lists.txt" with "Lists_beta.txt"
    2. Replace all occurrences of "Symbols.txt" with "Symbols_beta.txt"
    3. Replace all occurrences of "Tags.txt" with "Tags_beta.txt"
    4. Replace all occurrences of "Plugins\TopSky.dll" with "PluginsBeta\TopSky.dll"

Use:
 
To enable the crash dump generation, the ProcDump utility must be run when using the plugin. It can be launched from the command line if necessary, but it's probably easiest to create a batch file to do it automatically. Here's how:
 
  1. Create a text file wherever you like, and name it appropriately, for example "ES+procdump.bat"
  2. Edit the file using a text editor to contain the following:
start "" "C:\some folder\shortcut.lnk"
cmd /c ""C:\another folder\procdump.exe" -e 1 -ma -w euroscope.exe "C:\yet another folder\dumps""
  • "C:\some folder\shortcut.lnk" is the shortcut you use to launch ES (you may need to create a new shortcut to use the new profile file if you chose the "release+beta" setup)
  • "C:\another folder\procdump.exe" is where you put the procdump.exe file
  • "C:\yet another folder\dumps" is the folder where you want the crash dumps to be put to. It is optional, but if specified, make sure the folder exists as ProcDump will not create it by itself (if not specified, the dump will be put in the folder the batch file is in).
 
Then just run the batch file whenever you want to use the beta plugin, it'll start both EuroScope and ProcDump for you. ProcDump will open a command prompt window when it's running, don't close it!
 
 Note  that if you're running more than one instance of EuroScope at a time, the batch file can't be used to launch the second (and subsequent) instances as then the "euroscope.exe" in the command won't be enough to specify the wanted process. Launch the new EuroScope instance as you normally would, then open a command prompt window and type in the following command to attach ProcDump to the EuroScope instance:
"C:\another folder\procdump.exe" -e 1 -ma -w PID "C:\yet another folder\dumps"

PID is the process ID number for the correct EuroScope process. To see that, open Task Manager and see its Details page for the PID number. Note that you'll have to check the PID of the already started ES instance before you launch the next one so you know which one is the new one. A bit complicated but only necessary when using multiple ES instances and wanting to make sure a crash dump is generated if any of the instances crash.

It is possible to create a memory dump file from Task Manager even without ProcDump running. Just right-click on the desired process and select "Create dump file". It will be created into a temporary folder so don't forget to move it somewhere safe before logging off or shutting down your computer. I'm not sure if this dump file provides the same information as the one produced by ProcDump, or if it can be created in all crash situations, but if it can and you've forgotten to run ProcDump, it's better than nothing so try to keep this option in mind as well.

I've noticed that opening some file dialogs in EuroScope will for some reason make ProcDump think ES has crashed. It will then create the dump and terminate itself (the only way to spot this is to notice that the command prompt window is no longer displayed on the task bar...). If that happens, ProcDump can be started again and it's probably easiest to have another batch file to do that. Just create a copy of the first batch file and remove the first line from it that launches the ES shortcut. The remaining line runs ProcDump and it automatically attaches to the already running EuroScope process, it won't be necessary to start EuroScope again (which is handy if you're already controlling).

It's a good idea to test everything is set up correctly regarding the crash dumps when you've done all this. Run the batch file and wait until ES has started and the plugin has loaded. Then, enter the command ".topskycrash" to the EuroScope command line. It will cause an immediate unhandled exception that crashes the plugin and EuroScope. Check that the dump file was created. If you can’t find the dump file (it's somewhat over 200MB in size and should be named "EuroScope.exe_170424_224756.dmp" for a crash on April 24th 2017 at 22:47:56 system time) where you thought it’d be or anywhere for that matter, something went wrong in the setup.

Instructions:
 
  • If you have any questions about the beta program or how to install and set it up, please post on this thread. I hope I got all the information right, but I wouldn't be surprised if it wasn't 100% correct. I'll clarify where necessary.
  • If the plugin crashes and a dump file is available, let me know where I can download it.
  • Even though the main objective is to find out if there is a problem in the code - and if so - fix it, please report if you find anything wrong, no matter how trivial. All these reports should be posted in a dedicated thread I'll create for this purpose in the Finland FIR subforum. That'll keep all the information in one place, and I have moderator privileges there to keep the thread tidy. Also post there if the plugin crashes regardless of whether a dump is available or not so others get an idea of what's happening.
 
Edited by Juha Holopainen
Download link updated to beta 11
  • Like 4

Share this post


Link to post
Share on other sites

A few words on using the beta on setups other than EE, FI or SE: In Denmark the SE setup can be used with one adjustment: the information in the TopSkyCPDLC.txt plugin data file is specific to Sweden, so it can't be used in Denmark. For other setups, TopSky.dll and TopSkyCPDLCsound.wav can be used anywhere, but the other data and settings files must be created specifically for the setup in question.

For any setup, it is important not to mix the data and settings files between the release and beta plugin versions. The data files for the beta version contain information the release version can't use (attempting to use the beta data files with the release plugin will usually just cause error messages but in some cases even a crash). With the settings files, using the wrong version will lead to missing information and/or functionality.

Share this post


Link to post
Share on other sites

The download link in the first message now points to the current beta version. Beta 7 will continue to work until Nov 30th as the current version does not have any critical fixes, but update as soon as practical.

Changes from beta 7:

  • Graphical issue in the Create APL Window fixed
  • Minor changes in the CPDLC code to how the connection with an aircraft is terminated on handoff or when dropping track
  • FI setup CPDLC data file updated
  • Manual sets updated

As the whole CPDLC system is difficult to test offline and so few pilots use it on the network, I'd be interested to hear any feedback on how it works.

Share this post


Link to post
Share on other sites

I've used the DCL functionality on the strip a few times now and it works like a charm. I've only given 100% standard clearances with it so don't know if AHDG deps/modified runway works. But yeah, it's mainly other Finnish ATCOs that I've used it with since the adoption rate of CPDLC seems to be extremely low, probably due to the slightly outdated  and – perhaps for some – difficult client in the pilot's end. Whenever I'm in charge of clearances I do advertise the availability of DCL in my infoline, hopefully that'll attract some new pilots to start using the system when they see that it's being used at least somewhere.

Share this post


Link to post
Share on other sites

I've now uploaded beta 9, download from the link in the first message.

Two fixes in this build, both relating to CPDLC use. One fixes an issue where all time related items (list items, flight leg estimate times, etc.) in the plugin would be based on erroneous data if either of the two CPDLC message log windows were open with at least one message displayed. The other resolves a situation where if the CPDLC server connection failed, the resulting Warning message box in the center of the radar screen could not be closed until a new connection to the server was made.

Share this post


Link to post
Share on other sites

The current version is now beta 10.

Code-wise, the changes from beta 9 are minor. I have received two crash dumps related to beta 9, but unless I'm blind, they don't seem to be pointing to the right part in the code (the part where the crash is claimed to have occurred should not have been entered at all). Right now I'm looking at three different possible reasons for the crashes:

  1. the crash was caused by the plugin code, but somewhere else than where it's indicated
  2. the crash actually happened in EuroScope, and the plugin just got the blame for it (I have no way to find out if this is the case, but hopefully Gergely can. No word from him on it yet)
  3. the crash happened somewhere else, outside of the EuroScope process (not very likely)

Beta 10 is an attempt to find the right part of code if the crash is caused by the plugin. It is compiled with most - if not all - code optimization turned off, which should decrease the odds of the debugger pointing to the wrong line in the source code when examining a crash dump. With the optimizations turned off, the plugin is both larger in size, and slower with all its inner workings. Due to this, the update to beta 10 is not mandatory, but highly recommended, as any crash dumps generated with beta 9 may not provide accurate information to help find the bug(s) in the code. Beta 10 should easily be fast enough to use on any normal situation.

Also, if you are running more than one instance of EuroScope and one of them crashes, please save a log of the session from a non-crashed instance. It may contain some relevant information about the situation leading to the crash. Even if you haven't normally used multiple instances, you could open one in any case. It's not necessary to use procdump with the second instance as it's a bit of a PITA using it with other than the first instance, and it doesn't need to be used in any way unless the primary instance crashes, in which case the log from the second instance should be saved. Just make sure you connect to the network using the first opened instance (the one with procdump monitoring the process), as it's the most likely one to crash.

Edited by Juha Holopainen

Share this post


Link to post
Share on other sites

Is it possible to save plugin settings so I don't have to change the settings every session? For example I always want 2 min predict line and always have the QNH/TL window visible as well as the notepad window.

Share this post


Link to post
Share on other sites

It is possible to "save" some of the plugin settings by specifying them in the plugin's settings files (TopSkySettings.txt or TopSkySettingsLocal.txt depending on whether they should be activated always or only when doing a "Sign In" with a specific callsign). Note that as those files are usually shipped with a package, you'll have to add your own settings back in every time the settings file of the package is updated.

All the possible settings that can be adjusted are found in the excel file in the beta package. Currently the status of the different windows can not be set, but the length of the prediction line can (inserting "Track_PredictionLine=2" into TopSkySettings.txt will set 2 minutes as the default value for the plugin).

Share this post


Link to post
Share on other sites

Beta 11 is now available. The code optimization is still turned off so that any future crash dumps would contain useful information.

Changes from beta 10 are fixes in the AIW system code, but more importantly, at least one cause for CTDs is also now fixed. The only changes in the beta package are the plugin dll and the excel developer guide file, as I noticed it was missing a dozen or so available settings.

The code that caused CTDs was related to departure sequence numbers. Releasing beta 10 with the optimization off turned out to be a good move as I finally received crash dumps that actually pointed to the correct place in the code where the crash occurred. Thanks to @Magnus Gustafsson for the files! (and sorry for the bad code :$ )

As I can't be sure if all the reported (and unreported) CTDs have been caused by the code that is now fixed, I'd like to know if someone has encountered an "unhandled exception" blamed on the plugin, and is absolutely sure to have NOT assigned any DSQ numbers at any point prior to the crash - even by accident.

Beta 9 and 10 will continue to work until the end of the year, but if you choose to use either of them, do not assign any DSQ numbers. If you accidentally do, immediately clear them to prevent a crash at some point in the future.

Share this post


Link to post
Share on other sites

@Juha Holopainen I've read and read through most of the manuals but I just can't find how to disable the lost list popping up everytime a plane touches down on a runway when no tower is online to hand the aircraft over to.

This might be a suggestion to fix in an upcoming version btw.

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×