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

Contiki Rime stack how to get the broadcasting ID in Example_Broadcast

我正在研究 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]);
}

但是如何获取"my"/当前节点的ID?

感谢任何帮助

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"

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