Drivers API

Материал из iRidium Mobile Wiki
Перейти к: навигация, поиск

< Назад

Набор методов и событий для создания драйверов. Обновлено: 14 Апреля, 2015
Сообщить об ошибке


Функции
IR.CreateDevice Создание драйвера
Connect Подключение к устройству
Disconnect Разрыв соединения с устройством
IR.GetDevice Обращение к устройству
Set Установка значения в канал устройства
Send Отправка команды на устройство
InvokeAction Отсылка команды на устройство UPNP
Subscribe Подписка на события UPNP
UnSubscribe Отписка от событий UPNP
HtmlDecode Замена спецсимволов Html
JSON.Stringify преобразование JSON объекта с строку
JSON.Parse преобразование строки в JSON объект
new XML создание XML объекта
XML.ToString преобразование XML объекта в строку
SetFeedback Запись значения в канал обратной связи
GetFeedback Получение значения из канала обратной связи
SetParameters Изменение параметров подключения
GetCommandAtName Обращение к команде по имени или идентификатору
GetCommandAtPos Обращение к команде по индексу позиции
GetCommandsCount Получение количества команд
GetFeedbackAtName Получение значения из канала обратной связи по имени или идентификатору
GetFeedbackAtPos Получение значения из канала обратной связи по индексу позиции
GetFeedbacksCount Получение количества каналов обратной связи
HexArrayToAsciiString Конвертация массива Hex символов в ASCII строку
Cобытия
EVENT_RECEIVE_DATA Получение данных с устройства в байт формате
EVENT_RECEIVE_TEXT Получение строки с устройства
EVENT_RECEIVE_EVENT Получение события с устройства (UPNP Event)
EVENT_ONLINE Соединение с устройством установлено
EVENT_OFFLINE Соединение с устройством потеряно
EVENT_TAG_CHANGE Изменение значения тега
EVENT_DEVICE_FOUND Нахождение UPnP устройства
EVENT_CHANNEL_SET Активация команды


Константы

// Send Mode IR.ALWAYS_CONNECTED = 0; // Драйвер всегда остается подключенным, может получать и отправлять данные. IR.CONNECT_WHEN_SENDING = 1; // Драйвер подключается в момент отправлки, после отключается, может только отправлять данные.

// Script Mode IR.DIRECT_AND_SCRIPT = 0; // Можно отправлять команды через скрипт и через каналы редактора IR.SCRIPT_ONLY = 1; // Можно отправлять команды только через скрипт

// Background Mode IR.BACKGROUND_OFF = 0; // Драйвер работает только при развернутом приложении IR.BACKGROUND_ON = 1; // Драйвер работает как при развернутом приложении, так и при свернутом

IR.CreateDevice

Эта функция используется для создания драйвера.

Драйвер AV & Custom System TCP


Arrow download.png Пример создания DEVICE_CUSTOM_TCP

Синтаксис:

IR.CreateDevice(IR.DEVICE_CUSTOM_TCP, "Name", "Host", Port, SendMode, ScriptMode, BackgroundMode);

Параметры:

IR.DEVICE_CUSTOM_TCP (тип драйвера) - драйвер с типом подключением по TCP;
Name   (строка) - имя драйвера;    
Host   (строка) - IP-адрес устройства;  
Port   (число)  - порт на устройстве; 
SendMode   (режим) - режим поддержания сессии соединения(см. константы);
ScriptMode (режим)  - режим отправки команд и взаимодействия со скриптами(см. константы);
BackgroundMode (режим)  - режим работы драйвера(см. константы).

Пример:

IR.CreateDevice(IR.DEVICE_CUSTOM_TCP,  // Тип драйвера 
		"TCP 1",  // Имя
		"192.168.0.47",  // IP-адрес
		123,  // Порт 
		IR.ALWAYS_CONNECTED,  // Драйвер всегда остается подключенным
		IR.SCRIPT_ONLY,  // Команды можно отправлять через скрипт 
		IR.BACKGROUND_ON);  // Background включен
IR.CreateDevice(IR.DEVICE_CUSTOM_TCP,  // Тип драйвера
		"TCP 1",  // Имя
		"192.168.0.47",  // IP-адрес
		123,  // Порт
		IR.ALWAYS_CONNECTED,  // Драйвер всегда остается подключенным
		IR.DIRECT_AND_SCRIPT,  // Команды можно отправлять через скрипт и каналы
		IR.BACKGROUND_OFF);  // Background выключен


Драйвер AV & Custom System UDP


Arrow download.png Пример создания DEVICE_CUSTOM_UDP

Синтаксис:

IR.CreateDevice(IR.DEVICE_CUSTOM_UDP,
		"Name", 
		"Host", 
		Port, 
		"Group",
		Multicast, 
		LocalPort, 
		BackGroundMode);

Параметры:

IR.DEVICE_CUSTOM_UDP (тип драйвера) - драйвер с типом подключением по UDP;
Name   (строка) - имя драйвера;    
Host   (строка) - IP-адрес устройства;  
Port   (число)  - порт на устройстве; 
Group   (строка) -  null-это Broadcast/ "IP" - IP multicast группы;
Multicast (режим)  -  режим отправки пакета ограниченной группе хостов;
LocalPort (число)  - локальный порт устройства;
Background_mode (режим)  - режим работы драйвера(см. константы).

Пример:

IR.CreateDevice(IR.DEVICE_CUSTOM_UDP,  // Тип драйвера 
		"UDP 1",  // Имя
		"192.168.0.47",  // IP-адрес
		6000,  // Порт 
		null,  
		false,  // пакет отправляется всем хостам в сети   
		0,  // используется внешний порт
		IR.BACKGROUND_ON);  // Background включен
