Материал из for iRidium developers
Перейти к: навигация, поиск
Other languages:
English • ‎русский

Редактор интерфейсов "iRidium Studio" включает инструменты для настройки команд и получения данных обратной связи от управляемого оборудования. Позволяет работать с системной информацией устройства, на котором запущен i3 pro и создавать внутренние переменные проекта, не связанные с реальным оборудованием.

Большинство операций по настройке оборудования и переменных проекта производится в "Project Device Panel".

Подробную информацию по работе с системами автоматизации и AV см. в разделе «Управление оборудованием».
В этом разделе справки представлена только общая информация.


Драйверы iRidium

Драйвер обеспечивает отправку и получение данных от оборудования, к которому подключен iRidium. Каждому устройству автоматизации соответствует свой драйвер, он обеспечивает поддержание соединения с устройством и корректный обмен данными.

Настройка драйверов проекта визуализации производится в Project Device Panel.


Device Panel – база данных, хранит все драйверы, устройства и команды, с помощью которых можно управлять оборудованием по TCP/IP, UDP, RS232, ИК, HTTP.

Project Device Panel – хранит драйверы, которые уже добавлены в проект iRidium, а также глобальные и системные переменные (Tokens).


Создание драйвера


создание вручную

Добавьте драйвер из Device Panel в Project Device Panel с помощью Drag&Drop (перетягиванием). Теперь драйвер можно настроить - указать Host, Port и др. параметры подключения к оборудованию.

Editor add custom driver.png

У каждого устройства есть три типа каналов, сгруппированных по папкам в устройстве:

  • Driver tokens - информация о работе драйвера
  • Commands - список команд для отправки оборудованию
  • Feedbacks - список каналов обратной связи для получения данных


Импорт из файла конфигурации

Editor project device panel import add drivers.png

iRidium поддерживает импорт из файлов:

  • ETS Project (*.pr3, *.pr4, *.pr5, *.knxproj) - импорт групповых адресов из ETS (KNX)
  • Simpl project (*.smw) - импорт джоинов Crestron
  • Clipsal project (*.xml) - импорт групп Clipsal
  • iRidium Archive Project (*.irpz) – импорт драйверов из проектов iRidium
  • iRidium Server Project (*.sirpz) – импорт драйвера iRidium Server из проекта iRidium
  • Modbus CSV Files (*.csv) - импорт регистров Modbus из csv таблицы


Поиск устройств в локальной сети

Editor project device panel scan add drivers.png

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

  • HDL-BUS Pro Net (UDP) – оборудование в системе HDL-BUS Pro
  • Lutron Net (UDP) – оборудование в системе Lutron
  • DuoTecno (TCP) – оборудование системе DuoTecno
  • Domintell (UDP) – оборудование в системе Domintell



Подключение к оборудованию

Верхний уровень дерева устройств, определяет адрес и тип устройства, которым нужно управлять.

Editor project device panel my device properties.png

Выберите драйвер в дереве устройств и перейдите ко вкладке Properties. Укажите настройки подключения к управляемому оборудованию:

  • Name - имя управляемого устройства, произвольно
  • Driver Type - тип драйвера, неизменен
  • Connection - настройки подключения к оборудованию



Commands - команды оборудованию

Нажатие на кнопку или перемещение ползунка уровня передает значение оборудованию, элемент-дисплей отображает полученные данные.

Используйте Drag&Drop, чтобы связать оборудование с интерфейсом визуализации. Тип элемента определяет, какие команды с него можно отправлять.

Управление:

С помощью графических элементов вы можете записать в переменную выбранное значение:

BUTTON

Графический элемент из 1 или 2х состояний. Кнопка, в зависимости от настроек может быть фиксируемой и не фиксируемой. Каждое нажатие на кнопку инициирует отправку одних и тех же команд, заранее к ней привязанных.


1 Создайте переменную, куда нужно записать число или строку. Настройте ее, как показано в инструкции

2 Создайте кнопку, настройте ее следующим образом (cм. все настройки):

