Перейти до вмісту

Сеанс завантаження прошивки

Завантаження файлу .ota реалізовано як послідовний сеанс завантаження до розділу OTA.


Отримує поточний стан сеансу завантаження та дійсність образу OTA.

Авторизація: Bearer (powerUser).

{
"uploadInProgress": false,
"imageValid": true,
"receivedBytes": 524288,
"totalBytes": 524288,
"percent": 100,
"lastError": 0,
"lastInstallState": "ready",
"meta": {
"fwVersion": "1.0",
"buildTimestamp": 1785412800,
"deviceStr": "TR-100E (48)",
"description": "Production firmware"
}
}
ПолеТипОпис
uploadInProgressлогічнийТриває стирання, отримання або перевірка
imageValidлогічнийОбраз OTA повністю завантажено та перевірено
receivedBytesчислоКількість підтверджених байтів
totalBytesчислоОчікуваний розмір образу
percentчислоПеребіг у відсотках
lastErrorчислоКод помилки (0 = немає)
lastInstallStateрядокОстанній стан установлення: "idle", "ready", "running", "failed", "unknown"
metaоб’єктМетадані перевіреного образу; наявні лише за умови imageValid: true
meta.fwVersionрядокВерсія прошивки з образу OTA, до 15 символів ASCII (наприклад, 1.0 або 1.2.3-rc4)
meta.buildTimestampчислоЧасова позначка складання у форматі Unix
meta.deviceStrрядокМітка цільового апаратного забезпечення; для цього пристрою — TR-100E (48)
meta.descriptionрядокОпис образу

Відкриває сеанс завантаження, задає розмір образу та готує розділ OTA.

Авторизація: Bearer (powerUser).

{
"size": 524288
}
ПолеТипОбов’язковеОпис
sizeчислотакЦіле число: розмір образу OTA в байтах (> 0 і ≤ розміру розділу OTA)
  • Повторний виклик цієї кінцевої точки скидає незавершений сеанс.
  • Якщо триває erase/verify → 503 ERROR_NOT_READY.
{
"acceptedOffset": 0
}

POST /api/service/firmware/upload/chunk/?offset=0

Section titled “POST /api/service/firmware/upload/chunk/?offset=0”

Записує фрагмент образу OTA.

Авторизація: Bearer (powerUser).

  • Content-Type: application/octet-stream
  • Параметр запиту offset: зміщення фрагмента в повному образі.
  • Тіло: необроблені байти фрагмента (щонайбільше 1024 байти).
ПараметрТипОбов’язковийОпис
offsetчислотакЦіле число: невід’ємне зміщення в повному образі OTA
  • offset має відповідати очікуваному зміщенню або вказувати на вже підтверджений фрагмент (ідемпотентна повторна спроба).
  • Пропуск → 400 ERROR_INVALID_VALUE.
  • Фрагмент > 1024 байтів → 400 ERROR_INVALID_VALUE.
{
"acceptedOffset": 1024
}

Завершує сеанс завантаження та розпочинає перевірку.

Авторизація: Bearer (powerUser).

{
"confirm": true
}
  • Неповний образ або помилка перевірки → 400 ERROR_INVALID_VALUE.
{
"uploadInProgress": false,
"imageValid": true,
"receivedBytes": 524288,
"totalBytes": 524288,
"percent": 100,
"lastError": 0,
"lastInstallState": "ready",
"meta": {
"fwVersion": "1.0",
"buildTimestamp": 1785412800,
"deviceStr": "TR-100E (48)",
"description": "Production firmware"
}
}

POST /api/service/firmware/upload/discard/

Section titled “POST /api/service/firmware/upload/discard/”

Видаляє підготовлений образ OTA та скидає сеанс завантаження.

Авторизація: Bearer (powerUser).

{
"confirm": true
}

Порожнє або синтаксично некоректне тіло JSON → 400 ERROR_API_PARSING. Відсутнє поле confirm, значення нелогічного типу або false → 400 ERROR_INVALID_ARGUMENT.

Повертає повний стан у тому самому форматі, що й GET /api/service/firmware/upload/status/.