Downlink — получить максимальный размер данных
Возвращает, сколько байт полезной нагрузки поместится в один кадр downlink для устройства. Предел зависит от скорости передачи (DR): чем хуже радиосвязь с устройством, тем ниже скорость и тем меньше байт помещается в кадр. Сервер берёт DR последнего uplink устройства и вычисляет предел по частотному плану устройства.
Запросите предел перед отправкой данных: кадр больше предела сервер отклонит с ошибкой 4.
Запрос и ответ: max_dl_data_req → max_dl_data_resp.
Доступ: с токеном низкого уровня — устройства своего приложения и приложений, которые открыли ему доступ; с токеном высокого уровня — все устройства владельца.
Запрос
Поля без пометки «обязательно» можно не передавать.
| Поле | Тип | Описание |
|---|---|---|
cmd | string | max_dl_data_req |
operation_id | string | Произвольная строка; сервер вернёт её в ответе — по ней сопоставляют запрос и ответ |
devEui | string | DevEUI устройства, 16 hex-символов. Без него сервер вернёт все доступные устройства, от которых был хотя бы один uplink |
{
"cmd": "max_dl_data_req",
"operation_id": "abc",
"devEui": "7AA8974136303736"
}
Ответ
| Поле | Тип | Описание |
|---|---|---|
cmd | string | max_dl_data_resp |
operation_id | string | Значение из запроса |
status | uint8 | 1 — успех, 2 — ошибка |
devCount | uint32 | Сколько устройств в списке |
devList | array | Устройства: devEui, devAddr и maxDataSize — предел полезной нагрузки, байт |
error_code | uint8 | Только при ошибке, см. ниже |
{
"cmd": "max_dl_data_resp",
"operation_id": "abc",
"status": 1,
"devCount": 1,
"devList": [
{
"devEui": "7AA8974136303736",
"devAddr": "7AA89741",
"maxDataSize": 51
}
]
}
Ошибки
error_code | Что случилось |
|---|---|
| 1 | Устройство не найдено, недоступно с вашим токеном или ещё не присылало uplink |
Текста ошибки (error_text) в этом ответе нет.
Что важно знать
- Предел считается по скорости последнего uplink. Если устройство с тех пор сменило скорость (например, по ADR), реальный предел при отправке может отличаться.
- При отправке можно явно задать скорость полем
drвdownlink_data_req— тогда сервер проверит размер по ней, а не по последнему uplink. - Если нагрузка не помещается, разбейте её на несколько кадров или отправьте на более высокой скорости.
См. также
- Отправка данных на устройство — как устроен downlink и в каком порядке вызывать команды.
- Частотные планы — каналы, скорости и параметры окна RX2 для каждого плана.