iRidium для AV & Custom Systems
Набор инструментов для создания интерфейсов управления оборудованием по TCP, UDP, WebSocket, HTTP(s), RS232. Позволяет настроить произвольный список команд и получить обратную связь с помощью JavaScript
документация обновлена 01.01.2024
Описание
iRidium может отправлять ASCII, DEC, HEX команды по TCP, UDP, WebSocket, HTTP(s) и RS232 и получать обратную связь от оборудования с помощью JavaScript. Без использования скриптов можно настроить команды для оборудования, со скриптами - обратную связь.
Настройте команды любому оборудованию, управление которым ранее не было реализовано в iRidium. Например: домашний кинотеатр, мультирум, ТВ, DVD/BluRay, iTunes, XBMC, матричный коммутатор, предусилитель. Управлять оборудованием можно напрямую, по Wi-Fi или Ethernet, или через преобразователь IP-to-RS232, IP-to-IR (такой как Global Cache).
Лицензирование iRidium для AV & Custom Systems (подробно):
- Device License Pro (AV & Custom Systems) - лицензия на одну панель управления. Позволяет отправлять команды и обрабатывать данные от оборудования, подключение к которому производится через драйверы AV & Custom Systems.
Если вам нужно подключаться к оборудованию несколько панелей управления, а оборудование имеет ограничения по количеству одновременных соединений, используйте [iRidium Server](iRidium Server)
Подключение
Конфигурация оборудования и настройки для того, чтобы iRidium начал управлять оборудованием по IP.
Способы подключения
В зависимости от того, какой способ управления поддерживает ваше оборудование, можно выбрать драйвер AV & Custom Systems и настроить его для работы с конкретным устройством.
AV & Custom Systems (Client)
Весь основной список драйверов AV & Custom Systems в iRidium содержит драйверы клиентского типа - они могут подключиться к "серверу" - оборудованию системы автоматизации, для отправки команд и получения данных.

