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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? asyncappllayer.cc

?? 基于omnet++開(kāi)發(fā)的Mf框架下的802.11協(xié)議仿真。
?? CC
字號(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 <windows.h>
#include <iterator>
#include <mysql.h>

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

Define_Module(AsyncApplLayer);

MYSQL mysql;
std::deque<std::string> x_delay;//延時(shí)統(tǒng)計(jì)變量

std::deque<std::string> x_data;//數(shù)據(jù)變量	
std::deque<std::string> x_rdata;//恢復(fù)后數(shù)據(jù)	
CRITICAL_SECTION m_lock;
//InitializeCriticalSection(&m_lock);

/** 
 * do some initialization 
 * @param stage stage number
 **/
	
std::string int_to_filename(int i,std::string sName="shuju/data")
{
    char str[100];
	  sprintf(str,"%s%d%s",sName.c_str(),i,".txt");
	  std::string s(str);
	  return s;
} 

void AsyncApplLayer::initialize(int stage)
{
	BasicApplLayer::initialize(stage); //DO NOT DELETE!!	
	srand((unsigned)time(NULL));  	
	
	if(stage==0){   
		 int fileNo=findHost()->index();
		 int fileNum=fileNo%56+1;
     //int fileNum=fin dHost()->index();
     if(fileNo!=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");
	  		
	  		/*
	  		**初始化數(shù)據(jù)庫(kù)
	  		*/
	  		if(mysql_init(&mysql) == NULL)
	  		{
	  			std::cout<<"init mysql data status fail"<<std::endl;
	  			return;
	  		}
	  		else
	  			std::cout<<"init mysql data status success"<<std::endl;
	  		if(NULL == mysql_real_connect(&mysql,"localhost","root",NULL,"wsnss",MYSQL_PORT,NULL,0))
	  		{
	  			std::cout<<"connect database fail"<<std::endl<<mysql_error(&mysql)<<std::endl;
	  			return;
	  		}	
	  		else
	  			std::cout<<"connect database success"<<std::endl;
	  	  /*
	  	  **初始化數(shù)據(jù)庫(kù)結(jié)束
	  	  */
  		}
    	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"); //多余   	
    	insertDatabase = new cMessage("insertDatabase");
    	if(parentModule()->index()==destAddress && ev.isGUI())//highlight the sink node
    		parentModule()->displayString().setTagArg("i",1,"yellow");   
    			    	
    
    	     
    	//std::cout<<"aaa"<<std::endl;
    	dataCounter=0;
    	timeStamp=0.0;
    	adr=0;
    	lostCounter=0;
    	mse=0.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,insertDatabase);
    	}
    			
    //	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 )
{   	
  	 pkReceived++;   		
  	 char str1[1024];
		 sprintf(str1,"insert into delay_n(ID,simTime,creatTime,delayTime)values('%d','%lf','%lf','%lf');",
		 findHost()->index(),simTime(),msg->timestamp(),simTime()-msg->timestamp());
		 			
		 std::string insert(str1);
		 x_delay.push_back(insert);
  	 double temp1[8];
  	 for(int i=0;i<8;i++)
  	 {
  	 	temp1[i]=msg->getData(i);
     }
         //插入數(shù)據(jù)庫(kù)
     char str[1024];
		 sprintf(str,"insert into data_receive_n(ID,data1,data2,data3,data4,data5,data6,data7,data8)values('%d','%lf','%lf','%lf','%lf','%lf','%lf','%lf','%lf');",
			 msg->getSrcAddr(),temp1[0],temp1[1],temp1[2],temp1[3],temp1[4],temp1[5],temp1[6],temp1[7]);
			
	   std::string insert1 (str);
		 x_rdata.push_back(insert1);
     
     delete msg;
     if (ev.isGUI())
       	parentModule()->bubble("Arrived!");   
      
     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);    
    }
}


