1. BLE属性协议(ATT)基础解析
第一次接触BLE开发时,我被一堆术语搞得晕头转向——GATT、ATT、Characteristic、Service...直到真正理解了ATT协议,才发现这些概念原来如此清晰。ATT(Attribute Protocol)就像BLE世界的"快递系统",它定义了数据如何打包、运输和签收的规则。
想象你有一个智能手环,它每秒都在产生心率数据。这些数据需要传输到手机APP上显示,ATT就是确保这个传输过程可靠有序的底层协议。它采用经典的C/S架构:
- Server:像仓库管理员,存储所有数据属性(比如心率值、电量等)
- Client:像快递员,主动发起请求获取或修改数据
最妙的是ATT的"懒人模式"——当手环的心率数据变化时,Server可以主动通知Client(专业术语叫Notification),避免了手机不断轮询查询的耗电操作。这就像快递员不用每天敲门问"有包裹吗?",而是等你有了包裹主动打电话叫他来取。
2. ATT权限机制:数据安全的四道门禁
去年给医院做智能体温贴项目时,我们踩过一个坑:患者的体温数据竟然能被隔壁床的手机读取!这才意识到ATT权限配置的重要性。BLE通过四层权限机制构建数据安全防线:
2.1 访问权限(Access Permission)
就像办公室的门禁卡,决定谁能进哪个区域:
#define GATT_PERMIT_READ 0x01 // 只读权限
#define GATT_PERMIT_WRITE 0x02 // 只写权限
实际项目中,体温数据我们配置为只读,防止被恶意篡改;而报警阈值参数则开放读写,让护士可以调整。
2.2 加密权限(Encryption Permission)
数据传送时的"保险箱":
#define GATT_

1855

被折叠的 条评论
为什么被折叠?



