Discussion ICARUS Terminal (Pre-Release)

In this weekends update I have added some engineering info to the Ship panel (among other improvements).

I will likely add cargo/materials as secondary item on the Ship panel next, then move on to the Cmdr panel.

I think it makes sense to revisit engineering once the Cmdr and Trade panels are implemented, both to provide a baseline bit of functionality for all panels (enough to cut a 1.0 release) and because it will likely be useful for them to integrate with each other (e.g. to be able to link from one panel to the other).

Not forgotten about the Window pinning option, that will likely drop in an update this week.

View attachment 281996
THis is beautiful~!!! Keep it up plz. Orzz
 
Hey there and merry christmas!

I wanted to give this a try, but I ran into two issues.

Issue 1: After downloading the latest installer and either running ICARUS Terminal from the start menu or launching it manually from the install directory, it bails with the message "ICARUS Terminal Service is already running. You can only run one instance at a time." It runs fine if I manually run the service executable and then run a terminal window with the "--terminal" switch (or calling the URL in my browser), but I cannot get the "normal" launcher window to run.

I looked at your source code, I'm pretty positive it is because the function "checkProcessAlreadyExists" tests against the hardcoded english phrase "No tasks are running". I'm running a german Windows though, so this check fails and the function returns a false positive.


Issue 2: I get wrong information on the ship tab. All my ships show a flak launcher equipped even though it isn't. Earlier today I equipped the festive flak launcher to see what it looks like (I never used one), but I put it back in storage. I had an issue though, I got an error from the game when trying to store it, so I had to first replace it and then store the new hardpoint.

The displayed flak launcher never goes away even after switching ships. I switched to my Cobra that has all four hardpoints equipped, in ICARUS now it has five :) (see screenshot). The loadout entry in the log doesn't contain the flak launcher, I have no idea where it is coming from.

Hope this helps. Give me a shout if you need more info on the flak launcher thingie.
 

Attachments

  • ICARUS Terminal.png
    ICARUS Terminal.png
    705.4 KB · Views: 95
Last edited:
Hello and Merry Christmas to you too!

Hey there and merry christmas!

I wanted to give this a try, but I ran into two issues.

Issue 1: After downloading the latest installer and either running ICARUS Terminal from the start menu or launching it manually from the install directory, it bails with the message "ICARUS Terminal Service is already running. You can only run one instance at a time." It runs fine if I manually run the service executable and then run a terminal window with the "--terminal" switch (or calling the URL in my browser), but I cannot get the "normal" launcher window to run.

I looked at your source code, I'm pretty positive it is because the function "checkProcessAlreadyExists" tests against the hardcoded english phrase "No tasks are running". I'm running a german Windows though, so this check fails and the function returns a false positive.

That was really helpful, thank you!

I knew that function was hacky and been intending to replace it as one other user reported the same problem, but I didn't know what was triggering it. I didn't think about the possibility of the tasklist app have localised output. This has now been resolved in the fix rolled out this morning.

Issue 2: I get wrong information on the ship tab. All my ships show a flak launcher equipped even though it isn't. Earlier today I equipped the festive flak launcher to see what it looks like (I never used one), but I put it back in storage. I had an issue though, I got an error from the game when trying to store it, so I had to first replace it and then store the new hardpoint.

The displayed flak launcher never goes away even after switching ships. I switched to my Cobra that has all four hardpoints equipped, in ICARUS now it has five :) (see screenshot). The loadout entry in the log doesn't contain the flak launcher, I have no idea where it is coming from.

Hope this helps. Give me a shout if you need more info on the flak launcher thingie.
Ah had a fix for this committed already and was just waiting for new release to cut to be rolled out. Module information should no longer be messed up after changing ships or modules. I had to remove ammo counts (for now) as they were sometimes stale. I'm not sure if I can get accurate data or all types of ammo yet (interestingly, passengers also count as a type of ammo!).

Both of these should be resolved now, plus some other improvements:

I was hoping to get some other new features in for today (Cargo, Engineering) but I think getting these fixed was more important.

I think there should be time over the holiday to add the Cargo, Engineering sections and expand the Commander panel.
 
