📄 cmobile.h
字号:
//一定就是true,它可能在切换消息中已经被delete或
//substitute了。同样,不在此链表中的扇区bIsInActive
//也可能是true,它可能在切换消息中已经被add了。
CMsManager* m_pMsManager; //MsManager对象的指针
CServiceArea* m_pServiceArea; //ServiceArea对象指针
MONITORSECTOR_TYPE m_aMonitorSector[19*SectorNumber];
//监测扇区信息数组(移动台归属小区加上周围2圈小区对应的扇区)
//---------------操作---------------
public:
CMobile(); //构造函数,将各属性赋予初始值
~CMobile(); //析构函数
void MobileInitialization(int, CMsManager*, CServiceArea*,
float, int,float,TotalUserType); //新增一个参量 by zl
//初始化函数
//参数有:ID,MsManager和ServiceArea的指针,运动速度,
//信道类型。同时,调用其它函数,完成对MS的位置坐标,归属扇区标号进行初始化;
//对MS的信道模型数据,根据MS的归属扇区对监测扇区数组成员数据进行初始化
//需要新增的:m_iSHOMsgNum=0; 当前软切换消息队列长度初始化
//m_fMeanC2I=0;等
void LocationGenerator(); //坐标生成函数
//随机产生移动台的坐标
void LocationSector(); //归属扇区确定函数
//通过调用ServiceArea中的函数获得
void InitChannelModel(float,int); //信道模型初始化函数
//调用CchannelModel的初始化函数,完成信道模型的初始化
void InitMonitorSet(); //监测扇区信息初始化函数
//从Ms归属小区中读出监测扇区的标号,计算路径损耗和天线
//增益,并通过CchannelModel获得快衰和慢衰的初始值,
//计算出总路径损耗,获得每一个监测扇区到达移动台的干扰值。
//完成干扰、导频功率、信噪比SNR的初始计算,复位定时器,并初始化最佳扇区。
void InitActiveSet(); //激活集初始化函数,根据最佳基站的导频信噪比,扫描监测集中其他扇区的导频信噪比,
//确定激活集扇区、业务信道功率(或分组信道功率)和信噪比
void UpdateMonitorSet(); //监测集信息更新函数
//更新监测集数组中各项的慢衰、从而更新总损耗和移动台接收功率值。
//更新监测集数组中各项的干扰、导频功率与信噪比SNR,并更新最佳扇区。
void UpdateActiveSet(); //激活集更新函数,根据监测集更新的情况,计算业务信道(或者是分组信道)的信噪比。
//在每个时隙中均需调用。
// virtual void PowerControl()=0; //纯虚函数成员,从而在基类中不给出功控函数的实现。
//具体实现将分别放在话音移动台和数据移动台中
void ObtainC2I(); //C/I计算函数,根据激活集情况,计算用户最终的C/I(简单的累加)
void ObtainBestSector(); //最佳扇区计算函数
//根据监测集信息找出最佳扇区,确定标号和下标。
//Added by Li Jing,20040918
void CumulateIor2Ioc();
void SHOMsgGenerator(); //软切换消息生成函数,根据候选集更新情况,生成加入、
//去掉或替换消息(替换体现为去掉和加入各一个消息)
int SHOMsgProcess(); //消息队列处理函数,完成每个时隙内消息等待时间递减的功能,并返回到时消息的数量。
void ChangeActiveSet(); //激活集变更函数,根据消息处理函数的返回值,读出相应的软切换消息,根据该消息完成
//相应的操作,去掉:直接从链表中删除,加入:加入新的激活信息结构体,并初始化各个变量。
//计算软切换状态下移动台的总功率added by slj 20041020
float ObtainPowerInSHO();
//////////////////其它接口函数: 完成私有型数据的读写
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*);
MONITORSECTOR_TYPE GetMonitorSector();
void SetMonitorSector();
SECTORID_TYPE GetLocationSector();
void SetLocationSector(SECTORID_TYPE);
SECTORID_TYPE GetBestSector();
void SetBestSector(SECTORID_TYPE);
int GetBestSectorIndex();
void SetBestSectorIndex(int);
float GetBestPilotSNR();
void SetBestPilotSNR(float);
///////////////以下为新加到基类中的接口函数////////////////////////////////
int GetActiveSetSize(); //得到当前激活集的大小
void SetActiveSetSize(int); //设置当前激活集的大小
int GetSHOMsgNum(); //得到软切换消息队列长度
void SetSHOMsgNum(int); //设置软切换消息队列长度
float GetC2I(); //得到当前时隙的C/I
void SetC2I(float); //设置当前时隙的C/I
bool IsC2IEnough(); //当前C/I是否超过门限值,TRUE为超过
bool IsAdmitted(); //返回用户是否接纳成功的标识
int GetAdmitTimer(); //得到接纳失败计时器的值
void SetAdmitTimer(int); //设置接纳失败计时器的值
float GetTTIMeanC2I();
void SetTTIMeanC2I(float);
float GetTTIBLER();
void SetTTIBLER(float);
int GetNumOfErrorBlock();
void SetNumOfErrorBlock(int);
int GetNumOfTotalBlock();
void SetNumOfTotalBlock(int);
float GetWindowBLER();
void SetWindowBLER(float);
TFI_TYPE* GetTFIPointer();
void SetTFIPointer(TFI_TYPE*);
Usertype GetUserType(void);
TRAFFICTYPE GetTrafficType(void); //读取移动台业务类型
float GetMsBsDistance();
float GetIor2Ioc();
void SetIor2Ioc(float);
//by zl 20050517
float GetIor();
void SetIor(float);
float GetIoc();
void SetIoc(float);
float GetGem();
void SetGem(float);
// int GetSlotCount();
//新增接口函数 add by slj 20041020
int GetNumOfSHOBlock();
void SetNumOfSHOBlock( int );
int GetNumOfSHOFailedBlock();
void SetNumOfSHOFailedBlock( int );
//新增函数 by zl
void GetLocationSectorIndex(); //获得归属小区在监测集中的下标
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -