// ***** MAC Frame Error Rate **** //
Ptr<WifiNetDevice> dev = DynamicCast<WifiNetDevice> (m_node->GetDevice(0));
NS_ASSERT (dev != NULL);
PointerValue ptr;
dev->GetAttribute ("Mac",ptr);
Ptr<AdhocWifiMac> mac = ptr.Get<AdhocWifiMac> ();
NS_ASSERT (mac != NULL);
mac->GetAttribute ("DcaTxop",ptr);
Ptr<DcaTxop> dca = ptr.Get<DcaTxop> ();
NS_ASSERT (dca != NULL);
Ptr<WifiMacQueue> queue = dca->GetQueue ();
NS_ASSERT (queue != NULL);
NS_LOG_INFO ("Queue size: " << queue->GetSize ());
uint32_t m_utilization = queue->GetSize();
NS_LOG_INFO ("Utilization: " << m_utilization);
// ***** MAC Frame Error Rate **** //
Ptr<WifiNetDevice> dev = DynamicCast<WifiNetDevice> (m_node->GetDevice(0));
NS_ASSERT (dev != NULL);
PointerValue ptr;
PointerValue ptr2;
dev->GetAttribute ("Mac",ptr);
Ptr<AdhocWifiMac> mac = ptr.Get<AdhocWifiMac> ();
NS_ASSERT (mac != NULL);
dev->GetAttribute("RemoteStationManager", ptr2);
Ptr<WifiRemoteStationManager> _wifiRemSt = ptr2.Get<WifiRemoteStationManager>();
NS_ASSERT (_wifiRemSt != NULL);
WifiRemoteStationInfo _wifiInfo = _wifiRemSt->GetInfo(mac->GetAddress());
NS_LOG_INFO ("Frame Error Rate = " <<_wifiInfo.GetFrameErrorRate());
//PHY layer
wifi = WifiHelper::Default ();
wifi.SetStandard (WIFI_PHY_STANDARD_80211g);
wifi.SetRemoteStationManager ("ns3::ConstantRateWifiManager",
"DataMode",StringValue ("ErpOfdmRate6Mbps"),
"ControlMode", StringValue ("ErpOfdmRate6Mbps"));
wifiChannel.SetPropagationDelay ("ns3::ConstantSpeedPropagationDelayModel");
wifiChannel.AddPropagationLoss("ns3::LogDistancePropagationLossModel",
"Exponent", DoubleValue (3.0));
//"ReferenceLoss", DoubleValue(40.0)); // reference loss with Friis at 2.4GHz
wifiPhy = YansWifiPhyHelper::Default ();
wifiPhy.SetChannel (wifiChannel.Create ());
wifiPhy.Set("TxPowerStart", DoubleValue(15.0)); //Minimum available transmission level (dbm)
wifiPhy.Set("TxPowerEnd", DoubleValue(15.0)); //Maximum available transmission level (dbm)
wifiPhy.Set("EnergyDetectionThreshold", DoubleValue(-90.0) ); //Receive Sensivity (dbm)
//MAC layer
wifiMac = NqosWifiMacHelper::Default ();
wifiMac.SetType ("ns3::AdhocWifiMac"); // Set to adhoc mode
wifiNetDevicesNodes = wifi.Install(wifiPhy, wifiMac, nodes);