BTstack从操作流程上可以分为如下几部分:
1、发送 将用户的指示发送出去
2、接收 循环接收和处理从硬件接收的数据
3、处理数据 涉及到蓝牙协议栈或者自己写的APP的处理
以上三步可以归结为两步,接收和处理
以下两步将循环执行:
1、接收 包含用户的指示和设备返回的数据
2、处理 包含将用户的指示发送给蓝牙设备,也可以从收到的数据中记录有用的信息
BTStack支持多操作系统、多接口的硬件
所以从框架上,进入循环之前就应该确定所有的硬件信息。
这意味着,会有多个不同类型的循环,针对不同的系统和不同的硬件接口
如
prot/windows-winusb/main.c
prot/windows-h4/main.c
port/libusb/main.c
蓝牙分层如下上下两层
APP
————————————
GAP 这4层成为host层 发现设备、连接设备 每层都可以提供数据处理函数
GATT 提供服务,有哪些服务,服务由哪些属性组成