Формат данных для MQTT: различия между версиями
Перейти к навигации
Перейти к поиску
Нет описания правки |
Нет описания правки |
||
| (не показаны 2 промежуточные версии этого же участника) | |||
| Строка 1: | Строка 1: | ||
=== Фиксированный заголовок ( | === Фиксированный заголовок (1 байта) === | ||
Биты: | Биты: | ||
0-2 - версия | 0-2 - версия | ||
3-5 - формат данных ( | 3-5 - формат данных (0 - binary, 1 - json) | ||
6- | 6-7 - резерв | ||
=== '''Binary формат''' === | |||
==== Заголовок бинарного формата (1 байт) ==== | |||
0-3 - тип данных | |||
{| class="wikitable" | {| class="wikitable" | ||
|+ | |+ | ||
| Строка 66: | Строка 71: | ||
|} | |} | ||
4 - массив (не поддерживается для типов данных null и string) | |||
5-6 - тип метрики (0 - не определено, 1 - счетчик (только растет), 2 - замер (может увеличиваться и уменьшаться)) | |||
7 - наличие метки времени | |||
==== Метка времени - опционально (8 байт) ==== | |||
В наносекундах | |||
==== Полезная нагрузка ==== | |||
Используется little endian. | |||
=== '''JSON формат''' === | |||
<syntaxhighlight lang="js"> | |||
{ | |||
"t":"2025-03-28T05:29:11.481Z", // время | |||
"v": 42.13, // значение | |||
"m": 2 // тип метрики (опционально) | |||
} | |||
</syntaxhighlight> | |||
Текущая версия от 08:09, 28 марта 2025
Фиксированный заголовок (1 байта)
[править | править код]Биты:
0-2 - версия
3-5 - формат данных (0 - binary, 1 - json)
6-7 - резерв
Binary формат
[править | править код]Заголовок бинарного формата (1 байт)
[править | править код]0-3 - тип данных
| ID | Тип | Реализация |
|---|---|---|
| 0 | null | |
| 1 | bool | byte |
| 2 | float64 | |
| 3 | int8 | |
| 4 | uint8 | |
| 5 | int16 | |
| 6 | uint16 | |
| 7 | int32 | |
| 8 | uint32 | |
| 9 | int64 | |
| 10 | uint64 | |
| 11 | string | utf-8 |
| 12 | blob | binary |
4 - массив (не поддерживается для типов данных null и string)
5-6 - тип метрики (0 - не определено, 1 - счетчик (только растет), 2 - замер (может увеличиваться и уменьшаться))
7 - наличие метки времени
Метка времени - опционально (8 байт)
[править | править код]В наносекундах
Полезная нагрузка
[править | править код]Используется little endian.
JSON формат
[править | править код]{
"t":"2025-03-28T05:29:11.481Z", // время
"v": 42.13, // значение
"m": 2 // тип метрики (опционально)
}