2016-09-13 39 views
2

在2個不同的RF平臺上運行oT-cli(CC2358和通過SPI從Arm7TDMI主機控制的Atmel AT86RTxx)。沒有真正的編譯,鏈接或加載問題。一切似乎都很好。我可以掃描並看到空中的所有設備。領導者/路由器如何被識別和註冊?

但是,當發出「開始」命令時,由於某種原因,每個設備狀態都變成「領導者」 - 無路由器。每個都發送MLE消息,我發現當設備收到MLE時,它不會將其輸入到路由器列表中。它沒有通過mle_router.cpp 2015年的mRouters[i].mState == Neighbor::kStateValid測試。

更新我的情況。首先有誰有任何經由Wireshark監控空中交通的經驗?我注意到wireshark解析的MLE UPD數據包表明UPD檢查和不正確。目標,TI和Atmel都存在這種情況。任何情況下,這都是路由器表沒有被填充/ udated的原因。入站校驗和檢查失敗。

任何想法的人?

+0

_Atmel AT86RTxx通過SPI從ARM7TDMI HOST_ 你是怎麼做到這一點控制? – urman

+0

嗨「urman」,不確定你的意思?根據數據表只實現了SPI控制。沒有魔法。當然,連接到otxxx回叫是有點乏味,但大衆不上課。或者你有特定的。 BTW主機是德累斯頓elektroniks deRF7arm網關。任何情況下,我現在已經確定的是設備沒有響應mle命令鏈接請求,因爲TLV值是0x15,如果我正確讀取rfc它應該是0x00 ==源地址,長度似乎是正確的 - - 它是41,我有43幀的幀。 –

回答

0

我已經看到至少有一個編譯器(Visual Studio)將mState變量視爲signed,導致該檢查失敗。進行以下更改修復它:

State   mState : 3; 

unsigned int mState : 3; 
0

我所面臨的另一個平臺,其中在無線電配置切換CCA(空閒信道評估)模式2(載波偵聽)類似的問題是有幫助。

CCA有3種模式:
1 - 能量檢測
2 - 載波偵聽
3 - 1和2相結合