OpenSCADAWiki: Doc/VCA/part4/part6 ...

Home | Index | Changes | Comments | Users | Registration | Login  Password:  
 
This is an old revision of Doc/VCA/part4/part6 from 2008-07-29 14:07:23..

События, их обработка и карты событий

Учитывая спектр задач для которых может использоваться система OpenSCADA нужно предусмотреть и механизм управления интерактивными пользовательскими событиями. Это связано с тем, что при решении отдельных задач встраиваемых систем устройства ввода и управления могут значительно отличатся. Впрочем достаточно взглянуть на обычную офисную клавиатуру и клавиатуру ноутбука что бы снять любые сомнения о необходимости менеджера событий.


Менеджер событий должен работать используя карты событий. Карта событий это список именованных событий с указанием его происхождения. Происхождением события может быть клавиатура, манипулятор мыши, джойстик и т.д. При возникновении события менеджер событий ищет его в активной карте и сопоставляет с именем события. Сопоставленное имя события помещается в очередь на обработку. Виджеты, в этом случае, должны обрабатывать полученную очередь событий.


Активная карта событий указывается в профиле каждого пользователя или устанавливается по умолчанию.


В целом предусмотрены четыре типа событий:


Само событие представляет недостаточно информации, особенно если его обработка происходит на уровнях выше. Для однозначной идентификации события и его источника событие в целом записывается следующим образом: "ws_BtPress:/curtime". Где:

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 Печать экрана - "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} клавишей мыши.

 
There are no files on this page.[Display files/form]
There is no comment on this page. [Display comments/form]