Построение сложной диаграммы

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

В конце этого урока мы получим виджет с диаграммой температуры и влажности с трендовыми строками:

1. Начинаем создавать виджет

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

Во всплывающем меню выберите действие Создать виджет (). Откроется диалоговое окно свойства виджета. Установите Имя виджета как tchart, а Описание виджета как Temperature Chart и кликните OK.

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

2. Добавление диаграмм

Перетащите компонент Смешанная XY диаграмма из палитры компонентов в Корневую панель виджета. Это добавит новый компонент диаграммы в шаблон виджета. Включите Горизонтальное и Вертикальное заполнение для диаграммы, нажав кнопки в инструментальной панели.

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

Перетащите Столбчатую диаграмму XY (XY Bar Chart) (для отображения температуры и влажности) и Линейную диаграмму XY (XY Line Chart) (для отображения трендов) в Смешанную диаграмму XY (Mixed XY Chart).

3. Переименование диаграмм

А теперь переименуйте xyLineChart1 в trends, xyBarChart1 в thsensor. Чтобы переименовать компонент, щелкните правой кнопкой мыши в Дереве ресурсов, выберите элемент Переименовать во всплывающем меню  и введите новое имя в появившемся окне для редактирования.

Компонент можно также переименовать в его рабочей форме во всплывающем меню.

4. Настройка диаграммы сенсора

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

Теперь сделайте так, чтобы диаграмма отображала температуру и влажность устройства thsensor. У сенсора температуры есть переменная temperaturei, содержащая целочисленное значение температуры по Цельсию,  умноженное на 10 (т.е. значение 234 - это 23.4 градуса Цельсия) и переменную humidityi , которая является значением влажности в процентах и умноженное на 10.

Диаграмма thsensor будет основана на данных переменной. Измените значение Типа источника данных на Переменную во вкладке данных Окно свойств:

Теперь кликните по элементу Переменные источника, чтобы установить новую серию данных. Откроется окно Переменных источника. Кликните Добавить ряд (), чтобы создать новую серию данных, а затем отредактируйте  ее:

  • Установите в качестве Имени Temperature;
  • Переключитесь в поле Контекст и кликните [...], чтобы отредактировать путь контекста интерактивно в селекторе объектов. Выберите устройство thsensor из дерева (название должно быть выделено жирным шрифтом, поскольку это контекст по умолчанию) и кликните OK:

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

  • Выберите temperaturei из списка Переменные.
  • Переключитесь в поле Выражения и кликните [...], чтобы отредактировать выражение данных интерактивно в редакторе выражений. Во-первых, в окне Редактора Выражений дважды кликните в разделе Относительные ссылки по полю temperaturei, чтобы добавить относительную ссылку. Во-вторых, добавьте / 10 к Выражению, чтобы разделить значение и, т.о., конвертировать его в градусы Цельсия. Это действие необходимо выполнить, поскольку поле переменной изначально содержит значение температуры, умноженное на 10, что требуется для хранения его как целого числа:

Примите выражение, кликнув по кнопке OK. Оставьте другие колонки диалогового окна переменные источника неизмененными. Таким образом, Вы получаете запись для температуры.

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

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

Добавляя вторую запись переменных источника, кликнув Добавить ряд (), удерживайте кнопку Shift. Это скопирует запись для температуры, таким образом для влажности Вам нужно установить поля Имя, Переменная и Выражение в дублируемой записи.

5. Настройка диаграммы трендов

Давайте настроим нашу диаграмму трендов для отображения линий тренда для диаграммы thsensor. Во-первых, в окне свойств переключите свойство Типа источника данных на тренд. Затем во вкладке тренд выберите thsensor в свойстве Имя диаграммы источника.

Диаграмма тренда создаст отдельные серии тренда для каждой серии диаграммы источника. Давайте теперь установим пользовательские имена серий тренда: кликните по свойству Имена серий и добавьте два ряда с именами Temperature Trend и Humidity Trend.

6. Очистка

Когда диаграмма настроена для тренда, она использует массив данных диаграммы источника для подсчета трендов и осей диаграмм трендов для отображения линий трендов. Таким образом, мы можем удалить диаграммы трендов, к которым были добавлены автоматически оси, добавив Линейную диаграмму XY (на этапе 2) в смешанную диаграмму.

  • Выберите mixedXYChart1 в дереве ресурсов.
  • Перейдите в ярлык Оси и кликните в свойстве Оси диапазона.
  • Выберите второй ряд в появившемся диалоговом окне Оси диапазона и нажмите кнопку Удалить ряд. (), чтобы удалить неиспользованную ось домена. Кликните OK.

  • Выполните аналогичное действие для Осей домена.
  • Переключите тип для оставшейся Оси домена и Оси данных: кликните по оси и установите ее тип в появившемся диалоговом окне Ось.

7. Сохранение виджета диаграммы

Кликните Готово (), чтобы закончить редактирование и сохранить виджет. Он должен появиться в Системном дереве:

8. Отображение диаграммы

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

Выберите это действие для запуска виджета. В SberMobile IIoT Platform Client появится новое плавающее окно, содержащее виджет с нашей диаграммой.

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