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

📄 cdatams.h

📁 此程序为wcdma系统当中ftp/video业务模型的c++程序仿真 通过此程序 能得到此两种业务在多种条件下的吞吐量和无码率的性能
💻 H
📖 第 1 页 / 共 2 页
字号:
	float m_fPilotStrenHyst;		//导频强度门限滞后
	int m_iBestSecTimer;			//最佳扇区计时器
	
//b信道状态相关属性
	enum SWITCHSTATE{NOSWITCH=0,DCHTODCH=1};	//信道切换变量取值
	SWITCHSTATE m_enCHSwitchState;	//信道切换状态变量
	bool m_bIsBlocked;			//DCH移动台在5秒内是否成功接入最佳扇区
	int m_iHSDSCHPriority;		//移动台的HSDSCH优先级 by zl
    bool m_bIsInAdmittedList;	//移动台是否已经加入成功接纳DCH移动台队列的标志


//c数据传输相关属性
	CTypedPtrList<CPtrList, PACKETARRIVALMESSAGE_TYPE*> m_PacketArrivalMsgList;		//HTTP移动台分组到达消息队列
	CTypedPtrList<CPtrList, PACKETCALLARRIVALMESSAGE_TYPE*> m_PacketCallArrivalMsgList;		//HTTP移动台分组呼叫到达消息队列

	long m_lDataQueueSize;		//数据队列中数据量
	int m_iDataQueueEmptyTimer;		//数据队列为空计时器
	bool m_bIsTransNow;		//移动台是否正在传输

	int m_iTTISucfulBLNum;		//当前TTI内传对的块数
	int m_iTTISucfulBitNum;		//当前TTI内传对的比特数
	int m_iTTIFailedBLNum;		//当前TTI内达到最大重传次数的块数
	int m_iTTIFailedBitNum;		//当前TTI内达到最大重传次数的错误比特数
	int m_iaBLTransNum[MAXBLNUM];	//TTI内传输块的传输次数数组
	int m_iSlotNumRemained;		//当前TTI剩余时隙数
//by cmy  注意这个变量的定义
	float m_fRatePredictC2I;		//进行速率预测的C2I
					//速率预测C2I = 移动台接收的最大业务信道可用功率 / 总干扰功率
	
//	int m_iRateTimer;		//记录当前速率的分配时间
	
	int m_iPowCrtlFailedTimer;		//记录当前功制失败的计时器
	
	RATE2CI_TYPE *m_pstRate;		//指向速率预测结果

//by cmy   这个变量的定义需要商讨
	float m_fSlotC2IindB[MAXTTISLOTNUM];	//DCH TTI每个时隙内的C2I


	//分组移动台服务扇区统计所需变量
	bool m_bIsCurrentPacketOver;		//当前分组是否传输完毕的标志
	int m_iCurrentPacketDelay;		//当前分组的传输时延
	int m_iTransPacketNum;			//当前传输分组数
	bool m_bIsCurrentPCOver;		//当前分组呼叫是否传输完毕的标志
	int m_iCurrentPCDelay;		//当前分组呼叫的传输时延
	int m_iTransPCNum;			//当前传输分组呼叫数目
	long m_lSucfulPCBitNum;		//当前分组呼叫成功传输比特数
    long m_lCurrentPCBitNum;   //当前分组呼叫的比特数

    //分组移动台所需要统计量
	int m_iTTISucfulPacketNum;		//当前TTI成功传输分组数
	int m_iTTIFailedPacketNum;		//当前TTI传输失败分组数

//d统计相关属性
	int m_iTotalSucfulBLNum;			//移动台成功接收的块数
	int m_iTotalFailedBLNum;			//移动台接收失败,被丢弃的块数
	long m_lTotalSucfulBitNum;		//移动台成功接收比特数
	long m_lTotalFailedBitNum;       //移动台接收失败的比特数 20051206
    int m_iASTTimer;			//移动台AST计时器
	float m_fAST;				//数据移动台的Active Session Throughput,这个量只是针对http业务模型	
	float m_fServiceThrput;		//下行链路吞吐量
	
	int m_iTotalSucfulPacketNum;		//移动台成功接收的分组数
	int m_iTotalFailedPacketNum;		//移动台接收失败的分组数
	float m_fPacketErrorRate;		//移动台分组错误率
	int m_iTotalPacketDelay;			//移动台接收分组的总时延(以时隙数作为单位)
	float m_fAveragePacketDelay;		//移动台接收分组的平均时延
	int m_iPacketCallNum;		//HTTP业务分组呼叫数
	int m_iPacketCallDelay;		//HTTP业务分组呼叫总时延(以时隙数作为单位)
	float m_fAveragePCDelay;		//HTTP业务平均分组呼叫时延
	long m_lTotalSucfulPCBitNum;		//HTTP业务分组呼叫总比特数
	float m_fPacketCallThrput;		//HTTP业务吞吐量
	float m_fClosestServingSecDistance;		//距离服务扇区的最近距离 km

//统计DCH用户掉话相关属性 add by slj
	int   m_iDCHDropTimer;      //用于统计掉话的DCH数据用户数
	bool  m_bDCHIsDropped;      //判断DCH数据用户是否掉话
	int   m_iDCHServicedSlot;   //已经接纳成功的DCH用户服务时长(以时隙为单位)

	//新增变量 by zl:

	int m_iFreeSAWProcess;     //数据移动台的空闲的子信道数

    float m_fCurrentC2I;       //当前的C/I,实值
	float m_fCurrentC2IindB;   //当前的C/I,dB值
    float m_fTTIMeanC2IindB;   //TTI内的平均C/I,dB值

