📄 cmobile.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 + -