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 |