wireless_channel.cpp

来自「RFID reader 语 tag 模拟器」· C++ 代码 · 共 63 行

CPP
63
字号
 #include "wireless_channel.hpp" #include "path_loss.hpp" #include "fading.hpp" #include "wireless_comm_signal.hpp" #include "log_stream_manager.hpp" #include "physical_layer.hpp" WirelessChannel::WirelessChannel(PathLossPtr pathLossModel) {    assert(pathLossModel.get() != 0);    m_pathLossModel = pathLossModel; } WirelessChannel::WirelessChannel(PathLossPtr pathLossModel,    FadingPtr fadingModel) {    assert(pathLossModel.get() != 0);    assert(fadingModel.get() != 0);    m_pathLossModel = pathLossModel;    m_fadingModel = fadingModel; } double WirelessChannel::getRecvdStrength(const WirelessCommSignal& signal,    const PhysicalLayer& receiver) const {    assert(m_pathLossModel.get() != 0);    double recvdStrength =       m_pathLossModel->getRecvdStrength(signal, receiver);    double debugRecvdStrength = recvdStrength;    // Account for fading if such a model exists    if(m_fadingModel.get() != 0) {       recvdStrength *= m_fadingModel->fadingFactor(signal,          receiver.getNodeId());    }    if(m_DEBUG_SIGNAL_STRENGTH) {       ostringstream debugStream;       debugStream << __FUNCTION__ << " recvStrength1: " <<          debugRecvdStrength;       debugStream << " recvStrength2: " << recvdStrength;       LogStreamManager::instance()->logDebugItem(debugStream.str());    }    return recvdStrength; } bool WirelessChannel::signalHasError(double signalSinr,    const WirelessCommSignal& signal) const {    // This is just a placeholder function for now.    // In the future, there should be a PacketLoss object    // contained in WirelessChannel that computes this    // based on some model.    return false; }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?