【问题标题】:Contiki Rime stack how to get the broadcasting ID in Example_BroadcastContiki Rime 堆栈如何在 Example_Broadcast 中获取广播 ID
【发布时间】:2019-01-03 08:38:59
【问题描述】:

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

任何帮助表示赞赏

【问题讨论】:

    标签: microcontroller contiki texas-instruments


    【解决方案1】:

    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"

    【讨论】:

    • 我稍后会检查它,太棒了。我可以知道你是怎么知道的吗?我真的在为他们的文件苦苦挣扎。
    • 我学习的方式主要是查看源代码。查看Contiki-NG,它改进了文档。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多