📄 cmsmanager.h
字号:
//需要在CMsManager中定义:int m_iBlockUserOfDCH; float m_fBlockRatioOfDCH;(在DataProcess中统计用)
//还需要加入数据部分的数据成员和函数成员!
///////////////////////////////////////////////////////////////////
// WCDMA TEAM //
// BUPT Radio Research Center //
///////////////////////////////////////////////////////////////////
//
// CMsManager.h
//
///////////////////////////////////////////////////////////////////
//
// 移动台管理与数据统计类的头文件, 用于声明类CMsManager, 其实现在
// CMsManager.cpp中。
//
// 增加了DROP结束时,对话音用户链表上还未结束通话的用户的处理,以
// 增加统计的精确性
//
// Written by: 陈美娅 李晶
// Date: 200404
//
///////////////////////////////////////////////////////////////////
/*#if !defined(SYSTEMLEVEL_SIMULATION_CDMATYPE_MANAGER_H)
#define SYSTEMLEVEL_SIMULATION_CDMATYPE_MANAGER_H
*/
#if !defined(SYSTEMLEVEL_SIMULATION_CDMATYPE_MANAGER_H)
#define SYSTEMLEVEL_SIMULATION_CDMATYPE_MANAGER_H
#include "systemsim.h"
#include <afxtempl.h>
#define WindowSize 600
#define TTISize 3
#define OutageThreshold 0.15
#define DropThreshold 0.5
#define DropTimer 5
#define UserOutageThreshold 0.01
#define BEROfPC 0.04
#define PowerControlStep 0.5
#define ActiveSetMaxSize 3
#define InitialDropWindowSize 1500
#define InitialDCHDropThreshold 0.15
#define DCHDropThreshold 0.1
#define MAXDCHPOWER 2000
#define INITIALDCHPOWER 1000 //小于最大可用功率,避免预测速率过高和用户接入失败
#define RATEASSIGNTIMER 1500
#define POWCTRLFAILEDTIMER 750
///////////////////////////////////////////////////////////////
// 移动台管理与数据统计模块头文件 //
///////////////////////////////////////////////////////////////
class CMsManager
{
public:
//attribute
private:
CServiceArea* m_pServiceArea; //指向ServiceArea对象的指针
CLinkPrediction* m_pLinkPrediction; //指向LinkPrediction对象的指针
//话音用户链表和用户数
CTypedPtrList<CPtrList, CVoiceMs*> m_VoiceList; //话音业务用户链表
int m_iVoiceNumPerSector; //每扇区话音用户数
int m_iVoiceNumInSys; //系统总的话音用户数
//数据用户链表和用户数
CTypedPtrList<CPtrList, CHttpDataMs*> m_HttpDataList; //http业务用户链表
float m_fFractionHttp; //http用户比例
int m_iHttpNum; //http用户数
int m_iDataNumPerSector; //每扇区数据用户数
int m_iDataNumInSys; //系统总的数据用户数
CTypedPtrList<CPtrList, CFtpDataMs*> m_FtpDataList; //ftp业务用户链表
float m_fFractionFtp; //FTP用户比例
int m_iFtpNum; //ftp用户数
//20060116
CTypedPtrList<CPtrList, CVideoDataMs*> m_VideoDataList; //Video业务用户链表
float m_fFractionVideo; //Video用户比例
int m_iVideoNum;
//话音用户相关统计属性
int m_iVoiceUserOfCurrentDrop; //本Drop内所有的话音用户
int m_iBlockUserOfVoice; //话音业务接入失败的用户数
float m_fBlockRatioOfVoice; //话音用户接入失败率
int m_iOutageUserOfVoice; //话音业务中断的用户数
float m_fOutageRatioOfVoice; //话音用户中断率
int m_iDropUserOfVoice; //话音业务掉话用户数
float m_fDropRatioOfVoice; //话音用户掉话率
int m_iUnsatisfiedUserOfVoice; //不满意话音用户数
float m_fSatisfiedRadioOfVoice; //话音用户满意率
long m_lTotalVoiceFailedBLNum; //话音移动台总的传输失败的传输块数
long m_lTotalVoiceBLNum; //话音移动台总的传输块数
float m_fMeanVoiceBLER; //话音移动台平均误块率
//数据用户相关统计属性
INT64 m_lTotalSucfulBitNum; //成功传输比特的总量
long m_lTotalFailedBLNum; //记录数据移动台传输失败的传输块之和
long m_lTotalSucfulBLNum; //记录数据移动台成功传输的传输块之和
float m_fMeanBLER; //一个drop内的平均传输块错误率
float m_fMeanDataThrput; //一个drop内数据平均吞吐量
int m_iBlockedDCHMs; //记录一个drop内被block的DCH移动台数目
float m_fBlockedDCHRatio; //记录一个drop内被block的DCH移动台占数据移动台的比例
//业务相关统计量
long m_lTotalFailedPacketNum; //记录数据移动台传输失败的分组之和
long m_lTotalSucfulPacketNum; //记录数据移动台传输成功的份组之和
long m_lTotalSucfulPCBit; //记录数据移动台成功传输总比特数
long m_lTotalPacketDelay; //记录数据移动台总的分组时延
long m_lTotalPCDelay; //记录数据移动台总的分组呼叫时延
float m_fMeanPER; //一个drop内的平均分组错误率
//软切换开销相关统计量 add by slj
long m_lSlotOfActiveSetSize[ActiveSetMaxSize]; //记录激活集内不同数目扇区所占时隙
float m_fScaleOfActiveSetSize[ActiveSetMaxSize]; //记录激活集不同扇区数目所占比例
long m_lTotalSlotOfActiveSetSize; //记录总时隙
float m_fSpendingOfSHO; //记录软切换开销
//相关统计量 add by slj 20041020
long m_lTotalSlotOfSHO; //记录处于软切换总时隙
float m_fScaleOfSHO; //记录软切换比例
long m_lTotalBLNumInSHO; //记录软切换下总的传输块数
long m_lTotalFailedBLNumInSHO; //记录软切换下错误传输块数
float m_fBLERInSHO; //记录软切换下误块率
double m_fTotalMsPowerInSHO; //记录总发射功率
long m_lTotalMsSlotInSHO; //记录处于软切换所有移动台所有时隙
float m_fMeanPowerInSHO; //记录软切换下平均功率
//数据传输相关变量
CTypedPtrList<CPtrList, CHttpDataMs*> m_AdmittedHttpDataList; //接纳控制成功的Http业务用户链表
CTypedPtrList<CPtrList, CFtpDataMs*> m_AdmittedFtpDataList; //接纳控制成功的Ftp业务用户链表
//for compile
CTypedPtrList<CPtrList,CDataMs*> m_AdmittedDataList;
TFI_TYPE *m_pstDCHTFI; //数据队列为空时,指定的DCH信道TFI
//DCH掉线相关的统计变量 add by slj
int m_iDCHUserOfCurrentDrop; //本Drop内所有的DCH用户数
int m_iDropUserOfDCHMs; //数据DCH掉话用户数
float m_fDropRatioOfDCHMs; //数据DCH用户掉话率
int m_iUnsatisfiedUserOfDCHMs; //不满意DCH用户数
float m_fSatisfiedRadioOfDCHMs; //DCH用户不满意率
int m_iInitDroppedUser; //初始化时间内掉话DCH用户数
//by zl
float m_fHSDSCHPower; //为扇区DSCH信道分配的功率
//end of for compile
//统计文件名参数
char m_sSystemMeanThroughputFile[40];
//● 系统平均吞吐量的统计文件,统计整个系统内每个扇区的平均吞吐量,
//每个drop输出一个值
char m_sSystemMeanPERFile[40];
//● 系统平均分组差错概率,整个系统中的分组差错概率,每个drop输出
//一个值
char m_sMobileC2IFile[40];
//● 移动台C/I的统计文件,在指定时间输出所有移动台的C/I数据,
//点数为移动台的个数
char m_sMobileThroughputServiceFile[40];
//● 移动台吞吐量(service)统计文件,按service统计用户吞吐量,
//点数为移动台的个数
char m_sVoiceFile[40];
//话音统计文件,每个drop输出一个值
char m_sMobileThroughputPacketCallFile[40];
//● 移动台吞吐量(packet call)统计文件,按packet call统计用户
//吞吐量,点数为移动台的个数
public:
int m_iSlotNum; //每drop时隙数
float m_fSlotTime; //每时隙时长
float m_fDropTime; //每drop时长
int m_iSlotCurrentNum;
int m_iDropCurrentNum;
//以下为各个移动台类的参数
float m_fFudgetFactorOf8PSK; //8PSK高阶调制因子
float m_fFudgetFactorOf16QAM; //16QAM高阶调制因子
float m_fVoiceActiveFactor; //话音激活因子
//for compiling
//the defination of these two variable is not necessary
float m_fC2IThreshold; //门限C/I
float m_fC2ITarget; //目标C/I
float m_fPowerControlStep; //功率控制步长
float m_fBEROfPC; //功率控制差错概率
float m_fMaxFractionOfTrafficPower; //业务信道最大功率比例
float m_fDynamicRangeOfTrafficPower; //业务信道功率动态范围
float m_fMaxFractionOfPacketPower; //分组信道最大功率比例
float m_fDynamicRangeOfPacketPower; //分组信道功率动态范围
float m_fStdSlowFading; //慢衰标准差
int m_iChannelNumber; //各信道类型的数量
float m_fFractionOfChannel[10]; //各信道对应比例值
//Modified by Li Jing,20040713
//话音 BLER vs C/I 表
float m_fC2IIndex[26]; //存放着26个C2I值
float m_fBLER_1[26]; //对应信道类型为1的BLER值
float m_fBLER_2[26]; //对应信道类型为2的BLER值
float m_fBLER_3[26]; //对应信道类型为3的BLER值
float m_fBLER_4[26]; //对应信道类型为4的BLER值
float m_fBLER_5[26]; //对应信道类型为5的BLER值
//Added by Li Jing,20040713
//数据(64K) BLER vs C/I表
float m_fC2IIndex64[4]; //存放着26个C2I值
float m_fBLER64_1[4]; //对应信道类型为1的BLER值
float m_fBLER64_2[4]; //对应信道类型为2的BLER值
float m_fBLER64_3[4]; //对应信道类型为3的BLER值
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -