乐鑫技术交流
直播中

王锦霞

7年用户 930经验值
私信 关注
[问答]

请问ble_mesh的node和node之间是否要定义协议通讯?


1.当一个provisioner和多个Node组成一个ble mesh网络,如果Provisioner想和某个Node通讯,但是他们的距离超过了30米,得借助另一个Node作为桥梁,那么就涉及到Node之间的通讯,这要怎么实现呢?
2.例如某个Node节点在组网的时候被编号01,请问Provisioner和这个Node通讯的格式是?要用什么格式互相收发数据?
3.贵司的demo代码,当provisioner和node组网后,可否调用prov_send(buf)函数进行通讯,比如data的收发?
4.ble_mesh_client_model的代码说明里,
After both onoff client and server devices are provisioned, use UART1 to input the unicast address of the element within the server device;
如何使用UART1输入unicast address呢?
                                                                                                                                                              

回帖(1)

lique

2024-6-26 17:16:33
BLE Mesh是一种基于蓝牙低功耗技术的网络协议,用于实现设备之间的通信。以下是针对您的问题的回答:

1. 在BLE Mesh网络中,节点之间的通信是通过广播和中继的方式实现的。当一个Provisioner与一个距离较远的Node通信时,可以借助其他Node作为中继节点。这些中继节点会将消息从一个节点转发到另一个节点,直到消息到达目标节点。这种通信方式不需要定义额外的协议,因为BLE Mesh协议已经包含了节点之间的通信机制。

2. 当Provisioner与Node通信时,它们使用BLE Mesh协议定义的数据格式进行通信。具体来说,数据包包括以下部分:
   - 消息类型(例如,On/Off消息)
   - 目标地址(Node的地址)
   - 发送者地址(Provisioner的地址)
   - 消息有效载荷(例如,开关状态)

3. 是的,当Provisioner和Node组网后,可以使用prov_send(buf)函数进行通信。这个函数通常用于发送数据包,例如发送On/Off消息。在接收端,Node需要实现相应的回调函数来处理接收到的数据。

4. 根据您提供的代码说明,当On/Off客户端和服务器设备都被配置后,可以使用UART1进行输入和输出。这意味着,您可以使用UART1接口来与设备进行通信,例如发送命令或接收设备的状态信息。具体的实现方式取决于您的硬件平台和软件环境。

总之,BLE Mesh协议已经包含了节点之间的通信机制,您只需要遵循协议规范进行开发。在实际应用中,您可能需要根据具体需求调整通信参数和实现细节。
举报

更多回帖

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