Last edited:
Hey Flash, hope you had a good Christmas.

I noticed that the Nav Map show some planets and the starports in the wrong location.
For example, in the Diso system planets 4 and 5 are swapped over and Shifnalport which orbits Birmingham (Diso 3) is displayed as orbiting Diso 5 but in the place that should be Diso 4.

Diso 6B and 6BA are also displayed after Diso 6F
 

Attachments

  • DISO Icarus.jpg
    DISO Icarus.jpg
    169.1 KB · Views: 94
  • DISO ingame.jpg
    DISO ingame.jpg
    105.1 KB · Views: 79
Hey Flash, hope you had a good Christmas.

I noticed that the Nav Map show some planets and the starports in the wrong location.
For example, in the Diso system planets 4 and 5 are swapped over and Shifnalport which orbits Birmingham (Diso 3) is displayed as orbiting Diso 5 but in the place that should be Diso 4.

Diso 6B and 6BA are also displayed after Diso 6F
Hi there, Thanks for the report! I appreciate the screenshots too.

I'm currently not looking for bug reports about behaviour as it's basically a rabbit hole and there are multiple known issues without easy solutions, but improving it is in progress. I haven't discussed it in detail before though, so this is probably a good point to go into it a bit to give context!

The data comes from EDSM but is also doing best effort with the data that is available, and unfortunately often that is quite limited.

The map is currently rendering locations based on each bodies distance to arrival stored in EDSM.

Obviously orbits keep going in real time, so this is not always going to to be up to date. This may change to be augmented with local data and/or to to sort by name but that will need routines for exception handling (Diso 3 aka Birmingham is a good example of an edgecase where you would want to persist the ordinal location of a body). Body ID might also be a viable option for sorting, but I am not sure if there are edge cases where that might not work (e.g. Sol) and would also need an exception.

Allowing for a few edge cases scenarios, current behaviour can be improved and is very much the plan - to have the UI will indicate if the data is stale (and display the age of the data - e.g. 'last survey 10 days ago') or if you are in the same system, prompt you to do a scan yourself.

The challenge around objects like stations is that data quality that goes into EDSM is limited in accuracy, in part because the underlying game data it gets is also limited. If you look at Diso right now, then Shifnalport is shown orbiting Birmingham, but it will probably change again when new player game data is submitted to EDSM. Mars High in Sol is another system that goes walkabout for some reason.

diso.jpg


In the longer term, having ICARUS Terminal augment the EDSM data with player data should help mitigate issues like this, but without changes to the game API it can probably be never be fully resolved. It is particularly challenging problem for planetary outposts and for knowing what services are available, as this changes over time too.

Of course, in Horizons and Odyssey there are different settlements / outposts on a given planet. Currently the game displays everything it knows about, but to properly support Horizons players it would need to filter out the Odyssey only Settlements (and something I might do in the longer term).

My working assumption, based on timestamps of data and the sorts of things I've seen, is that there may be some clients out there which are submitting incorrect or misleading data to EDSM, which I assume is a bug but it's possible that is by design (e.g. they are posting incomplete survey data, which is being incorrectly extrapolated) and that just has unfortunate consequences.

Most vexingly, there are reports of settlements being on the wrong planet in a system; having looked at the game data that just should never be the case, which makes me think some clients are flat out reporting information incorrectly or there is an error on the processing side.
 
I'm on linux ...when I see what I need to build it, thanks, I'm pass :D
...I already have 7 different chromes copies, couple different "web views" etc.

Qt was invented like 20 years ago and it is cross-platform since then. Also latest versions can use JavaScript UI if you eager for that.
 
I'm on linux ...when I see what I need to build it, thanks, I'm pass :D

This is software for Windows.

