📄 gear.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 + -