Global Cache: управление по RS232

Материал из iRidium Mobile Wiki
Перейти к: навигация, поиск

Global Cache (GC-100-06, GC-100-12, iTach IP2SL, iTach WF2SL) - семейство преобразователей, предназначенных для управления аудио-видео оборудованием. Они получают команды по TCP/IP и передают их управляемому оборудованию через СОМ-порт. Отправлять команды преобразователю можно локально или через Интернет.


Условия работы с оборудованием через Global Cache:

  • возможность управления оборудованием по RS232
  • наличие команд управления оборудованием - протокола RS232


Описание работы:

iRidium для Global Cache поддерживает соединение с преобразователем по TCP/IP. Команды для отправки по RS232 имеют фиксированный формат (синтаксис) и могут быть отправлены после подключения к преобразователю.

Обратную связь от оборудования, которую передает Global Cache, можно обработать с помощью iRidium Script.


Attention.png iTach поддерживают до 4х подключений. GC-100-06(12,18,18R) поддерживают только 1 подключение. Обратная связь от оборудования передается всем панелям управления iRidium. Режим множественного подключения может быть активирован или деактивирован через web-интерфейс iTach.


Принцип управления оборудованием по RS232

Вы можете использовать модули Global Cache для управления аудио-видео и другим оборудованием по RS232:

HowItWorksGCRS232.png

Подключение к Global Cache: TCP/IP.

Выходы Global Cache: RS232

Формат команд RS232: ASCII, HEX, DEC

Обратная связь от оборудования: через iRidium Script, см. iRidium DDK и iRidium Script API.

Необходимая лицензия: "Device License Pro для AV & Custom Systems" или "Site License Pro для Global Cache" (см. Лицензирование). Подходит для Global Cache и всего остального AV оборудования в проекте. Позволяет использовать в проекте любые скрипты.

Настройка Global Cache

Чтобы подключить iRidium к преобразователю Global Cache (GC), нужно настроить перобрзователь для работы в одной IP-сети с iRidium. Информация по настройке GC:

Видео-уроки по настройке преобразователей Global Cache
Набор программ и документация к преобразователям Global Cache


Типы модулей Global Cache с поддержкой RS232

GC-iTach-WF232-Image.png iTach WiFi to SL (Serial, WF2SL)
  • Wi-Fi модуль (режим точки доступа или инфраструктуры)
  • питание от сети 220В
  • один СОМ-порт ("папа")
GC-iTach-IP232-Image.png iTach TCP/IP to SL (Serial, IP2SL)
  • питание от Ethernet или от сети 220В
  • один СОМ-порт ("папа")
GC-Image-Ico.png GC-100-06, GC-100-12, GC-100-18, GC-100-18R
  • питание от сети 220В
  • Ethernet
  • СОМ-порт (1 или 2 шт.)
  • независимый ИК выход или вход датчика (3 или 6 шт.)
  • выход реле (0 или 3 шт.)

Настройка СОМ-портов Global Cache

Настроить COM-порт можно через web-интерфейс Global Cache, вкладка Serial.

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

RS232 24.png

Чтобы открыть web-интерфейс Global Cache, используйте iHelp и "Quick Start Guides".

↑ К оглавлению

Настройка Global Cache в iRidium

Выберите драйвер Global Cache в списке DEVICE BASE редактора iRidium GUI Editor и перенесите его в окно PROJECT DEVICE PANEL:

GC-AddDriver232.png

Параметры подключения к Global Cache:

  • Host - IP адрес преобразователя (локальный, внешний или доменное имя)
  • Port - основной порт соединения с GC (4998). Используется для отправки ИК команд, настройки и получения статуса Global Cache
  • Module Type - тип преобразователя Global Cache: GC-100-06, GC-100-12(18,18R), iTach IP2IR (WF2IR), iTach IP2SL (WF2SL), iTach IP2CC (WF2CC). Определяет число и тип выходов преобразователя.
  • Send Mode - режим подключения к преобразователю
    • Always Connected - постоянное подключение (нормальный режим)
    • Connect when Sending - подключение только в момент отправки команды. Подходит для GC-100-06(12,18,18R), к которым надо подключить несколько панелей управления
  • Script Mode - определяет, куда отправлять команды
    • Direct and Script - сразу отправлять команду преобразователю и дублировать ее в скрипт (можно обработать данные в iRidium Script)
    • Script Only - отправлять команду только в скрипт (преобразователю, при нажатии на кнопку, команда не отправится). Позволяет передавать в скрипты составные части команды для работы драйверов. Не включайте этот режим, если не используете скрипты.

При работе с GC-100 нужно настроить параметры работы с ИК выходами, см. Global Cache: управление по ИК


Для подключения к Global Cache через Интернет:

1. в строке Host укажите публичный IP-адрес (или доменное имя) вашего интернет-маршрутизатора
2. На маршрутизаторе настройте проброс портов (Port Forwarding) для возможности удаленного управления оборудованием.
Узнать публичный IP-адрес своего маршрутизатора Вы можете при помощи интернет-сервисов, например Яндекс.Интернет


Для переключения между локальным соединением и работой через Интернет:

Используйте пример, представленный далее.


↑ К оглавлению

Настройка COM-портов Global Cache в iRidium

СОМ-порт Global Cache в iRidium не настраивается, все параметры RS232 нужно указать через web-интерфейс Global Cache. Возможность изменить порт подключения (4999 = СОМ1, 5000 = СОМ2) предоставлена для работы с GC-100 через iRidium Gate.


Driver Tokens

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

GUI Descr Tokens.png
Online состояние подключения к управляемой системе (Online/Offline = 1/0)
Status статус подключения к системе (Offline/Connecting/Online/Waiting = 0...3)
Host доменное имя удаленной системы
HostPort порт на удаленной системе, к которому подключается iRidium App
IP IP-адрес управляющей панели
HostIP IP-адрес удаленной системы, к которой подключено iRidium App
Port локальный порт клиента, через который осуществляется связь с удаленным устройством


↑ К оглавлению

Создание команд для Global Cache (Serial)

Выберите команды для оборудования, которые нужно отправлять через Global Cache. Они могут храниться в одном из форматов:

  • ASCII - строка
  • HEX - шестнадцатеричный
  • DEC - десятичный

Нужно правильно оформить информацию, которая хранится в каждом из этих форматов, чтобы iRidium смог ее обработать и отправить оборудованию. Для оформления команд служит "синтаксис" iRidium.


Команды в формате ASCII (строка)

Внесите ASCII строку в окно "Data" команды на выходе Serial:

* обособьте строку ‘одинарными кавычками’
* если после строки идут данные в другом формате, отделяйте их запятыми
* в конце строки используйте символы "возврат каретки" <CR> и "конец строки" <LF>
Исходная команда
(в документации):
PWR01 <CR> VOLUME 50 <CR> <LF> AUD 1>3 <CR> 6CH/8CH <CR> <LF>
В iRidium
(поле Data):
'PWR01',0x0D 'VOLUME 50',0x0D,0x0A 'AUD 1>3',0x0D '6CH/8CH',0x0D,0x0A


Оформление символов "возврат каретки" <CR> и "конец строки" <LF>:

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

Можно использовать любой из трех способов оформления конца строки.

↑ К оглавлению

Команды в формате HEX (шестнадцатеричный)

Внесите HEX символы в окно "Data" команды на выходе Serial:

* Перед каждым HEX символом поставьте 0x или $
* Разделяйте HEX символы запятыми, не используйте пробелы
* Если в документации у HEX символов стоят дополнительные метки, уберите их (FFh > FF)
* После последнего HEX символа укажите "возврат каретки" <CR> и "конец строки" <LF>
Исходная команда
(в документации):
01 81 81 81 <CR> 16 8A FF <CR> <LF> 19h EEh A1h <CR> <LF>
В iRidium
(поле Data):
0x01,0x81,0x81,0x81,0x0D 0x16,0x8A,0xFF,0x0D,0x0A 0x19,0xEE,0xA1,0x0D,0x0A


Оформление символов "возврат каретки" <CR> и "конец строки" <LF>:

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

↑ К оглавлению

Команды в формате DEC (десятичный)

Внесите DEC числа в окно "Data":

* Не используйте дополнительных символов
* Разделяйте числа запятыми, не используйте пробелы
* После последнего числа укажите "возврат каретки" <CR> и "конец строки" <LF>
Исходная команда
(в документации):
01 255 255 <CR> 20 30 40 50 <CR> <LF>
В iRidium
(поле Data):
01,255,255,13 20,30,40,50,13,10


Оформление символов "возврат каретки" <CR> и "конец строки" <LF>:

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

↑ К оглавлению

Отправка команд Global Cache с графических элементов

Создайте интерфейс визуализации.

Интерфейс можно создать самостоятельно, или воспользоваться готовым решением. Он может содержать элементы любого внешнего вида. Команды для оборудования заранее не связаны с интерфейсом.


Пример отправки команды:

AV CommandGC232 steps.png

1. Добавьте модуль Global Cache в проект iRidium. Настройте параметры подключения к нему.
2. Создайте команду, в поле Data на выходе Serial, укажите данные для отправки оборудованию
3. Настройте кнопку, которая будет отвечать за отправку команды.
Type: Button
Feedback: Momentary
4. Перетяните команду на кнопку
5. Выберите, по какому событию отправить команду:
Press - нажатие на элемент
Release - отпускание элемента
Hold - удержание элемента
Move - перемещение по элементу (в основном используется для элементов Level)


Attention.png Нельзя изменить команду в поле Data, когда проект уже загружен на панель управления. Это значит, что если команда отвечает за установку громкости, например, на 50%, то ее нельзя привязать к уровню для плавного регулирования громкости. Она будет работать только с кнопкой (Button) и при каждом нажатии устанавливать громкость на 50%.

Attention.png Чтобы отправить значение (например, громкость) с уровня, вам необходимо формировать команду не в дереве проекта, а с помощью скрипта (см. iRidium Script API и iRidium DDK)


Отправка команд по нажатию на элементы интерфейса.

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

События, по которым можно отправлять команды:

  • Press - нажатие на графический элемент
  • Release - отпускание графического элемента (после нажатия)
  • Hold - удержание (работает в цикле, пока элемент не будет отпущен)
  • Move - перемещение по элементу (в основном используется для элементов Level)


События, по которым можно отправлять команды из скрипта (не описываются в этом разделе, см. iRidium Script API):

  • получение обратной связи с определенным значением
  • нажатие/отпускание элементов интерфейса
  • срабатывание таймера
  • получение определенных значений с сенсоров панели (GPS, акселерометр, гироскоп, ..)


Способы отправки команд с элементов интерфейса:

  1. Отправка одиночной команды при нажатии (отпускании) кнопки
  2. Отправка макрокоманды - последовательности команд при нажатии (отпускании) кнопки
  3. Отправка команды в цикле по удержанию элемента

Далее описана отправка команд разными способами.

↑ К оглавлению

Отправка команды при нажатии (отпускании) кнопки

Перетяните команду на графический элемент, с которого она должна отправляться:

AV GC232 Command Dragging to item.png

В диалоге Send Command выберите событие отправки команды:

  • Press - нажатие на графический элемент
  • Release - отпускание графического элемента (после нажатия)
  • Hold - удержание (работает в цикле, пока элемент не будет отпущен)
  • Move - движение по элементу (в основном используется для элементов типа level)

По умолчанию выбрано событие Press, как часто используемое.

Добавленные команды видны в Object Properties >> Programming. Команды можно переносить между событиями:

AV IR Command Action Dragging.png

* тянуть команду необходимо за текст (имя)


↑ К оглавлению

Отправка макрокоманды - последовательности ИК команд

Макрокоманда - это несколько команд, которые отправляются друг за другом при нажатии на одну кнопку. Макрокоманда может включать команды GC и другому оборудованию, задержки, команды страницам и др.


Attention.png Важно! Управляемое оборудование может зависнуть, если отправлять ему команды слишком части. Чтобы исключить перегрузку оборудования, команды нужно отправлять с промежутком, учитывающим загрузку оборудования. Величина промежутка определяется опытным путем, может быть +/- 50..300мс.


Создание макрокоманды:

1. Создайте кнопку, которая запустит макрокоманду
2. Перенесите на нее все команды, которые нужно отправлять в составе макроса
3. Откройте редактор макросов события Press (или Release), куда перетащили команды

AV RS232 Command Action Dragging Macro.png

4. Расположите команды в нужном порядке с помощью стрелок (выполнение: сверху вниз)
5. Выберите команду Delay (папка Other) и добавьте нужное число задержек (по числу интервалов между командами)
6. Если макрокоманда должна выполнять больше действий, расположите их по порядку выполнения.

AV IR Command Macro Creating.png


↑ К оглавлению

Отправка команды по удержанию элемента

Hold - событие "удержание элемента", активирует циклическую отправку команд, записанных в макрос события Hold. По удержанию можно циклично отправлять одну или несколько команд. Цикл удержания прерывается при отпускании элемента или срабатывании Move (перемещения).


Настройка события Hold (удержание):

1. Перенесите команду на графический элемент
2. Поставьте галочку у события Hold.

В примере также активировано событие Press, чтобы элемент реагировал не только на удержание, но и на обычное нажатие.

AV GC232 Command Hold Creating.png


3. Настройте параметры события Hold в Object Properties >>> General

AV IR Command Hold Editing.png

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

Команды, записанные в событие Hold, будут циклично повторяться все время, пока удерживается кнопка, с интервалом, указанным в Repeat Time.


Управление с уровней, триггеров и др. элементов

В случае работы с GC без обратной связи от оборудования, нельзя обычными способами настроить поочередную отправку двух команд или отправку команды громкости с элемента Level (уровень). Это связано с тем, что команда заранее содержит целевое действие, и поменять его в процессе работы проекта нельзя.


Чтобы попеременно отправлять разные команды или управлять оборудованием с помощью уровня, нужно использовать iRidium Script - встроенный язык программирования, который позволит настроить зависимости между не связанными ИК командами и их отправкой. См. iRidium Script API.

↑ К оглавлению

Создание своей базы команд Global Cache (RS232)

Чтобы использовать команды RS232 в разных проектах iRidium, сохраните их в базу данных iRidium.

Для добавления устройства в базу iRidium используйте DB Editor - редактор баз данных. Добавить новое устройство Вы можете только в свою базу данных, т.к. стандартные базы закрыты для изменения.


Attention.png Создание базы - не единственный способ переноса команд между проектами iRidium. Если вы создали устройство с командами в проекте iRidium, то можете импортировать его в другой проект с помощью File > Import > *.irpz


Новая база данных:

Используйте для хранения своих устройств пользовательские базы данных. Они создаются в DB Editor. При создании базы укажите ее имя и директорию для сохранения

AV Database New.png


Новое устройство:

Тип создаваемого устройства - RS232 (RS232 Device), определяет его транспортную часть и характеристики.

RS232 1.png


Настройка устройства

Настройте описание, чтобы легче идентифицировать устройство:

RS232 2.png

  • Device Type - тип управляемого устройства (TV, DVD, Blu Ray, ...)
  • Manufacturer - наименование производителя устройства
  • Description - описание устройства, может включать гиперссылки
  • Date - дата создания драйвера


Параметры подключения:

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


Необязательные параметры:

  • Parameters - дополнительные параметры для подключения
  • Login - логин для подключения
  • Password - пароль для подключения


Необязательные параметры можно скрыть: щелкните два раза по параметру, поставьте галочку Hiden в его настройках:

RS232 3.png


Добавление команд в список устройства

Перейдите во вкладку Commands & Feedback и воспользуйтесь инструментами редактора:

RS232 4.png


По умолчанию команда не содержит данных. Инструкция, которую должна отправить команда, задается в окне Comand Properties. Щелкните два раза по команде, чтобы открыть окно Comand Properties:

RS232 5.png

  • В поле Command напишите инструкцию для команды, в нашем случае для команды Reset (перезагрузка устройства) есть инструкция 'e4',13, где e4 - это содержание инструкции, 13 = <CR> (команда отправляется в ASCII формате).
  • Поставьте галочку в поле Name Read Only если не хотите, что бы имя команды можно было изменить (полезно, когда к команде обращается скрипт)
  • В поле Descriptions задайте описание команды.


Когда все команды будут добавлены, сохраните базу.

Attention.png Устройство из базы можно перенести на Serial выход Global Cache, при этом настройки подключения, созданные в базе, не учитываются.

Attention.png Чтобы перенести устройство из базы на Serial выход Global Cache, выберите свою базу в выпадающем списке Device Base и перенесите на выход Global Cache.

↑ К оглавлению

Переключение между Локальным и Интернет-соединением

Если панель управления не должна терять возможность соединения с системой, когда перемещается за пределы её Wi-Fi сети, то нужно настроить в проекте переключение интернет-локальная сеть.

Удаленный режим работы подразумевает подключение к системе через Интернет. При этом используется внешний IP адрес или доменное имя системы, к которой нужно подключаться.


Attention.png В iRidium переключение Wi-Fi/3G автоматически НЕ производится. Для переключения интернет-локальная сеть, в вашем проекте должны быть специально настроенные кнопки. Настройки см. далее.
Attention.png Чтобы управление системой работало удаленно, нужно открыть систему для внешнего доступа -
настроить службу Port Forwarding.
Attention.png Чтобы обезопасить оборудование от стороннего вмешательства, рекомендуем использовать защищенное соединение с удаленной системой (VPN)


Настроим переключение Wi-Fi/3G в проекте iRidium:

Scripts PpenTemplate.png

1. Откройте редактор скриптов в iRidium GUI Editor.

2. Скачайте и добавьте в проект шаблон переключения Wi-Fi/3G (Add Script from file):
скачать шаблон переключения Wi-Fi/3G

Переключение Wi-Fi/3G производится с помощью скриптовой функции SetParameters

Настроим параметры переключения Wi-Fi/3G:

function Internal_1() // Function name
{
IR.GetDevice('Global Cache').SetParameters({

Host: "210.110.10.10", // IP адрес модуля GC
Port: 4998, // основной порт подключения
Port1: 4999, // порт подключения к COM1 на GC (если это GC с COM-портом)
Port2: 5000, // порт подключения к COM2 на GC (если это GC с COM-портом)
SendMode: 0, // 0 - всегда подключен, 1 - подключен только в момент отправки команды
IrConfirm: 0, // 0 - IR с подтверждением отправки, 1 - без подтверждения
ScriptMode: 0, // 0 - отправить напрямую и в скрипт, 1 - только в скрипт
BackGroundMode: 0 // 1 - вкл, 0 - выкл
}); // Driver Name + Parameters

}
function External_1()
{
IR.GetDevice('Global Cache').SetParameters({

Host: "210.110.10.10", Port: 4998, Port1: 4999, Port2: 5000, SendMode: 0, IrConfirm: 0, ScriptMode: 0, BackGroundMode: 0});

}

В настройках команд укажем:

  • Function name – имя функции (команды) переключения. Две функции в одном проекте не должны называться одинаково
  • Driver Name – имя драйвера, у которого меняем параметры
  • Parameters – набор параметров подключения, который нужно применить к драйверу


Привяжем команды к кнопкам:

  1. Выберите кнопку, которая будет отвечать за переключение Wi-Fi/3G.
    Откройте свойства этой кнопки: Object Properties > Programming
  2. Откройте Macros Editor кнопки для события Press или Release
  3. Выберите команду Script Call и двойным кликом добавьте ее
  4. В выпадающем списке выберите имя функции, которую нужно вызвать. Создайте команду

Script call internal-external.png


Настроим доступ к оборудованию из Интернета:

Для этого откроем порты оборудования для удаленного доступа.


Загрузить пример переключения Wi-Fi/3G (проект) >>

↑ К оглавлению

Загрузки

Загрузить: пример проекта (2 Мб)

↑ К оглавлению