wifi: Use spectrum PHY interface for TX

This commit is contained in:
Sébastien Deronne
2022-11-15 21:27:45 +01:00
committed by Sebastien Deronne
parent 5a2a111174
commit 5c44a7ea01
4 changed files with 18 additions and 5 deletions

View File

@@ -426,7 +426,7 @@ SpectrumWifiPhy::GetRxPpduFromTxPpdu(Ptr<const WifiPpdu> ppdu)
return GetPhyEntityForPpdu(ppdu)->GetRxPpduFromTxPpdu(ppdu);
}
Ptr<Object>
Ptr<AntennaModel>
SpectrumWifiPhy::GetAntenna() const
{
return m_antenna;
@@ -460,9 +460,7 @@ void
SpectrumWifiPhy::Transmit(Ptr<WifiSpectrumSignalParameters> txParams)
{
NS_LOG_FUNCTION(this << txParams);
txParams->txPhy = m_wifiSpectrumPhyInterface->GetObject<SpectrumPhy>();
txParams->txAntenna = m_antenna;
m_channel->StartTx(txParams);
m_wifiSpectrumPhyInterface->StartTx(txParams);
}
uint32_t

View File

@@ -107,7 +107,7 @@ class SpectrumWifiPhy : public WifiPhy
*
* \return the AntennaModel used for reception
*/
Ptr<Object> GetAntenna() const;
Ptr<AntennaModel> GetAntenna() const;
/**
* \return the SpectrumModel that this SpectrumPhy expects to be used
* for all SpectrumValues that are passed to StartRx. If 0 is

View File

@@ -110,4 +110,12 @@ WifiSpectrumPhyInterface::StartRx(Ptr<SpectrumSignalParameters> params)
m_spectrumWifiPhy->StartRx(params);
}
void
WifiSpectrumPhyInterface::StartTx(Ptr<SpectrumSignalParameters> params)
{
params->txPhy = Ptr<SpectrumPhy>(this);
params->txAntenna = m_spectrumWifiPhy->GetAntenna();
m_channel->StartTx(params);
}
} // namespace ns3

View File

@@ -62,6 +62,13 @@ class WifiSpectrumPhyInterface : public SpectrumPhy
Ptr<Object> GetAntenna() const override;
void StartRx(Ptr<SpectrumSignalParameters> params) override;
/**
* Start transmission over the spectrum channel
*
* \param params the parameters of the signal to transmit
*/
void StartTx(Ptr<SpectrumSignalParameters> params);
private:
void DoDispose() override;