split LteSpectrumPhy::EndTx event into Data, DlCtrl, UlSrs

This commit is contained in:
Nicola Baldo
2015-04-01 15:38:12 +02:00
parent 15e79488cd
commit f2705e06cf
2 changed files with 35 additions and 5 deletions

View File

@@ -466,7 +466,7 @@ LteSpectrumPhy::StartTxDataFrame (Ptr<PacketBurst> pb, std::list<Ptr<LteControlM
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 @@ LteSpectrumPhy::StartTxDlCtrlFrame (std::list<Ptr<LteControlMessage> > ctrlMsgLi
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 @@ LteSpectrumPhy::StartTxUlSrsFrame ()
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 @@ LteSpectrumPhy::StartTxUlSrsFrame ()
void
LteSpectrumPhy::EndTx ()
LteSpectrumPhy::EndTxData ()
{
NS_LOG_FUNCTION (this);
NS_LOG_LOGIC (this << " state: " << m_state);
@@ -602,6 +602,8 @@ LteSpectrumPhy::EndTx ()
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 @@ LteSpectrumPhy::EndTx ()
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)

View File

@@ -420,7 +420,9 @@ public:
private:
void ChangeState (State newState);
void EndTx ();
void EndTxData ();
void EndTxDlCtrl ();
void EndTxUlSrs ();
void EndRxData ();
void EndRxDlCtrl ();
void EndRxUlSrs ();