35_declspec(dllexport)
int fn_NetSim_FormCDMAChannel(NETSIM_ID nBTSId,Cellular_BS_MAC* BSMac,
int nCDMA_ETA,
int nCDMA_SIGMA,
double dCDMA_DATARATE)
37 static int nChannelId=1;
38 Cellular_CHANNEL *tempChannel1,*tempChannel2;
40 int nMaxNoOfCallHandled;
41 double dMaxNoOfCallHandled;
46 double dProcessingGain;
47 double dCDMA_TARGETSNR=BSMac->CDMAVar.dTargetSNR;
70 dPower = nCDMA_SIGMA* nCDMA_SIGMA/2.0;
71 dPower = dPower*log(10)*log(10)/100.0;
72 dNeu = pow(2.71828,dPower);
74 dCDMA_TARGETSNR = pow(10,dCDMA_TARGETSNR/10.0);
77 dProcessingGain = (BSMac->CDMAVar.dChipRate)/dCDMA_DATARATE*1.0;
78 dTau = BSMac->CDMAVar.dChipRate/dProcessingGain*1.0;
79 dMaxNoOfCallHandled = 1.0/(1+dNeu);
80 dMaxNoOfCallHandled *= (1+dTau)/dTau;
81 dMaxNoOfCallHandled = dMaxNoOfCallHandled/BSMac->CDMAVar.dVoiceActivityFactor;
82 nMaxNoOfCallHandled = (int)ceil(dMaxNoOfCallHandled);
83 for(nLoop1=0;nLoop1<nMaxNoOfCallHandled;nLoop1++)
86 tempChannel1 = calloc(1,
sizeof* tempChannel1);
88 tempChannel1->nChannelId = nChannelId++;
89 tempChannel1->nBTSId=nBTSId;
93 BSMac->pstruChannelList = tempChannel1;
95 tempChannel2=tempChannel1;
100 tempChannel1 ->
nChannelType = ChannelType_TRAFFICCHANNEL;
101 tempChannel2->pstru_NextChannel = tempChannel1;
102 tempChannel2 = tempChannel1;
105 BSMac->nAllocatedChannel = 0;
106 BSMac->nRACHChannel=1;
107 BSMac->nFreeChannel=nMaxNoOfCallHandled;
108 BSMac->nTrafficChannel=nMaxNoOfCallHandled-1;
109 BSMac->nChannelCount = nMaxNoOfCallHandled;
CELLULAR_CHANNEL_TYPE nChannelType