58 } |
58 } |
59 void |
59 void |
60 WifiChannel::Send (Ptr<NetDevice> sender, Ptr<const Packet> packet, double txPowerDbm, |
60 WifiChannel::Send (Ptr<NetDevice> sender, Ptr<const Packet> packet, double txPowerDbm, |
61 WifiMode wifiMode, WifiPreamble preamble) const |
61 WifiMode wifiMode, WifiPreamble preamble) const |
62 { |
62 { |
63 Ptr<MobilityModel> senderMobility = sender->GetNode ()->QueryInterface<MobilityModel> (MobilityModel::iid); |
63 Ptr<MobilityModel> senderMobility = sender->GetNode ()->QueryInterface<MobilityModel> (); |
64 uint32_t j = 0; |
64 uint32_t j = 0; |
65 for (DeviceList::const_iterator i = m_deviceList.begin (); i != m_deviceList.end (); i++) |
65 for (DeviceList::const_iterator i = m_deviceList.begin (); i != m_deviceList.end (); i++) |
66 { |
66 { |
67 if (sender != i->first) |
67 if (sender != i->first) |
68 { |
68 { |
69 Ptr<MobilityModel> receiverMobility = i->first->GetNode ()->QueryInterface<MobilityModel> (MobilityModel::iid); |
69 Ptr<MobilityModel> receiverMobility = i->first->GetNode ()->QueryInterface<MobilityModel> (); |
70 Time delay = m_delay->GetDelay (senderMobility, receiverMobility); |
70 Time delay = m_delay->GetDelay (senderMobility, receiverMobility); |
71 double rxPowerDbm = m_loss->GetRxPower (txPowerDbm, senderMobility, receiverMobility); |
71 double rxPowerDbm = m_loss->GetRxPower (txPowerDbm, senderMobility, receiverMobility); |
72 NS_LOG_DEBUG ("propagation: txPower="<<txPowerDbm<<"dbm, rxPower="<<rxPowerDbm<<"dbm, "<< |
72 NS_LOG_DEBUG ("propagation: txPower="<<txPowerDbm<<"dbm, rxPower="<<rxPowerDbm<<"dbm, "<< |
73 "distance="<<senderMobility->GetDistanceFrom (receiverMobility)<<"m, delay="<<delay); |
73 "distance="<<senderMobility->GetDistanceFrom (receiverMobility)<<"m, delay="<<delay); |
74 Ptr<Packet> copy = packet->Copy (); |
74 Ptr<Packet> copy = packet->Copy (); |