IR.CreateDevice(IR.DEVICE_CUSTOM_UDP,  // Тип драйвера
		"UDP 2",  // Имя
		"224.0.0.253",  // IP-адрес
		123,  // Порт
		"224.0.0.253",  
		true,  // пакет отправляется группе хостов
		0xFFFF,  // используется случайный свободный
		IR.BACKGROUND_OFF);  // Background выключен
IR.CreateDevice(IR.DEVICE_CUSTOM_UDP,  // Тип драйвера
		"UDP 3",  // Имя
		"192.168.0.47",  // IP-адрес
		123,  // Порт
		null,   
		false,  // пакет отправляется всем хостам в сети   
		1033, // используется 1033 порт  
		IR.BACKGROUND_ON);  // Background включен


Драйвер AV & Custom System HTTP


Arrow download.png Пример создания DEVICE_CUSTOM_HTTP_TCP

Синтаксис:

IR.CreateDevice(IR.DEVICE_CUSTOM_HTTP_TCP,
		"Name",
		"Host", 
		Port, 
		"Login", 
		"Password", 
		SSL, 
		BackGroundMode);

Параметры:

IR.DEVICE_CUSTOM_HTTP_TCP (тип драйвера) - драйвер с типом подключением по HTTP/TCP;
Name   (строка) - имя драйвера;    
Host   (строка) - IP-адрес устройства;  
Port   (число)  - порт на устройстве; 
Login (строка)  - логин при использовании защищенной сессии;
Password (строка)  - пароль при использовании защищенной сессии;
SSL (true/false)  - протокол безопасности для защиты конфиденциальных данных сети;
BackgroundMode (режим)  - режим работы драйвера(см. константы).

Пример:

IR.CreateDevice(IR.DEVICE_CUSTOM_HTTP_TCP,  // Тип драйвера 
		"HTTP 1",  // Имя
		"weather.yahooapis.com",  // web-адрес
		80,  // Порт 
		"admin",  // Логин 
		"123",  // Пароль
		true,  // SSL включен
		IR.BACKGROUND_ON);  // Background включен
IR.CreateDevice(IR.DEVICE_CUSTOM_HTTP_TCP,  // Тип драйвера 
		"HTTP 2",  // Имя
		"192.168.0.1",  // IP-адрес
		23,  // Порт 
		"root",  // Логин 
		"atata",  // Пароль
		false,  // SSL выключен
		IR.BACKGROUND_OFF);  // Background выключен


Драйвер Custom Server TCP


Arrow download.png Пример создания DEVICE_CUSTOM_SERVER_TCP

Синтаксис:

IR.CreateDevice(IR.DEVICE_CUSTOM_SERVER_TCP, "Name", "Host", Port, MaxClients,  BackGroundMode);

Параметры:

IR.DEVICE_CUSTOM_SERVER_TCP (тип драйвера) - драйвер с типом подключением по TCP;
Name   (строка) - имя драйвера;    
Host   (строка) - IP-адрес устройства;  
Port   (число)  - порт на устройстве; 
MaxClients  (число)  - максимальное количество клиентов для подключения;
BackgroundMode (режим)  - режим работы драйвера(см. константы).

Пример:

IR.CreateDevice(IR.DEVICE_CUSTOM_SERVER_TCP,  // Тип драйвера 
		"SERVER TCP 1",  // Имя
		"192.168.0.1",  // IP-адрес
		2323,  // Порт 
		4,  // четыре клиента могут быть подключенными одновременно
		IR.BACKGROUND_ON);  // Background включен
IR.CreateDevice(IR.DEVICE_CUSTOM_SERVER_TCP,  // Тип драйвера 
		"SERVER TCP 2",  // Имя
		"192.168.0.1",  // IP-адрес
		23,  // Порт 
		5,  // пять клиентов могут быть подключенны одновременно 
		IR.BACKGROUND_OFF);  // Background выключен


Драйвер Custom Server UDP


Arrow download.png Пример создания DEVICE_CUSTOM_SERVER_UDP

Синтаксис:

IR.CreateDevice(IR.DEVICE_CUSTOM_SERVER_UDP, 
		"Name", 
		"Host", 
		Port, 
		MaxClients, 
		ClientTimeOut,  
		BackGroundMode);

Параметры:

IR.DEVICE_CUSTOM_SERVER_UDP (тип драйвера) - драйвер с типом подключением по UDP;
Name   (строка) - имя драйвера;    
Host   (строка) - IP-адрес устройства;
Port   (число)  - порт на устройстве; 
MaxClients  (число)  - максимальное количество клиентов для подключения;
ClientTimeOut  (число)  - время ожидания сервера входящих данных, если время истекло,
клиент будет отключен(мс); BackgroundMode (режим) - режим работы драйвера(см. константы).

Пример:

IR.CreateDevice(IR.DEVICE_CUSTOM_SERVER_UDP  // Тип драйвера 
		"SERVER UDP 1",  // Имя
		"192.168.0.100",  // IP-адрес
		2323,  // Порт 
		4,  // четыре клиента могут быть подключенными одновременно
		100,  // сервер ожидает входящих данных 100 миллисекунд
		IR.BACKGROUND_ON);  // Background включен
IR.CreateDevice(IR.DEVICE_CUSTOM_SERVER_UDP,  // Тип драйвера 
		"SERVER UDP 2",  // Имя
		"192.168.0.100",  // IP-адрес
		23,  // Порт 
		5,  // пять клиентов могут быть подключены одновременно 
		100,  // сервер ожидает входящих данных 100 миллисекунд
		IR.BACKGROUND_OFF);  // Background выключен


Драйвер AMX


Arrow download.png Пример создания DEVICE_AMX

Синтаксис:

