我想在unetstack中实现能量模型,我知道它的理论,但不知道如何在unetstack中实现它,因为我还在学习它。请提供其中涉及的步骤。基本的代码框架也会很有帮助。
期望输出:我期望每个节点在发送/接收数据包后,打印出剩余的能量。
发布于 2019-06-09 22:49:16
跟踪能量最自然的地方是在物理(phy)代理中。假设您在UnetSim中使用HalfDuplexModem phy,我将对其进行子类化,并通过覆盖send()方法监视TxFrameNtf和RxFrameNtf。然后我会添加相关的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 = MyHalfDuplexModemhttps://stackoverflow.com/questions/56487808
复制相似问题