diff --git a/src/devices/wifi/wifi-phy.cc b/src/devices/wifi/wifi-phy.cc index 9cb60e53c..aaac0abe5 100644 --- a/src/devices/wifi/wifi-phy.cc +++ b/src/devices/wifi/wifi-phy.cc @@ -237,12 +237,12 @@ WifiPhy::GetTypeId (void) MakeTraceSourceAccessor (&WifiPhy::m_stateLogger)) .AddTraceSource ("RxOk", "A packet has been received successfully.", - MakeTraceSourceAccessor (&WifiPhy::m_syncOkCallback)) + MakeTraceSourceAccessor (&WifiPhy::m_rxOkTrace)) .AddTraceSource ("RxError", "A packet has been received unsuccessfully.", - MakeTraceSourceAccessor (&WifiPhy::m_syncErrorCallback)) + MakeTraceSourceAccessor (&WifiPhy::m_rxErrorTrace)) .AddTraceSource ("Tx", "Packet transmission is starting.", - MakeTraceSourceAccessor (&WifiPhy::m_txCallback)) + MakeTraceSourceAccessor (&WifiPhy::m_txTrace)) ; return tid; } @@ -371,12 +371,12 @@ WifiPhy::SetChannel (Ptr channel) void WifiPhy::SetReceiveOkCallback (SyncOkCallback callback) { - m_syncOkCallback.ConnectWithoutContext (callback); + m_syncOkCallback = callback; } void WifiPhy::SetReceiveErrorCallback (SyncErrorCallback callback) { - m_syncErrorCallback.ConnectWithoutContext (callback); + m_syncErrorCallback = callback; } void WifiPhy::StartReceivePacket (Ptr packet, @@ -480,7 +480,7 @@ WifiPhy::SendPacket (Ptr packet, WifiMode txMode, WifiPreamble pre */ NS_ASSERT (!IsStateTx ()); - m_txCallback (packet, txMode, preamble, txPower); + m_txTrace (packet, txMode, preamble, txPower); Time txDuration = CalculateTxDuration (packet->GetSize (), txMode, preamble); NotifyTxStart (txDuration); SwitchToTx (txDuration); @@ -1350,6 +1350,7 @@ WifiPhy::EndSync (Ptr packet, Ptr event) { NotifySyncEndOk (); SwitchFromSync (); + m_rxOkTrace (packet, snr, event->GetPayloadMode (), event->GetPreambleType ()); m_syncOkCallback (packet, snr, event->GetPayloadMode (), event->GetPreambleType ()); } else @@ -1357,6 +1358,7 @@ WifiPhy::EndSync (Ptr packet, Ptr event) /* failure. */ NotifySyncEndError (); SwitchFromSync (); + m_rxErrorTrace (packet, snr); m_syncErrorCallback (packet, snr); } } diff --git a/src/devices/wifi/wifi-phy.h b/src/devices/wifi/wifi-phy.h index dc4d3d0e1..68dabdfd2 100644 --- a/src/devices/wifi/wifi-phy.h +++ b/src/devices/wifi/wifi-phy.h @@ -343,9 +343,11 @@ private: Time m_previousStateChangeTime; Ptr m_channel; - TracedCallback, double, WifiMode, enum WifiPreamble> m_syncOkCallback; - TracedCallback, double> m_syncErrorCallback; - TracedCallback,WifiMode,WifiPreamble,uint8_t> m_txCallback; + SyncOkCallback m_syncOkCallback; + SyncErrorCallback m_syncErrorCallback; + TracedCallback, double, WifiMode, enum WifiPreamble> m_rxOkTrace; + TracedCallback, double> m_rxErrorTrace; + TracedCallback,WifiMode,WifiPreamble,uint8_t> m_txTrace; Modes m_modes; Listeners m_listeners; EventId m_endSyncEvent;