开源的,免费的,不需要币的!!!
蓝牙技术联盟官网:
低功耗蓝牙安全学习指南下载地址:
GATT Profiles 下载地址:
Specifications – Bluetooth® Technology Websitehttps://www.bluetooth.com/specifications/specs/
《蓝牙核心规范V5.2》 以及《蓝牙核心规范补充V9》 文档下载地址 :
蓝牙服务,16位UUID的定义:
蓝牙相关一些名词解释:
GAP : Generic Access Profile, 通用访问规范
GATT : Generic Attribute Profile 通用属性规范
L2CAP : Logical Link Control and Adaptation Protocol 逻辑链路控制和适配协议
LMP : Link Manage Protocol 链路管理协议
LL : Link Layer 链路层
notify 方式 和write 方式,传输速度上的差异是什么原因导致的?
Ray.L:
机制和方向上就不同,notify是从设备主动给主设备发,一个连接间隔可以发多包
Ray.L:
write是主设备往从设备发,一般要等从设备发确认收到的包
Ray.L:
所以一个连接间隔只能发1包
关于蓝牙连接参数更新:
struct gapc_conn_param master_role_conn_param = {
.intv_min = 400, // x 1.25ms,(单位是1.25ms)
.intv_max = 400, // x 1.25ms, (单位是1.25ms)
.latency = 0, /*代表从机连接时延的个数 (在两个设备中,主机允许从机在没有数据发送的情况下,从机可以忽略主机发过来的包,不必应答主机,可以一定程度解决从机功耗高的问题,
但是主机是必须每个间隔都发心跳包的,所以该参数不能降低书记段的功耗)*/
.time_out = 500, // x 10ms
};
这个交换参数的过程都是要握手几次的,所以这几次交互都是按连接间隔的时间来交换数据,而且一般要约定在几个间隔后切换。大致是6个连接间隔,具体还要查查规范。 假设500s连接间隔,那新的连接参数更新成功起码要3秒以上了。
详细参数参考 《Core_V5.2》12.3 PERIPHERAL PREFERRED CONNECTION
PARAMETERS CHARACTERISTIC