by Hooray » Thu Oct 28, 2021 6:37 pm
CDI instruments can be driven by other inputs/subsystems, including Nasal and property rules or external interfaces/data.
The corresponding C++ machinery for these hard-coded instruments is usually initialized/set up by including a matching instrumentation config - this was at least the idea back in the early days of the project - back then, most aircraft would reference stuff like $FG_ROOT/Aircraft/Generic/generic-instrumentation.xml
Not sure if this is still the case, but you can refer to the source code to see for yourself - many good ideas originally implemented and integrated in FlightGear got basically lost over the course of almost two decades now - including support for saving/loading and resuming flights, as well as support for reliably resetting the simulator.
David Megginson implemented most of the infrastructure for this stuff almost 20 years ago, with a ton of foresight - but many things were never really adopted or took years/decades to be used, even today, most of David's work would be pretty useful - but we're only just beginning to properly see SGSubsystem* and friends being widely used, with reset/re-init related methods often still being empty stubs/placeholders - and with supporting loading/resuming flights never having been a declared priority of the project since the departure of some of the early founding fathers of the project.