EuroScope plug-in API upgrade

Thanks Gergely,

It would be great to be able to create Lists that are not linked to the FlightPlan class. They could for instance be linked to the Controller class or something entirely different.

Thanks for your continued dedication.

Stephen Odgaard
Vatsim Scandinavia

Together with new surveillance types, like MLAT and ADS-B, would be an awesome addition! ::

Actually communication via WebSocket has not yet been implemented because I can’t make VectorAudio v1.6+ to work properly on my machine. But it’s a planned update whenever possible.

2 Likes

Hi Gergely,

I’m the author of the plug-in used commonly in Canada (firstly, thanks for answering my emails in such a prompt fashion in the past!). I’d request some sort of way to communicate between controllers, e.g. really just anyway to pass a datapacket or something – we’d use for coordination, point-outs etc), even text is fine, I can parse it on either end.

I think this is basically in Juha’s request:

  • Make it possible to send messages between connected EuroScope instances (to be able to keep plugin data synchronized between the main and all proxy instances)
  • Make it possible to send messages to other controllers’ plugins (and something like OnPlugInMessage as suggested above to handle them)

Ron

Hi Gergely,

Is there a simple way to determine the flightphase of an aircraft - eg. Pre-departure vs in-flight vs landed.
Also - the actual departure time is updated automatically, but there is not an actual landing time - is there?
Thanks in advance.

/Stephen

Hey Gergely.

Just asking for a quick update:

  • is Q3 still possible?
  • do you have a list of items you plan to introduce on first release of “refreshed” API library update?

Best wishes asnd have a great summer,
Mateusz

I am planning to create the suggested new API classes this summer. Let’s ask this question again in September :slight_smile:

1 Like

Hi, Gergely.

Is there any possible to provide an API showing which SCT/ESE file the ES has loaded?

And what about providing API to get waypoints of the SID/STARs?

I’m develping a plugin clipping the route to correct the SID/STAR and actual route in the flightplans. The current logic of GetExtractedRoute is not enough to make it.

For detail: How to get the SID/STARs waypoint or ese/sct files loaded by Euroscope Plug-in API
and Github Repo: GitHub - LeoChen98/ERC-plugin-for-Euroscope: Exact Route Cliper plugin for Euroscope

Hi Gergely,

Just another thing we’ve come across. As well as telling us what has changed in the event handlers, telling us who has changed it would be extremely helpful, particularly in the case of avoiding the event echo in the case you modify something in the plugin and get an event raised as a reply.

1 Like

High Gergley, one more thing!

Noticed that you do not expose ETAs at points in the CFlightPlanExtractedRoute class, even though they are clearly known to the program through .QU

This means we have to calculate by hand. Very frustrating. Pls fix

Hello Gergely,

Please may we also have an ability to set the Clearance Received flag from the plug-in architecture?

Thanks,
Adam

The GetPointDistanceInMinutes should return the ETA. It is calculated only from GetPointsAssignedIndex or GetPointsCalculatedIndex.

In my testing, this does not work if the aircraft is uncorrelated (i.e. when the OnFlightPlanFlightPlanData event is raised when we first connect/first see the aircraft). In this case, the time that it shows is wildly wrong.

I’ve just gone back and re-tested this. Connected to the network and called GetPointDistanceInMinutes on SHT7X from EGPF to EGLL when the aircraft was on a 2 mile final. It returned 51 minutes.

I can only guess that EuroScope is assuming the aircraft is at the start of its flight plan until it correlates. Therefore, there is no event that I can use to get the ETA of an aircraft when I first see it.

Would complete UTF-8 support be possible for a future ES version?

Issue with ÅÄÖ using UTF8 (aero-nav.com)

Here comes the September! :smile:

3 Likes

Sure I will improve that. But that is not API related.

1 Like

Welcome September.

I tried to read all the requests here and create a better, safer and future extendible new API.
You can look at my suggested version at: Bitbucket

Please, clone, compile and examine the content.
Your comments are welcome here in this thread.

3 Likes

Getting through it briefly, do I understand correctly:

  1. Old screenObjects are now called screenArea? Any changes to their handling except naming?
  2. What’s the difference between OnOver vs. OnOverScreenArea etc. if there is any?
  3. Any practical difference between AddArea vs NewArea?
  4. CompileCommand can be now triggered by the plugin itself? And it will “leave” a ready-made message in chatbox?

#Edit: What am I missing also is a way to modify the route point index, i.e. to enable “after point no. 2 next point is XYZ”, because IFlightPlanControllerAssignedData only allows to DirectToPointName, and IFlightPlan AmendFlightPlan, as I guess, modify to route from Flight Plan itself?

  1. You can use the IRadarScreenArea as the old screenObject. in that case it is only a rename of the same thing. On the other hand IRadarScreenArea and the new AddArea has several advantages:
    – You can create your own class inherited from IRadarScreenArea and pass it to AddArea. Then you can handle all the events in your class. You do not have to put all the event handlers into a central position.
    – You do not have to create a new IRadarScreenArea every time a refresh occurs. That way you can save more static information in your class. You can also save performance with not allocating new elements always.

  2. OnOverScreenArea is the old way when you handle all events in your plug-in. OnOver is the distributed way when you handle the event in your class.

  3. NewArea is just the factory method of creating basic plug-in IRadarScreenArea. If you do not create your own class then create a new instance with NewArea, fill the content, then add to the list with AddArea,

  4. Yes, if you pass executeImmediate = false. That prohibits running the command and places the content to the editor only.

#Edit: Unfortunately EuroScope itself does not have this feature. The only way to do this is to update the route section in the flight plan.

Hi Gergely,

does the EuroScopePlugInIFlightPlanCoordination now also work via the flightplan and is therefore visible to all controller or are coordinations only visible to up and fownstream controller?

Thanks
Felix