如何使用tinyOS在传感器节点中进行双向通信?

时间:2016-10-03 16:29:56

标签: tinyos nesc

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

1 个答案:

答案 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),提供的内容为addrAMSend.send。它具有相同的类型am_addr_t,它基本上是一个整数(8位或16位)。

请注意,通常在编译或编程节点期间分配id(请参阅this presentation,幻灯片61),并且通常所有节点默认都具有相同的ID,除非您明确指定一个。