📄 cmsmanager.h
字号:
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 + -