Bezpośrednie przesyłanie w Street View

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

  1. Użytkownik włącza kamerę. Uruchamia się w trybie bezpośrednim, ponieważ nie skonfigurowano jeszcze trybu internetu.
  2. Urządzenie mobilne połączy się z siecią Wi-Fi kamery.
  3. Aplikacja wygeneruje certyfikat podpisany samodzielnie.
  4. 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.
  5. Kamera w odpowiedzi wysyła certyfikat podpisany samodzielnie, którego aplikacja używa do późniejszego uwierzytelnienia.
  6. 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

  1. 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.
  2. Łą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.
  3. Aplikacja wyśle zapytanie do kamery o listę plików za pomocą polecenia listFiles.
  4. 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.
  5. Aplikacja okresowo prosi o postępowanie z kamerą za pomocą polecenia status.