Thay đổi chức năng trong thời gian chạy

Vì các tính năng mới (ví dụ: định cỡ vùng đệm động) có thể được bật bằng cách nâng cấp firmware trên Nhà cung cấp, nên chúng tôi muốn cung cấp một cách để có được các chức năng của Nhà cung cấp trong thời gian chạy. Để tránh truy vấn liên tục các chức năng, trước tiên, Nhà cung cấp phải gửi bản sửa đổi firmware đến Trình tìm kiếm thông qua luồng tin nhắn khi được kết nối. Vì vậy, chúng ta thêm một mã thông báo mới vào nhóm thông báo hiện có, sự kiện thông tin thiết bị.

Tên nhóm tin nhắn Giá trị
Sự kiện thông tin thiết bị 0x03
Tên mã thông báo Giá trị
Bản sửa đổi chương trình cơ sở 0x09

Sau khi nhận được mã sửa đổi chương trình cơ sở, Trình tìm kiếm sẽ kiểm tra mã đó với mã đã lưu vào bộ nhớ đệm. Nếu bản sửa đổi chương trình cơ sở đã thay đổi, Trình tìm kiếm sẽ cập nhật bản sửa đổi chương trình cơ sở của bộ nhớ đệm và truy vấn các chức năng thông qua Luồng thông báo.

Chúng tôi cũng cho phép Nhà cung cấp trực tiếp đẩy các chức năng đến Trình tìm kiếm mà không cần yêu cầu trước, vì chúng tôi cho rằng trong tương lai, các thiết bị tinh vi hơn (có thể dựa trên Android) sẽ định cấu hình động dựa trên cờ cho cùng một bản sửa đổi phần mềm.

Vì vậy, chúng ta sẽ thêm một nhóm tin nhắn và mã tin nhắn mới ở bên dưới.

Tên nhóm tin nhắn Giá trị
Sự kiện đồng bộ hoá chức năng của thiết bị 0x06
Tên mã thông báo Giá trị
Yêu cầu cập nhật chức năng (gửi từ Seeker) 0x01
Theo dõi FHN 0x03

Khi nhận được 0x0601,

  • nếu Nhà cung cấp đã bật tính năng hỗ trợ theo dõi FHN, thì nhà cung cấp sẽ phản hồi như sau:
Octet Loại dữ liệu Mô tả Giá trị
0 uint8 Sự kiện đồng bộ hoá chức năng của thiết bị 0x06
1 uint8 Theo dõi FHN 0x03
2 – 3 uint16 Độ dài dữ liệu bổ sung 0x0007
4 uint8 Trạng thái cấp phép FHN 0x00 nếu chưa được cấp phép; 0x01 nếu được cấp phép bởi bất kỳ tài khoản nào
5 - 10 uint8[] Địa chỉ MAC BLE hiện tại của thiết bị thay đổi