BLE

Mô-đun này bao gồm tính năng tóm tắt nền tảng để giao tiếp với Máy chủ BLE.

Tóm tắt

Nền tảng này cần triển khai Bluetooth LE 4.2 trở lên.

Typedef

otBleRadioPacket typedef
Đại diện cho gói BLE.

Hàm

otPlatBleDisable(otInstance *aInstance)
Tắt đài phát Bluetooth năng lượng thấp.
otPlatBleEnable(otInstance *aInstance)
Bật đài phát Bluetooth năng lượng thấp.
otPlatBleGapAdvStart(otInstance *aInstance, uint16_t aInterval)
Bắt đầu quy trình Quảng cáo BLE.
otPlatBleGapAdvStop(otInstance *aInstance)
Dừng quy trình Quảng cáo BLE.
otPlatBleGapDisconnect(otInstance *aInstance)
Ngắt kết nối BLE.
otPlatBleGapOnConnected(otInstance *aInstance, uint16_t aConnectionId)
void
Trình điều khiển BLE gọi phương thức này để thông báo cho OpenThread rằng một Thiết bị trung tâm BLE đã được kết nối.
otPlatBleGapOnDisconnected(otInstance *aInstance, uint16_t aConnectionId)
void
Trình điều khiển BLE gọi phương thức này để thông báo cho OpenThread rằng Thiết bị trung tâm BLE đã bị ngắt kết nối.
otPlatBleGattMtuGet(otInstance *aInstance, uint16_t *aMtu)
Các lượt đọc hiện sử dụng giá trị ATT_MTU.
otPlatBleGattOnMtuUpdate(otInstance *aInstance, uint16_t aMtu)
void
Trình điều khiển BLE gọi phương thức này để thông báo cho OpenThread rằng ATT_MTU đã được cập nhật.
otPlatBleGattServerIndicate(otInstance *aInstance, uint16_t aHandle, const otBleRadioPacket *aPacket)
Gửi chỉ báo giá trị tên người dùng theo ATT.
otPlatBleGattServerOnWriteRequest(otInstance *aInstance, uint16_t aHandle, const otBleRadioPacket *aPacket)
void
Trình điều khiển BLE gọi phương thức này để thông báo cho OpenThread rằng đã nhận được gói Yêu cầu ghi ATT.

Cấu trúc

otBleRadioPacket

Đại diện cho gói BLE.

Typedef

otBleRadioPacket

struct otBleRadioPacket otBleRadioPacket

Đại diện cho gói BLE.

Hàm

otPlatBleDisable

otError otPlatBleDisable(
  otInstance *aInstance
)

Tắt đài phát Bluetooth năng lượng thấp.

Khi bạn tắt chính sách này, ngăn xếp BLE sẽ xoá hàng đợi sự kiện và không tạo sự kiện mới. Thiết bị ngoại vi BLE bị tắt hoặc chuyển sang trạng thái ngủ khi pin yếu. Mọi bộ nhớ động mà ngăn xếp sử dụng sẽ được giải phóng, nhưng có thể vẫn sẽ dành riêng bộ nhớ tĩnh.

Thông tin chi tiết
Thông số
[in] aInstance
Cấu trúc thực thể OpenThread.
Giá trị trả về
OT_ERROR_NONE
Đã chuyển đổi thành công sang trạng thái tắt.
OT_ERROR_FAILED
Không thể tắt đài BLE.

otPlatBleEnable

otError otPlatBleEnable(
  otInstance *aInstance
)

Bật đài phát Bluetooth năng lượng thấp.

Thông tin chi tiết
Thông số
[in] aInstance
Cấu trúc thực thể OpenThread.
Giá trị trả về
OT_ERROR_NONE
Đã bật thành công.
OT_ERROR_FAILED
Không thể bật đài BLE.

otPlatBleGapAdvStart

otError otPlatBleGapAdvStart(
  otInstance *aInstance,
  uint16_t aInterval
)