Although I do develop this app on multiple platforms (based on whatever system I'm on at the time) Elite Dangerous is not officially supported on Mac or Linux and I'm not inclined to support them either as a result; but it's open source and builds cross platform so you can do what you want.

It's really easy to run on Linux for anyone with passing familiarity of how to run software on Unix. There are one line commands in the README to run the backend service and web front end; and it even supports setting the path to the game data using a shell environment variable.

...I already have 7 different chromes copies, couple different "web views" etc.

This software explicitly does not include a browser or HTML rendering engine or copy of Chrome or anything like that.

Qt was invented like 20 years ago and it is cross-platform since then. Also latest versions can use JavaScript UI if you eager for that.

I've been developing software on Windows, Mac and various Unix platforms for over 20 years. QT absolutely can't do a UI like this.
 
Last edited:
Flash Moonboots said:
  • Should no longer display "ICARUS Terminal Service is already running. You can only run one instance at a time." error when launching on non English systems. This check was re-written to be language independant.
didn't notice this bug even if non English system (but I didn't update program for some time though) but why do you need to add a mutex?
Would it be problematic to have multiple instances?

And If I may add a little request, could you add a standalone version too please? (no setup/installation-less)
Edit : oh gosh, this is why I had issues as well, you're using an Edgewebview module, any way to not using it?




Edit² : oh well, let's start from the beginning.
  • First please remove app from program files (allow folder selection)
  • Edgewebview module seems to have equivalents on other web-explorers, maybe offer to select another one?
    I'm aware that this may need work, I'm sorry if this may seem demanding, but i'm not using Edge at all and Edge isn't installed and blocked from auto-updates.
    I was using your tool in a sandbox that had edge installed for another tool testing, but here, it isn't working at all as there isn't any Edge anymore ...
  • Could you please add info on what are the prerequisites as well? (system details, configurations, versions etc...)
    It seems that Win10 is mandatory for full functionality ?
  • Could you add a standalone version too please? (no setup/installation-less)
  • Could you please add options to select if shortcuts should be added or not as well?
 
Last edited:
didn't notice this bug even if non English system (but I didn't update program for some time though) but why do you need to add a mutex?
Would it be problematic to have multiple instances?

Yes, having multiple services parsing the same data and firing the same broadcast messages would be bad.

You'd either be duplicating data and CPU/RAM/Disk usage with each terminal or having to marshal between processes and that would be a needless headache (and have it's own overheads). You'd have to have special handling for managing remote corrections too, it's a lot of work for a technically worse solution.

You can already have as many local or remote terminals open as you want - powered by a single service which completely shuts down when you close the launcher.

And If I may add a little request, could you add a standalone version too please? (no setup/installation-less)

I have no plans to do that.

It's strongly discouraged by Microsoft; you literally can't statically link DLLs or executables on Windows in any case so it would be something like a zip file or SEA. It would cause me far more problems for rolling out updates, permissions management and responding to people who's computer it doesn't work on because they are missing pre-requisites the installer checks for.

On Windows, it's generally bad idea for anything other than trivial apps with no dependencies - which is why typically only small standalone utilities are distributed this way. It would also be more work for me for no discernibly good reason; I'd much rather spend my free time on meaningful functionality.

Edit : oh gosh, this is why I had issues as well, you're using an Edgewebview module, any way to not using it?

Windows ships with it installed, and it works fine and is widely used.

What, specifically, is your problem and what version of Windows are you using?
 
Edit² : oh well, let's start from the beginning.
  • First please remove app from program files (allow folder selection)
  • Edgewebview module seems to have equivalents on other web-explorers, maybe offer to select another one?
    I'm aware that this may need work, I'm sorry if this may seem demanding, but i'm not using Edge at all and Edge isn't installed and blocked from auto-updates.
    I was using your tool in a sandbox that had edge installed for another tool testing, but here, it isn't working at all as there isn't any Edge anymore ...
  • Could you please add info on what are the prerequisites as well? (system details, configurations, versions etc...)
    It seems that Win10 is mandatory for full functionality ?
  • Could you add a standalone version too please? (no setup/installation-less)
  • Could you please add options to select if shortcuts should be added or not as well?

Sorry, I am not especially motivated to address those issues.

Without any rationale or context, they sound like esoteric problems specific to your setup, at least in part created by artificial constraints you've imposed, not generalized problems - and some of them would make the experience worse, more bloated, the functionality more restricted, and all at the cost of feature development for everyone else.

I would suggest at least Windows 10, though technically you can get it to run on Windows 7. Windows 10 came out in 2015 and was provided a free update to Windows 7 which came out in 2009 (and reached End of Life support from Microsoft a year ago). It's reasonable to expect most people will have upgraded to at least Windows 10 by now, and I'm not too concerned about supporting versions of Windows that are no longer officially supported by Microsoft.
 
Hi there, Thanks for the report! I appreciate the screenshots too.

I'm currently not looking for bug reports about behaviour as it's basically a rabbit hole and there are multiple known issues without easy solutions, but improving it is in progress. I haven't discussed it in detail before though, so this is probably a good point to go into it a bit to give context!

The data comes from EDSM but is also doing best effort with the data that is available, and unfortunately often that is quite limited.

The map is currently rendering locations based on each bodies distance to arrival stored in EDSM.

Obviously orbits keep going in real time, so this is not always going to to be up to date. This may change to be augmented with local data and/or to to sort by name but that will need routines for exception handling (Diso 3 aka Birmingham is a good example of an edgecase where you would want to persist the ordinal location of a body). Body ID might also be a viable option for sorting, but I am not sure if there are edge cases where that might not work (e.g. Sol) and would also need an exception.

Allowing for a few edge cases scenarios, current behaviour can be improved and is very much the plan - to have the UI will indicate if the data is stale (and display the age of the data - e.g. 'last survey 10 days ago') or if you are in the same system, prompt you to do a scan yourself.

The challenge around objects like stations is that data quality that goes into EDSM is limited in accuracy, in part because the underlying game data it gets is also limited. If you look at Diso right now, then Shifnalport is shown orbiting Birmingham, but it will probably change again when new player game data is submitted to EDSM. Mars High in Sol is another system that goes walkabout for some reason.

View attachment 283370

In the longer term, having ICARUS Terminal augment the EDSM data with player data should help mitigate issues like this, but without changes to the game API it can probably be never be fully resolved. It is particularly challenging problem for planetary outposts and for knowing what services are available, as this changes over time too.

Of course, in Horizons and Odyssey there are different settlements / outposts on a given planet. Currently the game displays everything it knows about, but to properly support Horizons players it would need to filter out the Odyssey only Settlements (and something I might do in the longer term).

My working assumption, based on timestamps of data and the sorts of things I've seen, is that there may be some clients out there which are submitting incorrect or misleading data to EDSM, which I assume is a bug but it's possible that is by design (e.g. they are posting incomplete survey data, which is being incorrectly extrapolated) and that just has unfortunate consequences.

Most vexingly, there are reports of settlements being on the wrong planet in a system; having looked at the game data that just should never be the case, which makes me think some clients are flat out reporting information incorrectly or there is an error on the processing side.
Makes perfect sense, and understand the approach. The disparity between EDSM and in game sometimes drives me crackers.
 
Sorry, I am not especially motivated to address those issues.

Without any rationale or context, they sound like esoteric problems specific to your setup, at least in part created by artificial constraints you've imposed, not generalized problems - and some of them would make the experience worse, more bloated, the functionality more restricted, and all at the cost of feature development for everyone else.

I would suggest at least Windows 10, though technically you can get it to run on Windows 7. Windows 10 came out in 2015 and was provided a free update to Windows 7 which came out in 2009 (and reached End of Life support from Microsoft a year ago). It's reasonable to expect most people will have upgraded to at least Windows 10 by now, and I'm not too concerned about supporting versions of Windows that are no longer officially supported by Microsoft.
Thanks for reply, I perfectly understand your point, but the biggest point here would be install it on another location, "Program files" is for specific windows-related tools and programs, that requires full or most rights to work.
Any way to install it somewhere else?
 
Thanks for reply, I perfectly understand your point, but the biggest point here would be install it on another location, "Program files" is for specific windows-related tools and programs, that requires full or most rights to work.
Any way to install it somewhere else?

Program Files is the correct location for native Windows applications to install into and is not limited to Windows related tools or based on the permissions an application needs to run. The application install directory is actually defined by the operating system (and is locale specific).

Is there some limitation in your scenario, like you are trying to install it on a PC that you don't have full access to, like a school or work computer?
 
Last edited:
Makes perfect sense, and understand the approach. The disparity between EDSM and in game sometimes drives me crackers.

