⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cmobile.h

📁 这是cdma2000的一个分组调度算法实例
💻 H
字号:
///////////////////////////////////////////////////////////////////
//                        for Evaluation Project
//                          Mobile User Team
//                      BUPT Radio Research Center
///////////////////////////////////////////////////////////////////
//
//                          CMobile.h
//
///////////////////////////////////////////////////////////////////
//
// 移动台类的头文件, 用于声明移动台基类CMobile, 其定义在CMobile.cpp中。
// 其派生类; 包括话音MS类, 数据MS类, 数据MS类又派生出HTTP数据MS类和FTP
// 数据MS类,它们的声明和定义都在相应的*.h和*.cpp文件中.
//
//
// Ref. documents:
//          "1xEV-DV仿真程序类的初步定义"
//
// Written by:    CAI Qi-ming, ZHANG Ding-ye, 
//                DOU Zhong-zhao, ZHANG Xin
// Rev. date:     20010320 (yyyymmdd)
//
// What's NEW:
//		20010319, include文件"header1.h"变为"systemsim.h",因为文件名
//				的可读性原因. by ZhangXin.
//		20010320, 为了便于分工,删除了派生类的声明,而在本文件中只有
//				基类CMobile
//
//      20020408
//          CMobile::MobileIntialization()的参数列表里增加一个整型
//			参数,表示将要初始化的移动台的业务类型
///////////////////////////////////////////////////////////////////

#if !defined(_CMOBILE_H__INCLUDED_)
#define _CMOBILE_H__INCLUDED_

#include "Afxtempl.h"
#include "systemsim.h"		//基本的数据结构体定义,同原来的header1.h基本相同
#include "CServiceArea.h"
#include "CChannelModel.h"


//................Added By hj ,  July,11,2003...................//
//#define UNIFORMITY          //移动台初始化时均匀分布   
//#define R1                //移动台初始化时撒在以BS为圆心的圆周上,半径为0.9R
#define R2                //移动台初始化时撒在以BS为圆心的圆周上,半径为0.5R
//#define R3                //移动台初始化时撒在以BS为圆心的圆周上,半径为0.1R
//..............................................................//

///////////////////////////////////////////////////////////////
//			移动台用户基类
///////////////////////////////////////////////////////////////
class CMobile
{
//-------------属性--------------
protected:
	int					m_iMsID;			//移动台ID
	LOCATION_TYPE		m_stMsLocation;		//用户坐标,单位为米

	CMsManager*			m_pMsManager;		//MsManager对象的指针
	CServiceArea*		m_pServiceArea;		//ServiceArea对象指针

	CChannelModel		m_ChannelModel;		//信道模型对象(链路级)
	FADINGVALUE_TYPE*	m_pFadingValuePointer;	//衰落数据结构体指针, 读取信道模型衰落数据用

	NEIGHBORSECTOR_TYPE	m_aNeighborSector[19*SectorNumber];		//相邻扇区信息数组(两圈小区)
	
	CANDIDATESECTOR_TYPE m_aCandidateSector[6+SectorNumber];	//候选扇区信息数组,
												//第一圈每小区一个加上本小区三个
	
	SECTORID_TYPE		m_stLocationSector;		//归属扇区的标号, 根据地理位置确定
	
	SECTORID_TYPE		m_stBestSector;			//最佳扇区的标号, 根据导频信道信噪比确定
	int					m_iBestSectorIndex;		//最佳扇区在候选集中的相对位置, 
												//即在数组候选集中的下标
	float				m_fBestPilotSNR;		//最佳扇区的导频信道信噪比

	int                 m_iSlotCount;           //时隙记数器
	float               m_fStdSlowFading;       //慢衰标准差
	int m_nChannelType;				//MS信道类型
	float               m_fMsVelocity;

   
//---------------成员函数---------------
public:
	CMobile(){}	 //构造函数,将各属性赋予初始值
	~CMobile(){} //析构函数

	//...... modified by cqm, Apr.8 ......//
	void	MobileInitialization(int, CMsManager*, CServiceArea*, 
			float, int,float,int);	//初始化函数
				//参数有:ID,MsManager和ServiceArea的指针,运动速度,
				//信道类型。同时,调用其它函数,完成其它变量的初始化。
	//....................................//加了一个入口参数
	void	LocationGenerator();	//坐标生成函数
				//随机产生移动台的坐标
	void	LocationSector();		//归属扇区确定函数
				//通过调用ServiceArea中的函数获得
	void	InitChannelModel(float,int);		//信道模型初始化函数	
				//调用CchannelModel的初始化函数,完成信道模型的初始化
	void	InitNeighborSet();		//相邻扇区信息初始化函数#	
				//从归属小区中读出相邻扇区的标号,计算路径损耗和天线
				//增益,并通过CchannelModel获得快衰和慢衰的初始值,
				//计算出总路径损耗,获得扇区到达移动台的干扰值。
	void	InitCadidateSet();		//候选扇区信息初始化函数#
				//从归属小区读出候选扇区的标号,确定自己的相邻扇区在
				//相邻扇区信息数组中的相对位置(数组下标),完成干扰、
				//功率、信噪比的初始计算,复位定时器。
	void	UpdateNeighborSet();	//相邻集信息更新函数
				//更新相邻集数组中各项的快衰、慢衰、总损耗和接收功率值。
	void	UpdateCandidateSet();	//候选集更新函数
				//更新候选集数组中各项的干扰、功率与信噪比。
	void	ObtainBestSector();		//最佳扇区计算函数
				//根据候选集信息找出最佳扇区,确定标号和下标。

	//////////////////其它接口函数:	完成私有型数据的读写
	int		GetMsID();
	void	SetMsID(int);
	
	LOCATION_TYPE	GetMsLocation();
	void	SetMsLocation(LOCATION_TYPE);
	
	CMsManager*		GetMsManager();
	void	SetMsManager(CMsManager*);
	
	CServiceArea*	GetServiceArea();
	void	SetServiceArea(CServiceArea*);
	
	CChannelModel	GetChannelModel();
	void	SetChannelModel(CChannelModel);
	
	FADINGVALUE_TYPE* GetFadingValuePointer();
	void	SetFadingValuePointer(FADINGVALUE_TYPE*);

	NEIGHBORSECTOR_TYPE GetNeighborSector();
	void	SetNeighborSector();

	CANDIDATESECTOR_TYPE GetCandidateSector();
	void	SetCandidateSector();

	SECTORID_TYPE GetLocationSector();
	void	SetLocationSector(SECTORID_TYPE);

	SECTORID_TYPE GetBestSector();
	void	SetBestSector(SECTORID_TYPE);

	int		GetBestSectorIndex();
	void	SetBestSectorIndex(int);

	float	GetBestPilotSNR();
	void	SetBestPilotSNR(float);

};
//endof class CMobile

#endif
//End of file:   CMobile.h

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -