Разработка драйверов для разных устройств. Дизайн интерфейсов. Разработка бэкенда и фронтенда.
Дата создания: 14 февраля 2018
Сфера деятельности: Безопасность, Пультовая охрана
Технологии: NodeJs, Firebird, Websocket, TotalJS, JComponent, Javascript
Задача:
Решение: В качестве языка был выбран NodeJS. Для разработки драйверов и ядра использовался фреймфорк TotalJS. Для взаимодействия между приборами и драйверами использовался протокол UDP. Для снятия данных с радио пульта использовался serialPort (com). Для передачи данных с драйверов на ядро использовался протокол TCP/IP.
Web интерфейс был разработал с использованием JComponents. Столкнулся с проблемой когда приходило единовременно очень много событий и браузер не успевал рендерить таблицы. В качестве решения проблемы использовал модуль SlickGrid. Обмен событиями с ядром производится через WebSocket.
В итоге было сделано следующее:
Драйвер для управления приборами Ethernet/GSM - принимает сигналы от приборов и передаёт на ядро, пропускная способность 3000 запросов/сек. Если нет соединения с ядром сохраняет запросы в файле, после того как появится соединение передаёт запросы на ядро. Может работать на разных ОС. Испольузется протокол шифрования ГОСТ.
Драйвер для работы с радио модулем - принимает сигналы с радио модуля и передаёт на ядро.
Ядро - поддерживает соединение с драйверами, а также является бэкендом Web приложения.
Web приложение - рабочее место оператора, мониторинг тревожных событий, история событий по объекту, звуковое сопровождение событий, поддержка горячих клавиш.