/** 
 * 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];
	    	   	
	  	std::string::size_type pos = 0, prev_pos = 0;
	  	unsigned int index=0;
	  	double data1[8];
	  	double data;
	  	while (( pos = s.find_first_of( ' ', pos ))!= std::string::npos )
	  	{
	   		//++pos;
       	//pos = s.find_first_of(' ',pos);
	      if(s.substr(prev_pos, pos-prev_pos)=="")//如果等于空字符串,繼續(xù)查找
	      {
	      	prev_pos=++pos;
	        continue;
        } 
        else
        {
        	data = atof(s.substr(prev_pos, pos - prev_pos).c_str());//?
        	data1[index++]=data;
        	prev_pos = ++pos;
        }	
      }	  
			data=atof(s.substr(prev_pos,pos - prev_pos).c_str());				 
			data1[index]=data;
  			
	  /*將數(shù)據(jù)包真實(shí)數(shù)據(jù)插入數(shù)據(jù)庫(kù) */
	    char str[1024];
			sprintf(str,"insert into data_n(ID,data1,data2,data3,data4,data5,data6,data7,data8)values('%d','%lf','%lf','%lf','%lf','%lf','%lf','%lf','%lf');",
					findHost()->index(),data1[0],data1[1],data1[2],data1[3],data1[4],data1[5],data1[6],data1[7]);
				
			std::string insert(str);
			x_data.push_back(insert);
			  
    
			for(int i=0;i<8;i++)
			{ 
				ev<<"*"<<endl;
				pk->setData(i,data1[i]);				
			}
				
	/**###################################################*/
	               /** 數(shù)據(jù)報(bào)設(shè)置*/
	     
       //pk->setSrcAddr(myApplAddr());
       pk->setSrcAddr(findHost()->index());
       pk->setDestAddr(destModuleID);
       pk->setLength(headerLength);
       pk->setTimestamp(simTime()); 
       pk->setSeqNum1(row);//4-12添加
       row++;
      // std::cout<<"aaa"<<std::endl;
       ev<<logName()<<"::AsyncApplLayer:: the pk's timestamp=="<<pk->timestamp()<<endl;  
       
       sendDown(pk);
	
		   if (ev.isGUI()) 
		    	parentModule()->bubble("Generating packet...");    	
       numBurstMessage++;
       EV <<" generating packet to " <<destAddress<< "#" << numBurstMessage <<endl;
       scheduleAt(simTime()+(double)par("iaitime"), generatePacket);          
    }  
    else if(msg==insertDatabase&&findHost()->index()==(int)findHost()->submodule("appl")->par("destAddress"))  //插入數(shù)據(jù)庫(kù),在sink節(jié)點(diǎn)才進(jìn)行操作。
    {
    	 //::EnterCriticalSection(&m_lock);
//    	 std::cout<<"insert into database"<<std::endl;
//    	 std::cout<<x_delay.size()<<std::endl;
    	 		 
			 
			 //出入傳感數(shù)據(jù)
			 for(std::deque<std::string >::iterator iter = x_data.begin();iter != x_data.end();++iter)
			 {
			 		if(mysql_query(&mysql,(*iter).c_str())!=0)
			 		{
			// 			std::cout<<"execute insert syntax fail"<<
				//				std::endl<<mysql_error(&mysql)<<endl;
						mysql_close(&mysql);
						return;
			 		}
			 }
			 x_data.clear();
			 
			 for(std::deque<std::string >::iterator iter = x_delay.begin();iter != x_delay.end();++iter)
			 {
			 		if(mysql_query(&mysql,(*iter).c_str())!=0)
			 		{
			// 			std::cout<<"execute insert syntax fail"<<
			//					std::endl<<mysql_error(&mysql)<<endl;
						mysql_close(&mysql);
						return;
			 		}
			 }
			 x_delay.clear();
			 
			  for(std::deque<std::string >::iterator iter = x_rdata.begin();iter != x_rdata.end();++iter)
			 {
			 		if(mysql_query(&mysql,(*iter).c_str())!=0)
			 		{
			// 			std::cout<<"execute insert1 syntax fail"<<
				//				std::endl<<mysql_error(&mysql)<<endl;
						mysql_close(&mysql);
						return;
			 		}
			 }
			 x_rdata.clear();
			 
					 
			 scheduleAt(simTime()+5.0,insertDatabase);
			

    }
    
    
    else if(numBurstMessage>=maxNumBurst)
   		EV << " source stopped bursting!!! " << endl;   		
   	
}


