乐鑫技术交流
直播中

人走了

9年用户 939经验值
擅长:制造/封装 光电显示
私信 关注
[问答]

测试BLE-mesh的通用on.off模型,将多个srv模型订阅到一个组播地址时有的控制会失效的原因?

参考例程;我测试BLE-mesh的通用on.off模型;在单播控制的时候,一切正常,但是当我将多个srv模型订阅到一个组播地址的时候;客户端发送控制命令,经常会出现部分服务端元素没有成功控制,出现没有项目的元素随机出现在不同的NODE上面;但是客户端和服务端都没有任何报错;我的测试NODE有11个元素,其中2-9是onoff服务端模型;设备之间距离很近;麻烦大神给个思路

//以下是客户端

   esp_ble_mesh_generic_client_set_state_t set = {0};

    esp_ble_mesh_client_common_param_t common = {0};

    esp_err_t err = ESP_OK;



    common.opcode = ESP_BLE_MESH_MODEL_OP_GEN_ONOFF_SET_UNACK;

    common.model = onoff_client_pub.model;

    common.ctx.net_idx = store.net_idx;

    common.ctx.app_idx = store.app_idx;

    common.ctx.addr = msg_addr; /* 接收地址 */

    common.ctx.send_ttl = 3;

    common.ctx.send_rel = false;

    common.msg_timeout = 0; /* 0 indicates that timeout value from menuconfig will be used */

    common.msg_role = ROLE_NODE;



    set.onoff_set.op_en = false; /* 设定服务器不用回复信息*/

    set.onoff_set.onoff = msg_onoff;

    set.onoff_set.tid = store.tid++;



    err = esp_ble_mesh_generic_client_set_state(&common, &set);

    if (err)

    {

        ESP_LOGE(TAG, "Send Generic OnOff Set Unack failed");

        return;

    }



另外我如果一个设备上面多个按键,可不可以建立多个元素的onoff客户端;用来响应不同按键;该如何在发送信息的时候区分用哪个元素发出?

更多回帖

发帖
×
20
完善资料,
赚取积分