Abstraction of packet modulation information. More...
#include "uan-tx-mode.h"
Public Types | |
enum | ModulationType { PSK , QAM , FSK , OTHER } |
Modulation type. More... | |
Public Member Functions | |
UanTxMode () | |
Constructor. | |
~UanTxMode () | |
Destructor. | |
uint32_t | GetBandwidthHz () const |
Get the transmission signal bandwidth. | |
uint32_t | GetCenterFreqHz () const |
Get the transmission center frequency. | |
uint32_t | GetConstellationSize () const |
Get the number of constellation points in the modulation scheme. | |
uint32_t | GetDataRateBps () const |
Get the data rate of the transmit mode. | |
ModulationType | GetModType () const |
Get the modulation type of the mode. | |
std::string | GetName () const |
Get the mode name. | |
uint32_t | GetPhyRateSps () const |
Get the physical signaling rate. | |
uint32_t | GetUid () const |
Get a unique id for the mode. | |
Private Attributes | |
uint32_t | m_uid |
Mode id. | |
Friends | |
std::ostream & | operator<< (std::ostream &os, const UanTxMode &mode) |
Writes tx mode entry to stream os. | |
std::istream & | operator>> (std::istream &is, UanTxMode &mode) |
Reads tx mode entry from stream is. | |
class | UanTxModeFactory |
Abstraction of packet modulation information.
This contains a lightweight globally unique id for the mode. Mode details are held in the UanTxModeFactory. Attributes are set in by the UanTxModeFactory constructor.
Definition at line 31 of file uan-tx-mode.h.
Modulation type.
Enumerator | |
---|---|
PSK | Phase shift keying. |
QAM | Quadrature amplitude modulation. |
FSK | Frequency shift keying. |
OTHER | Unspecified/undefined. |
Definition at line 40 of file uan-tx-mode.h.
ns3::UanTxMode::UanTxMode | ( | ) |
Constructor.
Definition at line 20 of file uan-tx-mode.cc.
ns3::UanTxMode::~UanTxMode | ( | ) |
Destructor.
Definition at line 24 of file uan-tx-mode.cc.
uint32_t ns3::UanTxMode::GetBandwidthHz | ( | ) | const |
Get the transmission signal bandwidth.
Definition at line 53 of file uan-tx-mode.cc.
References ns3::UanTxModeFactory::GetFactory(), ns3::UanTxModeFactory::GetModeItem(), ns3::UanTxModeFactory::UanTxModeItem::m_bwHz, and m_uid.
Referenced by ns3::UanPhyPerCommonModes::CalcPer(), ns3::UanPhyCalcSinrDual::CalcSinrDb(), and ns3::UanPhyGen::CalculateSinrDb().
uint32_t ns3::UanTxMode::GetCenterFreqHz | ( | ) | const |
Get the transmission center frequency.
Definition at line 47 of file uan-tx-mode.cc.
References ns3::UanTxModeFactory::GetFactory(), ns3::UanTxModeFactory::GetModeItem(), ns3::UanTxModeFactory::UanTxModeItem::m_cfHz, and m_uid.
Referenced by ns3::UanPhyCalcSinrDual::CalcSinrDb(), ns3::UanPhyGen::CalculateSinrDb(), and ns3::UanPropModelThorp::GetPathLossDb().
uint32_t ns3::UanTxMode::GetConstellationSize | ( | ) | const |
Get the number of constellation points in the modulation scheme.
Definition at line 59 of file uan-tx-mode.cc.
References ns3::UanTxModeFactory::GetFactory(), ns3::UanTxModeFactory::GetModeItem(), ns3::UanTxModeFactory::UanTxModeItem::m_constSize, and m_uid.
Referenced by ns3::UanPhyPerCommonModes::CalcPer(), ns3::UanPhyPerUmodem::CalcPer(), and ns3::UanPhyCalcSinrFhFsk::CalcSinrDb().
uint32_t ns3::UanTxMode::GetDataRateBps | ( | ) | const |
Get the data rate of the transmit mode.
Definition at line 35 of file uan-tx-mode.cc.
References ns3::UanTxModeFactory::GetFactory(), ns3::UanTxModeFactory::GetModeItem(), ns3::UanTxModeFactory::UanTxModeItem::m_dataRateBps, and m_uid.
Referenced by ns3::UanPhyPerCommonModes::CalcPer(), ns3::UanTransducerHd::Receive(), ns3::UanPhyGen::SendPacket(), ns3::UanPhyGen::StartRxPacket(), and ns3::UanTransducerHd::Transmit().
UanTxMode::ModulationType ns3::UanTxMode::GetModType | ( | ) | const |
Get the modulation type of the mode.
Definition at line 29 of file uan-tx-mode.cc.
References ns3::UanTxModeFactory::GetFactory(), ns3::UanTxModeFactory::GetModeItem(), ns3::UanTxModeFactory::UanTxModeItem::m_type, and m_uid.
Referenced by ns3::UanPhyPerCommonModes::CalcPer(), ns3::UanPhyPerUmodem::CalcPer(), ns3::UanPhyCalcSinrDefault::CalcSinrDb(), ns3::UanPhyCalcSinrDual::CalcSinrDb(), and ns3::UanPhyCalcSinrFhFsk::CalcSinrDb().
std::string ns3::UanTxMode::GetName | ( | ) | const |
Get the mode name.
Definition at line 65 of file uan-tx-mode.cc.
References ns3::UanTxModeFactory::GetFactory(), ns3::UanTxModeFactory::GetModeItem(), ns3::UanTxModeFactory::UanTxModeItem::m_name, and m_uid.
Referenced by ns3::UanPhyCalcSinrDual::CalcSinrDb().
uint32_t ns3::UanTxMode::GetPhyRateSps | ( | ) | const |
Get the physical signaling rate.
Definition at line 41 of file uan-tx-mode.cc.
References ns3::UanTxModeFactory::GetFactory(), ns3::UanTxModeFactory::GetModeItem(), ns3::UanTxModeFactory::UanTxModeItem::m_phyRateSps, and m_uid.
Referenced by ns3::UanPhyCalcSinrFhFsk::CalcSinrDb().
uint32_t ns3::UanTxMode::GetUid | ( | ) | const |
Get a unique id for the mode.
Definition at line 71 of file uan-tx-mode.cc.
References m_uid.
Referenced by ns3::UanPhyGen::StartRxPacket().
|
friend |
Writes tx mode entry to stream os.
os | The output stream. |
mode | The mode. |
Definition at line 76 of file uan-tx-mode.cc.
|
friend |
Reads tx mode entry from stream is.
is | The input stream. |
mode | The mode. |
Definition at line 84 of file uan-tx-mode.cc.
|
friend |
Definition at line 98 of file uan-tx-mode.h.
|
private |
Mode id.
Definition at line 102 of file uan-tx-mode.h.
Referenced by GetBandwidthHz(), GetCenterFreqHz(), GetConstellationSize(), GetDataRateBps(), GetModType(), GetName(), GetPhyRateSps(), GetUid(), and ns3::UanTxModeFactory::MakeModeFromItem().