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 Angular
The Angular wrapper is AnnunciatorComponent from AnnunciatorModule: every property is an input, every event an output named on<Event>, and the methods are called on the component reference from @ViewChild. A method that returns a value returns a Promise of it, resolved once the component has rendered; its ...Sync() twin returns the value at once, or null before the component has rendered. Unknown bindings are rejected at compile time.
import { AnnunciatorModule, AnnunciatorComponent } from 'smart-industrial/angular/annunciator';
<smart-annunciator #annunciator [columns]="42"
(onAcknowledge)="onAcknowledge($event)"></smart-annunciator>
@ViewChild('annunciator', { read: AnnunciatorComponent }) annunciator!: AnnunciatorComponent;
// methods are called on the component reference
this.annunciator.acknowledgeAll();
Properties
| Input | 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(): void | 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(): Promise<any> | 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: any): Promise<any> | 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.
| Output | Description and detail |
|---|---|
(onAcknowledge) | 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) | 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) | 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