WB Dimmers Modbus Registers Map: различия между версиями

Строка 1093: Строка 1093:
Изменения относительно старого формата:
Изменения относительно старого формата:
* Диапазон регистров «Модель устройства» расширен до 20 регистров
* Диапазон регистров «Модель устройства» расширен до 20 регистров
* Версия формируется согласно semver и имеет формат <code>MAJOR.MINOR.PATCH</code> с опциональным суффиксом <code>-rcRC</code> для тестовых прошивок.
* Версия формируется согласно semver и имеет формат <code>MAJOR.MINOR.PATCH</code> с опциональным суффиксом <code>(-rc|+wb)SUFFIX</code>
*: Если <code>RC</code> часть равна нулю (отсутствует суффикс -rc в строке с версией), то прошивка считается стабильной.
*: Суффикс <code>-rc</code> означает, что прошивка предназначена для тестирования и может быть нестабильной. Хранится в регистре с отрицательным знаком
* Цифры версии доступны по отдельности в формате u16 (регистры 320-323)
*: Суффикс <code>+wb</code> добавляется, когда к прошивке, зафиксированной в релизе, требуется выпустить фикс. Хранится в регистре с положительным знаком
* Цифры версии доступны по отдельности в формате u16 (для суффикса - i16), регистры 320-323
* Доступно число u32, содержащее комбинацию цифр версии и позволяющее за одно сравнение понять, увеличилась или уменьшилась версия прошивки
* Доступно число u32, содержащее комбинацию цифр версии и позволяющее за одно сравнение понять, увеличилась или уменьшилась версия прошивки
*: Формат числа: <code>MAJOR.MINOR.PATCH.(RC - 1)</code>, по 8 бит на цифру
*: Число рассчитывается по формуле:
*: Формула: <code>(MAJOR << 24) + (MINOR << 16) + (PATCH << 8) + ((RC - 1) % 256)</code>
*: <syntaxhighlight>
if (SUFFIX >= 0) {
    SUFFIX = SUFFIX + 128;
} else {
    SUFFIX = -1 - SUFFIX;
}
VERSION = (MAJOR << 24) + (MINOR << 16) + (PATCH << 8) + SUFFIX;
</syntaxhighlight>
*: Число доступно для чтения в little-endian и big-endian форматах
*: Число доступно для чтения в little-endian и big-endian форматах
*: Число для более свежей версии всегда будет больше, чем для предыдущей, в том числе, когда прошивка переходит из тестовой в стабильную: <code>1.2.3 > 1.2.3-rc4</code>.
*: Число для более свежей версии всегда будет больше, чем для предыдущей, в том числе, когда прошивка переходит из тестовой в стабильную
*: Примеры:<code>1.2.3 = 1.2.3.255 = 16909311</code>, <code>1.2.3-rc5 = 1.2.3.4 = 16909060</code>
*: Таким образом обеспечивается корректное сравнение версий: <code>1.2.3-rc1 < 1.2.3-rc10 < 1.2.3 < 1.2.3+wb1 < 1.2.3+wb10</code>


{{Wbincludes:Header Registers}}
{{Wbincludes:Header Registers}}
Строка 1149: Строка 1157:
|  
|  
|  
|  
| RC
| SUFFIX
|  
|  
|  
|  
wb_editors
353

правки