Не удается найти ссылку на rpl_set_root()

Я пытаюсь запустить код, который был написан для contiki3.x на contiki-ng, я получаю ошибку компиляции с указанием неопределенной ссылки на `rpl_set_root ', хотя я включаю« net / routing / rpl-classic / rpl.h ». Когда я открываю исходный код rpl-classic / rpl.h и rpl-classic / rpl.ci, я могу видеть, что dunction явно там

Следующий код вызывает ошибку компиляции.

uip_ds6_addr_add(&ipaddr, 0, ADDR_MANUAL);

      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, 0xaaaa, 0, 0, 0, 0, 0, 0, 0);
  rpl_set_prefix(dag, &ipaddr, 64);

} else {
  printf("No DAG created\n");
}

1 ответ

Решение

По умолчанию в Contiki-NG включен RPL-lite, в котором нет этой функции.

Чтобы переключиться на классический RPL, добавьте эту строку в Makefile приложения:

      MAKE_ROUTING = MAKE_ROUTING_RPL_CLASSIC

потом make clean и снова соберите приложение.

Другие вопросы по тегам