Система сбора и обработки телеметрии
Является "базой" и возможным "расширением" для большинства наших проектов. В частности, проект "очередь посетителей" может использовать ее для управления турникетами, обслуживания аппаратных табло и обработки кнопок или световых индикаторов. Проект "парковка" совместим с ней по оборудованию и может использовать ее устройства для расширения функциональности.
Ее концепция базируется на элементарной сущности "датчик", являющийся источником всей входящей информации. Датчики могут быть любого типа:
- логические;
- аналоговые;
- приемники токенов.
Такой подход позволяет программировать любые реакции на события в источнике, вне зависимости от их природы. Например, факт нажатия на кнопку является таким же важным и существенным событием, как предъявление карточки доступа, билета или голосовой команды.
Как видно из рисунка, конечное устройство является лишь интерфейсом, обслуживающим требуемую технологию ввода и вывода сигнала — все решения принимаются на уровне Базы Данных, что позволяет быстро настраивать логику поведения системы без привлечения профильных специалистов. Вторым положительным аспектом такой архитектуры является упрощение и удешевление микроконтроллеров, обслуживающих конечные устройства за счет переноса вычислений в единый сервер, мощность которого и так избыточна.
На рисунке приведен мастер-контроллер, объединяющий сеть устройств в единое целое для интерфейса компьютера, занимающегося обменом данных. Он применяется исключительно в аппаратных сетях и только тогда, когда есть повышенные требования к скорости отклика системы.
Программная часть проекта сделана таким образом, что не требует больших вычислительных мощностей и, в то же время, открыта для расширения функциональности в рамках своей базовой логики.
В качестве базовой платформы используется СУБД «Firebird», обладающая достаточной мощностью, но, при этом, не требовательная к платформе и вычислительным ресурсам — для реализации некоторых задач достаточно процессора ARM7 с небольшим объемом памяти.
Для разгрузки СУБД, применен тонкий клиент, принимающий подключения конечных роботов обслуживания. Его внешний протокол — HTTP, что позволяет подключать к системе новые сервисы, без оглядки на технологии программирования.
Структура отношений между программными клиентами включает и специализированные прокси сервера, потребные для уменьшения нагрузки на слабые коммуникационные каналы.
База Данных, кроме табличных настроек реакций, имеет функционал обработки пользовательских скриптов, что позволяет делать тонкие настройки реакций и работать с проектами-расширениями, реализующими альтернативную логику работы.
Это делает систему универсальной и способной управлять любыми средами. В частности, она может работать и как СКУД, и как система управления теплицей, умным домом и прочими типами объектов. Но любая универсальность - палка о двух концах и настройка СКУД будет несколько сложнее, чем "заточенная" исключительно под эту задачу программа.
Вторым немаловажным свойством системы является ее открытость для создания дополнительных расширений под проект. Достигается это за счет механизма "трехзвенки", используемого при общении клиентских программ с СУБД, работающего по открытому HTTP протоколу. Технологии расширений не ограничены определенной средой разработки - вызовы работают начиная от shell скриптов.