60
edits
Line 61: | Line 61: | ||
The current prototype implementation includes three components: | The current prototype implementation includes three components: | ||
* A | * A Failure Manager Nasal submodule. | ||
* A Nasal library of | * A Nasal library of utilities for programming the Failure Manager, intended for aircraft authors and GUI dialogs. | ||
* A compatibility script that | * A compatibility script that programs the Failure Manager to emulate previous behavior. | ||
The design revolves around the following concepts, all of them implemented as Nasal objects. | The design revolves around the following concepts, all of them implemented as Nasal objects. | ||
;FailureMode: A failure mode is one way things can go wrong, for example, a blown tire. A given system may implement more than one failure | ;FailureMode: A failure mode is one way things can go wrong, for example, a blown tire. A given system may implement more than one failure mode. They store a current "failure level" that is a number in the range [0, 100] so non boolean failure states can be supported. | ||
;Actuator: Actuators are attached to FailureModes and encapsulate | ;Actuator: Actuators are attached to FailureModes and encapsulate a specific way to activate the failure simulation. They can be simple wrappers that change a property value, but they can also implement more complex operations. By encapsulating the way failure modes are activated, the Failure Manager does not depend on conventions like the "serviceable" property, and can be easily adapted to control systems designed in different ways. | ||
;Trigger: A Trigger | ;Trigger: A Trigger represents a condition that makes a given failure mode become active. The current prototype supports the following types: altitude, waytpoint proximity, timeout, MTBF (mean time between failures), MCBF (mean cycles between failures). More can be implemented by extending the FailureMgr.Trigger Nasal interface. | ||
;FailureMgr: The Failure Manager itself. Keeps a list of supported failure modes that can be added or removed dynamically. It also keeps a list of triggers associated to each mode. While running, it keeps an eye on triggers, and fires the relevant failure modes through their actuators. | ;FailureMgr: The Failure Manager itself. Keeps a list of supported failure modes that can be added or removed dynamically. It also keeps a list of triggers associated to each mode. While running, it keeps an eye on triggers, and fires the relevant failure modes through their actuators. |
edits