亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? asyncappllayer.cc

?? 基于omnet++開發(fā)的Mf框架下的802.11協(xié)議仿真。
?? CC
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
/*********************************************************
 * file:        AsyncApplLayer.cc
 *
 * author:      Fang shi
 *
 * copyright:   (C) 2006 HUNAN Universtiy, ChangSha China
 *
 ***************************************************************************
 * part of:     Async Simulation
 * description: - Async Description
 *
 ***************************************************************************
 * changelog:   $Revision$
 *              last modified:   $Date: 2007-5-10 10:21 $
 *              by:              $Author: Fang shi $
 ***************************************************************************/


#include "AsyncApplLayer.h"
#include <ApplPkt_m.h>  //該成#include "ApplPkt_m.h"就會(huì)出錯(cuò)。#include <fstream>
#include <string>
#include <cmath>
#include <cstdlib>
#include <algorithm>
#include <iostream>
#include <iterator>
//#include <direct.h>  //用于創(chuàng)建文件夾

#define EV (ev.disabled()||!debug) ? (std::ostream&)ev : ev << logName() << "::AsyncApplLayer: "

Define_Module(AsyncApplLayer);


/** 
 * do some initialization 
 * @param stage stage number
 **/
//std::vector<std::string> AsyncApplLayer::svec;
//sMap AsyncApplLayer::smap;
//int AsyncApplLayer::row = 0;
	
std::string int_to_filename(int i,std::string sName="shuju/data")
{
    std::string s=sName;
    while(i/10>0)
    {
        int j=i/10;
        s=s+(char)(j+'0');
        i=i%10;
    }  
    s=s+(char)(i+'0');  
    s=s+".txt";
    return s;
} 

void AsyncApplLayer::initialize(int stage)
{
	BasicApplLayer::initialize(stage); //DO NOT DELETE!!	
	srand((unsigned)time(NULL));  	
	
	if(stage==0){   
     int fileNum=findHost()->index();
     if(fileNum!=0)
     {
				std::string file_name=int_to_filename(fileNum);
				std::string textline;
				std::cout<<"file_name = "<<file_name<<endl;
				std::ifstream infile( file_name.c_str(), std::ios::in );
				if (!infile ) {
			   	std::cerr << "oops! unable to open file "
			   		<< file_name << " -- bailing out!\n";
			   	exit( -1 );
			  }
	      while (getline(infile,textline,'\n')) 
	    	   sDeque.push_back(textline);
	      infile.close(); 
	      row=0;
     }
     else
  	 {
	  		system("del /Q copy");
	  		system("del /Q yasuobi.txt");
	  		system("del /Q mse.txt");
	  		system("del /Q result.txt");
	  		system("del /Q delay.txt");
	  		system("del /Q lostpkt.txt");
	  		system("del /Q sinktime.txt");
	  		system("del /Q clustertime.txt");
  		}
    	pkReceived = 0;
    	numBurstMessage=0;
	    maxNumBurst=(int)par("maxNumBurst"); //max number of bursting message
		
    	WATCH(numBurstMessage);    
      WATCH(pkReceived);

    	destAddress = par("destAddress");    //add sourceAddress	
    	sourceAddress=par("sourceAddress");    	
    	clusterWaveLet=new cMessage("clusterWaveLet");
    	undoCode=new cMessage("undoCode");
    	if(parentModule()->index()==destAddress && ev.isGUI())//highlight the sink node
    		parentModule()->displayString().setTagArg("i",1,"yellow");   
    			    	
    	/** 4-19 添加,用來實(shí)現(xiàn)簇頭編碼*/
    	//數(shù)組清零
    	for(int i=0;i<32;i++)
    	  for(int j=0;j<8;j++)
    	     clusterHead_data[i][j]=0.0;
    	for(int i=0;i<32;i++)
    	  for(int j=0;j<8;j++)
    	     sink_data[i][j]=0.0;
    	for(int i=0;i<32;i++)
    	  for(int j=0;j<8;j++)
    	     test_data[i][j]=0.0;
    	for(int i=0;i<32;i++)
    	{
    		addr[i]=0;
    	  addr_sink[i]=0;
    	}    
    	     
    	//std::cout<<"aaa"<<std::endl;
    	dataCounter=0;
    	timeStamp=0.0;
    	adr=0;
    	lostCounter=0;
    	cTopology *topo = new cTopology("topo");
    	topo->extractByModuleType(parentModule()->className(), NULL);    	    	
    	destModuleID=topo->node(destAddress)->module()->findSubmodule("net");// find destAddress node's net module id    	
  		EV << "sink node: " << destAddress << "---net module id is: " << destModuleID <<endl;  				 		  		
  		delete topo;
  		
    	if(parentModule()->index()!=destAddress)
    	{
    		generatePacket = new cMessage("generatePacket");
    		scheduleAt(simTime()+(double)par("iaitime"), generatePacket);    ////    		
    	}
    	else
    	{
    		  scheduleAt(simTime()+5.0,undoCode);	
    		 // scheduleAt(simTime()+200,clusterWaveLet);
    	}
    			
    //	stopptr=-2;
    	
    	EV<<" AsyncApplLayer is loaded!!!"<<endl;    	
  }
/*  else if(stage==1){
		
  }*/
}


/** 
 * You got a message from the network layer (most likely)
 * take care of it
 * @param msg msg to handle
 **/
void AsyncApplLayer::handleLowerMsg( ApplPkt* msg )
{       
	//對(duì)簇內(nèi)節(jié)點(diǎn)產(chǎn)生的多個(gè)數(shù)據(jù)報(bào)進(jìn)行兩兩小波變換    if(findHost()->index()!=(int)findHost()->submodule("appl")->par("destAddress"))//在非sink的簇頭節(jié)點(diǎn)操作    {
			//將net層上來得數(shù)據(jù)報(bào)的8位數(shù)據(jù)讀出,放入8×32數(shù)組的相應(yīng)行中			
			//檢查32×8數(shù)組,如果滿則馬上調(diào)用小波變換和游程編碼
			if(findHost()->index()==7)
			{
			  std::ofstream outfile( "clustertime.txt", std::ios_base::app );
 	      outfile<<msg->timestamp()<<endl;
 	      outfile.close();			}
			if(timeStamp==0)
			{
				timeStamp=msg->timestamp();
			} 
			else if(msg->timestamp()<timeStamp)
			{
			  timeStamp=msg->timestamp();	
			}
				
			//存入數(shù)組和節(jié)點(diǎn)地址堆棧
			int address=msg->getSrcAddr();
			std::deque<double> data;
			for(int k=0;k<8;k++)
			   data.push_back(msg->getData(k));
			delete msg;
			cluData.insert(make_pair(address,data));
			if(cluData.size()==32)
			{
				do_clusterWave();  //和下面第二句做同樣的工作
			  cancelEvent(clusterWaveLet);
			  scheduleAt(simTime()+200,clusterWaveLet);	
			}     
	  }	
    else       
	  {
	  		std::ofstream outfile1( "delay.txt", std::ios_base::app );
 	      outfile1<<(simTime()-msg->timestamp());
 	     
        outfile1<<endl;
        outfile1.close();
        std::ofstream outfile2( "sinktime.txt", std::ios_base::app );
 	      outfile2<<msg->timestamp()<<endl;
 	      outfile2.close();
	  	if(msg->getSeqNum2()==0)
	  	{
	  	 
	  	 pkReceived++;   		
	  	 double temp[8];
	  	 double temp1[8];
	  	 for(int i=0;i<8;i++)
	  	 {
	  	 	temp1[i]=msg->getData(i);
	  	 	}
       int h=1;
       while(h<=4)
       {                   
          for(int j=0;j<h;j++)
          {
            temp[2*j]=((temp1[j]+temp1[j+h])/2);
            temp[2*j+1]=((temp1[j]-temp1[j+h])/2);		
          }
          for(int j=0;j<(2*h);j++)
          {
            temp1[j]=temp[j];	
          }
          h=h*2;
       }
        std::ofstream outfile( "result.txt", std::ios_base::app );
 	      
 	     // outfile<<msg->getSrcAddr()<<"----";
        for(int j=0;j<8;j++)
        {
            outfile<<temp1[j]<<" ";
        }
        outfile<<endl;
        outfile.close();

        delete msg;
	  	}
	  	    		
	     /*************add by zhu tiejun 4-13*************/
	      	  
	    else
	    { 
	     	 	std::cout<<endl;
	     	 	std::cout<<"The pkt from cluster "<<msg->getSrcAddr()<<"  and the num is "<<msg->getSeqNum1()<<"——"<<msg->getSeqNum2()<<endl;	
	     	 	int src=msg->getSrcAddr();
	     	  std::cout<<endl;
	     	  std::cout<<"Num2="<<msg->getSeqNum2()<<endl;
	     	  //std::cout<<src<<std::endl;
	     	  m_iterator m_it=dmap.find(src);
	     	  if(m_it!=dmap.end())
	     	  {
	     	  	//std::deque<ApplPkt*> msgDeq = (*m_it).second;
	     	  	msg->setTimestamp(simTime());
	     	  	(*m_it).second.push_back(msg);	
	     	  }
	     	  else
	     	  {
	     	  	std::deque<ApplPkt*> de;
	     	  	de.push_back(msg);
	     	  	dmap.insert(make_pair(src,de));
	     	  }	     	  
	     	  /*******************    end    ******************/
	        pkReceived++;
	        EV << " received "<<pkReceived<< "th packet " <<  endl; 
	               
	        ev<<"msg->Data=";
		      for(int i=0;i<8;i++)
		      {
		      	ev<<msg->getData(i)<<",";
		      }
	        ev<<"."<<endl;
	        
	        //###########################################
	        std::ofstream outfile( "msg.out", std::ios_base::app );
	    	  if ( ! outfile ) { // 打開失敗	    	  	std::cerr << "cannot open \"msg.out\" for output\n";
	    		  //exit( -1 );
	    		  EV<<"error"<<endl;
	    		}
	    		else	    		
	    		{
	    			for(int i=0;i<8;i++)
			      outfile<<msg->getData(i)<<", ";
		      	outfile<<endl;
			      outfile.close();
		    	}	    	            
	        if (ev.isGUI())
	        	parentModule()->bubble("Arrived!");   
	       // timeVector.push_back(msg);
	        displayStatus(true);       
	     //}
      }
    }
}