IR.CreateDevice(IR.DEVICE_AMX, 
		"Name", 
		"Host", 
		Port, 
		PanelID, 
		"Login", 
		"Password",  
		BackGroundMode);

Параметры:

IR.DEVICE_AMX (тип драйвера) - драйвер с типом подключением по TCP;
Name   (строка) - имя драйвера;    
Host   (строка) - IP-адрес устройства;  
Port   (число)  - порт на устройстве; 
PanelID (число)  - уникальный идентификатор панели, не должен дублироваться на разных панелях;
Login (строка)  - логин при использовании защищенной сессии;
Password (строка)  - пароль при использовании защищенной сессии;
BackgroundMode (режим)  - режим работы драйвера(см. константы).

Пример:

IR.CreateDevice(IR.DEVICE_AMX,  // Тип драйвера 
		"AMX 1",  // Имя
		"192.168.0.150",  // IP-адрес
		1319,  // Порт 
		12,  // идентификатор панели  
		"admin",  // Логин 
		"123",  // Пароль
		IR.BACKGROUND_ON);  // Background включен
IR.CreateDevice(IR.DEVICE_AMX,  // Тип драйвера 
		"AMX 2",  // Имя
		"192.168.0.150",  // IP-адрес
		23,  // Порт 
		13,  // идентификатор панели 
		"root",  // Логин 
		"atata",  // Пароль
		IR.BACKGROUND_OFF);  // Background выключен


Драйвер KNX


Arrow download.png Пример создания DEVICE_EIB_UDP

Синтаксис:

IR.CreateDevice(IR.DEVICE_EIB_UDP, 
		"Name", 
		"Host", 
		Port, 
		ConnectionWaitTime, 
		SendWaitTime, 
		PingTime,  
		BackGroundMode);

Параметры:

IR.DEVICE_EIB_UDP (тип драйвера) - драйвер с типом подключением по UDP;
Name   (строка) - имя драйвера;    
Host   (строка) - IP-адрес устройства;  
Port   (число)  - порт на устройстве; 
ConnectionWaitTime  (число)  - время ожидания при аварийном обрыве соединения (мс);
SendWaitTime  (число)  - пауза между отправкой команд в шину, для снижения 
загруженности роутера и шины(мс); PingTime (число) - частота отправки команды Ping для проверки связи с роутером(мс); BackgroundMode (режим) - режим работы драйвера(см. константы).

Пример:

IR.CreateDevice(IR.IR.DEVICE_EIB_UDP,  // Тип драйвера 
		"EIB 1",  // Имя
		"192.168.0.150",  //  IP-адрес
		71,  //  Порт 
		500,  //  при аварийном обрыве будет ожидать соединения пол секунды
		500,  //  команды отправляются каждые пол секунды
		500,  //  через каждые пол секунды проверяется связь с роутером
		IR.BACKGROUND_ON);  // Background включен
IR.CreateDevice(IR.IR.DEVICE_EIB_UDP,  //  Тип драйвера 
		"EIB 2",  //  Имя
		"192.168.0.150",  // IP-адрес
		72,  //  Порт 
		500,  //  при аварийном обрыве будет ожидать соединения пол секунды
		500,  //  команды отправляются каждые пол секунды
		500,  //  через каждые пол секунды проверяется связь с роутером
		IR.BACKGROUND_OFF);  // Background выключен


Драйвер BAOS 1(770)


Arrow download.png Пример создания DEVICE_BAOS_1

Синтаксис:

IR.CreateDevice(IR.DEVICE_BAOS_1, "Name", "Host", Port, PingTime,  BackGroundMode);

Параметры:

IR.DEVICE_BAOS_1 (тип драйвера) - драйвер с типом подключением по TCP;
Name   (строка) - имя драйвера;    
Host   (строка) - IP-адрес устройства;  
Port   (число)  - порт на устройстве; 
PingTime (число)  - частота отправки команды Ping для проверки связи с роутером(мс);
BackgroundMode (режим)  - режим работы драйвера(см. константы).

Пример:

IR.CreateDevice(IR.DEVICE_BAOS_1,  //  Тип драйвера 
		"BAOS_1_1",  //  Имя
		"192.168.0.47",  //  IP-адрес
		71,  //  Порт 
		500,  //  Каждые пол секунды проверяется связь с роутером(рекомендуется не менее 500)
		IR.BACKGROUND_ON);  // Background включен
IR.CreateDevice(IR.DEVICE_BAOS_1,  //  Тип драйвера 
		"BAOS_1_2",  //  Имя
		"192.168.0.47",  //  IP-адрес
		23,  //  Порт 
		500, //  Каждые пол секунды проверяется связь с роутером(рекомендуется не менее 500)
		IR.BACKGROUND_OFF);  //  Background выключен


Драйвер BAOS 2(771/772)


Arrow download.png Пример создания DEVICE_BAOS_2

Синтаксис:

IR.CreateDevice(IR.DEVICE_BAOS_2, "Name", "Host", Port, PingTime,  BackGroundMode);

Параметры:

IR.DEVICE_BAOS_2 (тип драйвера) - драйвер с типом подключением по TCP;
Name   (строка) - имя драйвера;    
Host   (строка) - IP-адрес устройства;  
Port   (число)  - порт на устройстве; 
PingTime (число)  - частота отправки команды Ping для проверки связи с роутером(мс);
BackgroundMode (режим)  - режим работы драйвера(см. константы).

Пример:

IR.CreateDevice(IR.DEVICE_BAOS_2,  //  Тип драйвера 
		"BAOS_2_1",  //  Имя
		"192.168.0.47",  //  IP-адрес
		71,  //  Порт 
		500,  //  Каждые пол секунды проверяется связь с роутером(рекомендуется не менее 500)
		IR.BACKGROUND_ON);  // Background включен
