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