Формат данных для MQTT: различия между версиями
Перейти к навигации
Перейти к поиску
Нет описания правки |
Нет описания правки |
||
| Строка 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 - тип метрики (00 - счетчик (только растет), 01 - замер (может увеличиваться и уменьшаться)) | |||
7 - наличие метки времени | |||
==== Метка времени - опционально (8 байт) ==== | |||
В наносекундах | |||
==== Полезная нагрузка ==== | |||
Используется little endian. | |||
=== '''JSON формат''' === | |||
Пример: {"t":"2025-03-28T05:29:24.413Z", "v":50.5, } | Пример: {"t":"2025-03-28T05:29:24.413Z", "v":50.5, } | ||
Для сложного значения: {"t":1617234567890, "v":[10,20,30], "d":"disk_iops"} | Для сложного значения: {"t":1617234567890, "v":[10,20,30], "d":"disk_iops"} | ||
Версия от 07:59, 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 - тип метрики (00 - счетчик (только растет), 01 - замер (может увеличиваться и уменьшаться))
7 - наличие метки времени
Метка времени - опционально (8 байт)
В наносекундах
Полезная нагрузка
Используется little endian.
JSON формат
Пример: {"t":"2025-03-28T05:29:24.413Z", "v":50.5, }
Для сложного значения: {"t":1617234567890, "v":[10,20,30], "d":"disk_iops"}