เวอร์ชัน 2.1
ที่มา
ใน API เวอร์ชันก่อนหน้า กล้องที่เป็นไปตามข้อกำหนดของ OSC จะสร้างจุดเข้าใช้งาน Wi-Fi ที่แอป Google Street View ใน iOS และ Android เชื่อมต่อได้ แอปจะสั่งให้กล้อง OSC ถ่ายภาพและดาวน์โหลดเนื้อหาที่บันทึกจากกล้อง แล้วเผยแพร่ไปยัง Google Street View เพื่อเร่งการเผยแพร่เนื้อหา เราได้เปิดตัวเวิร์กโฟลว์ใหม่แบบไม่บังคับซึ่งช่วยให้กล้อง OSC อัปโหลดเนื้อหาไปยังเซิร์ฟเวอร์ Street View ได้โดยตรง วิธีนี้จะช่วยลดปริมาณการโอนเนื้อหา 2 ครั้งจากกล้องไปยังแอปก่อน และจากนั้นจึงโอนจากแอปไปยังเซิร์ฟเวอร์ Street View ตัวเลขนี้เพิ่มเข้ามาใน API ระดับ 2.1 และเกี่ยวข้องกับกล้อง OSC ที่มีทั้งจุดเข้าใช้งาน Wi-Fi และเชื่อมต่อกับจุดเข้าใช้งาน Wi-Fi โครงสร้างพื้นฐานที่เข้าถึงอินเทอร์เน็ตได้ด้วย
ภาพรวม
เวิร์กโฟลว์การอัปโหลดใหม่ต้องใช้กล้องเพื่อระบุวิธี (เช่น ปุ่มเฉพาะหรือปุ่มที่มีอยู่เดิมหลายปุ่ม) เพื่อให้ผู้ใช้สลับระหว่าง 2 โหมด Wi-Fi ได้ดังนี้
- โหมดโดยตรง: ในโหมดนี้ กล้องจะทำหน้าที่เป็นจุดเข้าใช้งานที่อนุญาตให้อุปกรณ์เคลื่อนที่เชื่อมต่อกับอุปกรณ์ ในโหมดนี้ อุปกรณ์เคลื่อนที่สามารถ ควบคุมกล้องเพื่อทำงานต่างๆ เช่น การจับภาพ อุปกรณ์เคลื่อนที่ยังสามารถให้ข้อมูลรับรองจุดเข้าใช้งาน Wi-Fi แก่กล้อง ซึ่งกล้องจะใช้เพื่อเปลี่ยนเป็นโหมดอินเทอร์เน็ตได้ด้วย
- โหมดอินเทอร์เน็ต: ในโหมดนี้ กล้องจะเชื่อมต่อกับจุดเข้าใช้งาน Wi-Fi ที่มีการเข้าถึงอินเทอร์เน็ต โดยจะใช้ตัวระบุจุดเข้าใช้งานและรหัสผ่านที่ได้รับจากแอปเมื่อกล้องอยู่ในโหมดโดยตรงก่อนหน้านี้ อุปกรณ์เคลื่อนที่สามารถเริ่มการอัปโหลดจากกล้องไปยังเซิร์ฟเวอร์ Street View ในโหมดนี้ได้โดยตรง กล้องยังควบคุมกล้องเพื่อทำงานต่างๆ ได้ เช่น การจับภาพ
โหมดกล้องถ่ายรูปควรคงอยู่ตลอดแม้กล้องจะปิดอยู่และเปิดขึ้นมาอีกครั้ง นอกจากนี้ ขอแนะนำอย่างยิ่งให้กล้องมีสัญญาณ (เช่น แสง เสียง หรือสัญญาณบอกสถานะบนหน้าจอ) เพื่อแจ้งให้ผู้ใช้ทราบเกี่ยวกับโหมด Wi-Fi ปัจจุบัน
และกล้องก็ควรมีโปรโตคอลการค้นพบด้วย (ดู Discovery) เพื่อจัดการการสื่อสารขณะที่กล้องอยู่ในโหมดอินเทอร์เน็ต
การตั้งค่าโหมดอินเทอร์เน็ต
- ผู้ใช้เปิดกล้อง จะเริ่มทำงานในโหมดโดยตรงเนื่องจากยังไม่ได้ตั้งค่าโหมดอินเทอร์เน็ต
- อุปกรณ์เคลื่อนที่เชื่อมต่อกับ Wi-Fi ของกล้อง
- แอปจะสร้างใบรับรองแบบ Self-signed
- แอปจะใช้คำสั่ง
switchWifi
ไปยังกล้องพร้อม SSID ของจุดเข้าใช้งาน Wi-Fi โครงสร้างพื้นฐานที่กล้องจะต้องเชื่อมต่อ, รหัสผ่านของจุดเข้าใช้งานนั้น และใบรับรองแบบ Self-signed ที่กล้องใช้ในการตรวจสอบสิทธิ์แอปในภายหลัง- โปรดทราบว่ากล้องควรจัดเก็บทั้งข้อมูลเข้าสู่ระบบ Wi-Fi และใบรับรอง Self-signed ของแอปไว้อย่างปลอดภัย
- ขอแนะนำให้ให้กล้องเก็บข้อมูลเข้าสู่ระบบ Wi-Fi หลายรายการ เนื่องจากกล้องอาจต้องเชื่อมต่อกับจุดเข้าใช้งาน Wi-Fi โครงสร้างพื้นฐานที่แตกต่างกัน ข้อกำหนดขั้นต่ำคือให้กล้องเก็บข้อมูลเข้าสู่ระบบ Wi-Fi ล่าสุด
- กล้องจะตอบกลับด้วยใบรับรองแบบ Self-signed ซึ่งแอปใช้ตรวจสอบสิทธิ์กล้องในภายหลัง
- ตอนนี้ผู้ใช้สลับระหว่างโหมดโดยตรงและโหมดอินเทอร์เน็ตได้โดยตรงจากกล้อง เช่น ด้วยปุ่มเปิด/ปิดจริง
Discovery
การค้นพบสำหรับกล้อง OSC เป็นโปรโตคอลที่ใช้ Zeroconf กล้องต้องใช้การกำหนดที่อยู่แบบ IPv4 Link-Local Addressing และต้องสอดคล้องกับ mDNS (Multicast DNS) และ DNS-SD (DNS-Based Service Discovery) ดังนี้
ชื่ออินสแตนซ์บริการ
สำหรับส่วน <Service>
ของชื่ออินสแตนซ์บริการ กล้อง OSC ควรใช้ _osc._tcp
ส่วน <Domain>
ของชื่ออินสแตนซ์บริการ กล้อง OSC ควรใช้ local.
โปรดทราบว่ามี .
ต่อท้ายหลังจาก local
ระเบียน TXT
เรากำหนดให้กล้องส่งคู่คีย์/ค่าต่อไปนี้ในระเบียน TXT: txtvers
, ty
และ id
txtver
หากต้องการอนุญาตให้อัปเดตเวอร์ชัน TXT ในอนาคต ให้ใช้คู่คีย์/ค่า txtvers=1
ty
ระบุชื่อกล้องที่ผู้ใช้อ่านได้ เช่น ty=Google Street View Optimized Spherical Camera Model XYZ
id
ระบุรหัสที่ไม่ซ้ำกันของกล้อง เช่น id=A unique id of the camera
ค่าสำหรับ id
ต้องเหมือนกับ cameraId
ในเอาต์พุต /osc/info
ประกาศ
เมื่อเปิดกล้องหรือปิดการทำงาน กล้องต้องทำตามขั้นตอนการประกาศตามที่อธิบายไว้ในข้อกำหนดของ mDNS และควรส่งประกาศที่สอดคล้องกันอย่างน้อย 2 ครั้ง โดยเว้นแต่ละวินาทีอย่างน้อย 1 วินาที
เริ่มต้นทำงาน
เมื่อเปิดกล้อง จะต้องดำเนินการตรวจสอบและประกาศขั้นตอนตามที่อธิบายไว้ในข้อมูลจำเพาะของ mDNS ในกรณีนี้ ควรส่งระเบียน SRV, PTR และ TXT ขอแนะนำให้จัดกลุ่มระเบียนทั้งหมดเป็นการตอบกลับ DNS เดียวหากเป็นไปได้ ไม่เช่นนั้น ขอแนะนำให้จัดลำดับระเบียน SRV, PTR, TXT
ปิดการทำงาน
เมื่อมีการปิดกล้อง ควรพยายามแจ้งผู้ที่สนใจทุกคนด้วยการส่ง "แพ็กเก็ตลาก่อน" ด้วย TTL=0
ตามที่อธิบายไว้ในส่วนที่ 10.1 ของเอกสารประกอบ mDNS
ใบรับรองที่ลงนามด้วยตนเอง
แอปและกล้องสามารถใช้ใบรับรองแบบ Self-signed ที่ใช้ร่วมกันระหว่างการตั้งค่าโหมดอินเทอร์เน็ตเพื่อตรวจสอบสิทธิ์กันและกันและสร้างช่องทางที่ปลอดภัยเพื่อปกป้องข้อมูลที่แลกเปลี่ยนโดยใช้การตรวจสอบสิทธิ์ร่วมกันของ SSL
ในระหว่างโหมดอินเทอร์เน็ต แอปจะทำหน้าที่เป็นเซิร์ฟเวอร์ SSL และกล้องเป็นไคลเอ็นต์ กล้องจะตรวจสอบว่าใบรับรองของเซิร์ฟเวอร์ตรงกับใบรับรองที่ลงชื่อด้วยตนเองของแอป และแอปจะตรวจสอบว่าใบรับรองของไคลเอ็นต์ตรงกับของกล้องหรือไม่
ไลบรารี SSL ที่รองรับการตรวจสอบสิทธิ์ร่วมกัน (เช่น OpenSSL) สามารถใช้เพื่อสร้างการเชื่อมต่อ SSL ระหว่างแอปกับกล้องในระหว่างโหมดอินเทอร์เน็ตได้
ขั้นตอนการอัปโหลดใหม่
- หากกล้องไม่ได้อยู่ในโหมดอินเทอร์เน็ต ผู้ใช้จะเปลี่ยนไปใช้โหมดอินเทอร์เน็ต กล้องจะเชื่อมต่อกับ Wi-Fi โครงสร้างพื้นฐานโดยใช้ข้อมูลเข้าสู่ระบบที่จัดเก็บไว้
- อุปกรณ์เคลื่อนที่ยังเชื่อมต่อกับ Wi-Fi โครงสร้างพื้นฐานและค้นพบกล้องอีกด้วย
- โดยกล้องจะต้องใช้ mDNS/DNS-SD สำหรับโปรโตคอลการค้นพบในเครื่อง (โปรดดู Discovery)
- ไม่มีข้อกำหนดเฉพาะเกี่ยวกับวิธีติดตั้งใช้งาน (mDNSResponder เป็นข้อมูลอ้างอิงที่ดี)
- ทั้งแอปและกล้องจะสร้างและแชร์ใบรับรองแบบ Self-signed ระหว่างการตั้งค่าโหมดอินเทอร์เน็ต ในระหว่างโหมดอินเทอร์เน็ต ทั้งแอปและกล้องจะตรวจสอบสิทธิ์ระหว่างกันผ่านการตรวจสอบสิทธิ์ SSL ร่วมกัน
- หลังจากพบกล้องแล้ว ระบบจะเปิดใช้การสื่อสารกับไคลเอ็นต์กับกล้องโดยตรงผ่านเครือข่ายภายในที่ใช้ HTTP 1.1 รูปแบบข้อมูลใช้ JSON คำขออาจเป็นคำขอ GET หรือ POST
- แอปจะค้นหารายการไฟล์จากกล้องด้วยคำสั่ง
listFiles
- แอปเริ่มการอัปโหลดด้วยคําสั่ง
uploadFile
เพื่ออัปโหลดรูปภาพหรือวิดีโอจากกล้องไปยังเซิร์ฟเวอร์ของ Street View โดยตรง - แอปจะสำรวจกล้องเป็นระยะๆ เพื่อดูความคืบหน้าในการอัปโหลดด้วยคำสั่ง
status