📄 cservicearea.h
字号:
//CServiceArea.h
//The head file of class CServiceArea
////////////////////////////////////////////////////
#if !defined(CSERVICEAREA_H_INCLUDED)
#define CSERVICEAREA_H_INCLUDED
#include "systemsim.h"
#include "CCell.h"
#include "CSector.h"
class CServiceArea
{
//attribute
private:
SECTORID_TYPE m_stCurrentSector; //当前扇区号
int m_iTotalBsOutrage; //功率超标的基站累计数
//用于统计系统的平均功率超标比例
char m_sBsOutrageDataFileName[40]; //数据输出文件路径
//用于每个drop统计数据的输出文件
float m_fSiteDistance; //基站间隔
//单位为m,也可定义成小区半径,注意两者的换算
float m_fCellRadius; //小区半径, 在初始化函数中由基站间隔换算求得
float m_fOrthogonalFactor; //正交因子
//用于计算本小区干扰对C/I的影响
int m_iNumOfSlotInDrop; //一个DROP内的时隙数,由CNetworkDrive读入
public:
CCell m_aCellArray[MM][NN]; //小区数组二维数组,维数根据头文件的定义。
//operation
public:
void Initialization(int); //初始化函数循环初始化化各小区
//参数为一个DROP时长
//主要是计算坐标、相邻集和候选集
//并调用小区初始化函数,完成扇区的初始化。
CCell* GetCell(CELLID_TYPE); //根据小区标号获得对应小区
CSector* GetSector(SECTORID_TYPE); //根据扇区标号获得对应扇区
LOCATION_TYPE GetCor(CELLID_TYPE); //小区标号到小区坐标的映射
CELLID_TYPE GetID(LOCATION_TYPE); //小区坐标到小区标号的映射
SECTORID_TYPE GetUserCell(LOCATION_TYPE); //坐标到对应小扇区的映射
void NeighborSet(CELLID_TYPE); //确定某小区的相邻集
bool IsNeighbor(CELLID_TYPE,CELLID_TYPE); //判断两小区是否为相邻小区
void CandidateSet(CELLID_TYPE); // 确定某小区的候选集
CELLID_TYPE GetNeighbor(CELLID_TYPE,int); //获得某相邻小区
void PacketChannelPower(); //分组数据信道功率计算函数 在仿真循环中计算
//各个扇区能够提供给分组信道的功率
//////////////////////////////////5月15日 新增函数///////////////////////////////////////////
void TxPower(); //实际发射功率计算函数 在仿真循环中计算各个扇区
//的实际发射功率-----应oyh要求新增
void UpdatePacketPower(); //根据各扇区内是否有用户在传输,更新各扇区数据用户功率
////////////////////////////////////////////////////////////////////////////////////////////
void DataTransmission(int); //数据传输控制函数
//在仿真循环中控制各个扇区中被调度的数据用户传输
void SystemReset(); //系统复位函数
//调用CSECTOR中的功率复位函数
void TotalBsOutrageCalcute(); //累积功率超标基站数
void PortionOfBsOutrage(int); //计算功率超标基站比例
///////////////////////////// zdy新增统计函数 //////////////////////////////////////////////////////////////
void SectorStatics(); //统计每扇区的分组用户数及正确传输的比特数
///////////////////////////// 接口函数 //////////////////////////////////////////////////////////////
// void SetCurrentCell(CELLID_TYPE); //设置当前小区号
// CELLID_TYPE GetCurrentCell(); //返回当前小区号
// void SetCurrentSector(SECTORID_TYPE); //设置当前扇区号
SECTORID_TYPE GetCurrentSector(); //返回当前扇区号
// void SetTotalBsOutrage(int); //设置功率超标的基站累计数
// int GetTotalBsOutrage(); //返回功率超标的基站累计数
void SetBsOutrageDataFileName(char*); //设置数据输出文件路径
// char* GetBsOutrageDataFileName(); //返回数据输出文件路径
void SetSiteDistance(float); //设置基站间隔(小区半径)
float GetSiteDistance(); //返回基站间隔(小区半径)
void SetOrthogonalFactor(float); //设置正交因子
float GetOrthogonalFactor(); //返回正交因子
// void SetCellRadius(float);
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -