Skip to main content

Downlink — получить максимальный размер данных

Возвращает, сколько байт полезной нагрузки поместится в один кадр downlink для устройства. Предел зависит от скорости передачи (DR): чем хуже радиосвязь с устройством, тем ниже скорость и тем меньше байт помещается в кадр. Сервер берёт DR последнего uplink устройства и вычисляет предел по частотному плану устройства.

Запросите предел перед отправкой данных: кадр больше предела сервер отклонит с ошибкой 4.

Запрос и ответ: max_dl_data_req → max_dl_data_resp.
Доступ: с токеном низкого уровня — устройства своего приложения и приложений, которые открыли ему доступ; с токеном высокого уровня — все устройства владельца.

Запрос​

Поля без пометки «обязательно» можно не передавать.

ПолеТипОписание
cmdstringmax_dl_data_req
operation_idstringПроизвольная строка; сервер вернёт её в ответе — по ней сопоставляют запрос и ответ
devEuistringDevEUI устройства, 16 hex-символов. Без него сервер вернёт все доступные устройства, от которых был хотя бы один uplink
{
"cmd": "max_dl_data_req",
"operation_id": "abc",
"devEui": "7AA8974136303736"
}

Ответ​

ПолеТипОписание
cmdstringmax_dl_data_resp
operation_idstringЗначение из запроса
statusuint81 — успех, 2 — ошибка
devCountuint32Сколько устройств в списке
devListarrayУстройства: devEui, devAddr и maxDataSize — предел полезной нагрузки, байт
error_codeuint8Только при ошибке, см. ниже
{
"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.
  • Если нагрузка не помещается, разбейте её на несколько кадров или отправьте на более высокой скорости.

См. также​