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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cnetworkdrive.cpp

?? 這是cdma2000的一個分組調度算法實例
?? CPP
?? 第 1 頁 / 共 4 頁
字號:
///////////////////////////////////////////////////////////////////////////////
//  CNetworkDrive.cpp         CNetworkDrive 類的實現
///////////////////////////////////////////////////////////////////////////
//
//  建立日期:2001年3月19日上午
//  建立者:  歐陽暉
//
///////////////////////////////////////////////////////////////////////////
//  修改記錄:
//
//	2001年3月20日:基本完成本模塊設計
//
//	2001年3月21日:增加了一些成員變量:
//		數據采集的drop號、數據采集的時隙號、數據統計用文件個數。
//	以及它們的接口函數。
//		繼續編寫參數讀入的程序段。
//
///////////////////////////////////////////////////////////////////////////////

#include "CNetworkDrive.h"
#include "CChannelModel.h"
#include <afx.h>
#include <string.h>
#include <iostream.h>
#include <crtdbg.h>

float fFastFadingValue_1[SubslotNumber*FastFadingValueLength];
float fFastFadingValue_2[SubslotNumber*FastFadingValueLength];
float fFastFadingValue_3[SubslotNumber*FastFadingValueLength];
float fFastFadingValue_4[SubslotNumber*FastFadingValueLength];
float fFastFadingValue_5[SubslotNumber*FastFadingValueLength];

///////////////////////////////////////////////////////////////////////////
//
//	TITLE:	系統初始化函數
//
//	PURPOSE:初始化本類的各個參數,調用包含的各個類的初始化函數,完成系統
//			初始化。主要工作是從數據文件中讀入參數
//
//	SAMPLE CALL:
//			CNetworkDrive mysystem;
//			mysystem.SystemInitialization()
//
//	CALLED BY FUNCTIONS:
//			CNetworkDrive::SimulationRun()
//
//	CALLING FUNCTIONS:
//			CServiceArea::Initialization()
//			CMsManager::Initialization()
//			CLinkPrediction::Initialization()
//
//	AUTHOR:	Ouyang Hui
//
//	DATE:	01/04/04
//
//	MODIFICATIONS SINCE 01/04/04:
//			01/05/17	move m_ServiceArea.Initialization() to DropInitialization() 
//			01/05/18	modify the arguments of m_MsManager.Initialization()
//////////////////////////////////////////////////////////////////////////
	
void CNetworkDrive::SystemInitialization()
{
	ReadData();		//Read data from the parameter file

	//////////////////////////////////////////////////////////////////////
	//////////////////////////////////////////////////////////////////////
	//////////////////////////////////////////////////////////////////////

	Random R;		//initialize the random numbers
	R.Set(0.6616);

	//initialize the class CMsManager
	m_MsManager.Initialization(m_iSlotNum,SlotSize,
		m_fTimePerDrop,&(m_LinkPrediction));
	
	//initialize the class CLinkPrediction
	m_LinkPrediction.Initialization();
}

/////////////////////////////////////////////////////////////////////////////
//
//	TITLE:	Reading-data Function
//
//	PURPOSE:Read data from the parameter file (testdata.txt).
//
//	CALLED BY FUNCITONS:
//			CNetworkDrive::SystemInitialization()
//
//	CALLING FUNCTIONS:
//			CNetworkDrive::ReadData_Simulation()
//			CNetworkDrive::ReadData_ServiceArea()
//			CNetworkDrive::ReadData_ChannelModel()
//			CNetworkDrive::ReadData_VoiceMs()
//			CNetworkDrive::ReadData_DataMs()
//			CNetworkDrive::ReadData_HttpMs()
//			CNetworkDrive::ReadData_Handoff()
//			CNetworkDrive::ReadData_Statics()
//
//	AUTHOR:	Ouyang Hui
//
//	DATE:	01/04/04
//
//	MODIFICTIONS SINCE 01/04/04:
//			01/04/06 Ouyang Hui
//				Move the parts of reading data into their correspondent 
//				functions.
//
/////////////////////////////////////////////////////////////////////////////

