510
个编辑
更改
→②扫描(通信RX)
3、根据我们下面拆分的组网流程,对照依次的实验说明,进行mesh组网流程的分步学习。前期实验部分我们主要讲解节点设备,配置者设备功能我们使用手机app完成,目的是减少大家的学习难度,配置者设备我们会放在最后一个实验给大家做介绍。
③入网验证——了解节点设备接入网络的验证过程,实验中使用的是PB-GATT去配置的,包含了:交换公共密钥,完成验证(是否有带外OOB)。
3、PB-GATT,这个是mesh中的GATT承载层,用于我们启动配置过程(当前手机app就是使用PB-GATT,也就是连接之后,通过GATT服务去发送配置信息)。
=== PB-ADV ===
[[文件:PB-GATT-13.png|边框|居中|无框|1200x1200像素]]
[[文件:PB-GATT-14.png|边框|居中|无框]]
=== Publish(模型发布) ===
这一章节我们只给大家讲解模块publish的数据发布流程,暂时不说明模型的创建方法,以及如何使用,这个放在下面单独的模型章节进行说明。
以generic_onoff_server模型为例,我们找到access_model_publish以及access_model_reply函数,这两个函数的功能类似的,都是用于我们用户的模型发送数据的。
其中access_model_publish是用于模型主动发送,而access_model_reply是用于模型给对应的Opcode回应数据。
这里我们以access_model_publish函数为主,来看下发布数据的代码流程。
== ②扫描(通信RX) ==
[[文件:SCAN-05.png|边框|居中|无框|1200x1200像素]]
最后我们来看一下scanner_packet_process_cb()回调函数,其中我们可以直接拿到的扫描的数据包是rx_data,包含了数据的类型、数据内容以及数据长度等等信息。到这边我们的扫描功能是已经完成的,但是我们还需要再看下下面一部分的ad_listener的流程。
订阅Subscription
我们需要注意下ad_listener_process()函数,这个函数是将我们扫描到的订阅数据(不符合标准的BLE广播数据,则认为是侦听到的订阅数据)传递到订阅者进行处理(订阅者指的是带订阅功能的模型)。这个是和我们上方说的关注点二ad_listener_subscribe()函数是一脉相承的。