Перейти к основному содержимому

Работа системы на базе событий

Основные понятия

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

Компоненты событийной модели:

  • События — сигнал изменения состояния системы, которые инициируют определенные действия
  • Источники событий — компоненты, генерирующие события (датчики, пользовательский интерфейс, внешние системы)
  • Обработчики событий — код на контроллере, управляющий обработкой и выполняющий действия в ответ на события
  • Шина событий — механизм передачи событий между устройствами системы, как внутри контроллера, так и через MESH-сеть

Особенности обработки событий

Асинхронная обработка позволяет:

  • Параллельное выполнение обработчиков
  • Независимую работу компонентов
  • Масштабирование системы

Структура событий

Каждое событие содержит:

  • Источник - компонент системы вызывающий событие
  • Свойство - тип свойства, с которым это событие действует
  • Значение - числовое значение свойства

Принцип работы

Последовательность действий событий

Источники событийСобытияШина событийОбработчики событий

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

Пример работы событий

События

  1. Событие от выключателя, которое по условиям инвертирует значение свойства Питание на Лампе
  2. Событие от управления, которое изменяет значение свойства Питание на Лампе
  3. Событие от управления, которое изменяет значение свойства Яркость на Лампе
  4. При изменении свойств устройства, появляются события, которые обрабатываются логикой
  5. События, которые действую на выходы контроллера

Еще Пример

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

  • Источник - ИД датчика
  • Свойство - Температура
  • Значение - 24.7

это событие будет приниматься всеми устройствами на контроллере (на всех контроллера объединенных в Mesh-сеть), где указан ИД этого датчика