Карта Modbus-регистров RGBW-диммеров
Регистры устройства
Прошивка 3.0
RO / RW | Read only / Read/Write |
Выделено жирным | Значение регистра по умолчанию |
xN | Множитель, на который надо умножить число из регистра, чтобы получить значение в единицах измерения.
Не указан — считать равным 1 |
⚡ | Регистр поддерживает отправку данных с помощью событий Быстрого Modbus. |
FW | Версия прошивки устройства, с которой появился регистр. Пусто — регистр был всегда. |
Error: | Значение при ошибке |
Серый цвет ячейки | Служебный регистр: назначение, формат и содержимое может измениться в новых версиях прошивки |
Адрес | Параметры регистра no_description | Канал | Описание | Значения | FW | |||
---|---|---|---|---|---|---|---|---|
Dec | Hex | Тип | Доступ | Формат | ||||
Состояние входов и счётчики нажатий | ||||||||
0 | 0x0000 | Discrete Input | RO | bool | Вход 1 | Состояние | 0 - неактивен 1 - активен Error: 0 |
|
1 | 0x0001 | Вход 2 | ||||||
2 | 0x0002 | Вход 3 | ||||||
3 | 0x0003 | Вход 4 | ||||||
32 | 0x0020 | Input | RO | u16 | Вход 1 | Счётчик замыканий | 0 − 65535 по кругу Error: 0 |
|
33 | 0x0021 | Вход 2 | ||||||
34 | 0x0022 | Вход 3 | ||||||
35 | 0x0023 | Вход 4 | ||||||
464 | 0x01D0 | Input | RO | u16 | Вход 1 | Счётчик короткого нажатия | 0 − 65535 по кругу Error: 0 |
|
465 | 0x01D1 | Вход 2 | ||||||
466 | 0x01D2 | Вход 3 | ||||||
467 | 0x01D3 | Вход 4 | ||||||
480 | 0x01E0 | Input | RO | u16 | Вход 1 | Счётчик долгого нажатия | 0 − 65535 по кругу Error: 0 |
|
481 | 0x01E1 | Вход 2 | ||||||
482 | 0x01E2 | Вход 3 | ||||||
483 | 0x01E3 | Вход 4 | ||||||
496 | 0x01F0 | Input | RO | u16 | Вход 1 | Счётчик двойного нажатия | 0 − 65535 по кругу Error: 0 |
|
497 | 0x01F1 | Вход 2 | ||||||
498 | 0x01F2 | Вход 3 | ||||||
499 | 0x01F3 | Вход 4 | ||||||
512 | 0x0200 | Input | RO | u16 | Вход 1 | Счётчик короткого, а затем долгого нажатия | 0 − 65535 по кругу Error: 0 |
|
513 | 0x0201 | Вход 2 | ||||||
514 | 0x0202 | Вход 3 | ||||||
515 | 0x0203 | Вход 4 | ||||||
Состояние выходов | ||||||||
0 | 0x0000 | Coil | RW | bool | Канал 1 | Состояние при независимой работе | 0 - выключен 1 - включён |
|
1 | 0x0001 | Канал 2 | ||||||
2 | 0x0002 | Канал 3 | ||||||
3 | 0x0003 | Coil | RW | bool | Канал 4 | Состояние при независимой работе или в режиме RGB+W | 0 - выключен 1 - включён |
|
4 | 0x0004 | Coil | RW | bool | Каналы 1 и 2 | Состояние при параллельной работе | 0 - выключен 1 - включён |
|
5 | 0x0005 | Каналы 3 и 4 | ||||||
6 | 0x0006 | Каналы 1, 2, 3, 4 | ||||||
7 | 0x0007 | Coil | RW | bool | Каналы 1 и 2 | Состояние каналов при работе с CCT лентой | 0 - выключен 1 - включён |
|
8 | 0x0008 | Каналы 3 и 4 | ||||||
9 | 0x0009 | Coil | RW | bool | Каналы 1, 2, 3 | Состояние каналов при работе с RGB лентой | 0 - выключен 1 - включён |
|
10 | 0x00010 | Coil | RW | bool | Каналы 1, 2, 3, 4 | Непрерывная смена цвета RGB ленты | 0 - выключен 1 - включён |
|
Управление каналами | ||||||||
2000 | 0x07D0 | Holding | RW | u16 | Канал 1 | Яркость при независимой работе | x1, % 0 - 100 (50) Error: 0xFFFF |
|
2001 | 0x07D1 | Канал 2 | ||||||
2002 | 0x07D2 | Канал 3 | ||||||
2003 | 0x07D3 | Holding | RW | u16 | Канал 4 | Яркость при независимой работе | x1, % 0 - 100 (50) Error: 0xFFFF |
|
2004 | 0x07D4 | Holding | RW | u16 | Каналы 1 и 2 | Яркость при параллельной работе | x1, % 0 - 100 (50) Error: 0xFFFF |
|
2005 | 0x07D5 | Каналы 3 и 4 | ||||||
2006 | 0x07D6 | Каналы 1, 2, 3, 4 | ||||||
2007 | 0x07D7 | Holding | RW | u16 | Каналы 1 и 2 | Цветовая температура CCT ленты | x1, % 0 - 100 (50) * 0 - тёплый цвет * 100 - холодный цвет Error: 0xFFFF |
|
2008 | 0x07D8 | Holding | RW | u16 | Каналы 1 и 2 | Яркость CCT ленты | x1, % 0 - 100 (50) Error: 0xFFFF |
|
2009 | 0x07D9 | Holding | RW | u16 | Каналы 3 и 4 | Цветовая температура CCT ленты | x1, % 0 - 100 (50) * 0 - тёплый цвет * 100 - холодный цвет Error: 0xFFFF |
|
2010 | 0x07DA | Holding | RW | u16 | Каналы 3 и 4 | Яркость CCT ленты | x1, % 0 - 100 (50) Error: 0xFFFF |
|
2011 | 0x07DB | Holding | RW | u16 | Компонент R | в цвете RGB ленты, RGB палитра | x1 0 - 255 (127) Error: 0xFFFF |
|
2012 | 0x07DC | Компонент G | ||||||
2013 | 0x07DD | Компонент B | ||||||
2014 | 0x07DE | Holding | RW | u16 | Компонент H | в цвете RGB ленты, HSV палитра | x1, градус 0 - 360 Error: 0xFFFF |
|
2015 | 0x07DF | Компонент S | x1, % 0 - 100 Error: 0xFFFF | |||||
2016 | 0x07E0 | Компонент V | x1, % 0 - 100 (50) Error: 0xFFFF | |||||
2017 | 0x07E1 | Holding | RW | u16 | Скорость непрерывного изменения цвета RGB ленты, период увеличения Hue на 1 градус | x1, миллисекунды 3 - 10000 (30) Error: 0xFFFF |
||
Настройка выходов и прямое управление ШИМ выходов | ||||||||
70 | 0x0046 | Holding | RW | u16 | Канал 1 | Минимальный ШИМ | 0 – 2048 (6) | |
71 | 0x0047 | Канал 2 | ||||||
72 | 0x0048 | Канал 3 | ||||||
73 | 0x0049 | Канал 4 | ||||||
80 | 0x0050 | Holding | RW | u16 | Канал 1 | Максимальный ШИМ | 0 – 2048 | |
81 | 0x0051 | Канал 2 | ||||||
82 | 0x0052 | Канал 3 | ||||||
83 | 0x0053 | Канал 4 | ||||||
90 | 0x005A | Holding | RW | u16 | Канал 1 | Прямое управление | 0 – 2048 | |
91 | 0x005B | Канал 2 | ||||||
92 | 0x005C | Канал 3 | ||||||
93 | 0x005D | Канал 4 | ||||||
Обработка типов нажатий | ||||||||
1100 | 0x044C | Holding | RW | u16 | Вход 1 | Время удержания входа в замкнутом состоянии для фиксации долгого нажатия | x1, миллисекунды 500 – 5000 (2000) |
|
1101 | 0x044D | Вход 2 | ||||||
1102 | 0x044E | Вход 3 | ||||||
1103 | 0x044F | Вход 4 | ||||||
1120 | 0x0460 | Holding | RW | u16 | Вход 1 | Скорость изменения параметра при удержании кнопки | x1, миллисекунды/ед. 5 – 500 (20) |
|
1121 | 0x0461 | Вход 2 | ||||||
1122 | 0x0462 | Вход 3 | ||||||
1123 | 0x0463 | Вход 4 | ||||||
1140 | 0x0474 | Holding | RW | u16 | Вход 1 | Время двойного нажатия | x1, миллисекунды 100 – 2000 (500) |
|
1141 | 0x0475 | Вход 2 | ||||||
1142 | 0x0476 | Вход 3 | ||||||
1143 | 0x0477 | Вход 4 | ||||||
1160 | 0x0488 | Holding | RW | u16 | Вход 1 | Время подавления дребезга | x1, миллисекунды 5 – 200 (50) |
|
1161 | 0x0489 | Вход 2 | ||||||
1162 | 0x048A | Вход 3 | ||||||
1163 | 0x048B | Вход 4 | ||||||
Время изменения яркости, цветовой температуры и насыщенности цвета | ||||||||
3000 | 0x0BB8 | Holding | RW | u16 | Канал 1 | Время увеличения яркости при независимой работе | x1, миллисекунды 0 – 30000 (100) |
|
3001 | 0x0BB9 | Канал 2 | ||||||
3002 | 0x0BBA | Канал 3 | ||||||
3003 | 0x0BBB | Канал 4 | ||||||
3004 | 0x0BBС | Holding | RW | u16 | Каналы 1 и 2 | Время увеличения яркости при параллельной работе | x1, миллисекунды 0 – 30000 (100) |
|
3005 | 0x0BBD | Каналы 3 и 4 | ||||||
3006 | 0x0BBE | Каналы 1, 2, 3, 4 | ||||||
3007 | 0x0BBF | Holding | RW | u16 | Каналы 1 и 2 | Время увеличения цветовой температуры CCT ленты | x1, миллисекунды 0 – 30000 (100) |
|
3008 | 0x0BC0 | Holding | RW | u16 | Каналы 1 и 2 | Время увеличения яркости CCT ленты | x1, миллисекунды 0 – 30000 (100) |
|
3009 | 0x0BC1 | Holding | RW | u16 | Каналы 3 и 4 | Время увеличения цветовой температуры CCT ленты | x1, миллисекунды 0 – 30000 (100) |
|
3010 | 0x0BC2 | Holding | RW | u16 | Каналы 3 и 4 | Время увеличения яркости CCT ленты | x1, миллисекунды 0 – 30000 (100) |
|
3011 | 0x0BC3 | Holding | RW | u16 | HSV-H | Время увеличения цвета RGB ленты | x1, миллисекунды 0 – 30000 (100) |
|
3012 | 0x0BC3 | Holding | RW | u16 | HSV-S | Время увеличения насыщенности цвета RGB ленты | x1, миллисекунды 0 – 30000 (100) |
|
3013 | 0x0BC3 | Holding | RW | u16 | HSV-V | Время увеличения яркости RGB ленты | x1, миллисекунды 0 – 30000 (100) |
|
3100 | 0x0C1C | Holding | RW | u16 | Канал 1 | Время уменьшения яркости при независимой работе | x1, миллисекунды 0 – 30000 (100) |
|
3101 | 0x0BB9 | Канал 2 | ||||||
3102 | 0x0BBA | Канал 3 | ||||||
3103 | 0x0BBB | Канал 4 | ||||||
3104 | 0x0C20 | Holding | RW | u16 | Каналы 1 и 2 | Время уменьшения яркости при параллельной работе | x1, миллисекунды 0 – 30000 (100) |
|
3105 | 0x0BBD | Каналы 3 и 4 | ||||||
3106 | 0x0BBE | Каналы 1, 2, 3, 4 | ||||||
3107 | 0x0C23 | Holding | RW | u16 | Каналы 1 и 2 | Время уменьшения цветовой температуры CCT ленты | x1, миллисекунды 0 – 30000 (100) |
|
3108 | 0x0C24 | Holding | RW | u16 | Каналы 1 и 2 | Время уменьшения яркости CCT ленты | x1, миллисекунды 0 – 30000 (100) |
|
3109 | 0x0C25 | Holding | RW | u16 | Каналы 3 и 4 | Время уменьшения цветовой температуры CCT ленты | x1, миллисекунды 0 – 30000 (100) |
|
3110 | 0x0C26 | Holding | RW | u16 | Каналы 3 и 4 | Время уменьшения яркости CCT ленты | x1, миллисекунды 0 – 30000 (100) |
|
3111 | 0x0C27 | Holding | RW | u16 | HSV-H | Время уменьшения цвета RGB ленты | x1, миллисекунды 0 – 30000 (100) |
|
3112 | 0x0C28 | Holding | RW | u16 | HSV-S | Время уменьшения насыщенности цвета RGB ленты | x1, миллисекунды 0 – 30000 (100) |
|
3113 | 0x0C29 | Holding | RW | u16 | HSV-V | Время уменьшения яркости RGB ленты | x1, миллисекунды 0 – 30000 (100) |
|
Общие для всех режимов настройки | ||||||||
9 | 0x0009 | Holding | RW | u16 | Настройка частоты ШИМ выходов | x1 1 – 240 (8) F = 24 kHz / value |
||
4000 | 0x0FA0 | Holding | RW | u16 | Настройка режима работы диммера | Код режима можно взять в таблице режимов работы 256 |
RO / RW | Read only / Read/Write |
Выделено жирным | Значение регистра по умолчанию |
xN | Множитель, на который надо умножить число из регистра, чтобы получить значение в единицах измерения.
Не указан — считать равным 1 |
⚡ | Регистр поддерживает отправку данных с помощью событий Быстрого Modbus. |
FW | Версия прошивки устройства, с которой появился регистр. Пусто — регистр был всегда. |
Error: | Значение при ошибке |
Серый цвет ячейки | Служебный регистр: назначение, формат и содержимое может измениться в новых версиях прошивки |
Адрес | Параметры регистра no_description | Канал | Описание | Значения | FW | |||
---|---|---|---|---|---|---|---|---|
Dec | Hex | Тип | Доступ | Формат | ||||
1000 | 0x03E8 | Holding | RW | u16 | Вход 1 | Действие при коротком нажатии | Смотрите формулу расчёта ниже 0 |
|
1001 | 0x03E9 | Вход 2 | ||||||
1002 | 0x03EA | Вход 3 | ||||||
1003 | 0x03EB | Вход 4 | ||||||
1020 | 0x03FC | Holding | RW | u16 | Вход 1 | Действие при долгом нажатии | Смотрите формулу расчёта ниже 0 |
|
1021 | 0x03FD | Вход 2 | ||||||
1022 | 0x03FE | Вход 3 | ||||||
1023 | 0x03FF | Вход 4 | ||||||
1040 | 0x0410 | Holding | RW | u16 | Вход 1 | Действие при двойном нажатии | Смотрите формулу расчёта ниже 0 |
|
1041 | 0x0411 | Вход 2 | ||||||
1042 | 0x0412 | Вход 3 | ||||||
1043 | 0x0413 | Вход 4 | ||||||
1060 | 0x0424 | Holding | RW | u16 | Вход 1 | Действие при коротком, а затем долгом нажатии | Смотрите формулу расчёта ниже 0 |
|
1061 | 0x0425 | Вход 2 | ||||||
1062 | 0x0426 | Вход 3 | ||||||
1063 | 0x0427 | Вход 4 |
Для настройки действий для типа нажатия нужно в соответствующий регистр записать число, составленное по следующему правилу:
0000 0000 0000 0000
Старшие 4 бита - тип действия:
- 0 - нет действия
- 0b0001 - установить coil регистр в 0
- 0b0010 - установить coil регистр в 1
- 0b0011 - переключить coil регистр 0 <-> 1
- 0b1001 - увеличить значение в holding регистре (уменьшается на 1 за каждое событие от кнопки)
- 0b1010 - уменьшить значение в holding регистре (увеличивается на 1 за каждое событие от кнопки)
- 0b1011 - уменьшить/увеличить значение в holding регистре. Направление меняется при каждом новом нажатии.
0000 0000 0000 0000
Младшие 12 бит - номер регистра без базового адреса. То есть для coil регистров адреса начинаются с нуля, и номер регистра совпадает с его адресом. Для регистров данных - адреса начинаются с 2000 - это базовый адрес. Из адреса holding регистра нужно вычесть 2000 и это значение (от 0 до 17) поместить в младшие 12 бит.
Value = (action << 12) | reg_number
Кнопки меняют значения modbus-регистров. Могут быть изменены значения только coil регистров включения (coil 0-10) и holding регистров данных (2000-2017).
Новый формат версионирования прошивок
Изменения относительно старого формата:
- Диапазон регистров «Модель устройства» расширен до 20 регистров
- Версия формируется согласно semver и имеет формат
MAJOR.MINOR.PATCH
с опциональным суффиксом(-rc|+wb)SUFFIX
- Суффикс
-rc
означает, что прошивка предназначена для тестирования и может быть нестабильной. Хранится в регистре с отрицательным знаком - Суффикс
+wb
добавляется, когда к прошивке, зафиксированной в релизе, требуется выпустить фикс. Хранится в регистре с положительным знаком
- Суффикс
- Цифры версии доступны по отдельности в формате u16 (для суффикса - i16), регистры 320-323
- Доступно число u32, содержащее комбинацию цифр версии и позволяющее за одно сравнение понять, увеличилась или уменьшилась версия прошивки
- Число рассчитывается по формуле:
if (SUFFIX >= 0) { SUFFIX = SUFFIX + 128; } else { SUFFIX = -1 - SUFFIX; } VERSION = (MAJOR << 24) + (MINOR << 16) + (PATCH << 8) + SUFFIX;
- Число доступно для чтения в little-endian и big-endian форматах
- Число для более свежей версии всегда будет больше, чем для предыдущей, в том числе, когда прошивка переходит из тестовой в стабильную
- Таким образом обеспечивается корректное сравнение версий:
1.2.3-rc1 < 1.2.3-rc10 < 1.2.3 < 1.2.3+wb1 < 1.2.3+wb10
RO / RW | Read only / Read/Write |
Выделено жирным | Значение регистра по умолчанию |
xN | Множитель, на который надо умножить число из регистра, чтобы получить значение в единицах измерения.
Не указан — считать равным 1 |
⚡ | Регистр поддерживает отправку данных с помощью событий Быстрого Modbus. |
FW | Версия прошивки устройства, с которой появился регистр. Пусто — регистр был всегда. |
Error: | Значение при ошибке |
Серый цвет ячейки | Служебный регистр: назначение, формат и содержимое может измениться в новых версиях прошивки |
Адрес | Параметры регистра | Описание | Значения | FW | |||
---|---|---|---|---|---|---|---|
Dec | Hex | Тип | Доступ | Формат | |||
200-219 | 0x00C8 - 0x00DB | Input | RO | string | Модель устройства | 3.0.0 | |
320 | 0x0140 | Input | RO | u16 | Версия прошивки в числовом формате | MAJOR | |
321 | 0x0141 | MINOR | |||||
322 | 0x0142 | PATCH | |||||
323 | 0x0143 | SUFFIX | |||||
324-325 | 0x0144 - 0x0145 | Input | RO | u32 | Версия прошивки в числовом формате | ||
326-327 | 0x0146 - 0x0147 | Input | RO | u32 | Версия прошивки в Big Endian формате |
Прошивка 1.0
Устаревшая версия прошивки.
Регистр / адрес | тип | чтение/запись | значение по умолчанию | формат | назначение | Примечание |
---|---|---|---|---|---|---|
0 | holding | RW | - | 0-255 | Уровень канала G, логарифмическая кривая | |
1 | holding | RW | - | 0-255 | Уровень канала R, логарифмическая кривая | |
2 | holding | RW | - | 0-255 | Уровень канала B, логарифмическая кривая | |
3 | holding | RW | - | 0-255 | Уровень канала W, логарифмическая кривая | WB-MRGBW-D |
5 | holding | RW | 0 | 0: стандартный режим, 1: отключить управление | режим работы кнопок | |
6 | input | R | 1 - нажата, 0 - отпущена | состояние кнопки 1 | ||
7 | input | R | 1 - нажата, 0 - отпущена | состояние кнопки 2 | ||
8 | input | R | 1 - нажата, 0 - отпущена | состояние кнопки 3 (WB-MRGBW-D) | ||
9 | holding | RW | 0 | 0 - 239 | частота ШИМ * freq = 24 кГц / (value + 1)
|
|
13 | holding | RW | 100 | x 10ms (2 - 500) | Время плавного изменения яркости во время включения и выключения | |
32 | input | R | 0 | 0 - 65535 и дальше снова 0 | количество нажатий кнопки 1 | с версии 1.1.1 |
33 | input | R | 0 | 0 - 65535 и дальше снова 0 | количество нажатий кнопки 2 | с версии 1.1.1 |
34 | input | R | 0 | 0 - 65535 и дальше снова 0 | количество нажатий кнопки 3 | с версии 1.1.1 |
* Для регистра 9 приведена формула расчёта частоты. Значение регистра считается так: value=24кГц/freq−1, где freq — нужная частота. По умолчанию в регистр записано 0 — это 24 кГц: 24/24−1=0 В регистр пишется только целое число, возможные значения: 0 - 24 кГц 1 - 12 кГц 2 - 8 кГц 3 - 6 кГц 4 - 5.4 кГц 5 - 4 кГц
Адрес | Параметры регистра | Описание | Значения | |||
---|---|---|---|---|---|---|
Dec | Hex | Тип | Доступ | Формат | ||
104-105 | 0x0068 - 0x0069 | Input | RO | u32 | Время работы с момента загрузки | секунды |
121 | 0x0079 | Input | RO | u16 | Текущее напряжение питания | мВ |
110 | 0x006E | Holding | RW | u16 | Скорость порта RS-485. Настройка параметров подключения по RS-485 |
x100, Боды 12 — 1200 бит/с, 24 — 2400 бит/с, 48 — 4800 бит/с, 96 — 9600 бит/с, 192 — 19 200 бит/с, 384 — 38 400 бит/с, 576 — 57 600 бит/с, 1152 — 115 200 Кбит/с |
111 | 0x006F | Holding | RW | u16 | Настройка бита чётности порта RS-485 | 0 — нет бита чётности (none), 1 — нечётный, 2 — чётный |
112 | 0x0070 | Holding | RW | u16 | Количество стоп-битов порта RS-485 | 1, 2 |
113 | 0x0071 | Holding | RW | u16 | Время перед отправкой ответа на modbus запрос | 0 - 254 мс |
114 | 0x0072 | Holding | RW | u16 | Режим непрерывного чтения регистров с зазором | 0 - отключен 1 - включен 2 - включение сохраняется после перезагрузки |
128 | 0x0080 | Holding | RW | u16 | Modbus-адрес устройства (подробнее) | |
120 | 0x0078 | Holding | RW | u16 | Перезагрузка устройства без сохранения состояния | любое, отличное от 0 перезагружает устройство |
129 | 0x0081 | Holding | RW | u16 | Перевод в режим обновления прошивки на 2 минуты | любое, отличное от 0 переводит устройство в режим обновления прошивки |
130 | 0x0082 | Holding | RW | u8 | Отключение индикатора состояния | 0 - активен, 1 - отключен |
123 | 0x007B | Input | RO | u16 | Напряжение на микроконтроллере | мВ |
124 | 0x007C | Input | RO | u16 | Внутренняя температура микроконтроллера | x0.1, °C |
200-205 | 0x00C8 - 0x00CD | Input | RO | string | Модель устройства | |
206-219 | 0x00CE - 0x00DB | Input | RO | string | Расширение модели устройства. Для новых устройств WB-LED и WB-MAI6 поле поддерживается изначально, для остальных - в прошивках с "быстрым Modbus". Для чтения модели устройства нужно читать диапазон из 20 регистров (200 - 219). Если устройство возвращает ошибку Illegal Data Address - читать 6 регистров (200 - 205). | |
220-248 | 0x00DC - 0x00F8 | Input | RO | string | Хэш коммита и название ветки откуда собрана прошивка (2 символа в регистре) | |
250-265 | 0x00FA - 0x0109 | Input | RO | string | Версия прошивки | |
266-269 | 0x010A - 0x010D | Input | RO | u64 | Расширение серийного номера | |
270-271 | 0x010E - 0x010F | Input | RO | u32 | Серийный номер | |
290-301 | 0x0122 - 0x012D | Holding | RO | string | Сигнатура прошивки | |
330-336 | 0x014A - 0x0150 | Holding | RO | string | Версия загрузчика |
Версия прошивки в устройствах с «Быстрым Modbus»
В устройствах, поддерживающих Быстрый Modbus, используется другой формат обозначения версии прошивки.
- Диапазон регистров «Модель устройства» расширен до 20 регистров.
- Версия формируется согласно semver и имеет формат
MAJOR.MINOR.PATCH
с опциональным суффиксом(-rc|+wb)SUFFIX
:- суффикс
-rc
означает, что прошивка предназначена для тестирования и может быть нестабильной. Хранится в регистре с отрицательным знаком; - суффикс
+wb
добавляется, когда к прошивке, зафиксированной в релизе, требуется выпустить фикс. Хранится в регистре с положительным знаком.
- суффикс
- Цифры версии доступны по отдельности в формате u16 (для суффикса - s16), регистры 320-323.
- Доступно число u32, содержащее комбинацию цифр версии и позволяющее за одно сравнение понять, увеличилась или уменьшилась версия прошивки:
- число рассчитывается по формуле
if (SUFFIX >= 0) { SUFFIX = SUFFIX + 128; } else { SUFFIX = -1 - SUFFIX; } VERSION = (MAJOR << 24) + (MINOR << 16) + (PATCH << 8) + SUFFIX;
- число доступно для чтения в little-endian и big-endian форматах;
- число для более свежей версии всегда будет больше, чем для предыдущей, в том числе, когда прошивка переходит из тестовой в стабильную.
- Таким образом обеспечивается корректное сравнение версий:
1.2.3-rc1 < 1.2.3-rc10 < 1.2.3 < 1.2.3+wb1 < 1.2.3+wb10.
Адрес | Параметры регистра | Описание | Значения | |||
---|---|---|---|---|---|---|
Dec | Hex | Тип | Доступ | Формат | ||
200-219 | 0x00C8 - 0x00DB | Input | RO | string | Модель устройства | |
320 | 0x0140 | Input | RO | u16 | Версия прошивки в числовом формате | MAJOR |
321 | 0x0141 | MINOR | ||||
322 | 0x0142 | PATCH | ||||
323 | 0x0143 | s16 | SUFFIX | |||
324-325 | 0x0144 - 0x0145 | Input | RO | u32 | Версия прошивки в числовом формате | |
326-327 | 0x0146 - 0x0147 | Input | RO | u32 | Версия прошивки в Big Endian формате |