Well, Fenix was able to do everything on their own, using the existing developer's documentation in GSX, they have done a very good job without asking for any help on our side.
In the latest update, we made just very minor changes, to enable a "proper" remote control mode, that really doesn't change anything to the way GSX works, it's just the ability for an external application to PLACE GSX under remote control, which simply means operating with the menu always closed, something GSX was always capable to do, and some 3rd party apps like Fenix2GSX already used it, the one and only difference is that:
- Before this update, if you wanted to place Fenix2GSX in fully automated mode so it would work with the menu always closed, you had to do it yourself (close the menu from the Toolbar), and you had to remember to keep it closed.
- After this update, any external application can enable it programmatically by setting an LVar and as long that variable is set, if you accidentally open the GSX Toolbar menu, you'll be reminded you are under remote control, so the menu won't do anything, and will close (really close) automatically after 5 seconds, so the application that wanted to operate "menu off", won't be disrupted by you opening the menu when you shouldn't have, perhaps interfering with its process.
That's the only difference the remote-control mode makes in this update.
However, operating completely under remote control means your application must take responsibility to deal with all GSX events: if GSX wanted to pop-up a menu (which now won't display anymore), it's now your job to decide what to do with it. In some cases, like when there's a question about which operator to choose, you can decide to ignore the menu, so it will automatically timeout with a default choice, but in other cases were you really need the user input, for example when GSX wants to know the Pushback direction, either you replicate the menu in your application OR disable the Remote Control, for example a good strategy is disable it when calling Departure.
THIS part of the bidirectional interaction is not documented yet (although if you are a bit familiar with Javascript, it can be easily understood by looking at the menu .JS source code, which we have purposely NOT obfuscated like other developers do, precisely to facilitate 3rd party integrations), but I agree it would be nice if we could provide a formal documentation, it's surely something we are planning, as soon we find some spare time from doing new features.