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 React

The React wrapper is the Annunciator component: every property is a prop, every event a prop named on<Event> that receives the CustomEvent, and the methods are called on the element through a ref.

import { Annunciator } from 'smart-industrial/react/annunciator';

const ref = useRef<Annunciator>(null);

<Annunciator ref={ref} columns={42}
    onAcknowledge={(event: CustomEvent) => console.log(event.detail)} />

// methods are called on the wrapper the ref holds, which calls the element
ref.current?.acknowledgeAll();

Properties

PropType, defaultDescription
columnsnumber
4
Sets or retrieves how many tiles are laid out per row.
tileHeightnumber
64
Sets or retrieves the minimum height of a tile in pixels.
tilesarraySets 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

MethodDescription
acknowledgeAll(): voidRaises 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(): anyReturns 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: object): stringReturns 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.

EventDescription and detail
onAcknowledge
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.
onReset
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.
onTileClick
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