Packages

BACstack is a low-level Elixir implementation for the ASHRAE standard 135, BACnet - Building Automation and Controller network. In its current published state, v0.0.x, it can (only) act as a BACnet client for other BACnet devices.

Current section

Files

Jump to
bacstack lib bacnet protocol fault_algorithms.ex
Raw

lib/bacnet/protocol/fault_algorithms.ex

defmodule BACnet.Protocol.FaultAlgorithms do
@moduledoc """
BACnet has various different types of fault algorithms.
Each of them is implemented by a different module.
ASHRAE 135:
> Certain object types may optionally support a fault algorithm which has
> externally visible inputs and is performed as part of the object's
> reliability-evaluation process. This clause defines the standard fault algorithms.
> To determine which algorithm is applied by which object type, see the
> object type definitions in Clause 12.
>
> Fault algorithms monitor a value and evaluate whether the condition for
transition of reliability exists. The result of the evaluation,
> indicated to the reliability-evaluation process, may be a transition
> to a new reliability, a transition to the same reliability, or no transition.
> The final determination of the Reliability property value is the responsibility
> of the reliability evaluation process and is subject to additional conditions.
> See Clause 13.2.
> Each of the fault algorithms defines its input parameters, the allowable
> reliability values, and the conditions for transitions between those values.
> When evaluating the monitored value, all conditions defined for the algorithm
> shall be evaluated in the order as presented for the algorithm.
> Some algorithms specify optional conditions, marked as "Optional:" whether
> or not an implementation uses these conditions is a local matter.
> If no condition evaluates to true, then no transition shall be indicated
> to the reliability evaluation process.
"""
alias BACnet.Protocol.Constants
require Constants
@typedoc """
Possible BACnet fault algorithms.
"""
@type fault_algorithm ::
__MODULE__.FaultCharacterString.t()
| __MODULE__.FaultLifeSafety.t()
| __MODULE__.FaultState.t()
| __MODULE__.FaultStatusFlags.t()
end