UImakeAbutton.png
Type Button
Feedback Реакция кнопки на нажатия пользователя и на получение данных от оборудования
  • Momentary - кнопка отправляет значение, но не отображает обратную связь
  • Channel - отправляет значение и отображает обратную связь
  • None - визуально не реагирует на нажатие или получение обратной связи
  • Invert Channel - отправляет значение и отображают обратную связь инверсно (false - включена, true - выключена)

3 Перетащите переменную на кнопку, в диалоге привязки переменной укажите:

UIdragCommand.png
Action Send Number - записать в переменную число. Можно переключить на Send String для отпарвки ASCII строки
Event for Action Событие интерфейса, связанное с кнопкой. При возникновении события, в переменную будет записано указанное значение
  • Press - отправить по нажатию на кнопку
  • Release - отправить при отпускании кнопки
  • Hold - отправлять в цикле по удержанию
  • Move - не работает с кнопкой (Button)


Одновременно можно использовать несколько событий. Например, отправть [ 100 ] по нажатию и [ 0 ] по отпусканию.

Value Значение для записи в переменную. Кнопка отправляет всегда одно и то же, записанное в Value значение
Add a feedback channel (Create a feedback channel) Поставьте эту галочку, если нужно, чтобы кнопка не только записала значение в переменную, но и изменила состояние при получении данных из этой же переменной. Полученное значение будет влиять на состояние кнопки (вкл/выкл) и может быть отображено в ее текстовом поле.

4 Теперь переменная связана с кнопкой. Посмотреть все связи кнопки можно в OBJECT PROPERTIES > Programming


TRIGGER BUTTON

Триггерное переключение с помощью элемента "Trigger Button" позволяет отправлять попеременно 2 произвольных значения, указанных в Trigger Value 1 и Trigger Value 2. При наличии обратной связи, триггер автоматически принимает соответствующее состояние и при нажатии отправляет значение, противоположное текущему. Триггер нельзя настроить на работу с 3 и более значениями.


1 Создайте переменную, которую нужно переключать между 2 значениями. Настройте ее, как показано в инструкции

2 Создайте кнопку, настройте ее следующим образом (cм. все настройки элемента):

UImakeAtriggerButton.png
Type Trigger Button
Feedback Реакция на нажатия и получение данных от оборудования
  • Channel - переключает значение и отображает обратную связь (другие не используются)
Trigger Value 1 / Trigger Value 2 значения, которые нужно попеременно отправлять при нажатии на триггер, зависят от типа переменной

3 Перетащите переменную на триггер, в диалоге привязки переменной укажите:

UIdragCommandToTrigger.png
Action Send Token - отправить переменной значение Value, взятое из графического элемента (Trigger Value 1 или Value 2, в зависимости от текущего состояния триггера)
Event for Action Событие интерфейса, связанное с кнопкой. При возникновении события, в переменную будет записано указанное значение
  • Press - отправить по нажатию
  • Release - отправить при отпускании



Одновременно можно использовать только одно событие для триггера

Add a feedback channel (Create a feedback channel) Поставьте эту галочку, т.к. нужно, чтобы триггер знал свое состояние и менял его получении данных из переменной и при нажатии.

4 Теперь переменная связана с триггером. Посмотреть все связи можно в OBJECT PROPERTIES > Programming


LEVEL

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

1 Создайте переменную, которую нужно регулировать. Настройте ее, как показано в инструкции

2 Создайте уровень, настройте его следующим образом (cм. все настройки):

UImakeAlevel.png
Type Level
Feedback Реакция уровня на нажатия пользователя и на получение данных от оборудования
  • Channel - отправляет значение и отображает обратную связь (ползунок перемещается при получении данных)
Min / Max Пределы регулирования уровня: определяют диапазон значений, в котором перемещается ползунок
Invert Range Меняет местами нижнюю и верхнюю часть уровня, т.е. регулирование от 0 до 100 будет происходить не снизу вверх (при вертикальном уровне), а сверху вниз.

3 Перетащите переменную на уровень, в диалоге привязки переменной укажите:

UIdragCommandToLevel.png
Action Send Token - отправить переменной значение Value, взятое как текущее положения ползунка уровня в диапазоне Min...Max
Event for Action Событие интерфейса, связанное с кнопкой. При возникновении события, в переменную будет записано указанное значение
  • Press - отправить Value по нажатию
  • Release - отправить Value при отпускании
  • Move - отправлять все промежуточные значения Value при перемещении ползунка.
    добавляйте команду Delay (100) перед командой на событии Move, чтобы меньше нагружать оборудование (с командой Delay, Move будет срабатывать не чаще, чем раз в 100 мс)



