Формат данных для MQTT: различия между версиями
Перейти к навигации
Перейти к поиску
Новая страница: « === Формат Payload === ==== Бинарный формат (например, struct) ==== '''Формат: Фиксированная структура байтов.''' * 2 байта - битовый описатель. 0-2 версия 3-5 - формат данных (00 - binary, 01 - json) для данного пакета 00 6 бит - наличие времени 7-10 бит – int/float/string (null/bool(byte)/float64/(u)int8/(u)int1...» |
Нет описания правки |
||
| (не показаны 3 промежуточные версии этого же участника) | |||
| Строка 1: | Строка 1: | ||
=== Фиксированный заголовок (1 байта) === | |||
Биты: | |||
0-2 - версия | |||
3-5 - формат данных (0 - binary, 1 - json) | |||
6-7 - резерв | |||
=== '''Binary формат''' === | |||
3-5 - | ==== Заголовок бинарного формата (1 байт) ==== | ||
0-3 - тип данных | |||
{| class="wikitable" | |||
|+ | |||
!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 формат''' === | |||
<syntaxhighlight lang="js"> | |||
{ | |||
"t":"2025-03-28T05:29:11.481Z", // время | |||
'''JSON формат''' | "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 // тип метрики (опционально)
}