ble明明只需要一个服务,一个特征值,就可以进行主从机之间的通信了,假如我是从机同时作为server的话,我就可以用自己的一套通信协议来提供服务了(比如,client发送AT+Temp,server回复温度值)。那ble创建那么多的服务和特征值究竟有什么好处呢?
summer xu:
我想到的有几点:
1. 如果只用一个服务和特征值,一旦被破解,就会变得很不安全;用多个服务和特征值,可以采取不同的通信策略,那么完全破解的几率就降低了
2. 编程更加清晰。无论是ble端还是app端,不同类型的数据采用不同的服务和特征值来处理,可以减少错误的发生
Susan Yang:
这应该和您具体的工程有关,比如您的工程内包含了很多传感器或其他外设,就可以设置多个服务,比如按键服务、心率计服务、温度计服务。
一个服务可以有多个特征值,特征值是主从机传输数据的媒介,像运人渡河的小船。
如果主机要想获得按键服务的特征值,必须先发现按键服务、再获得按键服务的特征值句柄、再根据特征值句柄获取特征值。
Firefly_wlf:
回复 summer xu:
有道理,谢谢
Firefly_wlf:
回复 Susan Yang:
我现在是所有服务都用一个特征值,根据特征值value的不同来区分不同的服务,我想知道的是,这种方式和您说的那种方式比较,有什么弊端呢?
Firefly_wlf:
我发现使用属性可以省却命令的解析过程。