我正在研究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?
任何帮助表示赞赏
答案 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!