AWTK 的低功耗蓝牙 (BLE) 插件

BLE

AWTK 的低功耗蓝牙 (BLE) 插件

包含头文件

#include "ble/ble.h"

调用方法

    1. 创建 ble 对象。

如:

  ble_t* ble = ble_create();
    1. 扫描设备

扫描前先要注册 on_device_found 回调函数,每扫描到一个设备就会调用该回调函数。

static ret_t ble_main_on_device_found(void* ctx, ble_device_t* device) {
     
  ...
  return RET_OK;
}

ble_set_on_device_found(ble, ble_main_on_device_found, win);
  ble_start_scan(ble);
    1. 连接设备

当 on_device_services_discovered 被调用时,设备才真正连接,之后才能收发数据。

注册回调函数:

static ret_t ble_deivce_on_device_services_discovered(void* ctx, ble_device_t* device) {
     

  return RET_OK;
}

ble_set_on_device_services_discovered(device->ble, ble_deivce_on_device_services_discovered, win);
  ble_connect_to(ble, address);
    1. 收发数据。

收发数据是异步的,先注册相应的回调函数,再收发数据。


  ble_set_on_characteristic_write(device->ble, ble_on_characteristic_write, win);
  ble_set_on_characteristic_read(device->ble, ble_on_characteristic_read, win);
  ble_read_characteristic(device->ble, device->id, achar->id);
  ble_write_characteristic(device->ble, device->id, achar->id, data, FALSE);
    1. 主动上报的数据

注册 on_characteristic_changed 即可。

  ble_set_on_characteristic_changed(device->ble, ble_on_characteristic_changed, win);

完整示例请参考 demo。

API

BLE API

你可能感兴趣的:(ZLG开源GUI,AWTK,AWTK,BLE)