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

📄 802_11_mac.h

📁 基于Oment++的无线传感器网络仿真
💻 H
字号:
#ifndef _802_11_Mac_H__#define _802_11_Mac_H__#include "CommonIncludes.h"#include "MACLayerBase.h"#include "MAC_802_11_Packet_m.h"#include "Calculations.h"#define minCW 31#define maxCW 1023#define shortRetryLimit 7/*#include <fstream.h>*/class MAC_802_11 : public MACLayerBase{	private:		int      m_FragmentLength;		int      m_BitRate;		double   m_SIFS;		double   m_DIFS;		double   m_EIFS;		double   m_SlotTime;		double   m_NAVTimer;		double   m_New_NAVTimer;		double   tstamp_NAVTimer;		double   remainingBOffTime;		double   tstamp_BOffTimer;		double   iBOffTime;		cQueue   m_QueueOfFragments;	 			cQueue   m_QueueOfCollisionMsgs;				cMessage *m_pMsgRTSExpired;	 	cMessage *m_pMsgNAVTimer;	 	cMessage *m_pMsgDIFSTimer;		cMessage *m_pMsgCollisionTimer;		cMessage *m_pMsgBOffTimer;		int testvar;		int Bflag;		char fName[20];		bool fWrite;		char fileb[10];		int originMsgSrc;		int cw;		int MyNodeId;		int ssrc;		int RtsExpiredCount;		int seq_no;		int no_of_nodes;	public:		MAC_802_11(const char *name, cModule *parentModule, unsigned stacksize = 0) ;		void changeNAVTimer();		virtual void initialize();		virtual void handleMessage(cMessage *msg);		virtual void handleSelfMessage(cMessage *msg);		virtual void HandleMessageFromTopLayer(cMessage *msg);		virtual void HandleMessageFromBottomLayer(cMessage *msg);		virtual void finish();			cModule *pNode;		cModule *pNetwork;	private:		bool Create_ACK_Message(cMessage *msg, c802_11_Packet **ppAckMsg);		bool Create_Data_Message(cMessage *msg, int iFragmentIndex, int numOfFragments, c802_11_Packet **ppDataMsg);		bool Create_CTS_Message(cMessage *msg, c802_11_Packet **ppCTSMsg);		bool Create_RTS_Message(cMessage *msg, c802_11_Packet **ppRTSMsg);		bool Create_BRDCAST_Message( cMessage *msg, c802_11_Packet **ppBTSMsg);		bool AddPosInfo(c802_11_Packet* pMACMsg);		bool CheckIfMessageIsForMe(cMessage* msg);		int  CheckWChannelStateAndTransmit(void);		double getPropagationDelay( );		void  resetCW(){cw = minCW;};		void incContentionWindow(){ (cw= (cw<<1) + 1);						if(cw > maxCW) cw=maxCW;						/*printf(" cw_ %d = \n", cw );*/ };				};#endif //

⌨️ 快捷键说明

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