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

📄 cmobile.h

📁 此程序为wcdma系统当中ftp/video业务模型的c++程序仿真 通过此程序 能得到此两种业务在多种条件下的吞吐量和无码率的性能
💻 H
📖 第 1 页 / 共 2 页
字号:
                                        //一定就是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 + -