📄 cservicearea.h
字号:
///////////////////////////////////////////////////////////////////
// WCDMA TEAM //
// BUPT Radio Research Center //
///////////////////////////////////////////////////////////////////
//
// CServiceArea.h
//
///////////////////////////////////////////////////////////////////
//
// 服务区环境类的头文件, 用于声明服务区环境类CServiceArea, 其实现在
// CServiceArea.cpp中。
//
// 将原来的分组信道功率计算函数PacketChannelPower()用下面两个函数
// DCHChannelPower()(DCH信道功率计算函数)和DSCHChannelPower()
// (DSCH信道可用功率计算函数)代替。这两个函数分别调用
// CSector::DCHPowerCumulate()和CSector::DSCHPowerCalculate().
// 在仿真中通过循环分别计算各个扇区提供的DCH分组信道和DSCH分组信道的功率
//
// Written by: 李晶
// Date: 200404
//
///////////////////////////////////////////////////////////////////
#if !defined(CSERVICEAREA_H_INCLUDED)
#define CSERVICEAREA_H_INCLUDED
#include "systemsim.h"
#include "CCell.h"
#include "CSector.h"
///////////////////////////////////////////////////////////////
// 服务区环境类头文件 //
///////////////////////////////////////////////////////////////
class CServiceArea
{
//-------------属性--------------
private:
CCell m_aCellArray[MM][NN]; //小区数组二维数组,维数根据头文件的定义
SECTORID_TYPE m_stCurrentSector; //当前扇区号
//int m_iTotalBsOutrage; //功率超标的基站累计数
//用于统计系统的平均功率超标比例
char m_sBsOutrageDataFileName[40]; //数据输出文件路径
//用于每个drop统计的基站超标比例数据的输出文件
float m_fSiteDistance; //基站间隔
//单位为km,也可定义成小区半径,注意两者的换算
float m_fCellRadius; //小区半径, 在初始化函数中由基站间隔换算求得
float m_fOrthogonalFactor; //正交因子
//用于计算本小区其它信道的干扰对C/I的影响
int m_iNumOfSlotInDrop; //一个DROP内的时隙数,在CNetworkDrive中读入
float m_fDropTime;
int m_iTTINum; //wlm 060223 用以表征TTI的子时隙序号1,2,3
//m_iTTINum与m_bIsTransNow与是否调度的组合关系如下:
//(当且仅当m_iTTINum=1时才调度)
//若第一子时隙调度成功,则FALSE1(Y)->TRUE1(Y)->TRUE1(Y)->FALSE1(下一TTI)
//若第一子时隙调度失败,则FALSE1(Y)->FALSE2(N)->FALSE3(N)->FALSE1(下一TTI)
//Added by Li Jing,20040928
float m_fSectorAveragePower[MAXNUMBER];
int m_iArrayPosition;
public:
//for compile
char *m_sIntermediateFileName;
//-------------操作----------------
public:
void Initialization(int,float); //初始化函数,循环初始化各小区
//参数为一个DROP时长
//主要是计算坐标、监测集
//并调用小区初始化函数,完成各扇区的初始化。
CCell* GetCell(CELLID_TYPE); //根据小区标号获得对应小区的指针
CSector* GetSector(SECTORID_TYPE); //根据扇区标号获得对应扇区的指针
LOCATION_TYPE GetCor(CELLID_TYPE); //小区标号到小区坐标(基站坐标)的映射
CELLID_TYPE GetID(LOCATION_TYPE); //小区坐标到小区标号的映射
SECTORID_TYPE GetUserSector(LOCATION_TYPE); //移动台坐标到对应所属扇区的映射,将名字由原来
CELLID_TYPE Translation(CELLID_TYPE); //阴影小区转换函数
//的GetUserCell改为:GetUserSector.
void MonitorSet(CELLID_TYPE); //确定某小区的监测集
void DCHAvailablePowerCalculate(); //计算DCH数据信道可用功率
//by zl
void HSDSCHAvailablePowerCalculate(); //新增成员函数。为HSDSCH分组数据信道可用功率计算函数
void TxPower(); //实际发射功率计算函数
//在仿真中通过循环调用函数CSector::SlotTxPowerCalculate()
//计算各个扇区的实际发射功率
//根据各扇区内是否有DSCH用户在传输,更新各扇区DSCH数据用户功率
void SectorStatics(); //统计每扇区的分组用户数及正确传输的比特数
void SystemReset(); //系统复位函数
//调用CSECTOR中的功率复位函数ResetPower()
void OutputSectorPower(); //输出扇区功率函数
//Added By Li Jing,20040929
void CalculateAveragePower(); //计算某一时刻所有扇区的平均发射功率
void AvePowerOutput(); //输出所有扇区的平均发射功率
//void TotalBsOutrageCalcute(); //累积功率超标基站数
//void PortionOfBsOutrage(int); //计算功率超标基站比例
///////////////////////////// 以下为接口函数 //////////////////////////////////////////////////////////////
SECTORID_TYPE GetCurrentSector(); //返回当前扇区号
//void SetBsOutrageDataFileName(char*); //设置数据输出文件路径
void SetSiteDistance(float); //设置基站间隔(小区半径)
float GetSiteDistance(); //返回基站间隔(小区半径)
void SetOrthogonalFactor(float); //设置正交因子
float GetOrthogonalFactor(); //返回正交因子
//for compile
void SectorPowerToFile(int); //输出扇区发射功率到参数文件中
//end of for compile
//新增函数 by zl
void HSDSCHProcess(); //完成HSDSCH上用户的处理
//新增接口函数 by zl
void TTINumInitialization();//wlm
void TTINumAddOne();//wlm
int GetTTINum();//wlm
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -