随机数据和参数:延时在1s到一个随机量之间变化,这个随机量可以在NED文件或者.ini文件
1.向demo.ned文件中添加simtime_t delayTime参数:
package demo;
//
// TODO documentation
//
simple Txc1
{
parameters:
bool sendMsgOnInit=default(false);//决定在初始化函数中是否发送第一个消息
int limit=default(2);
simtime_t delayTime;
@display("i=block/routing");//加上这句话以后,图标看起来像路由器。所有Txc1类型的模块均会显示成这个形式
gates:
input in;
output out;
}
不知道为什么,红色字体就是编译过不去,初学者,求高手指教。
无奈了,最后只能修改.cc文件,达到延时不定的效果,将消息处理中的最后一句话改为:
scheduleAt(simTime()+truncnormal(3,1),event);
先凑合着看吧,没办反了,弄了好久。
2.将消息处理函数加上消息丢失部分,如果取0-1之间的随机数<0.1则删除消息,弹出message lost信息。
void Txc1::handleMessage(cMessage *msg)
{
if(uniform(0,1)<0.1)
{
EV<<"\"Losing\"message.\n";
bubble("message lost");
delete msg;
}
else
{
counter--;
if(counter>=0)
{
if(msg==event)
{
EV<<"Received event message,send tictocMsg\n";
send(tictocMsg,"out");
}
else
{
EV<<"Received tictocMsg message,delay\n";
tictocMsg=msg;
scheduleAt(simTime()+truncnormal(3,1),event);
}
}
}
}