Wbincludes:Modbus-hw-version: различия между версиями

Материал из Wiren Board
 
(не показаны 4 промежуточные версии 2 участников)
Строка 1: Строка 1:
{{Wbincludes:Header Registers Universal|fw=true|no_description=true|header=Регистры для хранения версии прошивки в устройствах с быстрым Modbus}}
== Версия прошивки в устройствах с «Быстрым Modbus»==
В устройствах, поддерживающих [[Modbus#fast-modbus |Быстрый Modbus]], используется другой формат обозначения версии прошивки.
* Диапазон регистров «Модель устройства» расширен до 20 регистров.
* Версия формируется согласно semver и имеет формат <code>MAJOR.MINOR.PATCH</code> с опциональным суффиксом <code>(-rc|+wb)SUFFIX</code>:
*: суффикс <code>-rc</code> означает, что прошивка предназначена для тестирования и может быть нестабильной. Хранится в регистре с отрицательным знаком;
*: суффикс <code>+wb</code> добавляется, когда к прошивке, зафиксированной в релизе, требуется выпустить фикс. Хранится в регистре с положительным знаком.
* Цифры версии доступны по отдельности в формате u16 (для суффикса - s16), регистры 320-323.
* Доступно число u32, содержащее комбинацию цифр версии и позволяющее за одно сравнение понять, увеличилась или уменьшилась версия прошивки:
*: число рассчитывается по формуле
*: <syntaxhighlight>
if (SUFFIX >= 0) {
    SUFFIX = SUFFIX + 128;
} else {
    SUFFIX = -1 - SUFFIX;
}
VERSION = (MAJOR << 24) + (MINOR << 16) + (PATCH << 8) + SUFFIX;
</syntaxhighlight>
*: число доступно для чтения в little-endian и big-endian форматах;
*: число для более свежей версии всегда будет больше, чем для предыдущей, в том числе, когда прошивка переходит из тестовой в стабильную.
*: Таким образом обеспечивается корректное сравнение версий:
*:<syntaxhighlight lang="js">
1.2.3-rc1 < 1.2.3-rc10 < 1.2.3 < 1.2.3+wb1 < 1.2.3+wb10.
</syntaxhighlight>
 
{{Wbincludes:Header Registers Universal|no_description=true|header=Регистры для хранения версии прошивки в устройствах с быстрым Modbus}}
|-
|-
| class ="text-right" | 200-219
| class ="text-right" | 200-219
Строка 7: Строка 31:
| string  
| string  
| Модель устройства
| Модель устройства
|  
|
| rowspan="7" | 3.0.0
|-
|-
| class ="text-right" | 320
| class ="text-right" | 320
Строка 14: Строка 37:
| rowspan="4" | Input
| rowspan="4" | Input
| rowspan="4" | RO
| rowspan="4" | RO
| rowspan="4" | u16   
| rowspan="3" | u16   
| rowspan="4" | Версия прошивки в числовом формате
| rowspan="4" | Версия прошивки в числовом формате
| MAJOR  
| MAJOR  
Строка 28: Строка 51:
| class ="text-right" | 323
| class ="text-right" | 323
| 0x0143
| 0x0143
| s16
| SUFFIX  
| SUFFIX  
|-
|-

Текущая версия на 11:06, 15 февраля 2023

Версия прошивки в устройствах с «Быстрым 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.
    


Регистры для хранения версии прошивки в устройствах с быстрым Modbus
Адрес Параметры регистра Описание Значения
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 формате