העלאה ישירה דרך Street View

גרסה 2.1

רקע

בגרסאות קודמות של ה-API, מצלמה שתואמת ל-OSC הייתה יוצרת נקודת גישה ל-Wi-Fi שאפליקציות Google Street View ל-iOS ו-Android יכולות להתחבר אליה. האפליקציה גם תפעיל את מצלמת OSC כדי לצלם תמונות, וגם תוריד את התוכן שצולם מהמצלמה כדי לפרסם אותו ב-Google Street View. כדי לזרז את פרסום התוכן, השקנו תהליך עבודה אופציונלי חדש שמאפשר למצלמות OSC להעלות תוכן ישירות לשרת של Street View. כך ניתן לבטל העברה כפולה ארוכה של תוכן מהמצלמה לאפליקציה ומשם לאפליקציה לשרת Street View. הפרמטר הזה נוסף ב-API ברמה 2.1, והוא רלוונטי רק למצלמות OSC שיכולות גם לספק נקודת גישה ל-Wi-Fi וגם להתחבר לנקודת גישה (AP) של Wi-Fi בתשתית עם גישה לאינטרנט.

סקירה כללית

בתהליך העבודה החדש של ההעלאה מצלמות יספקו דרך (לדוגמה, לחצן פיזי ייעודי או שילוב של לחצנים קיימים) שמאפשרת למשתמשים לעבור בין שני מצבי Wi-Fi:

  • במצב ישיר: במצב הזה המצלמה משמשת כנקודת גישה שמאפשרת למכשיר נייד להתחבר אליה. במצב הזה, מכשירים ניידים יכולים לשלוט במצלמה כדי לבצע משימות כמו צילום תמונות. במכשירים ניידים אפשר גם לספק למצלמה פרטי כניסה לנקודת גישה (AP) של Wi-Fi, שבהם היא יכולה להשתמש כדי לעבור למצב אינטרנט.
  • מצב אינטרנט: במצב הזה, המצלמה מתחברת לנקודת גישה (AP) של Wi-Fi עם גישה לאינטרנט. ייעשה שימוש במזהה ובסיסמה של נקודת הגישה שסופקו לה מהאפליקציה כשהמצלמה פעלה בעבר במצב Direct. מכשירים ניידים יכולים ליזום העלאות מהמצלמה ישירות לשרת של Street View במצב הזה. הם יכולים גם לשלוט במצלמה כדי לבצע משימות כמו צילום תמונות.

כשמצב המצלמה פועל, הוא צריך לפעול בכל המצבים של המצלמה. בנוסף, מומלץ מאוד שהמצלמה תציע אות (לדוגמה, אור, צליל או אינדיקטור במסך) כדי ליידע את המשתמשים לגבי מצב ה-Wi-Fi הנוכחי.

במצלמה צריכים להיות מוטמעים גם פרוטוקולי גילוי (ראו Discovery) כדי לטפל בתקשורת כשהמצלמה נמצאת במצב אינטרנט.

הגדרת מצב אינטרנט

  1. המשתמש מפעיל את המצלמה. הוא מתחיל במצב ישיר כי עדיין לא הוגדר מצב אינטרנט.
  2. המכשיר הנייד מתחבר ל-Wi-Fi של המצלמה.
  3. האפליקציה יוצרת אישור בחתימה עצמית.
  4. האפליקציה שולחת את הפקודה switchWifi למצלמה עם ה-SSID של נקודת הגישה ל-Wi-Fi בתשתית, שאליה המצלמה צריכה להתחבר, הסיסמה לנקודת הגישה הזו והאישור בחתימה עצמית, שבו המצלמה משתמשת כדי לאמת את האפליקציה מאוחר יותר.
    • שימו לב: המצלמה צריכה לאחסן באופן מאובטח את פרטי הכניסה ל-Wi-Fi וגם את האישור בחתימה עצמית של האפליקציה.
    • מומלץ לאחסן למצלמה מספר פרטי כניסה ל-Wi-Fi, כי יכול להיות שהמצלמה תצטרך להתחבר לנקודות גישה שונות ל-Wi-Fi בתשתית. הדרישה המינימלית היא שהמצלמה תאחסן את פרטי הכניסה האחרונים ל-Wi-Fi.
  5. התגובה של המצלמה כוללת אישור בחתימה עצמית, שבו האפליקציה משתמשת כדי לאמת את המצלמה מאוחר יותר.
  6. המשתמשים יכולים עכשיו לעבור בין מצב ישיר למצב אינטרנט ישירות מהמצלמה, למשל באמצעות לחצן החלפת מצב פיזי.

קמפיינים מסוג Discovery

