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