Можно использовать все три события одновременно.

Add a feedback channel (Create a feedback channel) Поставьте эту галочку, т.к. нужно, чтобы ползунок уровня перемещался в соответствии с актуальным состоянием переменной

4 Теперь переменная связана с уровнем. Посмотреть все связи можно в OBJECT PROPERTIES > Programming

UP/DOWN BUTTON

Графический элемент из 2х состояний. При каждом нажатии на такую кнопку, рассчитывается значение, большее текущего на "Up/Down Value", но не превышающее "Max/Min Value". Рассчитанное значение отправляется переменной: таким образом реализуется пошаговое приращение переменной. Для работы с элементом нужна обратная связь от переменной в реальном времени.


1 Создайте переменную, которую нужно инкрементировать. Настройте ее, как показано в инструкции

2 Создайте уровень, настройте его следующим образом (cм. все настройки):

Editor window Object Properties General Up Down.png
Type Up/Down Button
Feedback Реакция уровня на нажатия пользователя и на получение данных от оборудования
  • Momentary - кнопка должна визуально нажиматься сразу же, она не отображает обратную связь визуально
Up/Down Value шаг инкрементирования (может быть больше либо меньше нуля)
Min/Max Value предел инкрементирования (минимальный предел для отрицательного шага, максимальный для положительного)
Hold Value шаг инкрементирования при срабатывании события Hold. Команду управления оборудованием можно одновременно привязать на Press и Hold, тогда значение будет прирастать при удержании кнопки
Hold Time время удержания кнопки, чтобы сработало событие Hold
Repeat Time частота повторения событий On Hold

3 Перетащите переменную на кнопку, в диалоге привязки переменной укажите:

Editor drag to UDB.png
Action Send Token - отправить переменной Value, рассчитанное как сумма текущего значения и величины инкремента
Event for Action Событие интерфейса, связанное с кнопкой. При возникновении события, в переменную будет записано рассчитанное значение инкремента
  • Press - отправить по нажатию
  • Hold - при удержании кнопки инкрементировать значение с указанной периодичностью



Можно использовать два события одновременно.

Add a feedback channel (Create a feedback channel) Поставьте эту галочку, т.к. нужно, чтобы инкремент рассчитывался в соответствии с актуальным состоянием переменной

4 Теперь переменная связана с уровнем. Посмотреть все связи можно в OBJECT PROPERTIES > Programming

RADIO BUTTONS

Радиокнопка (Radio Button) - элемент интерфейса, который позволяет выбрать одну из предварительно настроенных опций. В iRidium радиокнопки не выделены как отдельный тип элемента, вы можете настроить их, взяв за основу Trigger Button. Задача радикнопкок: отправлять переменным значения с разных кнопок, из которых можно выбрать только одну.

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


вар. 1 Радиокнопки для управления одной переменной с возможностью получения обратной связи. Записывают значения в одну переменную; оборудование возвращает текущее состояние этой переменной.

  1. Настройте элементы Trigger Button (см. изображение) по числу радиокнопок. В полях Trigger Value 1 и 2 укажите одинаковые значения, соответствующие тем, что каждая кнопка должна отправлять управляемой переменной
  2. Перетяните команду управления переменной на все радиокнопки. Выберите событие Press или Release для отправки, обязательно поставьте галочку Add A Feedback Channel для отображения статуса переменной


RadioButtons-MainSettings.png
RadioButtons-DragCommand.png

настроенная кнопка перейдет в State 2 только когда переменная примет значение, указанное в Trigger Value 1 и 2


вар. 2 Радиокнопки для управления переменными с возможностью получения обратной связи. Записывают значения вкл\выкл в разные переменные; оборудование возвращает текущее состояние этих переменных. Переменные не синхронизированы оборудованием автоматизации для работы в режиме радиокнопок (нужно выключать неактивные режимы на стороне iRidium)

  1. Настройте элементы Type: Trigger Button, Feedback: Channel, укажите Trigger Value 1 = неактивное, Trigger Value 2 = активное состояние переменной (например 0/1, 0/100)
  2. Перетяните команды управления переменными на графические элементы. На примере первого элемента группы:
    1. Отправьте нули во все переменные, которые входят в группу радиокнопок, чтобы отключить текущий активный режим. Для этого в диалоге отправки команды выберите Action: Send Number
    2. Добавьте задержку Delay(50) мс через редактор макросов события Press, чтобы дать оборудованию время на отключение активного режима
    3. Перетяните на элемент команду управления переменной, которая соответствует радиокнопке. Оставьте Action: Send Token. Value на событии Press (или Release), обязательно поставьте галочку Add a Feedback Channel


RadioButtons-MainSettings-Septd.png
RadioButtons-DragCommand-Septd.png

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


Отображение состояния:

Графический элемент может отображать значение переменной, меняя свое состояние или текст:

ИЗМЕНИТЬ СОСТОЯНИЕ

1 Настройте графический элемент так, чтобы он отображал полученные значения:

SetUpItemToDisplayValue.png

Выберите в настройках General:

Feedback: Channel (если 0 = false) или
Feedback: Invert Channel (если 0 = true).

Этот тип обратной связи позволяет элементу обрабатывать данные, полученные от переменных

2 Привяжите канал (Feedback) оборудования к графическому элементу:

SetUpItemToDisplayValue2.png

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

Для корректной работы элемент должен иметь 2 состояния. Первое состояние соответствует значению 0, второе - любому значению, отличному от нуля.

Шаблон $V, добавленный в текст элемента, позволит вывести полученное значение в текст элемента.

ОТОБРАЗИТЬ В ТЕКСТЕ

1 Привяжите канал (Feedback) оборудования к графическому элементу:

DragChannelToDisplayTxt.png

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

Элемент может иметь любое число состояний и настройки. Значение будет выведено в текстовые поля всех состояний элемента.

DragChannelToDisplayValue.png

Добавьте $V, в текст элемента. Перетяните канал обратной связи или переменную на элемент, в диалоге привязки выберите In Value. Это позволит вывести полученное целое число и добавить к нему любой другой текст.

Существуют шаблоны для вывода дробных чисел и др.:

СПИСОК ШАБЛОНОВ

Шаблон Функция Шаблон Функция
$V целая часть полученного значения $P процента от максимального значения Уровня
$F1 - 5 значение с плавающей запятой.
От 1 до 5 - число знаков после запятой
$H максимальное значение Уровня
$S номер выбранного состояния $A значение за вычетом минимального значения Уровня
$R размах Уровня (максимальное минус минимальное) $L минимальное значение Уровня
$X текущее значение в формате HEX $$ символ "доллар"

команда (шаблон) обработки и отображения входящих данных вносится в текстовое поле графического элемента и может быть совмещен с другим текстом и символами (комментариями, единицами измерения)



Feedbacks - обратная связь

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

  • In Value - менять состояние графического элемента, переключая его из неактивного в активное или перемещая ползунок уровня
  • In Text - заменять текст, который был на элементе по умолчанию
  • More... - выберите любой параметр элемента, на который нужно влиять, например, прозрачность


Графический элемент может отображать значение переменной, меняя свое состояние или текст:

ИЗМЕНИТЬ СОСТОЯНИЕ

1 Настройте графический элемент так, чтобы он отображал полученные значения:

SetUpItemToDisplayValue.png

Выберите в настройках General:

Feedback: Channel (если 0 = false) или
Feedback: Invert Channel (если 0 = true).

Этот тип обратной связи позволяет элементу обрабатывать данные, полученные от переменных

2 Привяжите канал (Feedback) оборудования к графическому элементу:

SetUpItemToDisplayValue2.png

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

Для корректной работы элемент должен иметь 2 состояния. Первое состояние соответствует значению 0, второе - любому значению, отличному от нуля.

Шаблон $V, добавленный в текст элемента, позволит вывести полученное значение в текст элемента.

ОТОБРАЗИТЬ В ТЕКСТЕ

1 Привяжите канал (Feedback) оборудования к графическому элементу:

DragChannelToDisplayTxt.png

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

