⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 layer0.cpp

📁 一个简单的基于静态路由表的最佳路由过程
💻 CPP
📖 第 1 页 / 共 2 页
字号:
//-------------------------------------------------------------------
//  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 + -