Третья часть из цикла.

Часть 1. Предыстория.
Часть 2. Почему выбран MODX Revolution. Серверная часть.
Часть 3. Работа с оборудованием. Примерная хронология проекта.
Часть 4. Синхронизация данных и обновление компонентов АСУ
Часть 5. Пути решения проблем при «непонятном» поведении движка/компонентов. Реализация складского учета
Часть 6. Текущие функциональные возможности АСУ — 1
Часть 7. Текущие функциональные возможности АСУ — 2.
Часть 8. Текущие показатели АСУ. Желаемые планы. Заключение

Работа с оборудованием

Фискальные регистраторы


Главным нюансом было взаимодействие с фискальным регистратором, который в 2014 году в качестве коммуникационного поддерживал только COM-порт. Второй сложностью в работе с ФР был протокол работы, основанный на бинарном обмене данными.
<cut/>
Поскольку на серверах в качестве ОС рассматривался только Linux (что же еще для WEB'а?), а ФР должны были устанавливаться на значительном расстоянии от сервера, появился вопрос о нестандартном взаимодействии. Мало того, что нужно «подружить» АСУ на PHP и оборудование с COM-портом, так еще и обеспечить возможность подключения через COM-порт на неограниченном расстоянии.

Решением стало устройство MOXA Nport 5110 — отличная возможность «прокинуть» COM-интерфейс в привычный Ethernet для использования подключений через сокеты. Как итог, стало возможным написание драйвера для ФР на PHP. Здесь многие могут возразить «Зачем изобретать велосипед?», но на тот момент не удалось найти рабочих решений для печати чеков из Linux через Ethernet. Благо, специалист, успешно выполнивший данную задачу, нашелся очень быстро.

Сканеры штрих-кодов


Помимо ФР вторым устройством является сканер штрих-кодов. С ним все прошло намного проще за счет возможности работы в качестве обычной клавиатуры и подключения к моноблоку по USB локально.
Сложность со сканерами появилась спустя чуть больше года после запуска АСУ, когда бытовые моноблоки начали «умирать», и появилась идея об установке iPad вместо них.



Как известно, самые популярные планшеты не имеют USB-порта.

Решение оказалось нестандартным, но эффективным:
  • Серверы перенесли ближе к сканерам для подключения напрямую
  • На серверах настроены кейлоггер для отлова штрих-кодов и NODE.JS для передачи ШК в браузер клиента, как будто они считаны на локальной клавиатуре.
В остальном проект представлял собой классический web-сервис с распределенной структурой.

Примерная хронология проекта

Спустя длительное время все идеально уже не вспомнить, да и не требуется.



Опишу основные вехи, как и что реализовывалось.
  • Июнь-июль 2014 года — изучение и описание бизнес-процессов;
  • Июль-август 2014 года — подготовка ТЗ, формирование требований, подбор резработчиков;
  • 20-25 августа 2014 года — до сдачи первой версии для приема заказов в кофейне, вывода отчетности менеджеру, печати чеков остается 2 недели. Внезапно появляется понимание, что на данный момент имеется только верстка, сырой драйвер ФР и совсем общая структура. Первый мандраж и грусть от перспективы, так как возложенные на привлеченных разработчиков не оправдались. Пришлось полноценно включаться в процесс и лично разрабатывать практически все необходимые возможности;
  • 7-10 сентября 2014 года (с опозданием на 2-3 дня) пробная попытка установки комплекта в первой кофейне. Полноценно не завелось, но у меня появилось понимание, как будут работать сотрудники;
  • Середина сентября 2014 года — успешный запуск АСУ в первой кофейне. Не без огрехов, но сотрудники уже могли принимать заказы, менеджера видели продажи;
  • Конец сентября 2014 года — успешное участие клиента в выставке франшиз и наглядная демонстрация собственной IT-системы всем заинтересовавшимся;
  • Октябрь 2014 года — исправление ошибок и недоработок. Разумеется, не весь месяц без остановки, а периодически, по мере появления сообщений. Параллельно запуск второй и третьей кофеен;
  • Ноябрь-декабрь 2014 года— реализация первой версии ЦС, синхронизации товаров и продаж;
  • Декабрь 2014 года — реализация модуля интеграции с системой видеонаблюдения;
  • 2015 год — реализация программы лояльности для гостей, системы подарков;
  • Декабрь 2015 года — февраль 2016 года — реализация системы складского учета
  • Начало 2016 года — реализация хранилища для документов сотрудников;
  • 2016 год — реализация групп кофеен, поддержки различных цен по группам кофеен и для держателей карт, адаптация интерфейса под iPad;
  • Конец 2016 года — реализация системы резервного копирования всей сети в облачное хранилище с использованием стандартных возможностей MODX по работе с удаленными источниками данных;
  • 2017 год — минимальные доработки по запросам.


Как видно, максимальное развитие было в начале. Текущий год получился спокойным на доработки. Есть уверенность, что это «затишье перед бурей» — количество пожеланий для наращивания возможностей АСУ растет, в течение некоторого времени большая часть этих пожеланий наверняка будет запущена в работу.