void AsyncApplLayer::displayStatus(bool isBusy)
{
    char string[50];
    if(findHost()->index()==(int)findHost()->submodule("appl")->par("destAddress"))
    {
    	sprintf( string, "%d", pkReceived);    
      findHost()->displayString().setTagArg("t",0, string);    
    }
}

struct Comp:public std::binary_function<ApplPkt*,ApplPkt*,bool>{   
  bool operator()(const ApplPkt* p1, const ApplPkt* p2)const{   
     return  p1->getSeqNum2()<p2->getSeqNum2();   
  }   
}; 

/**
刪除指針
*/
/*template<typename T>
struct DeleteObj :			
	public std::unary_function<const T*, void> {	// 這里有這個(gè)繼承
	void operator()(const T* ptr) const
	{
		delete ptr;
	}
};*/


struct DeleteObj:public std::unary_function<ApplPkt*,void> {				// 刪除這里的
		
	void operator()(const ApplPkt* ptr) const 
	{ 
		delete ptr; 
	} 
};

/** 
 * You have send yourself a message -- probably a timer,
 * take care of it
 * @param msg msg to handle
 **/
void AsyncApplLayer::handleSelfMsg(cMessage *msg){
    
    if(msg==generatePacket && numBurstMessage<maxNumBurst)
    {     	             
      ApplPkt *pk = new ApplPkt();
	    std::string s=sDeque[row];
	    
	    /**************modify 6-12 把調(diào)用的數(shù)據(jù)拷貝到一個(gè)指定的文件夾的一個(gè)對(duì)應(yīng)的文件中********/
      int fileNum=findHost()->index();
      std::string copyDataName=int_to_filename(fileNum,"copy/");
      std::ofstream outfile( copyDataName.c_str(), std::ios_base::app );
	    if ( ! outfile ) { // 打開失敗	  	   std::cerr << "cannot open "<<copyDataName<<" for output\n";
	  	   EV<<"error"<<endl;
	    }	

	    outfile<<s<<endl;
      outfile.close();
      /**************************end***************************/
       	

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品视频第一区| 欧美视频在线观看一区二区| 成人高清免费观看| 97久久久精品综合88久久| 欧美体内she精高潮| 精品剧情在线观看| 国产精品理论片| 日本伊人色综合网| 成人免费视频免费观看| 欧美性三三影院| 久久女同互慰一区二区三区| 亚洲欧美色图小说| 麻豆91在线观看| 99这里只有精品| 欧美一区日韩一区| 亚洲免费伊人电影| 麻豆一区二区在线| 91视频在线观看免费| 日韩一区二区麻豆国产| 成人免费一区二区三区在线观看| 午夜激情一区二区| 不卡高清视频专区| 日韩欧美激情在线| 一区二区三区四区激情| 国产传媒日韩欧美成人| 7777精品伊人久久久大香线蕉经典版下载 | 91啦中文在线观看| 精品国产a毛片| 亚洲成人久久影院| 97精品久久久午夜一区二区三区| 91精品国产91久久久久久最新毛片| 中文字幕一区不卡| 日本v片在线高清不卡在线观看| 成人自拍视频在线| 日韩欧美一二三区| 亚洲电影欧美电影有声小说| 成人午夜精品在线| 精品久久一区二区三区| 亚洲成人自拍一区| 99久久国产综合色|国产精品| 精品国产欧美一区二区| 五月婷婷色综合| 97aⅴ精品视频一二三区| 亚洲国产一区二区a毛片| 成人一二三区视频| 欧美sm美女调教| 免费欧美日韩国产三级电影| 在线观看国产日韩| 亚洲久草在线视频| 成人久久久精品乱码一区二区三区| 日韩精品一区在线观看| 天堂精品中文字幕在线| 欧美在线观看一区二区| 亚洲人吸女人奶水| av福利精品导航| 日韩一区有码在线| aa级大片欧美| 国产精品福利在线播放| 成人动漫一区二区三区| 国产亚洲欧美色| 国产夫妻精品视频| 久久久不卡网国产精品二区| 国精产品一区一区三区mba桃花| 欧美精品在线观看一区二区| 亚洲人成伊人成综合网小说| 99久久国产综合精品麻豆| 亚洲欧洲美洲综合色网| 成人av动漫网站| 中文字幕日韩一区二区| av资源站一区| 亚洲欧美日韩久久| 日本高清视频一区二区| 亚洲综合图片区| 欧洲一区在线观看| 亚洲一区二区综合| 欧美日韩国产一二三| 午夜影院在线观看欧美| 欧美剧情片在线观看| 香蕉成人啪国产精品视频综合网| 欧美三级资源在线| 日韩激情av在线| 日韩亚洲欧美一区| 国产一区二区三区在线观看精品| 精品久久久久一区二区国产| 国产乱妇无码大片在线观看| 国产农村妇女精品| 91在线看国产| 亚洲高清中文字幕| 日韩欧美国产系列| 国产福利一区二区三区视频| 国产精品美女一区二区三区| 91欧美激情一区二区三区成人| 一区二区三区欧美激情| 欧美美女一区二区在线观看| 奇米精品一区二区三区四区| 亚洲精品一区在线观看| 成人中文字幕电影| 亚洲精品欧美激情| 欧美日韩一级二级| 蜜桃av一区二区| 国产精品婷婷午夜在线观看| 91丨九色丨尤物| 天堂成人国产精品一区| 2024国产精品| av资源网一区| 日本女优在线视频一区二区| wwwwww.欧美系列| 91小宝寻花一区二区三区| 亚洲777理论| 亚洲精品一区二区三区蜜桃下载| 成人免费毛片高清视频| 午夜电影网一区| 国产网站一区二区| 欧美在线一区二区三区| 久久99精品久久久久久久久久久久| 欧美激情一区在线观看| 欧美日韩国产片| 国产jizzjizz一区二区| 亚洲电影第三页| 久久九九久久九九| 欧美午夜在线一二页| 黄色日韩三级电影| 一区二区成人在线观看| 欧美精品一区二区三区高清aⅴ | 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 亚洲午夜成aⅴ人片| 久久这里只有精品6| 欧美三级在线播放| 国产寡妇亲子伦一区二区| 天天影视涩香欲综合网| 国产精品视频免费| 日韩美一区二区三区| 欧美在线小视频| 成人一区二区三区| 老司机精品视频一区二区三区| 亚洲素人一区二区| 久久综合狠狠综合久久综合88| 欧美性一区二区| www.色综合.com| 九色综合狠狠综合久久| 亚洲一区二区三区国产| 国产精品视频看| 欧美成人综合网站| 欧美久久免费观看| 色偷偷久久人人79超碰人人澡 | 中文字幕av在线一区二区三区| 91精品国产综合久久久蜜臀粉嫩| 99久久久免费精品国产一区二区 | 中文字幕av资源一区| 日韩精品一区二| 欧美精品久久天天躁| 91亚洲精品久久久蜜桃网站| 国产精品性做久久久久久| 日本午夜精品视频在线观看| 亚洲精品欧美激情| 国产精品国产三级国产专播品爱网| 精品久久人人做人人爱| 在线综合+亚洲+欧美中文字幕| 欧美在线色视频| 一本大道综合伊人精品热热 | 亚洲精品高清视频在线观看| 欧美国产一区在线| 久久综合给合久久狠狠狠97色69| 6080午夜不卡| 欧美日韩一区中文字幕| a亚洲天堂av| 白白色亚洲国产精品| 盗摄精品av一区二区三区| 韩国精品在线观看| 久久成人免费电影| 久久黄色级2电影| 秋霞影院一区二区| 日本va欧美va精品| 视频一区欧美日韩| 午夜欧美视频在线观看| 亚洲高清免费在线| 亚洲成人综合在线| 亚洲成人一区二区在线观看| 亚洲精品高清在线观看| 亚洲免费观看高清完整版在线观看熊| 国产精品视频一区二区三区不卡| 日本一区二区不卡视频| 中文字幕亚洲综合久久菠萝蜜| 国产精品久久久久影院| 中文字幕一区二区三区不卡在线| 国产精品成人免费| 亚洲免费观看视频| 亚洲一区av在线| 日本亚洲欧美天堂免费| 久久电影国产免费久久电影 | 国产精品久久久久毛片软件| 国产精品女主播在线观看| 国产欧美一区二区精品忘忧草| 国产精品视频在线看| 亚洲少妇中出一区| 亚洲第一成年网| 日韩国产欧美在线观看| 久久99九九99精品| 国产成人精品综合在线观看| 白白色 亚洲乱淫|