60
edits
No edit summary |
|||
Line 22: | Line 22: | ||
== Current Situation == | == Current Situation == | ||
All systems and most instruments | All systems and most instruments implemented in the C++ core support basic failure simulation by means of a "serviceable" property. Generally, when this "serviceable" property is set to false, the system will stop updating itself. Some of these systems may support additional, more elaborate types of failures. | ||
Other than this convention of using a "serviceable" property, there is no | Other than this convention of using a "serviceable" property, there is no framework on the C++ side with regards to failure simulation. There is, however, a Nasal submodule that can generate random failures by taking user input from the GUI and controlling the relevant properties. | ||
This approach good, but the main problem is that the supported types of failures are hardcoded both in the Nasal module and the GUI. | |||
=== Limitations === | === Limitations === | ||
* The GUI presents a fixed set of failures that can be simulated, regardless of what systems are actually implemented in the aricraft. | * The GUI presents a fixed set of failures that can be simulated, regardless of what systems are actually implemented in the aricraft. | ||
* Aircrafts can not add their own implemented failures to the set. | * Aircrafts can not add their own implemented failures to the set in a clean way. | ||
* Failures are considered boolean by the framework, i.e. serviceable or not serviceable. There is no way to express intermediate states of failure. | * Failures are considered boolean by the framework, i.e. either serviceable or not serviceable. There is no way to express intermediate states of failure. | ||
* Only random failures based on time or usage cycles are supported. | * Only random failures based on time or usage cycles are supported. | ||
* In general, the framework is not extensible. | * In general, the framework is not extensible. |
edits