void AsyncApplLayer::finish()
{

	m_iterator it=dmap.begin();
	m_iterator end=dmap.end();
	for(;it!=end;++it)
	{
		//std::cout<<"cluster head's address is: "<<(*it).first<<", the received packet number is: "<<(*it).second.size()<<std::endl;
	}
}




?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美xxxxxxxxx| 日韩制服丝袜av| 日本高清免费不卡视频| 久色婷婷小香蕉久久| 亚洲另类色综合网站| 久久一夜天堂av一区二区三区| 91免费版在线| 国产成人亚洲精品狼色在线| 午夜精品福利一区二区蜜股av | 亚洲黄色在线视频| 欧美videos中文字幕| 欧美亚洲丝袜传媒另类| 成人午夜视频在线| 韩国视频一区二区| 免费精品视频在线| 亚洲资源在线观看| 中文字幕一区二区在线观看| 2021国产精品久久精品| 欧美一区二区三级| 欧美日韩一区二区三区免费看| 播五月开心婷婷综合| 国产一区二区伦理| 精品一区二区三区在线观看国产 | 日本乱码高清不卡字幕| 粉嫩一区二区三区性色av| 精品中文字幕一区二区| 日韩精彩视频在线观看| 亚洲国产人成综合网站| 亚洲美女区一区| 日韩美女啊v在线免费观看| 国产日韩欧美亚洲| 久久久久国产成人精品亚洲午夜| 日韩一级二级三级| 欧美一级二级在线观看| 91精品在线麻豆| 欧美肥妇bbw| 欧美男人的天堂一二区| 欧美人妇做爰xxxⅹ性高电影| 在线视频一区二区三区| 欧美性高清videossexo| 欧美日韩免费观看一区二区三区| 欧美性感一区二区三区| 欧美久久婷婷综合色| 欧美军同video69gay| 欧美日韩卡一卡二| 制服丝袜一区二区三区| 国产欧美精品国产国产专区| 久久久亚洲综合| 国产精品色在线| 亚洲靠逼com| 亚洲一区二区三区四区五区中文| 亚洲成人免费电影| 男人的天堂久久精品| 精品一区二区三区蜜桃| 福利91精品一区二区三区| a在线欧美一区| 欧美性生活影院| 日韩欧美国产wwwww| 欧美精品一区二区久久久| 中文字幕乱码亚洲精品一区 | 青娱乐精品视频| 另类的小说在线视频另类成人小视频在线| 六月婷婷色综合| 成人av一区二区三区| 色噜噜狠狠成人网p站| 在线不卡一区二区| 欧美精品一区二区三区久久久 | 色菇凉天天综合网| 欧美日韩电影在线| 久久精品亚洲精品国产欧美kt∨| 国产精品久久久久久久久图文区| 一区二区三区四区精品在线视频 | 99精品视频在线免费观看| 欧美性生活一区| 日韩一区二区在线观看视频播放| 久久久www成人免费无遮挡大片| 最新中文字幕一区二区三区| 亚洲国产精品久久久久婷婷884 | 一本久道久久综合中文字幕 | 亚洲麻豆国产自偷在线| 日韩电影网1区2区| 成人永久看片免费视频天堂| 欧美视频日韩视频| 精品国产第一区二区三区观看体验| 国产精品久久久久久久久搜平片| 亚洲成人一区二区| 成人天堂资源www在线| 欧美日韩国产一级片| 国产拍欧美日韩视频二区| 亚洲一卡二卡三卡四卡| 国产一区二区精品久久99| 欧美在线免费播放| 国产欧美日韩卡一| 男女男精品视频网| 色婷婷精品大在线视频| 国产亚洲欧美日韩日本| 日韩av电影天堂| 色婷婷av一区二区三区之一色屋| 日韩久久精品一区| 亚洲一区二区三区爽爽爽爽爽| 国产福利精品一区二区| 欧美一区二区三区免费大片 | 不卡一区二区三区四区| 欧美成人三级在线| 亚洲综合色网站| 成人动漫视频在线| 久久综合九色综合久久久精品综合| 亚洲一二三四在线观看| 99九九99九九九视频精品| 久久久久久久综合色一本| 奇米精品一区二区三区在线观看一| 色婷婷av一区二区| 国产精品久久久久久久第一福利| 国产在线播放一区| 日韩欧美国产精品一区| 日韩精品亚洲一区| 欧美日韩在线电影| 一区二区三区在线观看欧美| av不卡免费电影| 国产精品三级视频| 国产高清精品久久久久| 精品久久久久久久人人人人传媒| 亚洲成人免费电影| 欧美日韩久久一区二区| 亚洲伊人色欲综合网| 日本精品一级二级| 亚洲精品免费在线| 91麻豆免费观看| ...av二区三区久久精品| 成人性视频免费网站| 国产欧美一区二区精品忘忧草| 久久国产麻豆精品| 欧美r级在线观看| 精品一区二区三区在线观看国产| 日韩三级在线免费观看| 蜜臀av一区二区| 精品欧美黑人一区二区三区| 久久99久久精品| 欧美精品一区二区在线观看| 国产一区二区精品久久99| 国产日韩在线不卡| 大陆成人av片| 成人欧美一区二区三区白人| 91玉足脚交白嫩脚丫在线播放| 亚洲视频免费在线观看| 色综合久久88色综合天天| 亚洲自拍都市欧美小说| 欧美疯狂做受xxxx富婆| 麻豆精品国产传媒mv男同| 精品久久久久久最新网址| 国产成人精品1024| 综合久久久久综合| 欧美日韩专区在线| 免费在线观看精品| 久久久国产午夜精品| 99久久国产综合精品女不卡 | 国产精品一区二区三区四区| 国产午夜精品久久久久久免费视 | 91精品国产综合久久小美女| 免费观看一级特黄欧美大片| 久久久噜噜噜久噜久久综合| 不卡视频一二三四| 亚洲成人福利片| 精品免费视频一区二区| caoporn国产精品| 亚洲va韩国va欧美va| 欧美xxxxxxxx| 一本色道久久综合亚洲91| 日韩精品高清不卡| 国产欧美日韩精品在线| 91成人在线免费观看| 六月丁香综合在线视频| 国产精品久久久久久久久搜平片| 欧美日韩国产中文| 国产成人三级在线观看| 亚洲曰韩产成在线| 久久噜噜亚洲综合| 色天使色偷偷av一区二区| 美腿丝袜亚洲综合| 亚洲欧洲成人自拍| 欧美成人高清电影在线| 99精品欧美一区二区三区小说 | 色94色欧美sute亚洲线路一久| 日韩高清一级片| 国产精品久久久久久亚洲毛片| 在线不卡a资源高清| 波多野结衣视频一区| 秋霞午夜鲁丝一区二区老狼| 日韩一区欧美小说| 精品久久久网站| 欧美探花视频资源| 粉嫩久久99精品久久久久久夜| 亚洲福利一二三区| 国产精品久久一级| 精品免费视频一区二区| 欧美三级韩国三级日本三斤| 不卡av免费在线观看| 激情av综合网| 婷婷开心激情综合| 日韩美女视频一区|