Contiki Rime堆栈如何在Example_Broadcast中获取广播ID

时间:2019-01-03 08:38:59

标签: microcontroller contiki texas-instruments

我正在研究contiki的Rime堆栈的广播示例:

https://github.com/contiki-os/contiki/blob/master/examples/rime/example-broadcast.c

接收广播时,我可以轻松读出发件人ID:

broadcast_recv(struct broadcast_conn *c, const linkaddr_t *from)
{
  printf("Sender: %d.%d\n", from->u8[0], from->u8[1]);
}

但是如何获取“我的” /当前节点的ID?

任何帮助表示赞赏

2 个答案:

答案 0 :(得分:0)

Contiki中的本地地址存储在linkaddr_node_addr中:

#include "net/linkaddr.h"
...
printf("Local: %d.%d\n", linkaddr_node_addr.u8[0], linkaddr_node_addr.u8[1]);

至少在大多数平台上,还有另一个变量:uint16_t node_id。默认情况下,它等于linkaddr_node_addr.u8[0] + (linkaddr_node_addr.u8[1] << 8)。为此添加#include "sys/node-id.h"

答案 1 :(得分:0)

添加这个标题:#include "sys/node-id.h" 然后使用"node_id"可以获得节点的self id!