📄 cvideodatams.h
字号:
/////////////////////////////////////////////////////////////////////////
// Title: CVideoDataMs.h
//
// Comment: In this program,we have created a near-time video traffic
// model.
//
// Reference: 1xEV-DV evaluation methodology Strawman V26
//
// Written by: Dou Zhongzhao
//
// Date: 08/28/2001
//
// Revised record:
//
/////////////////////////////////////////////////////////////////////////
#if!defined(_CVIDEODATAMS_INCLUDED_H_)
#define _CVIDEODATAMS_INCLUDED_H_
#include<iostream.h>
#include "Afxtempl.h"
#include "systemsim.h"
#include "sys_random.h"
#include "CDataMs.h"
//-------- for compile -----------------
// to be deleted!!
//#include "VideoCompile.h"
class CVideoDataMs:public CDataMs
{
//----------------attribute--------------------------------
private:
int m_iVideoBufferSize; //缓冲器窗口的长度,定为5s,相当于最大时延,化为ms
int m_iVideoFrameInterval; //帧间隔,定为100ms,换算成时隙为80slot
int m_iVideoFrameSize; //每帧的数据量,根据每帧的分组的数量和分组的大小确定
int m_iVideoGeneratedDataPerFrame;//当前帧已经生成的数据量
int m_iVideoTotalPacketNumInFrame; //每帧的分组数,定为12
int m_iVideoPacketSize; //数据包的大小,服从截短的pareto分布
int m_iVideoPacketSizeK; //数据包大小服从的pareto分布的参数K
float m_fVideoPacketSizeAlpha; //数据包大小服从的pareto分布的参数Alpha
int m_iVideoPacketSizeMaximum; //数据包大小的最大值
int m_iVideoPacketInterval; //数据包到达的时间间隔,服从截短的pareto分布
float m_fVideoPacketIntervalK; //数据包间隔分布参数K
float m_fVideoPacketIntervalAlpha;//数据包间隔分布参数Alpha
int m_iVideoPacketIntervalMaximum;//数据包间隔最大值
int m_iVideoGeneratedPacketNumInFrame; //每帧中已经生成的packet的数量
bool m_bIsVideoFrameDataOver; //当前帧最后一个packet是否已经生成
//---------------------operation--------------------------------
public:
CVideoDataMs();
~CVideoDataMs();
void VideoInitialization(); //初始化视频业务模型参数,给变量赋值,完成第一个帧的设置,并且在仿真开始时,在数据
//缓冲器中放置一定的数据量
void VideoPacketGeneration(); //根据packet的pareto分布生成一个packet的数据量,同时加入到数据队列中,
//用m_bIsVideo FrameOver判断当前的帧是否结束,将packet编号,
//并调用VideoPacketIntervalGenerator()函数生成packet的间隔,
//并把已经生成的packet数量加1,同时调用IsVideoFrameDataOver()函数。
void VideoPacketIntervalGeneration(); //根据pareto分布产生数据包间隔,生成的结果以秒为单位,然后换算成时隙。
void IsVideoDataOver(); //判断当前帧的最后一个packet是否已经生成的函数
void VideoFrameProcess(); //帧处理函数
void VideoFrameSetUp(); //设置新帧的函数
void IsVideoFrameDataOver(); //判断当前帧的最后一个packet是否已经生成的函数
int m_iCurrentSlotNum; //仿真中当前时隙 by zl
int m_iVideoPacketPointer; //zl 20060329
//**************** to call private variables,define the following functions ******************
/* interface functions */
int GetVideoBufferSize(); //得到缓冲器窗口长度
void SetVideoBufferSize(int); //设置缓冲器窗口长度
int GetVideoFrameInterval(); //得到帧间隔
void SetVideoFrameInterval(int); //设置帧间隔
int GetVideoFrameSize(); //得到当前帧的数据量
void SetVideoFrameSize(int); //设置当前帧的数据量
int GetVideoGeneratedDataPerFrame(); //得到当前帧已经生成的数据量
void SetVideoGeneratedDataPerFrame(int);//设置当前帧已经生成的数据量
int GetVideoTotalPacketNumInFrame(); //得到一帧中分组数目
void SetVideoTotalPacketNumInFrame(int);//设置一帧中分组数目
int GetVideoPacketSize(); //得到分组的大小
void SetVideoPacketSize(int); //设置分组的大小
int GetVideoPacketSizeK(); //得到参数K
void SetVideoPacketSizeK(int); //设置参数K
float GetVideoPacketSizeAlpha(); //得到参数α
void SetVideoPacketSizeAlpha(float); //设置参数α
int GetVideoPacketSizeMaximum(); //得到分组的最大值
void SetVideoPacketSizeMaximum(int); //设置分组的最大值
int GetVideoPacketInterval(); //得到分组的间隔
void SetVideoPacketInterval(int); //设置分组的间隔
int GetVideoPacketIntervalMaximum(); //得到分组间隔最大值
void SetVideoPacketIntervalMaximum(int); //设置分组间隔的最大值
int GetVideoGeneratedPacketNumInFrame(); //得到一帧中已经生成的packet的数量
void SetVideoGeneratedPacketNumInFrame(int);//设置一帧中已经生成的packet的数量
bool GetIsVideoFrameDataOver(); //判断当前帧是否已经生成最后一个packet
void SetIsVideoFrameDataOver(bool); //设置当前帧是否已经生成最后一个packet
//20051212 by zl
void FillDataQueue(); //填充数据队列函数
void DataMsTrafficInitialize(); //数据移动台业务模型初始化函数
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -