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

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

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

Преобразователи Global Cache рекомендованы к использованию с iRidium: для них есть база ИК команд, заранее настроенные драйверы, возможность обучения ИК командам с пульта.


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

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


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

В iRidium вы можете использовать модули "Global Cache" для управления вашим аудио-видео и другим оборудованием по ИК. Схема связи iRidium с оборудованием:

AV HowItWorks.png

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

Выходы Global Cache: ИК эмиттеры или бластеры

Формат ИК команд: ASCII с использованием синтаксиса Global Cache

Обратная связь от оборудования: по ИК каналу отсутствует.

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

Настройка Global Cache

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

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


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

GC-iTach-WF-Image.png iTach WiFi to IR (Infrared Control, WF2IR)
  • Wi-Fi модуль (режим точки доступа или инфраструктуры)
  • питание от сети 220В
  • независимый ИК выход или вход датчика (3 шт.)
GC-iTach-IP-Image.png iTach TCP/IP to IR (Infrared Control, IP2IR)
  • питание от Ethernet или от сети 220В
  • независимый ИК выход или вход датчика (3 шт.)
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 в iRidium

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

GC-AddDriver.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). Определяет число и тип выходов преобразователя.
  • Control Mode - режим работы устройства
    • Standart Unit - управление оборудованием по ИК с помощью подключенных ИК эмиттеров
    • Single LED / Dual LED - позволяет настроить управление LED освещением через разъемы 3,5мм iTach, настроенные как управляющие контакты контроллера освещения (см. iTach API)
  • Send Mode - режим подключения к преобразователю
    • Always Connected - постоянное подключение (нормальный режим)
    • Connect when Sending - подключение только в момент отправки команды. Подходит для GC-100-06(12,18,18R), к которым надо подключить несколько панелей управления
  • Confirm IR - отправлять следующую ИК команду, только после подтверждения отправки предыдущей. Позволяет избежать наложения ИК команд.
  • Script Mode - определяет, куда отправлять команды
    • Direct and Script - сразу отправлять команду преобразователю и дублировать ее в скрипт (можно обработать данные в iRidium Script)
    • Script Only - отправлять команду только в скрипт (преобразователю, при нажатии на кнопку, команда не отправится). Позволяет передавать в скрипты составные части команды для работы драйверов. Не включайте этот режим, если не используете скрипты.


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

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


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

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


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

Настройка ИК выхода Global Cache

Выход 3,5мм преобразователя Global Cache может работать в одном из режимов:

  • IR - режим отправки ИК команд, когда к выходу подключен ИК-эмиттер или ИК-бластер
  • Sensor Notify - режим сенсора, когда выход сообщает статус подключенного сенсора.


Чтобы отправить ИК команду с выхода Global Cache, установите его в режим IR

GC-DriverOutput.png
  • Frequency (Гц) - частота отправки ИК команд с выбранного ИК выхода. Ее можно изменить для папки с ИК командами или для отдельной команды. Частота отправки зависит от требований управляемого оборудования. Получить ее можно при обучении с ИК пульта или в процессе преобразования ИК команд в формат GC (если вы не нашли настроенные команды в базе GC)


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

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 нужно заполнить ИК командам. Получить их можно следующими способами:

  • Добавить готовые команды из базы Global Cache Cloud (IR Database)
  • Обучиться командам с родного ИК пульта оборудования, с помощью GC-IRL IR Learner
  • Преобразовать в формат Global Cache команды, полученные из документации к оборудованию


Готовые ИК команды из GC Cloud (IR Database)

Онлайн-база ИК команд доступна в редакторе iRidium GUI Editor, GC Cloud.

Нажмите "Обновить" (обязательно подключение к Интернету), чтобы загрузить список производителей и команд.


GCDB 1.png

Структура базы:

  • Brands - производители оборудования
  • Device Types - категории оборудования у производителя
  • Codesets & Commands - модели, и соответствующие им ИК команды


Перетащите папку с командами на ИК выход Global Cache в вашем проекте.
Команды настроены заранее, их не нужно редактировать:

GCD 11.png

Команды и папки можно перемещать между ИК выходами модулей GC в проекте, перетаскиванием.

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

Обучение ИК командам через GC-IRL IR Learner

GC-IRL IR Learner - это считыватель ИК команд для для Global Cache.

Он может быть доступен в двух видах:

  • как отдельное устройство для подключения к СОМ-порту ПК или преобразователя GC-100-06(12,18,18R).
  • как встроенный в iTach IP2IR (WF2IR)считыватель ИК команд.

Считыватель позволяет быстро создать список ИК команд, которые можно использовать во всех проектах iRidium для Global Cache.

Обучение ИК командам возможно двумя способами:

  • Записывать команды прямо на ИК выход драйвера Global Cache в проекте iRidium
  • Создать свою базу ИК команд в DEVICE BASE и заполнить ее


Быстрый способ обучения ИК командам - внутри открытого проекта iRidium:

