19int lf_NP_RandomBackOffTime(
int);
26int fn_NetSim_Zigbee_BackoffTimeCalculation(
int nBackoffExponent,
double* dBackoffTime,
int nUnitBacoffPeriod,METRICS** pstruMetrics)
29 nBackoffTimes = (int)pow(2,nBackoffExponent);
31 nBackoffTimes = (int)(((
unsigned long long int)fn_NetSim_Utilities_GenerateRandomNo(&ulBackoffSeed1,&ulBackoffSeed2))%nBackoffTimes);
32 *dBackoffTime = nBackoffTimes*dUnitSymbolTime*nUnitBacoffPeriod;
33 pstruMetrics[pstruEventDetails->nDeviceId-1]->pstruIEEE802_15_4_Metrics->dTotalbackofftime += (*dBackoffTime);
34 pstruMetrics[pstruEventDetails->nDeviceId-1]->pstruIEEE802_15_4_Metrics->nNumberofBackoffCall++;
40int lf_NP_RandomBackOffTime(
int nMaxRandBackoff)
46 ulBackoffSeed1 = (
unsigned long) ((40014 * ulBackoffSeed1) % (
unsigned long) (2147483563));
47 ulBackoffSeed2 = (
unsigned long) ((40692 * ulBackoffSeed2) % (
unsigned long) (2147483399));
49 lx = (long) ((ulBackoffSeed1 - ulBackoffSeed2) % (
long) (2147483562));
53 ldy = (
long double) ((
long double) (lx) / (
long double) (2147483563));
57 ldy = (
long double) ((
long double) (2147483562) / (
long double) (2147483563));
61 ltemp = (int)(ldy*100000000);
62 ltemp = (ltemp%nMaxRandBackoff);