Alarms and status
Annunciator <smart-annunciator>
Annunciator displays a wall of tiles, one per monitored condition, following the ISA-18.1 alarm sequence: normal, alarm (unacknowledged, blinking fast), acknowledged (steady) and ringback (cleared but not reset, blinking slowly).
<smart-annunciator> · 3 properties, 3 methods, 3 events · source/modules/smart.annunciator.js
Usage in JavaScript
The component is a custom element: its properties are set on the element, its events are DOM CustomEvents with the data in event.detail, and its methods are called on the element. The properties can also be written as attributes in kebab case (precision-digits="1").
const annunciator = document.querySelector('smart-annunciator');
annunciator.columns = 42;
annunciator.addEventListener('acknowledge', (event) => console.log(event.detail));
annunciator.acknowledgeAll();
Properties
| Property | Type, default | Description |
|---|---|---|
columns | number | Sets or retrieves how many tiles are laid out per row. |
tileHeight | number | Sets or retrieves the minimum height of a tile in pixels. |
tiles | array | Sets or retrieves the monitored conditions. Each entry is an object with: id - the identifier of the tile, returned in the events; label - the tile legend; detail - an optional second line, typically the tag; state - one of normal, alarm, ack or ringback, in any case. A tile without a state is normal; any other word is shown as an unknown state (dashed and hatched, read out as 'Unknown state') rather than as a normal tile, cannot be acknowledged, and makes the panel's state attribute 'unknown' unless a tile is in alarm. Assign a new array to update the component, or call redraw after modifying the array in place; an array that is deep-equal to the current one does not trigger a redraw. The keyboard stays on the same tile across an update. |
Methods
| Method | Description |
|---|---|
acknowledgeAll() | Raises the acknowledge event once for every tile in the alarm state. Nothing is raised while the panel is disabled. The component does not change the tiles. |
stateCounts() | Returns how many tiles are in each state, as { normal, alarm, ack, ringback, unknown }. A state word the panel does not know is counted as unknown. |
stateOf(tile) | Returns the state of a tile as the panel reads it: normal, alarm, ack or ringback in any case, normal when the tile has no state, and unknown for any other word.tile object A tile record. |
Events
The data of an event is in event.detail. acknowledge and reset are requests: a press on a tile in alarm asks for acknowledgement, a press on a tile in ringback asks for a reset, and the annunciator keeps tiles as they are until the application updates them. tileClick reports every press.
| Event | Description and detail |
|---|---|
acknowledge | This event is triggered when an operator presses a tile that is in the alarm state, or through acknowledgeAll. One press raises one event: the repeats of a held Enter or Space are ignored, and the same tile pressed again within 600 ms (a double click) is not acknowledged twice.tile any The tile being acknowledged. |
reset | This event is triggered when an operator presses a tile that is in the ringback state, the condition has cleared and the operator is resetting it. As with acknowledge, one press raises one event.tile any The tile being reset. |
tileClick | This event is triggered when a tile is pressed, in any state. It follows the acknowledge or reset event when one of those applies.tile any The tile that was pressed. |
CSS variables
The component declares 5 CSS variables; the CSS page shows how to set them.
--smart-annunciator-columns --smart-annunciator-tile-height --smart-annunciator-gap --smart-annunciator-alarm-blink --smart-annunciator-ringback-blink