//	int m_iCurrentPacketSize;      //当前分组的大小,由MCS得到,在速率预测结构体中

	NCHANNELSAW_TYPE m_stSAWChannel[MAXSAWCHANNELNUM]; //子信道数组
	int m_iPrevChannelIndex;       //前一次被调用的子信道的下标
	int m_iCurrChannelIndex;       //当前被调用的子信道的下标

//	bool m_bIsTTIGood;          //传输完毕的TTI是否正确

//速率预测相关处理 by slj 20050408
	HSChannel2CI_TYPE *m_pstRatePredictionTable;
//速率预测参数表首地址,存储树状表的顶层的首地址
//	CLinkPrediction *m_LinkPredictionPointer;		//LinkPrediction对象的指针,在Mobile.cpp中定义过了
	int m_iRateNumber;
	float m_fHSDataRate;
	HSRATE2CI_TYPE *m_HSRate2CI;
	int m_iChannelModeNum;
//	int m_iMCSOrder;
	int m_iCodeNum;

//用于门限调整的变量
	THRESHOLDADJUST_ALGORITHM m_fAlgorithm;		//门限调整方法
	//float m_fMeasuredC2IindB; //这是EV-DV中的一个折算量,相当于HSDPA中的m_fTTIMeanC2IindB
    int m_iCurSuccessfulEPNum[MAXRATENUM];		//当前传输EP数
	int m_iCurErrorEPNum[MAXRATENUM];			//当前传输错误EP数

	bool *m_pSlideWindow;						//指向当前传输情况窗口,EP正确传输为true
	static const int m_iSlideWindowSize;		//表示窗口大小的参数
	static const int m_iSlideWindowNum;			//统计的滑动窗口数目
	static const float m_fAlpha;				//滑动窗口加权因子
	int m_iEPNuminWindow;					//表示当前滑动窗口中EP数

//用于PF调度算法
public:
	float m_fAverageRate;        //平均速率
    float m_fHSDSCHSlotC2IindB[HSDSCHTTISLOTNUM];	//HSDSCH TTI每个时隙内的C2I
    SCHEDULE_ALGORITHM  m_fScheduleAlgorithm; //调度算法

	HSRATE2CI_TYPE* Rate0;   //速率为0的结构体

	//分段FER统计  20050622
	float m_iError[10];
	float m_iTotal[10];
	float m_fInterError[10];           //总的FER

	float m_iMCSError[4][10];
	int m_iMCSNum[4][10];
	float m_fMCSInterError[4][10];     //MCS FER
	int m_ii;   //计数

	//用于调度算法的变量
	//分类调度
	float  m_fWeightedClassPra;          //分类加权参数 20051205
	float  m_fTargetQos;                 //QOS目标值 20051206
	float  m_fCurrentQos;                //当前QOS值 20051206
	
	//效用函数 20060111
	float  m_fBeta;         
	float  m_fTarget;
	//by zl 20060302 for Video
	CTypedPtrList<CPtrList, FLVIDEOPACKETARRIVALMESSAGE_TYPE*> m_FLVideoPacketArrivalMsgList;	//Video移动台分组到达消息队列 20060217
	int  m_iTotalBitinBuffer;         //缓冲器的容量,总的比特数 by zl 20060302
	int  m_iBitinBuffer;              //缓冲器中现有的比特数 by zl 20060302
	int  m_iEmptyBitinBuffer;         //缓冲器空余的比特数 by zl 20060302
	int  m_iDelayLimitinBuffer;       //缓冲器时延限制
	int  m_iBufferDelay;              //缓冲器时延,单位为ms zl 20060302
	int  m_iVideoDropNum;             //掉话数 zl 20060302
	int  m_iVideoTotalNum;            //传输的总数,以缓冲器为单位1 zl 20060302
	float m_fDropRatio;               //掉话率  zl 20060302
	float m_fAlfa;
	float  m_fW;                        //控制FTP与Video之间的优先级
	int m_iDropTimer;                 //掉话计数器

	//by zl 20060308
	bool m_bIsDroped;                 //判断是否掉话
	int m_iTotalDropTime;                   //掉话时长

	//by zl 20060328
	int m_iTotalVideoPacketNum;            //总的packet数
    int m_iVideoPacketDropNum;             //丢包数
	float m_fVideoPacketDropRatio;         //丢包率
	int m_iTotalVideoIFrameNum;            //总的I Frame数
	int m_iVideoIFrameDropNum;             //丢I frame数
	float m_fVideoIFrameDropRatio;         //丢Iframe率

	
	//用于long-range预测  20051214
//	bool m_bIsPredict;

	double m_dweight[orders];            //加权
    float m_fPreC2I[orders+2*DelayedSlot+1];     //保存前面的预测的C2I
	float m_fCurC2I[orders+2*DelayedSlot+1];     //保存前面实际的C2I
	int m_iPreC2INum;                    //预存的C2I的个数,用于初始化
	float m_fPredictedC2I;               //预测得到的C2I

	float m_fDelayedC2I;                 //时延后的C2I,用于与预测比较
	float m_fDelC2I[DelayedSlot+1];        //保存当前计算的C2I*
	int m_iDelC2INum;                  


	bool m_bIsTTIGood;          //传输完毕的TTI是否正确
	int m_iMCSOrder;


/*	//HARQ in LRP   20051228
	int m_iDelNum;                        
	bool m_bDelACK[DelayedSlot];		    //保存时延的ACK
	int  m_iDelMCS[DelayedSlot];		//保存时延的MCS等级
	
	int m_bDelayedACK;			        //延时的ACK反馈
	int m_iDelayedMCS;			        //延时的MCS等级标志
*/

};
	   

#endif

⌨️ 快捷键说明

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