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

В этом уроке рассказывается о процессе создания простого виджета с целью осуществления мониторинга устройства. В данном случае мы предполагаем, что устройство - это цифровой датчик температуры/влажности, который связан с SberMobile Server по протоколу SNMP. Наш виджет будет показывать текущую температуру или влажность в режиме реального времени.

Этот раздел не содержит информацию о связи сенсора с сервером и его конфигурации, мы исходим из того, что сенсор уже находится в режиме online, а система распознает/видит его как устройство.

1. Запустите клиент

Перед тем как приступить к созданию виджета, найдите узел устройства в Системном дереве (). Перетащите его на узел Виджеты ():

Эта операция отобразит Свойства: окно Виджета. Установите имя Виджета как thmonitor, a Описание виджета как Temperature/Humidity Monitor. Если кликнуть OK, откроется редактор виджетов с пустым шаблоном виджета. Если перетащить устройство на узел Виджеты, только что созданный виджет будет доступен для каждого контекста устройства.

2. Добавление компонентов виджета

Давайте добавим некоторые компоненты в виджет. О том, как обращаться с компонентами виджета, можно узнать из раздела Редактирование разметки виджета.

Перетащите компонент Надпись () из палитры компонентов в корневую панель виджета на рабочей форме:

Добавьте еще одну надпись, перетащив его мышью под текущий в колонке  0, ряду 1 корневой панели:

 

Добавьте еще одну надпись в колонку 1, ряд 0:

Затем добавьте компонент Регулятор () в колонку 1, ряд 1:

3. Редактирование свойств компонента

Кликните по надписи 1 в рабочей форме и измените его свойство Текст в окне свойств на "Temperature: ".

Измените текст Надписи 2 на "Humidity: ". Затем измените текст Надписи 3 на 0.

Затем правой кнопкой мыши кликните по Надписи 3 в Окне ресурсов и выберите Переименовать из контекстного меню. Задайте имя temperature.

Переименуйте регулятор 1 на humidity аналогичным образом.

А теперь откройте свойство Шрифт ярлыка 1 в окне Свойства. Проверьте Использовать особый шрифт, установите имя на Arial, размер на 20 отметьте Полужирный шрифт.

Установите тот же шрифт для надписи2 (label2) и температуру (бывшая label3).

Установите Включенное свойство регулятора на false (неправильно), чтобы не допустить его перемещения.  

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

Затем отредактируйте ограничения надписей температуры и влажности и установите Левое поле на 15.

Вы также можете редактировать поля при помощи мышки, см. раздел Редактирование разметки виджета.

Теперь Ваш виджет должен выглядеть следующим образом:

4. Создание привязок

На этом этапе вы будете заниматься привязкой компонентов виджета к реальным данным. Эти данные представлены в форме переменных контекста. У нашего сенсора есть две доступные переменные:

  • Temperature*10 , которая содержит значение температуры, выраженное в градусах Цельсия и умноженное на 10 до целого числа (т.е. значение 234 соответствует 23.4 градусам Цельсия);
  • Humidity*10 , которая содержит значение относительной влажности в процентах, умноженное на 10 до целого числа ( т.е. значение 456 соответствует относительной влажности 45.6%).

Давайте сначала привяжем поле переменной Temperature*10 к надписи температуры. Найдите эту переменную в окне селектора объектов под контекстом устройства по умолчанию (должно быть выделено жирным шрифтом). Разверните его, чтобы увидеть поле Temperature*10. Перетащите это поле на надпись температуры:

Вы увидите сообщение о том, какие привязки были созданы:

Аналогичным образом привяжите поле Humidity*10 переменной Humidity*10 к полосе прокрутки при помощи мыши.

Редактирование привязок вручную

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

В таблице должно быть четыре привязки:

Привязки 1 и 3 следует удалить, поскольку они будут пытаться записывать новые значения температуры и влажности в устройство. Эта операция не разрешена, и сервер будет ее блокировать. Удалите эти привязки, кликнув по их числам, а затем кликните Удалить ряд () в инструментальной панели Редактора таблиц данных.

А теперь мы должны исправить значения температуры и влажности, которые были умножены на 10. Отредактируйте поле выражений в оставшихся привязках, добавив в них / 10:

  • {.:temperaturei$temperaturei} => {.:temperaturei$temperaturei} / 10
  • {.:humidityi$humidityi} => {.:humidityi$humidityi} / 10

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

Таблица с получившимися в итоге привязками:

Кликните OK, чтобы сохранить таблицу.

5. Изменение размера шаблона виджета

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

Выберите корневую панель, кликнув по Корню в верхнем левом углу рабочей формы. Установите ширину Окна на 370 , а высоту Окна приложения на 120.

Можно также изменить размер виджета и его компонентов при помощи мыши.  См. Редактировать разметку виджета.

В итоге, шаблон будет выглядеть следующим образом:

6. Сохранение шаблона виджета

Шаблон готов. Кликните Done (готово) ().

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

7. Запуск виджета

Пора увидеть наш новый виджет в действии. Щелкните правой кнопкой мыши по любому узлу Системного дерева для устройства (). Вы должны увидеть в контекстом меню новое действие Запустить виджет:

Выберите действие Запустить виджет для определенного сенсора температуры/влажности. В SberMobile IIoT Platform Client появится новое содержащее виджет плавающее окно:

Вот и все! Новый виджет действует, а Вы теперь можете отслеживать текущую температуру и влажность. Информацию о том, как автоматически запустить виджет при запуске SberMobile IIoT Platform Client см в разделе Как создать информационную панель для мониторинга устройства в реальном времени.