玩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信息 通道发送请求数据的命令,接下来就会从数据源哪里接收信息数据!


这次先写到这先,有什么不对的地方,请各位多多指教!!谢谢!