Работа с оборудованием

Материал из iRidium Mobile Wiki
Перейти к: навигация, поиск
Подробную информацию по работе с различными драйверами, поддерживаемыми iRidium, 
Вы можете найти в разделе «Документация по управлению оборудованием»

Чтобы настроить команды оборудованию и связать их с интерфейсом визуализации, используйтеи нструменты работы с драйверами iRidium. Драйверы проекта хранят информацию о подключении к оборудованию и команды взаимодействия с этим оборудованием в виде дерева Project Device Panel.


Инструменты работы с управляемым оборудованием

Работа с драйверной частью проекта осуществляется во вкладках редактора “Device Panel”, “Project Device Panel” и её подразделе “Properties”.

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

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

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


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

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


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

Создание нового управляемого устройства

База данных iRidium (Device Base) содержит информацию обо всех нативных и скриптовых драйверах iRidium, с помощью которых на данный момент возможно управление различным оборудованием для автоматизации, контроля аудио/видео систем и т.п. Чтобы использовать нативный драйвер в своем проекте, перенесите его из базы iRidium в категорию Drivers окна Project Device Tree:

Editor add custom driver.png

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

  • Токены Драйвера (Driver tokens)
  • Команды (Commands)
  • Каналы обратной связи (Feedbacks)


Команды (Commands)

Команды (Commands) - предназначены для отправки данных управляемому оборудованию

GUI Descr Commands.png

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

  • Send String - отправить ASCII строку
  • Send Number - отправить десятичное число
  • Send Token - отправить значение, указанное в настройках графического элемента, к которому привязывается команда (используется при работе с графическими элементами Trigger Button, Level, Up/Down Button)
  • Send Binary Data - отправить бинарные данные


Каналы (Feedbacks)

Каналы (Feedback) - переменные для получения и хранения данных, полученных от управляемого оборудования

GUI Descr Feedbacks.png

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

  • In Value - значение, полученное из канала обратной связи, будет менять состояние графического элемента, переключая его из неактивного в активное или перемещая ползунок слайдера, также используется при работе с «шаблонами обработки и вывода данных» (см. ниже)
  • In Text - значение, полученное из канала обратной связи, заменит любой текст, который был по умолчанию вписан в текстовое поле графического элемента
  • More... - здесь можно выбрать любой параметр графического элемента, на который должно влиять значение из канала, например, видимость, активность или координаты по осям X и Y


«Шаблоны обработки и вывода данных» для каналов обратной связи


Шаблон

Функция

Шаблон

Функция

$P

процента от максимального значения Уровня

$V

целая часть полученного значения

$L

минимальное значение Уровня

$H

максимальное значение Уровня

$S

номер выбранного состояния

$A

значение за вычетом минимального значения Уровня

$R

размах Уровня (максимальное минус минимальное)

$F1-5

значение с плавающей запятой,
1-5 - число знаков после запятой

$X

текущее значение в формате HEX

$$

символ "доллара"

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


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

Tokens - переменные дерева устройств

Tokens - особый тип переменных в дереве устройств проекта iRidium, не относящийся напрямую к управляемому оборудованию.


Различают 3 вида токенов проекта:

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


System Tokens (системные токены)

System Token - системные токены (переменные). находятся в Дереве устройств проекта (Project Device Panel). Возвращают значения параметров операционной системы и устройства, на котором запущен проект.

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

Подробно о назначении системных токенов и вызове их из скрипта читайте в System Tokens API

SystemTokenUsageinGUI.png


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

Project Tokens (токены проекта)

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
Загрузить:
Пример использования Токенов проекта для Windows, iPhone, iPad >>


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

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

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



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

Настройка подключения к оборудованию

Editor project device panel my device properties.png

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

Вкладка Properties содержит настройки локального и внешнего подключения к управляемому оборудованию. Другими словами, здесь возможна настройка параметров доступа к оборудованию в случае, если управляющее устройство находится в одной IP-подсети с объектом автоматизации, и если производится управление оборудованием через Интернет:

Name произвольное имя управляемого устройства
Driver Type тип драйвера, с помощью которого производится управление устройством (неизменен)
Local Connection секция настройки подключения к оборудованию в пределах локальной сети объекта автоматизации


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

Создание команд и статусных каналов

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

Для создания команд используйте инструменты окна Project Device Panel, позволяющие не только создать новую команду или канал, но и произвести импорт данных из файла проекта или санирование сети для отдельных типов оборудования. Итак, существуют следующие способы создания каналов и команд при работе с различными драйверами iRidium:


1.Создание команд и каналов вручную

Создание команды, статусного канала можно осуществить с помощью инструментов «Создать команду» и «Создать канал» окна Project Device Panel:

Editor project device panel add command.png


2. Импорт данных из проектов

