我的拓扑是:
T1 - T2 - T4
- T3 -
Thread MTD 设备 (T4) 随机分配了它的 IPv6 地址。
如果我不知道该地址,如何将数据包从 T1(通过 NCP、wpan0 接口的 FTD)寻址到 T4。如何解决?
我尝试使用服务 API,但没有成功。是否可以在 MTD 上注册服务,如果可以,线程网络是否会将服务 RLOC16 分配给
我的拓扑是:
T1 - T2 - T4
- T3 -
Thread MTD 设备 (T4) 随机分配了它的 IPv6 地址。
如果我不知道该地址,如何将数据包从 T1(通过 NCP、wpan0 接口的 FTD)寻址到 T4。如何解决?
我尝试使用服务 API,但没有成功。是否可以在 MTD 上注册服务,如果可以,线程网络是否会将服务 RLOC16 分配给
IPv6 地址和/或设备发现被视为应用层服务,超出了 Thread 的范围。其他人已经实现的一些应用层机制包括:
希望有帮助。
最简单的方法——我认为——是发送一个广播请求消息(使用多播地址,例如 ff03::2),每个设备都必须对此进行回复。
一旦您从设备获得响应消息,您应该也能够获得发件人的 IPv6 地址。发件人地址信息位于otMessageInfo
.
请参阅git上cli_udp_example.cpp上的示例。
void UdpExample::HandleUdpReceive(otMessage *aMessage, const otMessageInfo *aMessageInfo)