找回密码
 立即注册

微信扫码登录

查看: 227|回复: 8

[BLE Mesh] Smart Provision失败

[复制链接]

8

主题

8

回帖

108

积分

荣耀黄金

积分
108
发表于 2024-11-29 10:30:33 | 显示全部楼层 |阅读模式
Information
说明:   建议参照本版块置顶帖内容输入必要信息
芯片型号: TLSR8258
SDK及版本: tc_ble_mesh-V4.1.0.1
我想使用gateway⼯程的⼀键组⽹(Smart Provision),但是由于目前板上没有合适的按键,于是把按键按下调用的组网函数mesh_smart_provision_start()修改成串口指令调用,但是发现组网失败,在void mesh_pro_rc_beacon_dispatch(pro_PB_ADV *p_adv,u8 *p_mac)里provision_mag.pro_stop_flag标志位没有修改函数返回了,在if(memcmp(gateway_connect_filter,p_mac,sizeof(gateway_connect_filter)))里mac没有指定函数返回了,在if(!get_gateway_provisison_sts())状态没有修改函数返回了...

按照手册说明“⽹关⼀键配⽹功能,使能此功能把8258_mesh_gw.bin⽂件烧录到8258dongle后按配⽹键SW2,⽹关⾃动把⼀跳范围内的未配⽹节点加⼊到⽹络。30秒内搜不到未配⽹节点退出配⽹流程,按SW1可控制⽹络内节点的开关。”这些参数应该是不需要自行设置的吧?请赐教。

5

主题

68

回帖

323

积分

版主

积分
323
发表于 2024-12-2 13:08:58 | 显示全部楼层
节点端有打开PROVISION_FLOW_SIMPLE_EN吗?首先确认有没有扫描到设备

8

主题

8

回帖

108

积分

荣耀黄金

积分
108
 楼主| 发表于 2024-12-3 18:18:32 | 显示全部楼层
TL_HSF 发表于 2024-12-2 13:08
节点端有打开PROVISION_FLOW_SIMPLE_EN吗?首先确认有没有扫描到设备

打开了,可以扫描到。provision_mag.pro_stop_flag可能是在void mesh_smart_provision_proc()的case SMART_CONFIG_SCAN_START:return my_fifo_push_hci_rx_fifo(scan, sizeof(scan), 0, 0);里设置的吧?之前没有使用blc_register_hci_handler (blc_rx_from_uart, blc_hci_tx_to_uart);所以没设置成功,现在使用了,void mesh_pro_rc_beacon_dispatch(pro_PB_ADV *p_adv,u8 *p_mac)里provision_mag.pro_stop_flag标志位自动变更,函数不会返回了。
但是在if(memcmp(gateway_connect_filter,p_mac,sizeof(gateway_connect_filter)))里gateway_connect_filter = 00 00 00 00 00 00 ,函数返回了。请赐教。

8

主题

8

回帖

108

积分

荣耀黄金

积分
108
 楼主| 发表于 2024-12-4 16:44:53 | 显示全部楼层
cqian 发表于 2024-12-3 18:18
打开了,可以扫描到。provision_mag.pro_stop_flag可能是在void mesh_smart_provision_proc()的case SMAR ...

基于接收到的beacon自行添加MAC过滤白名单代码,则可以成功组网。否则,函数一直返回。不知是否哪里操作不当。

5

主题

68

回帖

323

积分

版主

积分
323
发表于 2024-12-5 14:25:19 | 显示全部楼层
看描述是改了一些东西导致的问题,建议先用我们原始sdk的demo试下

5

主题

68

回帖

323

积分

版主

积分
323
发表于 2024-12-5 14:25:31 | 显示全部楼层
只需要把  节点端的PROVISION_FLOW_SIMPLE_EN打开,网关的SMART_PROVISION_ENABLE打开,网关调用mesh_smart_provision_start()就可启动一键配网流程的。

5

主题

68

回帖

323

积分

版主

积分
323
发表于 2024-12-5 14:26:18 | 显示全部楼层
看了下代码,smart provision共4条命令,通过my_fifo_push_hci_rx_fifo()往hci rx fifo压命令包来模拟上位机的点击操作来实现本地组网 。走到GATEWAY_START_PROVISION_HEAD状态的时候,如果收到unprovision beaon中的uuid在smart_white_list_cnt中,会直接进行组网,不需要判断gateway_connect_filter
微信图片_20241205142439.png
微信图片_20241205142601.png

8

主题

8

回帖

108

积分

荣耀黄金

积分
108
 楼主| 发表于 2024-12-6 09:22:02 | 显示全部楼层
TL_HSF 发表于 2024-12-5 14:26
看了下代码,smart provision共4条命令,通过my_fifo_push_hci_rx_fifo()往hci rx fifo压命令包来模拟上位 ...

明白,感谢。是由于操作不当让else分支没有起该有的作用导致的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Telink forum ( 沪ICP备17008231号-1 )

GMT+8, 2024-12-22 01:50 , Processed in 0.090881 second(s), 26 queries .

Powered by Telink 隐私政策

泰凌微电子版权所有 © 。保留所有权利。 2024

快速回复 返回顶部 返回列表