הגילוי של מצלמות OSC הוא פרוטוקול שמבוסס על Zeroconf. המצלמה חייבת להטמיע כתובות IPv4 Link-Local וחייבת לעמוד בדרישות של מפרטים של mDNS (Multicast DNS) ו-DNS-SD (גילוי שירות מבוסס-DNS):

שמות של מופעי שירות

עבור החלק <Service> של שם מופע השירות, מצלמות OSC צריכות להשתמש ב-_osc._tcp. עבור החלק <Domain> של שם מופע השירות, מצלמות OSC צריכות להשתמש ב-local.. חשוב לשים לב שיש . נגרר אחרי local.

רשומת TXT

אנחנו דורשים מהמצלמה לשלוח את צמדי המפתח/ערך הבאים ברשומת ה-TXT: txtvers, ty ו-id.

txtvers

כדי לאפשר עדכונים לגרסת TXT בעתיד, יש להשתמש בצמד מפתח/ערך txtvers=1.

טי

מספקת שם של המצלמה קריא למשתמש, לדוגמה ty=Google Street View Optimized Spherical Camera Model XYZ.

id

מספקת מזהה ייחודי של המצלמה, למשל id=A unique id of the camera. הערך של id חייב להיות זהה לערך של cameraId בפלט של /osc/info.

עדכונים

בזמן ההפעלה או הכיבוי של המצלמה, המצלמה צריכה לבצע את שלב ההודעה כפי שמתואר במפרט ה-mDNS. הוא צריך לשלוח את ההודעה המתאימה לפחות פעמיים עם מרווח של שנייה אחת לפחות ביניהם.

הפעלה

כשמפעילים את המצלמה, היא חייבת לבצע את שלבי החיפוש וההכרזה על השלבים שמתוארים במפרט ה-mDNS. במקרה הזה יש לשלוח רשומות SRV, PTR ו-TXT. אם אפשר, מומלץ לקבץ את כל הרשומות לתגובת DNS אחת. אם לא, מומלץ לעשות זאת בסדר הבא: רשומות SRV, PTR ו-TXT.

כיבוי

כשהמצלמה נסגרת, המערכת מנסה להודיע לכל הצדדים על כך באמצעות שליחת 'חבילת פרידה' עם TTL=0, כפי שמתואר בסעיף 10.1 במסמכי התיעוד בנושא mDNS.

אישור בחתימה עצמית

האפליקציה והמצלמה יכולות להשתמש באישורים בחתימה עצמית ששותפו במהלך הגדרת מצב האינטרנט, כדי לאמת זה את זה ולבנות ערוץ מאובטח להגנה על נתונים שעוברים שינוי, באמצעות אימות הדדי של SSL.

במצב האינטרנט, האפליקציה תפעל כשרת SSL והמצלמה תפעל כלקוח. המצלמה תבדוק שהאישור של השרת תואם לאישור בחתימה עצמית של האפליקציה, והאפליקציה תבדוק שהאישור של הלקוח תואם לאישור של המצלמה.

במצב האינטרנט, אפשר להשתמש בכל ספריית SSL שתומכת באימות הדדי (למשל, OpenSSL) כדי ליצור חיבור SSL בין האפליקציה למצלמה.

תהליך העלאה חדש

  1. אם המצלמה לא נמצאת במצב אינטרנט, המשתמש מעביר אותה למצב אינטרנט. המצלמה מתחברת לתשתית ה-Wi-Fi באמצעות פרטי כניסה שמורים.
  2. המכשיר הנייד גם מתחבר לתשתית ה-Wi-Fi ומזהה את המצלמה.
    • לשם כך המצלמה צריכה להטמיע פרוטוקול Discovery מקומי mDNS/DNS-SD (ראו גילוי).
    • אין דרישה ספציפית לגבי אופן ההטמעה (קובץ עזר טוב הוא mDNSResponder).
    • גם האפליקציה וגם המצלמה יוצרות ומשתפים אישורים בחתימה עצמית במהלך הגדרת מצב האינטרנט. במצב אינטרנט, האפליקציה והמצלמה מאמתים זה את זה באמצעות אימות SSL הדדי.
    • אחרי גילוי המצלמה, מופעלת איתה תקשורת עם הלקוחות ישירות ברשת המקומית על סמך HTTP 1.1. פורמטים של נתונים מבוססים על JSON. הבקשות יכולות להיות בקשות GET או POST.
  3. האפליקציה שולחת למצלמה רשימת קבצים עם הפקודה listFiles.
  4. האפליקציה מתחילה העלאה עם הפקודה uploadFile כדי להעלות תמונה או סרטון ישירות מהמצלמה לשרת של Street View.
  5. האפליקציה סורקת את המצלמה מדי פעם כדי לבדוק את התקדמות ההעלאה באמצעות הפקודה status.