So quick update on that, I read an old interview with a developer and based on what was said in that I explored using bodyId property (an integer) for sorting and tested it against a few dozen systems - it looks like that's also what the game uses to determine ordinals for planets, which was also the impression I got from the interview.

It works for planets and for moons of moons and for all the special cases I've tried (Rhea, Diso, Alioth, Sol, etc) so that will be in the next release.

I'll be keeping the distances from the arrival point as per EDSM (as it's useful to give a broad idea of how far out bodies are likely to be) and add things like 'time ago' and syncing with any more recent local data in future releases.

It won't resolve the odd station going AWOL but will make the maps a bit more predicable.
 
Update v0.2.18 is now live

Highlights in this release:

  • New Cargo Manifest view in Ship panel. Includes description and indicates if items are mission critical or if they are stolen.
  • New Engineering Panel with Raw/Manufactured/Encoded Materials list. Shows relevant uses for materials.
  • Planets in Navigation Map and List views now displayed in the same left / right order as the in game System Map (rather than by distance from main star)
  • Other minor bug fixes and quality of live improvements, especially for mobile devices

This initial implementation of Engineering materials list is not interactive and is a little basic, though it should be live updating and reflect accurate max counts, rarity, and some relevant uses for the materials, based on data from Coriolis.

Having live views of in game data with EDCD, Coriolis, EDSM and other data is where things start to get interesting, as it's possible for ICARUS Terminal to track all materials that relevant to existing engineering that is in progress, to display a list of relevant upgrades in the UI and their tradeoffs, where you can get them and recommend where to get them - including calling out nearby planets that indicate they have deposits of raw materials relevant to you on the surface, or ports with material traders and recommending materials you might want to exchange - and generally make the process of Engineering much easier, without any setup or configuration required.

For that reason, I'm probably going to focus on that flow and have removed the Cmdr, Trade and Comms tabs for now, but will return (likely starting with the Cmdr tab) when the Engineering tab has been built out a bit more. The initial focus of Engineering will be Ship Engineering but the same logic will be used for Odyssey engineering materials. There is still be more to come in the Navigation tab too.

 

Attachments

  • Screenshot (1699).png
    Screenshot (1699).png
    247.4 KB · Views: 81
  • Screenshot (1700).png
    Screenshot (1700).png
    355.6 KB · Views: 87
Last edited:
Program Files is the correct location for native Windows applications to install into and is not limited to Windows related tools or based on the permissions an application needs to run. The application install directory is actually defined by the operating system (and is locale specific).

Is there some limitation in your scenario, like you are trying to install it on a PC that you don't have full access to, like a school or work computer?
Not at all, personal computer, and program files is only for system related tools.
Gaming has nothing to do there (as it requires administrator access to modify things in it) remember when savegames were in there too, yep was a big mess...

My point here is that this tool shouldn't be there.
The application install directory is actually defined by the operating system (and is locale specific).
No, it's defined by the installed app, and the local used is %programfiles% and directs to "Program Files (x86)" folder (as it seems your tool is designed in 32-bit)
I guess your setup creator is configured to use this by default, and because of this install requires admin.
 
Not at all, personal computer, and program files is only for system related tools.
[...]
My point here is that this tool shouldn't be there.

That isn't true.

I guess your setup creator is configured to use this by default, and because of this install requires admin.

It's all open source (including the installer) so you are free to check it out to see how it works (or to make changes).

If you submit a Pull Request that changes the NSIS script to invoke MUI_PAGE_DIRECTORY macro conditionally on install (but not upgrade) using a function called with MUI_PAGE_CUSTOMFUNCTION_PRE (using an approach that cleans up after itself if it does anything weird that would leave traces after an uninstall) then I'll merge it in and release it. Alternatively, if you want to refactor it to use MSI with WiX that would be great too.

If you want a solution that works for you (as I suspect that won't actually be enough for you, based on what you've said - and are not saying) it would be helpful to answer the question to help me understand the limitation in your scenario that is preventing you from installing it.

e.g. are you are trying to install it on a PC that you don't have full access to install programs on, like a school or work computer.
 
Last edited:
Back
Top Bottom