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

📄 pm.cpp

📁 传感器网络的可靠路由算法
💻 CPP
字号:
#include "stdafx.h"
#include "network.h"
#include "PM.h"

extern NODE_TYPE nodeT[350];
extern NETWORK_TYPE net;


void NodeSchedulingInit(){
    
	int i = 0;

	if(net.PM_ENABLED == false ) return ;

	switch(net.PM_TYPE){

		case RANDOM_PM:
			for( i = 0 ; i < net.NUM_NODES ; i++){
			  nodeT[i].Period = net.PM_PERIOD;
			  nodeT[i].WakeupDuration = net.WAKEUP_DURATION;
			  nodeT[i].WakeupPoint = rand()%net.PM_PERIOD;
			}				
		break;

		case SYNCHRONIZED:
		break;

		case COORDINATED:
		break;

		case FULL_COVERED:
		break;

		default: assert(false);
	}
	
    return ;
}

bool CheckNodeStatus(int nodeID, int t){

	int i= 0;
	if(net.PM_ENABLED == false ) return true;

	//time point with in a period 
	int t_ = t%nodeT[nodeID].Period;

	switch(net.PM_TYPE){
		case RANDOM:

              if( t_ > nodeT[i].WakeupPoint && 
				  t_ < nodeT[nodeID].WakeupPoint+ nodeT[nodeID].WakeupDuration )
				  return true;
			  else if( t_+ nodeT[nodeID].Period > nodeT[i].WakeupPoint &&
				       t_ +nodeT[nodeID].Period < nodeT[nodeID].WakeupPoint+ nodeT[nodeID].WakeupDuration )
                  return true;

			  else return false;				
		break;

		case SYNCHRONIZED:
		break;

		case COORDINATED:
		break;

		case FULL_COVERED:
		break;

		default: assert(false);
	}
	return true;

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -