2

我想在 unetstack 中实现能量模型,我知道它的理论,但不知道如何在 unetstack 中实现它,因为我还在学习它。请提供其中涉及的步骤。基本的代码框架也会有所帮助。

预期输出:我希望每个节点在发送/接收数据包后输出剩余能量。

4

1 回答 1

1

跟踪能量最自然的地方是 PHYSICAL ( phy) 代理。假设您HalfDuplexModem phy在 UnetSim 中使用 ,我将对其进行子类化TxFrameNtfRxFrameNtf通过覆盖该send()方法来监视 and 。然后我会添加相关energy属性来跟踪能源使用情况。

示例 Groovy 代码:

import org.arl.fjage.Message
import org.arl.unet.sim.HalfDuplexModem

class MyHalfDuplexModem extends HalfDuplexModem {

  float energy = 1000   // change to whatever initial energy your node has

  @Override
  boolean send(Message m) {
    if (m instanceof TxFrameNtf) energy -= 10  // change according to your model
    if (m instanceof RxFrameNtf) energy -= 1   // change according to your model
    return super.send(m)
  }

}

最后,在模拟 DSL 中,您可以使用HalfDuplexModem自定义版本替换默认值:

modem.model = MyHalfDuplexModem
于 2019-06-09T14:49:15.663 回答