Failure Manager: Difference between revisions

Jump to navigation Jump to search
No edit summary
Line 22: Line 22:
== Current Situation ==
== Current Situation ==


All systems and most instruments supported from the C++ core support basic failure simulation that is controlled by 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.
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 support on the C++ side with regards to failure simulation.
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.


There is, however, a Nasal submodule that can 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 main problem of the current implementation is that the supported types of failures are hardcoded both in the Nasal module and the GUI. This has several 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.
60

edits

Navigation menu