玩BLE4.0也有一段时间了,有个自己一直都懂,但又容易混淆的问题,我今天写文档梳理一下!
BLE4.0 在手环开发的时候,一般是作为从机开发的,而手机端就作为主机进行控制的。而在BLE4.0里面又可以细分了很多的服务,就是我们平时经常用到UUID,这个大家比较容易通俗的明白。比如一个UUID里面可以配置为 server和client端两种角色。
1.正常的UUID,比如我们的A500 UUID,他是作为 server端的,他可以在他基础上增加多个Characteristic
而每个Characteristic 可以有多个用途,如下面:
read
write_wo_resp手机client端可以通过这个通道发送数据给手环这边
write 手机client端可以通过这个通道发送数据给手环这边
notify
indicate 在手机client上,打开这个通道以后,手环可以使用这个通道发送数据,这比notify通道多一个发送完确认的应答信号,安全点!
这样在手机client端就可以发现到这些服务,进行数据传输了。
2. 标准的ANCS服务,这个跟A5是反过来的角色,手机在这边做server端,而手环这边做client端,其实可以从手环ANCS代码上分析,其实就是增加了一个ANCS的服务,服务里面包含3个Characteristic,分别为
1.通知源。
2.写control信息。 相当于write
3.数据源
当我们手环client端发现ANCS服务后,分别去打开通知源和数据的通道,这样下次有信息提醒时,通知源就会有数据下来,再通过写control信息 通道发送请求数据的命令,接下来就会从数据源哪里接收信息数据!
这次先写到这先,有什么不对的地方,请各位多多指教!!谢谢!