В зависимости от способа управления выберите:
- AV & Custom Systems (TCP)
- AV & Custom Systems (UDP)
- AV & Custom Systems (HTTP)
- AV & Custom Systems (SSH)
- AV & Custom Systems (RS232)
- AV & Custom Systems (Serial)
- AV & Custom Systems (WebSocket)
Параметры подключения AV & Custom Systems (TCP):
- Host - IP адрес или доменное имя
- Port - TCP порт подключения
- Mode - режим подключения к оборудованию
- Always Connected - постоянно подключен
- Connect when Sending - подключен только в момент отправки команды. Не работает обратная связь, но команды можно отправлять с разных устройств, не занимая соединение
- SSL - включить/выключить SSL
- Auth type - тип аутентификации:
- Basic - использует незашифрованную кодировку base64,
- Digest - шифрование учетных данных;
- Script Mode - определяет, куда отправлять команды
- Direct and Script - сразу отправлять команду оборудованию и дублировать ее в скрипт
- Script Only - отправлять команду только в скрипт (при нажатии на кнопку, команда не отправится)
- Disable Queue - выключить очередь отправки команд в iRidium, чтобы данные не копились при проблемах отправки. 0 - false, 1 - true
- Send Command Attempts - сколько раз пытаться отправить команду, если не было подтверждения доставки, 0 - не повторять отправку
- Wait for Connection - (мс) время ожидания связи (иначе подключаемся еще раз)
- Wait for Data - (мс) время ожидания ответа от оборудования (иначе повторяем запрос и проверяем связь). Поставьте 0, если нужно, чтобы драйвер не отключался от оборудования при отсутствии данных
Параметры подключения AV & Custom Systems (UDP):
- Host - IP адрес или доменное имя
- Port - UDP порт подключения
- Auth type - тип аутентификации:
- Basic - использует незашифрованную кодировку base64,
- Digest - шифрование учетных данных;
- Script Mode - определяет, куда отправлять команды
- Direct and Script - сразу отправлять команду оборудованию и дублировать ее в скрипт
- Script Only - отправлять команду только в скрипт (при нажатии на кнопку, команда не отправится)
- Local Port - UDP порт открытый на стороне панели управления (сюда будут приходить данные от управляемого оборудования). Может отличаться от внешнего порта (открытого на стороне оборудования)
- Multicast - использовать режим мультикаст соединения
- Group - мультикаст группа
Параметры подключения AV & Custom Systems (HTTP):
- Host - IP адрес или доменное имя
- Port - TCP порт подключения (обычно 80)
- Login / Password - логин и пароль для аутентификации, в зависимости от заданного Auth type
- SSL - включить/выключить SSL
- User Agent - идентификационная строка клиентского приложения iRidi
- Auth type - тип аутентификации:
- Basic - использует незашифрованную кодировку base64,
- Digest - шифрование учетных данных;
- Script Mode - определяет, куда отправлять команды
- Direct and Script - сразу отправлять команду оборудованию и дублировать ее в скрипт
- Script Only - отправлять команду только в скрипт (при нажатии на кнопку, команда не отправится)
- Disable Queue - выключить очередь отправки команд в iRidium, чтобы данные не копились при проблемах отправки. 0 - false, 1 - true
- Send Command Attempts - сколько раз пытаться отправить команду, если не было подтверждения доставки, 0 - не повторять отправку
- Wait for Connection - (мс) время ожидания связи (иначе переподключаемся)
- Wait for Data - (мс) время ожидания ответа от оборудования (иначе повторяем запрос и проверяем связь). Поставьте 0, если нужно, чтобы драйвер не отключался от оборудования при отсутствии данных
Параметры подключения AV & Custom Systems (SSH):
- Host - IP адрес или доменное имя
- Port - TCP порт подключения
- Login / Password - логин и пароль для аутентификации
- Wait for Connection - (мс) время ожидания связи (иначе переподключаемся)
- Wait for Data - (мс) время ожидания ответа от оборудования (иначе повторяем запрос и проверяем связь). Поставьте 0, если нужно, чтобы драйвер не отключался от оборудования при отсутствии данных
- Script Mode - определяет, куда отправлять команды:
- Direct and Script - сразу отправлять команду оборудованию и дублировать ее в скрипт
- Script Only - отправлять команду только в скрипт (при нажатии на кнопку, команда не отправится)
- Disable Queue - выключить очередь отправки команд в iRidium, чтобы данные не копились при проблемах отправки. 0 - false, 1 - true
- Use PTY - пара конечных точек (файлов) псевдоустройств, которые устанавливают канал асинхронной двунаправленной связи (IPC) (с двумя портами) между двумя или более процессами. Мастер предоставляет средства, с помощью которых процесс эмулятора терминала управляет ведомым. Ведомое устройство эмулирует аппаратное текстовое терминальное устройство.
- True в EVENT_RECEIVE_TEXT приходит актуальное состояние строки терминала и пакеты данных, получаемые от оборудования.
- False в EVENT_RECEIVE_TEXT приходят только пакеты данных, получаемые от оборудования.
Параметры подключения AV & Custom Systems (RS232):
- Port - номер СОМ-порта
- Baud Rate - скорость обмена данными
- Data Bits - число информационных разрядов в кадре
- Parity - контроль четности.
- Stop Bits - cтоповый бит в кадре
| iRidium studio: | Web-интерфейс: |
|---|---|
| 1 | 0 |
| 1,5 | 1 |
| 2 | 2 |
- Auth type - тип аутентификации:
- Basic - использует незашифрованную кодировку base64,
- Digest - шифрование учетных данных;
- Script Mode - определяет, куда отправлять команды
- Direct and Script - сразу отправлять команду оборудованию и дублировать ее в скрипт
- Script Only - отправлять команду только в скрипт (при нажатии на кнопку, команда не отправится)
Параметры подключения AV & Custom Systems (Serial):
- Host - IP адрес или доменное имя;
- Used with iRidi device - выставляет хост для соответствующего оборудования (при выборе этого параметра строка Host будет не активна);
- Baud Rate - скорость обмена данными с контроллером;
- Data Bits - число информационных разрядов в кадре;
- Parity - контроль четности;
- Stop Bits - cтоповый бит в кадре (1; 1,5; 2);
| iRidium studio: | Web-интерфейс: |
|---|---|
| 1 | 0 |
| 1,5 | 1 |
| 2 | 2 |
- HRDW Flow control - это механизм управления потоком, который является частью стандарта RS232. Он использует еще два контакта на разъеме RS232, RTS (Запрос на отправку) и CTS (Очистить для отправки). Эти две линии позволяют приемнику и передатчику оповещать друг друга о своем состоянии. Повышение и понижение этих линий позволяет драйверам устройств, которые реализуют аппаратный код управления потоком, поддерживать надежное соединение для передачи данных между передатчиком и приемником. Преимущество этого подхода заключается в том, что повреждение данных при передаче не влияет на механизм управления потоком (как в Xon/Xoff). Параметр отображается при "Used with iRidi device" = ProAV Processor Basic COM 1 (RS-232).
- Script Mode - определяет, куда отправлять команды.
Параметры упаковки данных (Delimeter, Packet length, Interval time) описаны в разделе [Обратная связь]
Параметры подключения AV & Custom Systems (WebSocket):
- Host - IP-адрес или доменное имя.
- Port - TCP порт подключения (обычно 80).
- SSL - включить/выключить SSL.
- Path - путь к ресурсу.
- Headers - необязательное поле для добавление ключей в заголовок. Можете записать несколько ключей, разделяя их переносом строки.
AV & Custom Systems (Server)
Кроме основного списка, существуют драйверы для создания TCP и UDP сервера на базе свободно настраиваемого драйвера AV & Custom Systems. Их можно создать только командами JavaScript.
Информация о создании драйверов с помощью JavaScript в iRidium.
Пример создания драйвера AV & Custom Systems (TCP Server).
Смена настроек подключения
Возможность смены параметров подключения нужна, если вы отключаетесь от Wi-Fi сети объекта автоматизации и начинаете использовать 3G или другую Wi-Fi сеть. Чтобы управление продолжило работать, нужно переключиться с локального на публичный IP адрес интернет-маршрутизатора.
Переключение не происходит автоматически, вам нужно будет нажать на клавишу выбора режима соединения. Для возможности удаленного доступа необходимо сделать порты управления системой автоматизации публичными. Для этого настраивают службу Port Forwarding на интернет-маршрутизаторе. Защищенное соединение может обеспечить VPN.
-
Скачайте шаблон (*.js) (правая кнопка: "Сохранить объект как..."), добавьте шаблон в редактор скриптов клавишей (+) Add Script from file
-
Настройте параметры скрипта, как показано в примере:
function Internal_1() {
IR.GetDevice("AV & Custom Systems (TCP)").SetParameters({Host: "192.168.0.100", Port: 8080, SendMode: IR.ALWAYS_CONNECTED, ScriptMode: IR.DIRECT_AND_SCRIPT, DisableQueue: false, SendCommandAttempts: 0, ConnectWaitTimeMax: 0, ReceiveWaitTimeMax: 0});
}
function External_1() {
IR.GetDevice("AV & Custom Systems (TCP)").SetParameters({Host: "215.110.10.10", Port: 8081});
}
Скопируйте имя драйвера из Projсet Device Panel, список параметров нужно скопировать из примера в точности.
- Выберите кнопку, которая будет отвечать за переключение Internal и External параметров. Откройте Macros Editor для события Press (Object Properties > Programming), выберите команду Script Call и добавьте ее двойным кликом. Выберите имя функции, которую вызовет кнопка:

Примеры:
//AV & Custom Systems (TCP)
IR.GetDevice("AV & Custom Systems (TCP)").SetParameters({Host: "192.168.0.100", Port: 8080, SendMode: IR.ALWAYS_CONNECTED, ScriptMode: IR.DIRECT_AND_SCRIPT, DisableQueue: false, SendCommandAttempts: 0, ConnectWaitTimeMax: 0, ReceiveWaitTimeMax: 0, LogLevel: 0, BackgroundMode: 0});
//AV & Custom Systems (UDP)
IR.GetDevice("AV & Custom Systems (UDP)").SetParameters({Host: "192.168.0.100", Port: 6001, ScriptMode: IR.DIRECT_AND_SCRIPT, LocalPort: 8080, Group: "224.0.0.1", Multicast: 1});
//AV & Custom Systems (WebSocket)
IR.GetDevice("AV & Custom Systems (WebSocket)").SetParameters({Host: “192.168.0.100”, Port:80, Path:l_baseURL+"&token=" + l_Token, SSL: 0, Headers: “Sec-WebSocket-Extensions: client_max_window_bits”});
//AV & Custom Systems (HTTP)
IR.GetDevice("AV & Custom Systems (HTTP)").SetParameters({Host: "192.168.0.100", Port: 80, Login: "admin", Password: "pass", UseSSL: true, UserAgent: "iRidium", ScriptMode: IR.DIRECT_AND_SCRIPT, DisableQueue: false, SendCommandAttempts: 0, ConnectWaitTimeMax: 0, ReceiveWaitTimeMax: 0});
//AV & Custom Systems (RS232)
IR.GetDevice("AV & Custom Systems (RS232)").SetParameters({Port: 1, BaudRate: 19200, Bits: 8, Parity: "e", StopBit: 1, ScriptMode: 1});
Настройка команд
AV & Custom Systems (TCP, UDP, RS232)
Команды AV & Custom Systems (TCP, UDP, RS232) имеют одинаковые настройки. Они могут передать оборудованию строку данных в формате HEX, DEC, ASCII.

- Name - имя команды. По нему можно вызывать команду из скрипта
- Data - данные, которые команда передает оборудованию. Они могут быть записаны в формате HEX, DEC, ASCII. В зависимости от формата меняются правила оформления данных
- Disable Header - профессиональная настройка заголовков, имеет значение только в случае, если вы создали устройство в своей базе данных и указали в его настройках преамбулу - часть команды, которая будет добавляться к любым введенным в поле Data данным (см. редактор базы данных)
Настройка обратной связи:
- Name - имя канала обратной связи. Используя это имя, JavaScript можете передать в графический интерфейс данные, полученные от оборудования. Вся работа с обратной связью производится в скриптах.
Команду в поле Data нужно оформить в соответствии с синтаксисом iRidium, чтобы программа правильно определила, как нужно отправлять ваши данные (как строку, HEX-код или числа)
AV & Custom Systems (WebSocket)
Драйвер применяется для работы c медиаустройствами, например, телевизорами Samsung серии RU/R/Q*R(2019).
Пример:Samsung RU/R/Q*R
Команды AV & Custom Systems (WebSocket) могут передать оборудованию строку данных в формате HEX, DEC, ASCII.

- Name - имя команды. По нему можно вызывать команду из скрипта;
- Data - данные, которые команда передает оборудованию. Они могут быть записаны в формате HEX, DEC, ASCII. В зависимости от формата меняются правила оформления данных;
- Data type - тип передаваемых данных: *Text - на вход принимаются текстовые данные, записанные в обработанном виде согласно синтаксису iRidium; *Bytes - байтовые данные; *Value as text - принимает числовые и текстовые данные, в том числе значения с графических элементов и отправляет их в виде текста. При работе через скрипт реализован метод .SendText() принимающий только текст.
Настройка обратной связи:
- Name - имя канала обратной связи. Используя это имя, JavaScript можете передать в графический интерфейс данные, полученные от оборудования. Вся работа с обратной связью производится в скриптах.
Команду в поле Data нужно оформить в соответствии с синтаксисом iRidium, чтобы программа правильно определила, как нужно отправлять ваши данные (как строку, HEX-код или числа):
ASCII (строка)
Оформление ASCII строки в поле Data:
- обособьте строку 'одинарными кавычками'
- в конце строки добавьте
,$0D- возврат каретки <CR>,$0A- конец строки <LF>
Оформление команды:
| В документации: | PWR01 <CR> | VOLUME 50 <CR> <LF> |
|---|---|---|
| Формат: | ASCII | ASCII |
| В iRidium(поле Data): | 'PWR01',0x0D | 'VOLUME 50',0x0D,0x0A |
Оформление возврата каретки и конца строки :
| В документации: | <CR> | <CR> | <CR> | <LF> | <LF> | <LF> |
|---|---|---|---|---|---|---|
| Формат: | HEX | HEX | DEC | HEX | HEX | DEC |
| В iRidium(поле Data): | ,0x0D | ,$0D | ,13 | ,0x0A | ,$0A | ,10 |
HEX (шестнадцатеричный)
Оформление HEX символов в поле Data:
-
Перед каждым HEX символом поставьте
0xили$ -
Уберите лишние обозначения перед НЕХ кодами, например: 0Ah >> $0A
-
Разделите НЕХ символы запятыми, уберите все пробелы
-
в конце строки добавьте
,$0D- возврат каретки <CR>,$0A- конец строки <LF>
Оформление команды:
| В документации: | 16 8A FF 81 <CR> | 19h EEh A1h 00h <CR> <LF> |
|---|---|---|
| Формат: | HEX | HEX |
| В iRidium(поле Data): | 0x16,0x8A,0xFF,0x81,0x0D | $19,$EE,$A1,$00,0x0D,0x0A |
Оформление возврата каретки и конца строки :
| В документации: | <CR> | <CR> | <CR> | <LF> | <LF> | <LF> |
|---|---|---|---|---|---|---|
| Формат: | HEX | HEX | DEC | HEX | HEX | DEC |
| В iRidium(поле Data): | ,0x0D | ,$0D | ,13 | ,0x0A | ,$0A | ,10 |
DEC (десятичный)
Оформление десятичных чисел в поле Data:
- Разделите числа запятыми, уберите все пробелы
- в конце строки добавьте
,$0D- возврат каретки <CR>,$0A- конец строки <LF>
Оформление команды:
| В документации: | 01 255 255 15 <CR> | 01 10 25 255 <CR> <LF> |
|---|---|---|
| Формат: | DEC | DEC |
| В iRidium(поле Data): | 01,255,255,15,13 | 01,10,25,255,13,10 |
Оформление возврата каретки и конца строки :
| В документации: | <CR> | <CR> | <CR> | <LF> | <LF> | <LF> |
|---|---|---|---|---|---|---|
| Формат: | HEX | HEX | DEC | HEX | HEX | DEC |
| В iRidium(поле Data): | ,0x0D | ,$0D | ,13 | ,0x0A | ,$0A | ,10 |
AV & Custom Systems (HTTP)
Команды драйвера AV & Custom Systems (HTTP) могут быть переданы одним из методов:
- GET - получить. Передать идентификатор ресурса: URI;
- POST - добавить, изменить, удалить. Передать блок данных;
- PUT - добавить, заменить. Передать блок данных;
- DELETE - удалить указанный ресурс;
- PATCH - частично изменить ресурс.
Отправка HTTP команд возможна с помощью графических элементов (описана ниже).
Метод GET
Внесите GET запрос окно URI:
- удалите часть запроса, где хранится IP адрес ресурса и порт обращения к ресурсу
- добавьте тело запроса в окно в URI, включая слеш
/в начале:- от запроса от запроса httр://<host>:<port>/<url> оставьте только /<url> в поле URI настроек команды
| В документации: | httр://192.168.0.100:81/cgi-bin/do?cmd=ir_code=B748BF00 |
|---|---|
| В iRidium (поле URI): | /cgi-bin/do?cmd=ir_code=B748BF00 |

Методы POST и PUT
Выделите значимые части запроса и внесите в поля URI и Data:
- в URI добавьте идентификатор ресурса
- в Data добавьте тело запроса - это может быть большой набор данных. Целиком обособьте его
'одинарными кавычками'
Пример 1:
| В документации (POST): | POST /YamahaRemoteControl/ctrl HTTP/1.1 Accept: / Accept-Language: ru Referer: http://192.168.10.102/ Content-Type: text/xml; charset=UTF-8 Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; BRI/2) Host: 192.168.10.100 Content-Length: 105 Connection: Keep-Alive Cache-Control: no-cache Cookie: mstnc=1 <YAMAHA_AV cmd="PUT"><System><Power_Control><Power>Standby</Power></Power_Control></System></YAMAHA_AV> |
|---|---|
| В iRidium (поле URI): | /YamahaRemoteControl/ctrl |
| В iRidium (поле Data): | '<YAMAHA_AV cmd="PUT"><System><Power_Control><Power>Standby</Power></Power_Control></System></YAMAHA_AV>' |
Пример 2:
| В документации (POST): | POST /WAN/dvdr/dvdr_ctrl.cgi? HTTP/1.1 User-Agent: MEI-LAN-REMOTE-CALL Host: 192.168.1.105 Content-Length: 39 cCMD_RC_POWER.x=100&cCMD_RC_POWER.y=100 |
|---|---|
| В iRidium (поле URI): | /WAN/dvdr/dvdr_ctrl.cgi? |
| В iRidium (поле Data): | 'cCMD_RC_POWER.x=100&cCMD_RC_POWER.y=100' |

AV & Custom Systems (SSH)
Возможности и особенности драйвера AV & Custom Systems (SSH)
Key Exchange Methods: ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256, diffie-hellman-group14-sha1, diffie-hellman-group1-sha1, diffie-hellman-group-exchange-sha1
Hostkey Types: ssh-rsa, ssh-dss
Ciphers: aes256-ctr, aes192-ctr, aes128-ctr, aes256-cbc (rijndael-cbc@lysator.liu.se), aes192-cbc, aes128-cbc, 3des-cbc, blowfish-cbc, cast128-cbc, arcfour, arcfour128, none
MAC hashes: hmac-sha2-256, hmac-sha2-512, hmac-sha1, hmac-sha1-96, hmac-md5, hmac-md5-96, hmac-ripemd160 (hmac-ripemd160@openssh.com), none
Фомирование и отправка команд в AV & Custom Systems (SSH) осуществляется при помощи настроек команды (Command и Add Line Feed), а также с использованием JavaScript.
- Command - данные, которые команда передает оборудованию.
- Add Line Feed - автоматически делает перенос строки при отправке команды в канал (0 - false, 1 - true).
В JavaScript для перевода строки используются символы ‘\n’ и 0x0A:
// Send: IR.GetDevice(name).Send([data])
IR.GetDevice("AV & Custom Systems (SSH)").Send(['Command', '\n']);
IR.GetDevice("AV & Custom Systems (SSH)").Send(['Command', 0x0A]);
Custom TCP, UDP, HTTP Network
Custom TCP Network, Custom UDP Network, Custom HTTP Network - это способ организации драйверов AV & Custom Systems, которые должны подключаться на один и тот же Host и Port. Этот способ позволит вам не создавать отдельный канал соединения для каждого драйвера и удобно обращаться к командам и каналам драйверов с помощью Java Script API. Команда и каналы могут иметь одинаковые имена, устройства внутри Network - нет.
В Network можно добавить только драйвер AV & Custom Systems с тем же транспортом, что у Network.

