Документация для версии Интеллект 4.13. Документация на другие версии также доступна.

Предыдущая страница Метод DoReact  Метод DoReactSetup Следующая страница

Метод DoReactStr используется для генерации реакций системных объектов. Метод DoReactStr отправляет реакцию заданному объекту. При этом реакция передается непосредственно тому ядру, на котором зарегистрирован объект, а не всей системе. В методе DoReactStr реакция задается группой аргументов типа String.

Синтаксис обращения к методу:

function  DoReactStr(objtype : String,  id : String,  action : String,  param<value>  [, param<value>] : String)

Аргументы метода:

  1. objtype – обязательный аргумент. Соответствует типу системного объекта, для которого требуется генерировать реакцию. Допустимые значения: тип String, диапазон ограничен зарегистрированными в системе типами объектов.
  2. id – обязательный аргумент. Соответствует идентификационному (регистрационному) номеру объекта заданного аргументом objtype типа. Допустимые значения: тип String, диапазон ограничен зарегистрированными в системе идентификационными номерами объектов заданного типа.
  3. action – обязательный аргумент. Задает реакцию, которую требуется генерировать. Допустимые значения: тип String, диапазон ограничен допустимыми для объекта заданного типа реакциями.
  4. param<value> – обязательный аргумент. Допускается задание нескольких аргументов данного типа. Соответствует параметру (параметрам) реакции системного объекта.

Синтаксис задания значения одному параметру соответствует строке:

"param<value>", где

param – название параметра;

value – значение параметра.

Синтаксис задания значения нескольким параметрам соответствует строке:

"param1<value1>,param2<value2>…".

Список оформляется через запятую без пробелов. В том случае, если ни один параметр задавать не требуется, при обращении необходимо указать пустую строку, например:

DoReactStr("CAM","1","REC","");

Допустимые значения аргумента param: тип String, диапазон ограничен допустимыми для заданной реакции параметрами. Допустимые значения аргумента value: тип String, диапазон зависит от устанавливаемого параметра.

Для всех реакций имеется возможность указать задержку выполнения реакции при помощи параметра delay<>. Задержка указывается в секундах.

Примечание

В программном комплексе Интеллект выделяют два типа системных сообщений: события и реакции. События, как правило, несут только информационную нагрузку и используются для рассылки оповещений по всем ядрам программного комплекса Интеллект, соединенным между собой при конфигурировании архитектуры. В свою очередь, под реакциями понимаются команды, отправляемые конкретным системным объектам. Реакции передаются непосредственно тем ядрам, на которых зарегистрирован требуемый объект, а не всей системе. Для генерации реакций используются методы DoReactStr и DoReact. Для генерации событий – NotifyEventStr и NotifyEvent.

Пример 1. При регистрации тревоги по любой из видеокамер системы переводить Монитор №1 в режим отображения одного окна видеонаблюдения (однократер) и выводить в данном окне видеосигнал с камеры, по которой зарегистрирована тревога.

if (Event.SourceType == "CAM" &&  Event.Action == "MD_START")
{
	var camid = Event.SourceId;
	DoReactStr("MONITOR","1","ACTIVATE_CAM","cam<"+ camid +">");
	DoReactStr("MONITOR","1","KEY_PRESSED","key<SCREEN.1>");
}

Пример 2. При окончании тревоги по любой из видеокамер продолжать запись по ней в течении еще 5 секунд, после чего прекращать запись (аналог режима Дозапись).

 if (Event.SourceType == "CAM" &&  Event.Action == "MD_STOP")
{
	var camid = Event.SourceId;
	DoReactStr("CAM",camid,"REC_STOP","delay<5>");
}

Пример 3. По макрокоманде 1 включать управление телеметрией при помощи мыши на камере 4, выведенной на монитор 10, по макрокоманде 2 отключать.

if (Event.SourceType == "MACRO" &&  Event.Action == "RUN" &&  Event.SourceId == "1")
{
	DoReactStr("MONITOR","10","CONTROL_TELEMETRY","cam<4>,on<1>");
}
if (Event.SourceType == "MACRO" &&  Event.Action == "RUN" &&  Event.SourceId == "2")
{
	DoReactStr("MONITOR","10","CONTROL_TELEMETRY","cam<4>,on<0>");
}