Статус группы

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

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

Расчет статуса группы

Расчет статуса группы происходит по следующим правилам:

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

  • Все строки статусов членов группы просматриваются в таблице статусов сверху вниз.

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

Предположим, что у нас есть группа из пяти членов. Выражение каждого члена оценивается в строковое выражение, которое обычно равно 100, 200, 300, 400 или 500 (это строковые константы, а не цифры). Таблица статусов будет выглядеть следующим образом:

Результат выражения статуса члена группы

Статус группы (Цвет)

100

Зеленый

200

Желтый

300

Красный

400

Малиновый

500

Синий

Приведенная ниже таблица показывает, в какой статус перейдет группа согласно различным комбинациям статусных строк членов группы и приведенной выше таблицы:

Строки статуса члена группы

Статус группы (Цвет)

100, 200, 300, 400, 500

Зеленый

500, 400, 300, 200, 100

Зеленый

300, 300, 300, 400, 500

Красный

500, 500, 500, 500, 500

Синий

500, 500, 200, 500, 500

Желтый

200, 200, 500, 200, 200

Желтый

100, 200, 300, 400, 123

Не определен

Этот пример иллюстрирует, как рассчитывается статус по умолчанию группы устройств. Настройки статусов групп по умолчанию следующие:

Переменная статуса члена: contextStatus

Выражение статуса члена: ({status} % 10 != 2 && ({status} - {status} % 10) == 40 ? 1 : ({status} % 10 == 1 || {status} % 10 == 2 ? 3 : 2))

Таблица статусов:  

Конфигурация статуса вышеобозначенной группы использует информацию о статусе контекста устройств, чтобы рассчитать статус группы устройств. Существует три определенных статуса группы устройств: Error (означает, что как минимум одно устройство сообщает об ошибке), Offline (означает, что ошибок нет, но как минимум одно устройство находится в офлайн или состояние его подключения неизвестно) и Online (означает, что все устройства в группе подключены и не сообщают об ошибках).

Выражение статуса члена анализирует поле статуса с целым числом переменной contextStatus. Этот статус можно интерпретировать как:

  • Количество десяток, представляющих статус синхронизации устройства (20 = синхронизировано, 40 = ошибка синхронизации и т.п.)

  • Количество единиц, представляющих статус соединения устройства (0 = офлайн, 1 = онлайн, 2 = в режиме ожидания, 3 = статус неизвестен)

Выражение статуса отдельного члена группы устройств имеет следующий результат:

  • 1 (Ошибка), если устройство не находится в состоянии ожидания ({status} % 10 != 2) и выдает ошибку синхронизации (({status} - {status} % 10) == 40)

  • 3 (Нормальный), если устройство находится в состоянии ожидания или онлайн ({status} % 10 == 1 || {status} % 10 == 2)

  • 2 (Офлайн) в ином случае

Результат выражения статуса члена

Цвет

Описание

1

Темно-красный

Ошибка

2

Темно-желтый

Офлайн

3

Темно-зеленый

Онлайн

См. статью Конфигурция статуса группы для получения более подробной информации.

Was this page helpful?