void CNetworkDrive::ReadData()
{
	////////////////////////////////////////////////////////////////////
	//仿真程序參數的讀入
	ReadData_Simulation();
	
	////////////////////////////////////////////////////////////////////
	//服務區環境參數的讀入
	ReadData_ServiceArea();

	//////////////////////////////////////////////////////////////////////
	//鏈路模型參數讀入
	ReadData_ChannelModel();
	
	//////////////////////////////////////////////////////////////////////
	//話音移動臺參數的讀入
	ReadData_VoiceMs();
	
	//////////////////////////////////////////////////////////////////////
	//數據業務移動臺參數的讀入
	ReadData_DataMs();
	
	//////////////////////////////////////////////////////////////////////
	//HTTP移動臺參數的讀入
	ReadData_HttpMs();
	
	//////////////////////////////////////////////////////////////////
	//軟切換與小區交換參數的讀入
	ReadData_Handoff();
	
	//////////////////////////////////////////////////////////////////
	//數據統計參數讀入
	ReadData_Statics();
    //快衰落值參數讀入
	ReadData_FastFadingValue();

	CheckTheInputs();
	
}

/////////////////////////////////////////////////////////////////////////
//
//	TITLE:	Functions Reading Data
//
//	PURPOSE:Reading Simulation's parameter from the data file
//
//	CALLED BY FUNCTIONS:
//			CNetworkDrive::ReadData()
//
//	COMMENTS:
//			The format of this part of data in the file is:
//			<begin>
//			1.仿真程序參數
//			仿真的drop數 = 10
//			每drop內的時間長度 = 5 (s)
//			每扇區的話音用戶數 = 1
//			每扇區的分組用戶數 = 2
//			分組用戶中的HTTP用戶比例 = 0.5
//			分組用戶中的FTP用戶比例 = 0.5
//			<end>
//
//			Notes:
//			1.The first line should contain the specific string, (Here is
//			"仿真程序參數").
//			2.On the left of '=' there must be the parameter name, which
//			should be typed exactly regardless of blank and tab.
//			3.On the right of '=' there must be the value of the parameter.
//			And between '=' and the figure there should be no other characters
//			than blank and tab.
//			4.The order of parameters should not be changed. And none of
//			them can be omitted.
//			5.You can insert some lines without '=' for comments. You can
//			also add strings after the figures which indicate some information
//			like unit.
//
//	AUTHOR:	Ouyang Hui
//
//	DATE:	01/04/06
//
//	MODIFICTIONS SINCE 01/04/06
//
/////////////////////////////////////////////////////////////////////////
void CNetworkDrive::ReadData_Simulation()
{

	int NUM_VALUE;
	const char* cSpecificString;
	bool bFlag;
	char* pname[15];
		
	double pval[15];
	CStdioFile f1;		//定義一個I/O文件對象
	CString s1,s2,s3;		//定義三個字符串對象
	double x;
	int i,j,k,iEqualPos;
	char* q;
	char buf[100];	//定義一個數據緩沖區,用于存放一行字符串

//	cout<<ParameterFile<<endl;
	
	/* 打開數據文件準備讀*/
	if(!f1.Open(ParameterFile,CFile::modeRead))
	{
	#ifdef _DEBUG
		afxDump<<"Unable to open file"<<"\n";	//異常處理
	#endif
	}

	pname[0]="仿真的drop數";
	pname[1]="每drop內的時間長度";
	pname[2]="每扇區的話音用戶數";
	pname[3]="每扇區的分組用戶數";
	pname[4]="分組用戶中的HTTP用戶比例";
	pname[5]="分組用戶中的FTP用戶比例";

	i=0;NUM_VALUE=6;
	cSpecificString="仿真程序參數";
	bFlag=FALSE;
	
	while(f1.ReadString(buf,100)!=NULL)
	{
		s1=buf; //把這一行字符串內容賦給對象s1
		if (s1.Find(cSpecificString)>=0) 
		{
			bFlag=TRUE;
			break;
		}
	}

	if (!bFlag)
	{
		cerr<<"Cannot find the specific string "<<cSpecificString<<endl;
		f1.Close();
		exit(0);
	}

	/*從數據文件依次讀入每一行字符串,對每一行字符串進行處理*/
	while(f1.ReadString(buf,100)!=NULL)
	{
		if (i>=NUM_VALUE)
			break;

		s1=buf; //把這一行字符串內容賦給對象s1

		iEqualPos=s1.Find("=");
		if (iEqualPos<0)
			continue;

		s2=s1.Left(iEqualPos);
		s3=s1.Right(s1.GetLength()-iEqualPos-1);

		j=0;
		k=iEqualPos-1;
		while ((s2[j]==' ')||(s2[j]=='\t')) j++;
		while ((s2[k]==' ')||(s2[k]=='\t')) k--;
		s2=s2.Mid(j,k-j+1);

		if (s2!=pname[i]) 
		{
			cerr<<"Unexpected parameter name  "<<s2<<"."<<endl
				<<"Should be "<<pname[i]<<endl;
			f1.Close();
			exit(0);
		}

		x=strtod(s3,&q);

		pval[i]=x;
		i++;
	}

	m_iDropNum=(int)pval[0];
	m_fTimePerDrop=(float)pval[1];
	m_iSlotNum=(int)(pval[1]*1000/SlotSize);
	m_MsManager.SetVoiceNumPerSector((int)pval[2]);
	m_MsManager.SetDataNumPerSector((int)pval[3]);
	m_MsManager.SetFractionHttp((float)pval[4]);
	m_MsManager.SetFractionFtp((float)pval[5]);
	
	f1.Close();//關閉參數文件

}

/////////////////////////////////////////////////////////////////////////
//
//	TITLE:	Functions Reading parameters
//
//	PURPOSE:Read the service area's parameters from the data file
//
//	CALLED BY FUNCTIONS:
//			CNetworkDrive::ReadData()
//
//	COMMENTS:
//			The format of this part of data in the file is:
//			<begin>
//			2.服務區環境參數
//			基站間間隔 = 2 (km)
//			BTS的最大發射功率 = 43 (dBm)
//			分組數據信道的最大功率比例 = 0.7
//			前向信道的正交因子 = 0.4
//			<end>
//
//			Notes:
//			1.The first line should contain the specific string, (Here is
//			"服務區環境參數").
//			2.On the left of '=' there must be the parameter name, which
//			should be typed exactly regardless of blank and tab.
//			3.On the right of '=' there must be the value of the parameter.
//			And between '=' and the figure there should be no other characters
//			than blank and tab.
//			4.The order of parameters should not be changed. And none of
//			them can be omitted.
//			5.You can insert some lines without '=' for comments. You can
//			also add strings after the figures which indicate some information
//			like unit.
//
//	AUTHOR:	Ouyang Hui
//
//	DATE:	01/04/06
//
//	MODIFICTIONS SINCE 01/04/06
//
/////////////////////////////////////////////////////////////////////////
void CNetworkDrive::ReadData_ServiceArea()
{
	int NUM_VALUE;
	const char* cSpecificString;
	bool bFlag;
	char* pname[15];
		
	double pval[15];
	CStdioFile f1;		//定義一個I/O文件對象
	CString s1,s2,s3;		//定義三個字符串對象
	double x;
	int i,j,k,iEqualPos;
	char* q;
	char buf[100];	//定義一個數據緩沖區,用于存放一行字符串

	/* 打開數據文件準備讀*/
	if(!f1.Open(ParameterFile,CFile::modeRead))
	{
	#ifdef _DEBUG
		afxDump<<"Unable to open file"<<"\n";	//異常處理
	#endif
	}

	pname[0]="基站間間隔";
	pname[1]="BTS的最大發射功率";
	pname[2]="分組數據信道的最大功率比例";
	pname[3]="前向信道的正交因子";

	i=0;NUM_VALUE=4;
	cSpecificString="服務區環境參數";
	bFlag=FALSE;

	while(f1.ReadString(buf,100)!=NULL)
	{
		s1=buf; //把這一行字符串內容賦給對象s1
		if (s1.Find(cSpecificString)>=0) 
		{
			bFlag=TRUE;
			break;
		}
	}

	if (!bFlag)
	{
		cerr<<"Cannot find the specific string "<<cSpecificString<<endl;
		f1.Close();
		exit(0);
	}

	/*從數據文件依次讀入每一行字符串,對每一行字符串進行處理*/
	while(f1.ReadString(buf,100)!=NULL)
	{
		if (i>=NUM_VALUE)
			break;

		s1=buf; //把這一行字符串內容賦給對象s1

		iEqualPos=s1.Find("=");
		if (iEqualPos<0)
			continue;

		s2=s1.Left(iEqualPos);
		s3=s1.Right(s1.GetLength()-iEqualPos-1);

		j=0;
		k=iEqualPos-1;
		while ((s2[j]==' ')||(s2[j]=='\t')) j++;
		while ((s2[k]==' ')||(s2[k]=='\t')) k--;
		s2=s2.Mid(j,k-j+1);

		if (s2!=pname[i]) 
		{
			cerr<<"Unexpected parameter name  "<<s2<<"."<<endl
				<<"Should be "<<pname[i]<<endl;
			f1.Close();
			exit(0);
		}

		x=strtod(s3,&q);

		pval[i]=x;
		i++;
	}

	m_ServiceArea.SetSiteDistance((float)pval[0]);
	m_ServiceArea.SetOrthogonalFactor((float)pval[3]);
	float ptemp=(float)pow(10,(float)pval[1]/10.);
	ptemp=(float)(ptemp*(float)pval[2]);
	for (int ii=0;ii<MM;ii++)
		for (int jj=0;jj<NN;jj++)
			for (int kk=0;kk<SectorNumber;kk++)
			{
				SECTORID_TYPE id;
				id.stCellID.m=ii+1;
				id.stCellID.n=jj+1;
				id.s=kk+1;
				m_ServiceArea.GetSector(id)
					->SetMaxPower((float)pow(10,pval[1]/10.0));
				m_ServiceArea.GetSector(id)->SetMaxPacketPower(ptemp);
			}
			
	f1.Close();
}

