Пульт централизованного наблюдения


Пульт централизованного наблюдения

Разработка драйверов для разных устройств. Дизайн интерфейсов. Разработка бэкенда и фронтенда.

Дата создания: 14 февраля 2018

Сфера деятельности: Безопасность, Пультовая охрана

Технологии: NodeJs, Firebird, Websocket, TotalJS, JComponent, Javascript


Задача: 

  • Разработать драйвера для принятия сигналов и управления приборами работающими через Ethernet/GSM и через радио-каналы
  • Разработать ядро системы, которое работало бы на разных ОС
  • Разработать Web интерфейс для управления ПЦН

Решение:  В качестве языка был выбран NodeJS. Для разработки драйверов и ядра использовался фреймфорк TotalJS. Для взаимодействия между приборами и драйверами использовался протокол UDP. Для снятия данных с радио пульта использовался serialPort (com). Для передачи данных с драйверов на ядро использовался протокол TCP/IP. 

Web интерфейс был разработал с использованием JComponents. Столкнулся с проблемой когда приходило единовременно очень много событий и браузер не успевал рендерить таблицы. В качестве решения проблемы использовал модуль SlickGrid. Обмен событиями с ядром производится через WebSocket.

В итоге было сделано следующее:

Драйвер для управления приборами Ethernet/GSM - принимает сигналы от приборов и передаёт на ядро, пропускная способность 3000 запросов/сек. Если нет соединения с ядром сохраняет запросы в файле, после того как появится соединение передаёт запросы на ядро. Может работать на разных ОС. Испольузется протокол шифрования ГОСТ.

Драйвер для работы с радио модулем - принимает сигналы с радио модуля и передаёт на ядро.  

Ядро - поддерживает соединение с драйверами, а также является бэкендом Web приложения.

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