Wersja 2.1
Wprowadzenie
We wcześniejszych wersjach API kamera zgodna ze standardem OSC tworzyła punkt dostępu Wi-Fi, z którym mogą się łączyć aplikacje Google Street View na iOS i Androida. Aplikacja kieruje aparatem OSC do robienia zdjęć, a także pobiera z niego zarejestrowane treści i publikuje je w Google Street View. Aby przyspieszyć publikowanie materiałów, wprowadziliśmy nowy, opcjonalny przepływ pracy, który umożliwia kamerom OSC przesyłanie materiałów bezpośrednio na serwer Street View. Wyeliminuje to długotrwałe, podwójne przesyłanie treści najpierw z aparatu do aplikacji, a następnie z aplikacji na serwer Street View. Ta funkcja została dodana w interfejsie API poziomu 2.1 i dotyczy tylko kamer OSC, które mogą udostępniać punkt dostępu Wi-Fi oraz łączyć się z infrastrukturą Wi-Fi z dostępem do internetu.
Opis
Nowy proces przesyłania wymaga, aby kamery umożliwiać użytkownikom przełączanie się między dwoma trybami Wi-Fi (np. specjalnym przyciskiem fizycznym lub kombinacjami przycisków):
- Tryb bezpośredni: w tym trybie aparat działa jak punkt dostępu, dzięki któremu urządzenie mobilne może się z nim połączyć. W tym trybie urządzenia mobilne mogą sterować aparatem, aby na przykład robić zdjęcia. Urządzenia mobilne mogą też przekazać do kamery dane logowania do punktu dostępu Wi-Fi, za pomocą których kamera może przełączać się w tryb internetowy.
- Tryb internetu: w tym trybie aparat łączy się z punktem dostępu Wi-Fi z dostępem do internetu. Będzie korzystać z identyfikatora punktu dostępu i hasła otrzymanych z aplikacji, gdy kamera była wcześniej w trybie bezpośrednim. W tym trybie urządzenia mobilne mogą inicjować przesyłanie zdjęć z aparatu bezpośrednio na serwer Street View. Mogą też nadal sterować aparatem, np. robić zdjęcia.
Tryb aparatu powinien pozostać włączony po wyłączeniu i ponownym włączeniu kamery. Zdecydowanie zalecamy też, aby kamera oferowała sygnał (np. diodę, dźwięk lub wskaźnik na ekranie) informujący użytkowników o bieżącym trybie Wi-Fi.
Kamera powinna też mieć zaimplementowane protokoły wykrywania (patrz Odkrywanie) do obsługi komunikacji, gdy kamera jest w trybie internetowym.
Konfiguracja trybu internetu
- Użytkownik włącza kamerę. Uruchamia się w trybie bezpośrednim, ponieważ nie skonfigurowano jeszcze trybu internetu.
- Urządzenie mobilne połączy się z siecią Wi-Fi kamery.
- Aplikacja wygeneruje certyfikat podpisany samodzielnie.
- Aplikacja wysyła do kamery polecenie
switchWifi
wraz z identyfikatorem SSID punktu dostępu Wi-Fi infrastruktury, z którym kamera musi się połączyć, hasłem do tego punktu dostępu oraz podpisanym samodzielnie certyfikatem, za pomocą którego kamera uwierzytelnia później aplikację.- Pamiętaj, że kamera powinna w bezpieczny sposób przechowywać dane logowania do sieci Wi-Fi oraz certyfikat aplikacji podpisany samodzielnie.
- Zaleca się, aby kamera zapisała kilka danych logowania do Wi-Fi, ponieważ może być konieczne połączenie z innymi infrastrukturą punktów dostępu Wi-Fi. Minimalnym wymaganiem jest przechowywanie przez kamerę najnowszych danych logowania do Wi-Fi.
- Kamera w odpowiedzi wysyła certyfikat podpisany samodzielnie, którego aplikacja używa do późniejszego uwierzytelnienia.
- Użytkownik może teraz przełączać się między trybem bezpośrednim i trybem internetu bezpośrednio z poziomu aparatu, np. za pomocą fizycznego przycisku przełączania.
Kampanie Discovery
Wykrywanie dla kamer OSC jest protokołem opartym na zeroconf. Kamera MUSI stosować adresowanie lokalne protokołu IPv4 i MUSI być zgodna ze specyfikacjami mDNS (Multicast) i DNS-SD (DNS-Based Service Discovery):
Nazwy instancji usługi
W przypadku części <Service>
nazwy instancji usługi kamery OSC powinny używać parametru _osc._tcp
. W przypadku części <Domain>
nazwy instancji usługi kamery OSC powinny używać protokołu local.
. Zwróć uwagę, że po local
jest widoczny element .
.
Rekord TXT
Kamera musi wysyłać w rekordzie TXT te pary klucz-wartość: txtvers
, ty
oraz id
.
TXTvers
Aby w przyszłości umożliwić aktualizacje wersji TXT, użyj pary klucz-wartość txtvers=1
.
Ty
Zawiera czytelną dla użytkownika nazwę kamery, np. ty=Google Street View Optimized Spherical Camera Model XYZ
.
id
Zawiera unikalny identyfikator kamery, np. id=A unique id of the camera
. Wartość id
MUSI być taka sama jak wartość cameraId
w danych wyjściowych /osc/info
.
Ogłoszenia
Przy uruchamianiu lub wyłączaniu kamera MUSI wykonać krok ogłaszania zgodnie ze specyfikacją mDNS. POWINNO wysłać odpowiednie ogłoszenie co najmniej 2 razy z odstępem co najmniej 1 sekund.
Uruchamianie
Przy uruchamianiu kamery MUSI przeprowadzać sondowanie i ogłaszać kroki zgodnie ze specyfikacją mDNS. W takim przypadku należy przesłać rekordy SRV, PTR i TXT. Zalecamy, aby w miarę możliwości zgrupować wszystkie rekordy w jedną odpowiedź DNS. W przeciwnym razie zalecamy użycie rekordów SRV, PTR, TXT.
Wyłączono
W przypadku wyłączenia kamery NALEŻY próbować powiadomić wszystkie zainteresowane osoby, wysyłając wiadomość pożegnalną TTL=0
zgodnie z opisem w sekcji 10.1 dokumentacji mDNS.
Certyfikat podpisany samodzielnie
Aplikacja i aparat mogą używać samodzielnie podpisanych certyfikatów udostępnianych podczas konfiguracji trybu internetowego, aby uwierzytelniać się między sobą i tworzyć bezpieczny kanał chroniący przesyłane dane za pomocą wzajemnego uwierzytelniania SSL.
W trybie internetu aplikacja działa jako serwer SSL, a kamera jako klient. Kamera sprawdzi, czy certyfikat serwera jest zgodny z certyfikatem podpisanym samodzielnie przez aplikację, a aplikacja sprawdzi, czy certyfikat klienta jest zgodny z certyfikatem kamery.
W trybie internetu można użyć dowolnej biblioteki SSL obsługującej uwierzytelnianie wzajemne (np. OpenSSL) do nawiązania połączenia SSL między aplikacją a kamerą.
Nowy proces przesyłania
- Jeśli kamera nie jest w trybie internetu, użytkownik przełączy ją w tryb internetu. Kamera łączy się z infrastrukturą Wi-Fi przy użyciu zapisanych danych logowania.
- Łączy się też z infrastrukturą Wi-Fi i wykrywa kamerę.
- Wymaga to zaimplementowania lokalnego protokołu wykrywania mDNS/DNS-SD (patrz Wykrywanie).
- Nie ma konkretnych wymagań dotyczących sposobu jego wdrożenia (dobrze byłoby w przypadku mDNSResponder).
- Zarówno aplikacja, jak i kamera generują i udostępniają samodzielnie podpisane certyfikaty podczas konfiguracji trybu internetowego. W trybie internetu aplikacja i kamera uwierzytelniają się między sobą za pomocą wzajemnego uwierzytelniania SSL.
- Po wykryciu kamery komunikacja z klientem jest włączana bezpośrednio przez sieć lokalną przy użyciu protokołu HTTP 1.1. Formaty danych są oparte na formacie JSON. Żądania mogą być żądaniami GET lub POST.
- Aplikacja wyśle zapytanie do kamery o listę plików za pomocą polecenia
listFiles
. - Aplikacja rozpoczyna przesyłanie za pomocą polecenia
uploadFile
, które pozwala przesłać zdjęcie lub film bezpośrednio z aparatu na serwer Street View. - Aplikacja okresowo prosi o postępowanie z kamerą za pomocą polecenia
status
.