IR.CreateDevice(IR.DEVICE_BAOS_2,  //  Тип драйвера 
		"BAOS_2_2",  //  Имя
		"192.168.0.47",  //  IP-адрес
		72,  //  Порт 
		500,  //  Каждые пол секунды проверяется связь с роутером(рекомендуется не менее 500)
		IR.BACKGROUND_OFF);  //  Background выключен


Драйвер CRESTRON


Arrow download.png Пример создания DEVICE_CRESTRON

Синтаксис:

IR.CreateDevice(IR.DEVICE_CRESTRON, 
		"Name", 
		"Host", 
		Port, 
		NetID, 
		"TelnetLogin", 
		"TelnetPassword", 
		"TelnetPort", 
		SSL,  
		BackGroundMode);

Параметры:

IR.DEVICE_CRESTRON (тип драйвера) - драйвер с типом подключением по TCP;
Name   (строка) - имя драйвера;    
Host   (строка) - IP-адрес устройства;  
Port   (число)  - порт на устройстве; 
NetID (число)  - идентификатор панели в проекте SIMPL (десятичное число);
TelnetLogin (строка)  - логин при использовании защищенной сессии;
TelnetPassword (строка)  - пароль при использовании защищенной сессии;
TelnetPort (строка)  - порт для включенного(41797)/выключенного(41795) SSL;
SSL (true/false)  - протокол безопасности для защиты конфиденциальных данных сети;
BackgroundMode (режим)  - режим работы драйвера(см. константы).

Пример:

IR.CreateDevice(IR.DEVICE_CRESTRON,  // Тип драйвера 
		 "CRESTRON 1",  // Имя
		"192.168.0.47",  // IP-адрес
		71,  // Порт 
		12,  // идентификатор панели  
		"admin",  // Логин 
		"123",  // Пароль
		"41797",  // порт включенного SSL
		true,  // SSL влючен
		IR.BACKGROUND_ON);  // Background включен
IR.CreateDevice(IR.DEVICE_CRESTRON,  // Тип драйвера 
		 "CRESTRON 2",  // Имя
		"192.168.0.47",  // IP-адрес
		72,  // Порт 
		12,  // идентификатор панели  
		"admin",  // Логин 
		"123",  // Пароль
		"41795",  // порт выключенного SSL
		false,  // SSL выключен
		IR.BACKGROUND_OFF);  // Background выключен

IR.GetDevice

Используется для получения доступа к драйверу.

Синтаксис:

IR.GetDevice("Name");

Параметры:

Name (строка) - имя драйвера из Project Device Panel. 
Для драйверов HDL вместо имени драйвера используется имя сети NetworkName из Project Device Panel.


Пример:

  var MyDriver = IR.GetDevice("Dune HD"); // Получаем доступ к драйверу Dune HD
  var MyDriverHDL = IR.GetDevice("HDL-BUS Pro Network (RS232)"); // Получаем доступ к RS232 сети HDL

Send

Эта функция используется для отсылки данных на устройство

Синтаксис 1: Отправление на устройство несколько переменных инструкций:
IR.GetDevice("Device_Name").Send([command_1, .. , сommand_n]);

  • Device_Name - имя устройства созданного в iRidium GUI или в iRidiumScript
  • command_1 - первая переменная или строка - инструкция, отправляемая на устройство
  • command_n - последняя переменная или строка - инструкция, отправляемая на устройство


Синтаксис 2: Отправление на устройство массив инструкций:
IR.GetDevice("Device_Name").Send(array_command);

  • Device_Name - имя устройства созданного в iRidium GUI или в iRidiumScript
  • array_command - массив инструкций для отправки на устройство
IR.AddListener(IR.EVENT_START, 0, function() 
//Событие, которое срабатывает при начале работы приложения
{ 
  IR.CreateDevice(IR.DEVICE_CUSTOM_TCP, "DEVICE", "192.168.0.116", 80); //Команда для создания    драйвера 
  IR.GetDevice("DEVICE").Send(['getverion\r\n HTTP 1.1', '\r\n\r\n']);
//Команда отправляет на устройство инструкцию('getverion\r\n HTTP 1.1', '\r\n\r\n')
});

При использовании HTTP драйвера, необходимо в самое начало строки добавлять тип запроса "GET,", "PUT,", "POST,":

IR.AddListener(IR.EVENT_START, 0, function() 
{ 
  IR.GetDevice("DEVICE").Send(['GET,Data']);

  IR.GetDevice("DEVICE").Send(['PUT,URI,Data']);

  IR.GetDevice("DEVICE").Send(['POST,URI,Data']);
});

Connect

Эта функция устанавливает соединение с устройством

Синтаксис: IR.GetDevice('Device_Name').Connect();

  • Device_Name - имя устройства созданного в iRidium GUI или в iRidiumScript
IR.GetDevice("Global cache").Connect(); //Установить соединение с устройством

Disconnect

Эта функция разрывает соединение с устройством

Синтаксис: IR.GetDevice('Device_Name').Disconnect();

  • Device_Name - имя устройства созданного в iRidium GUI или в iRidiumScript
IR.GetDevice("Global cache").Disconnect(); //Разорвать соединение с устройством

Set

Эта функция активирует канал команды и устанавливает в него значение. Установка значения возможна только для нативных драйверов.

Синтаксис: IR.GetDevice('Device_Name').Set(channel,value);

  • Device_Name - имя устройства созданного в в Project Device Panel или в iRidiumScript
  • channel - идентификатор канала(имя или порядковый номер)
  • value - значение, записываемое в канал
// Установить значение red в канал с порядковым номером 1 (номер в списке команд драйвера)
IR.GetDevice("KNX Router (KNXnet/IP)").Set(1,"red"); 

