Thanks Doug - great info.
I should explain my architecture:
- There will be a multi-processor simpit (separate machines representing the various different processors of the real thing) which incorporates a SimConnect client machine. Processors will have access to configuration files that provide the IP and port details of other relevant machines.
- The FSX machine, primarily responsible for outside environment display. This dedicated Environment Server (ES) is the primary SimConnect server.
- There will be an instructor operating station (IOS) which will be able to control the simulation state (fundamentally the simulation time and object positions) and also talk directly to various aircraft components as required (e.g. to fill fuel tanks). As well as being a client to the ES, it is potentially another FSX station so that it may have a monitor to view the simulation. I figure that this is going to require operating in multiplayer mode so I can control the IOS camera independently from the (fixed) simpit display.
My assumption is that on starting the simpit, it will always attempt to rejoin the simulation as though it had remained in session since it's last participation. If the Environment Server is not running FSX at that point then the simpit will start it. Code on the simpit will calculate the aircraft state then modify a template .flt file, load it on the server and then we're off, with the aircraft providing control inputs via SimConnect. (I've got this bit working nicely in prototype. Somehow it's weird that you can fly an aircraft from a machine not running FSX). Incidentally, the design abstracts the flight dynamics engine so that I could (at some future point) just feed the server with the 6D position of my aircraft - so I separate the control inputs from the instructions to change the visual state (e.g. elevator angle, flap position and so on).
I've also made provision for connection of this set up to an external multi-participant server which will (theoretically) allow interconnection of FSX and non-FSX clients. Lots of ambition, words and diagrams, no code yet beyond config file entries.
My original question stemmed from the desire for the simpit to work out if the ES machine is up, then if FSX is already running, then if FSX is in a state to load my .flt file. Arguably I could just remotely kill FSX regardless and start it with the flt file as a parameter but this lacks elegance and potentially increases the load time (the ES could already be sat is session waiting for the SimPit to return - in which case there would be no need to reload).
When it comes to using the IOS to change the simulation, I'm not sure yet whether I should have the IOS talk to the ES directly or do this via the aircraft. More thinking to do there.
The suggestions and comments are very useful though - keep them coming!!
Z