Группы Socket.io

Компьютер является сокет-сервером, к которому подключаются клиенты. Чтобы разделить клиентов, существуют группы, которым можно посылать события.

Взаимодействие с лабиринтом

Взаимодействовать с лабиринтом могут как устройства, так и владельцы лабиринта или игроки. Рассмотрим все группы, которые могут взаимодействовать с лабиринтом.

Администраторы

Администраторы - это покупатели лабиринта, в эту группу входят, как владельцы лабиринта, так и нанятые работники.

Администраторы могут взаимодействовать с настройками лабиринта. Для администратора есть определенный скрипт работы (после установки и настройки лабиринта).

  1. Включить питание лабиринта
  2. Дождаться загрузки лабиринта
  3. Зайти в админ панель
    • С телефона
    • С сенсорного экрана
  4. Надымить и подождать пока дым рассеится
  5. Включить калибровку
  6. Активировать игру (активируется автоматически в автоматическом режиме)
  7. Периодически поддымливать и ждать, что дым рассеится.
  8. Производить инструктаж для игрока

Игроки

Игроки - это непосредственные участники игрового процесса.

  1. Игрок платит за игру (администратору или gamekeeper, coin system, bill acceptor)
  2. Игрок выбирает уровень сложности
  3. Нажимает кнопку старт
  4. Заходит в комнату
  5. Нажимает на кнопки и старается не задеть лучи
  6. Проигрыш:
    • Если игрок задевает лучей, чем позволено игрой
    • Если игрок не успевает нажать все кнопки за отведенное время
  7. Победа:
    • Если игрок не задел лучи и нажал на все кнопки за отведенное время
  8. Может попробовать уровень по-сложнее.

Устройства

Устройства - это внутренние устройства внутри лабиринта, которые могут взаимодействовать с ним.

  1. При включение питания, загружается роутер, компьютер и все устройства.
  2. Когда загружается роутер - к нему подключается компьютер по LAN и устройства по Wifi.
  3. Роутер выдает IP адреса:
    • 192.168.50.2 - серверу
    • 192.168.50.3 - камере
    • 192.168.50.4192.168.54.254 - остальным устройствам
  4. Компьютер поднимает HTTP и WEBSOCKET (socket.io) сервер по порту 1856.
  5. Функциональные устройства подключаются к websocket серверу, открывают соединение и отправляют регистрационную команду (register).
  6. ПО компьютера записывает (добавляет или обновляет) в файл maze.json информацию пришедшую при регистрации. Это обычно:
    • did - device id устройства, MAC адрес устройства
    • sid - socket.io (websocket) id
    • serial - серийный номер платы
    • version - версия ПО платы
    • ip - IP адрес
    • id - id присвоенный ранее
  7. В ответ ПО отправляет устройствам команду registered с необходимой для них информацией. TODO прикрепить ссылку на инфу
  8. Во время калибровки всем уйстройствам отсылается calibration.
  9. В ответ приходит calibration_finished от контроллеров и moving-calibrated от движ лазеров.

Posts

subscribe via RSS