เปลี่ยนความสามารถที่รันไทม์

เนื่องจากฟีเจอร์ใหม่ (เช่น การปรับขนาดบัฟเฟอร์แบบไดนามิก) เปิดใช้ได้ด้วยการอัปเกรดเฟิร์มแวร์ในผู้ให้บริการ เราจึงต้องการมอบวิธีรับความสามารถของผู้ให้บริการขณะรันไทม์ ผู้ให้บริการควรส่งการแก้ไขเฟิร์มแวร์ไปยังผู้ค้นหาผ่านสตรีมข้อความเมื่อเชื่อมต่อแล้วก่อน เพื่อหลีกเลี่ยงการค้นหาความสามารถซ้ำๆ เราจึงเพิ่มโค้ดข้อความใหม่ลงในกลุ่มข้อความที่มีอยู่ ซึ่งเป็นเหตุการณ์ข้อมูลอุปกรณ์

ชื่อกลุ่มข้อความ ค่า
เหตุการณ์เกี่ยวกับข้อมูลอุปกรณ์ 0x03
ชื่อรหัสข้อความ ค่า
การแก้ไขเฟิร์มแวร์ 0x09

เมื่อได้รับรหัสการแก้ไขเฟิร์มแวร์ ผู้ค้นหาต้องตรวจสอบรหัสดังกล่าวเทียบกับรหัสที่แคชไว้ หากมีการเปลี่ยนแปลงรุ่นเฟิร์มแวร์ Seeker จะอัปเดตรุ่นเฟิร์มแวร์ของแคชและค้นหาความสามารถผ่าน MessageStream

นอกจากนี้ เรายังอนุญาตให้ผู้ให้บริการส่งความสามารถไปยังผู้ค้นหาได้โดยตรงโดยไม่ต้องขอก่อน เนื่องจากเราคาดการณ์ว่าในอนาคตอุปกรณ์ที่มีความซับซ้อนมากขึ้น (อาจเป็นอุปกรณ์ที่ใช้ Android) จะทำการกําหนดค่าแบบไดนามิกตาม Flag สําหรับเฟิร์มแวร์รุ่นเดียวกัน

เราจึงเพิ่มกลุ่มข้อความและรหัสข้อความใหม่ด้านล่าง

ชื่อกลุ่มข้อความ ค่า
เหตุการณ์การซิงค์ความสามารถของอุปกรณ์ 0x06
ชื่อรหัสข้อความ ค่า
คำขออัปเดตความสามารถ (ส่งจาก Seeker) 0x01
การติดตาม FHN 0x03

เมื่อได้รับ 0x0601

  • หากผู้ให้บริการเปิดใช้การรองรับการติดตาม FHN ไว้ ระบบควรตอบสนองดังนี้
อ็อกเท็ต ประเภทข้อมูล คำอธิบาย ค่า
0 uint8 เหตุการณ์การซิงค์ความสามารถของอุปกรณ์ 0x06
1 uint8 การติดตาม FHN 0x03
2 - 3 uint16 ความยาวข้อมูลเพิ่มเติม 0x0007
4 uint8 สถานะการจัดสรร FHN 0x00 หากไม่ได้จัดสรร 0x01 หากจัดสรรโดยบัญชีใดก็ตาม
5 - 10 uint8[] ที่อยู่ MAC ของ BLE ปัจจุบันของอุปกรณ์ แตกต่างกัน