2

使用 AMSend.send(AM_BROADCAST_ADDR, msg, len) 可以通过无线电发送数据包。在 receive.receive 中,我可以检查我从哪个节点收到消息。但是如何将消息发送回我收到消息的同一节点。我有节点 ID,如何获取接收数据的网络地址并将其发回给它。不仅仅是确认数据包。收到数据后,我需要发送数据。任何帮助将不胜感激。

4

1 回答 1

1

的签名AMSend.send是:

command error_t send(am_addr_t addr, message_t* msg, uint8_t len);

whereaddr记录为发送数据包的地址AM_BROADCAST_ADDR是一个常数,表示广播地址:发送到该地址的数据包被无线电范围内的所有节点接收。一旦你收到一个数据包并获得了发件人的 id (by AMPacket.source),提供 as addrto AMSend.send。它具有相同的类型am_addr_t,基本上是一个整数(8 位或 16 位)。

请注意,通常会在编译或编程节点期间分配 id(请参阅此演示文稿,幻灯片 61),并且通常默认情况下所有节点都具有相同的 id,除非您明确分配一个。

于 2016-10-03T21:00:45.353 回答