Процессы взаимодействий

Здесь описаны основные процессы взаимодействия с лабиринтом.

Таблица взаимодействия

В этой таблице описаны события внутри websocket, а так же как они вляют на устройства и сервер.

Этап Компьютер Устройства
Включение - -
Регистрация устройств   Отправляет register после включения
  Обновляют информацию в maze.json -
  Отсылает подтверждение регистрации registered Обновляет инфу об id , а так же необходимая информация
Калибровка Отправляет calibration Устройства начинают скрипт калибровки
    Отправляет calibration_finished или moving_calibrated (moving_uncalibrated, если не скалиброван).
Активация игры Отсылает hstate : {state:0,is_play:0,level:0} -
Выбор уровня сложности Отсылает hstate:{state:0,is_play:0,level:n}  
  Ищет список лучей в config  
  Отсылает setBeam: {id:n,value:1} 1 луч - 1 событие, где n номер луча Загораются лучи, но не пересекуются
  Отсылает setCheckpoint: {id:n,value:2} n - номер кнопки старт в маршрутке Загорается кнопка старт
Игрок нажиает на старт   Отправляет событие checkpoint_pressed:{id:n,value:1}
Игрок отпускает старт   Отправляет событие checkpoint_pressed:{id:n,value:0}
Старт игры Событие hstate: {state:1,is_play:1,level:n} Начинает воспринимать пересечение лучей.
  Звуковой сигнал “Старт игры”  
  Начинает играть музыка  
  Событие setCheckpoint:{id:n,value:0}, где n - кнопка старта Выключается подсветка кнопки
  Событие setCheckpoint: {id:n,value:2}, где n - следующая кнопка в маршруте после старта Включается подсветка кнопки
  Запускает функцию blinkLight Моргает светодиодная лента
  Пауза 1,5 секунды  
  Отсылает событие setLight:цвет Загорается светодиодная лента
Пересечение луча Событие hstate:{state:1,is_play:1,level:n} Событие beam_crossed:n, где n номер пересеченного лазера
  Событие setBeam: {id:n,value:0}, где n номер пересеченного лазера Гаснет луч
  Функция blinkLight Моргает светодиодка
  Звуковой сигнал “Пересечение лазеров”  
  Записывается +1 пересеченный луч  
Нажатие на кнопку Событие hstate:{state:1,is_play:1,level:n} Отправляет событие checkpoint_pressed:{id:n,value:1} , где n нажатая кнопка
  Событие setCheckpoint: {id:n,value:0}, где n нажатая кнопка выключается кнопка
  Событие setCheckpoint: {id:n,value:2}, где n следующая кнопка в маршруте включается подсветка кнопки
  Функция blinkLight Моргает светодиодка
  Звуковой сигнал “Нажатие на кнопка”  
Победа Событие hstate:{state:4,is_play:0,level:n} Лазеры не чувствительны к пересечениям
  Событие setBeam: {id:-1,value:0} Выключаются все лазеры
  Событие setCheckpoint: {id:-1,value:0} Выключаются все кнопки
  Событие setLight Светодиодка зеленая
  Звуковой сигнал “Выигрыш”  
  Музыка перестает играть  
Таймер закончен Событие hstate:{state:2,is_play:0,level:n} Лазеры не чувствительны к пересечениям
  Событие setBeam: {id:-1,value:0} Выключаются все лазеры
  Событие setCheckpoint: {id:-1,value:0} Выключаются все кнопки
  Событие setLight Светодиодка красная
  Звуковой сигнал “Проигрыш”  
  Музыка перестает играть  
Проигрыш Событие hstate:{state:3,is_play:0,level:n} Лазеры не чувствительны к пересечениям
  Событие setBeam: {id:-1,value:0} Выключаются все лазеры
  Событие setCheckpoint: {id:-1,value:0} Выключаются все кнопки
  Событие setLight Светодиодка красная
  Звуковой сигнал “Проигрыш”  
  Музыка перестает играть  
Сброс игры Событие hstate:{state:-1,is_play:0,level:n}  
  Событие setBeam: {id:-1,value:0} Выключаются все лазеры
  Событие setCheckpoint: {id:-1,value:0} Выключаются все кнопки
  Событие setLight Светодиодка черная
  Музыка перестает играть -

Posts

subscribe via RSS