2014-02-20 54 views
2

我正在嘗試使用Contiki OS提供的6LoWPAN實現。

我的問題是,賴姆只是在沒有國旗UIP_CONF_IPV6設置工作。只要我設置標誌以激活IPv6支持,編譯器會報告位於rime.c以及sicslowpan.c中的函數rime_sniffer_add()rime_sniffer_remove()的「多重定義」。

有人設法解決這個問題或一個工作的例子?使用半自助旅遊旅行社在Contiki操作系統中使用Rime和6LoWPAN

回答

0

萬一有人是興趣的6LoWPAN:

正確的方法是使用RPL這基本上是專爲IPv6和6LoWPAN的。
請參閱Contiki的udp_rpl示例以建立服務器/客戶端通信。適當的標誌將啓用6LoWPAN頭壓縮。

1

我想補充一點,雖然這是一個老問題,但它可以使用更清晰的解釋。

由於網絡堆棧支持單個網絡驅動程序(如果您在netstack.h中查看),您不能在Contiki中同時使用Rime和6LoWPAN。

默認驅動程序是rime。如果你定義了UIP_CONF_IPV6標誌,它定義了WITH_UIP6標誌,它將網絡驅動程序設置爲sicslowpan。

接收到消息後,MAC驅動程序(在本例中爲llsec)直接調用網絡驅動程序定義的input()函數。沒有分組頭部的解複用,所以,它也是在編譯時間處定義爲的rime或sicslowpan。

現在 - 您可以使用rime發送消息。據我可以從代碼中看出,這些嗅探器用於側面功能,比如爲rime或6lowpan啓用更詳細的powertrace。這不是必需的,所以你可以評論嗅探器。但是,再一次,即使你可以同時編譯rime和6lowpan,並且可以發送消息,你也不會收到任何東西(經過測試......)。

如果要使用6lowpan進行廣播,請使用多播地址進行廣播,請使用icmp或udp。

希望這會有所幫助。 Misel

相關問題