A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
ns3::HybridBuildingsPropagationLossModel Class Reference

The HybridBuildingsPropagationModel is a compound of different models able to evaluate the pathloss from 200 to 2600 MHz, in different environments and with buildings (i.e., indoor and outdoor communications). More...

#include <hybrid-buildings-propagation-loss-model.h>

+ Inheritance diagram for ns3::HybridBuildingsPropagationLossModel:
+ Collaboration diagram for ns3::HybridBuildingsPropagationLossModel:

Public Member Functions

 HybridBuildingsPropagationLossModel ()
 ~HybridBuildingsPropagationLossModel ()
virtual double GetLoss (Ptr< MobilityModel > a, Ptr< MobilityModel > b) const
void SetCitySize (CitySize size)
void SetEnvironment (EnvironmentType env)
void SetFrequency (double freq)
void SetRooftopHeight (double rooftopHeight)
- Public Member Functions inherited from ns3::BuildingsPropagationLossModel
 BuildingsPropagationLossModel ()
virtual double DoCalcRxPower (double txPowerDbm, Ptr< MobilityModel > a, Ptr< MobilityModel > b) const
- Public Member Functions inherited from ns3::PropagationLossModel
 PropagationLossModel ()
virtual ~PropagationLossModel ()
int64_t AssignStreams (int64_t stream)
double CalcRxPower (double txPowerDbm, Ptr< MobilityModel > a, Ptr< MobilityModel > b) const
Ptr< PropagationLossModelGetNext ()
 Gets the next PropagationLossModel in the chain of loss models that act on the signal.
void SetNext (Ptr< PropagationLossModel > next)
 Enables a chain of loss models to act on the signal.
- Public Member Functions inherited from ns3::Object
 Object ()
virtual ~Object ()
void AggregateObject (Ptr< Object > other)
void Dispose (void)
AggregateIterator GetAggregateIterator (void) const
virtual TypeId GetInstanceTypeId (void) const
template<typename T >
Ptr< T > GetObject (void) const
template<typename T >
Ptr< T > GetObject (TypeId tid) const
void Start (void)
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount ()
 SimpleRefCount (const SimpleRefCount &o)
uint32_t GetReferenceCount (void) const
SimpleRefCountoperator= (const SimpleRefCount &o)
void Ref (void) const
void Unref (void) const
- Public Member Functions inherited from ns3::ObjectBase
virtual ~ObjectBase ()
void GetAttribute (std::string name, AttributeValue &value) const
bool GetAttributeFailSafe (std::string name, AttributeValue &attribute) const
void SetAttribute (std::string name, const AttributeValue &value)
bool SetAttributeFailSafe (std::string name, const AttributeValue &value)
bool TraceConnect (std::string name, std::string context, const CallbackBase &cb)
bool TraceConnectWithoutContext (std::string name, const CallbackBase &cb)
bool TraceDisconnect (std::string name, std::string context, const CallbackBase &cb)
bool TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb)

Static Public Member Functions

static TypeId GetTypeId (void)
 This method returns the TypeId associated to ns3::HybridBuildingsPropagationLossModel.

Private Member Functions

double ItuR1238 (Ptr< BuildingsMobilityModel > a, Ptr< BuildingsMobilityModel > b) const
double ItuR1411 (Ptr< BuildingsMobilityModel > a, Ptr< BuildingsMobilityModel > b) const
double OkumuraHata (Ptr< BuildingsMobilityModel > a, Ptr< BuildingsMobilityModel > b) const

Private Attributes

double m_frequency
double m_itu1411NlosThreshold
 in meters (switch Los -> NLoS)
Ptr< ItuR1238PropagationLossModelm_ituR1238
Ptr
< ItuR1411LosPropagationLossModel
m_ituR1411Los
Ptr
< ItuR1411NlosOverRooftopPropagationLossModel
m_ituR1411NlosOverRooftop
Ptr
< Kun2600MhzPropagationLossModel
m_kun2600Mhz
Ptr
< OkumuraHataPropagationLossModel
m_okumuraHata
double m_rooftopHeight

Additional Inherited Members

- Protected Member Functions inherited from ns3::BuildingsPropagationLossModel
virtual int64_t DoAssignStreams (int64_t stream)
double EvaluateSigma (Ptr< BuildingsMobilityModel > a, Ptr< BuildingsMobilityModel > b) const
double ExternalWallLoss (Ptr< BuildingsMobilityModel > a) const
double GetShadowing (Ptr< MobilityModel > a, Ptr< MobilityModel > b) const
double HeightLoss (Ptr< BuildingsMobilityModel > n) const
double InternalWallsLoss (Ptr< BuildingsMobilityModel > a, Ptr< BuildingsMobilityModel > b) const
- Protected Attributes inherited from ns3::BuildingsPropagationLossModel
double m_lossInternalWall
Ptr< NormalRandomVariablem_randVariable
std::map< Ptr< MobilityModel >
, std::map< Ptr< MobilityModel >
, ShadowingLoss > > 
m_shadowingLossMap
double m_shadowingSigmaExtWalls
double m_shadowingSigmaIndoor
double m_shadowingSigmaOutdoor

Detailed Description

The HybridBuildingsPropagationModel is a compound of different models able to evaluate the pathloss from 200 to 2600 MHz, in different environments and with buildings (i.e., indoor and outdoor communications).

This model includes Hata model, COST231, ITU-R P.1411 (short range communications), ITU-R P.1238 (indoor communications), which are combined in order to be able to evaluate the pathloss under different scenarios, in detail:

  • Environments: urban, suburban, open-areas;
  • frequency: from 200 uo to 2600 MHz
  • short range communications vs long range communications
  • Node position respect to buildings: indoor, outdoor and hybrid (indoor <-> outdoor)
  • Building penetretation loss
  • floors, etc...
Warning
This model works only with BuildingsMobilityModel

Definition at line 56 of file hybrid-buildings-propagation-loss-model.h.

Constructor & Destructor Documentation

ns3::HybridBuildingsPropagationLossModel::HybridBuildingsPropagationLossModel ( )
ns3::HybridBuildingsPropagationLossModel::~HybridBuildingsPropagationLossModel ( )

Definition at line 57 of file hybrid-buildings-propagation-loss-model.cc.

Member Function Documentation

double ns3::HybridBuildingsPropagationLossModel::GetLoss ( Ptr< MobilityModel a,
Ptr< MobilityModel b 
) const
virtual
TypeId ns3::HybridBuildingsPropagationLossModel::GetTypeId ( void  )
static

This method returns the TypeId associated to ns3::HybridBuildingsPropagationLossModel.

This object is accessible through the following paths with Config::Set and Config::Connect:

  • /NodeList/[i]/DeviceList/[i]/$ns3::WifiNetDevice/Channel/$ns3::YansWifiChannel/PropagationLossModel/$ns3::BuildingsPropagationLossModel/$ns3::HybridBuildingsPropagationLossModel
  • /NodeList/[i]/DeviceList/[i]/$ns3::WifiNetDevice/Channel/$ns3::YansWifiChannel/PropagationLossModel/$ns3::HybridBuildingsPropagationLossModel

Attributes defined for this type:

  • Frequency: The Frequency (default is 2.106 GHz).
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 2.16e+09
    • Flags: construct write
  • Los2NlosThr: Threshold from LoS to NLoS in ITU 1411 [m].
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 200
    • Flags: construct write read
  • Environment: Environment Scenario
    • Set with class: ns3::EnumValue
    • Underlying type: Urban|SubUrban|OpenAreas
    • Initial value: Urban
    • Flags: construct write
  • CitySize: Dimension of the city
    • Set with class: ns3::EnumValue
    • Underlying type: Small|Medium|Large
    • Initial value: Large
    • Flags: construct write
  • RooftopLevel: The height of the rooftop level in meters

Attributes defined in parent class ns3::BuildingsPropagationLossModel:

  • ShadowSigmaOutdoor: Standard deviation of the normal distribution used for calculate the shadowing for outdoor nodes
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 7
    • Flags: construct write read
  • ShadowSigmaIndoor: Standard deviation of the normal distribution used for calculate the shadowing for indoor nodes
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 8
    • Flags: construct write read
  • ShadowSigmaExtWalls: Standard deviation of the normal distribution used for calculate the shadowing due to ext walls
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 5
    • Flags: construct write read
  • InternalWallLoss: Additional loss for each internal wall [dB]
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 5
    • Flags: construct write read

No TraceSources defined for this type.

Reimplemented from ns3::BuildingsPropagationLossModel.

Definition at line 62 of file hybrid-buildings-propagation-loss-model.cc.

References ns3::LargeCity, m_itu1411NlosThreshold, ns3::MakeEnumAccessor(), ns3::MakeEnumChecker(), ns3::MediumCity, ns3::OpenAreasEnvironment, SetCitySize(), SetEnvironment(), SetFrequency(), ns3::TypeId::SetParent(), SetRooftopHeight(), ns3::SmallCity, ns3::SubUrbanEnvironment, and ns3::UrbanEnvironment.

+ Here is the call graph for this function:

double ns3::HybridBuildingsPropagationLossModel::ItuR1238 ( Ptr< BuildingsMobilityModel a,
Ptr< BuildingsMobilityModel b 
) const
private

Definition at line 285 of file hybrid-buildings-propagation-loss-model.cc.

References ns3::ItuR1238PropagationLossModel::GetLoss(), and m_ituR1238.

Referenced by GetLoss().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

double ns3::HybridBuildingsPropagationLossModel::ItuR1411 ( Ptr< BuildingsMobilityModel a,
Ptr< BuildingsMobilityModel b 
) const
private
double ns3::HybridBuildingsPropagationLossModel::OkumuraHata ( Ptr< BuildingsMobilityModel a,
Ptr< BuildingsMobilityModel b 
) const
private

Definition at line 259 of file hybrid-buildings-propagation-loss-model.cc.

References ns3::Kun2600MhzPropagationLossModel::GetLoss(), ns3::OkumuraHataPropagationLossModel::GetLoss(), m_frequency, m_kun2600Mhz, and m_okumuraHata.

Referenced by GetLoss().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::HybridBuildingsPropagationLossModel::SetCitySize ( CitySize  size)

set the size of the city

Parameters
size

Definition at line 117 of file hybrid-buildings-propagation-loss-model.cc.

References m_ituR1411NlosOverRooftop, m_okumuraHata, and ns3::ObjectBase::SetAttribute().

Referenced by GetTypeId().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::HybridBuildingsPropagationLossModel::SetEnvironment ( EnvironmentType  env)

set the environment type

Parameters
env

Definition at line 110 of file hybrid-buildings-propagation-loss-model.cc.

References m_ituR1411NlosOverRooftop, m_okumuraHata, and ns3::ObjectBase::SetAttribute().

Referenced by GetTypeId().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::HybridBuildingsPropagationLossModel::SetFrequency ( double  freq)

set the propagation frequency

Parameters
freq

Definition at line 124 of file hybrid-buildings-propagation-loss-model.cc.

References m_frequency, m_ituR1238, m_ituR1411Los, m_ituR1411NlosOverRooftop, m_okumuraHata, and ns3::ObjectBase::SetAttribute().

Referenced by GetTypeId().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::HybridBuildingsPropagationLossModel::SetRooftopHeight ( double  rooftopHeight)

set the rooftop height

Parameters
rooftopHeight

Definition at line 134 of file hybrid-buildings-propagation-loss-model.cc.

References m_ituR1411NlosOverRooftop, m_rooftopHeight, and ns3::ObjectBase::SetAttribute().

Referenced by GetTypeId().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Member Data Documentation

double ns3::HybridBuildingsPropagationLossModel::m_frequency
private

Definition at line 115 of file hybrid-buildings-propagation-loss-model.h.

Referenced by OkumuraHata(), and SetFrequency().

double ns3::HybridBuildingsPropagationLossModel::m_itu1411NlosThreshold
private

in meters (switch Los -> NLoS)

Definition at line 113 of file hybrid-buildings-propagation-loss-model.h.

Referenced by GetTypeId(), and ItuR1411().

Ptr<ItuR1238PropagationLossModel> ns3::HybridBuildingsPropagationLossModel::m_ituR1238
private
Ptr<ItuR1411LosPropagationLossModel> ns3::HybridBuildingsPropagationLossModel::m_ituR1411Los
private
Ptr<ItuR1411NlosOverRooftopPropagationLossModel> ns3::HybridBuildingsPropagationLossModel::m_ituR1411NlosOverRooftop
private
Ptr<Kun2600MhzPropagationLossModel> ns3::HybridBuildingsPropagationLossModel::m_kun2600Mhz
private
Ptr<OkumuraHataPropagationLossModel> ns3::HybridBuildingsPropagationLossModel::m_okumuraHata
private
double ns3::HybridBuildingsPropagationLossModel::m_rooftopHeight
private

Definition at line 114 of file hybrid-buildings-propagation-loss-model.h.

Referenced by GetLoss(), and SetRooftopHeight().


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