Элемент может иметь любое число состояний и настройки. Значение будет выведено в текстовые поля всех состояний элемента.

DragChannelToDisplayValue.png

Добавьте $V, в текст элемента. Перетяните канал обратной связи или переменную на элемент, в диалоге привязки выберите In Value. Это позволит вывести полученное целое число и добавить к нему любой другой текст.

Существуют шаблоны для вывода дробных чисел и др.:

СПИСОК ШАБЛОНОВ

Шаблон Функция Шаблон Функция
$V целая часть полученного значения $P процента от максимального значения Уровня
$F1 - 5 значение с плавающей запятой.
От 1 до 5 - число знаков после запятой
$H максимальное значение Уровня
$S номер выбранного состояния $A значение за вычетом минимального значения Уровня
$R размах Уровня (максимальное минус минимальное) $L минимальное значение Уровня
$X текущее значение в формате HEX $$ символ "доллар"

команда (шаблон) обработки и отображения входящих данных вносится в текстовое поле графического элемента и может быть совмещен с другим текстом и символами (комментариями, единицами измерения)


Шаблоны отображения данных

Шаблон Функция Шаблон Функция
$V целая часть полученного значения $P процента от максимального значения Уровня
$F1 - 5 значение с плавающей запятой.
От 1 до 5 - число знаков после запятой
$H максимальное значение Уровня
$S номер выбранного состояния $A значение за вычетом минимального значения Уровня
$R размах Уровня (максимальное минус минимальное) $L минимальное значение Уровня
$X текущее значение в формате HEX $$ символ "доллар"

команда (шаблон) обработки и отображения входящих данных вносится в текстовое поле графического элемента и может быть совмещен с другим текстом и символами (комментариями, единицами измерения)


Макрокоманды

К одному графическому элементу можно привязать несколько команд, они будут отправлены оборудованию по порядку, сверху вниз, без задержки. Канал обратной связи можно привязать только 1, иначе входящие данные будут обработаны некорректно.

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

MacroCommands.png

Задержка между командами (мс) добавляется через редактор макросов. Выберите папку Other, команда Delay. Рекомендуется добавлять задержку для обеспечения надежной обработки команд оборудованием.

MacroAddDelay.png


Уведомления о событиях в системе

Уведомление - это сообщение, звук или действие, информирующее пользователя об изменениях в системе. Уведомления работают, когда приложение "i2 Control" запущено и развернуто на панели управления. Они настраиваются с помощью iRidium Script, и могут выполнять любые действия, доступные в iRidium Script.

На данный момент, уведомления для фонового режима (свернутого или закрытого приложения) не поддерживаются.

Для уведомления пользователя о важных и потенциально опасных ситуациях, система уведомлений iRidium НЕ ДОЛЖНА использоваться в качестве основной! Уведомления iRidium могут быть использованы в качестве дублирующей системы к СМС, e-mail, уведомлениям службы охраны (эксплуатации) объекта или др.

В качестве уведомления можно:

  • показать текстовое сообщение на графическом элементе;
  • показать окно или страницу с уведомлением
  • воспроизвести звуковой сигнал;
  • автоматически вызвать команду для управляемой системы (включить свет, выключить радио при звонке в домофон,...)


С помощью iRidium Script вы можете сформировать список любых условий и действий, которые нужно выполнить при возникновении этих условий.


Примеры использования:

  • показать диалоговое окно видео-домофона при получении входящего вызова;
  • показать уведомление, когда сработал датчик протечки.


скрипт в проекте iRidium

Настройка уведомлений:

  1. Создайте проект визуализации, настройте его пользовательский интерфейс и работу с драйверами (согласно инструкции для своего оборудования)
  2. Создайте файл скрипта
  3. Сформируйте в файле скрипта обработчики событий драйвера, при возникновении которых должны появляться уведомления



Уведомить о подключении к оборудованию (Online)

Событие:

успешная установка соединения с оборудованием ("My Driver"). Оборудование - любой драйвер проекта визуализации.

Действие:

вывести на графический элемент ("Item 1"), находящийся на странице ("Page 1"), текстовую информацию о событии (например, " System Online") и время возникновения события в 24-часовом формате ("System.Time.24"). Изменить цвет выводимого текста на зеленый.

