Подсветка¶
Режим подсветки передаётся одним 64-байтным payload'ом в обычной транзакции.
Байт [0] задаёт режим, байты [1..3] — цвет, [9] — яркость, [10] — скорость, [11] — направление анимации.
Формат payload¶
| Байт | Назначение | Значения |
|---|---|---|
[0] |
режим | 0x01–0x13 — режимы 1–19, 0x80 — таблица раскраски, 0x00 — выкл |
[1..3] |
цвет R G B | 0x00–0xff; прошивка умножает цвет на яркость |
[4..7] |
не используются | 0x00 |
[8] |
моно/спектр | 0x00 — цвет из [1..3], 0x01 — спектр |
[9] |
яркость | 0x01–0x0f |
[10] |
скорость | 0x01–0x0f; для static всегда 0x0a |
[11] |
направление | 0x00–0x03, зависит от режима |
[12..13] |
не используются | 0x00 |
[14..15] |
признак payload | aa 55 |
[16..63] |
не используются | 0x00 |
Максимум канала в живом кадре — 0xee (238), а не 0xff: прошивка умножает цвет на яркость показа.
При яркости 15 канал доходит до ee, при яркости 1 — до 0f.
Неиспользуемые байты [4..7], [12..13] и [16..63] вендор всегда отправляет нулями.
Перебор значений в них на анимацию не влиял.
Моно и спектр¶
Байт [8] переключает режим отображения.
| Значение | Поведение |
|---|---|
0x00 |
режим рисует цвет из байтов [1..3] |
0x01 |
режим рисует спектр; у static это круговой градиент |
Проверено живым кадром для всех 19 режимов. Исключения:
flowerиspectrumрисуют спектр при любом значении;breathingпри0x00дышит заданным цветом.
Вендорский дефолт: 0x00 для режимов 1 и 4, 0x01 для остальных.
Поэтому для одноцветного дыхания или водопада нужен --no-spectrum.
У fade, star, waterfall и прочих режимов цвет тоже работает только при [8]=00.
Направление¶
Байт [11] понимают только режимы с направлением.
Значения делятся на две группы: 00 и 03 дают одно направление, 01 и 02 — обратное.
Для остальных режимов вендор всегда шлёт 00.
| Режим | 00 / 03 |
01 / 02 |
Вендор | CLI |
|---|---|---|---|---|
| 10 waterfall | вниз | вверх | 03 / 02 |
down=03, up=02 |
| 11 flow | вправо | влево | — | right=00, left=01 |
| 12 rotate | против часовой | по часовой | — | right=00, left=01 |
16 marquee (0x10) |
вправо | влево | 00 / 01 |
right=00, left=01 |
| 18 wind | вправо (и 01) |
влево — только 02 |
— | right=00, left=02 |
У waterfall и rotate спектральные варианты направление игнорируют: анимация одинакова при любом [11].
У flow и marquee направление работает и в моно, и в спектре.
У wind группы другие: 00, 01 и 03 дают ветер вправо, а влево он дует только при 02.
Наклон полос при 02 не зеркалится — нижние ряды по-прежнему правее, — а период чуть длиннее: 0,83 с против 0,70 с на скорости 2.
CLI при --direction для спектральных waterfall и rotate печатает предупреждение, а приложение блокирует кнопки направления.
Режимы¶
| № | Алиас | Режим | Цвет | Дополнительно |
|---|---|---|---|---|
| 1 | static |
Постоянный свет | моно/спектр | яркость |
| 2 | keypress |
Подсветка нажатых | моно/спектр | яркость, скорость |
| 3 | fade |
Затухание нажатых | моно/спектр | яркость, скорость |
| 4 | star |
Звёздный | моно/спектр | яркость, скорость |
| 5 | snow |
Снежный | моно/спектр | яркость, скорость |
| 6 | flower |
Цветочный | спектр | яркость, скорость |
| 7 | breathing |
Дыхание | моно/спектр | яркость, скорость |
| 8 | spectrum |
Полный спектр | спектр | яркость, скорость |
| 9 | ripple |
Круги | моно/спектр | яркость, скорость |
| 10 | waterfall |
Водопад | моно/спектр | яркость, скорость, ↑/↓ |
| 11 | flow |
Течение | моно/спектр | яркость, скорость, ←/→ |
| 12 | rotate |
Вращение | моно/спектр | яркость, скорость, ↻/↺ |
| 13 | horizontal |
Горизонталь | моно/спектр | яркость, скорость |
| 14 | vertical |
Вертикаль | моно/спектр | яркость, скорость |
| 15 | splash |
Рябь по воде | моно/спектр | яркость, скорость |
| 16 | marquee |
Бегущая строка | моно/спектр | яркость, скорость, ←/→ |
| 17 | mountains |
Горы | моно/спектр | яркость, скорость |
| 18 | wind |
Ветер | моно/спектр | яркость, скорость, ←/→ |
| 19 | shuttle |
Шаттл | моно/спектр | яркость, скорость |
| — | off |
Выключена | — | — |
Номер режима — это байт [0] payload'а.
Алиасы определены в katana.py (MODES) и принимаются командами mode и scan.
Выключение и сброс¶
off— payload из нулей и признакаaa55;default— вендорский payload режима0x80с пустой таблицей;0x80— отображение таблицы раскраски, записанной каналом04 23.
У static слайдер скорости в вендорской утилите неактивен: прошивке всегда уходит 0x0a.
Если задать другое значение явно, CLI печатает предупреждение и всё равно отправляет 0x0a.
Как эти команды выглядят в CLI, описано в разделе Режимы подсветки и в справке команд.