在UnetStack中实现TDMA

时间:2017-01-19 23:23:30

标签: communication unetstack

我想为水下通信网络模拟一个简单的TDMA协议,其中每个节点定期发送。如何在UnetStack中实现此功能?

UnetStack document on MAC给出了简单和限制MAC协议的示例,但是如何让节点定期发送?

1 个答案:

答案 0 :(得分:2)

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

为了按照TDMA协议中的节点的要求定期传输,您的代理可以指示PHY agent定期传输。这可以使用股票行为来实现。

TickerBehavior在调用之间以指定的延迟重复运行。可以使用以下代码将TickerBehavior添加到您的代理:

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

其中slotlength以秒为单位,nodeAddress是您尝试将信息传输到的节点的地址。有关TxFrameReq you can check out the documentation的更多信息。