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

📄 cmsmanager.h

📁 此程序为wcdma系统当中ftp/video业务模型的c++程序仿真 通过此程序 能得到此两种业务在多种条件下的吞吐量和无码率的性能
💻 H
📖 第 1 页 / 共 2 页
字号:
	float m_fBLER64_4[4];                    //对应信道类型为4的BLER值
	float m_fBLER64_5[4];                    //对应信道类型为5的BLER值

	//数据(144K) BLER vs C/I表
	float m_fC2IIndex144[4];                  //存放着26个C2I值
	float m_fBLER144_1[4];                    //对应信道类型为1的BLER值
	float m_fBLER144_2[4];                    //对应信道类型为2的BLER值
    float m_fBLER144_3[4];                    //对应信道类型为3的BLER值
	float m_fBLER144_4[4];                    //对应信道类型为4的BLER值
	float m_fBLER144_5[4];                    //对应信道类型为5的BLER值

	//数据(384K) BLER vs C/I表
	float m_fC2IIndex384[4];                  //存放着26个C2I值
	float m_fBLER384_1[4];                    //对应信道类型为1的BLER值
	float m_fBLER384_2[4];                    //对应信道类型为2的BLER值
    float m_fBLER384_3[4];                    //对应信道类型为3的BLER值
	float m_fBLER384_4[4];                    //对应信道类型为4的BLER值
	float m_fBLER384_5[4];                    //对应信道类型为5的BLER值

	
    //以下为软切换参数
	float  m_fSHOAs_Th;                     //软切换门限值
    float  m_fSHOAs_Th_Hyst;                //软切换门限滞后
    float  m_fSHOAs_Rep_Hyst;               //软切换替换滞后
    int    m_iSHOTimer;                     //软切换定时器,即△T
    int    m_iSoftHandoffDelay;				//软切换事件时延
//slj    int    m_iActiveSetMaxSize;				//激活集最大数量
    
	int m_iSwitchCounter;				//记录数据移动台在DCH、DSCH信道之间的切换次数
	//for compile
	char *m_sIntermediateFileName;
	char *m_sHighestUserFileName;

	//掉话用户统计变量 by slj
	int m_iMsNumbelowWindow;
	int m_iMsNumUnAdmitted;
	//end of for compile
    
/*//新增成员变量 by zl
	//不同的调度算法:
    //#define MAXC2I			//最大C/I算法宏
    //#define RANDOMR			//随机数算法宏
    //#define PROPFAIRNESS		//正比公平算法
*/
	int m_iScheduleAlgorithm;   //调度算法

    int m_iDCHDataNumPerSector;				//每扇区DCH数据用户数
    int m_iDCHDataNumInSys;					//系统总的DCH数据用户数

    int m_iHSDSCHDataNumPerSector;		   //每扇区HSDSCH数据用户数
    int m_iHSDSCHDataNumInSys;			   //系统总的HSDSCH数据用户数

	//zl 20050308
    int m_iHttpNuminSector;          //每扇区Http用户数
	int m_iFtpNuminSector;           //每扇区FTP用户数
	int m_iVideoNuminSector;         //每扇区Video用户数

//by cmy
public:
	//用于门限调整的变量
	float m_fEPTargetErrorRate;		//门限调整方法中EP错误率的目标值
	float m_fTADownStep;			//门限调整方法中速率预测门限下调步长
	float m_fTARange;				//门限调整方法中速率预测门限的调整范围
	float m_fTALocalDownStep;
	float m_fTAGlobalDownStep;
	int m_iAlgorithm;		//指示门限调整方法

	//zl 20060308
    float m_fVideoEPTargetErrorRate;	//门限调整方法中Video的EP错误率的目标值
	float m_fVideoTADownStep;			//门限调整方法中Video速率预测门限下调步长



//Operation
public:
	CMsManager();                                           //构造函数
	~CMsManager();				                //析构函数,清除用户链表
	void Initialization(int,float,float,CLinkPrediction*);	//完成类的初始化工作
	void MsInitialization(CServiceArea*);	                //完成移动台对象的初始化工作
	void AddUser();				                //产生三种用户并加入链表队列
	void Clean();				                //清除用户链表,由析构函数调用
	void StatisticsReset();
    float DistanceCaculte(LOCATION_TYPE,SECTORID_TYPE);     //计算移动台到最近基站的距离

	////语音用户处理部分 by李晶
	void VoiceProcess();			                //对所有话音用户进行循环
	
	void TTIBlockCumulate(CVoiceMs*);                   //新增函数成员,累加一个TTI内的误块数至该用户的m_iNumOfErrorBlock,
	                                                        //累加一个TTI内的块数至该用户的m_iNumOfTotalBlock中
	void OutageAndDropJudgement(CVoiceMs*);                 //新增函数成员,在每个窗口结束时判断是否outage或drop
	
	void VoiceStatistics();			                //由DataStatics调用,每个Drop结束时执行
	
	void UpdateSectorVoicePower();                           //更新各扇区话音功率
    
	void UpdateSetPower();                                  //更新移动台的监测集

	void Coverage();                               //覆盖性能评估函数

	////数据用户处理部分 by陈美娅
	void DCHDataMsListProcess();	//数据移动台链表处理函数:形成接纳控制成功的DCH队列
	void DCHMsListProcess();	//处理接纳控制成功的DCH移动台

	////数据用户输出统计部分 by陈美娅
    void DataMsStatisticsCalculate();		//循环处理数据移动台计算统计量
	void SectorStaticsCumulate();
	void DataBitAndPacketCumulate();		//累计传输比特数和分组数,共统计用
	void MeanThroughputStatistics();		//计算扇区平均吞吐量,并输出至文件中		
//	void MeanPERStatistics();				//计算平均分组差错概率,并输出至文件
	void MsThroughputStatistics();			//把各个数据用户的吞吐量输出至文件中				
	void MsDelayStatistics();				//把各个http移动台的时延数据输出至文件中
	void MsASTStatistics();					//统计数据移动台的Active Session Throughput
	void MsSatisfiedRatio();				//统计数据移动台用户满意率
	void CalculateBLER();					//计算实际的误块率
	void MsLocAndInterference();			//考察移动台位置和干扰的关系
											//相应结果输出到LocAndInterference.txt    
	//数据DCH用户掉线的统计函数 add by 苏丽君 2004年07月30日	                                                        //累加一个TTI内的块数至该用户的m_iNumOfTotalBlock中
	void DCHMsDropRatio();                 //输出DCH用户掉话率和满意率

//----------------以下为接口函数(voice part)------------	
	int GetVoiceNumPerSector();
	void SetVoiceNumPerSector(int);
	
	char* GetVoiceFile();
	void SetVoiceFile(char*);

	int GetDataNumPerSector();
	void SetDataNumPerSector(int);

	float GetFractionHttp();
	void SetFractionHttp(float);

	float GetFractionFtp();
	void SetFractionFtp(float);

	float GetFractionVideo();            //20060116
	void SetFractionVideo(float);

//by cmy
	void SetFractionOfPacketPower(float);	//设置分组信道最大功率比
	float GetFractionOfPacketPowe(void);	//返回分组信道最大功率比

	char* GetSystemMeanThroughputFile();
	void SetSystemMeanThroughputFile(char*);

	char* GetSystemMeanPERFile();
	void SetSystemMeanPERFile(char*);
	
	char* GetMobileC2IFile();
	void SetMobileC2IFile(char*);

	char* GetMobileThroughputServiceFile();
	void SetMobileThroughputServiceFile(char*);

	char* GetMobileThroughputPacketCallFile();
	void SetMobileThroughputPacketCallFile(char*);

	TFI_TYPE* GetDCHTFIforEmptyDataQueue();
	void SetDCHTFIforEmptyDataQueue(TFI_TYPE*);

private:	
	////数据用户部分 by陈美娅
	void HandleDataMs(	CDataMs *pDataMs	);	//处理数据移动台,这里实现对HTTP、FTP移动台类型的多态
	void DataMsReInitialize(	CDataMs *pDataMs	);	//重新初始化数据移动台 
	void HandleAdmittedDCHMs(	CDataMs	*pDataMs	);	//处理接纳控制成功的DCH移动台,进行软切换、功率控制和数据传输
    void DCHDropEstimate(	CDataMs*	);			//判断当前DCH用户的掉话情况
	void DCHInitialDropEstimate(	CDataMs*	);			//在初始化时间内对DCH掉话的判断
	
public:
	//新增HS-DSCH用户部分函数  by zl
	void HSDSCHDataListProcess();         //对HSDSCH用户调度处理
    void HSDataProcess(CDataMs *pDataMs);  //高速数据处理
	void HSDSCHScheduling( CDataMs *pDataMs ); //HS-DSCH用户的调度函数 
	float HSDSCHPriorityCalculate( CDataMs *pDataMs );//计算HS-DSCH用户的优先级
	float MaxC2ICalculate( CDataMs *pDataMs);   //最大C/I算法优先级的计算 20051214
    float PropFairCalculate( CDataMs *pDataMs); //正比公平算法优先级的计算
	float GradePFCalculate( CDataMs *pDataMs); //加权分类优先级计算 20051205
	float AdaptiveGPFCalculate( CDataMs *pDataMs);   //自适应加权分类优先级计算 20051219
	float UtilityCalculate( CDataMs *pDataMs);   //效用函数优先级计算 20060111
	float M_LWDFCalculate(CDataMs *pDataMs);   
					//M_LWDF算法优先级的计算 20060405 by huangfan
	float EXPCalculate(CDataMs *pDataMs);
					//EXP算法优先级的计算    20060405 by huangfan
	void FeedbackProcess();    //处理反馈信息	
	void MeanIor2Ioc();      //输出平均Ior2Ioc

	//新增接口函数 by zl
	int GetDCHDataNumPerSector();       //读取每个扇区的DCH用户数
	void SetDCHDataNumPerSector(int);   //设置每个扇区的DCH用户数

	int GetHSDSCHDataNumPerSector();    //读取每个扇区的HSDSCH用户数
	void SetHSDSCHDataNumPerSector(int);//设置每个扇区的HSDSCH用户数

	int GetDCHDataNumInSys();       //读取系统中总的DCH用户数
	void SetDCHDataNumInSys(int);   //设置系统中总的DCH用户数

	int GetHSDSCHDataNumInSys();    //读取系统中总的HSDSCH用户数
	void SetHSDSCHDataNumInSys(int);//设置系统中总的HSDSCH用户数

	//by cmy
	void OutPutThreshold();   //输出门限值

	//用于调度
	void MsFairnessStatistics();    //20051205
	void MaxRatioThrStatistics();   //20051205
	void UpdateWeightedParameter(CDataMs *pDataMs);  //20051206

	//for prediction
	void UserC2ICalculate();  //20051223
	void UserMeanC2ICalculate();  //20051223
	void UpdatePredictionQueue();  //20051223
	void UpdateDelayedQueue();//20051227

	//zl 20060302 for Video
	void DelaytoDrop();      //判断是否掉话
	void VideoDropRatioStatistics();   //掉话率统计
	void UpdateWFactor();    //更新加权因子W
	void DropVideoPacket();  //判断丢包 zl 20060328 
	void VideoPacketDropRatioStatistics();   //丢包率统计 zl 20060328

	void FillQueue(); //zl 20060404
};

#endif

⌨️ 快捷键说明

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