📄 layer0.cpp
字号:
//-------------------------------------------------------------------
// file name: layer0.cpp
//
// - contains the implementation of layer0 class
//
//-------------------------------------------------------------------
#include "layer0.h"
#include <cQueue.h>
#include <string.h>
#include <cVisitor.h>
#include <cObject.h>
void layer0::initialize()
{
/* for(int i=0;i<NNODES;i++)
data[i]=0;
*/
}
void layer0::finish()
{
}
void layer0::activity()
{
// main loop
while(1)
{
cMessage *msg=receive();
//double time=parentModule()->par("ENERGY");
switch (msg->kind())
{
case M_NODE: // message from another node
{
int IPd=(int)msg->par("IPd");
// ev<<"receive message from "<<msg->par("senderId")<<endl;
//parentModule()->par("ENERGY")=time-1;
//this->parentModule()->par("mark")=1;
//for(int q=0;q<16;q++)
// {
//cModule *mod = this->parentModule()->submodule("snode",q);
// int y=(int)mod->par("mark");
if(IPd==ID)
{
ev<<"find the destination!\n";
UPDATECOLOR(7);
endSimulation();
delete msg;
break;
}
// }
//int senderPX=msg->par("senderPX");
//int senderPY=msg->par("senderPY");
UPDATECOLOR(3);
//int i=1;
//int senderGX=msg->par("senderGX");
//int senderGY=msg->par("senderGY");
//int arrivalGX=this->parentModule()->par("GX");
//int arrivalGY=this->parentModule()->par("GY");
//int arrivalPX=this->parentModule()->par("PX");
//int arrivalPY=this->parentModule()->par("PY");
//compute the nodes's distance
//int dis=(senderPX-arrivalPX)*(senderPX-arrivalPX)+(senderPY-arrivalPY)*(senderPY-arrivalPY);
//msg->addPar("distance")=dis;
if((ID==0)&&((IPd==1)||(IPd==2)||(IPd==3)))
send(msg,"lowergate_out",0);
if((ID==0)&&((IPd==4)||(IPd==8)||(IPd==12)))
send(msg,"lowergate_out",1);
if((ID==0)&&((IPd==5)||(IPd=9)||(IPd==13)||(IPd==6)||(IPd==7)||(IPd==10)||(IPd==11)||(IPd==14)||(IPd==15)))
send(msg,"lowergate_out",2);
if((ID==1)&&((IPd==2)||(IPd==3)))
send(msg,"lowergate_out",1);
if((ID==1)&&(IPd==0))
send(msg,"lowergate_out",0);
if((ID==1)&&((IPd==4)||(IPd==8)||(IPd==12)))
send(msg,"lowergate_out",2);
if((ID==1)&&((IPd==5)||(IPd==9)||(IPd==13)))
send(msg,"lowergate_out",3);
if((ID==1)&&((IPd==6)||(IPd==7)||(IPd==10)||(IPd==11)||(IPd==14)||(IPd==15)))
send(msg,"lowergate_out",4);
if((ID==2)&&((IPd==0)||(IPd==1)))
send(msg,"lowergate_out",0);
if((ID==2)&&(IPd==3))
send(msg,"lowergate_out",1);
if((ID==2)&&((IPd==6)||(IPd==10)||(IPd==14)))
send(msg,"lowergate_out",3);
if((ID==2)&&((IPd==7)||(IPd==11)||(IPd==15)))
send(msg,"lowergate_out",4);
if((ID==2)&&((IPd==4)||(IPd==5)||(IPd==8)||(IPd==9)||(IPd==12)||(IPd==13)))
send(msg,"lowergate_out",2);
if((ID==3)&&((IPd==1)||(IPd==2)||(IPd==0)))
send(msg,"lowergate_out",0);
if((ID==3)&&((IPd==7)||(IPd==11)||(IPd==15)))
send(msg,"lowergate_out",2);
if((ID==3)&&((IPd==4)||(IPd==5)||(IPd==6)||(IPd==8)||(IPd==9)||(IPd==10)||(IPd==12)||(IPd==14)||(IPd==13)))
send(msg,"lowergate_out",1);
if((ID==4)&&(IPd==0))
send(msg,"lowergate_out",0);
if((ID==4)&&((IPd==1)||(IPd==2)||(IPd==3)))
send(msg,"lowergate_out",1);
if((ID==4)&&((IPd==5)||(IPd==6)||(IPd==7)))
send(msg,"lowergate_out",2);
if((ID==4)&&((IPd==8)||(IPd==12)))
send(msg,"lowergate_out",3);
if((ID==4)&&((IPd==9)||(IPd==10)||(IPd==11)||(IPd==13)||(IPd==14)||(IPd==15)))
send(msg,"lowergate_out",4);
if((ID==5)&&(IPd==0))
send(msg,"lowergate_out",0);
if((ID==5)&&(IPd==1))
send(msg,"lowergate_out",1);
if((ID==5)&&(IPd==4))
send(msg,"lowergate_out",3);
if((ID==5)&&((IPd==2)||(IPd==3)))
send(msg,"lowergate_out",2);
if((ID==5)&&((IPd==6)||(IPd==7)))
send(msg,"lowergate_out",4);
if((ID==5)&&((IPd==8)||(IPd==12)))
send(msg,"lowergate_out",5);
if((ID==5)&&((IPd==9)||(IPd==13)))
send(msg,"lowergate_out",6);
if((ID==5)&&((IPd==10)||(IPd==11)||(IPd==14)||(IPd==15)))
send(msg,"lowergate_out",7);
if((ID==6)&&((IPd==0)||(IPd==1)))
send(msg,"lowergate_out",0);
if((ID==6)&&(IPd==2))
send(msg,"lowergate_out",1);
if((ID==6)&&(IPd==3))
send(msg,"lowergate_out",2);
if((ID==6)&&((IPd==4)||(IPd==5)))
send(msg,"lowergate_out",3);
if((ID==6)&&(IPd==7))
send(msg,"lowergate_out",4);
if((ID==6)&&((IPd==11)||(IPd==15)))
send(msg,"lowergate_out",7);
if((ID==6)&&((IPd==10)||(IPd==14)))
send(msg,"lowergate_out",7);
if((ID==6)&&((IPd==8)||(IPd==9)||(IPd==12)||(IPd==13)))
send(msg,"lowergate_out",5);
if((ID==7)&&((IPd==11)||(IPd==15)))
send(msg,"lowergate_out",4);
if((ID==7)&&(IPd==3))
send(msg,"lowergate_out",1);
if((ID==7)&&((IPd==4)||(IPd==5)||(IPd==6)))
send(msg,"lowergate_out",2);
if((ID==7)&&((IPd==0)||(IPd==2)||(IPd==1)))
send(msg,"lowergate_out",0);
if((ID==7)&&((IPd==8)||(IPd==9)||(IPd==10)||(IPd==12)||(IPd==14)||(IPd==13)))
send(msg,"lowergate_out",3);
if((ID==8)&&((IPd==0)||(IPd==4)))
send(msg,"lowergate_out",0);
if((ID==8)&&(IPd==12))
send(msg,"lowergate_out",3);
if((ID==8)&&((IPd==9)||(IPd==10)||(IPd==11)))
send(msg,"lowergate_out",2);
if((ID==8)&&((IPd==13)||(IPd==14)||(IPd==15)))
send(msg,"lowergate_out",4);
if((ID==8)&&((IPd==1)||(IPd==2)||(IPd==3)||(IPd==5)||(IPd==6)||(IPd==7)))
send(msg,"lowergate_out",1);
if((ID==9)&&((IPd==0)||(IPd==4)))
send(msg,"lowergate_out",0);
if((ID==9)&&(IPd==8))
send(msg,"lowergate_out",3);
if((ID==9)&&((IPd==1)||(IPd==5)))
send(msg,"lowergate_out",1);
if((ID==9)&&((IPd==10)||(IPd==11)))
send(msg,"lowergate_out",4);
if((ID==9)&&(IPd==12))
send(msg,"lowergate_out",5);
if((ID==9)&&(IPd==13))
send(msg,"lowergate_out",6);
if((ID==9)&&((IPd==14)||(IPd==15)))
send(msg,"lowergate_out",7);
if((ID==9)&&((IPd==2)||(IPd==6)||(IPd==3)||(IPd==7)))
send(msg,"lowergate_out",2);
if((ID==10)&&((IPd==2)||(IPd==6)))
send(msg,"lowergate_out",1);
if((ID==10)&&(IPd==11))
send(msg,"lowergate_out",4);
if((ID==10)&&(IPd==14))
send(msg,"lowergate_out",6);
if((ID==10)&&((IPd==12)||(IPd==13)))
send(msg,"lowergate_out",5);
if((ID==10)&&(IPd==15))
send(msg,"lowergate_out",7);
if((ID==10)&&((IPd==3)||(IPd==7)))
send(msg,"lowergate_out",2);
if((ID==10)&&((IPd==8)||(IPd==9)))
send(msg,"lowergate_out",3);
if((ID==10)&&((IPd==0)||(IPd==1)||(IPd==4)||(IPd==5)))
send(msg,"lowergate_out",0);
if((ID==11)&&((IPd==3)||(IPd==7)))
send(msg,"lowergate_out",1);
if((ID==11)&&(IPd==15))
send(msg,"lowergate_out",4);
if((ID==11)&&((IPd==8)||(IPd==9)||(IPd==10)))
send(msg,"lowergate_out",2);
if((ID==11)&&((IPd==12)||(IPd==13)||(IPd==14)))
send(msg,"lowergate_out",3);
if((ID==11)&&((IPd==0)||(IPd==1)||(IPd==2)||(IPd==5)||(IPd==6)||(IPd==4)))
send(msg,"lowergate_out",0);
if((ID==12)&&((IPd==0)||(IPd==4)||(IPd==8)))
send(msg,"lowergate_out",0);
if((ID==12)&&((IPd==13)||(IPd==14)||(IPd==15)))
send(msg,"lowergate_out",2);
if((ID==12)&&((IPd==1)||(IPd==2)||(IPd==3)||(IPd==5)||(IPd==6)||(IPd==7)||(IPd==9)||(IPd==10)||(IPd==11)))
send(msg,"lowergate_out",1);
if((ID==13)&&((IPd==14)||(IPd==15)))
send(msg,"lowergate_out",4);
if((ID==13)&&(IPd==12))
send(msg,"lowergate_out",3);
if((ID==13)&&((IPd==1)||(IPd==5)||(IPd==9)))
send(msg,"lowergate_out",1);
if((ID==13)&&((IPd==0)||(IPd==4)||(IPd==8)))
send(msg,"lowergate_out",0);
if((ID==13)&&((IPd==2)||(IPd==3)||(IPd==6)||(IPd==7)||(IPd==10)||(IPd==11)))
send(msg,"lowergate_out",2);
if((ID==14)&&((IPd==12)||(IPd==13)))
send(msg,"lowergate_out",3);
if((ID==14)&&(IPd==15))
send(msg,"lowergate_out",4);
if((ID==14)&&((IPd==2)||(IPd==6)||(IPd==10)))
send(msg,"lowergate_out",1);
if((ID==14)&&((IPd==3)||(IPd==7)||(IPd==11)))
send(msg,"lowergate_out",2);
if((ID==14)&&((IPd==0)||(IPd==1)||(IPd==4)||(IPd==5)||(IPd==8)||(IPd==9)))
send(msg,"lowergate_out",0);
if((ID==15)&&((IPd==3)||(IPd==7)||(IPd==11)))
send(msg,"lowergate_out",1);
if((ID==15)&&((IPd==12)||(IPd==13)||(IPd==14)))
send(msg,"lowergate_out",2);
if((ID==15)&&((IPd==1)||(IPd==2)||(IPd==0)||(IPd==5)||(IPd==6)||(IPd==4)||(IPd==9)||(IPd==10)||(IPd==8)))
send(msg,"lowergate_out",0);
//if(ID-IPd<0)
//{
//send(msg,"lowergate_out",i++);
//if()
// }
/* for (int i=0;i<NNODES;i++)
{
cGate *tmpgate = parentModule()->gate("out",i);
//for(int j=0;j<16;j++)
// {
//cModule *mod = this->parentModule()->submodule("snode",j);
// if gate is connected, send a message through it
if (tmpgate==NULL)
continue;
if (tmpgate->toGate()!=NULL)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -