给没有用过zephyr分享下它的蓝牙应用,比如定义一个服务,国民技术的协议是要配置和完成的 代码非常多。
但是在zephyr采用的bluez的协议栈里面,就非常简单,如下面的代码,你只需要完成read_ct, write_ct两个函数,一个读,写服务就完成了。
如果有notify/indicate, 还需要一个函数ct_ccc_cfg_changed。其它的事情都已经在协议栈完成了。
/* Current Time Service Declaration */
BT_GATT_SERVICE_DEFINE(cts_cvs,
BT_GATT_PRIMARY_SERVICE(BT_UUID_CTS),
BT_GATT_CHARACTERISTIC(BT_UUID_CTS_CURRENT_TIME, BT_GATT_CHRC_READ |
BT_GATT_CHRC_NOTIFY | BT_GATT_CHRC_WRITE,
BT_GATT_PERM_READ | BT_GATT_PERM_WRITE,
read_ct, write_ct, ct),
BT_GATT_CCC(ct_ccc_cfg_changed, BT_GATT_PERM_READ | BT_GATT_PERM_WRITE),
); |