1. Поставьте курсор на ИК выход Global Cache
2. Нажмите "(+) > добавить папку" ИК команд (для удобства заполнения)
3. Нажмите "(+) > добавить команду" несколько раз, по числу кнопок считываемого пульта
4. Сразу назовите добавленные команды в соответствии с назначением кнопок
5. Встаньте на первую команду в папке и нажмите кнопку "Learning..."
Learning Presets.png
6. Выберите тип обучающего устройства (Learner Type)
  • GC-IRL - если используете устройство GC-IRL IR Learner
  • GC iTach - если считываете команды через iTach IP2IR(WF2IR)
7. Выберите интерфейс обучения (TCP/IP или RS232)
  • TCP/IP - если используете iTach IP2IR или GC-IRL через GC-100
Port: 4999 - СОМ1 устройства GC-100-06(12,18,18R)
Port: 5000 - СОМ2 устройства GC-100-06(12,18,18R)
* через iTach IP2SL(WF2SL) обучение с помощью GC-IRL не поддерживается
  • RS232 - если GC-IRL подключен к СОМ-порту вашего ПК
8. В процессе обучения, нажимайте на ИК пульте кнопку, которая соответствует текущему имени в окне. Пульт должен быть направлен на устройство считывания с минимального расстояния.
Если обучение успешно, в окне появится имя следующей команды:
Learning Presets LearningProcess.png
* Если при нажатии кнопки на ИК пульте, имя команды в окне не поменялось на следующее - обучение не идет! Чтобы выяснить причину проблемы, используйте программу iLearn от Global Cache. Она покажет ошибки при подключении. Проверьте связь с преобразователем.


Создание собственной базы ИК команд (для быстрого добавления в новые проекты)

База ИК команд размещается в DEVICE BASE, как основная база драйверов iRidium, но может быть сформирована вручную. Из базы можно быстро добавить ИК устройство на выход модуля Global Cache (так же его можно перенести из другого вашего проекта, используя File > Import).


DB Editor - редактор для создания пользовательской базы данных:

AV Database New.png

Создать ИК устройство можно только в своей базе, стандартная закрыта для редактирования:

AV Add IR Device.png

ИК устройство в базе данных настраивается минимально, т.к. представляет собой папку команд для Global Cache.

Во вкладке Commands & Feedbacks сформируйте список ИК команд, которые будут заполнены данными при запуске обучения (Learn...) через GC-IRL IR Learner:

AV IR Device Settings.png

Не рекомендуется использовать в именах команд спецсимволы.

Запуск обучения:

  1. Подключите GC-IRL IR Learner к ПК или GC-100-06(12,18,18R). Также можно использовать встроенный Learner iTach IP2IR(WF2IR).
  2. Поставьте курсор на первую команду в созданном для ИК устройства списке
  3. Нажмите клавишу "Learn ..." и выберите настройки обучения, как было указано в начале раздела
  4. Откроется окно обучения, нажимайте на ИК пульте кнопку, которая соответствует текущему имени в окне. Пульт должен быть направлен на устройство считывания с минимального расстояния.

Если обучение успешно, в имя команды в окне будет меняться автоматически.

* Обученная ИК команда выделена в базе полужирным шрифтом
* Если при нажатии кнопки на ИК пульте, имя команды в окне не поменялось на следующее - обучение не идет! Чтобы выяснить причину проблемы, используйте программу iLearn от Global Cache. Она покажет ошибки при подключении. Проверьте связь с преобразователем.

Закройте редактор базы, сохранив изменения.


Чтобы добавить полученное ИК устройство в проект iRidium:

  • Выберите свою базу данных из выпадающего списка Device Base
  • Перенесите устройство из базы на ИК выход Global Cache

GC IRLearner-MyOwn-base.png

  • Frequency (Гц) - частота отправки команды с ИК выхода. Можно изменить для всех команд на выходе. Частота, установленная на папке, далее - на команде, будут в приоритете относительно частоты на ИК выходе.

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

Создание ИК команд для Global Cache по документации к оборудованию

Документация к AV оборудованию содержит ИК команды для этого оборудования в формате HEX (CCF), поэтому их нужно сначала конвертировать в формат Global Cache, затем добавить в свою базу ИК команд.


Рассмотрим пример переноса ИК команд из документации к телевизору в базу ИК команд для GC.

Исходная документация: Panasonic Plasma TV Remote control (IR)
Необходимое ПО: iConvert (Global Cache)

Global Cache iConvert - обеспечивает конвертацию ИК команд между форматами Global Cache и HEX (CCF).


Исходная ИК команда в формате HEX (CCF):

POWER ON
0000 0071 0000 0032 0080 003F 0010 0010 0010 0030 0010 0010 0010 0010 0010 0010 0010 0010 0010
0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0030 0010 0010 0010 0010
0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0030 0010 0010 0010
0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0030 0010 0030
0010 0030 0010 0030 0010 0030 0010 0010 0010 0010 0010 0010 0010 0030 0010 0030 0010 0030 0010
0030 0010 0030 0010 0010 0010 0030 0010 0A98

Преобразуем команду в формат Global Cache с помощью iConvert:

IConvert.png

В окне Output мы получили команду в формате Global Cache, но она еще не готова к использованию.


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

sendir,<mod-addr>:<conn-addr>,1,37000,
<repeatcount>,1,128,63,16,16,16,48,16,16,256,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
16,16,16,48,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,48,16,16,16,16,16,16,16,16,
16,16,16,16,16,16,16,16,16,16,16,48,16,48,16,48,16,48,16,48,16,16,16,16,16,16,16,48,16,48,16,48,
16,48,16,48,16,16,16,48,16,2712
Отдельно сохраните параметр после третьей запятой, здесь это 37000 - частота отправки команды (Гц).
У разных устройств и команд частота отправки может отличаться (отличие в несколько десятков Гц не учитывается). Частоту отправки нужно указать в настройках ИК выхода Global Cache.


Часть, которую необходимо сохранить:

128,63,16,16,16,48,16,16,256,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
16,16,16,48,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,48,16,16,16,16,16,16,16,16,
16,16,16,16,16,16,16,16,16,16,16,48,16,48,16,48,16,48,16,48,16,16,16,16,16,16,16,48,16,48,16,48,
16,48,16,48,16,16,16,48,16,2712

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

Так же конвертируйте и сохраните все ИК команды телевизора. Теперь их можно сохранить в базу данных iRidium.


Добавьте сохраненные команды в свою базу ИК команд.

Создание и настройка базы, ИК устройства в базе, производится так же, как при работе с IR Learner


Заполнение ИК команды в базе данных iRidium:

AV IR Commands Adding Manually.png

Частота отправки команды указывается в параметрах ИК выхода Global Cache, когда команды добавлены в проект.

Сохраните изменение в базе и добавьте созданное ИК устройство на любой ИК выход Global Cache в проекте iRidium.

Настройки ИК команды

В зависимости от способа получения ИК команды (из базы данных или создание вручную), настройки ИК команд различны:

Commandsettings GC.png

  • Delay (мс) - задержка перед отправкой команды. Отсчитывается от предыдущей отправленной команды (после подтверждения доставки, если оно настроено)
  • Change Frequency: False/True - позволяет выбрать частоту отправки команды (Гц): по умолчанию (см. ИК выход) или уникальную частоту для этой команды
    • Frequency (Гц) - частота отправки команды, если Change Frequency: True
  • Repeat - сколько раз повторить ИК команду (повторение выполняется на уровне Global Cache, а не за счет неоднократной отправки)
  • Offset - используется только если Repeat > 1 для ИК команд с преамбулой. Преамбула команды - это ее часть, которую не нужно повторять несколько раз. Offset - это длина преамбулы, которая измеряется в парах пульс-пауза, составляющих ИК команду. Это всегда нечетное число. Подробнее см. Global Cache API
  • Data - тело ИК команды. Не отображается у команд, добавленных из базы Global Cache. Тело команды содержит последовательность ИК импульсов, которую Global Cache отправит оборудованию.

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

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

ИК команды изначально не связаны с интерфейсом визуализации. Чтобы отправить команду, ее нужно привязать к кнопке в вашем проекте iRidium.

События, по которым можно отправлять команды, привязанные к Кнопкам (Button):

  • Press - нажатие на кнопку
  • Release - отпускание кнопки
  • Hold - удержание кнопки (работает в цикле, пока кнопка не отпущена)


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

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


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


Перетяните ИК команду на кнопку, в диалоге Send Command выберите событие отправки команды:

AV IR Command Dragging to item.png

  • Press - нажатие на кнопку
  • Release - отпускание кнопки

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

На одну кнопку можно привязать несколько команд:


Отправка нескольих ИК команд с 1 кнопки (макрос, сценарий)


Чтобы привязать несколько команд к кнопке, перетащите их по очереди на одну кнопку, привязав к одному из событий отправки (Press или Release):

AV IR Command Action Dragging Macro.png

Редактор макросов для события Press (или Release) позволит переместить ИК команды или разделить их задержками (Delay), дополнительными командами.


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


Hold - событие "удержание элемента", позволяет циклично отправлять одну или несколько команд все время, пока вы удерживаете элемент (например, как кнопка Volume + на ИК пульте).

Чтобы элемент реагировал не только на удержание, но и на обычное нажатие, активируйте для него событие Press:

AV IR Command Hold Creating.png

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

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

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


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


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

Управление Уровнем по ИК, обычно, невозможно, т.к. каждому значению уровня соответствует отдельная ИК команда, а многие ИК пульты не предполагают установки конкретного значения громкости (есть только + и -).


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

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

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

Если панель управления не должна терять возможность соединения с системой, когда перемещается за пределы её 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 (проект) >>

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