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

📄 gear.h

📁 基于Oment++的无线传感器网络仿真
💻 H
字号:
#ifndef GEAR_H#define GEAR_H/*#define BEACON 3#define BEACON_REPLY 4#define DATA_MSG 5#define QUERY 6#define QUERY_REPLY 7#define UPDATE_LEARNED_COST 8*/#define WAIT_NEIGHBOR_UPDATE 2 #define EXPLORATORY_DATA_INTERVAL 60.0#define NEIGH_UPDATE_COUTNT 3#include "CommonIncludes.h"#include "NetLayerBase.h"#include "Gear_packet_m.h"#include "Calculations.h"class Gear: public  NetLayerBase{	//	Module_Class_Members(Gear,cSimpleModule,0);	private:	    cArray *neigh_list;	    unsigned int NodeId;		simtime_t NeighUpdatedTime;		cArray* RegionList; 		simtime_t threshold;		simtime_t region_threshold;		cArray* srcArray;			simtime_t timeDataLastSend;		simtime_t LastEnforcedTime;		int flag;		int dataDuration;		int dataRate;		char fileName[10];		int count;		bool fileWrite;		bool sendingData;		bool isGateway;		char filea[10];		double delay;		int dataCount;		int dataGeneratedTotal;		cArray* gateWay;		char s[50];		bool qFlag;	public:				int seqNo;		int firstSeqNo;		int NeighborUpdateCount;		int MyNodeId;		cModule *pNode;		Gear();			Gear(const char *name,cModule *parentModule,unsigned stacksize=0);    	~Gear();				virtual	void initialize(void);		virtual	void handleMessage(cMessage *msg);		virtual void finish();		//	double getCost();		//	unsigned int getNextHopNeighbor();		virtual cMessage* generateBeaconMessage();		virtual cMessage * generateReplyBeaconMessage(int);		virtual void sendDown(cMessage *);		virtual void sendDown(cMessage* , double);		virtual void updateNeighborList(BeaconReplyPkt* Msg);		//virtual unsigned int getNextHopNode(cArray* regCost,unsigned int);		virtual unsigned int getNextHopNode(cArray* regCost,unsigned int, QueryPacket* Msg,bool chkFlag);		virtual void generateLearnedCostMessage(QueryPacket* MSg, cArray* SrcNodeList,double LearnedCostForCurrentNode, bool b);		virtual void getLearnedCost(QueryPacket* Msg);		virtual void PopulateCostsToNeighbhors(Region* reg,QueryPacket* Msg);		//virtual void PopulateCostsToNeighbhors(Region* reg, int RegionX, int RegionY);		virtual void generateContinuedQueryMessage(QueryPacket* Msg,unsigned int nexttHopId);		//virtual void processQuery(QueryPacket* Msg);		virtual void processQuery(int RegionX,int RegionY,int RegionRadius,QueryPacket* Msg,bool chkFlag);		virtual void UpdateLearnedCost(cMessage* Msg);		virtual void generateQueryAck( char*, unsigned int,int,int,int);		virtual bool isInRegion(cMessage* Msg);		virtual bool isAlreadyRecv(QueryPacket* Msg,int nodeId=-1);		virtual void floodRegionNeigh(QueryPacket* Msg);		virtual void addDestToQueryObject(QueryPacket* Msg,Region* reg);		virtual void setSrcNode(QueryPacket* msg);		virtual void sendData(DataMsg* dMsg);		virtual void createDataMsg(QueryPacket* Msg);		virtual void sendUp(cMessage* Msg);		virtual void ResendQuery(int RegionX,int RegionY,int RegionRadius,QueryPacket* Msg);		virtual bool checkIfAnyQueryAlive(cArray* qList);		virtual bool checkIfReceivedQueryFormSrc(int srcNodeId);};class GearNodeInfo : public cObject{	private:		char* NodeId;		double NodeEnergy;		Location* loc;		int Status;		double Cost;	public:		GearNodeInfo(char* name,double Energy, Location *p,int iStatus, double LearnedCost):cObject(name)		{			strcpy(NodeId,name);			NodeEnergy=Energy;			loc=p;			Status=iStatus;			Cost=LearnedCost;		}		GearNodeInfo()		{			NodeId=NULL;			NodeEnergy=0; 			loc=NULL;			Status=0;			Cost=0;		}		};#endif	    	

⌨️ 快捷键说明

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