Перейти к основному содержимому

API iRidium. Драйверы

Методы

Объект IR - глобальный объект, содержащий в себе все функции и константы API iRidium. Методы объекта IR для драйвера позволяют создать драйвер и обратиться к драйверу в проекте iRidium. Многие методы применяются к ссылке на существующий драйвер.

Ссылку на драйвер, команду, фидбэк или токен можно прописать вручную или получить её при перетягивании элемента в JS редактор (см. инструкцию.

IR.CreateDevice

создать драйвер в проекте iRidium. Вы можете создать только драйвер типа AV & Custom Systems. Работа с другими драйверами производится после добавления их в проект из базы данных. Внимание! В iRidium V2 функция имела другой синтаксис. Поддержка старого синтаксиса есть в iRidium V3, но его использование не рекомендуется.

Синтаксис

IR.CreateDevice([type](#IR.CreateDevice), [name](#IR.CreateDevice), {[properties](#IR.CreateDevice)})

на входезначениеописание
typeIR.DEVICE_CUSTOM_TCPtype: object
тип драйвера
name"AV Driver 1"type: string
уникальное имя драйвера
propertiesHost: '192.168.0.47', Port: 80type: array
набор параметров драйвера через запятую
на выходе
Object[object DevicePrototype]type: object
ссылка на драйвер, как на объект

Пример

IR.AddListener(IR.EVENT_START,0,function() {
var driver = IR.CreateDevice(IR.DEVICE_CUSTOM_TCP, "AV Device (TCP)",
{Host: "192.168.0.47",
Port: 80,
SSL: false,
SendMode: IR.ALWAYS_CONNECTED,
ScriptMode: IR.DIRECT_AND_SCRIPT,
SendCommandAttempts: 0,
ConnectWaitTimeMax: 3000,
ReceiveWaitTimeMax: 5000,
Login: "admin",
Password: "admin"
});
IR.Log(driver); // [object DevicePrototype]
});

Примечания

Подсказка

набор параметров отличается для разных драйверов если параметр не указан в списке, то его значение будет задано по умолчанию (т.е. можно указать только Host и Port при создании драйвера) драйвер не будет создан при попытке его создания до наступления события запуска приложения IR.EVENT_START. если вы создаете драйвер не при запуске приложения (не при наступлении события IR.EVENT_START), а позже, необходимо вызвать метод .Connect() для этого драйвера, чтобы он подключился к оборудованию. Драйверы, создаваемые по старту приложения, подключаются автоматически. В случае необходимости, их можно отключить методом .Disconnect(). на создание драйвера требуется некоторое время, поэтому в первые несколько миллисекунд отправка данных через этот драйвер будет недоступна; отправляйте данные по событию IR.EVENT_ONLINE.

Параметры AV & Custom Systems

AV & Custom Systems (TCP):


var driver = IR.CreateDevice(IR.DEVICE_CUSTOM_TCP, "AV Device (TCP)",
{Host: "192.168.0.47",
Port: 80,
SSL: false,
SendMode: IR.ALWAYS_CONNECTED,
ScriptMode: IR.DIRECT_AND_SCRIPT,
SendCommandAttempts: 0,
ConnectWaitTimeMax: 3000,
ReceiveWaitTimeMax: 5000,
Login: "",
Password: "",
DisableQueue: false
});

AV & Custom Systems (UDP):


var driver = IR.CreateDevice(IR.DEVICE_CUSTOM_UDP, "AV Device (UDP)",
{Host: "192.168.0.47",
Port: 80,
LocalPort: 80, // port on iRidium side for data receiving
Group: null, // null - broadcast, "host" - multicast group
Multicast: false, // false - broadcast, true - multicast (if multicast group added)
ScriptMode: IR.DIRECT_AND_SCRIPT
});

AV & Custom Systems (HTTP):


var driver = IR.CreateDevice(IR.DEVICE_CUSTOM_HTTP_TCP, "AV Device (HTTP)",
{Host: "192.168.0.47",
Port: 8080,
SSL: false,
Login: "",
Password: "",
DisableQueue: false,
SendCommandAttempts: 0,
ConnectWaitTimeMax: 3000,
ReceiveWaitTimeMax: 5000,
UserAgent: ""
});

AV & Custom Systems (RS232):


var driver = IR.CreateDevice(IR.DEVICE_CUSTOM_SERIAL, "AV Device (RS232)",
{PortName: "\\\\.\\COM1", // double slash "\\" will be converted
// to single slash "\". Result: "\\.\COM1"
BaudRate: 9600,
DataBits: 8,
Parity: 0,
StopBits: 0,
Use485: false // works with RS485, not RS232
});

AV & Custom Systems (TCP Server):


var driver = IR.CreateDevice(IR.DEVICE_CUSTOM_SERVER_TCP, "iRidium TCP Server",
{Port: 2323,
MaxClients: 10 // maximum of clients connected at the same time
});

Для создания сервера с SSL необходимо включить SSL после создания драйвера, с помощью метода SetParameters


var driver = IR.CreateDevice(IR.DEVICE_CUSTOM_SERVER_TCP, "iRidium TCP Server",
{Port: 2323,
MaxClients: 10 // maximum of clients connected at the same time
});
driver.SetParameters({SSL:3});

Сервер с SSL может работать только на iRidium Server

AV & Custom Systems (UDP Server):


var driver = IR.CreateDevice(IR.DEVICE_CUSTOM_SERVER_UDP, "iRidium UDP Server",
{Port: 2323,
MaxClients: 10, // maximum of clients connected at the same time
ClientTimeOut: 100 // (ms) when the Client will be disconnected if it doesn't send data
});

Константы в настройках драйверов

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.GetDevice

получить доступ к любому драйверу в проекте iRidium. Работает для всех драйверов, а не только для созданных с помощью IR.CreateDevice.

Синтаксис

IR.GetDevice([name](#IR.GetDevice))

на входезначениеописание
name"Driver 1"type: string
имя драйвера в проекте iRidium
на выходе
Object[object DevicePrototype]type: Object
ссылка на драйвер

Пример

var myDriver = IR.GetDevice("AMX");
var myDriver1 = IR.GetDevice("HDL-BUS Pro Network (UDP)");
IR.Log(myDriver); // [object DevicePrototype]
IR.Log(myDriver1); // [object DevicePrototype]

Примечания

Подсказка

HDL, Domintell: при обращении используйте имя сети "HDL-BUS Pro Network (UDP)" / "Domintell Network (UDP)", а не имя конкретного устройства сети. Далее описаны методы, которые можно применить к ссылке на драйвер, полученной с помощью IR.GetDevice.

.Connect

установить соединение с оборудованием

Синтаксис

IR.GetDevice([name](#.Connect)).Connect()

| на входе | значение | описание |

на выходе
успешностьtype: Boolean
успешность

Пример

IR.GetDevice("AV & Custom Systems (TCP)").Connect();

Примечания

Подсказка

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

.Disconnect

разорвать соединение с оборудованием

Синтаксис

IR.GetDevice([name](#.Disconnect)).Disconnect()

на входезначениеописание
name"Driver 1"type: string
имя драйвера в проекте iRidium
на выходе
успешностьtype: Boolean
успешность

Пример

IR.GetDevice("AV & Custom Systems (TCP)").Disconnect();

.Send

метод можно использовать только с драйверами [AV & Custom Systems](AV & Custom Systems) и [Global Cache](Global Cache). Позволяет отправить оборудованию произвольный набор данных (строку, число, массив)

Синтаксис

IR.GetDevice([name](#.Send)).Send([data]([#.Send)])IR.GetDevice([name](#.Send)).Send([array](#.Send))IR.GetDevice(["Global Cache"](#.Send)).Send([data]([#.Send)], [transport](#.Send))

на входезначениеописание
name"Driver 1"type: string
имя драйвера в проекте iRidium
dataa, b, ctype: string
список переменных или строк: инструкций для отправки
array[a, b, c]type: array
массив переменных или строк: инструкций для отправки
transport0type: number
идентифкатор транспорта. Используется с драйвером Global Cache, когда нужно отправить данные адресно:* 0 - порт 4998 (ИК команды, реле, сенсоры, система)* 1 - порт 4999 (СОМ 1)* 2 - порт 5000 (СОМ 2)Также используется на iRidium Server и в драйвере Custom TCP Server. Позволяет выбрать, какому из подключенных клиентов отправить данные: 0 - всем, 1..n (ID клиента, полученный в IR.ACCEPT_CLIENT) - конкретному подключенному клиенту
на выходе
успешностьtype: Boolean
успешность

Пример

// AV & Custom Systems (TCP, UDP, RS232)
IR.GetDevice("AV Device").Send(['instruction', '\r\n']);


// AV & Custom Systems (HTTP)
// <Type or request>,<URI>,<Data> devided by "," so u cannot use "," inside of <URI> and <Data>
IR.GetDevice("AV Device").Send(['GET,URI']); // GET
IR.GetDevice("AV Device").Send(['POST,URI,Data']); // POST
IR.GetDevice("AV Device").Send(['PUT,URI,Data']); // PUT


// Global Cache:
// IR.GetDevice("Global Cache").Send(<DATA>, <TRANSPORT ID>)
IR.GetDevice("Global Cache").Send(['setstate,1:1,1', '\r\n'], 0)
// iRidium Server:
// IR.GetServer().Send(<DATA>, <TRANSPORT ID>)
IR.GetServer().Send(['command', '\r\n'], 1)

Примечания

Подсказка

HTTP: при отправке команды HTTP драйверу, укажите в начале метод отправки: GET, POST, PUT, через запятую укажите URI команды и Data для POST и PUT. Внутри URI и Data запятые использовать нельзя. Если ваш протокол использует в HTTP командах запятые, отправляйте их через AV & Custom Systems (TCP), формируя запросы целиком. Global Cache: обязательно указывайте ID транспорта куда должны уйти данные

.SendEx

метод можно использовать только с драйверами [AV & Custom Systems](AV & Custom Systems) (HTTP). Позволяет отправить оборудованию массив данных с указанием на родительский объект (контекст исполнения). Внутри SendEx можно добавить ряд событий, передающих в функции данные о своей работе. События позволяют следить за получением данных от НТТР сервера и обрабатывать различные этапы работы с сервером.

Синтаксис

IR.GetDevice([name](#.SendEx)).SendEx([params](#.SendEx), [context](#.SendEx))

на входезначениеописание
name"Driver 1"type: string
имя драйвера в проекте iRidium
params{a, b, c}type: object
параметры для отправки
contextthistype: object
объект (this) для вызова функции
на выходе
-

Пример

//Example 1:
<!--T:304-->
var context = {
appleCount: 10,
key: 777,
}
</translate>
<translate>
<!--T:302-->
var params = {
Type: "POST",
Url: "/html/login",
Data: ["Password=2007&name=authform&Login=admin"],
Headers: {"Content-Type": "application/x-www-form-urlencoded"},
cbReceiveText: function(text, code, headers) {IR.Log("cbReceiveText "+text+code+headers); IR.Log(this.key)},
cbReceiveData: function(data, code, headers) {IR.Log("cbReceiveData "+data+code+headers);},
cbReceiveCode: function(code) {IR.Log("cbReceiveCode "+code);},
cbReceiveKey: function(key,value) {IR.Log("cbReceiveKey "+key+value);},
cbReceiveStartBody: function(stream) {IR.Log("cbReceiveStartBody "+stream);},
cbReceivePartBody: function(stream) {IR.Log("cbReceivePartBody "+stream);},
cbReceiveEndBody: function(size) {IR.Log("cbReceiveEndBody "+size);},
cbTimeOut: function() {IR.Log("cbTimeOut");},
cbReceiveStream: function(stream, code, headers) {IR.Log("cbReceiveStream "+stream+code+headers);}
}
IR.GetDevice("Server REST").SendEx(params, context)
<!--T:291-->
//Example 2:
<!--T:292-->
IR.GetDevice("Server REST").SendEx({
Type: "GET",
Url: "/json/ok/server/channel",
Headers: {"Cookie":"ir-session-id=o8lKdEvw2ZlU"},
cbReceiveText: function(text, code, headers) {IR.Log("cbReceiveText "+text);}
});

Params

Параметры для отправки задаются следующими переменными:

Type"GET" / "POST" / "PUT"Тип формирования запроса.
Url"/html/login"Ссылка к обращаемому объекту.
Data["Password=2007&name=authform&Login=admin"]Дополнительный параметр, доступен для POST и PUT запросов.
Header"Cookie":"ir-session-id=o8lKdEvw2ZlU"Создание стандартных и нестандартных заголовков HTTP-запросов.
cbReceiveDatacbReceiveData: function(data, code, headers) IR.Log("Получение данных в формате Data: \n Code ответа от сервера: " + code + "\n Данные: "+ data);,Функция обработки ресива в формате DATA, с параметрами: data - данные, code - ответ от сервера, headers - заголовки.
cbRecieveTextcbReceiveText: function(text, code, headers) IR.Log("Получение данных в формате Text: \n Code ответа от сервера: " +code + "\n Данные: " + text + "\n Заголовки: " + headers);,Функция обработки от ресива в формате TEXT, с параметрами: data - данные, code - ответ от сервера, headers - заголовки.
cbRecieveKeycbReceiveKey: function(key, value) IR.Log("Заголовки : "+ key + "\n Значение заголовков: "+ value);,Функция обработки заголовков, с параметрами: key - заголовок, value - значение заголовка.
cbReceiveCodecbReceiveCode: function(code) IR.Log("Code ответа от сервера: "+code);,Функция ответа от сервера, с параметрами: code - ответ от сервера.
cbRecieveStartBodycbReceiveStartBody: function(),Функция начала обработки работы с потоком.
cbRecievePartBodycbReceivePartBody: function(stream) IR.Log("Получение данных в формате ByteStream(Обьект данных): "+stream);,Функция "тела" обработки и получения потока.
cbRecieveEndBodycbReceiveEndBody: function(size) IR.Log("Размер полученого потока (Stream): "+size); ,Функция окончания обработки работы с потоком.
cbTimeOutcbTimeOut: function() IR.Log("cbTimeOut: TimeOut"),Функция обработки, когда время ожидание ответа от сервера.
cbRecieveStreamcbReceiveStream: function(stream, code, headers) IR.Log("Получение данных в формате ByteStream: \n Code ответа от сервера: " +code + "\n Обьект данных: " + stream); Функция обработки потоков.

Метод SendEx() с помощью поля Headers: позволяет задавать стандартные и нестандартные заголовки HTTP-запросов. Ниже приведены некоторые стандартные заголовки и указаны их особенности при работе с методом SendEx().

ЗаголовокЗначение по умолчанию или примерОписаниеВозможность задать (переопределить) в поле HeaderСпособ задания (переопределения)
Host192.168.0.100:123Доменное имя и порт хоста запрашиваемого ресурсанетВ параметрах Host и Port драйвера AV & Custom Systems (HTTP)
ConnectionKeep-Alive или closeСпособ HTTP-соединениянетОпределяется значением поля KeepAliveOut, передаваемым методу SendEx(): если KeepAliveOut = 0, то передаётся заголовок "Connection: close"; если KeepAliveOut > 0, то передаётся заголовок "Connection: Keep-Alive"
Transfer-EncodingchunkedСамоопределение длины содержимого запросанетНе задаётся, см. заголовок Content-Length
Content-Length0Длина содержимого запросанетНе задаётся, вычисляется автоматически по содержимому запроса
Authorization-Данные для авторизациинетВ параметрах Login и Password драйвера AV & Custom Systems (HTTP). Вычисляется автоматически (Basic Authorization)
Content-Typeapplication/x-www-form-urlencodedТип содержимого запросада-
Accept/Список допустимых форматов ресурсада-
User-AgentIridium Server/x.x.xСписок названий и версий клиента и его компонентов с комментариямидаВ параметре User-Agent драйвера AV & Custom Systems (HTTP)

Ниже описан пример написания блока Header (заголовок):


IR.GetDevice("AV & Custom Systems (HTTP)").SendEx({
Type: "GET",
Url: "/device/http",
Headers: {
"Content-Type": "application/json",
"Accept": "application/xml",
"User-Agent": "Project Server v2.0",
"Accept-Language": "en",
"Set-Cookie": "parameter=1",
},
KeepAliveOut: 0; // used for "Connection: close" header
cbReceiveText: function(text, code, headers) {IR.Log("Header: "+headers);}
});

Посмотреть как этот метод реализован в драйвере, можно в прикрепленном проект:

скачать:

.Set

выполнить команду нативного драйвера, заранее настроенную в дереве команд редактора. При выполнении команды вы передаете ей значение так же, как это происходит при нажатии на кнопку в интерфейсе. Работает только для нативных драйверов. Активировать команду можно по индексу (порядковый номер в дереве, начиная с единицы) или по имени. Если команда не настроена в дереве проекта, выполнить ее нельзя.

Синтаксис

IR.GetDevice([driver](#.Set)).Set([command](#.Set), [value](#.Set))

на входезначениеописание
driver"Driver 1"type: string
имя драйвера в проекте iRidium
command"Channel 1"type: string
индекс или имя команды, порядковый номер в дереве, начиная с 1, number
value100type: string
число или строка, которую нужно передать команде для отправки оборудованию, number
на выходе
успешностьtype: Boolean
успешность

Пример

//KNX. 1 - first Commands in project Tree; 100 - value to send, "Dimming" - command name
IR.GetDevice("KNX Router (KNXnet/IP)").Set(1, 100);
IR.GetDevice("KNX Router (KNXnet/IP)").Set("Dimming", 100);


//Global Cahe. "Command 1" - name of command on GC output, "" - empty data
IR.GetDevice("Global Cache").Set("Command 1", "")


//HDL. "HDL-BUS Pro Network (UDP)" - name of network
//"Dimmer" - name of Device in Network, "Channel 1" - name of Channel, 100 - value to send
IR.GetDevice("HDL-BUS Pro Network (UDP)").Set("Dimmer:Channel 1", 100);


//Domintell. "Domintell Network (UDP)" - name of network
//"DDIM01" - name of Device in Network, "Channel 1" - name of Channel, 100 - value to send
IR.GetDevice("Domintell Network (UDP)").Set("DDIM01:Channel 1", 100);


//Set data to virtual tag in iRidium Server project
IR.GetDevice("iRidium server").Set("Virtual 1", 100);
//Set data to channel in iRidium Server project
IR.GetDevice("iRidium Server").Set("KNX Router.Address 1", 1);

Примечания

Подсказка

HDL, Domintell: при обращении используйте имя сети "HDL-BUS Pro Network (UDP)" / "Domintell Network (UDP)", а не имя конкретного устройства сети.

.SetFeedback

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

Синтаксис

IR.GetDevice([driver](#.SetFeedback)).SetFeedback([name](#.SetFeedback), [value](#.SetFeedback))

на входезначениеописание
driver"Driver 1"type: string
имя драйвера в проекте iRidium
name"Channel 1"type: string
имя канала обратной связи (Feedbacks)
value"data"type: string
строка или число, которую нужно записать в канал, number
на выходе
успешностьtype: Boolean
успешность

Пример

IR.GetDevice("MyDevice").SetFeedback("Value 1", 100);

.GetFeedback

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

Синтаксис

IR.GetDevice([driver](#.GetFeedback)).GetFeedback([name](#.GetFeedback))

на входезначениеописание
driver"Driver 1"type: string
имя драйвера в проекте iRidium
name"Channel 1"type: string
имя канала обратной связи (Feedbacks)
на выходе
value"data"type: string, number
строка или число, полученное из канала обратной связи

Пример

IR.GetDevice("MyDevice").GetFeedback("Value 1"); // 100

.SetParameters

изменить указанные параметры подключения драйвера к управляемому оборудованию. Типичный пример: переключение между локальным и Интернет соединением. Возможно выборочное изменение параметров. Новые настройки подключения не меняют исходные параметры драйвера, и не сохраняются при перезапуске приложения. Любой TCP, UDP, HTTP драйвер всегда имеет стандартный набор параметров: Host, Port, Login, Password (даже, если логин и пароль драйвером не используются), и в зависимости от типа драйвера существуют наборы уникальных параметров.

Синтаксис

IR.GetDevice([driver](#.SetParameters)).SetParameters({Host: [host](#.SetParameters), Port: [port](#.SetParameters), [[#.SetParameters|]]});

на входезначениеописание
driver"Driver 1"type: string
имя драйвера в проекте iRidium
host"192.168.0.100"type: string
IP адрес или доменное имя для подключения к оборудованию
port8080type: number
порт подключения
LogLevel4type: number
Уровень лога. LogLevel
othertype: -
на выходе
успешностьtype: Boolean
успешность

Пример

IR.GetDevice("KNX").SetParameters({Host: "215.110.10.22", Port: 8080});

Примечания

Подсказка

Текущие настройки драйвера доступны как Свойства драйвера

.GetCookies

получть массив Cookies через драйвер AV & Custom Systems (HTTP)

Синтаксис

IR.GetDevice([driver](#.GetCookies)).GetCookies()

на входезначениеописание
driver"Driver 1"type: string
имя HTTP драйвера в проекте iRidium
на выходе
arraytype: array
массив Cookies

Пример

var num = IR.GetDevice("MyDevice").GetCookies()

.SetCookie

отравляет Cookie вместе с остальной header-информацией через драйвер AV & Custom Systems (HTTP)

Синтаксис

IR.GetDevice([driver](#.SetCookie)).SetCookie([key](#.SetCookie), [value](#.SetCookie))

на входезначениеописание
driver"Driver 1"type: string
имя HTTP драйвера в проекте iRidium
keytype: string
ключ
valuetype: string
значение
на выходе
успешностьtype: Boolean
успешность

Пример

IR.GetDevice("MyDevice").SetCookie("TestCookie", "value")

.GetLogin

получить логин соединения с любым драйвером

Синтаксис

IR.GetDevice([driver](#.GetLogin)).GetLogin()

на входезначениеописание
driver"Driver 1"type: string
имя драйвера
на выходе
login'admin'type: string
логин драйвера

Пример

var login = IR.GetDevice("MyDevice").GetLogin()
IR.Log(login) // admin

.GetPassword

получить пароль соединения с любым драйвером

Синтаксис

IR.GetDevice([driver](#.GetPassword)).GetPassword()

на входезначениеописание
driver"Driver 1"type: string
имя драйвера
на выходе
login'admin'type: string
пароль драйвера

Пример

var pass = IR.GetDevice("MyDevice").GetPassword()
IR.Log(pass) // password

.AddChannel

функция в разработке добавить канал драйверу

Синтаксис

IR.GetDevice([driver](#.AddChannel)).AddChannel([name](#.AddChannel), [data](#.AddChannel))

на входезначениеописание
driver"Driver 1"type: string
имя драйвера
name"Channel 1"type: string
имя команды
datatype: array
массив данных, специфичный для каждого драйвера
на выходе
-

Пример

/* under development */

.AddTag

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

Синтаксис

IR.GetDevice([driver](#.AddTag)).AddTag([name](#.AddTag), [data](#.AddTag))

на входезначениеописание
driver"Driver 1"type: string
имя драйвера
name"Channel 1"type: string
имя канала обратной связи
datatype: array
массив данных, специфичный для каждого драйвера
на выходе
-

Пример

/* under development */

.AddRelation

создать Relation - связь между объектами интерфейса и драйверами / переменными / другими объектами.

Синтаксис

IR.AddRelation([source](#.AddRelation), [destination](#.AddRelation))

на входезначениеописание
source"Drivers.iRidium Server.Tags.KNX.1/0/1"type: string
источник данных
destination"UI.Popup 1.Item 1.Value"type: string
получатель данных
на выходе
-

Пример

var from = "Drivers.iRidium Server.Tags.KNX.1/0/1";
var to = "UI.Popup 1.Item 1.Value";
IR.AddRelation(from, to);

.RemoveRelation

удалить Relation - связь между объектами интерфейса и драйверами / переменными / другими объектами.

Синтаксис

IR.RemoveRelation([source](#.RemoveRelation), [destination](#.RemoveRelation))

на входезначениеописание
source"Drivers.iRidium Server.Tags.KNX.1/0/1"type: string
источник данных
destination"UI.Popup 1.Item 1.Value"type: string
получатель данных
на выходе
-

Пример

var from = "Drivers.iRidium Server.Tags.KNX.1/0/1";
var to = "UI.Popup 1.Item 1.Value";
IR.RemoveRelation(from, to);

.GetCommandsCount

получить количество команд, настроенных в драйвере

Синтаксис

IR.GetDevice([driver](#.GetCommandsCount)).GetCommandsCount()

на входезначениеописание
driver"Driver 1"type: string
имя драйвера в проекте iRidium
на выходе
CommandsCount52type: number
количество команд устройства

Пример

var num = IR.GetDevice("MyDevice").GetCommandsCount();
IR.Log(num); // number of commands

.GetCommandAtName

получить данные из поля Data команды драйвера. Обращение к команде производится по имени.

Синтаксис

IR.GetDevice([driver](#.GetCommandAtName)).GetCommandAtName([name](#.GetCommandAtName))

на входезначениеописание
driver"Driver 1"type: string
имя драйвера в проекте iRidium
name"Command 1"type: string
имя команды
на выходе
object[object Object]type: object
ссылка на команду драйвера
object.id1type: number
свойство объекта: численный идентификатор команды (начинается с 1)
object.nameCommand 1type: string
свойство объекта: имя команды
object.data74,65,73,74type: array
свойство объекта: данные из поля Data команды в виде байтового массива

Пример

var Command = IR.GetDevice("AV").GetCommandAtName("Command 1");
IR.Log("id: " + Command.id + ", name: " + Command.name + ", data: " + Command.data);
// id: 1, name: Command 1, data: 74,65,73,74

.GetCommandAtPos

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

IR.GetDevice([driver](#.GetCommandAtPos)).GetCommandAtPos([position](#.GetCommandAtPos))

на входезначениеописание
driver"Driver 1"type: string
имя драйвера в проекте iRidium
position0type: number
порядковый номер команды (начинается с 0)
на выходе
object[object Object]type: object
ссылка на команду драйвера
object.id1type: number
свойство объекта: численный идентификатор команды (начинается с 1)
object.nameCommand 1type: string
свойство объекта: имя команды
object.data74,65,73,74type: array
свойство объекта: данные из поля Data команды в виде байтового массива

Пример

var Command = IR.GetDevice("AV").GetCommandAtPos(0);
IR.Log("id: " + Command.id + ", name: " + Command.name + ", data: " + Command.data);
// id: 1, name: Command 1, data: 74,65,73,74

.GetFeedbacksCount

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

Синтаксис

IR.GetDevice([driver](#.GetFeedbacksCount)).GetFeedbacksCount()

на входезначениеописание
driver"Driver 1"type: string
имя драйвера в проекте iRidium
на выходе
FeedbacksCount52type: number
количество каналов устройства

Пример

var num = IR.GetDevice("MyDevice").GetFeedbacksCount();
IR.Log(num); // number of feedbacks

.GetFeedbackAtName

получить данные из поля Data канала обратной связи драйвера. Обращение к каналу обратной связи производится по имени или идентификатору.

Синтаксис

IR.GetDevice([driver](#.GetFeedbackAtName)).GetFeedbackAtName([name/ID](#.GetFeedbackAtName))

на входезначениеописание
driver"Driver 1"type: string
имя драйвера в проекте iRidium
name/ID"Feedback 1"type: string
имя канала / идентификатор канала/number
на выходе
object[object Object]type: object
ссылка на объект: канал обратной связи
object.id1type: number
свойство объекта: численный идентификатор канала (начинается с 1)
object.nameCommand 1type: string
свойство объекта: имя канала
object.data74,65,73,74type: array
свойство объекта: данные из поля Data канала в виде байтового массива

Пример

var Feedback = IR.GetDevice("AV & Custom System (TCP)").GetFeedbackAtName("Feedback 1");
IR.Log("id: " + Feedback.id + ", name: " + Feedback.name + ", data: " + Feedback.data);
// id: 1, name: Feedback 1, data: 74,65,73,74

.GetFeedbackAtPos

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

IR.GetDevice([driver](#.GetFeedbackAtPos)).GetFeedbackAtPos([position](#.GetCommandAtPos))

на входезначениеописание
driver"Driver 1"type: string
имя драйвера в проекте iRidium
position0type: number
порядковый номер канала (начинается с 0)
на выходе
object[object Object]type: object
ссылка на канал драйвера
object.id1type: number
свойство объекта: численный идентификатор канала (начинается с 1)
object.nameCommand 1type: string
свойство объекта: имя канала
object.data74,65,73,74type: array
свойство объекта: данные из поля Data канала в виде байтового массива

Пример

var Feedback = IR.GetDevice("AV & Custom System (TCP)").GetFeedbackAtPos(0);
IR.Log("id: " + Feedback.id + ", name: " + Feedback.name + ", data: " + Feedback.data);
// id: 1, name: Feedback 1, data: 74,65,73,74

.AddEndOfString

Метод для указания строки, которая будет считаться концом сообщения в слушателе IR.EVENT_RECEIVE_TEXT. Метод работает только для AV & Custom System (TCP, UDP, RS232). При передаче больших по объему сообщений, устройства разбивают их на пакеты и в слушатель IR.EVENT_RECEIVE_TEXT сообщение приходит по частям (пакетами). С помощью описываемого метода, скрипт будет искать в пакетах указанную строку и автоматически склеивать все предыдущие пакеты в единое сообщение. Метод не работает с драйвером HTTP . Для драйвера HTTP рекомендуется использовать метод .SendEx, который сам умеет собирать полученные частями данные в одно сообщение.

Синтаксис

IR.GetDevice([driver](#.AddEndOfString)).AddEndOfString([string](#.AddEndOfString))

на входезначениеописание
driver"Driver 1"type: string
имя драйвера в проекте iRidium
string"happy"type: string
строка, определяющая конец сообщения
на выходе
object[object Object]type: object
ссылка на канал драйвера
resulttruetype: boolean
результат выполнения метода. Если входным параметром указана строка, то метод вернет true, если любой другой тип данных, то вернется false

Пример

var driver = IR.GetDevice("TCP");
IR.AddListener(IR.EVENT_START,0,function()
{
IR.Log(driver);
driver.AddEndOfString("happy");
})

.AddEndOfData

Метод для указания последовательности байт, которые будут считаться концом сообщения в слушателе IR.EVENT_RECEIVE_DATA. Метод работает только для AV & Custom System (HTTP, TCP, UDP, RS232). При передаче больших по объему сообщений, устройства разбивают их на пакеты и в слушатель IR.EVENT_RECEIVE_DATA сообщение приходит по частям (пакетами). С помощью описываемого метода, скрипт будет искать в пакетах указанную последовательность и автоматически склеивать все предыдущие пакеты в единое сообщение

Синтаксис

IR.GetDevice([driver](#.AddEndOfData)).AddEndOfData([data](#.AddEndOfData))

на входезначениеописание
driver"Driver 1"type: string
имя драйвера в проекте iRidium
data0x0d,0x0atype: string
последовательность, определяющая конец сообщения
на выходе
object[object Object]type: object
ссылка на канал драйвера
resulttruetype: boolean
результат выполнения метода. Если входным параметром указан массив байт, то метод вернет true, если любой другой тип данных, то вернется false

Пример

var driver = IR.GetDevice("TCP");
IR.AddListener(IR.EVENT_START,0,function()
{
IR.Log(driver);
driver.AddEndOfData([0x0d,0x0a]);
})

.GetChannelURI

Метод для обращения из JS к полю URI в драйвере Custom AV HTTP. Это позволяет напрямую прочитать строку из поля URI.

Синтаксис

IR.GetDevice(["AV & Custom Systems (HTTP)"](#.GetChannelUR)).GetChannelURI(["AV Control Command"](#.GetChannelUR))

на входезначениеописание
name"AV Control Command"type: string
имя команды
на выходе
URI in taghttp://YourURItype: string
стройка с URI

Пример

IR.AddListener(IR.EVENT_START,0,function()
{
var device = IR.GetDevice("AV & Custom Systems (HTTP)");
var URI = device.GetChannelURI("AV Control Command");
IR.Log("************ " + URI);
});

.SendText

метод можно использовать только с драйверами AV & Custom Systems (WebSoket)%3A-,AV%20%26%20Custom%20Systems%20(WebSocket),-Драйвер%20применяется%20для). Позволяет отправить оборудованию данные (за исключением массивов) в формате текста (string).

На выходеЗначениеОписание
name"Driver 1"type: String имя драйвера в проекте iRidium
context"Hello, world!" / 1234 / true и т.д.type: object (not array) / number / string/ boolean данные которые нужно передать
На выходе
успешностьtype: Boolean успешность

Пример кода:


// Для того что-бы скрипт сработал в проекте должен быть добавлен и настроен драйвер AV & Custom Systems (WebSoket)
var value = 8.2;
function test_runner() {
IR.GetDevice("AV & Custom Systems (WebSocket)").SendText(value); // на оборудование уходит "8.2"
IR.GetDevice("AV & Custom Systems (WebSocket)").SendText(Math.ceil(value)); // на оборудование уходит "9"
};
IR.AddListener(IR.EVENT_START, 0, function () {
IR.SetTimeout(10000, test_runner)
});

Конвертация данных из поля Data

Приведенные выше методы возвращают данные из поля Data в формате HEX. Чтобы преобразовать эти данные в ASCII строку, используйте следующую конструкцию:


// process an array of HEX bytes from Data field of Command or Feedback
function HexArrayToAsciiString(in_aArray)
{
// init string
var l_sStr = '';

// aray bypass
for(var i = 0; i < in_aArray.length; i++)
l_sStr += String.fromCharCode(parseInt(in_aArray[i], 16));

// return string in ASCII format
return l_sStr;
}
IR.AddListener(IR.EVENT_START, 0, function()
{
var l_pCommand = IR.GetDevice("Driver").GetCommandAtName(1);
IR.Log("data:" + HexArrayToAsciiString(l_pCommand.data)); // ASCII data
});

IR.GetDevices()

получить массив всех драйверов в проекте iRidium.

Синтаксис

IR.GetDevices();

на выходе
Object[object DevicePrototype]type: Object
ссылка на массив драйверов

Пример

var devices = IR.GetDevices();
var name_1 = devices[0].Name;
var name_2 = devices[1].Name;
IR.Log("First device: " + name_1);
IR.Log("Second device: " + name_2);

IR.IsModuleLicensed

Проверка драйвера на наличие лицензии Внимание! Чтобы функция работала для вашего драйвера, вам необходимо согласовать поддержку вашего драйвера с нами. Для того чтобы внести ваш драйвер с список поддерживаемых, напишите нам на contact@iridiummobile.ru

Синтаксис

IR.IsModuleLicensed(ID)

на входезначениеописание
ID452type: Number
тип драйвера, согласованный с нашей компанией
на выходе
Resulttruetype: boolean
true - драйвер лицензирован, false - драйвер не лицензирован

Пример

var hasLicense1= IR.IsModuleLicensed("6")   // AV & Custom Systems
var hasLicense2= IR.IsModuleLicensed("14") // AV & Custom HTTP

События

Пример:


// выполнение функции внутри слушателя
IR.AddListener(IR.EVENT_TAG_CHANGE, IR.GetDevice("Driver"), function (name, value)
{
IR.Log("changes: "+name+" > "+value); // changes: Feedback 1 > 100
});

IR.EVENT_ONLINE

идентификатор события, которое срабатывает при соединении с оборудованием

Синтаксис

IR.AddListener(IR.EVENT_ONLINE, [driver](#IR.EVENT_ONLINE), [function](#IR.EVENT_ONLINE), [pointer]([#IR.EVENT_ONLINE)]);

на входезначениеописание
driverIR.GetDevice("MyDriver")type: object
ссылка на драйвер
functionfunction() {}type: function
не именованная функция или обращение к функции
pointer-type: object
указатель на объект, который обслуживает функцию (опционально)
на выходе
-

Пример

IR.AddListener(IR.EVENT_ONLINE, IR.GetDevice("Global Cache"), function()
{
IR.Log("Device online");
});

IR.EVENT_OFFLINE

идентификатор события, которое срабатывает при отключении от оборудования

Синтаксис

IR.AddListener(IR.EVENT_OFFLINE, [driver](#IR.EVENT_OFFLINE), [function](#IR.EVENT_OFFLINE), [pointer]([#IR.EVENT_OFFLINE)]);

на входезначениеописание
driverIR.GetDevice("MyDriver")type: object
ссылка на драйвер
functionfunction() {}type: function
не именованная функция или обращение к функции
pointer-type: object
указатель на объект, который обслуживает функцию (опционально)
на выходе
-

Пример

IR.AddListener(IR.EVENT_OFFLINE, IR.GetDevice("Global Cache"), function()
{
IR.Log("Device offline");
});

IR.EVENT_TAG_CHANGE

идентификатор события, которое срабатывает при изменении статуса канала обратной связи нативного драйвера.

Синтаксис

IR.AddListener(IR.EVENT_TAG_CHANGE, [driver](#IR.EVENT_TAG_CHANGE), [function](#IR.EVENT_TAG_CHANGE), [pointer]([#IR.EVENT_ITEM_OFFLINE)]);

на входезначениеописание
driverIR.GetDevice("MyDriver")type: object
ссылка на драйвер
functionfunction(name, value) {}type: function
не именованная функция или обращение к функции
pointer-type: object
указатель на объект, который обслуживает функцию (опционально)
на выходе
name"Feedback 1"type: string
имя изменившегося канала
value100type: number
новое значение

Пример

// Subscribe to driver
IR.AddListener(IR.EVENT_TAG_CHANGE, IR.GetDevice("KNX Router (KNXnet/IP)"), function(name, value)
{
IR.Log(name+": "+value); // Feedback 1: 100
});
// subscribe to iRidium Server variables (in Server project)
IR.AddListener(IR.EVENT_TAG_CHANGE, IR.GetServer(), function(name, value)
{
IR.Log(name+": "+value);
});

Примечания

Подсказка

Для драйвера AV & Custom Systems ! Используйте IR.EVENT_RECEIVE_DATA или IR.EVENT_RECEIVE_TEXT для разбора данных этого драйвера HDL: вместо имени драйвера укажите имя HDL Network, по умолчанию это "HDL-BUS Pro Network (UDP)". Измененное значение канала возвращается в виде "device:channel"; device - имя исполняющего устройства HDL, channel - канал в настройках этого устройства. Domintell: вместо имени драйвера укажите имя Domintell Network, по умолчанию это "Domintell Network (UDP)". Измененное значение канала возвращается в виде "device:channel"; device - имя исполняющего устройства Domintell, channel - канал в настройках этого устройства. Событие IR.EVENT_TAG_CHANGE возникает:

  • при каждом получении данных (даже если значение не изменилось) в случае прямого доступа к драйверу IR.GetDevice(),
  • только при изменении данных в случае косвенного доступа через сервер IR.GetServer().

IR.EVENT_RECEIVE_DATA

идентификатор события, которое срабатывает при получении данных драйвером AV & Custom Systems и выводит данные в виде байт-массива - массива символов в ASCII-коде. Работает только с драйверами [AV & Custom Systems](AV & Custom Systems).

Синтаксис

IR.AddListener(IR.EVENT_RECEIVE_DATA, [driver](#IR.EVENT_RECEIVE_DATA), [function](#IR.EVENT_RECEIVE_DATA), [pointer]([#IR.EVENT_RECEIVE_DATA)]);

на входезначениеописание
driverIR.GetDevice("MyDriver")type: object
ссылка на драйвер
functionfunction(data) {}type: function
не именованная функция или обращение к функции
pointer-type: object
указатель на объект, который обслуживает функцию (опционально)
на выходе
datatype: array
массив символов

Пример

IR.AddListener(IR.EVENT_RECEIVE_DATA, IR.GetDevice("AV & Custom Systems (TCP)"), function(data)
{
IR.Log(data);
});

Примечания

Подсказка

работает только с драйверами [AV & Custom Systems](AV & Custom Systems).

IR.EVENT_RECEIVE_TEXT

идентификатор события, которое срабатывает при получении данных драйвером AV & Custom Systems и выводит данные в строковом формате. Работает только с драйверами [AV & Custom Systems](AV & Custom Systems).

Синтаксис

IR.AddListener(IR.EVENT_RECEIVE_TEXT, [driver](#IR.EVENT_RECEIVE_TEXT), [function](#IR.EVENT_RECEIVE_TEXT), [pointer]([#IR.EVENT_RECEIVE_TEXT)]);

на входезначениеописание
driverIR.GetDevice("MyDriver")type: object
ссылка на драйвер
functionfunction(text) {}type: function
не именованная функция или обращение к функции
pointer-type: object
указатель на объект, который обслуживает функцию (опционально)
на выходе
texttype: string
полученные данные в строковом формате

Пример

IR.AddListener(IR.EVENT_RECEIVE_TEXT, IR.GetDevice("AV & Custom Systems (TCP)"), function(text)
{
IR.Log(text);
});

Примечания

Подсказка

работает только с драйверами [AV & Custom Systems](AV & Custom Systems).

IR.EVENT_ERROR

идентификатор события, которое срабатывает, если при отправке НТТР запроса ресурс не доступен, или доступен, но не ответил за установленное время. Выводит результат в виде кода ошибки

Синтаксис

IR.AddListener(IR.EVENT_ERROR, [driver](#IR.EVENT_ERROR), [function](#IR.EVENT_ERROR), [pointer]([#IR.EVENT_ERROR)]);

на входезначениеописание
driverIR.GetDevice("AV & Custom Systems (HTTP)")type: object
ссылка на драйвер
functionfunction(transport_id, local_ip, local_port, host_ip, host_port, errorCode) {}type: function
не именованная функция или обращение к функции, обработает результаты срабатывания слушателя
pointer-type: object
указатель на объект, который обслуживает функцию (опционально)
на выходе
transport_id0type: number
идентификатор транспорта, 0 для любого AV драйвера, кроме Global Cache: 0 - IR, система, 1 - COM1, 2 - СОМ2
local_ipt192.168.0.100type: string
локальный адрес отправителя команды
local_port80type: number
локальный порт отправителя команды
host_ip200.200.10.10type: string
адрес получателя команды
host_port80type: number
порт получателя команды
errorCode1type: number
код ошибки:* 1 - не удалось отправить запрос (ресурс недоступен)* 2 - ресурс доступен, но за установленное время не пришел ответ

Пример

var driver = IR.CreateDevice(IR.DEVICE_CUSTOM_HTTP_TCP, "AV Device (HTTP)", {
Host: "ResourceUnavailable.net", Port: 80
});
driver.SendEx({
Type: "GET", Url: "/request", Headers: {},
cbReceiveText: function(text, code, headers) {IR.Log("cbReceiveText (code) = "+code);}
});
IR.AddListener(IR.EVENT_ERROR, driver, function(transport_id, local_ip, local_port, host_ip, host_port, errorCode) {
IR.Log("IR.EVENT_ERROR (code) = "+errorCode);
});

Примечания

Подсказка

работает только с [AV & Custom Systems (HTTP)](AV & Custom Systems) не сработает, если от ресурса пришел ответ, даже с ошибкой. Для обработки ошибок используйте SendEx

IR.EVENT_CHANNEL_SET

идентификатор события, которое срабатывает при активации команды драйвера

Синтаксис

IR.AddListener(IR.EVENT_CHANNEL_SET, [driver](#IR.EVENT_CHANNEL_SET), [function](#IR.EVENT_CHANNEL_SET), [pointer]([#IR.EVENT_CHANNEL_SET)]);

на входезначениеописание
driverIR.GetDevice("MyDriver")type: object
ссылка на драйвер
functionfunction(name, value) {}type: function
не именованная функция или обращение к функции
pointer-type: object
указатель на объект, который обслуживает функцию (опционально)
на выходе
name"Command 1"type: string
имя команды, которая была активирована
value100type: number
значение Value, записанное в команду при отправке
data'string'type: string
значение, сохраненное в поле Data вызванной команды – есть только у драйверов AV & Custom Systems

Пример

IR.AddListener(IR.EVENT_CHANNEL_SET, IR.GetDevice("AV & Custom Systems (TCP)"), function(name, value, data) {
switch(name) {
case "Volume":
if (data) IR.Log("Volume set: " + data + " " + value)
else IR.Log("Volume set: " + value)
break;
case "Play":
IR.Log("Play")
break;
}
});

Примечания

Подсказка

событие сработает только для драйверов AV & Custom Systems и Global Cache

IR.EVENT_TAG_UPDATE_START

Слушатель срабатывает по началу опроса KNX шины

Синтаксис

IR.AddListener(IR.EVENT_TAG_UPDATE_START, [driver](#IR.EVENT_TAG_UPDATE_START), [function](#IR.EVENT_TAG_UPDATE_START), [pointer]([#IR.EVENT_TAG_UPDATE_START)]);

на входезначениеописание
driverIR.GetDevice("MyDriver")type: object
ссылка на драйвер
functionfunction(name, value) {}type: function
не именованная функция или обращение к функции
pointer-type: object
указатель на объект, который обслуживает функцию (опционально)

Пример

IR.AddListener(IR.EVENT_TAG_UPDATE_START, IR.GetDevice("KNX Router (KNXnet/IP) / Serial (UMC) 1"), function () {IR.Log("EVENT_TAG_UPDATE_START")});

IR.EVENT_TAG_UPDATE_END

Слушатель срабатывает по окончанию опроса KNX шины.

Синтаксис

IR.AddListener(IR.EVENT_TAG_UPDATE_END, [driver](#IR.EVENT_TAG_UPDATE_END), [function](#IR.EVENT_TAG_UPDATE_END), [pointer]([#IR.EVENT_TAG_UPDATE_END)]);

на входезначениеописание
driverIR.GetDevice("MyDriver")type: object
ссылка на драйвер
functionfunction(name, value) {}type: function
не именованная функция или обращение к функции
pointer-type: object
указатель на объект, который обслуживает функцию (опционально)

Пример

IR.AddListener(IR.EVENT_TAG_UPDATE_END, IR.GetDevice("KNX Router (KNXnet/IP) / Serial (UMC) 1"), function () {IR.Log("EVENT_TAG_UPDATE_END")});

UPnP

.InvokeAction

отослать инструкцию на устройство с поддержкой UPnP

Синтаксис

IR.GetDevice([driver](#.InvokeAction)).InvokeAction([action_name](#.InvokeAction), [service_type](#.InvokeAction), [arguments]([#.InvokeAction), [callback](#.InvokeAction)])

на входезначениеописание
driver"Driver 1"type: string
имя драйвера в проекте iRidium
action_name"Play"type: string
имя команды
service_type"service:AVTransport:1"type: string
используемый сервис
argumentsInstanceID: 0, Speed: 1type: string
список аргументов команды
callbacktype: object
функция обратного вызова
на выходе
успешностьtype: Boolean
успешность

Пример

IR.GetDevice("Sonos").InvokeAction("Play", "service:AVTransport:1", {InstanceID: 0, Speed: 1});

.Subscribe

подписаться на событие устройства, поддерживающего UPnP

Синтаксис

IR.GetDevice([driver](#.Subscribe)).Subscribe([service_type](#.Subscribe))

на входезначениеописание
driver"Driver 1"type: string
имя драйвера в проекте iRidium
service_type"urn:schemas-upnp-org:service:AVTransport:1"type: string
используемый сервис
на выходе
truetruetype: Boolean
успешность

Пример

IR.GetDevice("Sonos").Subscribe("urn:schemas-upnp-org:service:AVTransport:1");

.Unsubscribe

отписаться от события устройства, поддерживающего UPnP

Синтаксис

IR.GetDevice([driver](#.Unsubscribe)).Unsubscribe([service_type](#.Unsubscribe))

на входезначениеописание
driver"Driver 1"type: string
имя драйвера в проекте iRidium
service_type"urn:schemas-upnp-org:service:AVTransport:1"type: string
используемый сервис
на выходе
truetruetype: Boolean
успешность

Пример

IR.GetDevice("BAOS").Unsubscribe("urn:schemas-upnp-org:service:AVTransport:1");

IR.EVENT_DEVICE_FOUND

идентификатор события, которое срабатывает при событии на UPnP устройстве

Синтаксис

IR.AddListener(IR.EVENT_DEVICE_FOUND, 0, [function](#IR.EVENT_DEVICE_FOUND), [pointer]([#IR.EVENT_DEVICE_FOUND)]);

на входезначениеописание
functionfunction(name) {}type: function
не именованная функция или обращение к функции
pointer-type: object
указатель на объект, который обслуживает функцию (опционально)
на выходе
name"Device"type: string
имя найденного UPnP устройства

Пример

IR.AddListener(IR.EVENT_DEVICE_FOUND, 0, function(name)
{
IR.Log(name);
});

IR.EVENT_RECEIVE_EVENT

идентификатор события, которое срабатывает при получении события от UPnP устройства

Синтаксис

IR.AddListener(IR.EVENT_RECEIVE_EVENT, [driver](#IR.EVENT_RECEIVE_EVENT), [function](#IR.EVENT_RECEIVE_EVENT), [pointer]([#IR.EVENT_RECEIVE_EVENT)]);

на входезначениеописание
driverIR.GetDevice("MyDriver")type: object
ссылка на UPnP драйвер
functionfunction(type, text) {}type: function
не именованная функция или обращение к функции
pointer-type: object
указатель на объект, который обслуживает функцию (опционально)
на выходе
typetype: string
тип события
texttype: string
сообщение от устройства

Пример

IR.AddListener(IR.EVENT_RECEIVE_EVENT, IR.GetDevice("MyDriver"), function(type, text) {
IR.Log(text);
});

Свойства

Свойства драйверов

Параметры подключения драйвера доступны для чтения как свойства объекта Драйвер. Чтобы изменить параметры подключения, нужно использовать метод .SetParameters.

Основные свойства драйвера в проекте iRidium - это имя и тип. Их можно запросить у любого драйвера. :

driver.property

property: |Name|Crestron 1|string|имя драйвера |Type|Crestron (TCP)|string|тип драйвера. Точное название типа вы можете видеть в параметре Driver Type, в окне настроек подключения |LogLevel|Debug|number|уровень логирования:0 - Emergency1 - Alert2 - Critical3 - Error4 - Warning5 - Notice6 - Info7 - Debug8 - Never


var driver = IR.GetDevice("Crestron 1");
IR.AddListener(IR.EVENT_START,0,function()
{
var properties = driver.Name + " (" + driver.Type + ") created";
IR.Log(properties);
});

Остальные параметры драйверов уникальны, и зависят от типа драйвера. Имена параметров драйвера можно посмотреть в системном меню или взять из списка:

driver.property

AMX

ПараметрЗначениеТипОписание
Host192.168.0.100stringIP адрес или доменное имя
Port1319numberпорт подключения
DeviceID10001numberуникальный идентификатор панели AMX
Loginadminstringлогин защищенной сессии
Passwordadminstringпароль защищенной сессии

AV & Custom Systems (UDP)

ПараметрЗначениеТипОписание
Host192.168.0.100stringIP адрес или доменное имя
Port8080numberпорт подключения
LocalPort80numberлокальный порт получения данных (на стороне iRidium)
Groupnullstringnull - броадкаст, "host" - мультикаст группа
Multicastfalsestringfalse - броадкаст, true - мультикаст (если группа указана)
ScriptMode0numberпосылать данные напрямую в драйвер и в скрипты (0) или только в скрипты (1)

AV & Custom Systems (HTTP)

ПараметрЗначениеТипОписание
Host192.168.0.100stringIP адрес или доменное имя
Port8080numberпорт подключения
SSLfalsenumberзащищенное соединение
Loginadminstringлогин защищенной сессии
Passwordadminstringпароль защищенной сессии
DisableQueue0numberне добавлять команды в очередь, если их не удалось отправить
SendCommandAttempts0stringсколько раз повторить команду, если отправка не удалась (0 - не повторять, однократная отправка)
ConnectWaitTimeMax3000number(мс) время ожидания соединения
ReceiveWaitTimeMax5000number(мс) время ожидания ответа
UserAgentiRidiumstringкак iRidium представится HTTP серверу

AV & Custom Systems (RS232)

ПараметрЗначениеТипОписание
PortName\.\COM1stringимя СОМ-порта
BaudRate19200numberскорость обмена данными
DataBits8numberчисло информационных разрядов в кадре
Parityestringконтроль четности
StopBits1numberстоповый бит в кадре
Use4850numberиспользовать транспорт RS485

AV & Custom Systems (TCP Server)

ПараметрЗначениеТипОписание
Port8080numberпорт подключения
MaxClients10numberмаксимальное число подключенных клиентов

AV & Custom Systems (UDP Server)

ПараметрЗначениеТипОписание
Port8080numberпорт подключения
MaxClients10numberмаксимальное число подключенных клиентов
ClientTimeOut100number(мс) через указанное время клиент будет отключен, если не отправляет данные серверу

Clipsal

ПараметрЗначениеТипОписание
Host192.168.0.100stringIP адрес или доменное имя
Port20023numberпорт подключения
ProjectPROJstringимя проекта Toolkit

Crestron

ПараметрЗначениеТипОписание
Host192.168.0.100stringIP адрес или доменное имя
Port41794numberпорт подключения
NetID3numberIP ID (IP Net Address) панели из проекта в SIMPL Windows
TelnetPort41795numberTelnet порт подключения (системный)
TelnetSSL1numberиспользование SSL подключения
TelnetLoginadminstringлогин для SSL
TelnetPasswordadminstringпароль для SSL

DVR

ПараметрЗначениеТипОписание
Host192.168.0.100stringIP адрес или доменное имя
Port8080numberпорт подключения
Loginadminstringлогин защищенной сессии
Passwordadminstringпароль защищенной сессии

Domintell

ПараметрЗначениеТипОписание
Host192.168.0.100stringIP адрес или доменное имя
Port17481numberпорт подключения
Passwordadminstringпароль подключения
PingTime1000number(мс) частота обновления данных

EPSNET

ПараметрЗначениеТипОписание
Host192.168.0.100stringIP адрес или доменное имя
Port61682numberпорт подключения
UpdateTime1000number(мс) частота обновления данных
DeviceAddressstringпо умолчанию не используется

Global Cache

ПараметрЗначениеТипОписание
Host192.168.0.100stringIP адрес или доменное имя
Port4998numberпорт передачи системных команд - 4998
IrConfirm0numberподтверждать доставку ИК команд
SerialPort14999numberСОМ порт 1 (serial 1), если есть
SerialPort25000numberСОМ порт 2 (serial 2), если есть
SerialPort30numberзарезервирован
PingTime0number(мс) периодически проверять, есть ли связь с GC. 0 - пинг выключен
DisableQueue0numberне добавлять команды в очередь, если их не удалось отправить
SendCommandAttempts0stringсколько раз повторить команду, если отправка не удалась (0 - не повторять, однократная отправка)
ConnectWaitTimeMax3000number(мс) время ожидания соединения
ReceiveWaitTimeMax5000number(мс) время ожидания ответа

HDL-Buspro

ПараметрЗначениеТипОписание
Host255.255.255.255stringIP адрес или доменное имя. В локальной сети - широковещательный адрес 255.255.255.255
Port6000numberпорт подключения
SendTimeOut20number(мс) принудительный интервал между командами
ConnectMode0number0 - Local, 2 - Internet, 3 - Remote Server
LoginUserstringлогин (для Internet и Remote Server)
PasswordUserstringпароль (для Internet и Remote Server)
Projectir_projstringимя проекта (для Internet и Remote Server)
ExtendedPort6000stringпорт сервера (для Remote Server)
Groupir_groupstringгруппа (для Remote Server)

// Local (ConnectMode=0)
IR.GetDevice("HDL Buspro UDP").SetParameters({Host: "255.255.255.255", Port: 6000,
SendNeedConfirm: 0, SendTimeout: 20, ConnectMode: 0});

// Internet (ConnectMode=1)
IR.GetDevice("HDL Buspro UDP").SetParameters({Host: "215.110.10.10", Port: 6000,
Login: "User", Password: "User", SendNeedConfirm: 0, SendTimeout: 20, ConnectMode: 2,
Project: "ir_proj"});

// HDL Remote Server (ConnectMode=2)
IR.GetDevice("HDL Buspro UDP").SetParameters({Host: "215.110.10.10", Port: 9999,
Login: "User", Password: "User", SendNeedConfirm: 0, SendTimeout: 20, ConnectMode: 3,
ExtendedPort: 6000, Project: "ir_proj", Group: "ir_group"});

Helvar

ПараметрЗначениеТипОписание
Host192.168.0.100stringIP адрес или доменное имя (отсутствует у Net Internal UDP)
Port50001numberпорт подключения

KNX

ПараметрЗначениеТипОписание
Host192.168.0.100stringIP адрес или доменное имя
Port3671numberпорт подключения
ConnectionWaitTime120000number(мс) время ожидания при аварийном обрыве соединения: 60000 или 120000 мс (зависит от KNX интерфейса)
SendWaitTime0number(мс) пауза между отправкой команд в шину, вводится для снижения загруженности шины
PingTime60000number(мс) частота отправки команды Ping для проверки связи с роутером
Nat0numberрежим NAT (включите при работе через Интернет или с несколькими сетевыми интерфейсами)

KNX IP BAOS

ПараметрЗначениеТипОписание
Host192.168.0.100stringIP адрес или доменное имя
Port12004numberпорт подключения
UpdateTime0number(мс) частота отправки команды Ping для проверки связи с роутером

Modbus

ПараметрЗначениеТипОписание
Host192.168.0.100stringIP адрес или доменное имя
Port502numberпорт подключения
UpdateTime1000number(мс) частота обновления данных

Modbus Serial

ПараметрЗначениеТипОписание
Port1numberномер СОМ-порта
PortName\.\COM1stringимя СОМ-порта
BaudRate19200numberскорость обмена данными
DataBits8numberчисло информационных разрядов в кадре
Parityestringконтроль четности
StopBits1numberстоповый бит в кадре
Use4850numberиспользовать транспорт RS485

SIP

ПараметрЗначениеТипОписание
Host192.168.0.100stringIP адрес или доменное имя SIP сервера
Port502numberпорт подключения к SIP серверу
CallerIDBenstringпсевдоним абонента
IDBennumber, stringномер абонента
PasswordPwdnumber, stringпароль абонента
FirstRTPPort40000numberпервый порт RTP диапазона
LastRTPPort41000numberпоследний порт RTP диапазона
ToneDTMF1numberотправлять DTMF тоны
ToneSIP0numberотправлять SIP тоны
ExternalIPstringвнешний адрес абонента
PCMU1numberвключить/выключить кодек
PCMA1numberвключить/выключить кодек
GSM1numberвключить/выключить кодек
H2631numberвключить/выключить кодек
H263_19981numberвключить/выключить кодек

iRidium Server

ПараметрЗначениеТипОписание
Host192.168.0.100stringIP адрес или доменное имя
Port30464numberпорт подключения
Loginadminstringлогин защищенной сессии
Passwordadminstringпароль защищенной сессии