Драйвер Custom Network будет доступен по его имени, как все остальные драйверы. Вложенные в драйвер команды будут доступны как:
<имя устройства>:<имя команды>
Например, добавим сеть Custom TCP Network, в нее поместим драйвер AV & Custom Systems (TCP) с именем Device 1 и добавим в этот драйвер команду Power On. Обращение к драйверу и его командам через Java Script:
// Set: IR.GetDevice(driver).Set(command, value)
IR.GetDevice("Custom TCP Network").Set("Device 1:Power On", "")
// Send: IR.GetDevice(name).Send([data])
IR.GetDevice("Custom TCP Network").Send(['instruction', '\r\n']);
Отправка команд
Отправить команду можно с помощью кнопки или через скрипт.
- Для однократной отправки команды, привяжите ее на событие When pressed или When released:

- Для создания макро-команды добавьте несколько команд на When pressed или When released :

Между командами можно добавить задержку Delay(), чтобы регулировать скорость их отправки.
- Для циклической отправки команды при удержании кнопки выберите When pressed и When held :

Настройки Hold находятся на вкладке Project > General:
- Hold Time (ms) - время, через которое активируется Hold при удержании элемента
- Repeat Time (ms) - интервал повторения команд из события Hold.
- команды можно отправить через JavaScript. Используйте для отправки методы .Set(), .Send() или .SendEx(), SendText() из Drivers API:
var device = IR.GetDevice("AV & Custom Systems (TCP)");
var HTTP_device = IR.GetDevice("AV & Custom Systems (HTTP)");
var WebSocket_device = IR.GetDevice("WebSocket");
var CommandString = 'comand data /1';
var CommandName = "COMMAND";
IR.AddListener(IR.EVENT_ONLINE , device, function()
{
device.Set(CommandName, ""); // .Set command by name
device.Send([CommandString,0x0D]); // .Send command as string
HTTP_device.SendEx({ // .SendEx command as HTTP-text
Type: "GET",
Url: "/command",
Headers: {
"Connection": "Close",
"Accept-Language": "en",
"Content-Type": "application/json",
"Transfer-Encoding": "chunked",
"Accept": "application/xml;"
},
cbReceiveText: function(text, code, headers) {IR.Log("cbReceiveText "+text);}
});
WebSocket_device.SendText("Hello");
});
Оформление ИК команды для метода Send подробно описано в iTach API.
Обратная связь
Обратную связь от оборудования, управляемого с помощью AV & Custom Systems, можно получить только с помощью JavaScript. Это обусловлено тем, что программа заранее не знает, к какому оборудованию подключится, соответственно, не может определить формат и тип данных, которые могут быть получены.
Функции, используемые при обработке входящих данных, описаны в [Drivers API](Drivers API). Они работают только с лицензией, которая поддерживает обратуню связь от скриптовых драйверов ("Pro" лицензия). На практике, лицензия активирует работу слушателей
[IR.EVENT_RECEIVE_DATA](Drivers API#IR.EVENT_RECEIVE_DATA)- получение данных с устройства в байт формате[IR.EVENT_RECEIVE_TEXT](Drivers API#IR.EVENT_RECEIVE_TEXT)- получение данных с устройства в строковом формате
Все остальные методы и события JavaScript работают с любыми лицензиями.
Пример обработки входящих данных с помощью JavaScript:
var driver = IR.GetDevice("AV (TCP)");
// IR.EVENT_RECEIVE_TEXT makes you able to parse incomming data from equipment
IR.AddListener(IR.EVENT_RECEIVE_TEXT, driver, function(text)
{
// divide the received data by '\r\n' to get the separated strings
var strings = text.split('\r\n');
var string;
while(string = strings.shift())
{
// divide the string into parts with separator comma (it would be space or something else)
var parts = string.split(",");
switch(parts[0])
{
// if the first part of devides string = "#OK"
case "#OK":
// for equuipment it means that we are ready to work
IR.Log("Ready to control!");
break;
// if the first part of devides string = "#RID"
case "#RID":
// the second part should be "ALL", third part shouldn't be empty
if (parts[1] == 'ALL' && parts[2])
{
//devide the third part into 12 parts to know the status on 12 variables we got in this feedback
var slots = parts[2];
for(var i = 0; i < 12; i++)
{
var slot = parseInt(slots.substring(i, i+1));
a_dOutputs[i] = slot;
var fName = "OUT "+(i+1);
// in AV driver we have a preconfigured Feedback channels with name OUT 1 ... OUT 12
//so we can write the received data in this feedbacks and display on items
driver.SetFeedback(fName, slot);
}
}
break;
}
}
});
Пример получения данных в AV & Custom Systems (SSH):
var driver = IR.GetDevice("AV & Custom Systems (SSH)")
IR.AddListener(IR.EVENT_RECEIVE_TEXT, driver ,function(text)
{ IR.SetVariable("Drivers.AV & Custom Systems (SSH).AV Control Feedback", text);
IR.Log(text);
});
Для подключения AV & Custom Systems (Serial) доступны дополнительные параметры упаковки данных:

Delimiter - позволяет задавать специальные символы, при получении которых данные будут упакованы в строку. В качестве разделителя можно указать строку состоящую из любых символов как одиночных, так и их комбинаций. Для обработки символов конца строки в байтовом представлении (0x0A, 0x0D), разделитель нужно задавать в форматах: 0x0D, 0x0A | 0D, 0A | 0D 0A | 0D0A | 0D | 0A .
Packet length - параметр позволяет установить фиксированную длину пакета, задается в количестве символов строки (по умолчанию 0 - функция отключена). Например, если установить Packet Length 6 символов, то каждые 6 символов, пришедшие на последовательный порт, будут упакованы в отдельную строку.
Interval time (ms) - параметр позволяет отправить данные в строку в том случае, если в потоке данных обнаружена пауза. Длительность паузы указывается пользователем в миллисекундах (мс), по умолчанию 100 мс (при значении 0 - время ожидания не ограничено).
Все данные полученные до момента возникновения паузы в потоке, равной заданному пользователем значению, будут упакованы в единую отдельную строку.
При одновременном использовании всех трех параметров или нескольких из них упаковка данных в строку происходит по срабатыванию одного из параметров. Т.е. если первым был достигнут указанный размер данных, но заданный разделитель еще не пришел, то данные будут сформированы согласно указанному размеру и т.д.
Копирование данных
Данные из драйвера AV & Custom Systems можно скопировать полностью или частично и вставить в этот или любой другой имеющийся проект.
Скопировать можно:
- полностью драйвер,
- подустройства,
- команды и фидбэки.
Для копирования воспользуйтесь меню ПКМ (Copy) или горячими клавишами Ctrl+C .
Вставка скопированных элементов в необходимую область происходит с помощью меню ПКМ (Paste) или горячими клавишами Ctrl+V .

- Драйвера можно копировать между проектами одного или разных типов (панельный / серверный проект).
- Копирование команд и фидбэков возможно только между проектами одного типа (между панельными или серверными проектами) в одинаковые драйвера.
- Копирование тегов не сохраняет их связи с элементами, передаются только параметры настроек.
Сохранение и использование созданного драйвера
Созданный AV & Custom Systems драйвер можно сохранить в качестве заготовки в панель Images , сохранённые таким образом драйвера будут удобно расположены в одном разделе доступном из студии.
-
Откройте раздел Images .
-
Щелкните ЛКМ в свободной области в окне с папками и создайте новую папку для будущих драйверов (в нашем примере AV & Custom Systems drivers).
-
Зажмите ЛКМ на папке проекта в панели управления страницами и перетащите в хранилище папки AV & Custom Systems drivers. Ваш драйвер сохранится и будет доступен в следующих проектах из этой папки.

Для использования в новом проекте, перетащите его в рабочую область из хранилища папки AV & Custom Systems driver.
