乐鑫技术交流
直播中

申根换

8年用户 1681经验值
私信 关注
[问答]

ble mesh通用控制无法及时响应怎么处理?


[04:30:19:600] <0x1b>[0;32mI (30534) ble_mesh_provisioner: ESP_BLE_MESH_MODEL_OP_GEN_ONOFF_set onoff: 0x00<0x1b>[0m␍␊
[04:30:19:633] <0x1b>[0;32mI (30564) ble_mesh_provisioner: example_ble_mesh_generic_client_cb, error_code = 0x00, event = 0x01, addr: 0x0005, opcode: 0x8202<0x1b>[0m␍␊
[04:30:19:644] <0x1b>[0;32mI (30564) ble_mesh_provisioner: ESP_BLE_MESH_MODEL_OP_GEN_ONOFF_SET onoff: 0x01<0x1b>[0m␍␊
[04:30:21:850] ff01000055␍␊
[04:30:21:850] <0x1b>[0;32mI (32784) ble_mesh_provisioner: ESP_BLE_MESH_MODEL_OP_GEN_ONOFF_set onoff: 0x00<0x1b>[0m␍␊
[04:30:21:904] <0x1b>[0;32mI (32834) ble_mesh_provisioner: example_ble_mesh_generic_client_cb, error_code = 0x00, event = 0x01, addr: 0x0005, opcode: 0x8202<0x1b>[0m␍␊
[04:30:21:915] <0x1b>[0;32mI (32834) ble_mesh_provisioner: ESP_BLE_MESH_MODEL_OP_GEN_ONOFF_SET onoff: 0x00<0x1b>[0m␍
我尝试用串口收命令发mesh消息 但是发现set完了很多时候状态并不变化 比如设置onoff=1,回调回来还是0 我不知道是什么原因导致的。从节点观察是根本没收到此命令,那么这个回调时谁回复的呢?
以下是我的set函数
      ESP_LOGI(TAG, "ESP_BLE_MESH_MODEL_OP_GEN_ONOFF_set onoff: 0x%02x", node->onoff);
              example_ble_mesh_set_msg_common(&common, node, onoff_client.model, ESP_BLE_MESH_MODEL_OP_GEN_ONOFF_SET);
              set_state.onoff_set.op_en = false;
              set_state.onoff_set.onoff = node->onoff;
              set_state.onoff_set.tid = 0;
              set_state.onoff_set.delay = 0;
              node->unicast = address;
              err = esp_ble_mesh_generic_client_set_state(&common, &set_state);
                                                                                                                                                                     

回帖(1)

李霞

2024-6-25 17:03:35
BLE Mesh通用控制无法及时响应的问题可能是由多种原因导致的。以下是一些建议和解决方案,以帮助您解决这个问题:

1. **检查网络连接**:确保您的设备之间的蓝牙连接是稳定的。如果连接不稳定,可能会导致消息传输延迟或丢失。

2. **优化代码**:检查您的代码,确保没有不必要的延时或阻塞操作。优化代码可以提高响应速度。

3. **调整超时设置**:在BLE Mesh协议中,您可以设置消息传输的超时时间。尝试增加超时时间,以便给设备更多的时间来响应。

4. **减少消息负载**:如果消息负载过大,可能会导致传输速度变慢。尝试减少消息负载,例如通过压缩数据或减少发送的数据量。

5. **检查设备性能**:确保您的设备具有足够的处理能力来处理BLE Mesh协议。如果设备性能不足,可能会导致响应速度变慢。

6. **更新固件和软件**:确保您的设备运行的是最新版本的固件和软件。有时,软件更新可能包含性能改进和bug修复。

7. **使用事件回调**:在您的代码中使用事件回调,以便在收到响应时立即处理。这可以避免在等待响应时阻塞其他任务。

8. **调试和日志记录**:使用调试和日志记录功能来跟踪BLE Mesh协议的执行过程。这可以帮助您找到可能导致延迟的问题所在。

9. **测试不同场景**:在不同的场景下测试您的设备,以确定问题是否与特定的环境或条件有关。

10. **寻求专业帮助**:如果您尝试了上述建议,但问题仍然存在,您可能需要寻求专业的技术支持。

关于您提供的日志信息,它显示了一个BLE Mesh通用控制操作的设置和响应。从日志中可以看出,设备尝试发送一个通用开/关操作,并且收到了一个响应。然而,要确定是否存在延迟问题,我们需要更多的上下文信息,例如操作的预期响应时间和实际响应时间。如果响应时间确实过长,您可以尝试上述建议来解决问题。
举报

更多回帖

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