Current section
Files
Jump to
Current section
Files
lib/bacnet/protocol/event_algorithms.ex
defmodule BACnet.Protocol.EventAlgorithms do
@moduledoc """
BACnet has various different types of event algorithms.
Each of them is implemented by a different module.
The event algorithm `AccessEvent` is not supported.
ASHRAE 135:
> Event algorithms monitor a value and evaluate whether the condition for
> a transition of event state exists. The result of the evaluation,
> indicated to the Event-State-Detection process, may be a transition to
> a new event state, a transition to the same event state, or no transition.
> The final determination of the Event_State property value is the responsibility
> of the Event-State- Detection process and is subject to additional conditions. See Clause 13.2.
>
> Each of the event algorithms defines its input parameters, the allowable normal and
> offnormal states, the conditions for transitions between those states,
> and the notification parameters conveyed in event notifications for the algorithm.
> When executing an event algorithm, 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 Event-State-Detection process.
"""
alias BACnet.Protocol.Constants
require Constants
@typedoc """
Possible BACnet event algorithms.
"""
@type event_algorithm ::
__MODULE__.ChangeOfBitstring.t()
| __MODULE__.ChangeOfState.t()
| __MODULE__.ChangeOfValue.t()
| __MODULE__.CommandFailure.t()
| __MODULE__.FloatingLimit.t()
| __MODULE__.OutOfRange.t()
| __MODULE__.ChangeOfLifeSafety.t()
| __MODULE__.BufferReady.t()
| __MODULE__.UnsignedRange.t()
| __MODULE__.DoubleOutOfRange.t()
| __MODULE__.SignedOutOfRange.t()
| __MODULE__.UnsignedOutOfRange.t()
| __MODULE__.ChangeOfCharacterString.t()
| __MODULE__.ChangeOfStatusFlags.t()
end