// Установить значение 100 и активировать канал с именем  BAOS Command
IR.GetDevice("BAOS").Set("BAOS Command",100);

// Отправить команду POWER ON с ИК выхода Global Cache
IR.GetDevice("Global Cache").Set("POWER ON","");

// Для скриптовых драйверов следует передавать пустое значение "".
IR.GetDevice("Sonos").Set("Play","");

Для HDL-BUS Pro и Domintell, используется синтаксис: IR.GetDevice("NetWork").Set("Device_Name:channel",value);

  • NetWork - имя сети HDL, увидите его можно в Project Device Panel
  • Device_Name - имя устройства созданного в в Project Device Panel
  • channel - идентификатор канала(имя или порядковый номер)
  • value - значение, записываемое в канал
// Установить значение 0 и активировать канал Read On Start у под-устройства Sensor_7
IR.GetDevice("HDL-BUS Pro Network (UDP)").Set("Relay_1:Channel 3",0);
// Установить значение 1 и активировать канал Command_On у под-устройства Domintell Device
IR.GetDevice("Domintell Network (UDP)").Set("Domintell Device:Command_On", 1);

InvokeAction

Эта функция отсылает инструкцию на устройство поддерживающее UPnP

Синтаксис: IR.GetDevice('Device_Name').InvokeAction(ActionName,ServiceType,Arguments);

  • Device_Name - имя устройства созданного в iRidium GUI или в iRidiumScript
  • ActionName - имя команды
  • ServiceType - используемый сервис
  • Arguments - список аргументов команды
IR.GetDevice("BAOS").InvokeAction("Play", "service:AVTransport:1",
 {InstanceID: 0, Speed: 1} ); //Отправка команды на UPnP устройству

Subscribe

Эта функция подписывается на события устройства поддерживающее UPnP

Синтаксис: IR.GetDevice('Device_Name').Subscribe(ServiceType);

  • Device_Name - имя устройства созданного в iRidium GUI или в iRidiumScript
  • ServiceType - используемый сервис
IR.GetDevice("BAOS").Subscribe("urn:schemas-upnp-org:service:AVTransport:1");
//Подписка на события UPnP

UnSubscribe

Эта функция отписывается от события устройства поддерживающего UPnP

Синтаксис: IR.GetDevice('Device_Name').UnSubscribe(ServiceType);

  • Device_Name - имя устройства созданного в iRidium GUI или в iRidiumScript
  • ServiceType - используемый сервис
IR.GetDevice("BAOS").Unsubscribe("urn:schemas-upnp-org:service:AVTransport:1");
//Отписка от событий UPnP

HtmlDecode

Замена спецсимволов Html

Синтаксис: IR.HtmlDecode(text)

  • text - текст с неправильной кодировкой
IR.AddListener(IR.EVENT_RECEIVE_TEXT, IR.GetDevice("Global Cache"), function(text) 
//Событие срабатывающее при принятии данных от устройства
{  
  IR.HtmlDecode(text);//Перекодируем html теги
});

JSON.Stringify

Эта функция преобразовывает JSON объект с строку

Синтаксис: JSON.Stringify(Object)

  • Object - JSON объект
var text = JSON.Stringify(Object); //Преобразовывает JSON объект в строку;


JSON.Parse

Эта функция преобразовывает строку в JSON объект

Синтаксис: JSON.Parse(Text)

  • Text - строка
var JSONObject = JSON.Parse (text); //Преобразовывает строку в JSON объект

new XML

Эта функция создает XML объект

Синтаксис: var xml = new Xml(Text);

  • Text - строка, хранящая в себе xml сообщение
var xml = new Xml(Text); //Создание XML строки

XML.ToString

Эта функция преобразует XML объект в строку

Синтаксис: var str = xml.ToString();

  • xml - XML объект
var str = xml.toXMLString();//Преобразование xml объекта в строку

SetFeedback

Эта функция используется для записи значения (строки или числа) в канал обратной связи. Канал обратной связи должен быть заранее создан в Project Device Panel. Применяется для отображения данных получаемых от работы скриптовых драйверов.

Синтаксис: IR.GetDevice("MyDevice").SetFeedback("MyFeedbackChannel", value);

  • MyDevice - имя устройства из Project Device Panel
  • MyFeedbackChannel - имя канала обратной связи из Project Device Panel
  • value - значение, строка или число, которое требуется записать в канал
IR.AddListener(IR.EVENT_START,0,function()
{
   IR.GetDevice("MyDevice").SetFeedback("Room", "Kitchen");
});

GetFeedback

Эта функция используется для получения значения из канал обратной связи. Канал обратной связи должен быть заранее создан в Project Device Panel.

Синтаксис: IR.GetDevice("MyDevice").GetFeedback("MyFeedbackChannel");

  • MyDevice - имя устройства из Project Device Panel
  • MyFeedbackChannel - имя канала обратной связи из Project Device Panel
IR.AddListener(IR.EVENT_START,0,function()
{
  // Выведем в консоль отладки значение канала обратной связи Room
  // принадлежащего драйверу MyDevice
  IR.Log(IR.GetDevice("MyDevice").GetFeedback("Room"));
});

SetParameters

Эта функция используется для изменения параметров подключения драйвера к управляемому устройству. Типичный пример переключения LAN - WAN сетей.

Функция SetParameters физически не перезаписывает настройки подключения драйвера в проекте, поэтому новые параметры не сохраняется после закрытия приложения.

Синтаксис: IR.GetDevice("MyDevice").SetParameters({Host: NewHost, Port: NewPort});

  • MyDevice - имя устройства из Project Device Panel или созданное динамически
  • NewHost - IP адрес устройства, к которому необходимо подключиться
  • NewPort - Порт для подключения к устройству
