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 50 of file satellite-phy-tx.h.

Member Enumeration Documentation

◆ SatPhyTxMode_t

Enumerator
NORMAL 
TRANSPARENT 

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

◆ State

PHY states.

Enumerator
IDLE 
TX 
RECONFIGURING 

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

Constructor & Destructor Documentation

◆ SatPhyTx()

ns3::SatPhyTx::SatPhyTx ( )

Default constructor.

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

◆ ~SatPhyTx()

ns3::SatPhyTx::~SatPhyTx ( )
virtual

Destructor for SatPhyTx.

Definition at line 57 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 320 of file satellite-phy-tx.cc.

References m_state, and RECONFIGURING.

◆ ChangeState()

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

Definition at line 230 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 211 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 63 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 284 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 118 of file satellite-phy-tx.cc.

References m_antennaGainPattern, m_maxAntennaGain, and m_satMobility.

◆ GetChannel()

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

Definition at line 221 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 149 of file satellite-phy-tx.cc.

References m_defaultFadingValue, and m_fadingContainer.

◆ GetMobility()

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

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

References m_mobility.

◆ GetTypeId()

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

inherited from Object

Definition at line 94 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 312 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 191 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 305 of file satellite-phy-tx.cc.

References m_beamId.

◆ SetChannel()

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

Definition at line 201 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 141 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 164 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 110 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 182 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 298 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 238 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 178 of file satellite-phy-tx.h.

Referenced by GetAntennaGain(), and SetAntennaGainPattern().

◆ m_beamId

uint32_t ns3::SatPhyTx::m_beamId
private

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

Referenced by SetBeamId().

◆ m_channel

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

Definition at line 173 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 203 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 198 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 188 of file satellite-phy-tx.h.

Referenced by GetAntennaGain(), and SetMaxAntennaGain_Db().

◆ m_mobility

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

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

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

◆ m_satId

uint32_t ns3::SatPhyTx::m_satId
private

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

Referenced by SetSatId().

◆ m_satMobility

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

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

Referenced by GetAntennaGain(), and SetAntennaGainPattern().

◆ m_state

State ns3::SatPhyTx::m_state
private

Definition at line 190 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 193 of file satellite-phy-tx.h.

Referenced by GetTypeId(), and StartTx().


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