?? 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;
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;//用于存放解碼后數據
int dataCounter;// 標記簇頭收到得數據報的個數
int totalCounter;//標記編碼后可以封裝為幾個包 double timeStamp;//存放最早時間戳protected:
/** @brief Handle self messages such as timer... */
virtual void handleSelfMsg(cMessage* );
/** @brief Handle messages from lower layer */
virtual void handleLowerMsg(ApplPkt* );
virtual void do_clusterWave();
virtual void do_code();
virtual void unDo_clusterWave();
virtual void unDo_code();
virtual void creatNewPkt(int sum);
virtual void test();//計算誤差,以及編解碼測試
void displayStatus(bool);
virtual void addToFile(ApplPkt*);
};
#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -