ns3::SatPhyTx Class Reference

The SatellitePhyTx models the physical layer transmitter of satellite system. More...

#include "satellite-phy-tx.h"

+ Inheritance diagram for ns3::SatPhyTx:
+ Collaboration diagram for ns3::SatPhyTx:

Public Types

enum  SatPhyTxMode_t { NORMAL , TRANSPARENT }
 
enum  State { IDLE , TX , RECONFIGURING }
 PHY states. More...
 

Public Member Functions

 SatPhyTx ()
 Default constructor. More...
 
virtual ~SatPhyTx ()
 Destructor for SatPhyTx. More...
 
bool CanTransmit (void) const
 Tell whether or not this channel can transmit data. More...
 
void ClearChannel ()
 
virtual void DoDispose ()
 Dispose of this class instance. More...
 
double GetAntennaGain (Ptr< MobilityModel > mobility)
 Get antenna gain based on position or in case that antenna pattern is not configured, maximum configured gain is return. More...
 
Ptr< SatChannelGetChannel ()
 
double GetFadingValue (Address macAddress, SatEnums::ChannelType_t channelType)
 Get fading value. More...
 
Ptr< MobilityModel > GetMobility ()
 
bool IsTransmitting (void) const
 Tell whether or not this channel is transmitting data. More...
 
void SetAntennaGainPattern (Ptr< SatAntennaGainPattern > agp, Ptr< SatMobilityModel > mobility)
 
void SetBeamId (uint32_t beamId)
 Set the beam id for all the transmissions from this SatPhyTx. More...
 
void SetChannel (Ptr< SatChannel > c)
 
void SetDefaultFadingValue (double fadingValue)
 Function for setting the default fading value. More...
 
void SetFadingContainer (Ptr< SatBaseFading > fadingContainer)
 Set fading container. More...
 
void SetMaxAntennaGain_Db (double gain_db)
 Set the maximum Antenna gain in Db. More...
 
void SetMobility (Ptr< MobilityModel > m)
 
void SetSatId (uint32_t satId)
 Set the satellite id for all the transmissions from this SatPhyTx. More...
 
virtual void StartTx (Ptr< SatSignalParameters > txParams)
 Start packet transmission to the channel. More...
 

Static Public Member Functions

static TypeId GetTypeId (void)
 inherited from Object More...
 

Protected Member Functions

virtual void EndTx ()
 

Private Member Functions

void ChangeState (State newState)
 

Private Attributes

Ptr< SatAntennaGainPatternm_antennaGainPattern
 
uint32_t m_beamId
 
Ptr< SatChannelm_channel
 
double m_defaultFadingValue
 Default fading value. More...
 
Ptr< SatBaseFadingm_fadingContainer
 Fading container for fading model. More...
 
double m_maxAntennaGain
 Configured maximum antenna gain in linear. More...
 
Ptr< MobilityModel > m_mobility
 
uint32_t m_satId
 
Ptr< SatMobilityModelm_satMobility
 
State m_state
 
SatPhyTxMode_t m_txMode
 

Detailed Description

The SatellitePhyTx models the physical layer transmitter of satellite system.

Definition at line 51 of file satellite-phy-tx.h.

Member Enumeration Documentation

◆ SatPhyTxMode_t

Enumerator
NORMAL 
TRANSPARENT 

Definition at line 54 of file satellite-phy-tx.h.

◆ State

PHY states.

Enumerator
IDLE 
TX 
RECONFIGURING 

Definition at line 73 of file satellite-phy-tx.h.

Constructor & Destructor Documentation

◆ SatPhyTx()

ns3::SatPhyTx::SatPhyTx ( )

Default constructor.

Definition at line 48 of file satellite-phy-tx.cc.

◆ ~SatPhyTx()

ns3::SatPhyTx::~SatPhyTx ( )
virtual

Destructor for SatPhyTx.

Definition at line 58 of file satellite-phy-tx.cc.

Member Function Documentation

◆ CanTransmit()

bool ns3::SatPhyTx::CanTransmit ( void  ) const

Tell whether or not this channel can transmit data.

Definition at line 322 of file satellite-phy-tx.cc.

References m_state, and RECONFIGURING.

◆ ChangeState()

void ns3::SatPhyTx::ChangeState ( State  newState)
private

Definition at line 232 of file satellite-phy-tx.cc.

References m_state.

Referenced by ClearChannel(), EndTx(), SetChannel(), and StartTx().

+ Here is the caller graph for this function:

◆ ClearChannel()

void ns3::SatPhyTx::ClearChannel ( )

Definition at line 213 of file satellite-phy-tx.cc.

References ChangeState(), m_channel, and RECONFIGURING.

+ Here is the call graph for this function:

◆ DoDispose()

void ns3::SatPhyTx::DoDispose ( void  )
virtual

Dispose of this class instance.

Definition at line 64 of file satellite-phy-tx.cc.

References m_channel, m_fadingContainer, and m_mobility.

◆ EndTx()

void ns3::SatPhyTx::EndTx ( )
protectedvirtual

Reimplemented in ns3::SatLoraPhyTx.

Definition at line 286 of file satellite-phy-tx.cc.

References ChangeState(), IDLE, m_state, and TX.

Referenced by ns3::SatLoraPhyTx::EndTx(), and StartTx().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetAntennaGain()

double ns3::SatPhyTx::GetAntennaGain ( Ptr< MobilityModel >  mobility)

Get antenna gain based on position or in case that antenna pattern is not configured, maximum configured gain is return.

Parameters
mobilityMobility used to get gain from antenna pattern
Returns
antenna gain

If antenna gain pattern is not set, we use the set maximum antenna gain.

Definition at line 120 of file satellite-phy-tx.cc.

References m_antennaGainPattern, m_maxAntennaGain, and m_satMobility.

◆ GetChannel()

Ptr< SatChannel > ns3::SatPhyTx::GetChannel ( void  )

Definition at line 223 of file satellite-phy-tx.cc.

References m_channel.

◆ GetFadingValue()

double ns3::SatPhyTx::GetFadingValue ( Address  macAddress,
SatEnums::ChannelType_t  channelType 
)

Get fading value.

Parameters
macAddressMAC address
channelTypechannel type
Returns

Definition at line 151 of file satellite-phy-tx.cc.

References m_defaultFadingValue, and m_fadingContainer.

◆ GetMobility()

Ptr< MobilityModel > ns3::SatPhyTx::GetMobility ( )

Definition at line 175 of file satellite-phy-tx.cc.

References m_mobility.

◆ GetTypeId()

TypeId ns3::SatPhyTx::GetTypeId ( void  )
static

inherited from Object

Definition at line 95 of file satellite-phy-tx.cc.

References m_txMode, NORMAL, and TRANSPARENT.

◆ IsTransmitting()

bool ns3::SatPhyTx::IsTransmitting ( void  ) const

Tell whether or not this channel is transmitting data.

Definition at line 314 of file satellite-phy-tx.cc.

References m_state, and TX.

Referenced by ns3::SatLoraPhyTx::IsTransmitting().

+ Here is the caller graph for this function:

◆ SetAntennaGainPattern()

void ns3::SatPhyTx::SetAntennaGainPattern ( Ptr< SatAntennaGainPattern agp,
Ptr< SatMobilityModel mobility 
)

Definition at line 193 of file satellite-phy-tx.cc.

References m_antennaGainPattern, and m_satMobility.

◆ SetBeamId()

void ns3::SatPhyTx::SetBeamId ( uint32_t  beamId)

Set the beam id for all the transmissions from this SatPhyTx.

Parameters
beamIdthe Beam Identifier

Definition at line 307 of file satellite-phy-tx.cc.

References m_beamId.

◆ SetChannel()

void ns3::SatPhyTx::SetChannel ( Ptr< SatChannel c)

Definition at line 203 of file satellite-phy-tx.cc.

References ChangeState(), IDLE, and m_channel.

+ Here is the call graph for this function:

◆ SetDefaultFadingValue()

void ns3::SatPhyTx::SetDefaultFadingValue ( double  fadingValue)

Function for setting the default fading value.

Parameters
fadingValuedefault fading value

Definition at line 143 of file satellite-phy-tx.cc.

References m_defaultFadingValue.

◆ SetFadingContainer()

void ns3::SatPhyTx::SetFadingContainer ( Ptr< SatBaseFading fadingContainer)

Set fading container.

Parameters
fadingContainerfading container

Definition at line 166 of file satellite-phy-tx.cc.

References m_fadingContainer.

◆ SetMaxAntennaGain_Db()

void ns3::SatPhyTx::SetMaxAntennaGain_Db ( double  gain_db)

