Logo Logo ru
  • iRidi Pro
    Основные компоненты
    • Приложение i3 Pro
    • iRidi Pro Server
    • iRidi Studio
    • iRidium studio v. 1.3.8 (устаревшая версия)
    Java Script в iRidi
    • Руководство
    • Справочник
    • Примеры
    • JS драйвера
    другие
    • Личный Кабинет
    • iRidium Cloud
    • iRidium Transfer
    • Push-уведомления
    • Лучшая практика
    Лицензирование
    • Лицензирование и передача проекта
    • Оффлайн-лицензирование
    • Активация iRidi Pro Server
  • Продукты
    i3 lite
    • Приложение i3 lite
    • Регистрация и лицензирование
    • Сервер
    • Модули
    KNX Home Server
    • Приложение i3 KNX
    • KNX Home Server
    BUS77 HOME SERVER
    • Приложения Bus77 Home и Bus77 Lite
    • Bus77 Home Server
    Решения
    • BYOD - решение для гостиниц
    • Портал жителя - решение для МКД
    iRidi SCADA
    • iRidi SCADA
  • Bus77
    НАСТРОЙКА BUS77
    • Основы Bus77
    • Приложения Bus77 Home и Bus77 Lite
    • Работа с драйвером Bus77 в iRidi Studio
    • Настройка шины Bus77 в iRidi Studio
    ПРОТОКОЛ BUS77
    • Характеристики CAN (Bus77)
    • Описание протокола
    • Исходники на GitHub
    ОБОРУДОВАНИЕ BUS77
    • Каталог Bus77 Pro
    • Каталог Bus77 Lite
  • Поддерживаемое оборудование
    Драйверы
    • Список драйверов
    • ProAV драйвера
    • AV & Custom Systems
    • JS драйвера
    • Сторонние драйвера и фриланс
    Протоколы и интерфейсы
    • Голосовое управление
    • 1-Wire
    • BACnet IP
    • Bus77
    • KNX
    • KNX IP BAOS
    • Weinzierl kBerry
    • Microsoft Exchange
    • Modbus
    • MQTT
    • NFC
    • ODBC
    • Onvif
    • SIP
    • SNMP
    • Wake On Lan
    • Z-Wave
    • ZigBee
    Производители
    • AMX
    • AVCiT
    • Beckhoff ADS
    • Biamp Tesira
    • Bluesound
    • Casambi
    • BSS Harman
    • Clipsal
    • ControlArt 7Port
    • Crestron
    • DigiBird
    • Domintell
    • Duotecno
    • EIDE
    • EPSNET
    • Global Cache
    • HDL Buspro
    • Helvar
    • IEAST
    • INELS BUS
    • INELS Wireless
    • Intesis
    • Kleger
    • Kramer VIA
    • Kramer 3000
    • Larnitech
    • Legrand Netatmo
    • LG TV
    • Lutron
    • Lutron Homeworks QS
    • MyHome
    • Nest
    • Novastar
    • Panasоnic PTZ
    • Philips Dynalite
    • PJLink
    • Satel
    • SamsungTV
    • Sonos
    • Somfy
    • SpinetiX
    • Televic Conference
    • TIS
    • Tion
    • URRI
    • Velbus
    • Velocio
    • Vinteo
    • WyreStorm
    • WiiM
    • Xicato
    • Yamaha
    • ZONT
    • Z-Wave.me
    Протестированное оборудование
    • Панель HDL S57
    • Панель HDL S10
    • SIP-домофон
    • Akuvox
    • Arlight
    • Divus
    • QBic TD-1050 PRO
    • QBic TD-1060 Slim
    • QBic TD-1070
    • Sigur
    • Uni-Ubi
    • Velocio
  • Оборудование iRidi

    Серверы
    • HS Сервер
    • ProAV Control Processor Basic
    • ProAV Control Processor Advanced
    • Спецификация контроллеров UMC
    • Настройка контроллера UMC C2
    • Настройка контроллера UMC C3
    • Настройка контроллера HDL IntelliCenter 2 (UMC C4)
    Модули расширения
    • I-PX-RS1
    • I-PX-RS4
    • I-PX-IR3
    KNX
    • KNX Home Server
    • KNX IP Interface
    Панели управления
    • iRidium Panel 7
    • Touch Panel P3
    • Touch Panel P6
    • Touch Panel P8
    • Touch Panel P10
    • Tabletop Touch Panel 10
    • AV Remote Control
    ОБОРУДОВАНИЕ BUS77
    • Каталог Bus77 Pro
    • Каталог Bus77 Lite
    • Differences
