蓝牙mesh组网实践(mesh节点网络参数查询)
当调试蓝牙mesh组网时出现无法通信的情况时,可以检查收发双方的网络参数来判断是否有网络信息丢失。
本文汇总了常用的网络参数排查接口。
PRINT("\n"); //XXX JW 打印本节点主元素地址 PRINT("node_addr =%d\n", bt_mesh_primary_addr()); PRINT("\n"); //XXX JW 打印本节点的包序列号 PRINT("seq_num =%d\n", bt_mesh_seq_get()); PRINT("\n"); //XXX JW 打印当前的初始化向量索引 PRINT("iv_index =%d\n", bt_mesh_iv_index_get()); PRINT("\n"); //XXX JW 打印已订阅的组播地址 for(uint8_t i=0; i<CONFIG_MESH_MOD_GROUP_COUNT_DEF; i++) { PRINT("group_addr[%d] =0x%x\n", i, vnd_models[0].groups[i]); } PRINT("\n"); //XXX JW 打印绑定到透传模型的应用密钥索引app key index以及对应的应用密钥app key for(uint8_t i=0; i<CONFIG_MESH_MOD_KEY_COUNT_DEF; i++) { PRINT("app_key_index[%d] =0x%x\n", i, vnd_models[0].keys[i]); if(vnd_models[0].keys[i] != 0xFFFF) { struct bt_mesh_app_key *temp_st_app_key; temp_st_app_key = bt_mesh_app_key_find(vnd_models[0].keys[i]); PRINT("app_key"); for(uint8_t j=0; j<16; j++) {//打印第一组app key。第二组app key在更新app key时才会用到,一般用不到。 PRINT(" 0x%02x", temp_st_app_key->keys[0].val[j]); } PRINT("\n"); } else { PRINT("app_key_index_not_used [%d]\n", i); } } PRINT("\n"); //XXX JW 打印已接收到的RPL struct bt_mesh_rpl rpl_test_buff[CONFIG_MESH_RPL_COUNT_DEF] = {0}; //数组长度不能小于CONFIG_MESH_RPL_COUNT_DEF,否则可能导致写数组溢出复位 bt_mesh_rpl_list_get(rpl_test_buff); for(uint8_t i=0; i<CONFIG_MESH_RPL_COUNT_DEF; i++) { PRINT("rpl[%d] addr=%x squ=%d\n", i, rpl_test_buff[i].src, rpl_test_buff[i].seq); } PRINT("\n"); //XXX JW 没有应用层改动时,为静态变量,见app.c的self_prov_dev_key数组 PRINT("dev_key -> Saerch 'self_prov_dev_key' in 'app.c'\n");
                    
                
                
            
        
浙公网安备 33010602011771号