IR.AddListener(IR.EVENT_START,0,function()
{
   IR.GetDevice("MyDevice").SetParameters({Host: "192.168.0.21", Port: "9090"});
});

Если драйвер имеет дополнительно специфические параметры, например KNX BAOS 771/772 (TCP) имеет параметр UpdateTime помимо Host и Port. Дополнительные параметры обязательно прописываются.

IR.AddListener(IR.EVENT_START,0,function()
{
   IR.GetDevice("BAOS").SetParameters({Host: "192.168.0.163", Port: "12004", UpdateTime: "0"});
});

AMX имеет параметры DeviceID, Login, Password помимо Host и Port. Дополнительные параметры обязательно прописываются.

IR.AddListener(IR.EVENT_START,0,function()
{
   IR.GetDevice("AMX").SetParameters({
        Host: "192.168.0.21", 
        Port: "12004", 
        DeviceID: "1",
        Login: "admin",
        Password: "12345"});
});

AV & Custom Systems (HTTP) имеет параметры SSL, Login, Password, BackgroundMode и ScriptMode помимо Host и Port. Дополнительные параметры обязательно прописываются.

IR.AddListener(IR.EVENT_START,0,function()
{
   IR.GetDevice("AV & Custom Systems (HTTP)").SetParameters({
        Host: "192.168.0.21",
        Port: "12004",
        ScriptMode: 0,
        SSL: "1",
        Login: "admin",
        Password: "12345",
        BackGroundMode: "1",
        ScriptMode: "1"});
});

AV & Custom Systems (UDP) имеет параметры Script Mode, Local Port, BackGroundMode помимо Host и Port. Дополнительные параметры обязательно прописываются.

IR.AddListener(IR.EVENT_START,0,function()
{
   IR.GetDevice("AV & Custom Systems (UDP)").SetParameters({
        Host: "192.168.0.21", 
        Port: "12004", 
        ScriptMode: 1,
        LocalPort: "2500",
        BackGroundMode: 0});
});

AV & Custom Systems (TCP) имеет параметры SendMode, Script Mode, BackGroundMode, помимо Host и Port.

IR.AddListener(IR.EVENT_START,0,function()
{
   IR.GetDevice("AV & Custom Systems (TCP)").SetParameters({
        Host: "192.168.0.21", 
        Port: "12004", 
        SendMode: 1,
        ScriptMode: 1,
        BackGroundMode: 0});
});

Crestron имеет параметр NetID помимо Host и Port. Дополнительные параметры обязательно прописываются.

IR.AddListener(IR.EVENT_START,0,function()
{
   IR.GetDevice("Crestron").SetParameters({
        Host: "192.168.0.21", 
        Port: "12004", 
        NetID: "1"});
});

DuoTecno не имеет дополнительных параметров. Параметры Host и Port обязательно прописываются.

IR.AddListener(IR.EVENT_START,0,function()
{
IR.GetDevice("DuoTecno").SetParameters({
        Host:"192.168.0.21", 
        Port:"5001" });
});

Modbus(TCP) имеет параметр UpdateTime помимо Host и Port. Дополнительные параметры обязательно прописываются.

IR.AddListener(IR.EVENT_START,0,function()
{
IR.GetDevice("Modbus").SetParameters({
        Host: "192.168.0.21",
        Port: "502",
        UpdateTime: "1500",
        DeviceType: "0", // тип устройства (0 - для каждого канала используется DeviceID канала, 1 - DeviceID общий для всего устройства)
        DeviceID: "0"});
});

UPnP имеет параметр DescriptionUrl помимо Host и Port. Дополнительные параметры обязательно прописываются.

IR.AddListener(IR.EVENT_START,0,function()
{
   IR.GetDevice("UPnP").SetParameters({
        DescriptionUrl: "wiki2.iridiummobile.ru",
        Host: "192.168.0.21", 
        Port: "8080"});
});

KNX IP Router (KNXnet/IP) имеет параметры ConnectTime, SendTime, PingTime, Nat помимо Host и Port. Дополнительные параметры обязательно прописываются.

IR.AddListener(IR.EVENT_START,0,function()
{
   IR.GetDevice('KNX IP Router').SetParameters({
           Host: '217.115.10.10', 
           Port: '3671', 
           ConnectTime: '120000',
           SendTime: '0',
           PingTime: '60000',
           Nat: '1'});
});

Параметр Nat - это переключатель 0 - выключить, 1 - включить. Включает / выключает подключения через NAT-сервер. Необходимо для работы по UDP через Интернет. По умолчанию 0.

Смена подключения LAN - WAN для HDL, скрипт, загрузить

GetCommandAtName

Эта функция позволяет обратиться к команде AV & Custom System драйвера (HTTP, TCP, UDP, RS232) по имени или идентификатору и получить данные из поля Data.

Синтаксис: IR.GetDevice(DriverName).GetCommandAtName(CommandName);

  • DriverName(переменная или строка) - имя устройства из Project Device Panel
  • CommandName(переменная или строка) - имя команды/идентификатор команды (начинается с 1)
  // получение по имени
   var NameCommand = IR.GetDevice("MyDevice").GetCommandAtName("Command 1");
   IR.Log("Name: NameCommand  = id:" + NameCommand .id + " name:" + NameCommand.name + " data:" + NameCommand.data);
 // получение по идентификатору
   var NameCommand = IR.GetDevice("MyDevice").GetCommandAtName(1);
   IR.Log("ID: NameCommand  = id:" + NameCommand .id + " name:" + NameCommand.name + " data:" + NameCommand.data);

Выходные данные:

  • id: идентификатор команды
  • data: hex данные команды
  • name: имя команды

GetCommandAtPos

Эта функция позволяет обратиться к команде AV & Custom System драйвера (HTTP, TCP, UDP, RS232) по индексу позиции и получить данные из поля Data.

Синтаксис: IR.GetDevice(DriverName).GetCommandAtPos(CommandPos);

  • DriverNamу(переменная или строка) - имя устройства из Project Device Panel
  • CommandPos(целое число) - индекс позиции команды (начинается с 0)
// получение по индексу позиции                     
var PosCommand =  IR.GetDevice("MyDevice").GetCommandAtPos(0);
IR.Log("POS: PosCommand = id:" + PosCommand.id + " name:" + PosCommand.name + " data:" + PosCommand.data);

Выходные данные:

  • id: идентификатор команды
  • data: hex данные команды
  • name: имя команды

GetCommandsCount

Эта функция позволяет обратиться к AV & Custom System(HTTP, TCP, UDP, RS232) и получить количество команд в проекте.

Синтаксис: IR.GetDevice(DriverName).GetCommandsCount();

  • DriverName(переменная или строка) - имя устройства из Project Device Panel
// получение количества                         
var CommandsCount =  IR.GetDevice("MyDevice").GetCommandsCount();
// вывод в лог количества команд 
IR.Log("CommandsCount = " + CommandsCount);

GetFeedbackAtName

Эта функция позволяет обратиться к каналу обратной связи AV & Custom System драйвера (HTTP, TCP, UDP, RS232) по имени или идентификатору и получить данные из поля Data.

Синтаксис: IR.GetDevice(DriverName).GetFeedbackAtName(FeedbackName);

  • DriverName(переменная или строка) - имя устройства из Project Device Panel
  • FeedbackName(переменная или строка) - имя/идентификатор канала обратной связи (начинается с 1)
  // получение по имени
   var NameFeedback = IR.GetDevice("MyDevice").GetFeedbackAtName("Feedback 1");
   IR.Log("Name: NameFeedback = id:" + NameFeedback.id + " name:" + NameFeedback.name + " data:" + NameFeedback.data);
 // получение по идентификатору
   var NameFeedback = IR.GetDevice("MyDevice").GetFeedbackAtName("Feedback 1");
   IR.Log("ID: NameFeedback = id:" + NameFeedback.id + " name:" + NameFeedback.name + " data:" + NameFeedback.data);

Выходные данные:

  • id: идентификатор канала обратной связи
  • data: hex данные канала обратной связи
  • name: имя канала обратной связи

GetFeedbackAtPos

Эта функция позволяет обратиться к каналу обратной связи AV & Custom System драйвера (HTTP, TCP, UDP, RS232) по индексу позиции и получить данные из поля Data.

Синтаксис: IR.GetDevice(DriverName).GetFeedbackAtPos(FeedbackPos);

  • DriverNamу(переменная или строка) - имя устройства из Project Device Panel
  • FeedbackPos(целое число) - индекс позиции канала обратной связи (начинается с 0)
// получение по индексу позиции                     
var PosFeedback =  IR.GetDevice("MyDevice").GetFeedbackAtPos(0);
IR.Log("POS: PosFeedback= id:" + PosFeedback.id + " name:" + PosFeedback.name + " data:" + PosFeedback.data);

Выходные данные:

  • id: идентификатор канала обратной связи
  • data: hex данные канала обратной связи
  • name: имя канала обратной связи

GetFeedbacksCount

Эта функция позволяет обратиться к AV & Custom System(HTTP, TCP, UDP, RS232) и получить количество каналов обратной связи в проекте.

Синтаксис: IR.GetDevice(DriverName).GetFeedbacksCount();

  • DriverName(переменная или строка) - имя устройства из Project Device Panel
// получение количества                         
var FeedbacksCount =  IR.GetDevice("MyDevice").GetFeedbacksCount;
// вывод в лог количества каналов обратной связи 
IR.Log("FeedbacksCount = " + FeedbacksCount);

HexArrayToAsciiString

Эта функция позволяет конвертировать массив Hex символов в ASCII строку.

Синтаксис: var l_sStr += String.fromCharCode(parseInt(in_aArray["Index"], "N"));

  • Index - индекс символа массива Hex
  • N - число от 2 до 36 обозначающее систему счисления

С помощью параметра система счисления вы можете указать в какой системе счисления находится число в строке. Число в результате выполнения метода будет переведено в десятичную систему счисления.


// конвертация массива Hex символов в ASCII строку
function HexArrayToAsciiString(in_aArray)
{
   // инициализация строки
   var  l_sStr  = '';
  
   // обход массива 
   for(var i = 0; i < in_aArray.length; i++)
   // преобразование из массива в строку
     l_sStr  += String.fromCharCode(parseInt(in_aArray[i], 16));    
   // вернем строку
   return  l_sStr;
}
          
IR.AddListener(IR.EVENT_START, 0, function()  
{    
     // получение по индексу позиции 
      var MyCommand =  IR.GetDevice("MyDevice").GetCommandAtPos(0); // 0 - индекс позиции команды 
      IR.Log("MyCommandData = "+HexArrayToAsciiString(MyCommand.data));
      var MyFeedback =  IR.GetDevice("MyDevice").GetFeedbackAtPos(0); // 0 - индекс позиции канала обратной связи
      IR.Log("MyFeedbackData = "+HexArrayToAsciiString(MyFeedback.data));   
      //получение по имени
      var MyCommand = IR.GetDevice("MyDevice").GetCommandAtName("Command 1");
      IR.Log("MyCommandData = " + HexArrayToAsciiString(MyCommand.data));
      var MyFeedback = IR.GetDevice("MyDevice").GetFeedbackAtName("Feedback 1");
      IR.Log("MyFeedbackData = " + HexArrayToAsciiString(MyFeedback.data));                           
});  

EVENT_RECEIVE_DATA

Эта событие срабатывает когда от устройства приходят данные в байт формате

Синтаксис: IR.AddListener(IR.EVENT_RECEIVE_DATA, IR.GetDevice(Device_Name), function(text)

  • Device_Name - имя устройства созданного в iRidium GUI или с помощью iRidiumScript
IR.AddListener(IR.EVENT_RECEIVE_DATA, IR.GetDevice("Global Cache"), function(text) 
//Событие срабатывающее при принятии данных от устройства
{  
IR.Log(text) //В лог выводим текст
});


EVENT_RECEIVE_TEXT

Эта событие срабатывает когда от устройства приходят данные в строковом формате

Синтаксис: IR.AddListener(IR.EVENT_RECEIVE_TEXT, IR.GetDevice(Device_Name), function(text)

  • Device_Name - имя устройства созданного в iRidium GUI или с помощью iRidiumScript
IR.AddListener(IR.EVENT_RECEIVE_TEXT, IR.GetDevice("Global Cache"), function(text) 
//Событие срабатывающее при принятии данных от устройства
{  
IR.Log(text) //В лог выводим текст
});


EVENT_ONLINE

Эта событие срабатывает когда установлено соединение с устройством

Синтаксис: IR.AddListener(IR.EVENT_ONLINE , IR.GetDevice(Device_Name), function()

  • Device_Name - имя устройства созданного в iRidium GUI или с помощью iRidiumScript
IR.AddListener(IR.EVENT_ONLINE , IR.GetDevice("Global Cache"), function() 
//Событие срабатывающее при принятии событий от устройства
{  
IR.Log("Device is online") //В лог выводим текст
});


EVENT_OFFLINE

Эта событие срабатывает когда разорвано соединение с устройством

Синтаксис: IR.AddListener(IR.EVENT_OFFLINE , IR.GetDevice(Device_Name), function()

  • Device_Name - имя устройства созданного в iRidium GUI или с помощью iRidiumScript
IR.AddListener(IR.EVENT_OFFLINE , IR.GetDevice("Global Cache"), function() 
//Событие срабатывающее при принятии событий от устройства
{  
IR.Log("Device is offline") //В лог выводим текст
});


EVENT_TAG_CHANGE

Эта событие срабатывает при изменении тега на устройстве(только для нативных драйверов).

Синтаксис: IR.AddListener(IR.EVENT_TAG_CHANGE, IR.GetDevice(Device_Name), function(name, value)

  • Device_Name - имя нативного драйвера из Project Device Panel
  • name - имя измененного тега
  • value - Новое значение тега
IR.AddListener(IR.EVENT_TAG_CHANGE, IR.GetDevice("KNX"), function(name, value) 
//Событие срабатывающее при принятии событий от устройства
{  
IR.Log(name,value) //В лог выводим имя тега и новое значение
});

Для HDL синтаксис: IR.AddListener(IR.EVENT_TAG_CHANGE, IR.GetDevice(Network_Name), function(name, value)

  • Network_Name - Имя сети HDL из Project Device Panel
  • name - Переменная получающая имя устройства + двоеточие + имя измененного канала
  • value - Новое значение канала
IR.AddListener(IR.EVENT_TAG_CHANGE, IR.GetDevice("HDL-BUS Pro Network (UDP)"), function(name, value) 
//Событие срабатывающее при принятии событий от устройства
{  
 // Если необходимо сделать проверку на значение канала,
 // следует сделать так:
 if (name == "Logic:BMS Enable")
    {
    // Logic - имя устройств
    // BMS Enable - имя канала
    IR.Log(name,value) //В лог выводим имя тега и новое значение
    }
});

EVENT_DEVICE_FOUND

Это событие срабатывает когда iRidium находит UPnP устройства

Синтаксис: IR.AddListener(IR.EVENT_DEVICE_FOUND, 0, function(name)

  • Device_Name - имя устройства созданного в iRidium GUI или с помощью iRidiumScript
  • name - имя найденного устройства
IR.AddListener(IR.EVENT_DEVICE_FOUND, 0, function(name) 
//Событие срабатывающее при нахождении UPnP устройств
{  
IR.Log(name) //В лог выводим имя найденного устройства
});


EVENT_RECEIVE_EVENT

Это событие срабатывает когда происходит событие на UPnP устройстве

Синтаксис: IR.AddListener(IR.EVENT_RECEIVE_EVENT , IR.GetDevice("Device_Name"), function(type, text)

  • Device_Name - имя устройства созданного в iRidium GUI или с помощью iRidiumScript
  • type - тип события
  • text - сообщение от устройства
IR.AddListener(IR.EVENT_RECEIVE_EVENT , IR.GetDevice("Sonos"), function(type, text)
//Событие срабатывающее при событии UPnP устройства
{  
IR.Log(type, text) //В лог выводим тип события и текст
});

EVENT_CHANNEL_SET

Это событие срабатывает когда активируется канал

Синтаксис: IR.AddListener(IR.EVENT_CHANNEL_SET , IR.GetDevice("Device_Name"), function(Name)

  • Device_Name - имя устройства созданного в iRidium GUI или с помощью iRidiumScript
  • Name - имя канала, который был активирован
IR.AddListener(IR.EVENT_CHANNEL_SET, IR.GetDevice("Sonos"), function(Name, Value)
// Это событие срабатывает когда активируется канал
{  
 switch(Name)
 {
  case "Volume":
  {
   // Команды выполняемые при активации канала Volume
   break;
  }
  case "Play":
  {
   // Команды выполняемые при активации канала Play
   break;
  }
 }
});

↑ К оглавлению