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!
我正在研究 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!