Wbincludes:Modbus-hw-version: различия между версиями
Matveevrj (обсуждение | вклад) |
|||
(не показаны 4 промежуточные версии 2 участников) | |||
Строка 1: | Строка 1: | ||
{{Wbincludes:Header Registers Universal | == Версия прошивки в устройствах с «Быстрым 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 | ||
| Модель устройства | | Модель устройства | ||
| | | | ||
|- | |- | ||
| class ="text-right" | 320 | | class ="text-right" | 320 | ||
Строка 14: | Строка 37: | ||
| rowspan="4" | Input | | rowspan="4" | Input | ||
| rowspan="4" | RO | | rowspan="4" | RO | ||
| rowspan=" | | 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.
Адрес | Параметры регистра | Описание | Значения | |||
---|---|---|---|---|---|---|
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 формате |