目的:为1中程序添加模块颜色,效果;添加输出
1.在demo.ned添加简单模块显示设置,编程路由器的显示形态。方法:添加语句:@display("i=block/routing");
该文件内代码为:
package demo;
//
// TODO documentation
//
simple Txc1
{
parameters:
@display("i=block/routing");//加上这句话以后,图标看起来像路由器。所有Txc1类型的模块均会显示成这个形式
gates:
input in;
output out;
}
2.前面一节已经说过网络中有两个简单模块,为了区分,为两个模块添加不同的颜色。方法为:@display("i=,cyan");
demo2.ned代码为:
package demo;
//
// TODO documentation
//让两个模块看起来不同一点,tic为cyan,toc为yellow
network Tictoc1
{
submodules:
tic: Txc1 {
parameters:
@display("i=,cyan");
@display("p=62,64");
}
toc: Txc1 {
parameters:
@display("i=,gold");
@display("p=170,64;is=l");
}
connections:
tic.out --> { delay = 100ms; } --> toc.in;
toc.out --> { delay = 100ms; } --> tic.in;
}
3.在消息处理的时候,添加输出语句:EV
Txc.cc代码如下:
#include "Txc1.h"
Define_Module(Txc1);
//启动tic-toc-tic-toc过程,一个模块需要发送第一个消息,让我们设定为是tic发送第一个消息
void Txc1::initialize()
{
//判断是Tic还是Toc
if(strcmp("tic",getName())==0)
{
//向out门创建并发送第一个消息,tictocMsg消息
cMessage *msg = new cMessage("tictocMsg");
send(msg,"out");
//添加输出,发出第一个消息
EV<<"Sending initial message\n";
}
}
//这个函数每当消息到来的时候调用,这里我们只是将这个消息发送给其它模块(通过out门),因为tic和toc做的是相同的事情,所以消息会在两个模块间回荡
void Txc1::handleMessage(cMessage *msg)
{
EV<<"Received message '"<<msg->getName()<<"',sending it out again\n";
send(msg,"out");
}
完毕