Sesja przesyłania oprogramowania układowego
Przesyłanie pliku .ota odbywa się w ramach sekwencyjnej sesji przesyłania do obszaru OTA.
GET /api/service/firmware/upload/status/
Dział zatytułowany „GET /api/service/firmware/upload/status/”Pobiera bieżący stan sesji przesyłania oraz informację o poprawności obrazu OTA.
Uwierzytelnianie: powerUser
Odpowiedź 200
Dział zatytułowany „Odpowiedź 200”{ "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" }}| Pole | Typ | Opis |
|---|---|---|
uploadInProgress | wartość logiczna | Trwa kasowanie, odbieranie lub weryfikacja |
imageValid | wartość logiczna | Obraz OTA został w całości przesłany i zweryfikowany |
receivedBytes | liczba | Liczba potwierdzonych bajtów |
totalBytes | liczba | Oczekiwany rozmiar obrazu |
percent | liczba | Postęp wyrażony w procentach |
lastError | liczba | Kod błędu (0 = brak) |
lastInstallState | ciąg znaków | Ostatni stan instalacji: "idle", "ready", "running", "failed", "unknown" |
meta | obiekt | Metadane zweryfikowanego obrazu; obecne tylko wtedy, gdy imageValid: true |
meta.fwVersion | ciąg znaków | Wersja oprogramowania układowego z obrazu OTA, maksymalnie 15 znaków ASCII (na przykład 1.0 lub 1.2.3-rc4) |
meta.buildTimestamp | liczba | Uniksowy znacznik czasu kompilacji |
meta.deviceStr | ciąg znaków | Oznaczenie docelowego sprzętu; TR-100E (48) dla tego urządzenia |
meta.description | ciąg znaków | Opis obrazu |
POST /api/service/firmware/upload/begin/
Dział zatytułowany „POST /api/service/firmware/upload/begin/”Otwiera sesję przesyłania, ustawia rozmiar obrazu i przygotowuje obszar OTA.
Uwierzytelnianie: powerUser
Żądanie
Dział zatytułowany „Żądanie”{ "size": 524288}| Pole | Typ | Wymagane | Opis |
|---|---|---|---|
size | liczba | tak | Liczba całkowita: rozmiar obrazu OTA w bajtach (> 0 i ≤ rozmiar obszaru OTA) |
- Ponowne wywołanie tego punktu końcowego zeruje nieukończoną sesję.
- Jeśli trwa operacja
erase/verify→503 ERROR_NOT_READY.
Odpowiedź 200
Dział zatytułowany „Odpowiedź 200”{ "acceptedOffset": 0}POST /api/service/firmware/upload/chunk/?offset=0
Dział zatytułowany „POST /api/service/firmware/upload/chunk/?offset=0”Zapisuje fragment obrazu OTA.
Uwierzytelnianie: powerUser
Żądanie
Dział zatytułowany „Żądanie”Content-Type: application/octet-stream- Parametr zapytania
offset: przesunięcie fragmentu w pełnym obrazie. - Treść: surowe bajty fragmentu (maksymalnie
1024bajty).
| Parametr | Typ | Wymagane | Opis |
|---|---|---|---|
offset | liczba | tak | Liczba całkowita: nieujemne przesunięcie w pełnym obrazie OTA |
- Wartość
offsetmusi odpowiadać oczekiwanemu przesunięciu lub wskazywać już potwierdzony fragment (idempotentne ponowienie). - Luka →
400 ERROR_INVALID_VALUE. - Fragment większy niż 1024 bajty →
400 ERROR_INVALID_VALUE.
Odpowiedź 200
Dział zatytułowany „Odpowiedź 200”{ "acceptedOffset": 1024}POST /api/service/firmware/upload/finish/
Dział zatytułowany „POST /api/service/firmware/upload/finish/”Kończy sesję przesyłania i rozpoczyna weryfikację.
Uwierzytelnianie: powerUser
Żądanie
Dział zatytułowany „Żądanie”{ "confirm": true}- Niekompletny obraz lub błąd weryfikacji →
400 ERROR_INVALID_VALUE.
Odpowiedź 200
Dział zatytułowany „Odpowiedź 200”{ "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/
Dział zatytułowany „POST /api/service/firmware/upload/discard/”Usuwa przygotowany obraz OTA i zeruje sesję przesyłania.
Uwierzytelnianie: powerUser
Żądanie
Dział zatytułowany „Żądanie”{ "confirm": true}Pusta treść żądania lub nieprawidłowy składniowo kod JSON → 400 ERROR_API_PARSING.
Brak pola confirm, wartość inna niż logiczna lub false → 400 ERROR_INVALID_ARGUMENT.
Odpowiedź 200
Dział zatytułowany „Odpowiedź 200”Zwraca pełny stan w takim samym formacie jak GET /api/service/firmware/upload/status/.