Учитывая спектр задач для которых может использоваться система OpenSCADA нужно предусмотреть и механизм управления интерактивными пользовательскими событиями. Это связано с тем, что при решении отдельных задач встраиваемых систем устройства ввода и управления могут значительно отличатся. Впрочем достаточно взглянуть на обычную офисную клавиатуру и клавиатуру ноутбука что бы снять любые сомнения о необходимости менеджера событий.
Менеджер событий должен работать используя карты событий. Карта событий это список именованных событий с указанием его происхождения. Происхождением события может быть клавиатура, манипулятор мыши, джойстик и т.д. При возникновении события менеджер событий ищет его в активной карте и сопоставляет с именем события. Сопоставленное имя события помещается в очередь на обработку. Виджеты, в этом случае, должны обрабатывать полученную очередь событий.
Активная карта событий указывается в профиле каждого пользователя или устанавливается по умолчанию.
В целом предусмотрены четыре типа событий:
Само событие представляет недостаточно информации, особенно если его обработка происходит на уровнях выше. Для однозначной идентификации события и его источника событие в целом записывается следующим образом: "ws_BtPress:/curtime". Где:
В таблице 1 приведён перечень стандартных событий, поддержка которых должна быть обеспечена в визуализаторах СВУ.
Таблица 1. Стандартные события
| Id | Описание |
| Клавиатурные события: key_[pres|rels][Ctrl|Alt|Shift]{Key} | |
| *SC#3b | Скан код клавиши. |
| *#2cd5 | Код не именованной клавиши. |
| *Esc | "Esc". |
| *BackSpace | Удаления предыдущего символа - "<--". |
| *Return, *Enter | Ввод - "Enter". |
| *Insert | Вставка - "Insert". |
| *Delete | Удаление - "Delete". |
| *Pause | Пауза - "Pause". |
| Печать экрана - "Print Screen". | |
| *Home | Дом - "Home". |
| *End | Конец - "End". |
| *Left | Влево - "<-". |
| *Up | Вверх - "^". |
| *Right | Вправо - "->". |
| *Down | Вниз - "\/". |
| *PageUp | Страницы вверх - "PageUp". |
| *PageDown | Страницы вниз - "PageDown". |
| *F1 - *F35 | Функциональная клавиша от "F1" до "F35". |
| *Space | Пробел - " ". |
| *Apostrophe | Апостраф - "`". |
| *Asterisk | Звёздочка на дополнительном поле клавиатуры - "*". |
| *Plus | Плюс на дополнительном поле клавиатуры - "+". |
| *Comma | Запятая - ",". |
| *Minus | Минус - "-". |
| *Period | Точка - ".". |
| *Slash | Наклонная черта - "\". |
| *0 - *9 | Цифра от "0" до "9". |
| *Semicolon | Точка с запятой - ";". |
| *Equal | Равно - "=". |
| *A - *Z | Клавиши букв латинского алфавита от "A" до "Z". |
| *BracketLeft | Левая квадратная скобка - "[". |
| *BackSlash | Обратная наклонная линия - "/". |
| *BracketRight | Правая квадратная скобка - "]". |
| *QuoteLeft | Левая кавычка - "'". |
| События клавиатурного фокуса. | |
| ws_FocusIn | Фокус получен виджетом. |
| ws_FocusOut | Фокус утерян виджетом. |
| Мышиные события: | |
| key_mouse[Pres|Rels][Left|Right|Midle] | Нажата/отпущена кнопка мыши. |
| key_mouseDblClick | Двойное нажатие левой кнопки мыши. |
| События примитива элементарной фигуры ElFigure: | |
| ws_Fig{n}[Left|Right|Midle|DblClick] | Активация фигуры {n} клавишей мыши. |
| События примитива элементов формы FormEl: | |
| ws_LnAccept | Установлено новое значение в строке ввода. |
| ws_TxtAccept | Изменено значение редактора текста. |
| ws_ChkChange | Состояние флажка изменено. |
| ws_BtPress | Кнопка нажата. |
| ws_BtRelease | Кнопка отпущена. |
| ws_BtToggleChange | Изменена вдавленность кнопки. |
| ws_CombChange | Изменено значение поля выбора. |
| ws_ListChange | Изменен текущий элемент списка. |
| ws_SliderChange | Изменение положения слайдера. |
| События примитива медиа-контента Media: | |
| ws_MapAct{n}[Left|Right|Midle] | Активирована медиа-область с номером {n} клавишей мыши. |