2017-01-19 19 views
1

我想模擬一個簡單的TDMA協議,用於水下通信網絡,其中每個節點定期發送數據。我如何在UnetStack中執行此操作?在UnetStack中實現TDMA

UnetStack document on MAC給出了簡單和節流MAC協議的例子,但我怎樣才能讓節點定期傳輸?

回答

1

使用UnetStack編寫的典型代理可以添加new behaviors to itself

爲了按照TDMA協議中節點的要求定期傳輸,您的代理可以指示PHY agent定期傳輸。這可以使用股票行爲來實現。

A TickerBehavior以調用之間的指定延遲重複運行。一個TickerBehavior可以添加到您的代理與此代碼:

add new TickerBehavior(1000*slotlength, { 
    phy << new TxFrameReq(to: nodeAddress, type: Physical.DATA) 
}) 

其中slotlength爲秒,nodeAddress是你正試圖將信息傳送到該節點的地址。有關TxFrameReq you can check out the documentation的更多信息。