Пример::

/***** online notification ****/
IR.AddListener(IR.EVENT_ONLINE, IR.GetDevice("My Driver"), function() 
   {
        // notification
        IR.GetItem("Page 1").GetItem("Item 1").Text = IR.GetVariable("System.Time.24") + " Online";
        // text color
        IR.GetItem("Page 1").GetItem("Item 1").GetState(0).TextColor = 0x00FF00FF;
   });


Уведомить об отключении от оборудования (Offline)

Событие:

отключение от оборудования ("My Driver"). Оборудование - любой драйвер проекта визуализации.

Действие:

вывести на графический элемент ("Item 1"), находящийся на странице ("Page 1"), текстовую информацию о событии (например, " System Offline") и время возникновения события в 24-часовом формате ("System.Time.24"). Изменить цвет выводимого текста на красный.

Пример:

/***** offline notification ****/
IR.AddListener(IR.EVENT_OFFLINE, IR.GetDevice("My Driver"), function() 
   {
        // notification
        IR.GetItem("Page 1").GetItem("Item 1").Text = IR.GetVariable("System.Time.24") + " Offline";
        // text color
        IR.GetItem("Page 1").GetItem("Item 1").GetState(0).TextColor = 0xFF0000FF;
   });


Автоматически открыть попап при активации канала

Событие:

получение значения (1 и 2) из канала ("Channel 10") драйвера ("My Driver"). Оборудование - любой драйвер проекта визуализации.

Действие:

1. При получении 1 - открыть всплывающее окно ("Popup 1"), вывести в текстовое поле ("Item_Display") этого окна информацию о событии (например, " Lamp in Garden broken") и время возникновения события в 24-часовом формате ("System.Time.24").
2. При получении 2 - открыть всплывающее окно ("Popup 1"), вывести в текстовое поле ("Item Display") этого окна информацию о событии (например, " Lamp in Garden Response Failed. Please Check") и время возникновения события в 24-часовом формате ("System.Time.24").

Пример::

/***** event notification (Tag Change) ****/
 
var old_value1 = -1;   // do not show notification if the previous state is the same  
var old_value2 = -1; 
 
IR.AddListener(IR.EVENT_START, 0, function()
{
	IR.AddListener(IR.EVENT_TAG_CHANGE, IR.GetDevice("My Driver"), function(name, value)
	{
		if (name == 'Channel 10' && value == 1 && value != old_value1) // Check the Value: 1 in "Channel 10"
		{
		  IR.ShowPopup("Notify_danger");
		  IR.GetItem("Popup 1").GetItem("Item_Display").Text = IR.GetVariable("System.Time.24") + " Lamp in Garden Broken";    
		  old_value1 = value;                     
		}
		else if (name == 'Channel 10' && value == 2 && value != old_value2)  // Check the feedback "Channel 10'"
		{	
			IR.ShowPopup("Notify_important");
			IR.GetItem("Popup 1").GetItem("Item_Display").Text = IR.GetVariable("System.Time.24") + " Lamp in Garden Failed";   
			old_value2 = value;                                            
		} 
	});			
});


Воспроизвести звук при активации канала

Событие:

получение значения (1) из канала ("Channel 11") драйвера ("My Driver"). Оборудование - любой драйвер проекта визуализации.

Действие:

1. При получении 1 воспроизвести звук уведомления и вывести в текстовое поле графического элемент ("Item 5") на странице ("Page 1") информацию о событии (например, " Incoming Call") и время возникновения события в 24-часовом формате ("System.Time.24").

Пример:

/***** event notification (Tag Change) ****/
IR.AddListener(IR.EVENT_START, 0, function()
{
   IR.AddListener(IR.EVENT_TAG_CHANGE, IR.GetDevice("My Driver"), function(name, value)
{
     if (name == 'Channel 11' && value == 1) // Check the Value = 1 in Feedback "Channel 11"
   {
      IR.PlaySound('BEEP1.WAV',1,70); // Play Sound ('name',slot,volume)
      IR.GetItem("Page 1").GetItem("Item 5").Text = IR.GetVariable("System.Time.24") + " Incoming Call";
   }
});
});


Переменные iRidium (Tokens)

