Zaloguj się do swojego konta Altimeter Cloud
Nie masz konta? Utwórz konto
Wyślemy link potwierdzający na Twój e-mail. Sprawdź folder spam, jeśli go nie otrzymasz.
Masz już konto? Zaloguj się
Aktualizacja oprogramowaniav1.2
Przesyłanie dziennika lotuv1.1
Portal USB Onlinev1.0
Konfiguracja USB WiFi onlinev1.1
3D parts toolv1.0
Kalkulator otworu powietrznegov1.0
API Altimeter Cloudv1.0
Predyktor wysokościv1.0
Kalkulator wytrzymałości ruryv1.0
Kalkulator zej??ciav1.0
Kalkulator ładunku wyrzutowegov1.0
Programista ESP do aplikacji webowychv1.0
Kalkulator flatteru płetwv1.0
Aktualizacja oprogramowaniav1.2
Przesyłanie dziennika lotuv1.1
Weryfikacja dziennika lotuv1.1
Projektant czesci laserowychv1.0
Portal USB Onlinev1.0
Konfiguracja USB WiFi onlinev1.1
Kalkulator prędkości wyjścia z szynyv1.0
Kalkulator dryfuv1.0
Kalkulator widocznościv1.0To programowa wersja internetowego narzędzia przesyłania. Przyjmuje dziennik lotu, weryfikuje go dokładnie tak jak punkt końcowy Weryfikacja CSV, a jeśli dziennik jest autentyczny i jeszcze nie zapisany, dodaje lot do chmury, generuje miniatury wykresów i zwraca nowy lot.
Jeśli ten sam lot został już przesłany, nie jest dodawany ponownie. Zamiast tego zwracany jest istniejący lot z ustawioną flagą duplicate. Odpowiada to zachowaniu narzędzia internetowego, więc ponowne wysłanie dziennika jest zawsze bezpieczne.
csv
Brak. Przesłania są anonimowe, dokładnie jak w narzędziu internetowym. Bramką jest weryfikacja kryptograficzna: tylko autentyczne, niezmienione dzienniki z prawdziwego Nano mogą ją przejść, a duplikaty są ignorowane, więc otwarty punkt końcowy zapisuje wyłącznie prawdziwe dzienniki. Lot jest powiązany ze swoim urządzeniem, a właściciel urządzenia może go później przejąć, dodając to urządzenie do swojego konta Altimeter Cloud.
Wyślij dziennik lotu, niezmieniony, jako pole pliku multipart o nazwie csv (lub flightlog) albo jako tekstowy parametr POST csv.
curl -X POST https://www.altimetercloud.com/po/api/upload/ \
-F "csv=@flight_1234.csv"
API zwraca JSON. Gdy lot jest dodawany po raz pierwszy, duplicate ma wartość false, a miniatury zostały właśnie wygenerowane:
{
"success": true,
"verified": true,
"duplicate": false,
"verify_method": "Ed25519",
"flight": {
"id": 1234,
"url": "https://www.altimetercloud.com/po/flights/1234/",
"firmware": "1.52",
"hardware": "4",
"device_tag": "MY-NANO",
"competitor_tag": "C-07",
"apogee": 246.4,
"apogee_time": 5.21,
"max_velocity": 98.3,
"samples": 3210,
"flight_unique_id": "a1b2c3...",
"thumbnails": {
"meters_small": "https://www.altimetercloud.com/po/flightdata/4/1234.webp",
"meters_large": "https://www.altimetercloud.com/po/flightdata/4/1234_l.webp",
"feet_small": "https://www.altimetercloud.com/po/flightdata/4/1234_ft.webp",
"feet_large": "https://www.altimetercloud.com/po/flightdata/4/1234_l_ft.webp",
"miles_small": "https://www.altimetercloud.com/po/flightdata/4/1234_mi.webp",
"miles_large": "https://www.altimetercloud.com/po/flightdata/4/1234_l_mi.webp",
"km_small": "https://www.altimetercloud.com/po/flightdata/4/1234_km.webp",
"km_large": "https://www.altimetercloud.com/po/flightdata/4/1234_l_km.webp"
}
}
}
Gdy ten sam lot już istnieje, jest zwracany bez zmian, z duplicate równym true i bez ponownego generowania miniatur:
{
"success": true,
"verified": true,
"duplicate": true,
"verify_method": "Ed25519",
"flight": { "id": 1234, "url": "https://www.altimetercloud.com/po/flights/1234/", "...": "..." }
}
Jeśli dziennik nie przejdzie weryfikacji, nie jest zapisywany:
{
"success": false,
"verified": false,
"error": { "code": "400", "message": "Flight log failed verification" }
}
Lot jest uznawany za już zapisany, gdy jego urządzenie i hash podpisu odpowiadają już przesłanemu lotowi. W takim przypadku nic nie jest dodawane ponownie i żadne wykresy nie są przebudowywane; otrzymujesz po prostu identyfikator istniejącego lotu z duplicate równym true.
| Pole | Typ | Opis |
|---|---|---|
success | boolean | Prawda, jeśli dziennik został przyjęty (nowo zapisany lub już obecny) |
verified | boolean | Czy dziennik przeszedł weryfikację kryptograficzną |
duplicate | boolean | Prawda, jeśli lot już istniał i nie został dodany ponownie |
verify_method | string | Użyta metoda: Ed25519, HMAC-SHA256 lub SHA-256 |
flight.id | integer | Identyfikator lotu w chmurze (nowy lub istniejący) |
flight.flight_unique_id | string | Hash podpisu, używany z punktem końcowym Informacje o locie |
flight.thumbnails | object | Adresy URL obrazów wykresów we wszystkich rozmiarach |
error.code / error.message | string | Kod błędu i opis (w razie niepowodzenia) |
| Kod | Znaczenie |
|---|---|
400 (weryfikacja) | Dziennik nie przeszedł weryfikacji kryptograficznej i nie został zapisany |
400 (ciśnienie) | Dziennik nie przeszedł dodatkowej kontroli krzyżowej ciśnienia i nie został zapisany |
412 | W żądaniu nie podano żadnego dziennika lotu |
Ponieważ przesłania są anonimowe, lot jest powiązany tylko z urządzeniem, które go zarejestrowało. Aby przejąć loty z danego urządzenia, dodaj to urządzenie do swojego konta Altimeter Cloud; jego loty, w tym przesłane przez to API, zostaną wtedy przejęte automatycznie.
Weryfikacja jest tutaj identyczna jak w punkcie końcowym weryfikacji CSV, więc każdy dziennik, który tam przejdzie weryfikację, można przesłać tutaj. Jedyna różnica polega na tym, że ten punkt końcowy dodatkowo zapisuje lot i buduje jego wykresy. Aby sprawdzić dziennik bez zapisywania, użyj zamiast tego punktu końcowego Weryfikacja CSV. Na tej stronie nie ma interaktywnego środowiska testowego, ponieważ każde udane wywołanie tworzy prawdziwy zapisany lot.