Сайт iRidium mobile
Содержание
    Инструменты‌
    • Сведения о странице
    • Постоянная ссылка
    • Версия для печати
    • Спецстраницы
    • Связанные правки
    • Ссылки сюда
    Login / Create Account
    Материал из for iRidium developers
    Перейти к: навигация, поиск
    Эта страница является переводом страницы Drivers API. Перевод выполнен на 100%.

    Other languages:
    English • ‎русский
  • Справочник
  • Драйверы
  • Содержание

    • 1 API iRidium. Драйверы
    • 2 Методы
      • 2.1 IR.CreateDevice
        • 2.1.1 Параметры AV & Custom Systems
        • 2.1.2 Константы в настройках драйверов
      • 2.2 IR.GetDevice
        • 2.2.1 .Connect
        • 2.2.2 .Disconnect
        • 2.2.3 .Send
        • 2.2.4 .SendEx
        • 2.2.5 .Set
        • 2.2.6 .SetFeedback
        • 2.2.7 .GetFeedback
        • 2.2.8 .SetParameters
        • 2.2.9 .GetCookies
        • 2.2.10 .SetCookie
        • 2.2.11 .GetLogin
        • 2.2.12 .GetPassword
        • 2.2.13 .AddChannel
        • 2.2.14 .AddTag
        • 2.2.15 .AddRelation
        • 2.2.16 .GetCommandsCount
        • 2.2.17 .GetCommandAtName
        • 2.2.18 .GetCommandAtPos
        • 2.2.19 .GetFeedbacksCount
        • 2.2.20 .GetFeedbackAtName
        • 2.2.21 .GetFeedbackAtPos
        • 2.2.22 .AddEndOfString
        • 2.2.23 .AddEndOfData
        • 2.2.24 Конвертация данных из поля Data
      • 2.3 IR.GetDevices()
      • 2.4 IR.IsModuleLicensed
    • 3 События
      • 3.1 IR.EVENT_ONLINE
      • 3.2 IR.EVENT_OFFLINE
      • 3.3 IR.EVENT_TAG_CHANGE
      • 3.4 IR.EVENT_RECEIVE_DATA
      • 3.5 IR.EVENT_RECEIVE_TEXT
      • 3.6 IR.EVENT_ERROR
      • 3.7 IR.EVENT_CHANNEL_SET
    • 4 UPnP
      • 4.1 .InvokeAction
      • 4.2 .Subscribe
      • 4.3 .Unsubscribe
      • 4.4 IR.EVENT_DEVICE_FOUND
      • 4.5 IR.EVENT_RECEIVE_EVENT
    • 5 Свойства
      • 5.1 Свойства драйверов
        • 5.1.1 AMX
        • 5.1.2 AV & Custom Systems (UDP)
        • 5.1.3 AV & Custom Systems (HTTP)
        • 5.1.4 AV & Custom Systems (RS232)
        • 5.1.5 AV & Custom Systems (TCP Server)
        • 5.1.6 AV & Custom Systems (UDP Server)
        • 5.1.7 Clipsal
        • 5.1.8 Crestron
        • 5.1.9 DVR
        • 5.1.10 Domintell
        • 5.1.11 EPSNET
        • 5.1.12 Global Cache
        • 5.1.13 HDL-Buspro
        • 5.1.14 Helvar
        • 5.1.15 KNX
        • 5.1.16 KNX IP BAOS
        • 5.1.17 Modbus
        • 5.1.18 Modbus Serial
        • 5.1.19 SIP
        • 5.1.20 iRidium Server

    API iRidium. Драйверы

    функции, методы, свойства для работы с оборудованием, настроенным в проекте: создание и управление драйверами, отправка команд, обработка входящих данных

    Методы


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

    IR.CreateDevice

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

    Синтаксис

    IR.CreateDevice(type, name, {properties})

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


    Пример

    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 при создании драйвера)
    если вы создаете драйвер не при запуске приложения, а позже, необходимо вызвать метод .Connect() для этого драйвера, чтобы он подключился к оборудованию. Драйверы, создаваемые по старту приложения, подключаются автоматически. В случае необходимости, их можно отключить методом .Disconnect().


    Параметры 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)

    на входе значение описание
    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()

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


    Пример

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

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


    .Disconnect

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

    Синтаксис

    IR.GetDevice(name).Disconnect()

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


    Пример

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





    .Send

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

    Синтаксис

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

    на входе значение описание
    name "Driver 1" type: string
    имя драйвера в проекте iRidium
    data a, b, c type: string
    список переменных или строк: инструкций для отправки
    array [a, b, c] type: array
    массив переменных или строк: инструкций для отправки
    transport 0 type: 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 (HTTP). Позволяет отправить оборудованию массив данных с указанием на родительский объект (контекст исполнения). Внутри SendEx можно добавить ряд событий, передающих в фукнции данные о своей работе. События позволяют следить за получением данных от НТТР сервера и обрабатывать различые этапы работы с сервером.

    Синтаксис

    IR.GetDevice(name).SendEx(array, object)

    на входе значение описание
    name "Driver 1" type: string
    имя драйвера в проекте iRidium
    array [a, b, c] type: string
    массив данных для отправки
    object this type: object
    объект родитель
    на выходе
    успешность type: Boolean
    успешность


    Пример

       IR.GetDevice("Server REST").SendEx({ 
          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);},
          cbReceiveData:       function(text, code, headers)    {IR.Log("cbReceiveData "+text+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({ 
          Type: "GET",        															
          Url:  "/json/ok/server/channel",
          Headers: {"Cookie":"ir-session-id=o8lKdEvw2ZlU"},
          cbReceiveText:   function(text, code, headers)    {IR.Log("cbReceiveText "+text);}
       });

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

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


    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

    to execute the native driver command preset in the command tree of the editor. When executing the command you send the value to it the same way it is done when you press on the button in the interface. It works for native drivers only. You can activate the command by its index (the sequence number in the tree, beginning with one) or name. If the command is not preset in the project tree, it cannot be executed.

    Syntax

    IR.GetDevice(driver).Set(command, value)

    input value description
    driver "Driver 1" type: string
    the driver name in the iRidium project
    command "Channel 1" type: string, number
    the command index or name (the sequence number in the tree, beginning with one)
    value 100 type: string, number
    the number or string to be transferred to the command for sending to equipment
    output
    successful or not type: Boolean
    successful


    Sample

    //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: use the network name "HDL-BUS Pro Network (UDP)" / "Domintell Network (UDP)" at reference, not the name of a particular network device.


    .SetFeedback

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

    Синтаксис

    IR.GetDevice(driver).SetFeedback(name, value)

    на входе значение описание
    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(name)

    на входе значение описание
    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({Host: host, Port: port, <other>});

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


    Пример

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

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


    .GetCookies

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

    Синтаксис

    IR.GetDevice(driver).GetCookies()

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


    Пример

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





    .SetCookie

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

    Синтаксис

    IR.GetDevice(driver).SetCookie(key, value)

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


    Пример

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





    .GetLogin

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

    Синтаксис

    IR.GetDevice(driver).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()

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


    Пример

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





    .AddChannel

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

    Синтаксис

    IR.GetDevice(driver).AddChannel(name, data)

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

    -


    Пример

    /* under development */





    .AddTag

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

    Синтаксис

    IR.GetDevice(driver).AddTag(name, data)

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

    -


    Пример

    /* under development */





    .AddRelation

    to add the Relation between the inteface obgects and some variables like a driver tags, tokens or the other UI objects. See the syntax samples in Relations tab:

    Studio2019 SeeRelationsSyntax.png

    Syntax

    IR.AddRelation(source, destination)

    input value description
    source "Drivers.KNX.Channel 1" type: string
    data source
    destination "UI.Popup 1.Item 1.Value" type: string
    data destination
    output

    -


    Sample

    var from = "Drivers.KNX.Address 1/1/2";
    var to = "UI.Popup 1.Item 1.Value";
    IR.AddRelation(from, to);





    .GetCommandsCount

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

    Синтаксис

    IR.GetDevice(driver).GetCommandsCount()

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


    Пример

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





    .GetCommandAtName

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

    Синтаксис

    IR.GetDevice(driver).GetCommandAtName(name/ID)

    на входе значение описание
    driver "Driver 1" type: string
    имя драйвера в проекте iRidium
    name/ID "Command 1" type: string/number
    имя команды / численный идентификатор команды
    на выходе
    object [object Object] type: object
    ссылка на команду драйвера
    object.id 1 type: number
    свойство объекта: численный идентификатор команды (начинается с 1)
    object.name Command 1 type: string
    свойство объекта: имя команды
    object.data 74,65,73,74 type: 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(position)

    на входе значение описание
    driver "Driver 1" type: string
    имя драйвера в проекте iRidium
    position 0 type: number
    порядковый номер команды (начинается с 0)
    на выходе
    object [object Object] type: object
    ссылка на команду драйвера
    object.id 1 type: number
    свойство объекта: численный идентификатор команды (начинается с 1)
    object.name Command 1 type: string
    свойство объекта: имя команды
    object.data 74,65,73,74 type: 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()

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


    Пример

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





    .GetFeedbackAtName

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

    Синтаксис

    IR.GetDevice(driver).GetFeedbackAtName(name/ID)

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


    Пример

       var Feedback = IR.GetDevice("AV & Custom System (TCP)").GetCommandAtName("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(position)

    на входе значение описание
    driver "Driver 1" type: string
    имя драйвера в проекте iRidium
    position 0 type: number
    порядковый номер канала (начинается с 0)
    на выходе
    object [object Object] type: object
    ссылка на канал драйвера
    object.id 1 type: number
    свойство объекта: численный идентификатор канала (начинается с 1)
    object.name Command 1 type: string
    свойство объекта: имя канала
    object.data 74,65,73,74 type: 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

    Method to indicate a string that is considered the end of the message in a listener IR.EVENT_RECEIVE_TEXT. The method work only for AV & Custom System (TCP, UDP, RS232). When large messages are sent, devices split them into parts (packages) and IR.EVENT_RECEIVE_TEXT listener gets the message in parts (packages). With the help of this method script searches the indicated string in packages and combines all packets that come before it into a single message.

    The method does not work with HTTP driver. We recommend that you use .SendEx method for HTTP driver. It can gather data received in parts in a single message.

    Syntax

    IR.GetDevice(driver).AddEndOfString(string)

    input value description
    driver "Driver 1" type: string
    driver name in iRidium project
    string "happy" type: string
    string identifying the end of the message
    output
    object [object Object] type: object
    a link to a driver channel
    result true type: boolean
    the results of the method. If a string is indicated as an input parameter, the method returns "true". if any other type of data is indicated, false is returned


    Sample

       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(data)

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


    Пример

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





    Конвертация данных из поля 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
    });
    // 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()

    get the array of all drivers in iRidium project

    Syntax

    IR.GetDevices();

    input value description


    output
    Object [object DevicePrototype] type: Object
    link to driver array


    Sample

    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)

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


    Пример

    var hasLicense= IR.IsModuleLicensed("123")





    События


    Событие - процесс, проброшенный в скрипты и имеющий идентификатор для отслеживания.

    Слушатель - это функция, которая выполняется в случае срабатывания указанного ей события

    Добавьте слушатель с помощью метода IR.AddListener

    IR.AddListener(event, input, action);
    • event - идентификатор события, за которым следит слушатель
    • input - входной параметр, необходимый для создания слушателя. Если параметра нет, укажите 0
    • action - не именованная функция или ссылка на объявленную функцию, внутри которой выполняются действия
    • pointer - указатель на контекст вызова слушателя (не обязательный). Обратиться к контексту можно с помощью оператора this. Контекст может меняться во время работы программы


    Пример:

    // выполнение функции внутри слушателя
    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, function, [pointer]);

    на входе значение описание
    driver IR.GetDevice("MyDriver") type: object
    ссылка на драйвер
    function function() {} 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, function, [pointer]);

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

    -


    Пример

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





    IR.EVENT_TAG_CHANGE

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

    Синтаксис

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

    на входе значение описание
    driver IR.GetDevice("MyDriver") type: object
    ссылка на драйвер
    function function(name, value) {} type: function
    не именованная функция или обращение к функции
    pointer - type: object
    указатель на объект, который обслуживает функцию (опционально)
    на выходе
    name "Feedback 1" type: string
    имя изменившегося канала
    value 100 type: 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.

    Синтаксис

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

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


    Пример

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

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


    IR.EVENT_RECEIVE_TEXT

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

    Синтаксис

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

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


    Пример

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

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


    IR.EVENT_ERROR

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

    Синтаксис

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

    на входе значение описание
    driver IR.GetDevice("AV & Custom Systems (HTTP)") type: object
    ссылка на драйвер
    function function(transport_id, local_ip, local_port, host_ip, host_port, errorCode) {} type: function
    не именованная функция или обращение к функции, обработает результаты срабатывания слушателя
    pointer - type: object
    указатель на объект, который обслуживает функцию (опционально)
    на выходе
    transport_id 0 type: number
    идентификатор транспорта, 0 для любого AV драйвера, кроме Global Cache: 0 - IR, система, 1 - COM1, 2 - СОМ2
    local_ipt 192.168.0.100 type: string
    локальный адрес отправителя команды
    local_port 80 type: number
    локальный порт отправителя команды
    host_ip 200.200.10.10 type: string
    адрес получателя команды
    host_port 80 type: number
    порт получателя команды
    errorCode 1 type: 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)
    не сработает, если от ресурса пришел ответ, даже с ошибкой. Для обработки ошибок используйте SendEx


    IR.EVENT_CHANNEL_SET

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

    Синтаксис

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

    на входе значение описание
    driver IR.GetDevice("MyDriver") type: object
    ссылка на драйвер
    function function(name, value) {} type: function
    не именованная функция или обращение к функции
    pointer - type: object
    указатель на объект, который обслуживает функцию (опционально)
    на выходе
    name "Command 1" type: string
    имя команды, которая была активирована
    value 100 type: 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


    UPnP

    .InvokeAction

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

    Синтаксис

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

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


    Пример

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





    .Subscribe

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

    Синтаксис

    IR.GetDevice(driver).Subscribe(service_type)

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


    Пример

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





    .Unsubscribe

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

    Синтаксис

    IR.GetDevice(driver).Unsubscribe(service_type)

    на входе значение описание
    driver "Driver 1" type: string
    имя драйвера в проекте iRidium
    service_type "urn:schemas-upnp-org:service:AVTransport:1" type: string
    используемый сервис
    на выходе
    true true type: 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, [pointer]);

    на входе значение описание
    function function(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, function, [pointer]);

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


    Пример

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





    Свойства

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

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

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

    driver.property

    property:

    Name Crestron 1 type: string
    имя драйвера
    Type Crestron (TCP) type: string
    тип драйвера. Точное название типа вы можете видеть в параметре Driver Type, в окне настроек подключения
    LogLevel Debug type: number
    уровень логирования:
    0 - Emergency
    1 - Alert
    2 - Critical
    3 - Error
    4 - Warning
    5 - Notice
    6 - Info
    7 - Debug
    8 - Never
    var driver = IR.GetDevice("Crestron 1");
    IR.AddListener(IR.EVENT_START,0,function()
    {
         var properties  = driver.Name + " (" + driver.Type + ") created";
         IR.Log(properties); 
    });


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

    driver.property


    AMX

    Host 192.168.0.100 type: string
    IP адрес или доменное имя
    Port 1319 type: number
    порт подключения
    DeviceID 10001 type: number
    уникальный идентификатор панели AMX
    Login admin type: string
    логин защищенной сессии
    Password admin type: string
    пароль защищенной сессии


    AV & Custom Systems (UDP)

    Host 192.168.0.100 type: string
    IP адрес или доменное имя
    Port 8080 type: number
    порт подключения
    LocalPort 80 type: number
    локальный порт получения данных (на стороне iRidium)
    Group null type: string
    null - броадкаст, "host" - мультикаст группа
    Multicast false type: string
    false - броадкаст, true - мультикаст (если группа указана)
    ScriptMode 0 type: number
    послылать данные напрямую в драйвер и в скрипты (0) или только в скрипты (1)


    AV & Custom Systems (HTTP)

    Host 192.168.0.100 type: string
    IP адрес или доменное имя
    Port 8080 type: number
    порт подключения
    SSL false type: number
    защищенное соединение
    Login admin type: string
    логин защищенной сессии
    Password admin type: string
    пароль защищенной сессии
    DisableQueue 0 type: number
    не добавлять команды в очередь, если их не удалось отправить
    SendCommandAttempts 0 type: string
    сколько раз повторить команду, если оптарвка не удалась (0 - не повторять, однократная отправка)
    ConnectWaitTimeMax 3000 type: number
    (мс) время ожидания соединения
    ReceiveWaitTimeMax 5000 type: number
    (мс) время ожидания ответа
    UserAgent iRidium type: string
    как iRidium представится HTTP серверу


    AV & Custom Systems (RS232)

    PortName \\.\COM1 type: string
    имя СОМ-порта
    BaudRate 19200 type: number
    скорость обмена данными
    DataBits 8 type: number
    число информационных разрядов в кадре
    Parity e type: string
    контроль четности
    StopBits 1 type: number
    cтоповый бит в кадре
    Use485 0 type: number
    использовать транспорт RS485


    AV & Custom Systems (TCP Server)

    Port 8080 type: number
    порт подключения
    MaxClients 10 type: number
    максимальное число подключенных клиентов


    AV & Custom Systems (UDP Server)

    Port 8080 type: number
    порт подключения
    MaxClients 10 type: number
    максимальное число подключенных клиентов
    ClientTimeOut 100 type: number
    (мс) через указанное время клиент будет отключен, если не отправляет данные серверу


    Clipsal

    Host 192.168.0.100 type: string
    IP адрес или доменное имя
    Port 20023 type: number
    порт подключения
    Project PROJ type: string
    имя проекта Toolkit


    Crestron

    Host 192.168.0.100 type: string
    IP адрес или доменное имя
    Port 41794 type: number
    порт подключения
    NetID 3 type: number
    IP ID (IP Net Address) панели из проекта в SIMPL Windows
    TelnetPort 41795 type: number
    Telnet порт подключения (системный)
    TelnetSSL 1 type: number
    использование SSL подключения
    TelnetLogin admin type: string
    логин для SSL
    TelnetPassword admin type: string
    пароль для SSL


    DVR

    Host 192.168.0.100 type: string
    IP адрес или доменное имя
    Port 8080 type: number
    порт подключения
    Login admin type: string
    логин защищенной сессии
    Password admin type: string
    пароль защищенной сессии


    Domintell

    Host 192.168.0.100 type: string
    IP адрес или доменное имя
    Port 17481 type: number
    порт подключения
    Password admin type: string
    пароль подключения
    PingTime 1000 type: number
    (мс) частота обновления данных


    EPSNET

    Host 192.168.0.100 type: string
    IP адрес или доменное имя
    Port 61682 type: number
    порт подключения
    UpdateTime 1000 type: number
    (мс) частота обновления данных
    DeviceAddress type: string
    по умолчанию не используется


    Global Cache

    Host 192.168.0.100 type: string
    IP адрес или доменное имя
    Port 4998 type: number
    порт передачи системных команд - 4998
    IrConfirm 0 type: number
    подтверждать доставку ИК команд
    SerialPort1 4999 type: number
    СОМ порт 1 (serial 1), если есть
    SerialPort2 5000 type: number
    СОМ порт 2 (serial 2), если есть
    SerialPort3 0 type: number
    заразервирован
    PingTime 0 type: number
    (мс) периодически проверять, есть ли связь с GC. 0 - пинг выключен
    DisableQueue 0 type: number
    не добавлять команды в очередь, если их не удалось отправить
    SendCommandAttempts 0 type: string
    сколько раз повторить команду, если оптарвка не удалась (0 - не повторять, однократная отправка)
    ConnectWaitTimeMax 3000 type: number
    (мс) время ожидания соединения
    ReceiveWaitTimeMax 5000 type: number
    (мс) время ожидания ответа


    HDL-Buspro

    Host 255.255.255.255 type: string
    IP адрес или доменное имя. В локальной сети - широковещательный адрес 255.255.255.255
    Port 6000 type: number
    порт подключения
    SendTimeOut 20 type: number
    (мс) принудительный интервал между командами
    ConnectMode 0 type: number
    0 - Local, 2 - Internet, 3 - Remote Server
    Login User type: string
    логин (для Internet и Remote Server)
    Password User type: string
    пароль (для Internet и Remote Server)
    Project ir_proj type: string
    имя проекта (для Internet и Remote Server)
    ExtendedPort 6000 type: string
    порт сервера (для Remote Server)
    Group ir_group type: string
    группа (для 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

    Host 192.168.0.100 type: string
    IP адрес или доменное имя (отсутствует у Net Internal UDP)
    Port 50001 type: number
    порт подключения


    KNX

    Host 192.168.0.100 type: string
    IP адрес или доменное имя
    Port 3671 type: number
    порт подключения
    ConnectionWaitTime 120000 type: number
    (мс) время ожидания при аварийном обрыве соединения: 60000 или 120000 мс (зависит от KNX интерфейса)
    SendWaitTime 0 type: number
    (мс) пауза между отправкой команд в шину, вводится для снижения загруженности шины
    PingTime 60000 type: number
    (мс) частота отправки команды Ping для проверки связи с роутером
    Nat 0 type: number
    режим NAT (включите при работе через Интернет или с несколькими сетевыми интерфейсами)


    KNX IP BAOS

    Host 192.168.0.100 type: string
    IP адрес или доменное имя
    Port 12004 type: number
    порт подключения
    UpdateTime 0 type: number
    (мс) частота отправки команды Ping для проверки связи с роутером


    Modbus

    Host 192.168.0.100 type: string
    IP адрес или доменное имя
    Port 502 type: number
    порт подключения
    UpdateTime 1000 type: number
    (мс) частота обновления данных


    Modbus Serial

    Port 1 type: number
    номер СОМ-порта
    PortName \\.\COM1 type: string
    имя СОМ-порта
    BaudRate 19200 type: number
    скорость обмена данными
    DataBits 8 type: number
    число информационных разрядов в кадре
    Parity e type: string
    контроль четности
    StopBits 1 type: number
    cтоповый бит в кадре
    Use485 0 type: number
    использовать транспорт RS485


    SIP

    Host 192.168.0.100 type: string
    IP адрес или доменное имя SIP сервера
    Port 502 type: number
    порт подключения к SIP серверу
    CallerID Ben type: string
    псевдоним абонента
    ID Ben type: number, string
    номер абонента
    Password Pwd type: number, string
    пароль абонента
    FirstRTPPort 40000 type: number
    первый порт RTP диапазона
    LastRTPPort 41000 type: number
    последний порт RTP диапазона
    ToneDTMF 1 type: number
    отправлять DTMF тоны
    ToneSIP 0 type: number
    отправлять SIP тоны
    ExternalIP type: string
    внешний адрес абонента
    PCMU 1 type: number
    включить/выключить кодек
    PCMA 1 type: number
    включить/выключить кодек
    GSM 1 type: number
    включить/выключить кодек
    H263 1 type: number
    включить/выключить кодек
    H263_1998 1 type: number
    включить/выключить кодек


    iRidium Server

    Host 192.168.0.100 type: string
    IP адрес или доменное имя
    Port 30464 type: number
    порт подключения
    Login admin type: string
    логин защищенной сессии
    Password admin type: string
    пароль защищенной сессии
    Источник — «https://dev.iridi.com/index.php?title=Drivers_API/ru&oldid=78300»
    Категория:
    • Инструкции
    О нас
    Компания
    Команда
    История
    Философия
    Награды
    Партнерство
    Наши партнеры
    Партнерские программы
    Подать заявку на партнерство
    Продукты
    iRidium pro
    iRidium lite
    iRidium gate
    iRidium server
    Загрузки
    iRidium pro
    iRidium lite
    Другие версии
    Маркетинговые материалы
    Поддержка
    Онлайн курсы/Видео
    Рекомендуемое оборудование
    Другие версии
    iRidium pro
    Документация
    FAQ
    Форум
    iRidium lite
    Документация
    Форум
    Проекты
    Типовые проекты
    Умные здания
    Умные дома
    Специальные решения
    Найти дилера
    Новости
    Youtube
    Twitter
    VK
    Logo
    contact@iridi.com
    +7 (499) 322-73-29

    Политика конфиденциальности