Материал из for iRidium developers
Перейти к: навигация, поиск
Эта страница является переводом страницы AV & Custom Systems. Перевод выполнен на 100%.

Other languages:

документация обновлена 03.3.2017


Описание

iRidium может отправлять ASCII, DEC, HEX команды по TCP, UDP, HTTP(s) и RS232 и получать обратную связь от оборудования с помощью JavaScript. Без использования скриптов можно настроить команды для оборудования, со скриптами - обратную связь.

Настройте команды любому оборудованию, управление которым ранее не было реализовано в iRidium. Например: домашний кинотеатр, мультирум, ТВ, DVD/BluRay, iTunes, XBMC, матричный коммутатор, предусилитель. Управлять оборудованием можно напрямую, по Wi-Fi или Ethernet, или через преобразователь IP-to-RS232, IP-to-IR (такой как Global Cache).


Лицензирование iRidium для AV & Custom Systems (подробно):

  • Deivice License Pro (AV & Custom Systems) - лицензия на одну панель управления. Позволяет отправлять команды и обрабатывать данные от оборудования, подключение к которому производится через драйверы AV & Custom Systems.


Если вам нужно подключаться к оборудованию несколько панелей управления, а оборудование имеет ограничения по количеству одновременных соединений, используйте iRidium Server


Подключение

Конфигурация оборудования и настройки для того, чтобы iRidium начал управлять оборудованием по IP.


Способы подключения

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


AV & Custom Systems (Client)

Весь основной список драйверов AV & Custom Systems в iRidium содержит драйверы клиентского типа - они могут подключиться к "серверу" - оборудованию системы автоматизации, для отправки команд и получения данных.

HowItWorksTCP.png


Добавьте драйвер в PROJECT DEVICE PANEL из DEVICE BASE

В зависимости от способа управления выберите:
  • AV & Custom Systems (TCP)
  • AV & Custom Systems (UDP)
  • AV & Custom Systems (HTTP)
  • AV & Custom Systems (RS232)


Параметры подключения AV & Custom Systems (TCP):

  • Host - IP адрес или доменное имя
  • Port - TCP порт подключения
  • Mode - режим подключения к оборудованию
    • Always Connected - постоянно подключен
    • Connect when Sending - подключен только в момент отправки команды. Не работает обратная связь, но команды можно отправлять с разных устройств, не занимая соединение
  • SSL - включить/выключить SSL
  • 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 порт подключения
  • Mode - режим подключения к оборудованию
    • Always Connected - постоянно подключен
    • Connect when Sending - подключен только в момент отправки команды. Не работает обратная связь, но команды можно отправлять с разных устройств, не занимая соединение
  • Script Mode - определяет, куда отправлять команды
    • Direct and Script - сразу отправлять команду оборудованию и дублировать ее в скрипт
    • Script Only - отправлять команду только в скрипт (при нажатии на кнопку, команда не отправится)
  • Local Port - UDP порт открытый на стороне панели управления (сюда будут приходить данные от управляемого оборудования). Может отличаться от внешнего порта (открытого на стороне оборудования)
  • Multicast - использовать режим мультикаст соединения
    • Group - мультикаст группа


Параметры подключения AV & Custom Systems (HTTP):

  • Host - IP адрес или доменное имя
  • Port - TCP порт подключения (обычно 80)
  • Login / Password - логин и пароль для SSL
  • SSL - включить/выключить SSL
  • User Agent - имя пользователя, которым представится iRidium
  • 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 (RS232):

  • Port - номер СОМ-порта
  • Baud Rate - скорость обмена данными
  • Data Bits - число информационных разрядов в кадре
  • Parity - контроль четности.
  • Stop Bits - cтоповый бит в кадре
  • Script Mode - определяет, куда отправлять команды
    • Direct and Script - сразу отправлять команду оборудованию и дублировать ее в скрипт
    • Script Only - отправлять команду только в скрипт (при нажатии на кнопку, команда не отправится)


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.


1 Скачайте шаблон (*.js) (правая кнопка: "Сохранить объект как..."), добавьте шаблон в редактор скриптов Icon Scripts.png клавишей (+) Add Script from file


2 Настройте параметры скрипта, как показано в примере:

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, список параметров нужно скопировать из примера в точности.


3 Выберите кнопку, которая будет отвечать за переключение Internal и External параметров. Откройте Macros Editor для события Press (Object Properties > Programming), выберите команду Script Call и добавьте ее двойным кликом. Выберите имя функции, которую вызовет кнопка:

Script call internal-external.png

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

Примеры:

//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 (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.

AV-TCP-CommandFeedback.png
  • Name - имя команды. По нему можно вызывать команду из скрипта
  • Data - данные, которые команда передает оборудованию. Они могут быть записаны в формате HEX, DEC, ASCII. В зависимости от формата меняются правила оформления данных
  • Disable Header - профессиональная настройка заголовков, имеет значение только в случае, если вы создали устройство в своей базе данных и указали в его настройках преамбулу - часть команды, которая будет добавляться к любым введенным в поле Data данным (см. редактор базы данных)


Настройка обратной связи:

  • 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> и конца строки <LF>:

В документации: <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> и конца строки <LF>:

В документации: <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> и конца строки <LF>:

В документации: <CR> <CR> <CR> <LF> <LF> <LF>
Формат: HEX HEX DEC HEX HEX DEC
В iRidium (поле Data): ,0x0D ,$0D ,13 ,0x0A ,$0A ,10


Добавление команд в Device Base

В общей базе "DEVICE BASE" вы можете создать список устройств и команд, которые можно быстро добавить в любой новый проект iRidium. Создать устройство AV & Custom Systems можно только в своей базе, стандартная закрыта для редактирования.

Создайте пользовательскую базу данных:

AV Database New.png

Добавьте в нее TCP, UDP, RS232 или HTTP устройство:

RS232 1.png

Во вкладке Commands & Feedbacks создайте список команд:

RS232 4.png

Двойным кликом откройте Command Properties и добавьте команду в поле Command:

RS232 5.png

Добавьте готовый набор команд в свой проект: выберите в списке DEVICE BASE свою базу данных и перетащите устройство в свой проект (PROJECT DEVICE PANEL).


AV & Custom Systems (HTTP)

Команды драйвера AV & Custom Systems (HTTP) могут быть переданы одним из методов:

  • GET - получить. Передать идентификатор ресурса: URI
  • POST - добавить, изменить, удалить. Передать блок данных
  • PUT - добавить, заменить. Передать блок данных


Отправка HTTP команд возможна с помощью графических элементов (описана ниже).

Для отправки HTTP команд с помощью JavaScript имеется специализированный метод .SendEx, также возможно использование методов .Set и .Send.


Метод 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
GETrequestinGUI.png


Методы 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'
POSTrequestinGUI.png

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.

CustomNetwork.png

Драйвер 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']);


Отправка команд

Отправить команду можно с помощью кнопки или через скрипт.


1 Для однократной отправки команды, привяжите ее на событие Press или Release:

AV 1 Press.png

2 Для создания макро-команды добавьте несколько команд на Press или Release :

AV 2 Macro.png

Между командами можно добавить задержку Delay(), чтобы регулировать скорость их отправки


3 Для циклической отправки команды при удержании кнопки Выберите Press и Hold :

AV 3 Hold.png

Настройки Hold находятся в Object Properties > General:

  • Hold Time (мс) - время, через которое активируется Hold при удержании элемента
  • Repeat Time (мс) - интервал повторения команд из события Hold.


4 команды можно отправить через JavaScript. Используйте для отправки метод .Set и .Send из Drivers API:

var device = IR.GetDevice("AV & Custom Systems (TCP)");
var HTTP_device = IR.GetDevice("AV & Custom Systems (HTTP)");
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({ 
      Type: "GET",        															
      Url:  "/command",
      Headers: {},
      cbReceiveText:   function(text, code, headers)    {IR.Log("cbReceiveText "+text);}
   });
});

Оформление ИК команды для метода Send подробно описано в iTach API.

Обратная связь

Обратную связь от оборудования, управляемого с помощью AV & Custom Systems, можно получить только с помощью JavaScript. Это обусловлено тем, что программа заранее не знает, к какому оборудованию подключится, соответственно, не может определить формат и тип данных, которые могут быть получены.


Функции, используемые при обработке входящих данных, описаны в Drivers API. Они работают только с лицензией, которая поддерживает обратуню связь от скриптовых драйверов ("Pro" лицензия). На практике, лицензия активирует работу слушателей

  • IR.EVENT_RECEIVE_DATA - получение данных с устройства в байт формате
  • 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;
		}	
	}
});


Эмулятор: проверка проекта

Эмулятор (Emulator) - приложение для проверки работы проекта в редакторе iRidium Studio.

Эмулятор работает только после авторизации с использованием логина и пароля с сайта iRidium Mobile

Режимы работы Эмулятора настраиваем в Tools > Options > Emulator:

  • Client Fullscreen - запуск в полноэкранном режиме
  • Client Sound On - включить/выключить звук в приложении
  • Show log at Emuator Start - автоматически открывать окно лога (иначе лог можно открыть по нажатию F4)


Path to the license.png

Горячие клавиши:

  • F4 - открыть лог
  • F5 - запустить Эмулятор
  • F7 - открыть меню управления аккаунтом и проектами
  • F8 - открыть системные настройки (введите пароль 2007)


Синхронизация с панелью управления

Если вы - интегратор, вы можете быстро запустить созданный интерфейс визуализации на панели управления - смартфоне, планшете или ПК. Установите приложение i3 pro и авторизуйтесь в нем с помощью вашего логина и пароля интегратора с сайта iRidium Mobile.


Используйте i3 pro для iOS, Android, Windows, Mac в тестовом режиме, загружая проекты через iRidium Transfer (возможность доступна только для интеграторов):


Настройки iRidium Transfer


Коммерческое использование iRidium возможно толкьо при загрузке проектов визуализации с помощью облачного сервиса iRidium Cloud на сайте iRidium Mobile (см. инструкцию).

iRidium Cloud может настроить только зарегистрированный интегратор. После настройки, доступно приглашение пользователей к управлению объектом автоматизации.