Особый тип переменных в дереве устройств проекта iRidium. Различают 3 вида токенов:

  • System Tokens - системные переменные. В основном, работают только на чтение, хотя некоторые можно записать. Позволяют получать параметры панели урпавления, где работает i3 pro: системное время, заряд батареи, состояние сети и др.
  • Project Tokens - переменные проекта. Работают на чтение и запись. В токен проекта можно записать число, строку или массив, затем использовать его в проекте. Токены не стираются при перезапуске проекта, если чекбокс "Clear Token" в Project Properties не активен.
  • Driver Tokens - переменные драйвера. Работают только на чтение. Позволяют получать параметры драйвера: статус подключения, хост и порт подключения и др.


System Tokens - системные токены

SystemTokenUsageinGUI.png

Системные токены находятся в Project Device Panel. Возвращают параметры устройства, на котором запущен проект. Некоторые из них доступны на запись, остальные - только на чтение.

Токен можно привязать к графическому элементу.

Список системных токенов, их назначение и использование см. в Tokens API



Project Tokens - токены проекта

Tokens 1.png

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

  • Переменные хранятся в Дереве устройств проекта (Project Device Panel)
  • В переменную можно записать число или строку (DEC или ASCII).
  • Переменные можно объявлять, удалять, делать копии, сортировать и группировать по папкам.
  • Данные в переменных можно сохранять (или не сохранять) после закрытия приложения iRidium.
  • Записать данные в переменную можно командой с элемента, командой от драйвера или командой из iRidium Script


Записать данные в Project Tokens можно с помощью группы макросов Send to Token в Macros Editor графического элемента:

Tokens 3.png
  • Send Number - Записать в токен десятичное число (формат DEC)
  • Send Text - Записать в токен текст (формат ASCII)
  • Send Token - Записать в токен данные, извлеченные из параметров графического элемента (Value, координаты, размеры, текст и т.д. – переменные значения, определяемые текущими свойствами объекта)


Читать данные из Project Tokens можно натащив Token на графический элемент:

Tokens 6.png
  • In Text - запись значения токена в свойство элемента Text. Данные отобразятся на элементе в независимости от типа (строка или число).
  • In Value - запись значения токена в свойство элемента Value. В зависимости от того какое число содержит глобальная переменная, именно в такое состояние (отсчет состояний начинается с нуля) перейдет графический элемент. В этом случае глобальная переменная обязательно должна содержать в себе число.
Если в свойство Text графического элемента записан шаблон отображения значения $V - то значение глобальной переменной также отобразится на элементе.
  • More - запись значения токена в произвольное свойство графического элемента выбранное пользователем. В этом случае глобальная переменная должна содержать в себе число.


К примеру, значение токена проекта Menu нужно записать в свойство графического элемента Opacity:

Tokens 7.png

Токены проекта могут хранить данные после завершения приложения iRidium.

Если требуется что бы токены проекта очищали свои значения после завершения приложения - перейдите в Project / Project Properites / System и поставьте галочку у параметра Clear Token.


Типичные задачи:

  • связь между кнопками без использования драйвера (оборудования) или скрипта
  • создание радио-кнопок (меню Radio-Buttons)
  • демо-режим работы проекта (команды и обратные связи, не привязанные к реальному оборудованию)
  • сохранение полезных данных между перезапусками проекта


ПРИМЕР: настройка Radio Buttons

Пример создания навигационного меню с помощью токенов проекта (взаимодействие кнопок будет происходить по принципу радио-кнопок: в единицу времени активен только один из связанных элементов):

  • Создайте три графических элемента и задайте им следующие параметры в панели Свойства (Object Properties) во вкладке Programming:
Tokens 8.png


  • Создайте токен Menu и перенесите его на графические элементы выбрав связь In Value.
Tokens 9.png
  • Для каждого графического элемента создайте макрос Send Number записывавший порядковый номером графического элемента (1, 2, 3) в глобальную переменную Menu.
Tokens 10.png




Driver tokens - токены драйвера

Отображают статус подключения к оборудованию. Доступны только на чтение. Перетащите токен на графический элемент, как канал обратной связи - значение токена можно вывести в текстовое поле или изменить с его помощью состояние элемента.

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