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

📄 asyncappllayer.h

📁 基于omnet++开发的Mf框架下的802.11协议仿真。
💻 H
字号:
/********************************************************
 * file:        AsyncApplLayer.h
 *
 * author:      Yupeng.hu
 *
 * copyright:   (C) 2006 HUNAN Universtiy, ChangSha China
 * 
 ***************************************************************************
 * part of:     Async Simulation
 * description: - Async Description
 *
 ***************************************************************************
 * changelog:   $Revision$
 *              last modified:   $Date: 2006-7-7 10:26 $
 *              by:              $Author: Yupeng.hu $
 ***************************************************************************/
 

#ifndef Async_APPL_LAYER_H
#define Async_APPL_LAYER_H

#include <BasicApplLayer.h>         
#include <deque>
#include <map>

class AsyncApplLayer : public BasicApplLayer
{
	typedef std::vector<ApplPkt*> cMacPktVector;
	typedef std::vector<ApplPkt*>::iterator vc_iterator;
	typedef std::deque<double> cDataQueue;	
	
	typedef std::vector<std::string> sVector;  //written by Zhu tiejun
	
	//用来做解码	
	typedef std::map<int,std::deque<ApplPkt*> >dataMap;//前面的int代表源地址,后面的代表消息队列
	typedef std::map<int,std::deque<ApplPkt*> >::iterator m_iterator;	
	dataMap dmap;
	
	typedef std::multimap<int,std::deque<double> >cluMapData;
	typedef std::multimap<int,std::deque<double> >::iterator clu_iterator;
	cluMapData cluData;
	
	/*typedef std::map<int,std::deque<string> >sMap;
	static sMap smap;*/
	std::deque<std::string> sDeque;
public:
	Module_Class_Members( AsyncApplLayer, BasicApplLayer, 0 );
  virtual void initialize(int);
  virtual void finish();
private:    
   	cMessage *generatePacket;
   	
   	cMessage *undoCode;
   	/**@brief msg of waveLet at cluster_head */
   	cMessage *clusterWaveLet;
   	
   	cMessage *insertDatabase;
   	
   	cMacPktVector timeVector;   

   	cMacPktVector sinkVector;   //用来存放sink节点经过小波列变换的的消息   	    	 
    vc_iterator tempIterator;
         
        // cMacPtkVector MessageQueue;
         
   // static std::vector<std::string> svec;   //store the lines of data ,written by Zhu Tiejun
    
   // static int row;  //add 4-13
    int row;
    
   	
	/** @brief sink node's index*/
	  int destAddress;
  	int sourceAddress;
  
  	/** @brief sink node's net module id*/
  	int destModuleID;
   	
   	int pkReceived;
   	//int stopptr;
   	
   	int maxNumBurst;
   	
   	int numBurstMessage;
   	
   	/** 4-19 添加,用来实现簇头编码*/
   	double clusterHead_data[32][8];//簇头用以存放数据的数组
   	double test_data[32][8];//测试用   	double sink_data[32][8];//解码后数组
   	int addr[32]; //簇头节点,存放源地址
   	int addr_sink[32];//sink节点存放原地址
   	int adr;//存放一个系列数据报源节点地址
   	int lostCounter;//簇头丢包量统计   	cDataQueue dataQueue;//用于存放编码后数据   	cDataQueue dataQueue1;//用于存放解码后数据   	double mse;
   	int dataCounter;// 标记簇头收到得数据报的个数    
   	int totalCounter;//标记编码后可以封装为几个包      	double timeStamp;//存放最早时间戳
   	
  // 	static MYSQL mysql;protected:
  	/** @brief Handle self messages such as timer... */
  	virtual void handleSelfMsg(cMessage* );

  	/** @brief Handle messages from lower layer */
  	virtual void handleLowerMsg(ApplPkt* ); 

	  void displayStatus(bool);	
	  
};

#endif
 

⌨️ 快捷键说明

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