docs(alarms): note native-alarm severity-bucket snapping
This commit is contained in:
@@ -142,6 +142,35 @@ ObjectType. `severity` seeds the condition's initial severity at materialisation
|
|||||||
the driver's live alarm events may carry a different severity that overrides it at
|
the driver's live alarm events may carry a different severity that overrides it at
|
||||||
runtime.
|
runtime.
|
||||||
|
|
||||||
|
#### Severity mapping
|
||||||
|
|
||||||
|
The authored `severity` (1–1000) seeds the OPC UA condition node at materialisation
|
||||||
|
time. On the **first native transition** the value snaps to one of four fixed buckets
|
||||||
|
via `NativeAlarmProjector.MapSeverity`:
|
||||||
|
|
||||||
|
| `AlarmSeverity` enum | Projected value |
|
||||||
|
|---|---|
|
||||||
|
| `Low` | 200 |
|
||||||
|
| `Medium` | 500 |
|
||||||
|
| `High` | 700 |
|
||||||
|
| `Critical` | 900 |
|
||||||
|
| *(default/unspecified)* | 500 |
|
||||||
|
|
||||||
|
That projected integer is then mapped to the OPC UA SDK `EventSeverity` enum
|
||||||
|
by `OtOpcUaNodeManager.MapSeverity` on each `AlarmStateUpdate` write:
|
||||||
|
|
||||||
|
| Projected value range | `EventSeverity` |
|
||||||
|
|---|---|
|
||||||
|
| < 200 | `Low` |
|
||||||
|
| 200 – 399 | `MediumLow` |
|
||||||
|
| 400 – 599 | `Medium` |
|
||||||
|
| 600 – 799 | `MediumHigh` |
|
||||||
|
| ≥ 800 | `High` |
|
||||||
|
|
||||||
|
Consequently the four authored buckets land as: Low→`MediumLow`, Medium→`Medium`,
|
||||||
|
High→`MediumHigh`, Critical→`High`. The authored `severity` field has no effect after
|
||||||
|
the first transition.
|
||||||
|
|
||||||
### Runtime flow
|
### Runtime flow
|
||||||
|
|
||||||
The driver's live `IAlarmSource.OnAlarmEvent` is the sole input. Transition kinds
|
The driver's live `IAlarmSource.OnAlarmEvent` is the sole input. Transition kinds
|
||||||
|
|||||||
Reference in New Issue
Block a user