Если iRidium поддерживает импорт данных из проектов конфигурации контроллера, которым Вам необходимо управлять, Вы можете добавить все имеющиеся в файле конфигурации контроллера управляемые узлы в проект iRidium. На данный момент iRidium поддерживает импорт из файлов:

  • iRidium Project (*.IRP, *.IRPZ) – импорт устройств из проектов iRidium
  • ETS Project (*.pr3, *.pr4, *.pr5, *.knxproj, *.csv) – импорт групповых адресов из проектов ETS (для KNX)
  • Simpl project (*.smw) – импорт джоинов из проектов Crestron

Editor project device panel import add drivers.png


3. Сканирование локальной сети для поиска устройств

Для отдельных типов оборудования существует механизм сканирования локальной сети объекта автоматизации, позволяющий обнаружить и добавить в дерево проекта iRidium список устройств, обнаруженных при сканировании локальной сети и ответивших iRidium по определенному протоколу. Эти устройства могут иметь преднастроенные команды и каналы, настройки подключения и инфраструктуру, включающую общую сеть (Network) объекта.

На данный момент поддерживается поиск следующих типов устройств в локальной сети:

  • HDL-BUS Pro Net (UDP) – оборудование, использующее для работы протокол HDL-BUS Pro
  • Lutron (UDP) – оборудование, использующее для работы протокол Lutron
  • DuoTecno (TCP) – оборудование, использующее для работы протокол DuoTecno

Editor project device panel scan add drivers.png

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

Связь команд и каналов с графической частью проекта

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

Чтобы привязать команду и канал к графическому элементу, используйте метод Drag&Drop – перетащите объект дерева на графический элемент проекта. При этом откроется диалоговое окно, где необходимо указать способ взаимодействия элемента и команды. Настройки графических элементов напрямую влияют на способы отправки, получения и отображения данных.

Например, при работе с драйвером Custom (TCP), отправить можно только данные, содержащиеся в информационном поле команды (Send Command), а отобразить данные, полученные от оборудования можно различными способами (вывести в текстовое поле, сменить состояние элемента).

Способы отправки и обработки данных определяются типом драйвера управляемого оборудования.

Editor project device panel send command feedback.png

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

Макрокоманды для оборудования

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

Окно работы с макрокомандами подробно описано в статье Макрокоманды (Macros Editor).

Editor object poperties programming macros editor.png

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

Отображение статусов переменных на элементах

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


1. Вывести полученное значение в текст в неизменном виде


Если значение, полученное от управляемой переменной не должно влиять на состояние графического элемента, а необходимо только отображение полученных данных в его текстовом поле, при привязке статусного канала к графическому элементу выберите запись данный в текстовое поле элемента, “In Text”. Это позволит переменной влиять только на состояние текстового поля, не меняя состояние всего элемента:

Editor project device panel send feedback in text.png


2. Обработать (преобразовать) и вывести значение в текст


Когда необходимо произвести некоторое преобразование полученных данных, например из абсолютного значения сделать проценты шкалы, используются «шаблоны обработки и вывода значений на графические элементы». Для применения этих шаблонов статусный канал должен быть привязан “In Value” элемента для возможности обработки.

Шаблон

Функция

Шаблон

Функция

$P

процента от максимального значения Уровня

$V

целая часть полученного значения

$L

минимальное значение Уровня

$H

максимальное значение Уровня

$S

номер выбранного состояния

$A

значение за вычетом минимального значения Уровня

$R

размах Уровня (максимальное минус минимальное)

$F1-5

значение с плавающей запятой,
1-5 - число знаков после запятой

$X

текущее значение в формате HEX

$$

символ "доллара"

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


Шаблон вписывается в текстовое поле элемента и в дальнейшем будет заменен преобразованными данными. С шаблоном можно указывать и любые текстовые блоки (единицы измерения, комментарии)

Editor project device panel send feedback in value.png

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

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

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

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

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

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

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

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


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

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


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

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

Далее приведены несколько примеров уведомлений.


1. Уведомить о подключении к оборудованию (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() 
   {
       IR.GetItem("Page 1").GetItem("Item 1").Text = IR.GetVariable("System.Time.24") + " System Online";  // notification
       IR.GetItem("Page 1").GetItem("Item 1").GetState(0).TextColor = 0x00FF00FF;  // text color
   });


2. Уведомить об отключении от оборудования (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() 
   {
       IR.GetItem("Page 1").GetItem("Item 1").Text = IR.GetVariable("System.Time.24") + " System Offline";  // notification
       IR.GetItem("Page 1").GetItem("Item 1").GetState(0).TextColor = 0xFF0000FF;  // text color
   });


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

Событие:
получение значения (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 Feedback "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 Response Failed. Please Check";   
      old_value2 = value;                                            
   }                                      
});


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

Событие:
получение значения (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";                       
   }                                    
});


Загрузить: пример уведомлений для KNX: простые уведомления, центр уведомлений

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