Метод 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>");
}