在 UnetStack 中实现 TDMA

Implementing TDMA in UnetStack

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

UnetStack document on MAC 给出了简单和节流 MAC 协议的示例,但是我怎样才能让节点定期传输?

使用 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.

的更多信息