Set the maximum Antenna gain in Db.

Parameters
gain_dbmaximum antenna gain in Dbs

Definition at line 112 of file satellite-phy-tx.cc.

References ns3::SatUtils::DbToLinear(), and m_maxAntennaGain.

+ Here is the call graph for this function:

◆ SetMobility()

void ns3::SatPhyTx::SetMobility ( Ptr< MobilityModel >  m)

Definition at line 184 of file satellite-phy-tx.cc.

References m_mobility.

◆ SetSatId()

void ns3::SatPhyTx::SetSatId ( uint32_t  satId)

Set the satellite id for all the transmissions from this SatPhyTx.

Parameters
satIdthe satellite Identifier

Definition at line 300 of file satellite-phy-tx.cc.

References m_satId.

◆ StartTx()

void ns3::SatPhyTx::StartTx ( Ptr< SatSignalParameters txParams)
virtual

Start packet transmission to the channel.

Parameters
txParamsTransmission parameters for a packet

The SatPhyTx is mapped to a spot-beam, which means that there may be several carriers handled by the same SatPhyTx. This is why the SatPhyTx state machine needs to be overtaken, thus the SatPhyTx is allowed to send several overlapping packets; in different carriers though. TODO: The SatPhyTx state machine may need some (code quality) improvements. E.g. different inherited implementations may be done for satellite and terrestrial domain nodes.

Reimplemented in ns3::SatLoraPhyTx.

Definition at line 240 of file satellite-phy-tx.cc.

References ChangeState(), EndTx(), IDLE, m_channel, m_state, m_txMode, RECONFIGURING, TRANSPARENT, and TX.

Referenced by ns3::SatLoraPhyTx::StartTx().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Member Data Documentation

◆ m_antennaGainPattern

Ptr<SatAntennaGainPattern> ns3::SatPhyTx::m_antennaGainPattern
private

Definition at line 179 of file satellite-phy-tx.h.

Referenced by GetAntennaGain(), and SetAntennaGainPattern().

◆ m_beamId

uint32_t ns3::SatPhyTx::m_beamId
private

Definition at line 193 of file satellite-phy-tx.h.

Referenced by SetBeamId().

◆ m_channel

Ptr<SatChannel> ns3::SatPhyTx::m_channel
private

Definition at line 174 of file satellite-phy-tx.h.

Referenced by ClearChannel(), DoDispose(), GetChannel(), SetChannel(), and StartTx().

◆ m_defaultFadingValue

double ns3::SatPhyTx::m_defaultFadingValue
private

Default fading value.

Definition at line 204 of file satellite-phy-tx.h.

Referenced by GetFadingValue(), and SetDefaultFadingValue().

◆ m_fadingContainer

Ptr<SatBaseFading> ns3::SatPhyTx::m_fadingContainer
private

Fading container for fading model.

Definition at line 199 of file satellite-phy-tx.h.

Referenced by DoDispose(), GetFadingValue(), and SetFadingContainer().

◆ m_maxAntennaGain

double ns3::SatPhyTx::m_maxAntennaGain
private

Configured maximum antenna gain in linear.

Definition at line 189 of file satellite-phy-tx.h.

Referenced by GetAntennaGain(), and SetMaxAntennaGain_Db().

◆ m_mobility

Ptr<MobilityModel> ns3::SatPhyTx::m_mobility
private

Definition at line 173 of file satellite-phy-tx.h.

Referenced by DoDispose(), GetMobility(), and SetMobility().

◆ m_satId

uint32_t ns3::SatPhyTx::m_satId
private

Definition at line 192 of file satellite-phy-tx.h.

Referenced by SetSatId().

◆ m_satMobility

Ptr<SatMobilityModel> ns3::SatPhyTx::m_satMobility
private

Definition at line 184 of file satellite-phy-tx.h.

Referenced by GetAntennaGain(), and SetAntennaGainPattern().

◆ m_state

State ns3::SatPhyTx::m_state
private

Definition at line 191 of file satellite-phy-tx.h.

Referenced by CanTransmit(), ChangeState(), EndTx(), IsTransmitting(), and StartTx().

◆ m_txMode

SatPhyTxMode_t ns3::SatPhyTx::m_txMode
private

Definition at line 194 of file satellite-phy-tx.h.

Referenced by GetTypeId(), and StartTx().


The documentation for this class was generated from the following files: