我想在unetstack中实现能源模型,我知道这是理论,但是由于我仍在学习中,所以不知道如何在unetstack中实现它。请提供其中涉及的步骤。基本代码框架也将有所帮助。
预期输出: 我希望每个节点在发送/接收数据包后的输出都能打印出剩余的能量。
答案 0 :(得分:0)
最自然的跟踪能量的位置将是物理(#include <cppunit/exetnsions/HelperMacros.h,v>
)代理。假设您在UnetSim中使用phy
HalfDuplexModem
,则将其子类化,并通过覆盖phy
方法来监视TxFrameNtf
和RxFrameNtf
。然后,我将添加相关的send()
属性以跟踪能源使用情况。
示例Groovy代码:
energy
最后,在模拟DSL中,您可以用自定义版本替换默认的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)
}
}
:
HalfDuplexModem