我想在没有边界路由器的CC2650 Sensortags上运行er-rest-example的简单客户端服务器。目的是测试闰交易。
自述文件和维基中的所有细节都涉及边界路由器。任何没有边界路由器运行coap的帮助都将受到高度赞赏。
我遵守并在sensortags上运行了er-rest-client和er-rest-server,但是客户端事务超时并且RPL DIS没有得到处理。
答案 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示例中提取的。