如何在没有边界路由器的CC2650 sensortag上运行CoAP(er-rest-example)?

时间:2018-05-26 21:11:03

标签: rest contiki coap

我想在没有边界路由器的CC2650 Sensortags上运行er-rest-example的简单客户端服务器。目的是测试闰交易。

自述文件和维基中的所有细节都涉及边界路由器。任何没有边界路由器运行coap的帮助都将受到高度赞赏。

我遵守并在sensortags上运行了er-rest-client和er-rest-server,但是客户端事务超时并且RPL DIS没有得到处理。

1 个答案:

答案 0 :(得分:0)

我不确定这应该是评论还是答案,但由于我缺乏评论的声誉,所以这就是:

er-rest-client和er-rest-server都没有为RPL建立网状网络,这就是为什么示例包含一个边界路由器来实现这一点。如果你进入core / net / ip / tcpip.c并启用DEBUG,我猜你看到以下输出:

tcpip_ipv6_output: no route found, using default route
tcpip_ipv6_output: Destination off-link but no route

对于我正在处理的类似项目,将以下行添加到服务器进程解决了这个问题:

root_if = uip_ds6_addr_lookup(&ipaddr);
if(root_if != NULL){
  rpl_dag_t* dag;
  dag = rpl_set_root(RPL_DEFAULT_INSTANCE, (uip_ip6addr_t*)&ipaddr);
  uip_ip6addr(&ipaddr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 0);
  rpl_set_prefix(dag, &ipaddr, 64);
  printf("created new RPL dag\n");
}
else{
  printf("RPL dag creation failed\n");
}

您还需要包含“net / rpl / rpl.h”并声明变量“struct uip_ds6_addr * root_if” 该代码是从contiki提供的ipv6 / rpl示例中提取的。