📄 layer0.cpp
字号:
msg->setKind(M_NODE);
send(msg,"lowergate_out");
}
//}
else
delete msg;
}*/
/*if(((senderPX==(arrivalPX+100))||(senderPX==(arrivalPX-100))||(senderPX==arrivalPX))&&((senderPY==(arrivalPY+100))||(senderPY==(arrivalPY-100))||(senderPY==arrivalPY)))
{
msg->setKind(M_LOWHIGH);
send(msg,"uppergate_out");
}*/
//Notice:it is not necessary if only for addressing
/* else
{
int amcluster=(int)this->parentModule()->par("ISHEAD");
if(amcluster==1)
{
msg->setKind(M_LOWHIGH);
send(msg,"uppergate_out");
}
else
{delete msg;}
}*/
}
break;
/*case M_HIGHLOW: // message from a higher layer
{
// ev<<"receive message from application"<<endl;
msg->setKind(M_NODE);
int nummsg=0;
// duplicate the message and send it through all the gates
for (int i=0;i<NNODES;i++)
{
cGate *tmpgate = parentModule()->gate("out",i);
if (tmpgate==NULL)
continue;
// if gate is connected, send a message through it
if (tmpgate->toGate()!=NULL)
{
cMessage *tmpmsg = new cMessage(*msg);
send(tmpmsg,"lowergate_out",i);
nummsg++;
}
}
//parentModule()->par("ENERGY")=time-nummsg;
delete msg;
}
break;*/
case M_SELF:
{
UPDATECOLOR(3);
int IPd=(int)msg->par("IPd");
if(IPd==ID)
{
ev<<"find the destination!\n";
UPDATECOLOR(7);
endSimulation();
delete msg;
break;
}
cMessage *msg = new cMessage("linknode");
msg->setKind(M_NODE);
msg->addPar("senderPX")=this->parentModule()->par("PX");
msg->addPar("senderPY")=this->parentModule()->par("PY");
msg->addPar("IPd")=IPd;
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);
//send(msg,"lowergate_out");
//delete msg;
}
break;
default: // unknown message received - bug!.
ev << "layer0::activity() error: unknow message received\n";
endSimulation();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -