/** * @brief This function computes the RSSI in received packet. * * @param priv A pointer to wlan_private structure * @param pRxPD A pointer to RxPD structure of received packet * @return n/a */ static void wlan_compute_rssi(wlan_private * priv, RxPD * pRxPD) { wlan_adapter *Adapter = priv->adapter; ENTER(); PRINTM(INFO, "RxPD: SNR = %d, NF = %d\n", pRxPD->SNR, pRxPD->NF); Adapter->SNR[TYPE_RXPD][TYPE_NOAVG] = pRxPD->SNR; Adapter->NF[TYPE_RXPD][TYPE_NOAVG] = pRxPD->NF; wlan_save_rawSNRNF(priv, pRxPD); Adapter->RxPDAge = os_time_get(); Adapter->RxPDRate = pRxPD->RxRate; Adapter->SNR[TYPE_RXPD][TYPE_AVG] = wlan_getAvgSNR(priv) * AVG_SCALE; Adapter->NF[TYPE_RXPD][TYPE_AVG] = wlan_getAvgNF(priv) * AVG_SCALE; PRINTM(INFO, "SNR-avg = %d, NF-avg = %d\n", Adapter->SNR[TYPE_RXPD][TYPE_AVG] / AVG_SCALE, Adapter->NF[TYPE_RXPD][TYPE_AVG] / AVG_SCALE); Adapter->RSSI[TYPE_RXPD][TYPE_NOAVG] = CAL_RSSI(Adapter->SNR[TYPE_RXPD][TYPE_NOAVG], Adapter->NF[TYPE_RXPD][TYPE_NOAVG]); Adapter->RSSI[TYPE_RXPD][TYPE_AVG] = CAL_RSSI(Adapter->SNR[TYPE_RXPD][TYPE_AVG] / AVG_SCALE, Adapter->NF[TYPE_RXPD][TYPE_AVG] / AVG_SCALE); wlan_check_subscribe_event(priv); LEAVE(); }
/** * @brief This function computes the RSSI in received packet. * * @param priv A pointer to wlan_private structure * @param prxpd A pointer to rxpd structure of received packet * @return n/a */ static void wlan_compute_rssi(wlan_private * priv, struct rxpd *p_rx_pd) { wlan_adapter *adapter = priv->adapter; lbs_deb_enter(LBS_DEB_RX); lbs_deb_rx("rxpd: SNR %d, NF %d\n", p_rx_pd->snr, p_rx_pd->nf); lbs_deb_rx("before computing SNR: SNR-avg = %d, NF-avg = %d\n", adapter->SNR[TYPE_RXPD][TYPE_AVG] / AVG_SCALE, adapter->NF[TYPE_RXPD][TYPE_AVG] / AVG_SCALE); adapter->SNR[TYPE_RXPD][TYPE_NOAVG] = p_rx_pd->snr; adapter->NF[TYPE_RXPD][TYPE_NOAVG] = p_rx_pd->nf; wlan_save_rawSNRNF(priv, p_rx_pd); adapter->SNR[TYPE_RXPD][TYPE_AVG] = wlan_getavgsnr(priv) * AVG_SCALE; adapter->NF[TYPE_RXPD][TYPE_AVG] = wlan_getavgnf(priv) * AVG_SCALE; lbs_deb_rx("after computing SNR: SNR-avg = %d, NF-avg = %d\n", adapter->SNR[TYPE_RXPD][TYPE_AVG] / AVG_SCALE, adapter->NF[TYPE_RXPD][TYPE_AVG] / AVG_SCALE); adapter->RSSI[TYPE_RXPD][TYPE_NOAVG] = CAL_RSSI(adapter->SNR[TYPE_RXPD][TYPE_NOAVG], adapter->NF[TYPE_RXPD][TYPE_NOAVG]); adapter->RSSI[TYPE_RXPD][TYPE_AVG] = CAL_RSSI(adapter->SNR[TYPE_RXPD][TYPE_AVG] / AVG_SCALE, adapter->NF[TYPE_RXPD][TYPE_AVG] / AVG_SCALE); lbs_deb_leave(LBS_DEB_RX); }