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

Vì bạn có thể bật các tính năng mới (ví dụ: định kích thước vùng đệm động) bằng cách nâng cấp chương trình cơ sở 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 tính 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 chương trình cơ sở cho Trình tìm kiếm thông qua luồng thông báo 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 tin nhắn hiện có, đó là 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ị
Hiệu chỉnh chương trình cơ sở 0x09

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ở đã được 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ể chạy 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 chương trình cơ sở.

Vì vậy, chúng ta thêm bên dưới một nhóm tin nhắn và mã tin nhắn mớ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 tính năng (gửi từ Người tìm kiếm) 0x01
Theo dõi FMDN 0x03

Sau khi nhận 0x0601,

  • nếu Nhà cung cấp đã bật tính năng hỗ trợ theo dõi FMDN, thì Nhà cung cấp sẽ phản hồi như sau:
Hình bát giác Loại dữ liệu Nội dung 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 FMDN 0x03
2 – 3 uint16 Thời lượng dữ liệu bổ sung 0x0007
4 uint8 Trạng thái cấp phép FMDN 0x00 nếu không được cấp phép; 0x01 nếu được bất kỳ tài khoản nào cấp phép
5 - 10 uint8[] Địa chỉ BLE MAC hiện tại của thiết bị không cố định