Bắt đầu quy trình Quảng cáo BLE.

Thiết bị BLE sẽ sử dụng quảng cáo không được chuyển hướng và không áp dụng bộ lọc. Bạn phải gửi một gói Quảng cáo BLE trên tất cả các kênh quảng cáo (37, 38 và 39).

Thông tin chi tiết
Thông số
[in] aInstance
Cấu trúc thực thể OpenThread.
[in] aInterval
Khoảng thời gian giữa các gói quảng cáo tiếp theo trong đơn vị OT_BLE_ADV_INTERVAL_UNIT. Phải nằm trong phạm vi OT_BLE_ADV_INTERVAL_MIN và OT_BLE_ADV_INTERVAL_MAX hoặc OT_BLE_ADV_INTERVAL_DEFAULT cho một giá trị mặc định được đặt tại thời gian biên dịch.
Giá trị trả về
OT_ERROR_NONE
Quy trình quảng cáo đã được bắt đầu.
OT_ERROR_INVALID_STATE
Thiết bị BLE đang ở trạng thái không hợp lệ.
OT_ERROR_INVALID_ARGS
Giá trị khoảng thời gian không hợp lệ đã được cung cấp.

otPlatBleGapAdvStop

otError otPlatBleGapAdvStop(
  otInstance *aInstance
)

Dừng quy trình Quảng cáo BLE.

Thông tin chi tiết
Thông số
[in] aInstance
Cấu trúc thực thể OpenThread.
Giá trị trả về
OT_ERROR_NONE
Quy trình quảng cáo đã dừng.
OT_ERROR_INVALID_STATE
Thiết bị BLE đang ở trạng thái không hợp lệ.

otPlatBleGapDisconnect

otError otPlatBleGapDisconnect(
  otInstance *aInstance
)

Ngắt kết nối BLE.

Thiết bị BLE phải sử dụng mã lý do Kết nối bị chấm dứt do người dùng từ xa (0x13) khi ngắt kết nối khỏi thiết bị BLE ngang hàng.

Thông tin chi tiết
Thông số
[in] aInstance
Cấu trúc thực thể OpenThread.
Giá trị trả về
OT_ERROR_NONE
Quy trình ngắt kết nối đã bắt đầu.
OT_ERROR_INVALID_STATE
Thiết bị BLE đang ở trạng thái không hợp lệ.

otPlatBleGapOnConnected

void otPlatBleGapOnConnected(
  otInstance *aInstance,
  uint16_t aConnectionId
)

Trình điều khiển BLE gọi phương thức này để thông báo cho OpenThread rằng một Thiết bị trung tâm BLE đã được kết nối.

Thông tin chi tiết
Thông số
[in] aInstance
Cấu trúc thực thể OpenThread.
[in] aConnectionId
Giá trị nhận dạng của kết nối mở.

otPlatBleGapOnDisconnected

void otPlatBleGapOnDisconnected(
  otInstance *aInstance,
  uint16_t aConnectionId
)

Trình điều khiển BLE gọi phương thức này để thông báo cho OpenThread rằng Thiết bị trung tâm BLE đã bị ngắt kết nối.

Thông tin chi tiết
Thông số
[in] aInstance
Cấu trúc thực thể OpenThread.
[in] aConnectionId
Giá trị nhận dạng của kết nối đã đóng.

otPlatBleGattMtuGet

otError otPlatBleGattMtuGet(
  otInstance *aInstance,
  uint16_t *aMtu
)

Các lượt đọc hiện sử dụng giá trị ATT_MTU.

Thông tin chi tiết
Thông số
[in] aInstance
Cấu trúc thực thể OpenThread.
[out] aMtu
Một con trỏ để xuất giá trị ATT_MTU hiện tại.
Giá trị trả về
OT_ERROR_NONE
Giá trị ATT_MTU đã được đặt trong aMtu.
OT_ERROR_FAILED
Thiết bị BLE không thể xác định ATT_MTU của thiết bị.

otPlatBleGattOnMtuUpdate

void otPlatBleGattOnMtuUpdate(
  otInstance *aInstance,
  uint16_t aMtu
)

Trình điều khiển BLE gọi phương thức này để thông báo cho OpenThread rằng ATT_MTU đã được cập nhật.

Thông tin chi tiết
Thông số
[in] aInstance
Cấu trúc thực thể OpenThread.
[in] aMtu
Giá trị ATT_MTU đã cập nhật.

otPlatBleGattServerIndicate

otError otPlatBleGattServerIndicate(
  otInstance *aInstance,
  uint16_t aHandle,
  const otBleRadioPacket *aPacket
)

Gửi chỉ báo giá trị tên người dùng theo ATT.

Thông tin chi tiết
Thông số
[in] aInstance
Cấu trúc thực thể OpenThread.
[in] aHandle
Tên người dùng của thuộc tính cần biểu thị.
[in] aPacket
Con trỏ đến gói chứa giá trị cần chỉ ra.
Giá trị trả về
OT_ERROR_NONE
Đã gửi Chỉ báo giá trị tên người dùng ATT.
OT_ERROR_INVALID_STATE
Thiết bị BLE đang ở trạng thái không hợp lệ.
OT_ERROR_INVALID_ARGS
Giá trị xử lý không hợp lệ, dữ liệu hoặc độ dài dữ liệu đã được cung cấp.
OT_ERROR_NO_BUFS
Không tìm thấy vùng đệm nội bộ nào.

otPlatBleGattServerOnWriteRequest

void otPlatBleGattServerOnWriteRequest(
  otInstance *aInstance,
  uint16_t aHandle,
  const otBleRadioPacket *aPacket
)

Trình điều khiển BLE gọi phương thức này để thông báo cho OpenThread rằng đã nhận được gói Yêu cầu ghi ATT.

Thông tin chi tiết
Thông số
[in] aInstance
Cấu trúc thực thể OpenThread.
[in] aHandle
Tên người dùng của thuộc tính được viết.
[in] aPacket
Con trỏ đến gói chứa giá trị sẽ được ghi vào thuộc tính.

Macro

OT_BLE_ADV_INTERVAL_DEFAULT

 OT_BLE_ADV_INTERVAL_DEFAULT 100

Khoảng thời gian mặc định cho gói quảng cáo (mili giây).

OT_BLE_ADV_INTERVAL_MAX

 OT_BLE_ADV_INTERVAL_MAX 0x4000

Khoảng thời gian tối đa cho phép đối với gói quảng cáo bằng đơn vị OT_BLE_ADV_INTERVAL_UNIT (10,24 giây).

OT_BLE_ADV_INTERVAL_MIN

 OT_BLE_ADV_INTERVAL_MIN 0x0020

Khoảng thời gian cho phép tối thiểu cho gói quảng cáo bằng đơn vị OT_BLE_ADV_INTERVAL_UNIT (20 mili giây).

OT_BLE_ADV_INTERVAL_UNIT

 OT_BLE_ADV_INTERVAL_UNIT OT_BLE_TIMESLOT_UNIT

Đơn vị dùng để tính toán khoảng thời gian (0,625 mili giây).

OT_BLE_ATT_MTU_MAX

 OT_BLE_ATT_MTU_MAX 67

Kích thước MTU ATT tối đa được phép (phải lớn hơn 23).

OT_BLE_DEFAULT_POWER

 OT_BLE_DEFAULT_POWER 0

Giá trị nguồn mặc định cho BLE.

OT_BLE_TIMESLOT_UNIT

 OT_BLE_TIMESLOT_UNIT 625

Thời lượng khe thời gian trên lớp PHY tính bằng micrô giây (0,625 mili giây).

Tài nguyên

Các chủ đề tham khảo API OpenThread bắt nguồn từ mã nguồn, có trên GitHub. Để biết thêm thông tin hoặc để đóng góp cho tài liệu của chúng tôi, hãy tham khảo Tài nguyên.