通过无线电发送数据包是通过使用AMSend.send(AM_BROADCAST_ADDR,msg,len)实现的。在receive.receive中,我可以检查从哪个节点获取消息。但是如何将消息发送回我收到消息的同一节点。我有节点ID,如何获取我收到数据的网络地址并发回给它。不仅仅是确认数据包。我收到数据后需要发送数据。任何帮助将不胜感激。
答案 0 :(得分:1)
AMSend.send
的签名是:
command error_t send(am_addr_t addr, message_t* msg, uint8_t len);
其中addr
被记录为发送数据包的地址。 AM_BROADCAST_ADDR
是表示广播地址的常量:发送到该地址的数据包由无线电范围内的所有节点接收。收到数据包并获取发件人的ID后(AMPacket.source
),提供的内容为addr
至AMSend.send
。它具有相同的类型am_addr_t
,它基本上是一个整数(8位或16位)。
请注意,通常在编译或编程节点期间分配id(请参阅this presentation,幻灯片61),并且通常所有节点默认都具有相同的ID,除非您明确指定一个。