diff --git a/GreatGamedevVault/Библиотека скриптов/2. Периферия/Система команд платы v2.x.md b/GreatGamedevVault/Библиотека скриптов/2. Периферия/Система команд платы v2.x.md index 3b00a64..4dc4a13 100644 --- a/GreatGamedevVault/Библиотека скриптов/2. Периферия/Система команд платы v2.x.md +++ b/GreatGamedevVault/Библиотека скриптов/2. Периферия/Система команд платы v2.x.md @@ -19,31 +19,31 @@ # Команды -| Команда | Назначение | -| ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| 00 | Перезагрузить контроллер (RESET) | -| 02 | Подготовиться к приему файла. освободить место, отформатировать встроенную файловую, проверить хватит ли места.
_**Например**_, `02356987` - заявка на файл обновления размером 356987 байт.
Выполняется около 15 секунд, после чего весь прием  данных в порту заносится в файл "update.bin".
Ответ при приеме файла - каждый блок (4096) - размер принятого.
По окончании - переход снова в режим команд (подробнее – [[#Обновление]]). | -| 03 | Показать содержимое SPIFFS | -| 04 | Запустить ОТА обновление с ранее записанным файлом SPIFFS: `/update.bin` | -| 05 | Показать версию прошивки (указана в дефолтах) | -| 06 | Показать MAC-адрес (без двоеточий, как в оригинале), уникальный, можно считать серийным номером | -| 07 | Безопасность (авторизация, в процессе, двойное рукопожатие) | -| 08 | Безопасность (авторизация, в процессе) | -| 09 | Сброс EEPROM (параметром - MAC без двоеточий, иначе не сбросится) | -| 10 | Подтверждение принятия сигнала COIN, иначе этот сигнал будет посылаться снова с периодичностью `200 мс` (сколько приняли койнов, столько и подтверждений быть должно) | -| 20X | Установить состояние выходов - всего выходов 8, давать их двоичное состояние.
_**Например**_, `203` - вывести 1 и 2 выходы по единичке, остальные - нолики. Соответственно, выход на разъеме будет "прижат" к земле. | -| 21XY | Установить состояние выхода номер Х в -> Y \[0,1,2(инверсия)\].
_**Примеры:**_
`2131` - Включить 3 по индексу выход
`2170` - Выключить 7 по индексу выход | -| 30X | Хоппер 1.
`301` - Включить мотор хоппера
`300` - Выключить мотор хоппера
`309` - Выдать приз (в авторежиме[^1]) | -| 40X | Хоппер 2.
Аналогично | -| 80X | Выбор программы адресных диодов.
Программа зависит от автомата и не может быть унифицирована. Именно для этого требуется обновление прошивки контроллера.
Кроме, пожалуй (считать тестовыми, остальное добавлять по вкусу):
- 0: Ничего не выводить в канал
- 1: Погасить (выводить нолики на всю длину)
- 2: Выводить ЛГБТ переливы
- 3: Выводить статичный белый | -| 81XY | Задать скважность PWM канала номер Х в -> Y (`0..99`; по умолчанию включен  на `PWM1` ) | -| 90 | Очистить очередь команд | -| 91 | Запрос состояния цифровых входов, их всего 24(+2 входа хоппера), ответ в двоичном коде.
Для уменьшения объема передаваемой информации, преобразуется в десятичное число
_**Примеры:**_
`INPUT67108863` (`11111111111111111111111111`) - все кнопки не нажаты
`INPUT67108861` (`11111111111111111111111101`) - нажата вторая кнопка | -| 91X | _Дополнительно_: задать время антидребезга платы (`10..100`; по умолчанию установлено на 50 мс)
_**Например**_, 9110 - Установить антидребезг на 10 мс | -| 92 | Запрос значения аналоговых входов **(отключает автовывод)** - ответ в формате `ADC0,0,0,0`.
Всего 4 аналоговых входа | -| 92X | Периодический автовывод значений аналоговых входов.
_**Например**_, `92100` - каждые 100 милисекунд выдавать значения ADC (`50..5000`) | -| 93 | Запрос `global_summa` (число коинов, нестираемо) | -| 99 | Запрос статуса | +| Команда | Назначение | +| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 00 | Перезагрузить контроллер (RESET) | +| 02 | Подготовиться к приему файла. освободить место, отформатировать встроенную файловую, проверить хватит ли места.
_**Например**_, `02356987` - заявка на файл обновления размером 356987 байт.
Выполняется около 15 секунд, после чего весь прием  данных в порту заносится в файл "update.bin".
Ответ при приеме файла - каждый блок (4096) - размер принятого.
По окончании - переход снова в режим команд (подробнее – [Обновление](#Обновление)). | +| 03 | Показать содержимое SPIFFS | +| 04 | Запустить ОТА обновление с ранее записанным файлом SPIFFS: `/update.bin` | +| 05 | Показать версию прошивки (указана в дефолтах) | +| 06 | Показать MAC-адрес (без двоеточий, как в оригинале), уникальный, можно считать серийным номером | +| 07 | Безопасность (авторизация, в процессе, двойное рукопожатие) | +| 08 | Безопасность (авторизация, в процессе) | +| 09 | Сброс EEPROM (параметром - MAC без двоеточий, иначе не сбросится) | +| 10 | Подтверждение принятия сигнала COIN, иначе этот сигнал будет посылаться снова с периодичностью `200 мс` (сколько приняли койнов, столько и подтверждений быть должно) | +| 20X | Установить состояние выходов - всего выходов 8, давать их двоичное состояние.
_**Например**_, `203` - вывести 1 и 2 выходы по единичке, остальные - нолики. Соответственно, выход на разъеме будет "прижат" к земле. | +| 21XY | Установить состояние выхода номер Х в -> Y \[0,1,2(инверсия)\].
_**Примеры:**_
`2131` - Включить 3 по индексу выход
`2170` - Выключить 7 по индексу выход | +| 30X | Хоппер 1.
`301` - Включить мотор хоппера
`300` - Выключить мотор хоппера
`309` - Выдать приз (в авторежиме[^1]) | +| 40X | Хоппер 2.
Аналогично | +| 80X | Выбор программы адресных диодов.
Программа зависит от автомата и не может быть унифицирована. Именно для этого требуется обновление прошивки контроллера.
Кроме, пожалуй (считать тестовыми, остальное добавлять по вкусу):
- 0: Ничего не выводить в канал
- 1: Погасить (выводить нолики на всю длину)
- 2: Выводить ЛГБТ переливы
- 3: Выводить статичный белый | +| 81XY | Задать скважность PWM канала номер Х в -> Y (`0..99`; по умолчанию включен  на `PWM1` ) | +| 90 | Очистить очередь команд | +| 91 | Запрос состояния цифровых входов, их всего 24(+2 входа хоппера), ответ в двоичном коде.
Для уменьшения объема передаваемой информации, преобразуется в десятичное число
_**Примеры:**_
`INPUT67108863` (`11111111111111111111111111`) - все кнопки не нажаты
`INPUT67108861` (`11111111111111111111111101`) - нажата вторая кнопка | +| 91X | _Дополнительно_: задать время антидребезга платы (`10..100`; по умолчанию установлено на 50 мс)
_**Например**_, 9110 - Установить антидребезг на 10 мс | +| 92 | Запрос значения аналоговых входов **(отключает автовывод)** - ответ в формате `ADC0,0,0,0`.
Всего 4 аналоговых входа | +| 92X | Периодический автовывод значений аналоговых входов.
_**Например**_, `92100` - каждые 100 милисекунд выдавать значения ADC (`50..5000`) | +| 93 | Запрос `global_summa` (число коинов, нестираемо) | +| 99 | Запрос статуса | [^1]: Авторежим: если датчик в закрытом состоянии - на полсекунды включить мотор, ждать сработки датчика либо таймаута. Если таймаут - выдать сообщение "HOPPER1 ERROR" и наглухо повесить процесс хоппера до перезагрузки. Иначе - сообщение "HOPPER1 OK"