/////////////////////////////////////////////////////////////////////////
//
//	TITLE:	Function of Reading Parameters
//
//	PURPOSE:Reading channel model's parameters from the data file.
//
//	CALLED BY FUNCTIONS:
//			CNetworkDrive::ReadData()
//
//	COMMENTS:
//			The format of this part of data in the file is:
//			<begin>
//			3.鏈路模型參數
//			<begin>
//			慢衰的標準差 = 8.9 (dB)
//			信道類型的數量 = 5
//			每種信道類型所占的比例 = 0.30 (Pedestrian A, 1 Finger, 3 kmph)
//									 0.30 (Pedestrian B, 3 Fingers, 10 kmph)
//									 0.20 (Vehicular A, 2 Fingers, 30 kmph)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲电影一级黄| 亚洲国产精品影院| 欧美肥大bbwbbw高潮| 色综合久久久久| 国产成人在线影院 | 97se亚洲国产综合自在线| 国内精品不卡在线| 国产麻豆成人传媒免费观看| 精品无人区卡一卡二卡三乱码免费卡| 日本女人一区二区三区| 日本女人一区二区三区| 精品在线一区二区三区| 国产精品自产自拍| 成人av网站大全| 91色视频在线| 欧美三级视频在线| 日韩免费视频一区二区| 久久亚洲综合av| 亚洲欧美在线视频| 夜夜精品视频一区二区 | 久久婷婷色综合| 中文字幕精品在线不卡| 亚洲欧洲精品一区二区精品久久久| 国产精品久久三| 亚洲电影一区二区三区| 免费av成人在线| 成人黄色软件下载| 欧美三级中文字幕在线观看| 精品久久久久av影院| 国产亚洲精品aa| 亚洲伊人色欲综合网| 久久精品国产亚洲高清剧情介绍| 国产精品亚洲专一区二区三区| 成人免费视频app| 欧美绝品在线观看成人午夜影视| 精品国产乱码久久| 亚洲精品亚洲人成人网| 久久www免费人成看片高清| 波波电影院一区二区三区| 欧美日韩精品是欧美日韩精品| 久久久久久久国产精品影院| 亚洲一区二区在线播放相泽 | 狠狠色丁香久久婷婷综合_中 | 午夜精品久久久| 从欧美一区二区三区| 7777精品伊人久久久大香线蕉超级流畅 | 99re热视频这里只精品| 日韩精品一区二区三区中文不卡| 国产精品第13页| 国产一区二区三区美女| 欧美日韩一区不卡| 自拍偷拍亚洲欧美日韩| 国产一区二区三区免费看| 欧美精品久久一区二区三区| 国产精品不卡一区二区三区| 精品一区在线看| 3d动漫精品啪啪一区二区竹菊| 中日韩av电影| 国产一区二区导航在线播放| 欧美男男青年gay1069videost| 国产精品免费视频一区| 国产精品系列在线播放| 欧美一区二区三区男人的天堂| 一区二区三区在线视频免费| 成人一区二区三区视频| 2023国产精品| 精品亚洲国产成人av制服丝袜| 欧美精品粉嫩高潮一区二区| 一二三区精品视频| 欧美亚洲自拍偷拍| 一区二区三区成人| 91在线免费播放| 国产精品久久久久久久第一福利| 国产美女精品人人做人人爽| 日韩欧美电影一二三| 蜜臀a∨国产成人精品| 3d成人h动漫网站入口| 石原莉奈在线亚洲二区| 欧美精品三级在线观看| 免费成人在线网站| 久久这里只有精品6| 国产高清精品网站| 一区视频在线播放| 色婷婷综合久久久中文字幕| 中文字幕制服丝袜成人av| 97aⅴ精品视频一二三区| 一区二区三区精品视频在线| 欧美色国产精品| 精品一区二区三区欧美| 中文字幕欧美日韩一区| 91亚洲精华国产精华精华液| 一级精品视频在线观看宜春院 | 国产成人午夜精品影院观看视频| 久久久蜜桃精品| 99在线精品一区二区三区| 亚洲欧美另类在线| 欧美精品1区2区| 国产精品一区二区你懂的| 中文字幕亚洲一区二区va在线| 色一情一乱一乱一91av| 日韩精品电影一区亚洲| 国产亚洲一二三区| 欧洲国产伦久久久久久久| 免费人成精品欧美精品| 欧美国产在线观看| 欧美三级日韩在线| 狠狠色丁香婷婷综合久久片| 久久99久久99| 国产成人亚洲综合a∨猫咪| 久久免费的精品国产v∧| 99精品视频在线播放观看| 亚洲3atv精品一区二区三区| 2020国产精品久久精品美国| 国产精品一品视频| 91麻豆国产香蕉久久精品| 国产精品一区二区免费不卡| 国产原创一区二区| 懂色av一区二区在线播放| 国产精品66部| 成人午夜激情在线| 91在线丨porny丨国产| 91在线观看高清| 欧美日韩一区二区三区高清| 欧美放荡的少妇| 精品福利av导航| 国产日韩欧美一区二区三区综合| 国产亚洲制服色| 亚洲欧美在线aaa| 亚洲另类春色国产| 午夜精品久久一牛影视| 日韩电影网1区2区| 国产一区在线观看麻豆| 国产成人精品午夜视频免费| 99久久精品国产观看| 欧美久久久影院| 久久这里只有精品首页| 1024成人网| 免费成人性网站| 成人精品小蝌蚪| 欧美精品123区| 国产日韩av一区| 亚洲一区二区中文在线| 日本在线不卡一区| 丰满放荡岳乱妇91ww| 91久久精品一区二区二区| 欧美福利电影网| 欧美高清在线精品一区| 一区二区三区中文字幕| 美女一区二区三区在线观看| 国产很黄免费观看久久| 欧美亚洲国产一区在线观看网站| 日韩欧美久久久| 1000部国产精品成人观看| 毛片av中文字幕一区二区| 成人av第一页| 欧美一级片在线| 国产精品福利一区| 九九热在线视频观看这里只有精品| 丁香桃色午夜亚洲一区二区三区| 91福利在线看| 国产亚洲欧美激情| 亚洲最快最全在线视频| 国产一区二区网址| 欧美美女喷水视频| 国产精品三级久久久久三级| 天天做天天摸天天爽国产一区 | 偷拍与自拍一区| 成人av集中营| 久久女同精品一区二区| 亚洲一区二区三区免费视频| 国产成人av电影在线| 欧美肥妇bbw| 亚洲成在人线免费| 99re成人精品视频| 久久亚洲捆绑美女| 蜜臀精品一区二区三区在线观看 | 欧美电影一区二区| 亚洲天堂av一区| 国产69精品久久99不卡| 日韩女优av电影| 亚洲1区2区3区视频| 一本到不卡精品视频在线观看| 久久蜜桃av一区二区天堂 | 7777精品伊人久久久大香线蕉经典版下载 | 国模无码大尺度一区二区三区| 色综合久久久久| 亚洲女同ⅹxx女同tv| 粉嫩一区二区三区性色av| 精品国产乱码久久久久久闺蜜| 午夜电影一区二区三区| 色诱视频网站一区| 亚洲三级久久久| 成人av免费在线观看| 国产精品青草综合久久久久99| 精品一区二区日韩| 精品国产乱码久久久久久影片| 欧美a级理论片| 日韩免费视频一区| 经典三级在线一区| 久久久欧美精品sm网站|