Drivers API
Набор методов и событий для создания драйверов. | Обновлено: 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
![]() |
Пример создания 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
![]() |
Пример создания 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
![]() |
Пример создания 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
![]() |
Пример создания 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
![]() |
Пример создания 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
![]() |
Пример создания 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
![]() |
Пример создания 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)
![]() |
Пример создания 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)
![]() |
Пример создания 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
![]() |
Пример создания 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; } } });