BLE属性数据库及c/s模式读写方法与图解

本文探讨了蓝牙低功耗(BLE)技术中客户端-服务器结构的特点,并详细介绍了Notify与Indication两种服务端主动发送数据至客户端的通信方式。文章对比了两者之间的区别,Notify为无确认机制的数据发送方式,而Indication则具备确认机制,确保数据正确到达的同时还实现了流量控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     BLE采用的是 客户端-服务器的结构。该结构中通常只有客户端去读写服务器,服务器不会主动发数据给客户端,但是BLE的应用中比如一个防丢器,防丢器作为服务器,手机作为客户端,防丢器需要告诉手机自己的电量,一种方式是手机定时周期性的读,另一种更有效的方式是 防丢器自己电量发生改变的时候才主动发送改变的电量给手机。 所以为了应用于种类场景,BLE中定义了 notfiy和indication这两种由服务端主动发送数据给客户端通信方式。

  PS:notify和indication的区别在于,notify只是将你要发的数据发送给手机,没有确认机制,不会保证数据发送是否到达。而indication的方式在手机收到数据时会主动回一个ack回来。即有确认机制,只有收到这个ack你才能继续发送下一个数据。这保证了数据的正确到达,也起到了流控的作用。

    上面说过 本质上数据的传输实际上通过 名为 特性值 的属性条目中的那个 属性值 来进行的。你可以将属性值其想像成一个数组,当手机发向某个特性值写送数据过来时,设备协议找收到数据会对写到特性值对应的那个数组上。 而设备想向手机发数据时先写到对应的那个数据buff中,然后协议栈再提取数组数据将其发送出去。

      其它的详细信息,及详细的图形描述,请参考如下网址:

     http://blog.youkuaiyun.com/lilifang_2011/article/details/72875589 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值