split LteSpectrumPhy::EndTx event into Data, DlCtrl, UlSrs
authorNicola Baldo <nbaldo@cttc.es>
Wed, 01 Apr 2015 15:38:12 +0200
changeset 11269 db337450b114
parent 11268 12c6391bb865
child 11270 de1a251c80a4
split LteSpectrumPhy::EndTx event into Data, DlCtrl, UlSrs
src/lte/model/lte-spectrum-phy.cc
src/lte/model/lte-spectrum-phy.h
--- a/src/lte/model/lte-spectrum-phy.cc	Sun Mar 29 16:53:11 2015 +0200
+++ b/src/lte/model/lte-spectrum-phy.cc	Wed Apr 01 15:38:12 2015 +0200
@@ -466,7 +466,7 @@
       txParams->ctrlMsgList = ctrlMsgList;
       txParams->cellId = m_cellId;
       m_channel->StartTx (txParams);
-      m_endTxEvent = Simulator::Schedule (duration, &LteSpectrumPhy::EndTx, this);
+      m_endTxEvent = Simulator::Schedule (duration, &LteSpectrumPhy::EndTxData, this);
     }
     return false;
     break;
@@ -523,7 +523,7 @@
       txParams->pss = pss;
       txParams->ctrlMsgList = ctrlMsgList;
       m_channel->StartTx (txParams);
-      m_endTxEvent = Simulator::Schedule (DL_CTRL_DURATION, &LteSpectrumPhy::EndTx, this);
+      m_endTxEvent = Simulator::Schedule (DL_CTRL_DURATION, &LteSpectrumPhy::EndTxDlCtrl, this);
     }
     return false;
     break;
@@ -578,7 +578,7 @@
       txParams->psd = m_txPsd;
       txParams->cellId = m_cellId;
       m_channel->StartTx (txParams);
-      m_endTxEvent = Simulator::Schedule (UL_SRS_DURATION, &LteSpectrumPhy::EndTx, this);
+      m_endTxEvent = Simulator::Schedule (UL_SRS_DURATION, &LteSpectrumPhy::EndTxUlSrs, this);
     }
     return false;
     break;
@@ -593,7 +593,7 @@
 
 
 void
-LteSpectrumPhy::EndTx ()
+LteSpectrumPhy::EndTxData ()
 {
   NS_LOG_FUNCTION (this);
   NS_LOG_LOGIC (this << " state: " << m_state);
@@ -602,6 +602,8 @@
 
   m_phyTxEndTrace (m_txPacketBurst);
 
+  NS_ASSERT (m_ltePhyTxEndCallback.IsNull () == true);
+
   if (!m_ltePhyTxEndCallback.IsNull ())
     {
       for (std::list<Ptr<Packet> >::const_iterator iter = m_txPacketBurst->Begin (); iter
@@ -616,6 +618,32 @@
   ChangeState (IDLE);
 }
 
+void
+LteSpectrumPhy::EndTxDlCtrl ()
+{
+  NS_LOG_FUNCTION (this);
+  NS_LOG_LOGIC (this << " state: " << m_state);
+
+  NS_ASSERT (m_state == TX);
+  NS_ASSERT (m_txPacketBurst == 0);
+  NS_ASSERT (m_ltePhyTxEndCallback.IsNull () == true);
+  ChangeState (IDLE);
+}
+
+void
+LteSpectrumPhy::EndTxUlSrs ()
+{
+  NS_LOG_FUNCTION (this);
+  NS_LOG_LOGIC (this << " state: " << m_state);
+
+  NS_ASSERT (m_state == TX);
+  NS_ASSERT (m_txPacketBurst == 0);
+  NS_ASSERT (m_ltePhyTxEndCallback.IsNull () == true);
+  ChangeState (IDLE);
+}
+
+
+
 
 void
 LteSpectrumPhy::StartRx (Ptr<SpectrumSignalParameters> spectrumRxParams)
--- a/src/lte/model/lte-spectrum-phy.h	Sun Mar 29 16:53:11 2015 +0200
+++ b/src/lte/model/lte-spectrum-phy.h	Wed Apr 01 15:38:12 2015 +0200
@@ -420,7 +420,9 @@
 
 private:
   void ChangeState (State newState);
-  void EndTx ();
+  void EndTxData ();
+  void EndTxDlCtrl ();
+  void EndTxUlSrs ();
   void EndRxData ();
   void EndRxDlCtrl ();
   void EndRxUlSrs ();