Как запустить CoAP (er-rest-example) на сенсорном теге CC2650 без Border Router? - PullRequest
0 голосов
/ 27 мая 2018

Я хочу запустить простой клиент-сервер er-rest-example на сенсорных метках CC2650 без пограничного маршрутизатора.Цель состоит в том, чтобы протестировать coap-транзакции.

Все детали в readme и wiki связаны с пограничным маршрутизатором.Любая помощь по запуску coap без пограничного маршрутизатора будет высоко оценена.

Я выполнил и запустил er-rest-client и er-rest-server на сенсорных метках, но тайм-аут транзакций клиента и RPL DIS не обрабатываются.

1 Ответ

0 голосов
/ 12 июня 2018

Я не уверен, должен ли это быть комментарий или ответ, но так как мне не хватает репутации, чтобы комментировать, здесь все сказано:

Ни er-rest-client, ни er-rest-server setячеистой сети для 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». Этот код извлекается из ipv6 /Примеры RPL, предоставленные contiki.

...